From 52b8d14c2babb3edf25130df0ddbe6cb5f6db029 Mon Sep 17 00:00:00 2001 From: Hiroki Osame Date: Wed, 11 Aug 2021 12:22:05 -0400 Subject: [PATCH 1/3] docs: remove css source map caveat --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 0707398f..b3c1a30d 100644 --- a/README.md +++ b/README.md @@ -118,8 +118,6 @@ If you're not using TypeScript, JSX, or any syntax unsupported by Webpack, you c There are two ways to minify CSS, depending on your setup. You should already have CSS setup in your build using [`css-loader`](https://github.com/webpack-contrib/css-loader). -⚠️ esbuild currently [doesn't support source-maps for CSS minification](https://github.com/evanw/esbuild/issues/519). - #### CSS assets If your CSS is extracted and emitted as a CSS file, you can replace CSS minification plugins like [`css-minimizer-webpack-plugin`](https://github.com/webpack-contrib/css-minimizer-webpack-plugin) or [`optimize-css-assets-webpack-plugin`](https://github.com/NMFR/optimize-css-assets-webpack-plugin) with the same `ESBuildMinifyPlugin` by enabling the `css` option. From 21a5dd127f56ab93ed81004cf8835a4bca69d2c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Falc=C3=A3o?= Date: Thu, 19 Aug 2021 16:12:55 +0100 Subject: [PATCH 2/3] fix(minify): invalid esbuild options with custom implementation (#197) Co-authored-by: Hiroki Osame --- src/minify-plugin.ts | 4 +- test/__snapshots__/minify.test.ts.snap | 58 ++++++++++++++++++++++++++ test/minify.test.ts | 20 +++++++++ 3 files changed, 80 insertions(+), 2 deletions(-) diff --git a/src/minify-plugin.ts b/src/minify-plugin.ts index e3d67865..cd649747 100644 --- a/src/minify-plugin.ts +++ b/src/minify-plugin.ts @@ -42,7 +42,7 @@ class ESBuildMinifyPlugin { private readonly transform: typeof defaultEsbuildTransform; constructor(options: MinifyPluginOptions = {}) { - const { implementation } = options; + const { implementation, ...remainingOptions } = options; if (implementation && typeof implementation.transform !== 'function') { throw new TypeError( `ESBuildMinifyPlugin: implementation.transform must be an ESBuild transform function. Received ${typeof implementation.transform}`, @@ -51,7 +51,7 @@ class ESBuildMinifyPlugin { this.transform = implementation?.transform ?? defaultEsbuildTransform; - this.options = { ...options }; + this.options = remainingOptions; const hasGranularMinificationConfig = granularMinifyConfigs.some( minifyConfig => minifyConfig in options, diff --git a/test/__snapshots__/minify.test.ts.snap b/test/__snapshots__/minify.test.ts.snap index 850fe3d7..b3028392 100644 --- a/test/__snapshots__/minify.test.ts.snap +++ b/test/__snapshots__/minify.test.ts.snap @@ -205,6 +205,35 @@ exports[`Webpack 4 Loader + Minification minify w/ source-map option and source- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy9zcmMvZm9vLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIyQkFDRSxHQUFJLEdBQW1CLEdBR3ZCLFdBQTZCLEVBQVUsQ0FHdEMsR0FBRyxFQUFpQixHQUNuQixNQUFPLEdBQWlCLEdBQVUsUUFHbkMsR0FBSSxHQUFTLEVBQWlCLEdBQVksQ0FDekMsRUFBRyxFQUNILEVBQUcsR0FDSCxRQUFTLElBSVYsU0FBUSxHQUFVLEtBQUssRUFBTyxRQUFTLEVBQVEsRUFBTyxRQUFTLEdBRy9ELEVBQU8sRUFBSSxHQUdKLEVBQU8sUUFLZixTQUFvQixFQUFJLEVBR3hCLEVBQW9CLEVBQUksRUFHeEIsRUFBb0IsRUFBSSxTQUFTLEVBQVMsRUFBTSxFQUFRLENBQ25ELEVBQW9CLEVBQUUsRUFBUyxJQUNsQyxPQUFPLGVBQWUsRUFBUyxFQUFNLENBQUUsV0FBWSxHQUFNLElBQUssS0FLaEUsRUFBb0IsRUFBSSxTQUFTLEVBQVMsQ0FDdEMsTUFBTyxTQUFXLGFBQWUsT0FBTyxhQUMxQyxPQUFPLGVBQWUsRUFBUyxPQUFPLFlBQWEsQ0FBRSxNQUFPLFdBRTdELE9BQU8sZUFBZSxFQUFTLGFBQWMsQ0FBRSxNQUFPLE1BUXZELEVBQW9CLEVBQUksU0FBUyxFQUFPLEVBQU0sQ0FHN0MsR0FGRyxFQUFPLEdBQUcsR0FBUSxFQUFvQixJQUN0QyxFQUFPLEdBQ04sRUFBTyxHQUFNLE1BQU8sSUFBVSxVQUFZLEdBQVMsRUFBTSxXQUFZLE1BQU8sR0FDaEYsR0FBSSxHQUFLLE9BQU8sT0FBTyxNQUd2QixHQUZBLEVBQW9CLEVBQUUsR0FDdEIsT0FBTyxlQUFlLEVBQUksVUFBVyxDQUFFLFdBQVksR0FBTSxNQUFPLElBQzdELEVBQU8sR0FBSyxNQUFPLElBQVMsU0FBVSxPQUFRLEtBQU8sR0FBTyxFQUFvQixFQUFFLEVBQUksRUFBSyxTQUFTLEVBQUssQ0FBRSxNQUFPLEdBQU0sSUFBUSxLQUFLLEtBQU0sSUFDOUksTUFBTyxJQUlSLEVBQW9CLEVBQUksU0FBUyxFQUFRLENBQ3hDLEdBQUksR0FBUyxHQUFVLEVBQU8sV0FDN0IsVUFBc0IsQ0FBRSxNQUFPLEdBQU8sU0FDdEMsVUFBNEIsQ0FBRSxNQUFPLElBQ3RDLFNBQW9CLEVBQUUsRUFBUSxJQUFLLEdBQzVCLEdBSVIsRUFBb0IsRUFBSSxTQUFTLEVBQVEsRUFBVSxDQUFFLE1BQU8sUUFBTyxVQUFVLGVBQWUsS0FBSyxFQUFRLElBR3pHLEVBQW9CLEVBQUksR0FJakIsRUFBb0IsRUFBb0IsRUFBSSxtQiwrcUNDbEZyRCxXQUNlLEVBQVMsS0FBTSxHQUVmLEVBQVMsV0FFVCxFQUFXLEtBQUssQ0FDNUIsS0FBTSxHQUFJLENBQUUsRUFBRyxHQUNmLEdBQUksR0FBSSxLQUFJLEdBRVosTUFEUSxHQUFLLEVBQUwsUUFJSSxFQUFXLEtBQUssQ0FDNUIsR0FBSSxDQUNILE1BQU8sWUFDQSxFQURBLE9BSUksRUFBVyxLQUFLLENBbEIvQixNQW1CRyxLQUFNLEdBQU0sQ0FDWCxTQUFVLEdBRVgsTUFBTyxDQUNOLGlCQUFLLFNBQ0wsS0FBSSxPQUFKLE9BQVksRUFDWixPQUlXLEVBQVcsS0FBSyxDQUM1QixHQUFJLEdBQ0EsRUFBSSxFQUNSLEtBQU0sR0FBSSxFQUNWLE1BQU8sQ0FDTixNQUFNLEdBQ04sTUFBTSxRQUlLLEVBQVcsS0FBSyxDQXZDL0IsMEJBd0NHLE1BQU8sQ0FDTixLQUFNLENBQU4sYUF6Q0osQ0F5Q1ksV0FBSSxLQUNaLFFBQU0sR0FBUyxFQUFmLEVBQWUsSUFBSSxHQUFuQixHQUNBLFFBQU0sQ0FBTixhQTNDSixDQTJDWSw0QkFBRSxVQUFHLEdBQWIsR0FDQSxRQUFNLENBQU4sYUE1Q0osQ0E0Q1ksaUNBQVIsR0FDQSxRQUFNLEdBQVMsZ0JBQWYsRUFBZSxVQUFmLEdBQ0EsUUFBTSxHQUFTLGdCQUFFLFVBQUcsR0FBTCxFQUFmLEVBQWUsR0FBZixHQUNBIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IFwiLi9zcmMvaW5kZXguanNcIik7XG4iLCJcblx0XHRleHBvcnQgY29uc3QgZXMyMDE2ID0gMTAgKiogNDtcblxuXHRcdGV4cG9ydCBjb25zdCBlczIwMTcgPSB0eXBlb2YgKGFzeW5jICgpID0+IHt9KTtcblxuXHRcdGV4cG9ydCBjb25zdCBlczIwMTggPSAoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeSA9IHsgYTogMSB9XG5cdFx0XHRsZXQgeCA9IHsuLi55fVxuXHRcdFx0bGV0IHsuLi56fSA9IHlcblx0XHRcdHJldHVybiB6O1xuXHRcdH0pKCk7XG5cblx0XHRleHBvcnQgY29uc3QgZXMyMDE5ID0gKCgpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHJldHVybiAndHJ5J1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH0pKCk7XG5cblx0XHRleHBvcnQgY29uc3QgZXMyMDIwID0gKCgpID0+IHtcblx0XHRcdGNvbnN0IG9iaiA9IHtcblx0XHRcdFx0cHJvcGVydHk6IDEsXG5cdFx0XHR9O1xuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0b2JqPy5wcm9wZXJ0eSxcblx0XHRcdFx0b2JqLnByb3AgPz8gMixcblx0XHRcdFx0aW1wb3J0Lm1ldGEsXG5cdFx0XHRdO1xuXHRcdH0pKCk7XG5cblx0XHRleHBvcnQgY29uc3QgZXMyMDIxID0gKCgpID0+IHtcblx0XHRcdGxldCBhO1xuXHRcdFx0bGV0IHggPSAwO1xuXHRcdFx0Y29uc3QgeSA9IDM7XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRhID8/PSAyLFxuXHRcdFx0XHR4IHx8PSB5LFxuXHRcdFx0XTtcblx0XHR9KSgpO1xuXG5cdFx0ZXhwb3J0IGNvbnN0IGVzbmV4dCA9ICgoKSA9PiB7XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRjbGFzcyB7IHggPSAyOyB9LFxuXHRcdFx0XHRjbGFzcyB7IHN0YXRpYyB4ID0gMTsgfSxcblx0XHRcdFx0Y2xhc3MgeyAjeCgpIHt9IH0sXG5cdFx0XHRcdGNsYXNzIHsgI3ggfSxcblx0XHRcdFx0Y2xhc3MgeyBzdGF0aWMgI3ggfSxcblx0XHRcdFx0Y2xhc3MgeyBzdGF0aWMgI3goKSB7fSB9LFxuXHRcdFx0XHQxXzAwMF8wMDBfMDAwLFxuXHRcdFx0XTtcblx0XHR9KSgpO1xuXHQiXSwic291cmNlUm9vdCI6IiJ9" `; +exports[`Webpack 4 Loader + Minification minify with custom implementation - real 1`] = ` +Object { + "es2016": 10000, + "es2017": "function", + "es2018": Object { + "a": 1, + }, + "es2019": "try", + "es2020": Array [ + 1, + 2, + Object {}, + ], + "es2021": Array [ + 2, + 3, + ], + "esnext": Array [ + [Function], + [Function], + [Function], + [Function], + [Function], + [Function], + 1000000000, + ], +} +`; + exports[`Webpack 4 Loader + Minification minify with custom implementation 1`] = `"export function foo() { return \\"MY_CUSTOM_ESBUILD_IMPLEMENTATION\\"; }"`; exports[`Webpack 4 Loader + Minification minifyIdentifiers 1`] = ` @@ -872,6 +901,35 @@ exports[`Webpack 5 Loader + Minification minify w/ source-map option and source- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly8vd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly8vd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly8vLi9zcmMvZm9vLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJtQkFDQSxHQUFJLEdBQXNCLEcsTUNBMUIsRUFBb0IsRUFBSSxDQUFDLEVBQVMsSUFBZSxDQUNoRCxPQUFRLEtBQU8sR0FDWCxFQUFvQixFQUFFLEVBQVksSUFBUSxDQUFDLEVBQW9CLEVBQUUsRUFBUyxJQUM1RSxPQUFPLGVBQWUsRUFBUyxFQUFLLENBQUUsV0FBWSxHQUFNLElBQUssRUFBVyxVLE1DSjNFLEVBQW9CLEVBQUksQ0FBQyxFQUFLLElBQVUsT0FBTyxVQUFVLGVBQWUsS0FBSyxFQUFLLE8sTUNDbEYsRUFBb0IsRUFBSyxHQUFZLENBQ2pDLE1BQU8sU0FBVyxhQUFlLE9BQU8sYUFDMUMsT0FBTyxlQUFlLEVBQVMsT0FBTyxZQUFhLENBQUUsTUFBTyxXQUU3RCxPQUFPLGVBQWUsRUFBUyxhQUFjLENBQUUsTUFBTyxVLDArQkNMdkQsV0FDZSxFQUFTLEtBQU0sR0FFZixFQUFTLFdBRVQsRUFBVyxLQUFLLENBQzVCLEtBQU0sR0FBSSxDQUFFLEVBQUcsR0FDZixHQUFJLEdBQUksS0FBSSxHQUVaLE1BRFEsR0FBSyxFQUFMLFFBSUksRUFBVyxLQUFLLENBQzVCLEdBQUksQ0FDSCxNQUFPLFlBQ0EsRUFEQSxPQUlJLEVBQVcsS0FBSyxDQWxCL0IsTUFtQkcsS0FBTSxHQUFNLENBQ1gsU0FBVSxHQUVYLE1BQU8sQ0FDTixpQkFBSyxTQUNMLEtBQUksT0FBSixPQUFZLEVBQ1osT0FJVyxFQUFXLEtBQUssQ0FDNUIsR0FBSSxHQUNBLEVBQUksRUFDUixLQUFNLEdBQUksRUFDVixNQUFPLENBQ04sTUFBTSxHQUNOLE1BQU0sUUFJSyxFQUFXLEtBQUssQ0F2Qy9CLDBCQXdDRyxNQUFPLENBQ04sS0FBTSxDQUFOLGFBekNKLENBeUNZLFdBQUksS0FDWixRQUFNLEdBQVMsRUFBZixFQUFlLElBQUksR0FBbkIsR0FDQSxRQUFNLENBQU4sYUEzQ0osQ0EyQ1ksNEJBQUUsVUFBRyxHQUFiLEdBQ0EsUUFBTSxDQUFOLGFBNUNKLENBNENZLGlDQUFSLEdBQ0EsUUFBTSxHQUFTLGdCQUFmLEVBQWUsVUFBZixHQUNBLFFBQU0sR0FBUyxnQkFBRSxVQUFHLEdBQUwsRUFBZixFQUFlLEdBQWYsR0FDQSxTIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhlIHJlcXVpcmUgc2NvcGVcbnZhciBfX3dlYnBhY2tfcmVxdWlyZV9fID0ge307XG5cbiIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJcblx0XHRleHBvcnQgY29uc3QgZXMyMDE2ID0gMTAgKiogNDtcblxuXHRcdGV4cG9ydCBjb25zdCBlczIwMTcgPSB0eXBlb2YgKGFzeW5jICgpID0+IHt9KTtcblxuXHRcdGV4cG9ydCBjb25zdCBlczIwMTggPSAoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeSA9IHsgYTogMSB9XG5cdFx0XHRsZXQgeCA9IHsuLi55fVxuXHRcdFx0bGV0IHsuLi56fSA9IHlcblx0XHRcdHJldHVybiB6O1xuXHRcdH0pKCk7XG5cblx0XHRleHBvcnQgY29uc3QgZXMyMDE5ID0gKCgpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHJldHVybiAndHJ5J1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH0pKCk7XG5cblx0XHRleHBvcnQgY29uc3QgZXMyMDIwID0gKCgpID0+IHtcblx0XHRcdGNvbnN0IG9iaiA9IHtcblx0XHRcdFx0cHJvcGVydHk6IDEsXG5cdFx0XHR9O1xuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0b2JqPy5wcm9wZXJ0eSxcblx0XHRcdFx0b2JqLnByb3AgPz8gMixcblx0XHRcdFx0aW1wb3J0Lm1ldGEsXG5cdFx0XHRdO1xuXHRcdH0pKCk7XG5cblx0XHRleHBvcnQgY29uc3QgZXMyMDIxID0gKCgpID0+IHtcblx0XHRcdGxldCBhO1xuXHRcdFx0bGV0IHggPSAwO1xuXHRcdFx0Y29uc3QgeSA9IDM7XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRhID8/PSAyLFxuXHRcdFx0XHR4IHx8PSB5LFxuXHRcdFx0XTtcblx0XHR9KSgpO1xuXG5cdFx0ZXhwb3J0IGNvbnN0IGVzbmV4dCA9ICgoKSA9PiB7XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRjbGFzcyB7IHggPSAyOyB9LFxuXHRcdFx0XHRjbGFzcyB7IHN0YXRpYyB4ID0gMTsgfSxcblx0XHRcdFx0Y2xhc3MgeyAjeCgpIHt9IH0sXG5cdFx0XHRcdGNsYXNzIHsgI3ggfSxcblx0XHRcdFx0Y2xhc3MgeyBzdGF0aWMgI3ggfSxcblx0XHRcdFx0Y2xhc3MgeyBzdGF0aWMgI3goKSB7fSB9LFxuXHRcdFx0XHQxXzAwMF8wMDBfMDAwLFxuXHRcdFx0XTtcblx0XHR9KSgpO1xuXHQiXSwic291cmNlUm9vdCI6IiJ9" `; +exports[`Webpack 5 Loader + Minification minify with custom implementation - real 1`] = ` +Object { + "es2016": 10000, + "es2017": "function", + "es2018": Object { + "a": 1, + }, + "es2019": "try", + "es2020": Array [ + 1, + 2, + Object {}, + ], + "es2021": Array [ + 2, + 3, + ], + "esnext": Array [ + [Function], + [Function], + [Function], + [Function], + [Function], + [Function], + 1000000000, + ], +} +`; + exports[`Webpack 5 Loader + Minification minify with custom implementation 1`] = `"export function foo() { return \\"MY_CUSTOM_ESBUILD_IMPLEMENTATION\\"; }"`; exports[`Webpack 5 Loader + Minification minifyIdentifiers 1`] = ` diff --git a/test/minify.test.ts b/test/minify.test.ts index f60417ce..090009d4 100644 --- a/test/minify.test.ts +++ b/test/minify.test.ts @@ -2,6 +2,7 @@ import webpack4 from 'webpack'; import webpack5 from 'webpack5'; import MiniCssExtractPlugin from 'mini-css-extract-plugin'; import { RawSource } from 'webpack-sources'; +import * as esbuild from 'esbuild'; import { MinifyPluginOptions } from '../src/interfaces'; import { ESBuildMinifyPlugin } from '../src/index'; import { build, getFile } from './utils'; @@ -384,6 +385,25 @@ describe.each([ expect(content).toMatchSnapshot(); }); + test('minify with custom implementation - real', async () => { + const statsUnminified = await build(webpack, fixtures.js); + const stats = await build(webpack, fixtures.js, (config) => { + config.optimization = { + minimize: true, + minimizer: [ + new ESBuildMinifyPlugin({ + target: 'es2019', + implementation: esbuild, + }), + ], + }; + }); + expect(statsUnminified.hash).not.toBe(stats.hash); + + const file = getFile(stats, '/dist/index.js'); + expect(file.execute()).toMatchSnapshot(); + }); + describe('CSS', () => { test('minify via loader', async () => { const stats = await build(webpack, fixtures.css, (config) => { From 06c1cac45df1edda8d5d23420b143d3caff49809 Mon Sep 17 00:00:00 2001 From: hiroki osame Date: Thu, 19 Aug 2021 11:20:45 -0400 Subject: [PATCH 3/3] chore: upgrade dependencies (#202) --- package.json | 6 +- pnpm-lock.yaml | 176 +++++++++++++------------ test/__snapshots__/loader.test.ts.snap | 10 +- test/__snapshots__/minify.test.ts.snap | 12 +- 4 files changed, 105 insertions(+), 99 deletions(-) diff --git a/package.json b/package.json index 77f1343d..a0250791 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "webpack": "^4.40.0 || ^5.0.0" }, "dependencies": { - "esbuild": "^0.12.19", + "esbuild": "^0.12.21", "joycon": "^3.0.1", "json5": "^2.2.0", "loader-utils": "^2.0.0", @@ -49,8 +49,8 @@ "webpack-sources": "^2.2.0" }, "devDependencies": { - "@pvtnbr/eslint-config-typescript": "^0.1.19", - "@types/jest": "^27.0.0", + "@pvtnbr/eslint-config-typescript": "^0.1.22", + "@types/jest": "^27.0.1", "@types/loader-utils": "^2.0.3", "@types/webpack": "^4.41.30", "css-loader": "^5.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d8aa0f1..e74e1c8d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,12 +1,12 @@ lockfileVersion: 5.3 specifiers: - '@pvtnbr/eslint-config-typescript': ^0.1.19 - '@types/jest': ^27.0.0 + '@pvtnbr/eslint-config-typescript': ^0.1.22 + '@types/jest': ^27.0.1 '@types/loader-utils': ^2.0.3 '@types/webpack': ^4.41.30 css-loader: ^5.2.0 - esbuild: ^0.12.19 + esbuild: ^0.12.21 eslint: ^7.32.0 husky: ^4.3.8 jest: ^27.0.6 @@ -25,7 +25,7 @@ specifiers: webpack5: npm:webpack@^5.0.0 dependencies: - esbuild: 0.12.19 + esbuild: 0.12.21 joycon: 3.0.1 json5: 2.2.0 loader-utils: 2.0.0 @@ -34,8 +34,8 @@ dependencies: webpack-sources: 2.3.1 devDependencies: - '@pvtnbr/eslint-config-typescript': 0.1.19_eslint@7.32.0+typescript@4.3.5 - '@types/jest': 27.0.0 + '@pvtnbr/eslint-config-typescript': 0.1.22_eslint@7.32.0+typescript@4.3.5 + '@types/jest': 27.0.1 '@types/loader-utils': 2.0.3 '@types/webpack': 4.41.30 css-loader: 5.2.7_webpack@4.46.0 @@ -48,7 +48,7 @@ devDependencies: typescript: 4.3.5 unionfs: 4.4.0 webpack: 4.46.0 - webpack5: /webpack/5.50.0 + webpack5: /webpack/5.51.1 packages: @@ -641,24 +641,13 @@ packages: - supports-color dev: true - /@jest/types/26.6.2: - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - '@types/istanbul-reports': 3.0.1 - '@types/node': 16.4.13 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - dev: true - /@jest/types/27.0.6: resolution: {integrity: sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@types/istanbul-lib-coverage': 2.0.3 '@types/istanbul-reports': 3.0.1 - '@types/node': 16.4.13 + '@types/node': 16.6.2 '@types/yargs': 16.0.4 chalk: 4.1.2 dev: true @@ -684,8 +673,8 @@ packages: fastq: 1.11.1 dev: true - /@pvtnbr/eslint-config-base/0.1.19_eslint@7.32.0: - resolution: {integrity: sha512-7f413IrQXTq8ieC7NfcI9R6tR90RthbNu5dHl4u2yAz2MEAouHGs0/kPduOSBoMfttUYGJvkM6zjA89KHBW6ww==} + /@pvtnbr/eslint-config-base/0.1.22_eslint@7.32.0: + resolution: {integrity: sha512-PffUu+wfsVdP1xU0C/ahFdtU4xpTF8qYCR7tKkd8qbEYDjq2XAHBwquSVeS9FQjutGGYZeg7Vfq3xK5jw43EeA==} peerDependencies: eslint: ^7.15.0 dependencies: @@ -693,7 +682,7 @@ packages: eslint: 7.32.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.32.0 eslint-plugin-import: 2.24.0_eslint@7.32.0 - eslint-plugin-jsonc: 1.4.0_eslint@7.32.0 + eslint-plugin-jsonc: 1.5.0_eslint@7.32.0 eslint-plugin-no-use-extend-native: 0.5.0 eslint-plugin-node: 11.1.0_eslint@7.32.0 eslint-plugin-promise: 4.3.1 @@ -703,16 +692,18 @@ packages: - supports-color dev: true - /@pvtnbr/eslint-config-typescript/0.1.19_eslint@7.32.0+typescript@4.3.5: - resolution: {integrity: sha512-5zRQMNwtqoLsTePvWQ1hwyrjlpuhF/5NUHpHbCeoO1ytz4F6Msvag2qWVvBca+nZoztKrT/WAUagU95yJLrn2g==} + /@pvtnbr/eslint-config-typescript/0.1.22_eslint@7.32.0+typescript@4.3.5: + resolution: {integrity: sha512-Z7JlJVY2oAJVMN6etFIWvykCWSh29Eo7nd/Uui9hk0u1UzDzyzQWvQp574vTjbmEbU5UgjYec/9XqYfovUxm/g==} peerDependencies: eslint: ^7.15.0 dependencies: - '@pvtnbr/eslint-config-base': 0.1.19_eslint@7.32.0 + '@pvtnbr/eslint-config-base': 0.1.22_eslint@7.32.0 '@typescript-eslint/eslint-plugin': 4.29.1_d4376362794b743c19f4cba25c7fc6f5 '@typescript-eslint/parser': 4.29.1_eslint@7.32.0+typescript@4.3.5 eslint: 7.32.0 + eslint-import-resolver-typescript: 2.4.0_eslint@7.32.0 transitivePeerDependencies: + - eslint-plugin-import - supports-color - typescript dev: true @@ -803,11 +794,11 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jest/27.0.0: - resolution: {integrity: sha512-IlpQZVpxufe+3qPaAqEoSPHVSxnJh1cf0BqqWHJeKiAUbwnHdmNzjP3ZCWSZSTbmAGXQPNk9QmM3Bif0pR54rg==} + /@types/jest/27.0.1: + resolution: {integrity: sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw==} dependencies: - jest-diff: 26.6.2 - pretty-format: 26.6.2 + jest-diff: 27.0.6 + pretty-format: 27.0.6 dev: true /@types/json-schema/7.0.9: @@ -825,6 +816,10 @@ packages: resolution: {integrity: sha512-bLL69sKtd25w7p1nvg9pigE4gtKVpGTPojBFLMkGHXuUgap2sLqQt2qUnqmVCDfzGUL0DRNZP+1prIZJbMeAXg==} dev: true + /@types/node/16.6.2: + resolution: {integrity: sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA==} + dev: true + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -878,12 +873,6 @@ packages: resolution: {integrity: sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==} dev: true - /@types/yargs/15.0.14: - resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} - dependencies: - '@types/yargs-parser': 20.2.1 - dev: true - /@types/yargs/16.0.4: resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} dependencies: @@ -1718,6 +1707,18 @@ packages: node-releases: 1.1.74 dev: true + /browserslist/4.16.8: + resolution: {integrity: sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001251 + colorette: 1.3.0 + electron-to-chromium: 1.3.812 + escalade: 3.1.1 + node-releases: 1.1.75 + dev: true + /bser/2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -1805,6 +1806,10 @@ packages: resolution: {integrity: sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw==} dev: true + /caniuse-lite/1.0.30001251: + resolution: {integrity: sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==} + dev: true + /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -2272,11 +2277,6 @@ packages: engines: {node: '>=8'} dev: true - /diff-sequences/26.6.2: - resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} - engines: {node: '>= 10.14.2'} - dev: true - /diff-sequences/27.0.6: resolution: {integrity: sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -2336,6 +2336,10 @@ packages: resolution: {integrity: sha512-xapG8ekC+IAHtJrGBMQSImNuN+dm+zl7UP1YbhvTkwQn8zf/yYuoxfTSAEiJ9VDD+kjvXaAhNDPSxJ+VImtAJA==} dev: true + /electron-to-chromium/1.3.812: + resolution: {integrity: sha512-7KiUHsKAWtSrjVoTSzxQ0nPLr/a+qoxNZwkwd9LkylTOgOXSVXkQbpIVT0WAUQcI5gXq3SwOTCrK+WfINHOXQg==} + dev: true + /elliptic/6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} dependencies: @@ -2440,8 +2444,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild/0.12.19: - resolution: {integrity: sha512-5NuT1G6THW7l3fsSCDkcPepn24R0XtyPjKoqKHD8LfhqMXzCdz0mrS9HgO6hIhzVT7zt0T+JGbzCqF5AH8hS9w==} + /esbuild/0.12.21: + resolution: {integrity: sha512-7hyXbU3g94aREufI/5nls7Xcc+RGQeZWZApm6hoBaFvt2BPtpT4TjFMQ9Tb1jU8XyBGz00ShmiyflCogphMHFQ==} hasBin: true requiresBuild: true dev: false @@ -2479,13 +2483,30 @@ packages: source-map: 0.6.1 dev: true - /eslint-import-resolver-node/0.3.5: - resolution: {integrity: sha512-XMoPKjSpXbkeJ7ZZ9icLnJMTY5Mc1kZbCakHquaFsXPpyWOwK0TK6CODO+0ca54UoM9LKOxyUNnoVZRl8TeaAg==} + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: debug: 3.2.7 resolve: 1.20.0 dev: true + /eslint-import-resolver-typescript/2.4.0_eslint@7.32.0: + resolution: {integrity: sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA==} + engines: {node: '>=4'} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.2 + eslint: 7.32.0 + glob: 7.1.7 + is-glob: 4.0.1 + resolve: 1.20.0 + tsconfig-paths: 3.10.1 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-module-utils/2.6.2: resolution: {integrity: sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==} engines: {node: '>=4'} @@ -2527,11 +2548,11 @@ packages: debug: 2.6.9 doctrine: 2.1.0 eslint: 7.32.0 - eslint-import-resolver-node: 0.3.5 + eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.6.2 find-up: 2.1.0 has: 1.0.3 - is-core-module: 2.5.0 + is-core-module: 2.6.0 minimatch: 3.0.4 object.values: 1.1.4 pkg-up: 2.0.0 @@ -2540,14 +2561,15 @@ packages: tsconfig-paths: 3.10.1 dev: true - /eslint-plugin-jsonc/1.4.0_eslint@7.32.0: - resolution: {integrity: sha512-SmajEsMUFIIZEnUdng5b2U1MkxB9pOb7IiiGKOsh+W6cFbPljFIH8ET+6vy1eLI0u2YQEzjGZ7xGiWs8ynk4Xw==} + /eslint-plugin-jsonc/1.5.0_eslint@7.32.0: + resolution: {integrity: sha512-VQoAuoi5QXG0HqNnvy4L2+M0mGrBOcEAL/MJcem8cS43J18l5P5CXkEjq5rYY4HPeqP+ccboc3UrzGu98ifsiQ==} + engines: {node: '>=8.10.0'} peerDependencies: eslint: ^5.0.0 || >=6.0.0 dependencies: eslint: 7.32.0 eslint-utils: 3.0.0_eslint@7.32.0 - jsonc-eslint-parser: 1.1.0_eslint@7.32.0 + jsonc-eslint-parser: 1.2.0_eslint@7.32.0 natural-compare: 1.4.0 dev: true @@ -3431,8 +3453,10 @@ packages: resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} dev: true - /is-bigint/1.0.3: - resolution: {integrity: sha512-ZU538ajmYJmzysE5yU4Y7uIrPQ2j704u+hXFiIPQExpqzzUbpe5jCPdTfmz7jXRxZdvjY3KZ3ZNenoXQovX+Dg==} + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.1 dev: true /is-binary-path/1.0.1: @@ -3475,8 +3499,8 @@ packages: ci-info: 3.2.0 dev: true - /is-core-module/2.5.0: - resolution: {integrity: sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==} + /is-core-module/2.6.0: + resolution: {integrity: sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==} dependencies: has: 1.0.3 dev: true @@ -3848,16 +3872,6 @@ packages: - utf-8-validate dev: true - /jest-diff/26.6.2: - resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - diff-sequences: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-diff/27.0.6: resolution: {integrity: sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -3916,11 +3930,6 @@ packages: jest-util: 27.0.6 dev: true - /jest-get-type/26.3.0: - resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} - engines: {node: '>= 10.14.2'} - dev: true - /jest-get-type/27.0.6: resolution: {integrity: sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4204,7 +4213,7 @@ packages: resolution: {integrity: sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.4.13 + '@types/node': 16.6.2 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -4340,8 +4349,9 @@ packages: dependencies: minimist: 1.2.5 - /jsonc-eslint-parser/1.1.0_eslint@7.32.0: - resolution: {integrity: sha512-FA3oS+8V0Mz4vv19YpY4TuZZi2ecR0RHTua9SjbCYb4+e35MWKIi7jn17zdGi6jxE7Cv7Vk61ml376MmMENieA==} + /jsonc-eslint-parser/1.2.0_eslint@7.32.0: + resolution: {integrity: sha512-+vnjPNITAoDX2G9/IWV5vo234gQM3Gz40VuLIr74mc86f8UIKJ9blre+HnX2pHXejxolevV2a+BpaC0nhTq8yA==} + engines: {node: '>=8.10.0'} dependencies: eslint-utils: 3.0.0_eslint@7.32.0 eslint-visitor-keys: 3.0.0 @@ -4850,6 +4860,10 @@ packages: resolution: {integrity: sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw==} dev: true + /node-releases/1.1.75: + resolution: {integrity: sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==} + dev: true + /normalize-package-data/2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: @@ -5318,16 +5332,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /pretty-format/26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} - engines: {node: '>= 10'} - dependencies: - '@jest/types': 26.6.2 - ansi-regex: 5.0.0 - ansi-styles: 4.3.0 - react-is: 17.0.2 - dev: true - /pretty-format/27.0.6: resolution: {integrity: sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -5602,7 +5606,7 @@ packages: /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: - is-core-module: 2.5.0 + is-core-module: 2.6.0 path-parse: 1.0.7 dev: true @@ -6592,8 +6596,8 @@ packages: webpack-sources: 1.4.3 dev: true - /webpack/5.50.0: - resolution: {integrity: sha512-hqxI7t/KVygs0WRv/kTgUW8Kl3YC81uyWQSo/7WUs5LsuRw0htH/fCwbVBGCuiX/t4s7qzjXFcf41O8Reiypag==} + /webpack/5.51.1: + resolution: {integrity: sha512-xsn3lwqEKoFvqn4JQggPSRxE4dhsRcysWTqYABAZlmavcoTmwlOb9b1N36Inbt/eIispSkuHa80/FJkDTPos1A==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -6609,7 +6613,7 @@ packages: '@webassemblyjs/wasm-parser': 1.11.1 acorn: 8.4.1 acorn-import-assertions: 1.7.6_acorn@8.4.1 - browserslist: 4.16.7 + browserslist: 4.16.8 chrome-trace-event: 1.0.3 enhanced-resolve: 5.8.2 es-module-lexer: 0.7.1 @@ -6650,7 +6654,7 @@ packages: /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: - is-bigint: 1.0.3 + is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.6 is-string: 1.0.7 diff --git a/test/__snapshots__/loader.test.ts.snap b/test/__snapshots__/loader.test.ts.snap index d0d4b909..a447fc00 100644 --- a/test/__snapshots__/loader.test.ts.snap +++ b/test/__snapshots__/loader.test.ts.snap @@ -4617,12 +4617,14 @@ exports[`Webpack 5 webpack magic comments 1`] = ` /******/ // add \\"moreModules\\" to the modules object, /******/ // then flag all \\"chunkIds\\" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } /******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/__snapshots__/minify.test.ts.snap b/test/__snapshots__/minify.test.ts.snap index b3028392..f6aca8eb 100644 --- a/test/__snapshots__/minify.test.ts.snap +++ b/test/__snapshots__/minify.test.ts.snap @@ -725,8 +725,8 @@ Object { `; exports[`Webpack 5 Loader + Minification minify chunks 1`] = ` -"(()=>{var b={},h={};function r(e){var n=h[e];if(n!==void 0)return n.exports;var o=h[e]={exports:{}};return b[e](o,o.exports,r),o.exports}r.m=b,(()=>{r.d=(e,n)=>{for(var o in n)r.o(n,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}})(),(()=>{r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,o)=>(r.f[o](e,n),n),[]))})(),(()=>{r.u=e=>\\"\\"+{\\"376\\":\\"named-chunk-bar\\",\\"600\\":\\"named-chunk-foo\\"}[e]+\\".js\\"})(),(()=>{r.g=function(){if(typeof globalThis==\\"object\\")return globalThis;try{return this||new Function(\\"return this\\")()}catch(e){if(typeof window==\\"object\\")return window}}()})(),(()=>{r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n)})(),(()=>{var e={};r.l=(n,o,i,d)=>{if(e[n]){e[n].push(o);return}var t,c;if(i!==void 0)for(var s=document.getElementsByTagName(\\"script\\"),l=0;l{t.onerror=t.onload=null,clearTimeout(f);var g=e[n];if(delete e[n],t.parentNode&&t.parentNode.removeChild(t),g&&g.forEach(w=>w(m)),p)return p(m)},f=setTimeout(a.bind(null,void 0,{type:\\"timeout\\",target:t}),12e4);t.onerror=a.bind(null,t.onerror),t.onload=a.bind(null,t.onload),c&&document.head.appendChild(t)}})(),(()=>{r.r=e=>{typeof Symbol!=\\"undefined\\"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})}})(),(()=>{var e;r.g.importScripts&&(e=r.g.location+\\"\\");var n=r.g.document;if(!e&&n&&(n.currentScript&&(e=n.currentScript.src),!e)){var o=n.getElementsByTagName(\\"script\\");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error(\\"Automatic publicPath is not supported in this browser\\");e=e.replace(/#.*$/,\\"\\").replace(/\\\\?.*$/,\\"\\").replace(/\\\\/[^\\\\/]+$/,\\"/\\"),r.p=e})(),(()=>{var e={826:0};r.f.j=(i,d)=>{var t=r.o(e,i)?e[i]:void 0;if(t!==0)if(t)d.push(t[2]);else{var c=new Promise((a,f)=>t=e[i]=[a,f]);d.push(t[2]=c);var s=r.p+r.u(i),l=new Error,u=a=>{if(r.o(e,i)&&(t=e[i],t!==0&&(e[i]=void 0),t)){var f=a&&(a.type===\\"load\\"?\\"missing\\":a.type),p=a&&a.target&&a.target.src;l.message=\\"Loading chunk \\"+i+\` failed. -(\`+f+\\": \\"+p+\\")\\",l.name=\\"ChunkLoadError\\",l.type=f,l.request=p,t[1](l)}};r.l(s,u,\\"chunk-\\"+i,i)}};var n=(i,d)=>{var[t,c,s]=d,l,u,a=0;for(l in c)r.o(c,l)&&(r.m[l]=c[l]);if(s)var f=s(r);for(i&&i(d);a{var b={},m={};function r(e){var n=m[e];if(n!==void 0)return n.exports;var o=m[e]={exports:{}};return b[e](o,o.exports,r),o.exports}r.m=b,(()=>{r.d=(e,n)=>{for(var o in n)r.o(n,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}})(),(()=>{r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,o)=>(r.f[o](e,n),n),[]))})(),(()=>{r.u=e=>\\"\\"+{\\"376\\":\\"named-chunk-bar\\",\\"600\\":\\"named-chunk-foo\\"}[e]+\\".js\\"})(),(()=>{r.g=function(){if(typeof globalThis==\\"object\\")return globalThis;try{return this||new Function(\\"return this\\")()}catch(e){if(typeof window==\\"object\\")return window}}()})(),(()=>{r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n)})(),(()=>{var e={};r.l=(n,o,i,p)=>{if(e[n]){e[n].push(o);return}var t,c;if(i!==void 0)for(var s=document.getElementsByTagName(\\"script\\"),l=0;l{t.onerror=t.onload=null,clearTimeout(f);var g=e[n];if(delete e[n],t.parentNode&&t.parentNode.removeChild(t),g&&g.forEach(w=>w(h)),d)return d(h)},f=setTimeout(a.bind(null,void 0,{type:\\"timeout\\",target:t}),12e4);t.onerror=a.bind(null,t.onerror),t.onload=a.bind(null,t.onload),c&&document.head.appendChild(t)}})(),(()=>{r.r=e=>{typeof Symbol!=\\"undefined\\"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})}})(),(()=>{var e;r.g.importScripts&&(e=r.g.location+\\"\\");var n=r.g.document;if(!e&&n&&(n.currentScript&&(e=n.currentScript.src),!e)){var o=n.getElementsByTagName(\\"script\\");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error(\\"Automatic publicPath is not supported in this browser\\");e=e.replace(/#.*$/,\\"\\").replace(/\\\\?.*$/,\\"\\").replace(/\\\\/[^\\\\/]+$/,\\"/\\"),r.p=e})(),(()=>{var e={826:0};r.f.j=(i,p)=>{var t=r.o(e,i)?e[i]:void 0;if(t!==0)if(t)p.push(t[2]);else{var c=new Promise((a,f)=>t=e[i]=[a,f]);p.push(t[2]=c);var s=r.p+r.u(i),l=new Error,u=a=>{if(r.o(e,i)&&(t=e[i],t!==0&&(e[i]=void 0),t)){var f=a&&(a.type===\\"load\\"?\\"missing\\":a.type),d=a&&a.target&&a.target.src;l.message=\\"Loading chunk \\"+i+\` failed. +(\`+f+\\": \\"+d+\\")\\",l.name=\\"ChunkLoadError\\",l.type=f,l.request=d,t[1](l)}};r.l(s,u,\\"chunk-\\"+i,i)}};var n=(i,p)=>{var[t,c,s]=p,l,u,a=0;if(t.some(d=>e[d]!==0)){for(l in c)r.o(c,l)&&(r.m[l]=c[l]);if(s)var f=s(r)}for(i&&i(p);a{var b={},h={};function r(e){var n=h[e];if(n!==void 0)return n.exports;var o=h[e]={exports:{}};return b[e](o,o.exports,r),o.exports}r.m=b,(()=>{r.d=(e,n)=>{for(var o in n)r.o(n,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}})(),(()=>{r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,o)=>(r.f[o](e,n),n),[]))})(),(()=>{r.u=e=>\\"\\"+{\\"376\\":\\"named-chunk-bar\\",\\"600\\":\\"named-chunk-foo\\"}[e]+\\".js\\"})(),(()=>{r.g=function(){if(typeof globalThis==\\"object\\")return globalThis;try{return this||new Function(\\"return this\\")()}catch(e){if(typeof window==\\"object\\")return window}}()})(),(()=>{r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n)})(),(()=>{var e={};r.l=(n,o,i,d)=>{if(e[n]){e[n].push(o);return}var t,c;if(i!==void 0)for(var s=document.getElementsByTagName(\\"script\\"),l=0;l{t.onerror=t.onload=null,clearTimeout(f);var g=e[n];if(delete e[n],t.parentNode&&t.parentNode.removeChild(t),g&&g.forEach(w=>w(m)),p)return p(m)},f=setTimeout(a.bind(null,void 0,{type:\\"timeout\\",target:t}),12e4);t.onerror=a.bind(null,t.onerror),t.onload=a.bind(null,t.onload),c&&document.head.appendChild(t)}})(),(()=>{r.r=e=>{typeof Symbol!=\\"undefined\\"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})}})(),(()=>{var e;r.g.importScripts&&(e=r.g.location+\\"\\");var n=r.g.document;if(!e&&n&&(n.currentScript&&(e=n.currentScript.src),!e)){var o=n.getElementsByTagName(\\"script\\");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error(\\"Automatic publicPath is not supported in this browser\\");e=e.replace(/#.*$/,\\"\\").replace(/\\\\?.*$/,\\"\\").replace(/\\\\/[^\\\\/]+$/,\\"/\\"),r.p=e})(),(()=>{var e={826:0};r.f.j=(i,d)=>{var t=r.o(e,i)?e[i]:void 0;if(t!==0)if(t)d.push(t[2]);else{var c=new Promise((a,f)=>t=e[i]=[a,f]);d.push(t[2]=c);var s=r.p+r.u(i),l=new Error,u=a=>{if(r.o(e,i)&&(t=e[i],t!==0&&(e[i]=void 0),t)){var f=a&&(a.type===\\"load\\"?\\"missing\\":a.type),p=a&&a.target&&a.target.src;l.message=\\"Loading chunk \\"+i+\` failed. -(\`+f+\\": \\"+p+\\")\\",l.name=\\"ChunkLoadError\\",l.type=f,l.request=p,t[1](l)}};r.l(s,u,\\"chunk-\\"+i,i)}};var n=(i,d)=>{var[t,c,s]=d,l,u,a=0;for(l in c)r.o(c,l)&&(r.m[l]=c[l]);if(s)var f=s(r);for(i&&i(d);a{var b={},m={};function r(e){var n=m[e];if(n!==void 0)return n.exports;var o=m[e]={exports:{}};return b[e](o,o.exports,r),o.exports}r.m=b,(()=>{r.d=(e,n)=>{for(var o in n)r.o(n,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}})(),(()=>{r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,o)=>(r.f[o](e,n),n),[]))})(),(()=>{r.u=e=>\\"\\"+{\\"376\\":\\"named-chunk-bar\\",\\"600\\":\\"named-chunk-foo\\"}[e]+\\".js\\"})(),(()=>{r.g=function(){if(typeof globalThis==\\"object\\")return globalThis;try{return this||new Function(\\"return this\\")()}catch(e){if(typeof window==\\"object\\")return window}}()})(),(()=>{r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n)})(),(()=>{var e={};r.l=(n,o,i,p)=>{if(e[n]){e[n].push(o);return}var t,c;if(i!==void 0)for(var s=document.getElementsByTagName(\\"script\\"),l=0;l{t.onerror=t.onload=null,clearTimeout(f);var g=e[n];if(delete e[n],t.parentNode&&t.parentNode.removeChild(t),g&&g.forEach(w=>w(h)),d)return d(h)},f=setTimeout(a.bind(null,void 0,{type:\\"timeout\\",target:t}),12e4);t.onerror=a.bind(null,t.onerror),t.onload=a.bind(null,t.onload),c&&document.head.appendChild(t)}})(),(()=>{r.r=e=>{typeof Symbol!=\\"undefined\\"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})}})(),(()=>{var e;r.g.importScripts&&(e=r.g.location+\\"\\");var n=r.g.document;if(!e&&n&&(n.currentScript&&(e=n.currentScript.src),!e)){var o=n.getElementsByTagName(\\"script\\");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error(\\"Automatic publicPath is not supported in this browser\\");e=e.replace(/#.*$/,\\"\\").replace(/\\\\?.*$/,\\"\\").replace(/\\\\/[^\\\\/]+$/,\\"/\\"),r.p=e})(),(()=>{var e={826:0};r.f.j=(i,p)=>{var t=r.o(e,i)?e[i]:void 0;if(t!==0)if(t)p.push(t[2]);else{var c=new Promise((a,f)=>t=e[i]=[a,f]);p.push(t[2]=c);var s=r.p+r.u(i),l=new Error,u=a=>{if(r.o(e,i)&&(t=e[i],t!==0&&(e[i]=void 0),t)){var f=a&&(a.type===\\"load\\"?\\"missing\\":a.type),d=a&&a.target&&a.target.src;l.message=\\"Loading chunk \\"+i+\` failed. +(\`+f+\\": \\"+d+\\")\\",l.name=\\"ChunkLoadError\\",l.type=f,l.request=d,t[1](l)}};r.l(s,u,\\"chunk-\\"+i,i)}};var n=(i,p)=>{var[t,c,s]=p,l,u,a=0;if(t.some(d=>e[d]!==0)){for(l in c)r.o(c,l)&&(r.m[l]=c[l]);if(s)var f=s(r)}for(i&&i(p);a{var b={},h={};function r(e){var n=h[e];if(n!==void 0)return n.exports;var o=h[e]={exports:{}};return b[e](o,o.exports,r),o.exports}r.m=b,(()=>{r.d=(e,n)=>{for(var o in n)r.o(n,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}})(),(()=>{r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,o)=>(r.f[o](e,n),n),[]))})(),(()=>{r.u=e=>\\"\\"+{\\"376\\":\\"named-chunk-bar\\",\\"600\\":\\"named-chunk-foo\\"}[e]+\\".js\\"})(),(()=>{r.g=function(){if(typeof globalThis==\\"object\\")return globalThis;try{return this||new Function(\\"return this\\")()}catch(e){if(typeof window==\\"object\\")return window}}()})(),(()=>{r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n)})(),(()=>{var e={};r.l=(n,o,i,d)=>{if(e[n]){e[n].push(o);return}var t,c;if(i!==void 0)for(var s=document.getElementsByTagName(\\"script\\"),l=0;l{t.onerror=t.onload=null,clearTimeout(f);var g=e[n];if(delete e[n],t.parentNode&&t.parentNode.removeChild(t),g&&g.forEach(w=>w(m)),p)return p(m)},f=setTimeout(a.bind(null,void 0,{type:\\"timeout\\",target:t}),12e4);t.onerror=a.bind(null,t.onerror),t.onload=a.bind(null,t.onload),c&&document.head.appendChild(t)}})(),(()=>{r.r=e=>{typeof Symbol!=\\"undefined\\"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})}})(),(()=>{var e;r.g.importScripts&&(e=r.g.location+\\"\\");var n=r.g.document;if(!e&&n&&(n.currentScript&&(e=n.currentScript.src),!e)){var o=n.getElementsByTagName(\\"script\\");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error(\\"Automatic publicPath is not supported in this browser\\");e=e.replace(/#.*$/,\\"\\").replace(/\\\\?.*$/,\\"\\").replace(/\\\\/[^\\\\/]+$/,\\"/\\"),r.p=e})(),(()=>{var e={826:0};r.f.j=(i,d)=>{var t=r.o(e,i)?e[i]:void 0;if(t!==0)if(t)d.push(t[2]);else{var c=new Promise((a,f)=>t=e[i]=[a,f]);d.push(t[2]=c);var s=r.p+r.u(i),l=new Error,u=a=>{if(r.o(e,i)&&(t=e[i],t!==0&&(e[i]=void 0),t)){var f=a&&(a.type===\\"load\\"?\\"missing\\":a.type),p=a&&a.target&&a.target.src;l.message=\\"Loading chunk \\"+i+\` failed. -(\`+f+\\": \\"+p+\\")\\",l.name=\\"ChunkLoadError\\",l.type=f,l.request=p,t[1](l)}};r.l(s,u,\\"chunk-\\"+i,i)}};var n=(i,d)=>{var[t,c,s]=d,l,u,a=0;for(l in c)r.o(c,l)&&(r.m[l]=c[l]);if(s)var f=s(r);for(i&&i(d);a{var b={},m={};function r(e){var n=m[e];if(n!==void 0)return n.exports;var o=m[e]={exports:{}};return b[e](o,o.exports,r),o.exports}r.m=b,(()=>{r.d=(e,n)=>{for(var o in n)r.o(n,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}})(),(()=>{r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,o)=>(r.f[o](e,n),n),[]))})(),(()=>{r.u=e=>\\"\\"+{\\"376\\":\\"named-chunk-bar\\",\\"600\\":\\"named-chunk-foo\\"}[e]+\\".js\\"})(),(()=>{r.g=function(){if(typeof globalThis==\\"object\\")return globalThis;try{return this||new Function(\\"return this\\")()}catch(e){if(typeof window==\\"object\\")return window}}()})(),(()=>{r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n)})(),(()=>{var e={};r.l=(n,o,i,p)=>{if(e[n]){e[n].push(o);return}var t,c;if(i!==void 0)for(var s=document.getElementsByTagName(\\"script\\"),l=0;l{t.onerror=t.onload=null,clearTimeout(f);var g=e[n];if(delete e[n],t.parentNode&&t.parentNode.removeChild(t),g&&g.forEach(w=>w(h)),d)return d(h)},f=setTimeout(a.bind(null,void 0,{type:\\"timeout\\",target:t}),12e4);t.onerror=a.bind(null,t.onerror),t.onload=a.bind(null,t.onload),c&&document.head.appendChild(t)}})(),(()=>{r.r=e=>{typeof Symbol!=\\"undefined\\"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})}})(),(()=>{var e;r.g.importScripts&&(e=r.g.location+\\"\\");var n=r.g.document;if(!e&&n&&(n.currentScript&&(e=n.currentScript.src),!e)){var o=n.getElementsByTagName(\\"script\\");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error(\\"Automatic publicPath is not supported in this browser\\");e=e.replace(/#.*$/,\\"\\").replace(/\\\\?.*$/,\\"\\").replace(/\\\\/[^\\\\/]+$/,\\"/\\"),r.p=e})(),(()=>{var e={826:0};r.f.j=(i,p)=>{var t=r.o(e,i)?e[i]:void 0;if(t!==0)if(t)p.push(t[2]);else{var c=new Promise((a,f)=>t=e[i]=[a,f]);p.push(t[2]=c);var s=r.p+r.u(i),l=new Error,u=a=>{if(r.o(e,i)&&(t=e[i],t!==0&&(e[i]=void 0),t)){var f=a&&(a.type===\\"load\\"?\\"missing\\":a.type),d=a&&a.target&&a.target.src;l.message=\\"Loading chunk \\"+i+\` failed. +(\`+f+\\": \\"+d+\\")\\",l.name=\\"ChunkLoadError\\",l.type=f,l.request=d,t[1](l)}};r.l(s,u,\\"chunk-\\"+i,i)}};var n=(i,p)=>{var[t,c,s]=p,l,u,a=0;if(t.some(d=>e[d]!==0)){for(l in c)r.o(c,l)&&(r.m[l]=c[l]);if(s)var f=s(r)}for(i&&i(p);a