extract-text-webpack-plugin
Advanced tools
Comparing version 3.0.2 to 4.0.0-alpha.0
@@ -5,2 +5,23 @@ # Change Log | ||
<a name="4.0.0-alpha.0"></a> | ||
# [4.0.0-alpha.0](https://github.com/webpack-contrib/extract-text-webpack-plugin/compare/v3.0.2...v4.0.0-alpha.0) (2018-02-14) | ||
### Chores | ||
* **package:** update `engines` && `peerDependencies` ([05b41f3](https://github.com/webpack-contrib/extract-text-webpack-plugin/commit/05b41f3)) | ||
### Code Refactoring | ||
* **ExtractTextPlugin:** update to new plugin system and API's ([#707](https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/707)) ([51c56c0](https://github.com/webpack-contrib/extract-text-webpack-plugin/commit/51c56c0)) | ||
### BREAKING CHANGES | ||
* **ExtractTextPlugin:** requires `webpack >= v4.0.0` | ||
* **package:** requires `node >= v6.0.0` (`engines`) | ||
<a name="3.0.2"></a> | ||
@@ -7,0 +28,0 @@ ## [3.0.2](https://github.com/webpack-contrib/extract-text-webpack-plugin/compare/v3.0.1...v3.0.2) (2017-10-25) |
@@ -7,4 +7,2 @@ 'use strict'; | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
var _fs = require('fs'); | ||
@@ -48,19 +46,21 @@ | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
/* eslint-disable | ||
consistent-return, | ||
no-param-reassign, | ||
prefer-rest-params | ||
*/ | ||
const NS = _path2.default.dirname(_fs2.default.realpathSync(__filename)); | ||
const plugin = { name: 'ExtractTextPlugin' }; | ||
var NS = _path2.default.dirname(_fs2.default.realpathSync(__filename)); | ||
let nextId = 0; | ||
var nextId = 0; | ||
var ExtractTextPlugin = function () { | ||
function ExtractTextPlugin(options) { | ||
_classCallCheck(this, ExtractTextPlugin); | ||
class ExtractTextPlugin { | ||
constructor(options) { | ||
if ((0, _helpers.isString)(options)) { | ||
options = { filename: options }; | ||
} else { | ||
(0, _schemaUtils2.default)(_path2.default.resolve(__dirname, '../schema/plugin.json'), options, 'Extract Text Plugin'); | ||
(0, _schemaUtils2.default)(_path2.default.resolve(__dirname, './plugin.json'), options, 'Extract Text Plugin'); | ||
} | ||
this.filename = options.filename; | ||
this.id = options.id != null ? options.id : ++nextId; | ||
this.id = options.id != null ? options.id : nextId += 1; | ||
this.options = {}; | ||
@@ -72,223 +72,255 @@ (0, _helpers.mergeOptions)(this.options, options); | ||
_createClass(ExtractTextPlugin, [{ | ||
key: 'applyAdditionalInformation', | ||
value: function applyAdditionalInformation(source, info) { | ||
if (info) { | ||
return new _webpackSources.ConcatSource(`@media ${info[0]} {`, source, '}'); | ||
} | ||
return source; | ||
static loader(options) { | ||
return { loader: require.resolve('./loader'), options }; | ||
} | ||
static applyAdditionalInformation(source, info) { | ||
if (info) { | ||
return new _webpackSources.ConcatSource(`@media ${info[0]} {`, source, '}'); | ||
} | ||
}, { | ||
key: 'loader', | ||
value: function loader(options) { | ||
return ExtractTextPlugin.loader((0, _helpers.mergeOptions)({ id: this.id }, options)); | ||
} | ||
}, { | ||
key: 'mergeNonInitialChunks', | ||
value: function mergeNonInitialChunks(chunk, intoChunk, checkedChunks) { | ||
var _this = this; | ||
if (!intoChunk) { | ||
checkedChunks = []; | ||
chunk.chunks.forEach(function (c) { | ||
if ((0, _helpers.isInitialOrHasNoParents)(c)) return; | ||
_this.mergeNonInitialChunks(c, chunk, checkedChunks); | ||
}, this); | ||
} else if (checkedChunks.indexOf(chunk) < 0) { | ||
checkedChunks.push(chunk); | ||
chunk.forEachModule(function (module) { | ||
intoChunk.addModule(module); | ||
module.addChunk(intoChunk); | ||
}); | ||
chunk.chunks.forEach(function (c) { | ||
if ((0, _helpers.isInitialOrHasNoParents)(c)) return; | ||
_this.mergeNonInitialChunks(c, intoChunk, checkedChunks); | ||
}, this); | ||
return source; | ||
} | ||
loader(options) { | ||
return ExtractTextPlugin.loader((0, _helpers.mergeOptions)({ id: this.id }, options)); | ||
} | ||
mergeNonInitialChunks(chunk, intoChunk, checkedChunks) { | ||
if (!intoChunk) { | ||
const newCheckedChunks = []; | ||
for (const asyncChunk of chunk.getAllAsyncChunks()) { | ||
if (!asyncChunk.isOnlyInitial()) { | ||
this.mergeNonInitialChunks(asyncChunk, chunk, newCheckedChunks); | ||
} | ||
} | ||
} else if (!checkedChunks.includes(chunk)) { | ||
const newCheckedChunks = checkedChunks.concat(chunk); | ||
for (const chunkModule of chunk.modulesIterable) { | ||
intoChunk.addModule(chunkModule); | ||
chunkModule.addChunk(intoChunk); | ||
} | ||
for (const asyncChunk of chunk.getAllAsyncChunks()) { | ||
if (!asyncChunk.isOnlyInitial()) { | ||
this.mergeNonInitialChunks(asyncChunk, intoChunk, newCheckedChunks); | ||
} | ||
} | ||
} | ||
}, { | ||
key: 'renderExtractedChunk', | ||
value: function renderExtractedChunk(chunk) { | ||
var _this2 = this; | ||
} | ||
var source = new _webpackSources.ConcatSource(); | ||
chunk.forEachModule(function (module) { | ||
var moduleSource = module.source(); | ||
source.add(_this2.applyAdditionalInformation(moduleSource, module.additionalInformation)); | ||
}, this); | ||
return source; | ||
} | ||
}, { | ||
key: 'extract', | ||
value: function extract(options) { | ||
if (Array.isArray(options) || (0, _helpers.isString)(options) || typeof options.options === 'object' || typeof options.query === 'object') { | ||
options = { use: options }; | ||
} else { | ||
(0, _schemaUtils2.default)(_path2.default.resolve(__dirname, '../schema/loader.json'), options, 'Extract Text Plugin (Loader)'); | ||
static renderExtractedChunk(chunk) { | ||
const source = new _webpackSources.ConcatSource(); | ||
for (const chunkModule of chunk.modulesIterable) { | ||
let moduleSource = chunkModule.source(); | ||
// Async imports (require.ensure(), import().then) are CachedSource module | ||
// instances caching a ReplaceSource instance, which breaks the plugin | ||
// because their .source() is the cached "// removed by ..." text. | ||
// The issue lies elsewhere, this is just a temporary fix that | ||
// creates a new RawSource with the extracted text. If it's | ||
// a CachedSource instance but there's no extracted text | ||
// it's "__webpack_require__();" statements. Skip it. | ||
if (moduleSource instanceof _webpackSources.CachedSource) { | ||
if (chunkModule[NS] && chunkModule[NS].content) { | ||
moduleSource = new _webpackSources.RawSource(chunkModule[NS].content[0][1]); | ||
} else { | ||
moduleSource = null; | ||
} | ||
} | ||
var loader = options.use; | ||
var before = options.fallback || []; | ||
if ((0, _helpers.isString)(loader)) { | ||
loader = loader.split('!'); | ||
if (moduleSource) { | ||
source.add(ExtractTextPlugin.applyAdditionalInformation(moduleSource, chunkModule.additionalInformation)); | ||
} | ||
if ((0, _helpers.isString)(before)) { | ||
before = before.split('!'); | ||
} else if (!Array.isArray(before)) { | ||
before = [before]; | ||
} | ||
options = (0, _helpers.mergeOptions)({ omit: before.length, remove: true }, options); | ||
delete options.use; | ||
delete options.fallback; | ||
return [this.loader(options)].concat(before, loader).map(_helpers.getLoaderObject); | ||
} | ||
}, { | ||
key: 'apply', | ||
value: function apply(compiler) { | ||
var _this3 = this; | ||
var options = this.options; | ||
compiler.plugin('this-compilation', function (compilation) { | ||
var extractCompilation = new _ExtractTextPluginCompilation2.default(); | ||
compilation.plugin('normal-module-loader', function (loaderContext, module) { | ||
loaderContext[NS] = function (content, opt) { | ||
if (options.disable) { | ||
return false; | ||
} | ||
if (!Array.isArray(content) && content != null) { | ||
throw new Error(`Exported value was not extracted as an array: ${JSON.stringify(content)}`); | ||
} | ||
module[NS] = { | ||
content, | ||
options: opt || {} | ||
}; | ||
return options.allChunks || module[`${NS}/extract`]; // eslint-disable-line no-path-concat | ||
return source; | ||
} | ||
extract(options) { | ||
if (Array.isArray(options) || (0, _helpers.isString)(options) || typeof options.options === 'object' || typeof options.query === 'object') { | ||
options = { use: options }; | ||
} else { | ||
(0, _schemaUtils2.default)(_path2.default.resolve(__dirname, './loader.json'), options, 'Extract Text Plugin (Loader)'); | ||
} | ||
let loader = options.use; | ||
let before = options.fallback || []; | ||
if ((0, _helpers.isString)(loader)) { | ||
loader = loader.split('!'); | ||
} | ||
if ((0, _helpers.isString)(before)) { | ||
before = before.split('!'); | ||
} else if (!Array.isArray(before)) { | ||
before = [before]; | ||
} | ||
options = (0, _helpers.mergeOptions)({ omit: before.length, remove: true }, options); | ||
delete options.use; | ||
delete options.fallback; | ||
return [this.loader(options)].concat(before, loader).map(_helpers.getLoaderObject); | ||
} | ||
apply(compiler) { | ||
const { options, filename, id } = this; | ||
compiler.hooks.thisCompilation.tap(plugin, compilation => { | ||
const extractCompilation = new _ExtractTextPluginCompilation2.default(); | ||
compilation.hooks.normalModuleLoader.tap(plugin, (loaderContext, module) => { | ||
loaderContext[NS] = (content, opt) => { | ||
if (options.disable) { | ||
return false; | ||
} | ||
if (!Array.isArray(content) && content != null) { | ||
throw new Error(`Exported value was not extracted as an array: ${JSON.stringify(content)}`); | ||
} | ||
module[NS] = { | ||
content, | ||
options: opt || {} | ||
}; | ||
return options.allChunks || module[`${NS}/extract`]; // eslint-disable-line no-path-concat | ||
}; | ||
}); | ||
let extractedChunks; | ||
compilation.hooks.optimizeTree.tapAsync(plugin, (chunks, modules, callback) => { | ||
extractedChunks = chunks.map(() => new _Chunk2.default()); | ||
chunks.forEach((chunk, i) => { | ||
const extractedChunk = extractedChunks[i]; | ||
extractedChunk.index = i; | ||
extractedChunk.originalChunk = chunk; | ||
extractedChunk.name = chunk.name; | ||
// extractedChunk.entryModule = chunk.entryModule; | ||
for (const chunkGroup of chunk.groupsIterable) { | ||
extractedChunk.addGroup(chunkGroup); | ||
} | ||
}); | ||
var filename = _this3.filename; | ||
var id = _this3.id; | ||
var extractedChunks = void 0; | ||
compilation.plugin('optimize-tree', function (chunks, modules, callback) { | ||
extractedChunks = chunks.map(function () { | ||
return new _Chunk2.default(); | ||
}); | ||
chunks.forEach(function (chunk, i) { | ||
var extractedChunk = extractedChunks[i]; | ||
extractedChunk.index = i; | ||
extractedChunk.originalChunk = chunk; | ||
extractedChunk.name = chunk.name; | ||
extractedChunk.entrypoints = chunk.entrypoints; | ||
chunk.chunks.forEach(function (c) { | ||
extractedChunk.addChunk(extractedChunks[chunks.indexOf(c)]); | ||
}); | ||
chunk.parents.forEach(function (c) { | ||
extractedChunk.addParent(extractedChunks[chunks.indexOf(c)]); | ||
}); | ||
}); | ||
_async2.default.forEach(chunks, function (chunk, callback) { | ||
_async2.default.forEach(chunks, (chunk, chunkCallback) => { | ||
// eslint-disable-line no-shadow | ||
const extractedChunk = extractedChunks[chunks.indexOf(chunk)]; | ||
const shouldExtract = !!(options.allChunks || (0, _helpers.isInitialOrHasNoParents)(chunk)); | ||
// chunk.sortModules(); | ||
_async2.default.forEach(Array.from(chunk.modulesIterable), (module, moduleCallback) => { | ||
// eslint-disable-line no-shadow | ||
var extractedChunk = extractedChunks[chunks.indexOf(chunk)]; | ||
var shouldExtract = !!(options.allChunks || (0, _helpers.isInitialOrHasNoParents)(chunk)); | ||
chunk.sortModules(); | ||
_async2.default.forEach(chunk.mapModules(function (c) { | ||
return c; | ||
}), function (module, callback) { | ||
// eslint-disable-line no-shadow | ||
var meta = module[NS]; | ||
if (meta && (!meta.options.id || meta.options.id === id)) { | ||
var wasExtracted = Array.isArray(meta.content); | ||
// A stricter `shouldExtract !== wasExtracted` check to guard against cases where a previously extracted | ||
// module would be extracted twice. Happens when a module is a dependency of an initial and a non-initial | ||
// chunk. See issue #604 | ||
if (shouldExtract && !wasExtracted) { | ||
module[`${NS}/extract`] = shouldExtract; // eslint-disable-line no-path-concat | ||
compilation.rebuildModule(module, function (err) { | ||
if (err) { | ||
compilation.errors.push(err); | ||
return callback(); | ||
} | ||
meta = module[NS]; | ||
// Error out if content is not an array and is not null | ||
if (!Array.isArray(meta.content) && meta.content != null) { | ||
err = new Error(`${module.identifier()} doesn't export content`); | ||
compilation.errors.push(err); | ||
return callback(); | ||
} | ||
if (meta.content) { | ||
extractCompilation.addResultToChunk(module.identifier(), meta.content, module, extractedChunk); | ||
} | ||
callback(); | ||
}); | ||
} else { | ||
let meta = module[NS]; | ||
if (meta && (!meta.options.id || meta.options.id === id)) { | ||
const wasExtracted = Array.isArray(meta.content); | ||
// A stricter `shouldExtract !== wasExtracted` check to guard against cases where a previously extracted | ||
// module would be extracted twice. Happens when a module is a dependency of an initial and a non-initial | ||
// chunk. See issue #604 | ||
if (shouldExtract && !wasExtracted) { | ||
module[`${NS}/extract`] = shouldExtract; // eslint-disable-line no-path-concat | ||
return compilation.rebuildModule(module, err => { | ||
if (err) { | ||
compilation.errors.push(err); | ||
return moduleCallback(); | ||
} | ||
meta = module[NS]; | ||
// Error out if content is not an array and is not null | ||
if (!Array.isArray(meta.content) && meta.content != null) { | ||
err = new Error(`${module.identifier()} doesn't export content`); | ||
compilation.errors.push(err); | ||
return moduleCallback(); | ||
} | ||
if (meta.content) { | ||
extractCompilation.addResultToChunk(module.identifier(), meta.content, module, extractedChunk); | ||
} | ||
callback(); | ||
} | ||
} else callback(); | ||
}, function (err) { | ||
if (err) return callback(err); | ||
callback(); | ||
}); | ||
}, function (err) { | ||
if (err) return callback(err); | ||
extractedChunks.forEach(function (extractedChunk) { | ||
if ((0, _helpers.isInitialOrHasNoParents)(extractedChunk)) { | ||
_this3.mergeNonInitialChunks(extractedChunk); | ||
} | ||
}, _this3); | ||
extractedChunks.forEach(function (extractedChunk) { | ||
if (!(0, _helpers.isInitialOrHasNoParents)(extractedChunk)) { | ||
extractedChunk.forEachModule(function (module) { | ||
extractedChunk.removeModule(module); | ||
return moduleCallback(); | ||
}); | ||
} else if (meta.content) { | ||
extractCompilation.addResultToChunk(module.identifier(), meta.content, module, extractedChunk); | ||
} | ||
}); | ||
compilation.applyPlugins('optimize-extracted-chunks', extractedChunks); | ||
callback(); | ||
} | ||
return moduleCallback(); | ||
}, err => { | ||
if (err) { | ||
return chunkCallback(err); | ||
} | ||
chunkCallback(); | ||
}); | ||
}); | ||
compilation.plugin('additional-assets', function (callback) { | ||
extractedChunks.forEach(function (extractedChunk) { | ||
if (extractedChunk.getNumberOfModules()) { | ||
extractedChunk.sortModules(function (a, b) { | ||
if (!options.ignoreOrder && (0, _helpers.isInvalidOrder)(a, b)) { | ||
compilation.errors.push(new _OrderUndefinedError2.default(a.getOriginalModule())); | ||
compilation.errors.push(new _OrderUndefinedError2.default(b.getOriginalModule())); | ||
} | ||
return (0, _helpers.getOrder)(a, b); | ||
}); | ||
var chunk = extractedChunk.originalChunk; | ||
var source = _this3.renderExtractedChunk(extractedChunk); | ||
}, err => { | ||
if (err) { | ||
return callback(err); | ||
} | ||
var getPath = function getPath(format) { | ||
return compilation.getPath(format, { | ||
chunk | ||
}).replace(/\[(?:(\w+):)?contenthash(?::([a-z]+\d*))?(?::(\d+))?\]/ig, function () { | ||
// eslint-disable-line func-names | ||
return _loaderUtils2.default.getHashDigest(source.source(), arguments[1], arguments[2], parseInt(arguments[3], 10)); | ||
}); | ||
}; | ||
extractedChunks.forEach(extractedChunk => { | ||
if ((0, _helpers.isInitialOrHasNoParents)(extractedChunk)) { | ||
this.mergeNonInitialChunks(extractedChunk); | ||
} | ||
}); | ||
var file = (0, _helpers.isFunction)(filename) ? filename(getPath) : getPath(filename); | ||
extractedChunks.forEach(extractedChunk => { | ||
if (!(0, _helpers.isInitialOrHasNoParents)(extractedChunk)) { | ||
for (const chunkModule of extractedChunk.modulesIterable) { | ||
extractedChunk.removeModule(chunkModule); | ||
} | ||
} | ||
}); | ||
compilation.assets[file] = source; | ||
chunk.files.push(file); | ||
} | ||
}, _this3); | ||
compilation.hooks.optimizeExtractedChunks.call(extractedChunks); | ||
callback(); | ||
}); | ||
}); | ||
} | ||
}], [{ | ||
key: 'loader', | ||
value: function loader(options) { | ||
return { loader: require.resolve('./loader'), options }; | ||
} | ||
}]); | ||
return ExtractTextPlugin; | ||
}(); | ||
compilation.hooks.additionalAssets.tapAsync(plugin, assetCb => { | ||
extractedChunks.forEach(extractedChunk => { | ||
if (extractedChunk.getNumberOfModules()) { | ||
extractedChunk.sortModules((a, b) => { | ||
if (!options.ignoreOrder && (0, _helpers.isInvalidOrder)(a, b)) { | ||
compilation.errors.push(new _OrderUndefinedError2.default(a.getOriginalModule())); | ||
compilation.errors.push(new _OrderUndefinedError2.default(b.getOriginalModule())); | ||
} | ||
return (0, _helpers.getOrder)(a, b); | ||
}); | ||
const chunk = extractedChunk.originalChunk; | ||
const source = ExtractTextPlugin.renderExtractedChunk(extractedChunk); | ||
const getPath = format => compilation.getPath(format, { | ||
chunk | ||
}).replace(/\[(?:(\w+):)?contenthash(?::([a-z]+\d*))?(?::(\d+))?\]/gi, | ||
// eslint-disable-next-line func-names | ||
function () { | ||
return _loaderUtils2.default.getHashDigest(source.source(), arguments[1], arguments[2], parseInt(arguments[3], 10)); | ||
}); | ||
const file = (0, _helpers.isFunction)(filename) ? filename(getPath) : getPath(filename); | ||
compilation.assets[file] = source; | ||
chunk.files.push(file); | ||
} | ||
}, this); | ||
assetCb(); | ||
}); | ||
}); | ||
} | ||
} | ||
ExtractTextPlugin.extract = ExtractTextPlugin.prototype.extract.bind(ExtractTextPlugin); | ||
exports.default = ExtractTextPlugin; |
@@ -7,12 +7,6 @@ 'use strict'; | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
var _webpackSources = require('webpack-sources'); | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
var ExtractedModule = function () { | ||
function ExtractedModule(identifier, originalModule, source, sourceMap, addtitionalInformation, prevModules) { | ||
_classCallCheck(this, ExtractedModule); | ||
class ExtractedModule { | ||
constructor(identifier, originalModule, source, sourceMap, additionalInformation, prevModules) { | ||
this._identifier = identifier; | ||
@@ -23,80 +17,63 @@ this._originalModule = originalModule; | ||
this._prevModules = prevModules; | ||
this.addtitionalInformation = addtitionalInformation; | ||
this.additionalInformation = additionalInformation; | ||
this.chunks = []; | ||
} | ||
_createClass(ExtractedModule, [{ | ||
key: 'getOrder', | ||
value: function getOrder() { | ||
// http://stackoverflow.com/a/14676665/1458162 | ||
return (/^@import url/.test(this._source) ? 0 : 1 | ||
); | ||
getOrder() { | ||
// http://stackoverflow.com/a/14676665/1458162 | ||
return (/^@import url/.test(this._source) ? 0 : 1 | ||
); | ||
} | ||
addChunk(chunk) { | ||
const idx = this.chunks.indexOf(chunk); | ||
if (idx < 0) { | ||
this.chunks.push(chunk); | ||
} | ||
}, { | ||
key: 'addChunk', | ||
value: function addChunk(chunk) { | ||
var idx = this.chunks.indexOf(chunk); | ||
if (idx < 0) { | ||
this.chunks.push(chunk); | ||
} | ||
} | ||
removeChunk(chunk) { | ||
const idx = this.chunks.indexOf(chunk); | ||
if (idx >= 0) { | ||
this.chunks.splice(idx, 1); | ||
chunk.removeModule(this); | ||
return true; | ||
} | ||
}, { | ||
key: 'removeChunk', | ||
value: function removeChunk(chunk) { | ||
var idx = this.chunks.indexOf(chunk); | ||
if (idx >= 0) { | ||
this.chunks.splice(idx, 1); | ||
chunk.removeModule(this); | ||
return true; | ||
} | ||
return false; | ||
return false; | ||
} | ||
rewriteChunkInReasons(oldChunk, newChunks) {} // eslint-disable-line | ||
identifier() { | ||
return this._identifier; | ||
} | ||
source() { | ||
if (this._sourceMap) { | ||
return new _webpackSources.SourceMapSource(this._source, null, this._sourceMap); | ||
} | ||
}, { | ||
key: 'rewriteChunkInReasons', | ||
value: function rewriteChunkInReasons(oldChunk, newChunks) {} // eslint-disable-line | ||
return new _webpackSources.RawSource(this._source); | ||
} | ||
}, { | ||
key: 'identifier', | ||
value: function identifier() { | ||
return this._identifier; | ||
} | ||
}, { | ||
key: 'source', | ||
value: function source() { | ||
if (this._sourceMap) { | ||
return new _webpackSources.SourceMapSource(this._source, null, this._sourceMap); | ||
getOriginalModule() { | ||
return this._originalModule; | ||
} | ||
getPrevModules() { | ||
return this._prevModules; | ||
} | ||
addPrevModules(prevModules) { | ||
prevModules.forEach(m => { | ||
if (this._prevModules.indexOf(m) < 0) { | ||
this._prevModules.push(m); | ||
} | ||
return new _webpackSources.RawSource(this._source); | ||
} | ||
}, { | ||
key: 'getOriginalModule', | ||
value: function getOriginalModule() { | ||
return this._originalModule; | ||
} | ||
}, { | ||
key: 'getPrevModules', | ||
value: function getPrevModules() { | ||
return this._prevModules; | ||
} | ||
}, { | ||
key: 'addPrevModules', | ||
value: function addPrevModules(prevModules) { | ||
var _this = this; | ||
}, this); | ||
} | ||
prevModules.forEach(function (m) { | ||
if (_this._prevModules.indexOf(m) < 0) { | ||
_this._prevModules.push(m); | ||
} | ||
}, this); | ||
} | ||
}, { | ||
key: 'setOriginalModule', | ||
value: function setOriginalModule(originalModule) { | ||
this._originalModule = originalModule; | ||
} | ||
}]); | ||
setOriginalModule(originalModule) { | ||
this._originalModule = originalModule; | ||
} | ||
} | ||
return ExtractedModule; | ||
}(); | ||
exports.default = ExtractedModule; |
@@ -7,5 +7,2 @@ 'use strict'; | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* eslint-disable no-multi-assign */ | ||
var _ExtractedModule = require('./ExtractedModule'); | ||
@@ -17,50 +14,47 @@ | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
var ExtractTextPluginCompilation = function () { | ||
function ExtractTextPluginCompilation() { | ||
_classCallCheck(this, ExtractTextPluginCompilation); | ||
class ExtractTextPluginCompilation { | ||
constructor() { | ||
this.modulesByIdentifier = {}; | ||
} | ||
_createClass(ExtractTextPluginCompilation, [{ | ||
key: 'addModule', | ||
value: function addModule(identifier, originalModule, source, additionalInformation, sourceMap, prevModules) { | ||
var m = void 0; | ||
if (!this.modulesByIdentifier[identifier]) { | ||
m = this.modulesByIdentifier[identifier] = new _ExtractedModule2.default(identifier, originalModule, source, sourceMap, additionalInformation, prevModules); | ||
} else { | ||
m = this.modulesByIdentifier[identifier]; | ||
m.addPrevModules(prevModules); | ||
if (originalModule.index2 < m.getOriginalModule().index2) { | ||
m.setOriginalModule(originalModule); | ||
} | ||
addModule(identifier, originalModule, source, additionalInformation, sourceMap, prevModules) { | ||
let m; | ||
if (!this.modulesByIdentifier[identifier]) { | ||
m = this.modulesByIdentifier[identifier] = new _ExtractedModule2.default(identifier, originalModule, source, sourceMap, additionalInformation, prevModules); | ||
} else { | ||
m = this.modulesByIdentifier[identifier]; | ||
m.addPrevModules(prevModules); | ||
if (originalModule.index2 < m.getOriginalModule().index2) { | ||
m.setOriginalModule(originalModule); | ||
} | ||
return m; | ||
} | ||
}, { | ||
key: 'addResultToChunk', | ||
value: function addResultToChunk(identifier, result, originalModule, extractedChunk) { | ||
var _this = this; | ||
if (!Array.isArray(result)) { | ||
result = [[identifier, result]]; | ||
} | ||
var counterMap = {}; | ||
var prevModules = []; | ||
result.forEach(function (item) { | ||
var c = counterMap[item[0]]; | ||
var module = _this.addModule.call(_this, item[0] + (c || ''), originalModule, item[1], item[2], item[3], prevModules.slice()); | ||
extractedChunk.addModule(module); | ||
module.addChunk(extractedChunk); | ||
counterMap[item[0]] = (c || 0) + 1; | ||
prevModules.push(module); | ||
}, this); | ||
return m; | ||
} | ||
addResultToChunk(identifier, result, originalModule, extractedChunk) { | ||
if (!Array.isArray(result)) { | ||
result = [[identifier, result]]; | ||
} | ||
}]); | ||
return ExtractTextPluginCompilation; | ||
}(); | ||
const counterMap = {}; | ||
const prevModules = []; | ||
result.forEach(item => { | ||
const c = counterMap[item[0]]; | ||
const module = this.addModule.call(this, item[0] + (c || ''), originalModule, item[1], item[2], item[3], prevModules.slice()); | ||
extractedChunk.addModule(module); | ||
// extractedChunk.removeModule(originalModule); | ||
module.addChunk(extractedChunk); | ||
counterMap[item[0]] = (c || 0) + 1; | ||
prevModules.push(module); | ||
}, this); | ||
} | ||
} /* eslint-disable | ||
no-multi-assign, | ||
no-param-reassign | ||
*/ | ||
exports.default = ExtractTextPluginCompilation; |
@@ -14,29 +14,76 @@ 'use strict'; | ||
exports.isType = isType; | ||
/* eslint-disable | ||
no-param-reassign | ||
*/ | ||
function isInitialOrHasNoParents(chunk) { | ||
return chunk.isInitial() || chunk.parents.length === 0; | ||
let parentCount = 0; | ||
for (const chunkGroup of chunk.groupsIterable) { | ||
parentCount += chunkGroup.getNumberOfParents(); | ||
} | ||
return chunk.isOnlyInitial() || parentCount === 0; | ||
} | ||
function isInvalidOrder(a, b) { | ||
var bBeforeA = a.getPrevModules().indexOf(b) >= 0; | ||
var aBeforeB = b.getPrevModules().indexOf(a) >= 0; | ||
return aBeforeB && bBeforeA; | ||
// Async chunks' modules don't get turned into ExtractedModule | ||
// instances for some reason. This is a temporary fix that | ||
// moves the isInvalidOrder check inside a condition. | ||
if (a.getPrevModules && b.getPrevModules) { | ||
const bBeforeA = a.getPrevModules().indexOf(b) >= 0; | ||
const aBeforeB = b.getPrevModules().indexOf(a) >= 0; | ||
return aBeforeB && bBeforeA; | ||
} | ||
return false; | ||
} | ||
function getOrder(a, b) { | ||
var aOrder = a.getOrder(); | ||
var bOrder = b.getOrder(); | ||
if (aOrder < bOrder) return -1; | ||
if (aOrder > bOrder) return 1; | ||
var aIndex = a.getOriginalModule().index2; | ||
var bIndex = b.getOriginalModule().index2; | ||
if (aIndex < bIndex) return -1; | ||
if (aIndex > bIndex) return 1; | ||
var bBeforeA = a.getPrevModules().indexOf(b) >= 0; | ||
var aBeforeB = b.getPrevModules().indexOf(a) >= 0; | ||
if (aBeforeB && !bBeforeA) return -1; | ||
if (!aBeforeB && bBeforeA) return 1; | ||
var ai = a.identifier(); | ||
var bi = b.identifier(); | ||
// Async chunks' modules don't get turned into ExtractedModule | ||
// instances for some reason. This is a temporary fix that | ||
// moves the custom sorting logic inside a condition. | ||
if (a.getOriginalModule && b.getOriginalModule) { | ||
const aOrder = a.getOrder(); | ||
const bOrder = b.getOrder(); | ||
if (aOrder < bOrder) return -1; | ||
if (aOrder > bOrder) return 1; | ||
// We are trying to use the underlying index2 property | ||
// of the original module, but this property seems | ||
// to be set to null most of the time. It makes | ||
// sorting with it pointless. We should look | ||
// into saving the index, index2 and depth | ||
// props (maybe inside ExtractedModule). | ||
const aIndex = a.getOriginalModule().index2; | ||
const bIndex = b.getOriginalModule().index2; | ||
if (aIndex < bIndex) return -1; | ||
if (aIndex > bIndex) return 1; | ||
const bBeforeA = a.getPrevModules().indexOf(b) >= 0; | ||
const aBeforeB = b.getPrevModules().indexOf(a) >= 0; | ||
if (aBeforeB && !bBeforeA) return -1; | ||
if (!aBeforeB && bBeforeA) return 1; | ||
// Sorting by id is the default behavior of webpack | ||
// and it keeps the modules in the correct order, | ||
// except for async imports. That's the reason | ||
// it is inside the conditional branch | ||
if (a.id < b.id) return -1; | ||
if (a.id > b.id) return 1; | ||
} | ||
// Sorting by identifier breaks the order of async imported | ||
// modules either because webpack sorts them by default, | ||
// or because they are processed in the correct order | ||
// in the first place, or maybe because the modules | ||
// aren't ExtractedModule instances in this case. | ||
// Returning 0 keeps the already correct order. | ||
/* | ||
const ai = a.identifier(); | ||
const bi = b.identifier(); | ||
if (ai < bi) return -1; | ||
if (ai > bi) return 1; | ||
*/ | ||
return 0; | ||
@@ -54,3 +101,3 @@ } | ||
if (!b) return a; | ||
Object.keys(b).forEach(function (key) { | ||
Object.keys(b).forEach(key => { | ||
a[key] = b[key]; | ||
@@ -57,0 +104,0 @@ }); |
@@ -42,17 +42,19 @@ 'use strict'; | ||
var NS = _path2.default.dirname(_fs2.default.realpathSync(__filename)); | ||
/* eslint-disable | ||
consistent-return, | ||
no-param-reassign | ||
*/ | ||
const NS = _path2.default.dirname(_fs2.default.realpathSync(__filename)); | ||
const plugin = { name: 'ExtractTextPlugin' }; | ||
exports.default = function (source) { | ||
return source; | ||
}; | ||
exports.default = source => source; | ||
function pitch(request) { | ||
var _this = this; | ||
const query = _loaderUtils2.default.getOptions(this) || {}; | ||
let loaders = this.loaders.slice(this.loaderIndex + 1); | ||
this.addDependency(this.resourcePath); | ||
var query = _loaderUtils2.default.getOptions(this) || {}; | ||
var loaders = this.loaders.slice(this.loaderIndex + 1); | ||
this.addDependency(this.resourcePath); | ||
// We already in child compiler, return empty bundle | ||
// eslint-disable-next-line no-undefined | ||
if (this[NS] === undefined) { | ||
// eslint-disable-line no-undefined | ||
throw new Error('"extract-text-webpack-plugin" loader is used without the corresponding plugin, ' + 'refer to https://github.com/webpack/extract-text-webpack-plugin for the usage example'); | ||
@@ -67,3 +69,4 @@ } else if (this[NS] === false) { | ||
} | ||
var resultSource = void 0; | ||
let resultSource; | ||
if (query.remove) { | ||
@@ -75,21 +78,24 @@ resultSource = '// removed by extract-text-webpack-plugin'; | ||
var childFilename = 'extract-text-webpack-plugin-output-filename'; // eslint-disable-line no-path-concat | ||
var publicPath = typeof query.publicPath === 'string' ? query.publicPath : this._compilation.outputOptions.publicPath; | ||
var outputOptions = { | ||
const childFilename = 'extract-text-webpack-plugin-output-filename'; // eslint-disable-line no-path-concat | ||
const publicPath = typeof query.publicPath === 'string' ? query.publicPath : this._compilation.outputOptions.publicPath; | ||
const outputOptions = { | ||
filename: childFilename, | ||
publicPath | ||
}; | ||
var childCompiler = this._compilation.createChildCompiler(`extract-text-webpack-plugin ${NS} ${request}`, outputOptions); | ||
childCompiler.apply(new _NodeTemplatePlugin2.default(outputOptions)); | ||
childCompiler.apply(new _LibraryTemplatePlugin2.default(null, 'commonjs2')); | ||
childCompiler.apply(new _NodeTargetPlugin2.default()); | ||
childCompiler.apply(new _SingleEntryPlugin2.default(this.context, `!!${request}`)); | ||
childCompiler.apply(new _LimitChunkCountPlugin2.default({ maxChunks: 1 })); | ||
const childCompiler = this._compilation.createChildCompiler(`extract-text-webpack-plugin ${NS} ${request}`, outputOptions); | ||
new _NodeTemplatePlugin2.default(outputOptions).apply(childCompiler); | ||
new _LibraryTemplatePlugin2.default(null, 'commonjs2').apply(childCompiler); | ||
new _NodeTargetPlugin2.default().apply(childCompiler); | ||
new _SingleEntryPlugin2.default(this.context, `!!${request}`).apply(childCompiler); | ||
new _LimitChunkCountPlugin2.default({ maxChunks: 1 }).apply(childCompiler); | ||
// We set loaderContext[NS] = false to indicate we already in | ||
// a child compiler so we don't spawn another child compilers from there. | ||
childCompiler.plugin('this-compilation', function (compilation) { | ||
compilation.plugin('normal-module-loader', function (loaderContext, module) { | ||
// a child compiler so we don't spawn other child compilers from there. | ||
childCompiler.hooks.thisCompilation.tap(plugin, compilation => { | ||
compilation.hooks.normalModuleLoader.tap(plugin, (loaderContext, module) => { | ||
loaderContext[NS] = false; | ||
if (module.request === request) { | ||
module.loaders = loaders.map(function (loader) { | ||
module.loaders = loaders.map(loader => { | ||
return { | ||
@@ -104,17 +110,16 @@ loader: loader.path, | ||
var source = void 0; | ||
childCompiler.plugin('after-compile', function (compilation, callback) { | ||
let source; | ||
childCompiler.hooks.afterCompile.tap(plugin, compilation => { | ||
source = compilation.assets[childFilename] && compilation.assets[childFilename].source(); | ||
// Remove all chunk assets | ||
compilation.chunks.forEach(function (chunk) { | ||
chunk.files.forEach(function (file) { | ||
compilation.chunks.forEach(chunk => { | ||
chunk.files.forEach(file => { | ||
delete compilation.assets[file]; | ||
}); | ||
}); | ||
}); | ||
callback(); | ||
}); | ||
var callback = this.async(); | ||
childCompiler.runAsChild(function (err, entries, compilation) { | ||
const callback = this.async(); | ||
childCompiler.runAsChild((err, entries, compilation) => { | ||
if (err) return callback(err); | ||
@@ -125,19 +130,25 @@ | ||
} | ||
compilation.fileDependencies.forEach(function (dep) { | ||
_this.addDependency(dep); | ||
}, _this); | ||
compilation.contextDependencies.forEach(function (dep) { | ||
_this.addContextDependency(dep); | ||
}, _this); | ||
compilation.fileDependencies.forEach(dep => { | ||
this.addDependency(dep); | ||
}, this); | ||
compilation.contextDependencies.forEach(dep => { | ||
this.addContextDependency(dep); | ||
}, this); | ||
if (!source) { | ||
return callback(new Error("Didn't get a result from child compiler")); | ||
} | ||
try { | ||
var text = _this.exec(source, request); | ||
let text = this.exec(source, request); | ||
if (typeof text === 'string') { | ||
text = [[compilation.entries[0].identifier(), text]]; | ||
} else { | ||
text.forEach(function (item) { | ||
var id = item[0]; | ||
compilation.modules.forEach(function (module) { | ||
text.forEach(item => { | ||
const [id] = item; | ||
compilation.modules.forEach(module => { | ||
if (module.id === id) { | ||
@@ -149,3 +160,5 @@ item[0] = module.identifier(); | ||
} | ||
_this[NS](text, query); | ||
this[NS](text, query); | ||
if (text.locals && typeof resultSource !== 'undefined') { | ||
@@ -157,2 +170,3 @@ resultSource += `\nmodule.exports = ${JSON.stringify(text.locals)};`; | ||
} | ||
if (resultSource) { | ||
@@ -159,0 +173,0 @@ callback(null, resultSource); |
{ | ||
"name": "extract-text-webpack-plugin", | ||
"version": "3.0.2", | ||
"version": "4.0.0-alpha.0", | ||
"author": "Tobias Koppers @sokra", | ||
@@ -9,12 +9,12 @@ "description": "Extract text from bundle into a file.", | ||
"files": [ | ||
"dist", | ||
"schema" | ||
"dist" | ||
], | ||
"scripts": { | ||
"start": "npm run build -- -w", | ||
"appveyor:test": "npm run test", | ||
"build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js'", | ||
"build:example": "(cd example && webpack)", | ||
"build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", | ||
"clean": "del-cli dist", | ||
"commitlint": "commitlint", | ||
"commitmsg": "commitlint -e $GIT_PARAMS", | ||
"lint": "eslint --cache src test", | ||
"ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}", | ||
"lint-staged": "lint-staged", | ||
@@ -24,2 +24,4 @@ "prebuild": "npm run clean", | ||
"release": "standard-version", | ||
"release:ci": "conventional-github-releaser -p angular", | ||
"release:validate": "commitlint --from=$(git describe --tags --abbrev=0) --to=$(git rev-parse HEAD)", | ||
"security": "nsp check", | ||
@@ -29,6 +31,6 @@ "test": "jest", | ||
"test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", | ||
"travis:lint": "npm run lint && npm run security", | ||
"travis:test": "npm run test -- --runInBand", | ||
"travis:coverage": "npm run test:coverage -- --runInBand", | ||
"webpack-defaults": "webpack-defaults" | ||
"ci:lint": "npm run lint && npm run security", | ||
"ci:test": "npm run test -- --runInBand", | ||
"ci:coverage": "npm run test:coverage -- --runInBand", | ||
"defaults": "webpack-defaults" | ||
}, | ||
@@ -38,39 +40,45 @@ "dependencies": { | ||
"loader-utils": "^1.1.0", | ||
"schema-utils": "^0.3.0", | ||
"webpack-sources": "^1.0.1" | ||
"schema-utils": "^0.4.5", | ||
"webpack-sources": "^1.1.0" | ||
}, | ||
"devDependencies": { | ||
"@commitlint/cli": "^5.2.8", | ||
"@commitlint/config-angular": "^5.1.1", | ||
"@webpack-contrib/eslint-config-webpack": "^2.0.2", | ||
"babel-cli": "^6.26.0", | ||
"babel-jest": "^21.2.0", | ||
"babel-jest": "^22.2.2", | ||
"babel-plugin-transform-object-rest-spread": "^6.26.0", | ||
"babel-polyfill": "^6.26.0", | ||
"babel-preset-env": "^1.6.1", | ||
"cross-env": "^5.1.0", | ||
"css-loader": "^0.28.7", | ||
"conventional-github-releaser": "^2.0.0", | ||
"cross-env": "^5.1.3", | ||
"css-loader": "^0.28.9", | ||
"del": "^3.0.0", | ||
"del-cli": "^1.1.0", | ||
"eslint": "^4.9.0", | ||
"eslint-config-webpack": "^1.2.5", | ||
"eslint": "^4.17.0", | ||
"eslint-plugin-import": "^2.8.0", | ||
"file-loader": "^1.1.5", | ||
"jest": "^21.2.1", | ||
"lint-staged": "^4.3.0", | ||
"nsp": "^2.8.1", | ||
"eslint-plugin-prettier": "^2.6.0", | ||
"file-loader": "^1.1.6", | ||
"husky": "^0.14.3", | ||
"jest": "^22.3.0", | ||
"lint-staged": "^6.1.0", | ||
"memory-fs": "^0.4.1", | ||
"nsp": "^3.1.0", | ||
"pre-commit": "^1.2.2", | ||
"prettier": "^1.10.2", | ||
"raw-loader": "^0.5.1", | ||
"standard-version": "^4.2.0", | ||
"style-loader": "^0.19.0", | ||
"webpack": "^3.8.1", | ||
"webpack-defaults": "^1.6.0" | ||
"standard-version": "^4.3.0", | ||
"style-loader": "^0.19.1", | ||
"webpack": "^4.0.0-beta.1", | ||
"webpack-defaults": "^2.0.0-rc.4" | ||
}, | ||
"engines": { | ||
"node": ">= 4.8 < 5.0.0 || >= 5.10" | ||
"node": ">= 6.9.0 || >= 8.9.0" | ||
}, | ||
"peerDependencies": { | ||
"webpack": "^3.1.0" | ||
"webpack": "^3.0.0 || ^4.0.0" | ||
}, | ||
"homepage": "http://github.com/webpack-contrib/extract-text-webpack-plugin", | ||
"repository": { | ||
"type": "git", | ||
"url": "http://github.com/webpack-contrib/extract-text-webpack-plugin.git" | ||
}, | ||
"homepage": "https://github.com/webpack-contrib/extract-text-webpack-plugin", | ||
"repository": "https://github.com/webpack-contrib/extract-text-webpack-plugin", | ||
"bugs": "https://github.com/webpack-contrib/extract-text-webpack-plugin/issues", | ||
"pre-commit": "lint-staged", | ||
@@ -77,0 +85,0 @@ "lint-staged": { |
@@ -75,3 +75,3 @@ [![npm][npm]][npm-url] | ||
|**`filename`**|`{String\|Function}`|Name of the result file. May contain `[name]`, `[id]` and `[contenthash]`| | ||
|**`allChunks`**|`{Boolean}`|Extract from all additional chunks too (by default it extracts only from the initial chunk(s))<br />When using `CommonsChunkPlugin` and there are extracted chunks (from `ExtractTextPlugin.extract`) in the commons chunk, `allChunks` **must** be set to `true`| | ||
|**`allChunks`**|`{Boolean}`|Extract from all additional chunks too (by default it extracts only from the initial chunk(s))<br />When using `optimization.splitChunks` and there are extracted chunks (from `ExtractTextPlugin.extract`) in the commons chunk, `allChunks` **must** be set to `true`| | ||
|**`disable`**|`{Boolean}`|Disables the plugin| | ||
@@ -150,3 +150,2 @@ |**`ignoreOrder`**|`{Boolean}`|Disables order check (useful for CSS Modules!), `false` by default| | ||
fallback: 'style-loader', | ||
//resolve-url-loader may be chained before sass-loader if necessary | ||
use: ['css-loader', 'sass-loader'] | ||
@@ -167,2 +166,41 @@ }) | ||
### `url()` Resolving | ||
If you are finding that urls are not resolving properly when you run webpack. You can expand your loader functionality with options. The `url: false` property allows your paths resolved without any changes. | ||
```js | ||
const ExtractTextPlugin = require('extract-text-webpack-plugin'); | ||
module.exports = { | ||
module: { | ||
rules: [ | ||
{ | ||
test: /\.scss$/, | ||
use: ExtractTextPlugin.extract({ | ||
fallback: 'style-loader', | ||
use: [ | ||
{ | ||
loader: 'css-loader', | ||
options: { | ||
// If you are having trouble with urls not resolving add this setting. | ||
// See https://github.com/webpack-contrib/css-loader#url | ||
url: false, | ||
minimize: true, | ||
sourceMap: true | ||
} | ||
}, | ||
{ | ||
loader: 'sass-loader', | ||
options: { | ||
sourceMap: true | ||
} | ||
} | ||
] | ||
}) | ||
} | ||
] | ||
} | ||
} | ||
``` | ||
### Modify filename | ||
@@ -169,0 +207,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
47553
0
273
29
666
1
2
+ Added@webassemblyjs/ast@1.9.0(transitive)
+ Added@webassemblyjs/floating-point-hex-parser@1.9.0(transitive)
+ Added@webassemblyjs/helper-api-error@1.9.0(transitive)
+ Added@webassemblyjs/helper-buffer@1.9.0(transitive)
+ Added@webassemblyjs/helper-code-frame@1.9.0(transitive)
+ Added@webassemblyjs/helper-fsm@1.9.0(transitive)
+ Added@webassemblyjs/helper-module-context@1.9.0(transitive)
+ Added@webassemblyjs/helper-wasm-bytecode@1.9.0(transitive)
+ Added@webassemblyjs/helper-wasm-section@1.9.0(transitive)
+ Added@webassemblyjs/ieee754@1.9.0(transitive)
+ Added@webassemblyjs/leb128@1.9.0(transitive)
+ Added@webassemblyjs/utf8@1.9.0(transitive)
+ Added@webassemblyjs/wasm-edit@1.9.0(transitive)
+ Added@webassemblyjs/wasm-gen@1.9.0(transitive)
+ Added@webassemblyjs/wasm-opt@1.9.0(transitive)
+ Added@webassemblyjs/wasm-parser@1.9.0(transitive)
+ Added@webassemblyjs/wast-parser@1.9.0(transitive)
+ Added@webassemblyjs/wast-printer@1.9.0(transitive)
+ Added@xtuc/ieee754@1.2.0(transitive)
+ Added@xtuc/long@4.2.2(transitive)
+ Addedacorn@6.4.2(transitive)
+ Addedajv-errors@1.0.1(transitive)
+ Addedaproba@1.2.0(transitive)
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbluebird@3.7.2(transitive)
+ Addedbrace-expansion@1.1.11(transitive)
+ Addedbuffer-from@1.1.2(transitive)
+ Addedcacache@12.0.4(transitive)
+ Addedchownr@1.1.4(transitive)
+ Addedchrome-trace-event@1.0.3(transitive)
+ Addedcommander@2.20.3(transitive)
+ Addedcommondir@1.0.1(transitive)
+ Addedconcat-map@0.0.1(transitive)
+ Addedconcat-stream@1.6.2(transitive)
+ Addedcopy-concurrently@1.0.5(transitive)
+ Addedcyclist@1.0.2(transitive)
+ Addedduplexify@3.7.1(transitive)
+ Addedend-of-stream@1.4.4(transitive)
+ Addedenhanced-resolve@4.5.0(transitive)
+ Addedeslint-scope@4.0.3(transitive)
+ Addedfiggy-pudding@3.5.2(transitive)
+ Addedfind-cache-dir@2.1.0(transitive)
+ Addedfind-up@3.0.0(transitive)
+ Addedflush-write-stream@1.1.1(transitive)
+ Addedfrom2@2.3.0(transitive)
+ Addedfs-write-stream-atomic@1.0.10(transitive)
+ Addedfs.realpath@1.0.0(transitive)
+ Addedglob@7.2.3(transitive)
+ Addediferr@0.1.5(transitive)
+ Addedimurmurhash@0.1.4(transitive)
+ Addedinfer-owner@1.0.4(transitive)
+ Addedinflight@1.0.6(transitive)
+ Addedis-wsl@1.1.0(transitive)
+ Addedjson-parse-better-errors@1.0.2(transitive)
+ Addedlocate-path@3.0.0(transitive)
+ Addedlru-cache@5.1.1(transitive)
+ Addedmake-dir@2.1.0(transitive)
+ Addedmemory-fs@0.5.0(transitive)
+ Addedminimatch@3.1.2(transitive)
+ Addedmississippi@3.0.0(transitive)
+ Addedmove-concurrently@1.0.1(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedp-limit@2.3.0(transitive)
+ Addedp-locate@3.0.0(transitive)
+ Addedp-try@2.2.0(transitive)
+ Addedparallel-transform@1.2.0(transitive)
+ Addedpify@4.0.1(transitive)
+ Addedpkg-dir@3.0.0(transitive)
+ Addedpromise-inflight@1.0.1(transitive)
+ Addedpump@2.0.13.0.0(transitive)
+ Addedpumpify@1.5.1(transitive)
+ Addedrimraf@2.7.1(transitive)
+ Addedrun-queue@1.0.3(transitive)
+ Addedschema-utils@0.4.71.0.0(transitive)
+ Addedserialize-javascript@4.0.0(transitive)
+ Addedsource-map-support@0.5.21(transitive)
+ Addedssri@6.0.2(transitive)
+ Addedstream-each@1.2.3(transitive)
+ Addedstream-shift@1.0.3(transitive)
+ Addedtapable@1.1.3(transitive)
+ Addedterser@4.8.1(transitive)
+ Addedterser-webpack-plugin@1.4.5(transitive)
+ Addedthrough2@2.0.5(transitive)
+ Addedtypedarray@0.0.6(transitive)
+ Addedunique-filename@1.1.1(transitive)
+ Addedunique-slug@2.0.2(transitive)
+ Addedwebpack@4.47.0(transitive)
+ Addedworker-farm@1.7.0(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedy18n@4.0.3(transitive)
+ Addedyallist@3.1.1(transitive)
- Removedacorn@4.0.135.7.4(transitive)
- Removedacorn-dynamic-import@2.0.2(transitive)
- Removedajv@5.5.2(transitive)
- Removedalign-text@0.1.4(transitive)
- Removedansi-regex@2.1.1(transitive)
- Removedcamelcase@1.2.14.1.0(transitive)
- Removedcenter-align@0.1.3(transitive)
- Removedcliui@2.1.03.2.0(transitive)
- Removedco@4.6.0(transitive)
- Removedcode-point-at@1.1.0(transitive)
- Removedcross-spawn@5.1.0(transitive)
- Removedd@1.0.2(transitive)
- Removeddecamelize@1.2.0(transitive)
- Removedenhanced-resolve@3.4.1(transitive)
- Removederror-ex@1.3.2(transitive)
- Removedes5-ext@0.10.64(transitive)
- Removedes6-iterator@2.0.3(transitive)
- Removedes6-map@0.1.5(transitive)
- Removedes6-set@0.1.6(transitive)
- Removedes6-symbol@3.1.4(transitive)
- Removedes6-weak-map@2.0.3(transitive)
- Removedescope@3.6.0(transitive)
- Removedesniff@2.0.1(transitive)
- Removedevent-emitter@0.3.5(transitive)
- Removedexeca@0.7.0(transitive)
- Removedext@1.7.0(transitive)
- Removedfast-deep-equal@1.1.0(transitive)
- Removedfind-up@2.1.0(transitive)
- Removedget-caller-file@1.0.3(transitive)
- Removedget-stream@3.0.0(transitive)
- Removedhas-flag@2.0.0(transitive)
- Removedhosted-git-info@2.8.9(transitive)
- Removedinterpret@1.4.0(transitive)
- Removedinvert-kv@1.0.0(transitive)
- Removedis-arrayish@0.2.1(transitive)
- Removedis-core-module@2.13.1(transitive)
- Removedis-fullwidth-code-point@1.0.0(transitive)
- Removedis-stream@1.1.0(transitive)
- Removedisexe@2.0.0(transitive)
- Removedjson-loader@0.5.7(transitive)
- Removedjson-schema-traverse@0.3.1(transitive)
- Removedjson5@0.5.1(transitive)
- Removedlazy-cache@1.0.4(transitive)
- Removedlcid@1.0.0(transitive)
- Removedload-json-file@2.0.0(transitive)
- Removedlocate-path@2.0.0(transitive)
- Removedlongest@1.0.1(transitive)
- Removedlru-cache@4.1.5(transitive)
- Removedmem@1.1.0(transitive)
- Removedmimic-fn@1.2.0(transitive)
- Removednext-tick@1.1.0(transitive)
- Removednormalize-package-data@2.5.0(transitive)
- Removednpm-run-path@2.0.2(transitive)
- Removednumber-is-nan@1.0.1(transitive)
- Removedobject-assign@4.1.1(transitive)
- Removedos-locale@2.1.0(transitive)
- Removedp-finally@1.0.0(transitive)
- Removedp-limit@1.3.0(transitive)
- Removedp-locate@2.0.0(transitive)
- Removedp-try@1.0.0(transitive)
- Removedparse-json@2.2.0(transitive)
- Removedpath-key@2.0.1(transitive)
- Removedpath-parse@1.0.7(transitive)
- Removedpath-type@2.0.0(transitive)
- Removedpify@2.3.0(transitive)
- Removedpseudomap@1.0.2(transitive)
- Removedread-pkg@2.0.0(transitive)
- Removedread-pkg-up@2.0.0(transitive)
- Removedrequire-directory@2.1.1(transitive)
- Removedrequire-main-filename@1.0.1(transitive)
- Removedresolve@1.22.8(transitive)
- Removedright-align@0.1.3(transitive)
- Removedschema-utils@0.3.0(transitive)
- Removedset-blocking@2.0.0(transitive)
- Removedshebang-command@1.2.0(transitive)
- Removedshebang-regex@1.0.0(transitive)
- Removedsignal-exit@3.0.7(transitive)
- Removedspdx-correct@3.2.0(transitive)
- Removedspdx-exceptions@2.5.0(transitive)
- Removedspdx-expression-parse@3.0.1(transitive)
- Removedspdx-license-ids@3.0.17(transitive)
- Removedstring-width@1.0.2(transitive)
- Removedstrip-ansi@3.0.1(transitive)
- Removedstrip-bom@3.0.0(transitive)
- Removedstrip-eof@1.0.0(transitive)
- Removedsupports-color@4.5.0(transitive)
- Removedsupports-preserve-symlinks-flag@1.0.0(transitive)
- Removedtapable@0.2.9(transitive)
- Removedtype@2.7.2(transitive)
- Removeduglify-js@2.8.29(transitive)
- Removeduglify-to-browserify@1.0.2(transitive)
- Removeduglifyjs-webpack-plugin@0.4.6(transitive)
- Removedvalidate-npm-package-license@3.0.4(transitive)
- Removedwebpack@3.12.0(transitive)
- Removedwhich@1.3.1(transitive)
- Removedwhich-module@2.0.1(transitive)
- Removedwindow-size@0.1.0(transitive)
- Removedwordwrap@0.0.2(transitive)
- Removedwrap-ansi@2.1.0(transitive)
- Removedy18n@3.2.2(transitive)
- Removedyallist@2.1.2(transitive)
- Removedyargs@3.10.08.0.2(transitive)
- Removedyargs-parser@7.0.0(transitive)
Updatedschema-utils@^0.4.5
Updatedwebpack-sources@^1.1.0