diff --git a/package.json b/package.json index 05c3ffcf..dc7087c0 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "cacache": "^13.0.1", "find-cache-dir": "^3.2.0", "jest-worker": "^25.1.0", + "p-limit": "^2.2.2", "schema-utils": "^2.6.4", "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", diff --git a/src/TaskRunner.js b/src/TaskRunner.js index e14ee151..eb2ff652 100644 --- a/src/TaskRunner.js +++ b/src/TaskRunner.js @@ -1,5 +1,6 @@ import os from 'os'; +import pLimit from 'p-limit'; import Worker from 'jest-worker'; import serialize from 'serialize-javascript'; @@ -9,11 +10,15 @@ const workerPath = require.resolve('./worker'); export default class TaskRunner { constructor(options = {}) { + this.taskGenerator = options.taskGenerator; + this.files = options.files; this.cache = options.cache; - this.numberWorkers = TaskRunner.getNumberWorkers(options.parallel); + this.availableNumberOfCores = TaskRunner.getAvailableNumberOfCores( + options.parallel + ); } - static getNumberWorkers(parallel) { + static getAvailableNumberOfCores(parallel) { // In some cases cpus() returns undefined // https://github.com/nodejs/node/issues/19022 const cpus = os.cpus() || { length: 1 }; @@ -31,9 +36,18 @@ export default class TaskRunner { return minify(task); } - async run(tasks) { - if (this.numberWorkers > 1) { - this.worker = new Worker(workerPath, { numWorkers: this.numberWorkers }); + async run() { + const { availableNumberOfCores, cache, files, taskGenerator } = this; + + let concurrency = Infinity; + + if (availableNumberOfCores > 0) { + // Do not create unnecessary workers when the number of files is less than the available cores, it saves memory + const numWorkers = Math.min(files.length, availableNumberOfCores); + + concurrency = numWorkers; + + this.worker = new Worker(workerPath, { numWorkers }); // Show syntax error from jest-worker // https://github.com/facebook/jest/issues/8872#issuecomment-524822081 @@ -44,34 +58,53 @@ export default class TaskRunner { } } - return Promise.all( - tasks.map((task) => { - const enqueue = async () => { - let result; + const limit = pLimit(concurrency); + const scheduledTasks = []; - try { - result = await this.runTask(task); - } catch (error) { - result = { error }; + for (const file of files) { + const enqueue = async (task) => { + let taskResult; + + try { + taskResult = await this.runTask(task); + } catch (error) { + taskResult = { error }; + } + + if (cache.isEnabled() && !taskResult.error) { + taskResult = await cache.store(task, taskResult).then( + () => taskResult, + () => taskResult + ); + } + + task.callback(taskResult); + + return taskResult; + }; + + scheduledTasks.push( + limit(() => { + const task = taskGenerator(file).next().value; + + if (!task) { + // Something went wrong, for example the `cacheKeys` option throw an error + return Promise.resolve(); } - if (this.cache.isEnabled() && !result.error) { - return this.cache.store(task, result).then( - () => result, - () => result + if (cache.isEnabled()) { + return cache.get(task).then( + (taskResult) => task.callback(taskResult), + () => enqueue(task) ); } - return result; - }; - - if (this.cache.isEnabled()) { - return this.cache.get(task).then((data) => data, enqueue); - } + return enqueue(task); + }) + ); + } - return enqueue(); - }) - ); + return Promise.all(scheduledTasks); } async exit() { diff --git a/src/index.js b/src/index.js index 83ff5bc9..85e7d403 100644 --- a/src/index.js +++ b/src/index.js @@ -197,219 +197,86 @@ class TerserPlugin { return webpackVersion[0] === '4'; } - apply(compiler) { - const { devtool, output, plugins } = compiler.options; + *taskGenerator(compiler, compilation, allExtractedComments, file) { + let inputSourceMap; - this.options.sourceMap = - typeof this.options.sourceMap === 'undefined' - ? (devtool && - !devtool.includes('eval') && - !devtool.includes('cheap') && - (devtool.includes('source-map') || - // Todo remove when `webpack@5` support will be dropped - devtool.includes('sourcemap'))) || - (plugins && - plugins.some( - (plugin) => - plugin instanceof SourceMapDevToolPlugin && - plugin.options && - plugin.options.columns - )) - : Boolean(this.options.sourceMap); + const asset = compilation.assets[file]; - if ( - typeof this.options.terserOptions.module === 'undefined' && - typeof output.module !== 'undefined' - ) { - this.options.terserOptions.module = output.module; - } - - if ( - typeof this.options.terserOptions.ecma === 'undefined' && - typeof output.ecmaVersion !== 'undefined' - ) { - this.options.terserOptions.ecma = output.ecmaVersion; - } - - const optimizeFn = async (compilation, chunks) => { - const processedAssets = new WeakSet(); - const matchObject = ModuleFilenameHelpers.matchObject.bind( - // eslint-disable-next-line no-undefined - undefined, - this.options - ); - const additionalChunkAssets = Array.from( - compilation.additionalChunkAssets || [] - ); - const filteredChunks = Array.from(chunks).filter( - (chunk) => this.options.chunkFilter && this.options.chunkFilter(chunk) - ); - const chunksFiles = filteredChunks.reduce( - (acc, chunk) => acc.concat(Array.from(chunk.files || [])), - [] - ); - const files = [].concat(additionalChunkAssets).concat(chunksFiles); - const tasks = []; + try { + let input; - files.forEach((file) => { - if (!matchObject(file)) { - return; - } + if (this.options.sourceMap && asset.sourceAndMap) { + const { source, map } = asset.sourceAndMap(); - let inputSourceMap; + input = source; - const asset = compilation.assets[file]; + if (TerserPlugin.isSourceMap(map)) { + inputSourceMap = map; + } else { + inputSourceMap = map; - if (processedAssets.has(asset)) { - return; + compilation.warnings.push( + new Error(`${file} contains invalid source map`) + ); } + } else { + input = asset.source(); + inputSourceMap = null; + } - try { - let input; - - if (this.options.sourceMap && asset.sourceAndMap) { - const { source, map } = asset.sourceAndMap(); - - input = source; - - if (TerserPlugin.isSourceMap(map)) { - inputSourceMap = map; - } else { - inputSourceMap = map; - - compilation.warnings.push( - new Error(`${file} contains invalid source map`) - ); - } - } else { - input = asset.source(); - inputSourceMap = null; - } - - // Handling comment extraction - let commentsFilename = false; - - if (this.options.extractComments) { - commentsFilename = - this.options.extractComments.filename || - '[file].LICENSE.txt[query]'; - - if (TerserPlugin.isWebpack4()) { - // Todo remove this in next major release - if (typeof commentsFilename === 'function') { - commentsFilename = commentsFilename.bind(null, file); - } - } - - let query = ''; - let filename = file; - - const querySplit = filename.indexOf('?'); - - if (querySplit >= 0) { - query = filename.substr(querySplit); - filename = filename.substr(0, querySplit); - } - - const lastSlashIndex = filename.lastIndexOf('/'); - - const basename = - lastSlashIndex === -1 - ? filename - : filename.substr(lastSlashIndex + 1); + // Handling comment extraction + let commentsFilename = false; - const data = { filename, basename, query }; + if (this.options.extractComments) { + commentsFilename = + this.options.extractComments.filename || '[file].LICENSE.txt[query]'; - commentsFilename = compilation.getPath(commentsFilename, data); - } - - if ( - commentsFilename && - TerserPlugin.hasAsset(commentsFilename, compilation.assets) - ) { - // Todo make error and stop uglifing in next major release - compilation.warnings.push( - new Error( - `The comment file "${TerserPlugin.removeQueryString( - commentsFilename - )}" conflicts with an existing asset, this may lead to code corruption, please use a different name` - ) - ); + if (TerserPlugin.isWebpack4()) { + // Todo remove this in next major release + if (typeof commentsFilename === 'function') { + commentsFilename = commentsFilename.bind(null, file); } + } - const task = { - asset, - file, - input, - inputSourceMap, - commentsFilename, - extractComments: this.options.extractComments, - terserOptions: this.options.terserOptions, - minify: this.options.minify, - }; + let query = ''; + let filename = file; - if (TerserPlugin.isWebpack4()) { - if (this.options.cache) { - const defaultCacheKeys = { - terser: terserPackageJson.version, - // eslint-disable-next-line global-require - 'terser-webpack-plugin': require('../package.json').version, - 'terser-webpack-plugin-options': this.options, - nodeVersion: process.version, - filename: file, - contentHash: crypto - .createHash('md4') - .update(input) - .digest('hex'), - }; - - task.cacheKeys = this.options.cacheKeys(defaultCacheKeys, file); - } - } else { - task.cacheKeys = { - terser: terserPackageJson.version, - // eslint-disable-next-line global-require - 'terser-webpack-plugin': require('../package.json').version, - 'terser-webpack-plugin-options': this.options, - }; - } + const querySplit = filename.indexOf('?'); - tasks.push(task); - } catch (error) { - compilation.errors.push( - TerserPlugin.buildError( - error, - file, - TerserPlugin.buildSourceMap(inputSourceMap), - new RequestShortener(compiler.context) - ) - ); + if (querySplit >= 0) { + query = filename.substr(querySplit); + filename = filename.substr(0, querySplit); } - }); - if (tasks.length === 0) { - return Promise.resolve(); - } + const lastSlashIndex = filename.lastIndexOf('/'); - const CacheEngine = TerserPlugin.isWebpack4() - ? // eslint-disable-next-line global-require - require('./Webpack4Cache').default - : // eslint-disable-next-line global-require - require('./Webpack5Cache').default; + const basename = + lastSlashIndex === -1 + ? filename + : filename.substr(lastSlashIndex + 1); - const taskRunner = new TaskRunner({ - cache: new CacheEngine(compilation, this.options), - parallel: this.options.parallel, - }); + const data = { filename, basename, query }; - const completedTasks = await taskRunner.run(tasks); + commentsFilename = compilation.getPath(commentsFilename, data); + } - await taskRunner.exit(); + if ( + commentsFilename && + TerserPlugin.hasAsset(commentsFilename, compilation.assets) + ) { + // Todo make error and stop uglifing in next major release + compilation.warnings.push( + new Error( + `The comment file "${TerserPlugin.removeQueryString( + commentsFilename + )}" conflicts with an existing asset, this may lead to code corruption, please use a different name` + ) + ); + } - completedTasks.forEach((completedTask, index) => { - const { file, input, inputSourceMap, commentsFilename } = tasks[index]; - const { error, map, code, warnings } = completedTask; - let { extractedComments } = completedTask; + const callback = (taskResult) => { + const { error, map, code, warnings } = taskResult; + const { extractedComments } = taskResult; let sourceMap = null; @@ -453,66 +320,40 @@ class TerserPlugin { extractedComments && extractedComments.length > 0 ) { - if (commentsFilename in compilation.assets) { - const commentsFileSource = compilation.assets[ - commentsFilename - ].source(); - - extractedComments = extractedComments.filter( - (comment) => !commentsFileSource.includes(comment) - ); + if (!allExtractedComments[commentsFilename]) { + // eslint-disable-next-line no-param-reassign + allExtractedComments[commentsFilename] = []; } - if (extractedComments.length > 0) { - // Add a banner to the original file - if (this.options.extractComments.banner !== false) { - let banner = - this.options.extractComments.banner || - `For license information please see ${path - .relative(path.dirname(file), commentsFilename) - .replace(/\\/g, '/')}`; - - if (typeof banner === 'function') { - banner = banner(commentsFilename); - } - - if (banner) { - outputSource = new ConcatSource( - `/*! ${banner} */\n`, - outputSource - ); - } + // eslint-disable-next-line no-param-reassign + allExtractedComments[commentsFilename] = allExtractedComments[ + commentsFilename + ].concat(extractedComments); + + // Add a banner to the original file + if (this.options.extractComments.banner !== false) { + let banner = + this.options.extractComments.banner || + `For license information please see ${path + .relative(path.dirname(file), commentsFilename) + .replace(/\\/g, '/')}`; + + if (typeof banner === 'function') { + banner = banner(commentsFilename); } - const commentsSource = new RawSource( - `${extractedComments.join('\n\n')}\n` - ); - - if (commentsFilename in compilation.assets) { - // commentsFile already exists, append new comments... - if ( - compilation.assets[commentsFilename] instanceof ConcatSource - ) { - compilation.assets[commentsFilename].add('\n'); - compilation.assets[commentsFilename].add(commentsSource); - } else { - // eslint-disable-next-line no-param-reassign - compilation.assets[commentsFilename] = new ConcatSource( - compilation.assets[commentsFilename], - '\n', - commentsSource - ); - } - } else { - // eslint-disable-next-line no-param-reassign - compilation.assets[commentsFilename] = commentsSource; + if (banner) { + outputSource = new ConcatSource( + `/*! ${banner} */\n`, + outputSource + ); } } } // Updating assets // eslint-disable-next-line no-param-reassign - processedAssets.add((compilation.assets[file] = outputSource)); + compilation.assets[file] = outputSource; // Handling warnings if (warnings && warnings.length > 0) { @@ -530,6 +371,150 @@ class TerserPlugin { } }); } + }; + + const task = { + asset, + file, + input, + inputSourceMap, + commentsFilename, + extractComments: this.options.extractComments, + terserOptions: this.options.terserOptions, + minify: this.options.minify, + callback, + }; + + if (TerserPlugin.isWebpack4()) { + if (this.options.cache) { + const defaultCacheKeys = { + terser: terserPackageJson.version, + // eslint-disable-next-line global-require + 'terser-webpack-plugin': require('../package.json').version, + 'terser-webpack-plugin-options': this.options, + nodeVersion: process.version, + filename: file, + contentHash: crypto + .createHash('md4') + .update(input) + .digest('hex'), + }; + + task.cacheKeys = this.options.cacheKeys(defaultCacheKeys, file); + } + } else { + task.cacheKeys = { + terser: terserPackageJson.version, + // eslint-disable-next-line global-require + 'terser-webpack-plugin': require('../package.json').version, + 'terser-webpack-plugin-options': this.options, + }; + } + + yield task; + } catch (error) { + compilation.errors.push( + TerserPlugin.buildError( + error, + file, + TerserPlugin.buildSourceMap(inputSourceMap), + new RequestShortener(compiler.context) + ) + ); + } + } + + apply(compiler) { + const { devtool, output, plugins } = compiler.options; + + this.options.sourceMap = + typeof this.options.sourceMap === 'undefined' + ? (devtool && + !devtool.includes('eval') && + !devtool.includes('cheap') && + (devtool.includes('source-map') || + // Todo remove when `webpack@5` support will be dropped + devtool.includes('sourcemap'))) || + (plugins && + plugins.some( + (plugin) => + plugin instanceof SourceMapDevToolPlugin && + plugin.options && + plugin.options.columns + )) + : Boolean(this.options.sourceMap); + + if ( + typeof this.options.terserOptions.module === 'undefined' && + typeof output.module !== 'undefined' + ) { + this.options.terserOptions.module = output.module; + } + + if ( + typeof this.options.terserOptions.ecma === 'undefined' && + typeof output.ecmaVersion !== 'undefined' + ) { + this.options.terserOptions.ecma = output.ecmaVersion; + } + + const optimizeFn = async (compilation, chunks) => { + const matchObject = ModuleFilenameHelpers.matchObject.bind( + // eslint-disable-next-line no-undefined + undefined, + this.options + ); + const files = [] + .concat(Array.from(compilation.additionalChunkAssets || [])) + .concat( + Array.from(chunks) + .filter( + (chunk) => + this.options.chunkFilter && this.options.chunkFilter(chunk) + ) + .reduce( + (acc, chunk) => acc.concat(Array.from(chunk.files || [])), + [] + ) + ) + .filter((file) => matchObject(file)); + + if (files.length === 0) { + return Promise.resolve(); + } + + const CacheEngine = TerserPlugin.isWebpack4() + ? // eslint-disable-next-line global-require + require('./Webpack4Cache').default + : // eslint-disable-next-line global-require + require('./Webpack5Cache').default; + + const allExtractedComments = {}; + const taskGenerator = this.taskGenerator.bind( + this, + compiler, + compilation, + allExtractedComments + ); + const taskRunner = new TaskRunner({ + taskGenerator, + files, + cache: new CacheEngine(compilation, this.options), + parallel: this.options.parallel, + }); + + await taskRunner.run(); + await taskRunner.exit(); + + Object.keys(allExtractedComments).forEach((commentsFilename) => { + const extractedComments = new Set([ + ...allExtractedComments[commentsFilename].sort(), + ]); + + // eslint-disable-next-line no-param-reassign + compilation.assets[commentsFilename] = new RawSource( + `${Array.from(extractedComments).join('\n\n')}\n` + ); }); return Promise.resolve(); diff --git a/test/__snapshots__/extractComments-option.test.js.snap.webpack4 b/test/__snapshots__/extractComments-option.test.js.snap.webpack4 index 6ca66759..d056359f 100644 --- a/test/__snapshots__/extractComments-option.test.js.snap.webpack4 +++ b/test/__snapshots__/extractComments-option.test.js.snap.webpack4 @@ -4,21 +4,24 @@ exports[`extractComments option should match snapshot and do not preserve and ex Object { "chunks/4.4.js": "/*! For license information please see 4.4.js.LICENSE.txt */ (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{4:function(n,o){n.exports=Math.random()}}]);", - "chunks/4.4.js.LICENSE.txt": "/***/ - -/*! Legal Comment */ + "chunks/4.4.js.LICENSE.txt": "/*! Legal Comment */ /** @license Copyright 2112 Moon. **/ + +/***/ ", "filename/four.js": "/*! For license information please see four.js.LICENSE.txt */ !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\\"a\\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\\"\\",r(r.s=3)}({3:function(e,t){e.exports=Math.random()}});", - "filename/four.js.LICENSE.txt": "/******/ + "filename/four.js.LICENSE.txt": "/** + * Duplicate comment in difference files. + * @license MIT + */ -// webpackBootstrap +/************************************************************************/ -// The module cache +/******/ -// The require function +/***/ // Check if module is in cache @@ -26,21 +29,31 @@ Object { // Execute the module function +// Flag the module as loaded + +// Load entry module and return exports + +// Object.prototype.hasOwnProperty.call + // Return the exports of the module -// Flag the module as loaded +// The module cache -// expose the modules object (__webpack_modules__) +// The require function -// Load entry module and return exports +// __webpack_public_path__ -// expose the module cache +// create a fake namespace object + +// define __esModule on exports // define getter function for harmony exports -// define __esModule on exports +// expose the module cache -// create a fake namespace object +// expose the modules object (__webpack_modules__) + +// getDefaultExport function for compatibility with non-harmony modules // mode & 1: value is a module id, require it @@ -50,38 +63,45 @@ Object { // mode & 8|1: behave like require -// getDefaultExport function for compatibility with non-harmony modules +// webpackBootstrap +", + "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ +!function(e){function t(t){for(var r,o,u=t[0],i=t[1],a=0,l=[];a{o.exports=Math.random()}}]);", - "chunks/627.627.js.LICENSE.txt": "/***/ - -/*! Legal Comment */ + "chunks/627.627.js.LICENSE.txt": "/*! Legal Comment */ /** @license Copyright 2112 Moon. **/ + +/***/ ", "filename/four.js": "/*! For license information please see four.js.LICENSE.txt */ (()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", - "filename/four.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/four.js.LICENSE.txt": "/** * Duplicate comment in difference files. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", - "filename/three.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** - * Duplicate comment in same file. + "filename/three.js.LICENSE.txt": "/** + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/two.js": "/*! For license information please see two.js.LICENSE.txt */ (()=>{var r={353:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(353)})();", - "filename/two.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/two.js.LICENSE.txt": "/** * Information. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", } `; @@ -251,61 +251,67 @@ exports[`extractComments option should match snapshot and do not preserve and ex Object { "chunks/627.627.js": "/*! For license information please see 627.627.js.LICENSE.txt */ (window.webpackJsonp=window.webpackJsonp||[]).push([[627],{627:o=>{o.exports=Math.random()}}]);", - "chunks/627.627.js.LICENSE.txt": "/***/ - -/*! Legal Comment */ + "chunks/627.627.js.LICENSE.txt": "/*! Legal Comment */ /** @license Copyright 2112 Moon. **/ + +/***/ ", "filename/four.js": "/*! For license information please see four.js.LICENSE.txt */ (()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", - "filename/four.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/four.js.LICENSE.txt": "/** * Duplicate comment in difference files. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", - "filename/three.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** - * Duplicate comment in same file. + "filename/three.js.LICENSE.txt": "/** + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/two.js": "/*! For license information please see two.js.LICENSE.txt */ (()=>{var r={353:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(353)})();", - "filename/two.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/two.js.LICENSE.txt": "/** * Information. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", } `; @@ -521,6 +521,8 @@ Object { (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -594,6 +594,8 @@ Object { (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -999,11 +999,11 @@ Object { /** @license Copyright 2112 Moon. **/ o.exports=Math.random(); /***/}}]);", - "chunks/627.627.js.LICENSE.txt": "/***/ - -/*! Legal Comment */ + "chunks/627.627.js.LICENSE.txt": "/*! Legal Comment */ /** @license Copyright 2112 Moon. **/ + +/***/ ", "filename/four.js": "/*! For license information please see four.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -1047,40 +1047,40 @@ r.exports=Math.random(); /******/return r[o](n,n.exports,e),n.exports; /******/}(712)}) /******/();", - "filename/four.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/four.js.LICENSE.txt": "/** * Duplicate comment in difference files. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -1291,16 +1291,22 @@ e.exports=Math.random()} /******/ // This entry module is referenced by other modules so it can't be inlined /******/t(900)}) /******/();", - "filename/one.js.LICENSE.txt": "/******/ - -// webpackBootstrap + "filename/one.js.LICENSE.txt": "/* + Foo Bar + */ -/***/ +/* +* Foo +*/ /* import() */ +/* webpack/runtime/jsonp chunk loading */ + /*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -1313,99 +1319,93 @@ e.exports=Math.random()} * @license Apache-2.0 */ -/*! Legal Foo */ - -// Foo - -/* - Foo Bar - */ - -/* -* Foo -*/ - /************************************************************************/ -// The module cache +/******/ -// The require function +/***/ + +// 0 means \\"already installed\\". // Check if module is in cache // Create a new module (and put it into the cache) -// no module.id needed +// Execute the module function -// no module.loaded needed +// Foo -// Execute the module function +// JSONP chunk loading for javascript + +// Load entry module + +// Promise = chunk loading, 0 = chunk loaded // Return the exports of the module -// expose the modules object (__webpack_modules__) +// The chunk loading function for additional chunks -// create a fake namespace object +// The module cache -// mode & 1: value is a module id, require it +// The require function -// mode & 2: merge all properties of value into the ns +// This entry module is referenced by other modules so it can't be inlined -// mode & 4: return value when already ns object +// This file contains only the entry chunk. -// mode & 8|1: behave like require +// This function allow to reference async chunks -// define getter functions for harmony exports +// a Promise means \\"currently loading\\". -// This file contains only the entry chunk. +// all chunks have JS -// The chunk loading function for additional chunks +// avoid mem leaks in IE. -// This function allow to reference async chunks +// create a fake namespace object + +// create error before stack unwound to get useful stacktrace later // define __esModule on exports -/* webpack/runtime/jsonp chunk loading */ +// define getter functions for harmony exports -// object to store loaded and loading chunks +// expose the modules object (__webpack_modules__) -// undefined = chunk not loaded, null = chunk preloaded/prefetched +// install a JSONP callback for chunk loading -// Promise = chunk loading, 0 = chunk loaded +// mode & 1: value is a module id, require it -// JSONP chunk loading for javascript +// mode & 2: merge all properties of value into the ns -// 0 means \\"already installed\\". +// mode & 4: return value when already ns object -// a Promise means \\"currently loading\\". +// mode & 8|1: behave like require -// all chunks have JS +// no HMR -// setup Promise in chunk cache +// no HMR manifest -// start chunk loading +// no deferred startup -// create error before stack unwound to get useful stacktrace later +// no module.id needed -// avoid mem leaks in IE. +// no module.loaded needed // no prefetching // no preloaded -// no HMR - -// no HMR manifest +// object to store loaded and loading chunks -// no deferred startup +// setup Promise in chunk cache -// install a JSONP callback for chunk loading +// start chunk loading // startup -// Load entry module +// undefined = chunk not loaded, null = chunk preloaded/prefetched -// This entry module is referenced by other modules so it can't be inlined +// webpackBootstrap ", "filename/three.js": "/*! For license information please see three.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -1457,45 +1457,45 @@ r.exports=Math.random(); /******/return r[o](n,n.exports,e),n.exports; /******/}(787)}) /******/();", - "filename/three.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** - * Duplicate comment in same file. + "filename/three.js.LICENSE.txt": "/** + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/two.js": "/*! For license information please see two.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -1539,40 +1539,40 @@ r.exports=Math.random(); /******/return r[o](n,n.exports,e),n.exports; /******/}(353)}) /******/();", - "filename/two.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/two.js.LICENSE.txt": "/** * Information. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", } `; @@ -1587,11 +1587,11 @@ Object { /** @license Copyright 2112 Moon. **/ o.exports=Math.random(); /***/}}]);", - "chunks/627.627.js.LICENSE.txt": "/***/ - -/*! Legal Comment */ + "chunks/627.627.js.LICENSE.txt": "/*! Legal Comment */ /** @license Copyright 2112 Moon. **/ + +/***/ ", "filename/four.js": "/*! For license information please see four.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -1635,40 +1635,40 @@ r.exports=Math.random(); /******/return r[o](n,n.exports,e),n.exports; /******/}(712)}) /******/();", - "filename/four.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/four.js.LICENSE.txt": "/** * Duplicate comment in difference files. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -1879,16 +1879,22 @@ e.exports=Math.random()} /******/ // This entry module is referenced by other modules so it can't be inlined /******/t(900)}) /******/();", - "filename/one.js.LICENSE.txt": "/******/ - -// webpackBootstrap + "filename/one.js.LICENSE.txt": "/* + Foo Bar + */ -/***/ +/* +* Foo +*/ /* import() */ +/* webpack/runtime/jsonp chunk loading */ + /*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -1901,99 +1907,93 @@ e.exports=Math.random()} * @license Apache-2.0 */ -/*! Legal Foo */ - -// Foo - -/* - Foo Bar - */ - -/* -* Foo -*/ - /************************************************************************/ -// The module cache +/******/ -// The require function +/***/ + +// 0 means \\"already installed\\". // Check if module is in cache // Create a new module (and put it into the cache) -// no module.id needed +// Execute the module function -// no module.loaded needed +// Foo -// Execute the module function +// JSONP chunk loading for javascript + +// Load entry module + +// Promise = chunk loading, 0 = chunk loaded // Return the exports of the module -// expose the modules object (__webpack_modules__) +// The chunk loading function for additional chunks -// create a fake namespace object +// The module cache -// mode & 1: value is a module id, require it +// The require function -// mode & 2: merge all properties of value into the ns +// This entry module is referenced by other modules so it can't be inlined -// mode & 4: return value when already ns object +// This file contains only the entry chunk. -// mode & 8|1: behave like require +// This function allow to reference async chunks -// define getter functions for harmony exports +// a Promise means \\"currently loading\\". -// This file contains only the entry chunk. +// all chunks have JS -// The chunk loading function for additional chunks +// avoid mem leaks in IE. -// This function allow to reference async chunks +// create a fake namespace object + +// create error before stack unwound to get useful stacktrace later // define __esModule on exports -/* webpack/runtime/jsonp chunk loading */ +// define getter functions for harmony exports -// object to store loaded and loading chunks +// expose the modules object (__webpack_modules__) -// undefined = chunk not loaded, null = chunk preloaded/prefetched +// install a JSONP callback for chunk loading -// Promise = chunk loading, 0 = chunk loaded +// mode & 1: value is a module id, require it -// JSONP chunk loading for javascript +// mode & 2: merge all properties of value into the ns -// 0 means \\"already installed\\". +// mode & 4: return value when already ns object -// a Promise means \\"currently loading\\". +// mode & 8|1: behave like require -// all chunks have JS +// no HMR -// setup Promise in chunk cache +// no HMR manifest -// start chunk loading +// no deferred startup -// create error before stack unwound to get useful stacktrace later +// no module.id needed -// avoid mem leaks in IE. +// no module.loaded needed // no prefetching // no preloaded -// no HMR - -// no HMR manifest +// object to store loaded and loading chunks -// no deferred startup +// setup Promise in chunk cache -// install a JSONP callback for chunk loading +// start chunk loading // startup -// Load entry module +// undefined = chunk not loaded, null = chunk preloaded/prefetched -// This entry module is referenced by other modules so it can't be inlined +// webpackBootstrap ", "filename/three.js": "/*! For license information please see three.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -2045,45 +2045,45 @@ r.exports=Math.random(); /******/return r[o](n,n.exports,e),n.exports; /******/}(787)}) /******/();", - "filename/three.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** - * Duplicate comment in same file. + "filename/three.js.LICENSE.txt": "/** + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/two.js": "/*! For license information please see two.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -2127,40 +2127,40 @@ r.exports=Math.random(); /******/return r[o](n,n.exports,e),n.exports; /******/}(353)}) /******/();", - "filename/two.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/two.js.LICENSE.txt": "/** * Information. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", } `; @@ -2445,6 +2445,8 @@ e.exports=Math.random()} /******/();", "filename/one.js.LICENSE.txt": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -2456,8 +2458,6 @@ e.exports=Math.random()} * Utility functions for the foo package. * @license Apache-2.0 */ - -/*! Legal Foo */ ", "filename/three.js": "/*! For license information please see three.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -2510,12 +2510,12 @@ r.exports=Math.random(); /******/}(787)}) /******/();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -2841,6 +2841,8 @@ e.exports=Math.random()} /******/();", "filename/one.js.LICENSE.txt": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -2852,8 +2854,6 @@ e.exports=Math.random()} * Utility functions for the foo package. * @license Apache-2.0 */ - -/*! Legal Foo */ ", "filename/three.js": "/*! For license information please see three.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -2906,12 +2906,12 @@ r.exports=Math.random(); /******/}(787)}) /******/();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -3237,6 +3237,8 @@ e.exports=Math.random()} /******/();", "filename/one.js.LICENSE.txt": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -3248,8 +3250,6 @@ e.exports=Math.random()} * Utility functions for the foo package. * @license Apache-2.0 */ - -/*! Legal Foo */ ", "filename/three.js": "/*! For license information please see three.js.LICENSE.txt */ /******/(()=>{// webpackBootstrap @@ -3302,12 +3302,12 @@ r.exports=Math.random(); /******/}(787)}) /******/();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -3803,61 +3803,67 @@ exports[`extractComments option should match snapshot for a "function" value: as Object { "chunks/627.627.js": "/*! For license information please see 627.627.js.LICENSE.txt */ (window.webpackJsonp=window.webpackJsonp||[]).push([[627],{627:o=>{o.exports=Math.random()}}]);", - "chunks/627.627.js.LICENSE.txt": "/***/ - -/*! Legal Comment */ + "chunks/627.627.js.LICENSE.txt": "/*! Legal Comment */ /** @license Copyright 2112 Moon. **/ + +/***/ ", "filename/four.js": "/*! For license information please see four.js.LICENSE.txt */ (()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", - "filename/four.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/four.js.LICENSE.txt": "/** * Duplicate comment in difference files. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", - "filename/three.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** - * Duplicate comment in same file. + "filename/three.js.LICENSE.txt": "/** + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/two.js": "/*! For license information please see two.js.LICENSE.txt */ (()=>{var r={353:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(353)})();", - "filename/two.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/two.js.LICENSE.txt": "/** * Information. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", } `; @@ -4058,6 +4058,8 @@ Object { (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"nested/directory/\\"+e+\\".js?40e841e929e40c595bc1\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var c=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(d);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),p=o&&o.target&&o.target.src;c.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+p+\\")\\",c.name=\\"ChunkLoadError\\",c.type=u,c.request=p,a(c)}};var d=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],c=0,d=[];c{o.exports=Math.random()}}]);", "comments/directory/one.js": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -4099,8 +4101,6 @@ Object { * @license Apache-2.0 */ -/*! Legal Foo */ - /** @license Copyright 2112 Moon. **/ ", "one.js": "/*! For license information please see comments/directory/one.js */ @@ -4118,17 +4118,17 @@ Object { "filename/four.js": "(()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/two.js": "(()=>{var r={353:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(353)})();", @@ -4145,17 +4145,17 @@ Object { "filename/four.js": "(()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/two.js": "(()=>{var r={353:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(353)})();", @@ -4170,61 +4170,67 @@ exports[`extractComments option should match snapshot for the "all" value: asset Object { "chunks/627.627.js": "/*! For license information please see 627.627.js.LICENSE.txt */ (window.webpackJsonp=window.webpackJsonp||[]).push([[627],{627:o=>{o.exports=Math.random()}}]);", - "chunks/627.627.js.LICENSE.txt": "/***/ - -/*! Legal Comment */ + "chunks/627.627.js.LICENSE.txt": "/*! Legal Comment */ /** @license Copyright 2112 Moon. **/ + +/***/ ", "filename/four.js": "/*! For license information please see four.js.LICENSE.txt */ (()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", - "filename/four.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/four.js.LICENSE.txt": "/** * Duplicate comment in difference files. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/one.js": "/*! For license information please see one.js.LICENSE.txt */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", - "filename/three.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** - * Duplicate comment in same file. + "filename/three.js.LICENSE.txt": "/** + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", "filename/two.js": "/*! For license information please see two.js.LICENSE.txt */ (()=>{var r={353:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(353)})();", - "filename/two.js.LICENSE.txt": "/******/ - -// webpackBootstrap - -/***/ - -/** + "filename/two.js.LICENSE.txt": "/** * Information. * @license MIT */ /************************************************************************/ -// The module cache +/******/ -// startup +/***/ + +// Check if module is in cache + +// Create a new module (and put it into the cache) + +// Execute the module function // Load entry module -// This entry module is referenced by other modules so it can't be inlined +// Return the exports of the module -// The require function +// The module cache -// Check if module is in cache +// The require function -// Create a new module (and put it into the cache) +// This entry module is referenced by other modules so it can't be inlined // no module.id needed // no module.loaded needed -// Execute the module function +// startup -// Return the exports of the module +// webpackBootstrap ", } `; @@ -4436,6 +4436,8 @@ Object { (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -4548,6 +4548,8 @@ Object { (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -4607,6 +4607,8 @@ Object { (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -4666,6 +4666,8 @@ Object { (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -4737,6 +4737,8 @@ r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n= e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{ @@ -4767,12 +4767,12 @@ e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r */ r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -4814,6 +4814,8 @@ Object { (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -4860,6 +4860,8 @@ Object { (window.webpackJsonp=window.webpackJsonp||[]).push([[627],{627:o=>{o.exports=Math.random()}}]);", "extracted-comments.js": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -4868,30 +4870,29 @@ Object { */ /** - * Utility functions for the foo package. - * @license Apache-2.0 + * Duplicate comment in difference files. + * @license MIT */ -/*! Legal Foo */ - /** - * Information. + * Duplicate comment in same file. * @license MIT */ /** - * Duplicate comment in same file. + * Information. * @license MIT */ /** - * Duplicate comment in difference files. - * @license MIT + * Utility functions for the foo package. + * @license Apache-2.0 */ /** @license Copyright 2112 Moon. **/ ", - "filename/four.js": "(()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", + "filename/four.js": "/*! License information can be found in extracted-comments.js */ +(()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", "filename/one.js": "/*! License information can be found in extracted-comments.js */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{o.exports=Math.random()}}]);", "extracted-comments.js": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -4919,30 +4922,29 @@ Object { */ /** - * Utility functions for the foo package. - * @license Apache-2.0 + * Duplicate comment in difference files. + * @license MIT */ -/*! Legal Foo */ - /** - * Information. + * Duplicate comment in same file. * @license MIT */ /** - * Duplicate comment in same file. + * Information. * @license MIT */ /** - * Duplicate comment in difference files. - * @license MIT + * Utility functions for the foo package. + * @license Apache-2.0 */ /** @license Copyright 2112 Moon. **/ ", - "filename/four.js": "(()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", + "filename/four.js": "/*! License information can be found in extracted-comments.js */ +(()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", "filename/one.js": "/*! License information can be found in extracted-comments.js */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", "filename/one.js.LICENSE.txt?7ff3da0cbbdc09addc30": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -4984,18 +4988,16 @@ Object { * Utility functions for the foo package. * @license Apache-2.0 */ - -/*! Legal Foo */ ", "filename/one.js?7ff3da0cbbdc09addc30": "/*! For license information please see one.js.LICENSE.txt?7ff3da0cbbdc09addc30 */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js?40e841e929e40c595bc1\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var c=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(p);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),f=o&&o.target&&o.target.src;c.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+f+\\")\\",c.name=\\"ChunkLoadError\\",c.type=u,c.request=f,a(c)}};var p=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],c=0,p=[];c{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", "filename/one.js.LICENSE.txt?query=&filebase=one.js": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -5043,18 +5047,16 @@ Object { * Utility functions for the foo package. * @license Apache-2.0 */ - -/*! Legal Foo */ ", "filename/one.js?7ff3da0cbbdc09addc30": "/*! License information can be found in filename/one.js.LICENSE.txt?query=&filebase=one.js */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js?40e841e929e40c595bc1\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var c=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(p);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),f=o&&o.target&&o.target.src;c.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+f+\\")\\",c.name=\\"ChunkLoadError\\",c.type=u,c.request=f,a(c)}};var p=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],c=0,p=[];c{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", "filename/one.js.LICENSE.txt": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -5102,18 +5106,16 @@ Object { * Utility functions for the foo package. * @license Apache-2.0 */ - -/*! Legal Foo */ ", "filename/one.js?7ff3da0cbbdc09addc30": "/*! For license information please see one.js.LICENSE.txt */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js?40e841e929e40c595bc1\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var c=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(p);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),f=o&&o.target&&o.target.src;c.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+f+\\")\\",c.name=\\"ChunkLoadError\\",c.type=u,c.request=f,a(c)}};var p=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],c=0,p=[];c{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", @@ -5198,6 +5200,8 @@ Object { (window.webpackJsonp=window.webpackJsonp||[]).push([[627],{627:o=>{o.exports=Math.random()}}]);", "extracted-comments.js": "/*! Legal Comment */ +/*! Legal Foo */ + /** * @preserve Copyright 2009 SomeThirdParty. * Here is the full license text and copyright @@ -5206,30 +5210,29 @@ Object { */ /** - * Utility functions for the foo package. - * @license Apache-2.0 + * Duplicate comment in difference files. + * @license MIT */ -/*! Legal Foo */ - /** - * Information. + * Duplicate comment in same file. * @license MIT */ /** - * Duplicate comment in same file. + * Information. * @license MIT */ /** - * Duplicate comment in difference files. - * @license MIT + * Utility functions for the foo package. + * @license Apache-2.0 */ /** @license Copyright 2112 Moon. **/ ", - "filename/four.js": "(()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", + "filename/four.js": "/*! License information can be found in extracted-comments.js */ +(()=>{var r={712:r=>{r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(712)})();", "filename/one.js": "/*! License information can be found in extracted-comments.js */ (()=>{var e={900:(e,r,t)=>{t.e(627).then(t.t.bind(t,627,7)),e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{}};return e[o](n,n.exports,t),n.exports}t.m=e,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if(4&r&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);t.r(o);var n={};if(2&r&&\\"object\\"==typeof e&&e)for(const r in e)n[r]=()=>e[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];pe[r];return n.default=()=>e,t.d(o,n),o},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>\\"chunks/\\"+e+\\".\\"+e+\\".js\\",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},t.p=\\"\\",(()=>{var e={255:0};t.f.j=(r,o)=>{var n=t.o(e,r)?e[r]:void 0;if(0!==n)if(n)o.push(n[2]);else{var a=new Promise((t,o)=>{n=e[r]=[t,o]});o.push(n[2]=a);var i,u=t.p+t.u(r),s=document.createElement(\\"script\\");s.charset=\\"utf-8\\",s.timeout=120,t.nc&&s.setAttribute(\\"nonce\\",t.nc),s.src=u;var p=new Error;i=o=>{i=()=>{},s.onerror=s.onload=null,clearTimeout(f);var a=(()=>{if(t.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n))return n[1]})();if(a){var u=o&&(\\"load\\"===o.type?\\"missing\\":o.type),c=o&&o.target&&o.target.src;p.message=\\"Loading chunk \\"+r+\\" failed.\\\\n(\\"+u+\\": \\"+c+\\")\\",p.name=\\"ChunkLoadError\\",p.type=u,p.request=c,a(p)}};var f=setTimeout(()=>{i({type:\\"timeout\\",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}};var r=window.webpackJsonp=window.webpackJsonp||[],o=r.push.bind(r);r.push=function(r){for(var o,a,i=r[0],u=r[1],s=r[3],p=0,f=[];p{var r={787:r=>{ @@ -5304,12 +5307,12 @@ e.exports=Math.random()}},r={};function t(o){if(r[o])return r[o].exports;var n=r */ r.exports=Math.random()}},t={};!function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}(787)})();", "filename/three.js.LICENSE.txt": "/** - * Duplicate comment in same file. + * Duplicate comment in difference files. * @license MIT */ /** - * Duplicate comment in difference files. + * Duplicate comment in same file. * @license MIT */ ", diff --git a/test/__snapshots__/parallel-option.test.js.snap.webpack4 b/test/__snapshots__/parallel-option.test.js.snap.webpack4 index e19e9532..30a48704 100644 --- a/test/__snapshots__/parallel-option.test.js.snap.webpack4 +++ b/test/__snapshots__/parallel-option.test.js.snap.webpack4 @@ -26,26 +26,56 @@ exports[`parallel option should match snapshot for the "false" value: errors 1`] exports[`parallel option should match snapshot for the "false" value: warnings 1`] = `Array []`; -exports[`parallel option should match snapshot for the "true" value and only one file passed: assets 1`] = ` +exports[`parallel option should match snapshot for the "true" value and the number of files is less than the number of cores: assets 1`] = ` Object { - "main.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "entry-0.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "entry-1.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", } `; -exports[`parallel option should match snapshot for the "true" value and only one file passed: errors 1`] = `Array []`; +exports[`parallel option should match snapshot for the "true" value and the number of files is less than the number of cores: errors 1`] = `Array []`; -exports[`parallel option should match snapshot for the "true" value and only one file passed: warnings 1`] = `Array []`; +exports[`parallel option should match snapshot for the "true" value and the number of files is less than the number of cores: warnings 1`] = `Array []`; -exports[`parallel option should match snapshot for the "true" value and two files passed: assets 1`] = ` +exports[`parallel option should match snapshot for the "true" value and the number of files is more than the number of cores: assets 1`] = ` Object { + "eight.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "five.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "four.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", "one.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "seven.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "six.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "three.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", "two.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", } `; -exports[`parallel option should match snapshot for the "true" value and two files passed: errors 1`] = `Array []`; +exports[`parallel option should match snapshot for the "true" value and the number of files is more than the number of cores: errors 1`] = `Array []`; + +exports[`parallel option should match snapshot for the "true" value and the number of files is more than the number of cores: warnings 1`] = `Array []`; + +exports[`parallel option should match snapshot for the "true" value and the number of files is same than the number of cores: assets 1`] = ` +Object { + "entry-0.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "entry-1.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "entry-2.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", + "entry-3.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", +} +`; + +exports[`parallel option should match snapshot for the "true" value and the number of files is same than the number of cores: errors 1`] = `Array []`; + +exports[`parallel option should match snapshot for the "true" value and the number of files is same than the number of cores: warnings 1`] = `Array []`; + +exports[`parallel option should match snapshot for the "true" value when only one file passed: assets 1`] = ` +Object { + "main.js": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\\"undefined\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\"Module\\"}),Object.defineProperty(e,\\"__esModule\\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\\"object\\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\\"default\\",{enumerable:!0,value:e}),2&t&&\\"string\\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\\"a\\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\\"\\",n(n.s=0)}([function(e,t){e.exports=function(){console.log(7)}}]);", +} +`; + +exports[`parallel option should match snapshot for the "true" value when only one file passed: errors 1`] = `Array []`; -exports[`parallel option should match snapshot for the "true" value and two files passed: warnings 1`] = `Array []`; +exports[`parallel option should match snapshot for the "true" value when only one file passed: warnings 1`] = `Array []`; exports[`parallel option should match snapshot for the "true" value: assets 1`] = ` Object { diff --git a/test/__snapshots__/parallel-option.test.js.snap.webpack5 b/test/__snapshots__/parallel-option.test.js.snap.webpack5 index f6406bb5..d48767e8 100644 --- a/test/__snapshots__/parallel-option.test.js.snap.webpack5 +++ b/test/__snapshots__/parallel-option.test.js.snap.webpack5 @@ -26,26 +26,56 @@ exports[`parallel option should match snapshot for the "false" value: errors 1`] exports[`parallel option should match snapshot for the "false" value: warnings 1`] = `Array []`; -exports[`parallel option should match snapshot for the "true" value and only one file passed: assets 1`] = ` +exports[`parallel option should match snapshot for the "true" value and the number of files is less than the number of cores: assets 1`] = ` Object { - "main.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "entry-0.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "entry-1.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", } `; -exports[`parallel option should match snapshot for the "true" value and only one file passed: errors 1`] = `Array []`; +exports[`parallel option should match snapshot for the "true" value and the number of files is less than the number of cores: errors 1`] = `Array []`; -exports[`parallel option should match snapshot for the "true" value and only one file passed: warnings 1`] = `Array []`; +exports[`parallel option should match snapshot for the "true" value and the number of files is less than the number of cores: warnings 1`] = `Array []`; -exports[`parallel option should match snapshot for the "true" value and two files passed: assets 1`] = ` +exports[`parallel option should match snapshot for the "true" value and the number of files is more than the number of cores: assets 1`] = ` Object { + "eight.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "five.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "four.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", "one.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "seven.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "six.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "three.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", "two.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", } `; -exports[`parallel option should match snapshot for the "true" value and two files passed: errors 1`] = `Array []`; +exports[`parallel option should match snapshot for the "true" value and the number of files is more than the number of cores: errors 1`] = `Array []`; + +exports[`parallel option should match snapshot for the "true" value and the number of files is more than the number of cores: warnings 1`] = `Array []`; + +exports[`parallel option should match snapshot for the "true" value and the number of files is same than the number of cores: assets 1`] = ` +Object { + "entry-0.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "entry-1.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "entry-2.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", + "entry-3.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", +} +`; + +exports[`parallel option should match snapshot for the "true" value and the number of files is same than the number of cores: errors 1`] = `Array []`; + +exports[`parallel option should match snapshot for the "true" value and the number of files is same than the number of cores: warnings 1`] = `Array []`; + +exports[`parallel option should match snapshot for the "true" value when only one file passed: assets 1`] = ` +Object { + "main.js": "(()=>{var r={791:r=>{r.exports=function(){console.log(7)}}},o={};!function t(e){if(o[e])return o[e].exports;var n=o[e]={exports:{}};return r[e](n,n.exports,t),n.exports}(791)})();", +} +`; + +exports[`parallel option should match snapshot for the "true" value when only one file passed: errors 1`] = `Array []`; -exports[`parallel option should match snapshot for the "true" value and two files passed: warnings 1`] = `Array []`; +exports[`parallel option should match snapshot for the "true" value when only one file passed: warnings 1`] = `Array []`; exports[`parallel option should match snapshot for the "true" value: assets 1`] = ` Object { diff --git a/test/__snapshots__/terserOptions-option.test.js.snap.webpack5 b/test/__snapshots__/terserOptions-option.test.js.snap.webpack5 index b12e542c..e3ab51ba 100644 --- a/test/__snapshots__/terserOptions-option.test.js.snap.webpack5 +++ b/test/__snapshots__/terserOptions-option.test.js.snap.webpack5 @@ -453,8 +453,8 @@ exports[`terserOptions option should match snapshot for the "warnings" option wi exports[`terserOptions option should match snapshot for the "warnings" option with the "true" value: warnings 1`] = ` Array [ + "Terser Plugin: Dropping side-effect-free statement [main.js:1,9]", "Terser Plugin: Dropping unreachable code [main.js:2,41]", "Terser Plugin: Dropping unused function foo [main.js:2,9]", - "Terser Plugin: Dropping side-effect-free statement [main.js:1,9]", ] `; diff --git a/test/__snapshots__/warningsFilter-option.test.js.snap.webpack4 b/test/__snapshots__/warningsFilter-option.test.js.snap.webpack4 index 2828363b..0c449818 100644 --- a/test/__snapshots__/warningsFilter-option.test.js.snap.webpack4 +++ b/test/__snapshots__/warningsFilter-option.test.js.snap.webpack4 @@ -43,8 +43,8 @@ exports[`warningsFilter option should match snapshot for a "function" value and exports[`warningsFilter option should match snapshot for a "function" value and the "sourceMap" option is "true" (filter by message): warnings 1`] = ` Array [ - "Terser Plugin: Dropping unreachable code [./test/fixtures/unreachable-code.js:1,40]", "Terser Plugin: Dropping unreachable code [./test/fixtures/unreachable-code-2.js:1,40]", + "Terser Plugin: Dropping unreachable code [./test/fixtures/unreachable-code.js:1,40]", ] `; diff --git a/test/__snapshots__/warningsFilter-option.test.js.snap.webpack5 b/test/__snapshots__/warningsFilter-option.test.js.snap.webpack5 index 65a016ef..b5a3f225 100644 --- a/test/__snapshots__/warningsFilter-option.test.js.snap.webpack5 +++ b/test/__snapshots__/warningsFilter-option.test.js.snap.webpack5 @@ -27,9 +27,9 @@ exports[`warningsFilter option should match snapshot for a "function" value and exports[`warningsFilter option should match snapshot for a "function" value and the "sourceMap" option is "true" (filter by file): warnings 1`] = ` Array [ + "Terser Plugin: Dropping side-effect-free statement [two.js:1,9]", "Terser Plugin: Dropping unreachable code [webpack://./test/fixtures/unreachable-code-2.js:1,40]", "Terser Plugin: Dropping unused function foo [webpack://./test/fixtures/unreachable-code-2.js:1,0]", - "Terser Plugin: Dropping side-effect-free statement [two.js:1,9]", ] `; @@ -44,8 +44,8 @@ exports[`warningsFilter option should match snapshot for a "function" value and exports[`warningsFilter option should match snapshot for a "function" value and the "sourceMap" option is "true" (filter by message): warnings 1`] = ` Array [ - "Terser Plugin: Dropping unreachable code [webpack://./test/fixtures/unreachable-code.js:1,40]", "Terser Plugin: Dropping unreachable code [webpack://./test/fixtures/unreachable-code-2.js:1,40]", + "Terser Plugin: Dropping unreachable code [webpack://./test/fixtures/unreachable-code.js:1,40]", ] `; diff --git a/test/cache-option.test.js b/test/cache-option.test.js index f2d0e7b1..9048dcf9 100644 --- a/test/cache-option.test.js +++ b/test/cache-option.test.js @@ -71,7 +71,7 @@ if (getCompiler.isWebpack4()) { .spyOn(Webpack4Cache, 'getCacheDirectory') .mockImplementation(() => uniqueCacheDirectory); - new TerserPlugin({ cache: true }).apply(compiler); + new TerserPlugin().apply(compiler); const stats = await compile(compiler); diff --git a/test/helpers/getErrors.js b/test/helpers/getErrors.js index 716fbbb4..085bae5b 100644 --- a/test/helpers/getErrors.js +++ b/test/helpers/getErrors.js @@ -1,5 +1,5 @@ import normalizeErrors from './normalizeErrors'; export default (stats) => { - return normalizeErrors(stats.compilation.errors); + return normalizeErrors(stats.compilation.errors).sort(); }; diff --git a/test/helpers/getWarnings.js b/test/helpers/getWarnings.js index c8a09d6d..9e09c82b 100644 --- a/test/helpers/getWarnings.js +++ b/test/helpers/getWarnings.js @@ -1,5 +1,5 @@ import normalizeErrors from './normalizeErrors'; export default (stats) => { - return normalizeErrors(stats.compilation.warnings); + return normalizeErrors(stats.compilation.warnings).sort(); }; diff --git a/test/parallel-option-failure.test.js b/test/parallel-option-failure.test.js index 4affeccf..0dcc6532 100644 --- a/test/parallel-option-failure.test.js +++ b/test/parallel-option-failure.test.js @@ -78,7 +78,7 @@ describe('parallel option', () => { expect(Worker).toHaveBeenCalledTimes(1); expect(Worker).toHaveBeenLastCalledWith(workerPath, { - numWorkers: os.cpus().length - 1, + numWorkers: Math.min(2, os.cpus().length - 1), }); expect(workerTransform).toHaveBeenCalledTimes( Object.keys(stats.compilation.assets).length @@ -103,7 +103,7 @@ describe('parallel option', () => { expect(Worker).toHaveBeenCalledTimes(1); expect(Worker).toHaveBeenLastCalledWith(workerPath, { - numWorkers: os.cpus().length - 1, + numWorkers: Math.min(2, os.cpus().length - 1), }); expect(workerTransform).toHaveBeenCalledTimes( Object.keys(stats.compilation.assets).length diff --git a/test/parallel-option.test.js b/test/parallel-option.test.js index 6598ac4f..e26343d7 100644 --- a/test/parallel-option.test.js +++ b/test/parallel-option.test.js @@ -101,7 +101,7 @@ describe('parallel option', () => { expect(Worker).toHaveBeenCalledTimes(1); expect(Worker).toHaveBeenLastCalledWith(workerPath, { - numWorkers: os.cpus().length - 1, + numWorkers: Math.min(4, os.cpus().length - 1), }); expect(workerTransform).toHaveBeenCalledTimes( Object.keys(stats.compilation.assets).length @@ -132,7 +132,7 @@ describe('parallel option', () => { expect(getWarnings(stats)).toMatchSnapshot('warnings'); }); - it('should match snapshot for the "true" value and only one file passed', async () => { + it('should match snapshot for the "true" value when only one file passed', async () => { compiler = getCompiler({ entry: `${__dirname}/fixtures/entry.js`, }); @@ -143,7 +143,34 @@ describe('parallel option', () => { expect(Worker).toHaveBeenCalledTimes(1); expect(Worker).toHaveBeenLastCalledWith(workerPath, { - numWorkers: os.cpus().length - 1, + numWorkers: Math.min(1, os.cpus().length - 1), + }); + expect(workerTransform).toHaveBeenCalledTimes( + Object.keys(stats.compilation.assets).length + ); + expect(workerEnd).toHaveBeenCalledTimes(1); + + expect(readsAssets(compiler, stats)).toMatchSnapshot('assets'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + }); + + it('should match snapshot for the "true" value and the number of files is less than the number of cores', async () => { + const entries = {}; + + for (let i = 0; i < os.cpus().length / 2; i++) { + entries[`entry-${i}`] = `${__dirname}/fixtures/entry.js`; + } + + compiler = getCompiler({ entry: entries }); + + new TerserPlugin({ parallel: true }).apply(compiler); + + const stats = await compile(compiler); + + expect(Worker).toHaveBeenCalledTimes(1); + expect(Worker).toHaveBeenLastCalledWith(workerPath, { + numWorkers: Math.min(Object.keys(entries).length, os.cpus().length - 1), }); expect(workerTransform).toHaveBeenCalledTimes( Object.keys(stats.compilation.assets).length @@ -155,11 +182,50 @@ describe('parallel option', () => { expect(getWarnings(stats)).toMatchSnapshot('warnings'); }); - it('should match snapshot for the "true" value and two files passed', async () => { + it('should match snapshot for the "true" value and the number of files is same than the number of cores', async () => { + const entries = {}; + + for (let i = 0; i < os.cpus().length; i++) { + entries[`entry-${i}`] = `${__dirname}/fixtures/entry.js`; + } + + compiler = getCompiler({ entry: entries }); + + new TerserPlugin({ parallel: true }).apply(compiler); + + const stats = await compile(compiler); + + expect(Worker).toHaveBeenCalledTimes(1); + expect(Worker).toHaveBeenLastCalledWith(workerPath, { + numWorkers: Math.min(Object.keys(entries).length, os.cpus().length - 1), + }); + expect(workerTransform).toHaveBeenCalledTimes( + Object.keys(stats.compilation.assets).length + ); + expect(workerEnd).toHaveBeenCalledTimes(1); + + expect(readsAssets(compiler, stats)).toMatchSnapshot('assets'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + }); + + it('should match snapshot for the "true" value and the number of files is more than the number of cores', async () => { + const entries = {}; + + for (let i = 0; i < os.cpus().length * 2; i++) { + entries[`entry-${i}`] = `${__dirname}/fixtures/entry.js`; + } + compiler = getCompiler({ entry: { one: `${__dirname}/fixtures/entry.js`, two: `${__dirname}/fixtures/entry.js`, + three: `${__dirname}/fixtures/entry.js`, + four: `${__dirname}/fixtures/entry.js`, + five: `${__dirname}/fixtures/entry.js`, + six: `${__dirname}/fixtures/entry.js`, + seven: `${__dirname}/fixtures/entry.js`, + eight: `${__dirname}/fixtures/entry.js`, }, }); @@ -169,7 +235,7 @@ describe('parallel option', () => { expect(Worker).toHaveBeenCalledTimes(1); expect(Worker).toHaveBeenLastCalledWith(workerPath, { - numWorkers: os.cpus().length - 1, + numWorkers: Math.min(Object.keys(entries).length, os.cpus().length - 1), }); expect(workerTransform).toHaveBeenCalledTimes( Object.keys(stats.compilation.assets).length