From 91924973e27cc369df598019fd137aeab18020b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Lesiecki?= Date: Fri, 4 Mar 2022 12:36:55 +0100 Subject: [PATCH] Bundle analysis with Statoscope --- .github/workflows/lighthouse.yml | 3 + config/webpack.prod.js | 12 +- package-lock.json | 323 +++++++++++++++++++++++++++++++ package.json | 1 + 4 files changed, 338 insertions(+), 1 deletion(-) diff --git a/.github/workflows/lighthouse.yml b/.github/workflows/lighthouse.yml index 8be2e30ff..96fb34997 100644 --- a/.github/workflows/lighthouse.yml +++ b/.github/workflows/lighthouse.yml @@ -61,6 +61,9 @@ jobs: body: ':stopwatch: Lighthouse report: ' + process.env.REPORT_URL }) + - name: Copy bundle analysis report + run: cp build/report-*.html ./.lighthouseci + - uses: actions/upload-artifact@v2 with: name: lighthouse-report diff --git a/config/webpack.prod.js b/config/webpack.prod.js index d94dcb72a..dc9c370f3 100644 --- a/config/webpack.prod.js +++ b/config/webpack.prod.js @@ -19,6 +19,16 @@ const merge = require('webpack-merge'); const webpack = require('webpack'); const TerserPlugin = require('terser-webpack-plugin'); const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); +const { default: StatoscopeWebpackPlugin } = require("@statoscope/webpack-plugin"); + +const bundleAnalyzerConfig = { + plugins: [ + new StatoscopeWebpackPlugin({ + open: false, + saveReportTo: "./build/report-[name].html", + }), + ] +} const prodConfig = { name: "client-modern", @@ -57,6 +67,6 @@ const es5Config = { }; module.exports = [ - merge.smart(commonConfig, prodConfig), + merge.smart(commonConfig, prodConfig, bundleAnalyzerConfig), merge.smart(commonConfig, prodConfig, es5Config), ] diff --git a/package-lock.json b/package-lock.json index 91d33ca6d..022f24b64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1760,6 +1760,12 @@ "lodash.once": "^4.1.1" } }, + "@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true + }, "@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -1983,12 +1989,219 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, + "@statoscope/extensions": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/extensions/-/extensions-5.14.1.tgz", + "integrity": "sha512-5O31566+bOkkdYFH81mGGBTh0YcU0zoYurTrsK5uZfpNY87ZCPpptrszX8npTRHNsxbjBBNt7vAwImJyYdhzLw==", + "dev": true + }, + "@statoscope/helpers": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@statoscope/helpers/-/helpers-5.19.0.tgz", + "integrity": "sha512-EFD7XqZZxtZJZlaWznAYIOrqECYHqobXxa0EADtn/mIToUrsL9g/bnkBMl28KX6zy07QcDt9gLmp5s+5GDJCoQ==", + "dev": true, + "requires": { + "@types/archy": "^0.0.32", + "@types/semver": "^7.3.6", + "archy": "~1.0.0", + "jora": "^1.0.0-beta.5", + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@statoscope/report-writer": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@statoscope/report-writer/-/report-writer-5.20.0.tgz", + "integrity": "sha512-/QwHWzRoOCpcJkZYoTb1kuMaLoDxJpo/VteSNbhOOyCwK/74oAPAsSgbGz52T6bHAn6zkMqrSEJFJMVbYeWAJw==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.5" + } + }, + "@statoscope/stats": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/stats/-/stats-5.14.1.tgz", + "integrity": "sha512-Kz7kCKuT6DXaqAPfyTwp27xHMDUna9o6UlRSQXXBZ8Yyk7eYYvTNw+5ffRyqivL9IOzD7FQYDQ6VUBHh0UfyDw==", + "dev": true + }, + "@statoscope/stats-extension-compressed": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-compressed/-/stats-extension-compressed-5.19.0.tgz", + "integrity": "sha512-CVV6dDi0vo5wDzXOuTmwydeHyjE/i56TUfA+S3llVLsxasMc6udtkLBKUfCQkbAUTJlYJcY8yUR6fH7SfiqOZw==", + "dev": true, + "requires": { + "@statoscope/helpers": "5.19.0", + "gzip-size": "^6.0.0" + } + }, + "@statoscope/stats-extension-custom-reports": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-custom-reports/-/stats-extension-custom-reports-5.19.0.tgz", + "integrity": "sha512-RoOyVPZSYsk1MF/yvryuD0mNlc88OCSyr32EXTpqxlK1w0w/7SxxLtDHpSbKoMxdMrYHxvi32apjoNh03BsD+Q==", + "dev": true, + "requires": { + "@statoscope/extensions": "5.14.1", + "@statoscope/helpers": "5.19.0", + "@statoscope/stats": "5.14.1", + "@statoscope/types": "5.14.1" + } + }, + "@statoscope/stats-extension-package-info": { + "version": "5.19.3", + "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-package-info/-/stats-extension-package-info-5.19.3.tgz", + "integrity": "sha512-KUvzAkNiw1vNUY2i5IoSVnf6pIyiK3BWHOkmw94SCPWA+BXizwGbGIn6qyW/A4BI1icZvnuE4Gcrtyg0zML0KA==", + "dev": true, + "requires": { + "@statoscope/helpers": "5.19.0" + } + }, + "@statoscope/stats-extension-stats-validation-result": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-stats-validation-result/-/stats-extension-stats-validation-result-5.19.0.tgz", + "integrity": "sha512-9pNmSooDvhUNF5OJyOrmiKjEo+WaCKZhjmZX592uX653JeKr1xTwDxjSWgWyPKkkeyvMHw2T2CjB+WM8Rd/FmA==", + "dev": true, + "requires": { + "@statoscope/extensions": "5.14.1", + "@statoscope/helpers": "5.19.0", + "@statoscope/stats": "5.14.1", + "@statoscope/types": "5.14.1" + } + }, + "@statoscope/types": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/types/-/types-5.14.1.tgz", + "integrity": "sha512-vIo7aq2E71AC3y3mdnZqA5aupYUaEIHuPD2gUG0bAA8zTXH7YICk7nRkuxx7xnCBhTZTXAgvtF8hgQ35K4N8oQ==", + "dev": true, + "requires": { + "@statoscope/stats": "5.14.1" + } + }, + "@statoscope/webpack-model": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-model/-/webpack-model-5.20.1.tgz", + "integrity": "sha512-3I8fccxQiikQqoLq9K0A/qLedNehGwifpcJtXGC8YuIXJVAGU1BVudjBSveqgaVyiSdw3RKJB9TU6lsf6BGoQw==", + "dev": true, + "requires": { + "@statoscope/extensions": "5.14.1", + "@statoscope/helpers": "5.19.0", + "@statoscope/stats": "5.14.1", + "@statoscope/stats-extension-compressed": "5.19.0", + "@statoscope/stats-extension-custom-reports": "5.19.0", + "@statoscope/stats-extension-package-info": "5.19.3", + "@statoscope/stats-extension-stats-validation-result": "5.19.0", + "@statoscope/types": "5.14.1", + "ajv": "^8.6.3", + "md5": "^2.3.0" + }, + "dependencies": { + "ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "@statoscope/webpack-plugin": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-plugin/-/webpack-plugin-5.20.1.tgz", + "integrity": "sha512-H4RsRnsEPnbKtC3/OuvhFzAolw8TwKOw0RVso8brlh2a5WLddWikFGUl1/KRQqKB45R3q1e4rnTPe+MVAVwAVA==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.5", + "@statoscope/report-writer": "5.20.0", + "@statoscope/stats": "5.14.1", + "@statoscope/stats-extension-compressed": "5.19.0", + "@statoscope/stats-extension-custom-reports": "5.19.0", + "@statoscope/types": "5.14.1", + "@statoscope/webpack-model": "5.20.1", + "@statoscope/webpack-stats-extension-compressed": "5.20.1", + "@statoscope/webpack-stats-extension-package-info": "5.20.1", + "@statoscope/webpack-ui": "5.20.1", + "open": "^8.2.1" + } + }, + "@statoscope/webpack-stats-extension-compressed": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-stats-extension-compressed/-/webpack-stats-extension-compressed-5.20.1.tgz", + "integrity": "sha512-UpvC2sKzFDBgetoyF4D8EyUqoPNHwIlUSewRwyqA0pdUYgNPNv8jGdNeLSLBDP7DORXaWDu1cFAf2Feal+d4OQ==", + "dev": true, + "requires": { + "@statoscope/stats": "5.14.1", + "@statoscope/stats-extension-compressed": "5.19.0", + "@statoscope/webpack-model": "5.20.1" + } + }, + "@statoscope/webpack-stats-extension-package-info": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-stats-extension-package-info/-/webpack-stats-extension-package-info-5.20.1.tgz", + "integrity": "sha512-pHGEe1vgyaOk5U9QRpHyRLgV+Ju8SnvPxHGl1BSsle1YJv7ksW6gkatEN95ySaPFcVGp+YOMacjAf1mHQ+0I/g==", + "dev": true, + "requires": { + "@statoscope/stats": "5.14.1", + "@statoscope/stats-extension-package-info": "5.19.3", + "@statoscope/webpack-model": "5.20.1" + } + }, + "@statoscope/webpack-ui": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-ui/-/webpack-ui-5.20.1.tgz", + "integrity": "sha512-C/6yOuYYdaHEe3BWUavkJAu8BoXLiRzRxq01z1FolT6V3btr2ILnCHdhNOtkIJt5wbTFnmtxCbMsx4RK49gq2g==", + "dev": true, + "requires": { + "@statoscope/types": "5.14.1", + "highcharts": "^9.2.2" + } + }, "@types/anymatch": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", "dev": true }, + "@types/archy": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/archy/-/archy-0.0.32.tgz", + "integrity": "sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg==", + "dev": true + }, "@types/body-parser": { "version": "1.16.8", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.16.8.tgz", @@ -2592,6 +2805,12 @@ "integrity": "sha512-uD0j/AQOa5le7afuK+u+woi8jNKF1vf3DN0H7LCJhft/lNNibUr7VcAesdgtWfEKveZol3ZG1CJqwx2Bhrnl8w==", "dev": true }, + "@types/semver": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", + "dev": true + }, "@types/serve-static": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz", @@ -3152,6 +3371,12 @@ "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", "dev": true }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", @@ -4174,6 +4399,12 @@ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -4787,6 +5018,12 @@ "which": "^1.2.9" } }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -6095,6 +6332,12 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -8518,6 +8761,23 @@ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", "dev": true }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + }, + "dependencies": { + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + } + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -8725,6 +8985,12 @@ "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz", "integrity": "sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg==" }, + "highcharts": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.3.3.tgz", + "integrity": "sha512-QeOvm6cifeZYYdTLm4IxZsXcOE9c4xqfs0z0OJJ0z7hhA9WG0rmcVAyuIp5HBl/znjA/ayYHmpYjBYD/9PG4Fg==", + "dev": true + }, "highlight.js": { "version": "11.4.0", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.4.0.tgz", @@ -9184,6 +9450,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -9284,6 +9556,12 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -9571,6 +9849,12 @@ } } }, + "jora": { + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/jora/-/jora-1.0.0-beta.5.tgz", + "integrity": "sha512-hPJKQyF0eiCqQOwfgIuQa+8wIn+WcEcjjyeOchuiXEUnt6zbV0tHKsUqRRwJY47ZtBiGcJQNr/BGuYW1Sfwbvg==", + "dev": true + }, "js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", @@ -10165,6 +10449,17 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.10.tgz", "integrity": "sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw==" }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -11380,6 +11675,28 @@ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -13849,6 +14166,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", diff --git a/package.json b/package.json index 4288fed32..a9bc44b99 100644 --- a/package.json +++ b/package.json @@ -108,6 +108,7 @@ "@babel/preset-react": "7.16.7", "@babel/preset-typescript": "7.16.7", "@babel/runtime": "7.17.2", + "@statoscope/webpack-plugin": "5.20.1", "@types/body-parser": "1.16.8", "@types/chai": "4.2.7", "@types/chai-datetime": "0.0.33",