pax_global_header00006660000000000000000000000064135220416310014507gustar00rootroot0000000000000052 comment=d9117497dfbac940c02aa97a6fe48af633154edc webpack-sources-1.4.3/000077500000000000000000000000001352204163100146115ustar00rootroot00000000000000webpack-sources-1.4.3/.editorconfig000066400000000000000000000001021352204163100172570ustar00rootroot00000000000000root = true [*.js] indent_style=tab trim_trailing_whitespace=truewebpack-sources-1.4.3/.eslintrc000066400000000000000000000010131352204163100164300ustar00rootroot00000000000000{ "env": { "node": true, "es6": true }, "plugins": [ "nodeca" ], "rules": { "strict": 0, "camelcase": 0, "curly": 0, "indent": [0, "tab"], "nodeca/indent": [2, "tabs", 1 ], "eol-last": 1, "no-shadow": 0, "no-redeclare": 1, "no-extra-bind": 1, "no-empty": 0, "no-process-exit": 1, "no-underscore-dangle": 0, "no-use-before-define": 0, "no-unused-vars": 0, "consistent-return": 0, "no-inner-declarations": 1, "no-loop-func": 1, "space-before-function-paren": [2, "never"] } } webpack-sources-1.4.3/.gitattributes000066400000000000000000000000131352204163100174760ustar00rootroot00000000000000* text=autowebpack-sources-1.4.3/.gitignore000066400000000000000000000000301352204163100165720ustar00rootroot00000000000000/node_modules /coverage webpack-sources-1.4.3/.jsbeautifyrc000066400000000000000000000013021352204163100173000ustar00rootroot00000000000000{ "js": { "allowed_file_extensions": ["js", "json", "jshintrc", "jsbeautifyrc"], "brace_style": "collapse", "break_chained_methods": false, "e4x": true, "eval_code": false, "end_with_newline": true, "indent_char": "\t", "indent_level": 0, "indent_size": 1, "indent_with_tabs": true, "jslint_happy": false, "jslint_happy_align_switch_case": true, "space_after_anon_function": false, "keep_array_indentation": false, "keep_function_indentation": false, "max_preserve_newlines": 2, "preserve_newlines": true, "space_before_conditional": false, "space_in_paren": false, "unescape_strings": false, "wrap_line_length": 0 } }webpack-sources-1.4.3/.travis.yml000066400000000000000000000007411352204163100167240ustar00rootroot00000000000000sudo: false language: node_js branches: only: - master matrix: include: - os: linux node_js: "10" - os: linux node_js: "8" - os: linux node_js: "6" - os: osx node_js: "8" allow_failures: - os: osx fast_finish: true script: npm run travis after_success: - cat ./coverage/lcov.info | node_modules/.bin/coveralls --verbose - cat ./coverage/coverage.json | node_modules/codecov.io/bin/codecov.io.js - rm -rf ./coverage webpack-sources-1.4.3/LICENSE000066400000000000000000000021051352204163100156140ustar00rootroot00000000000000MIT License Copyright (c) 2017 JS Foundation and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. webpack-sources-1.4.3/README.md000066400000000000000000000127151352204163100160760ustar00rootroot00000000000000# webpack-sources Contains multiple classes which represent a `Source`. A `Source` can be asked for source code, size, source map and hash. ## `Source` Base class for all sources. ### Public methods All methods should be considered as expensive as they may need to do computations. #### `source` ``` js Source.prototype.source() -> String | ArrayBuffer ``` Returns the represented source code as string. #### `size` ``` js Source.prototype.size() -> Number ``` Returns the size in chars of the represented source code. #### `map` ``` js Source.prototype.map(options: Object) -> Object | null ``` Returns the SourceMap of the represented source code as JSON. May return `null` if no SourceMap is available. The `options` object can contain the following keys: * `columns: Boolean` (default `true`): If set to false the implementation may omit mappings for columns. * `module: Boolean` (default `true`): If set to false the implementation may omit inner mappings for modules. #### `sourceAndMap` ``` js Source.prototype.sourceAndMap(options: Object) -> { source: String, map: Object } ``` Returns both, source code (like `Source.prototype.source()` and SourceMap (like `Source.prototype.map()`). This method could have better performance than calling `source()` and `map()` separately. See `map()` for `options`. #### `updateHash` ``` js Source.prototype.updateHash(hash: Hash) -> void ``` Updates the provided `Hash` object with the content of the represented source code. (`Hash` is an object with an `update` method, which is called with string values) #### `node` (optional) ``` js Source.prototype.node(options: Object) -> SourceNode ``` This is an optional method. It may be `null` if not implemented. Returns a `SourceNode` (see source-map library) for the represented source code. See `map()` for `options`. #### `listNode` (optional) ``` js Source.prototype.listNode(options: Object) -> SourceNode ``` This is an optional method. It may be `null` if not implemented. Returns a `SourceListMap` (see source-list-map library) for the represented source code. See `map()` for `options`. ## `RawSource` Represents source code without SourceMap. ``` js new RawSource(sourceCode: String) ``` ## `OriginalSource` Represents source code, which is a copy of the original file. ``` js new OriginalSource( sourceCode: String, name: String ) ``` * `sourceCode`: The source code. * `name`: The filename of the original source code. OriginalSource tries to create column mappings if requested, by splitting the source code at typical statement borders (`;`, `{`, `}`). ## `SourceMapSource` Represents source code with SourceMap, optionally having an additional SourceMap for the original source. ``` js new SourceMapSource( sourceCode: String, name: String, sourceMap: Object | String, originalSource?: String, innerSourceMap?: Object | String, removeOriginalSource?: boolean ) ``` * `sourceCode`: The source code. * `name`: The filename of the original source code. * `sourceMap`: The SourceMap for the source code. * `originalSource`: The source code of the original file. Can be omitted if the `sourceMap` already contains the original source code. * `innerSourceMap`: The SourceMap for the `originalSource`/`name`. * `removeOriginalSource`: Removes the source code for `name` from the final map, keeping only the deeper mappings for that file. The `SourceMapSource` supports "identity" mappings for the `innerSourceMap`. When original source matches generated source for a mapping it's assumed to be mapped char by char allowing to keep finer mappings from `sourceMap`. ## `LineToLineMappedSource` Represents source code, which is mapped line by line to the original file. ``` js new LineToLineMappedSource( sourceCode: String, name: String, originalSource: String ) ``` * `sourceCode`: The source code. * `name`: The filename of the original source code. * `originalSource`: The original source code. ## `CachedSource` Decorates a `Source` and caches returned results of `map`, `source`, `size` and `sourceAndMap` in memory. Every other operation is delegated to the wrapped `Source`. ``` js new CachedSource(source: Source) ``` ## `PrefixSource` Prefix every line of the decorated `Source` with a provided string. ``` js new PrefixSource( prefix: String, source: Source ) ``` ## `ConcatSource` Concatenate multiple `Source`s or strings to a single source. ``` js new ConcatSource( ...items?: Source | String ) ``` ### Public methods #### `add` ``` js ConcatSource.prototype.add(item: Source | String) ``` Adds an item to the source. ## `ReplaceSource` Decorates a `Source` with replacements and insertions of source code. The `ReplaceSource` supports "identity" mappings for child source. When original source matches generated source for a mapping it's assumed to be mapped char by char allowing to split mappings at replacements/insertions. ### Public methods #### `replace` ``` js ReplaceSource.prototype.replace( start: Number, end: Number, replacement: String ) ``` Replaces chars from `start` (0-indexed, inclusive) to `end` (0-indexed, inclusive) with `replacement`. Locations represents locations in the original source and are not influenced by other replacements or insertions. #### `insert` ``` js ReplaceSource.prototype.insert( pos: Number, insertion: String ) ``` Inserts the `insertion` before char `pos` (0-indexed). Location represents location in the original source and is not influenced by other replacements or insertions. #### `original` Get decorated `Source`. webpack-sources-1.4.3/lib/000077500000000000000000000000001352204163100153575ustar00rootroot00000000000000webpack-sources-1.4.3/lib/CachedSource.js000066400000000000000000000040051352204163100202440ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const Source = require("./Source"); class CachedSource extends Source { constructor(source) { super(); this._source = source; this._cachedSource = undefined; this._cachedSize = undefined; this._cachedMaps = {}; if(source.node) this.node = function(options) { return this._source.node(options); }; if(source.listMap) this.listMap = function(options) { return this._source.listMap(options); }; } source() { if(typeof this._cachedSource !== "undefined") return this._cachedSource; return this._cachedSource = this._source.source(); } size() { if(typeof this._cachedSize !== "undefined") return this._cachedSize; if(typeof this._cachedSource !== "undefined") { if(Buffer.from.length === 1) return new Buffer(this._cachedSource).length; return this._cachedSize = Buffer.byteLength(this._cachedSource); } return this._cachedSize = this._source.size(); } sourceAndMap(options) { const key = JSON.stringify(options); if(typeof this._cachedSource !== "undefined" && key in this._cachedMaps) return { source: this._cachedSource, map: this._cachedMaps[key] }; else if(typeof this._cachedSource !== "undefined") { return { source: this._cachedSource, map: this._cachedMaps[key] = this._source.map(options) }; } else if(key in this._cachedMaps) { return { source: this._cachedSource = this._source.source(), map: this._cachedMaps[key] }; } const result = this._source.sourceAndMap(options); this._cachedSource = result.source; this._cachedMaps[key] = result.map; return { source: this._cachedSource, map: this._cachedMaps[key] }; } map(options) { if(!options) options = {}; const key = JSON.stringify(options); if(key in this._cachedMaps) return this._cachedMaps[key]; return this._cachedMaps[key] = this._source.map(); } updateHash(hash) { this._source.updateHash(hash); } } module.exports = CachedSource; webpack-sources-1.4.3/lib/ConcatSource.js000066400000000000000000000040451352204163100203100ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const SourceNode = require("source-map").SourceNode; const SourceListMap = require("source-list-map").SourceListMap; const Source = require("./Source"); class ConcatSource extends Source { constructor() { super(); this.children = []; for(var i = 0; i < arguments.length; i++) { var item = arguments[i]; if(item instanceof ConcatSource) { var children = item.children; for(var j = 0; j < children.length; j++) this.children.push(children[j]); } else { this.children.push(item); } } } add(item) { if(item instanceof ConcatSource) { var children = item.children; for(var j = 0; j < children.length; j++) this.children.push(children[j]); } else { this.children.push(item); } } source() { let source = ""; const children = this.children; for(let i = 0; i < children.length; i++) { const child = children[i]; source += typeof child === "string" ? child : child.source(); } return source; } size() { let size = 0; const children = this.children; for(let i = 0; i < children.length; i++) { const child = children[i]; size += typeof child === "string" ? child.length : child.size(); } return size; } node(options) { const node = new SourceNode(null, null, null, this.children.map(function(item) { return typeof item === "string" ? item : item.node(options); })); return node; } listMap(options) { const map = new SourceListMap(); var children = this.children; for(var i = 0; i < children.length; i++) { var item = children[i]; if(typeof item === "string") map.add(item); else map.add(item.listMap(options)); } return map; } updateHash(hash) { var children = this.children; for(var i = 0; i < children.length; i++) { var item = children[i]; if(typeof item === "string") hash.update(item); else item.updateHash(hash); } } } require("./SourceAndMapMixin")(ConcatSource.prototype); module.exports = ConcatSource; webpack-sources-1.4.3/lib/LineToLineMappedSource.js000066400000000000000000000022741352204163100222340ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; var SourceNode = require("source-map").SourceNode; var SourceMapConsumer = require("source-map").SourceMapConsumer; var SourceListMap = require("source-list-map").SourceListMap; var Source = require("./Source"); class LineToLineMappedSource extends Source { constructor(value, name, originalSource) { super(); this._value = value; this._name = name; this._originalSource = originalSource; } source() { return this._value; } node(options) { var value = this._value; var name = this._name; var lines = value.split("\n"); var node = new SourceNode(null, null, null, lines.map(function(line, idx) { return new SourceNode(idx + 1, 0, name, (line + (idx != lines.length - 1 ? "\n" : ""))); }) ); node.setSourceContent(name, this._originalSource); return node; } listMap(options) { return new SourceListMap(this._value, this._name, this._originalSource) } updateHash(hash) { hash.update(this._value); hash.update(this._originalSource); } } require("./SourceAndMapMixin")(LineToLineMappedSource.prototype); module.exports = LineToLineMappedSource; webpack-sources-1.4.3/lib/OriginalSource.js000066400000000000000000000032041352204163100206410ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; var SourceNode = require("source-map").SourceNode; var SourceMapConsumer = require("source-map").SourceMapConsumer; var SourceListMap = require("source-list-map").SourceListMap; var Source = require("./Source"); var SPLIT_REGEX = /(?!$)[^\n\r;{}]*[\n\r;{}]*/g; function _splitCode(code) { return code.match(SPLIT_REGEX) || []; } class OriginalSource extends Source { constructor(value, name) { super(); this._value = value; this._name = name; } source() { return this._value; } node(options) { options = options || {}; var sourceMap = this._sourceMap; var value = this._value; var name = this._name; var lines = value.split("\n"); var node = new SourceNode(null, null, null, lines.map(function(line, idx) { var pos = 0; if(options.columns === false) { var content = line + (idx != lines.length - 1 ? "\n" : ""); return new SourceNode(idx + 1, 0, name, content); } return new SourceNode(null, null, null, _splitCode(line + (idx != lines.length - 1 ? "\n" : "")).map(function(item) { if(/^\s*$/.test(item)) { pos += item.length; return item; } var res = new SourceNode(idx + 1, pos, name, item); pos += item.length; return res; }) ); }) ); node.setSourceContent(name, value); return node; } listMap(options) { return new SourceListMap(this._value, this._name, this._value) } updateHash(hash) { hash.update(this._value); } } require("./SourceAndMapMixin")(OriginalSource.prototype); module.exports = OriginalSource; webpack-sources-1.4.3/lib/PrefixSource.js000066400000000000000000000044671352204163100203460ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; var Source = require("./Source"); var SourceNode = require("source-map").SourceNode; var REPLACE_REGEX = /\n(?=.|\s)/g; function cloneAndPrefix(node, prefix, append) { if(typeof node === "string") { var result = node.replace(REPLACE_REGEX, "\n" + prefix); if(append.length > 0) result = append.pop() + result; if(/\n$/.test(node)) append.push(prefix); return result; } else { var newNode = new SourceNode( node.line, node.column, node.source, node.children.map(function(node) { return cloneAndPrefix(node, prefix, append); }), node.name ); newNode.sourceContents = node.sourceContents; return newNode; } }; class PrefixSource extends Source { constructor(prefix, source) { super(); this._source = source; this._prefix = prefix; } source() { var node = typeof this._source === "string" ? this._source : this._source.source(); var prefix = this._prefix; return prefix + node.replace(REPLACE_REGEX, "\n" + prefix); } node(options) { var node = this._source.node(options); var prefix = this._prefix; var output = []; var result = new SourceNode(); node.walkSourceContents(function(source, content) { result.setSourceContent(source, content); }); var needPrefix = true; node.walk(function(chunk, mapping) { var parts = chunk.split(/(\n)/); for(var i = 0; i < parts.length; i += 2) { var nl = i + 1 < parts.length; var part = parts[i] + (nl ? "\n" : ""); if(part) { if(needPrefix) { output.push(prefix); } output.push(new SourceNode(mapping.line, mapping.column, mapping.source, part, mapping.name)); needPrefix = nl; } } }); result.add(output); return result; } listMap(options) { var prefix = this._prefix; var map = this._source.listMap(options); return map.mapGeneratedCode(function(code) { return prefix + code.replace(REPLACE_REGEX, "\n" + prefix); }); } updateHash(hash) { if(typeof this._source === "string") hash.update(this._source); else this._source.updateHash(hash); if(typeof this._prefix === "string") hash.update(this._prefix); else this._prefix.updateHash(hash); } } require("./SourceAndMapMixin")(PrefixSource.prototype); module.exports = PrefixSource; webpack-sources-1.4.3/lib/RawSource.js000066400000000000000000000012151352204163100176260ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; var Source = require("./Source"); var SourceNode = require("source-map").SourceNode; var SourceListMap = require("source-list-map").SourceListMap; class RawSource extends Source { constructor(value) { super(); this._value = value; } source() { return this._value; } map(options) { return null; } node(options) { return new SourceNode(null, null, null, this._value); } listMap(options) { return new SourceListMap(this._value); } updateHash(hash) { hash.update(this._value); } } module.exports = RawSource; webpack-sources-1.4.3/lib/ReplaceSource.js000066400000000000000000000214731352204163100204600ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; var Source = require("./Source"); var SourceNode = require("source-map").SourceNode; class Replacement { constructor(start, end, content, insertIndex, name) { this.start = start; this.end = end; this.content = content; this.insertIndex = insertIndex; this.name = name; } } class ReplaceSource extends Source { constructor(source, name) { super(); this._source = source; this._name = name; /** @type {Replacement[]} */ this.replacements = []; } replace(start, end, newValue, name) { if(typeof newValue !== "string") throw new Error("insertion must be a string, but is a " + typeof newValue); this.replacements.push(new Replacement(start, end, newValue, this.replacements.length, name)); } insert(pos, newValue, name) { if(typeof newValue !== "string") throw new Error("insertion must be a string, but is a " + typeof newValue + ": " + newValue); this.replacements.push(new Replacement(pos, pos - 1, newValue, this.replacements.length, name)); } source(options) { return this._replaceString(this._source.source()); } original() { return this._source; } _sortReplacements() { this.replacements.sort(function(a, b) { var diff = b.end - a.end; if(diff !== 0) return diff; diff = b.start - a.start; if(diff !== 0) return diff; return b.insertIndex - a.insertIndex; }); } _replaceString(str) { if(typeof str !== "string") throw new Error("str must be a string, but is a " + typeof str + ": " + str); this._sortReplacements(); var result = [str]; this.replacements.forEach(function(repl) { var remSource = result.pop(); var splitted1 = this._splitString(remSource, Math.floor(repl.end + 1)); var splitted2 = this._splitString(splitted1[0], Math.floor(repl.start)); result.push(splitted1[1], repl.content, splitted2[0]); }, this); // write out result array in reverse order let resultStr = ""; for(let i = result.length - 1; i >= 0; --i) { resultStr += result[i]; } return resultStr; } node(options) { var node = this._source.node(options); if(this.replacements.length === 0) { return node; } this._sortReplacements(); var replace = new ReplacementEnumerator(this.replacements); var output = []; var position = 0; var sources = Object.create(null); var sourcesInLines = Object.create(null); // We build a new list of SourceNodes in "output" // from the original mapping data var result = new SourceNode(); // We need to add source contents manually // because "walk" will not handle it node.walkSourceContents(function(sourceFile, sourceContent) { result.setSourceContent(sourceFile, sourceContent); sources["$" + sourceFile] = sourceContent; }); var replaceInStringNode = this._replaceInStringNode.bind(this, output, replace, function getOriginalSource(mapping) { var key = "$" + mapping.source; var lines = sourcesInLines[key]; if(!lines) { var source = sources[key]; if(!source) return null; lines = source.split("\n").map(function(line) { return line + "\n"; }); sourcesInLines[key] = lines; } // line is 1-based if(mapping.line > lines.length) return null; var line = lines[mapping.line - 1]; return line.substr(mapping.column); }); node.walk(function(chunk, mapping) { position = replaceInStringNode(chunk, position, mapping); }); // If any replacements occur after the end of the original file, then we append them // directly to the end of the output var remaining = replace.footer(); if(remaining) { output.push(remaining); } result.add(output); return result; } listMap(options) { this._sortReplacements(); var map = this._source.listMap(options); var currentIndex = 0; var replacements = this.replacements; var idxReplacement = replacements.length - 1; var removeChars = 0; map = map.mapGeneratedCode(function(str) { var newCurrentIndex = currentIndex + str.length; if(removeChars > str.length) { removeChars -= str.length; str = ""; } else { if(removeChars > 0) { str = str.substr(removeChars); currentIndex += removeChars; removeChars = 0; } var finalStr = ""; while(idxReplacement >= 0 && replacements[idxReplacement].start < newCurrentIndex) { var repl = replacements[idxReplacement]; var start = Math.floor(repl.start); var end = Math.floor(repl.end + 1); var before = str.substr(0, Math.max(0, start - currentIndex)); if(end <= newCurrentIndex) { var after = str.substr(Math.max(0, end - currentIndex)); finalStr += before + repl.content; str = after; currentIndex = Math.max(currentIndex, end); } else { finalStr += before + repl.content; str = ""; removeChars = end - newCurrentIndex; } idxReplacement--; } str = finalStr + str; } currentIndex = newCurrentIndex; return str; }); var extraCode = ""; while(idxReplacement >= 0) { extraCode += replacements[idxReplacement].content; idxReplacement--; } if(extraCode) { map.add(extraCode); } return map; } _splitString(str, position) { return position <= 0 ? ["", str] : [str.substr(0, position), str.substr(position)]; } _replaceInStringNode(output, replace, getOriginalSource, node, position, mapping) { var original = undefined; do { var splitPosition = replace.position - position; // If multiple replaces occur in the same location then the splitPosition may be // before the current position for the subsequent splits. Ensure it is >= 0 if(splitPosition < 0) { splitPosition = 0; } if(splitPosition >= node.length || replace.done) { if(replace.emit) { var nodeEnd = new SourceNode( mapping.line, mapping.column, mapping.source, node, mapping.name ); output.push(nodeEnd); } return position + node.length; } var originalColumn = mapping.column; // Try to figure out if generated code matches original code of this segement // If this is the case we assume that it's allowed to move mapping.column // Because getOriginalSource can be expensive we only do it when neccessary var nodePart; if(splitPosition > 0) { nodePart = node.slice(0, splitPosition); if(original === undefined) { original = getOriginalSource(mapping); } if(original && original.length >= splitPosition && original.startsWith(nodePart)) { mapping.column += splitPosition; original = original.substr(splitPosition); } } var emit = replace.next(); if(!emit) { // Stop emitting when we have found the beginning of the string to replace. // Emit the part of the string before splitPosition if(splitPosition > 0) { var nodeStart = new SourceNode( mapping.line, originalColumn, mapping.source, nodePart, mapping.name ); output.push(nodeStart); } // Emit the replacement value if(replace.value) { output.push(new SourceNode( mapping.line, mapping.column, mapping.source, replace.value, mapping.name || replace.name )); } } // Recurse with remainder of the string as there may be multiple replaces within a single node node = node.substr(splitPosition); position += splitPosition; } while (true); } } class ReplacementEnumerator { /** * @param {Replacement[]} replacements list of replacements */ constructor(replacements) { this.replacements = replacements || []; this.index = this.replacements.length; this.done = false; this.emit = false; // Set initial start position this.next(); } next() { if(this.done) return true; if(this.emit) { // Start point found. stop emitting. set position to find end var repl = this.replacements[this.index]; var end = Math.floor(repl.end + 1); this.position = end; this.value = repl.content; this.name = repl.name; } else { // End point found. start emitting. set position to find next start this.index--; if(this.index < 0) { this.done = true; } else { var nextRepl = this.replacements[this.index]; var start = Math.floor(nextRepl.start); this.position = start; } } if(this.position < 0) this.position = 0; this.emit = !this.emit; return this.emit; } footer() { if(!this.done && !this.emit) this.next(); // If we finished _replaceInNode mid emit we advance to next entry if(this.done) { return []; } else { var resultStr = ""; for(var i = this.index; i >= 0; i--) { var repl = this.replacements[i]; // this doesn't need to handle repl.name, because in SourceMaps generated code // without pointer to original source can't have a name resultStr += repl.content; } return resultStr; } } } require("./SourceAndMapMixin")(ReplaceSource.prototype); module.exports = ReplaceSource; webpack-sources-1.4.3/lib/Source.js000066400000000000000000000013601352204163100171550ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; var SourceNode = require("source-map").SourceNode; var SourceMapConsumer = require("source-map").SourceMapConsumer; class Source { source() { throw new Error("Abstract"); } size() { if(Buffer.from.length === 1) return new Buffer(this.source()).length; return Buffer.byteLength(this.source()) } map(options) { return null; } sourceAndMap(options) { return { source: this.source(), map: this.map() }; } node() { throw new Error("Abstract"); } listNode() { throw new Error("Abstract"); } updateHash(hash) { var source = this.source(); hash.update(source || ""); } } module.exports = Source; webpack-sources-1.4.3/lib/SourceAndMapMixin.js000066400000000000000000000013741352204163100212500ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; module.exports = function mixinSourceAndMap(proto) { proto.map = function(options) { options = options || {}; if(options.columns === false) { return this.listMap(options).toStringWithSourceMap({ file: "x" }).map; } return this.node(options).toStringWithSourceMap({ file: "x" }).map.toJSON(); }; proto.sourceAndMap = function(options) { options = options || {}; if(options.columns === false) { return this.listMap(options).toStringWithSourceMap({ file: "x" }); } var res = this.node(options).toStringWithSourceMap({ file: "x" }); return { source: res.code, map: res.map.toJSON() }; }; } webpack-sources-1.4.3/lib/SourceMapSource.js000066400000000000000000000034411352204163100207760ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; var SourceNode = require("source-map").SourceNode; var SourceMapConsumer = require("source-map").SourceMapConsumer; var SourceMapGenerator = require("source-map").SourceMapGenerator; var SourceListMap = require("source-list-map").SourceListMap; var fromStringWithSourceMap = require("source-list-map").fromStringWithSourceMap; var Source = require("./Source"); var applySourceMap = require("./applySourceMap"); class SourceMapSource extends Source { constructor(value, name, sourceMap, originalSource, innerSourceMap, removeOriginalSource) { super(); this._value = value; this._name = name; this._sourceMap = sourceMap; this._originalSource = originalSource; this._innerSourceMap = innerSourceMap; this._removeOriginalSource = removeOriginalSource; } source() { return this._value; } node(options) { var sourceMap = this._sourceMap; var node = SourceNode.fromStringWithSourceMap(this._value, new SourceMapConsumer(sourceMap)); node.setSourceContent(this._name, this._originalSource); var innerSourceMap = this._innerSourceMap; if(innerSourceMap) { node = applySourceMap(node, new SourceMapConsumer(innerSourceMap), this._name, this._removeOriginalSource); } return node; } listMap(options) { options = options || {}; if(options.module === false) return new SourceListMap(this._value, this._name, this._value); return fromStringWithSourceMap(this._value, typeof this._sourceMap === "string" ? JSON.parse(this._sourceMap) : this._sourceMap); } updateHash(hash) { hash.update(this._value); if(this._originalSource) hash.update(this._originalSource); } } require("./SourceAndMapMixin")(SourceMapSource.prototype); module.exports = SourceMapSource; webpack-sources-1.4.3/lib/applySourceMap.js000066400000000000000000000127221352204163100206650ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; var SourceNode = require("source-map").SourceNode; var SourceMapConsumer = require("source-map").SourceMapConsumer; var applySourceMap = function( sourceNode, sourceMapConsumer, sourceFile, removeGeneratedCodeForSourceFile ) { // The following notations are used to name stuff: // Left <------------> Middle <-------------------> Right // Input arguments: // sourceNode - Code mapping from Left to Middle // sourceFile - Name of a Middle file // sourceMapConsumer - Code mapping from Middle to Right // Variables: // l2m m2r // Left <-----------------------------------------> Right // Variables: // l2r var l2rResult = new SourceNode(); var l2rOutput = []; var middleSourceContents = {}; var m2rMappingsByLine = {}; var rightSourceContentsSet = {}; var rightSourceContentsLines = {}; // Store all mappings by generated line sourceMapConsumer.eachMapping( function(mapping) { (m2rMappingsByLine[mapping.generatedLine] = m2rMappingsByLine[mapping.generatedLine] || []).push(mapping); }, null, SourceMapConsumer.GENERATED_ORDER ); // Store all source contents sourceNode.walkSourceContents(function(source, content) { middleSourceContents["$" + source] = content; }); var middleSource = middleSourceContents["$" + sourceFile]; var middleSourceLines = middleSource ? middleSource.split("\n") : undefined; // Walk all left to middle mappings sourceNode.walk(function(chunk, middleMapping) { var source; // Find a mapping from middle to right if( middleMapping.source === sourceFile && middleMapping.line && m2rMappingsByLine[middleMapping.line] ) { var m2rBestFit; var m2rMappings = m2rMappingsByLine[middleMapping.line]; // Note: if this becomes a performance problem, use binary search for(var i = 0; i < m2rMappings.length; i++) { if(m2rMappings[i].generatedColumn <= middleMapping.column) { m2rBestFit = m2rMappings[i]; } } if(m2rBestFit) { var allowMiddleName = false; var middleLine; var rightSourceContent; var rightSourceContentLines; var rightSource = m2rBestFit.source; // Check if we have middle and right source for this mapping // Then we could have an "identify" mapping if( middleSourceLines && rightSource && (middleLine = middleSourceLines[m2rBestFit.generatedLine - 1]) && ((rightSourceContentLines = rightSourceContentsLines[rightSource]) || (rightSourceContent = sourceMapConsumer.sourceContentFor( rightSource, true ))) ) { if(!rightSourceContentLines) { rightSourceContentLines = rightSourceContentsLines[ rightSource ] = rightSourceContent.split("\n"); } var rightLine = rightSourceContentLines[m2rBestFit.originalLine - 1]; if(rightLine) { var offset = middleMapping.column - m2rBestFit.generatedColumn; if(offset > 0) { var middlePart = middleLine.slice( m2rBestFit.generatedColumn, middleMapping.column ); var rightPart = rightLine.slice( m2rBestFit.originalColumn, m2rBestFit.originalColumn + offset ); if(middlePart === rightPart) { // When original and generated code is equal we assume we have an "identity" mapping // In this case we can offset the original position m2rBestFit = Object.assign({}, m2rBestFit, { originalColumn: m2rBestFit.originalColumn + offset, generatedColumn: middleMapping.column }); } } if(!m2rBestFit.name && middleMapping.name) { allowMiddleName = rightLine.slice( m2rBestFit.originalColumn, m2rBestFit.originalColumn + middleMapping.name.length ) === middleMapping.name; } } } // Construct a left to right node from the found middle to right mapping source = m2rBestFit.source; l2rOutput.push( new SourceNode( m2rBestFit.originalLine, m2rBestFit.originalColumn, source, chunk, allowMiddleName ? middleMapping.name : m2rBestFit.name ) ); // Set the source contents once if(!("$" + source in rightSourceContentsSet)) { rightSourceContentsSet["$" + source] = true; var sourceContent = sourceMapConsumer.sourceContentFor(source, true); if(sourceContent) { l2rResult.setSourceContent(source, sourceContent); } } return; } } if((removeGeneratedCodeForSourceFile && middleMapping.source === sourceFile) || !middleMapping.source) { // Construct a left to middle node with only generated code // Because user do not want mappings to middle sources // Or this chunk has no mapping l2rOutput.push(chunk); return; } // Construct a left to middle node source = middleMapping.source; l2rOutput.push( new SourceNode( middleMapping.line, middleMapping.column, source, chunk, middleMapping.name ) ); if("$" + source in middleSourceContents) { if(!("$" + source in rightSourceContentsSet)) { l2rResult.setSourceContent(source, middleSourceContents["$" + source]); delete middleSourceContents["$" + source]; } } }); // Put output into the resulting SourceNode l2rResult.add(l2rOutput); return l2rResult; }; module.exports = applySourceMap; webpack-sources-1.4.3/lib/index.js000066400000000000000000000010661352204163100170270ustar00rootroot00000000000000/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ exports.Source = require("./Source"); exports.RawSource = require("./RawSource"); exports.OriginalSource = require("./OriginalSource"); exports.SourceMapSource = require("./SourceMapSource"); exports.LineToLineMappedSource = require("./LineToLineMappedSource"); exports.CachedSource = require("./CachedSource"); exports.ConcatSource = require("./ConcatSource"); exports.ReplaceSource = require("./ReplaceSource"); exports.PrefixSource = require("./PrefixSource"); webpack-sources-1.4.3/package.json000066400000000000000000000027061352204163100171040ustar00rootroot00000000000000{ "name": "webpack-sources", "version": "1.4.3", "description": "Source code handling classes for webpack", "main": "./lib/index.js", "scripts": { "pretest": "npm run lint && npm run beautify-lint", "test": "mocha --full-trace --check-leaks", "travis": "npm run cover -- --report lcovonly", "lint": "eslint lib test", "beautify-lint": "beautify-lint lib/**.js test/**.js", "beautify": "beautify-rewrite lib/**.js test/**.js", "precover": "npm run lint && npm run beautify-lint", "cover": "istanbul cover node_modules/mocha/bin/_mocha", "publish-patch": "npm test && npm version patch && git push && git push --tags && npm publish" }, "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" }, "devDependencies": { "beautify-lint": "^1.0.3", "codecov.io": "^0.1.6", "coveralls": "^2.11.6", "eslint": "^4.18.2", "eslint-plugin-nodeca": "^1.0.3", "istanbul": "^0.4.1", "js-beautify": "^1.5.10", "mocha": "^3.4.2", "should": "^11.2.1", "sourcemap-validator": "^1.1.0" }, "files": [ "lib/" ], "repository": { "type": "git", "url": "git+https://github.com/webpack/webpack-sources.git" }, "keywords": [ "webpack", "source-map" ], "author": "Tobias Koppers @sokra", "license": "MIT", "bugs": { "url": "https://github.com/webpack/webpack-sources/issues" }, "homepage": "https://github.com/webpack/webpack-sources#readme" } webpack-sources-1.4.3/test/000077500000000000000000000000001352204163100155705ustar00rootroot00000000000000webpack-sources-1.4.3/test/CachedSource.js000066400000000000000000000035201352204163100204560ustar00rootroot00000000000000var should = require("should"); var CachedSource = require("../lib/CachedSource"); var OriginalSource = require('../lib/OriginalSource'); describe("CachedSource", function() { it("should return the correct size for binary files", function() { var source = new OriginalSource(new ArrayBuffer(256), "file.wasm"); var cachedSource = new CachedSource(source); cachedSource.size().should.be.eql(256); cachedSource.size().should.be.eql(256); }); it("should return the correct size for cached binary sources", function() { var source = new OriginalSource(new ArrayBuffer(256), "file.wasm"); var cachedSource = new CachedSource(source); cachedSource.source(); cachedSource.size().should.be.eql(256); cachedSource.size().should.be.eql(256); }); it("should return the correct size for text files", function() { var source = new OriginalSource("TestTestTest", "file.js"); var cachedSource = new CachedSource(source); cachedSource.size().should.be.eql(12); cachedSource.size().should.be.eql(12); }); it("should return the correct size for cached text files", function() { var source = new OriginalSource("TestTestTest", "file.js"); var cachedSource = new CachedSource(source); cachedSource.source(); cachedSource.size().should.be.eql(12); cachedSource.size().should.be.eql(12); }); it("should return the correct size for unicode files", function() { var source = new OriginalSource("😋", "file.js"); var cachedSource = new CachedSource(source); cachedSource.size().should.be.eql(4); cachedSource.size().should.be.eql(4); }); it("should return the correct size for cached unicode files", function() { var source = new OriginalSource("😋", "file.js"); var cachedSource = new CachedSource(source); cachedSource.source(); cachedSource.size().should.be.eql(4); cachedSource.size().should.be.eql(4); }); }); webpack-sources-1.4.3/test/ConcatSource.js000066400000000000000000000050571352204163100205250ustar00rootroot00000000000000var should = require("should"); var ConcatSource = require("../lib/ConcatSource"); var RawSource = require("../lib/RawSource"); var OriginalSource = require("../lib/OriginalSource"); describe("ConcatSource", function() { it("should concat two sources", function() { var source = new ConcatSource( new RawSource("Hello World\n"), new OriginalSource("console.log('test');\nconsole.log('test2');\n", "console.js") ); source.add(new OriginalSource("Hello2\n", "hello.md")); var expectedMap1 = { version: 3, file: "x", mappings: ";AAAA;AACA;ACDA;", sources: [ "console.js", "hello.md" ], sourcesContent: [ "console.log('test');\nconsole.log('test2');\n", "Hello2\n" ] }; var expectedSource = [ "Hello World", "console.log('test');", "console.log('test2');", "Hello2", "" ].join("\n"); source.size().should.be.eql(62); source.source().should.be.eql(expectedSource); source.map({ columns: false }).should.be.eql(expectedMap1); source.sourceAndMap({ columns: false }).should.be.eql({ source: expectedSource, map: expectedMap1 }); var expectedMap2 = { version: 3, file: "x", mappings: ";AAAA;AACA;ACDA", names: [], sources: [ "console.js", "hello.md" ], sourcesContent: [ "console.log('test');\nconsole.log('test2');\n", "Hello2\n" ] }; source.map().should.be.eql(expectedMap2); source.sourceAndMap().should.be.eql({ source: expectedSource, map: expectedMap2 }); }); it('should be able to handle strings for all methods', function() { var source = new ConcatSource( new RawSource("Hello World\n"), new OriginalSource("console.log('test');\nconsole.log('test2');\n", "console.js") ); source.add("console.log('string')"); var expectedSource = [ "Hello World", "console.log('test');", "console.log('test2');", "console.log('string')", ].join("\n"); var expectedMap1 = { version: 3, file: "x", mappings: ";AAAA;AACA;A", sources: [ "console.js" ], sourcesContent: [ "console.log('test');\nconsole.log('test2');\n", ] }; source.size().should.be.eql(76); source.source().should.be.eql(expectedSource); source.map({ columns: false }).should.be.eql(expectedMap1); source.sourceAndMap({ columns: false }).should.be.eql({ source: expectedSource, map: expectedMap1 }); var hash = require('crypto').createHash('sha256') source.updateHash(hash) var digest = hash.digest('hex') digest.should.be.eql('c7172c1aa78e1ab61b365fadb9b6f192a770c2b91c8b5c65314b4911431a1a31') }) }); webpack-sources-1.4.3/test/OriginalSource.js000066400000000000000000000046151352204163100210610ustar00rootroot00000000000000var should = require("should"); var OriginalSource = require("../lib/OriginalSource"); describe("OriginalSource", function() { it("should handle multiline string", function() { var source = new OriginalSource("Line1\n\nLine3\n", "file.js"); var resultText = source.source(); var resultMap = source.sourceAndMap({ columns: true }); var resultListMap = source.sourceAndMap({ columns: false }); resultText.should.be.eql("Line1\n\nLine3\n"); resultMap.source.should.be.eql(resultText); resultListMap.source.should.be.eql(resultText); resultListMap.map.file.should.be.eql(resultMap.map.file); resultListMap.map.version.should.be.eql(resultMap.map.version); resultMap.map.sources.should.be.eql(["file.js"]); resultListMap.map.sources.should.be.eql(resultMap.map.sources); resultMap.map.sourcesContent.should.be.eql(["Line1\n\nLine3\n"]); resultListMap.map.sourcesContent.should.be.eql(resultMap.map.sourcesContent); resultMap.map.mappings.should.be.eql("AAAA;;AAEA"); resultListMap.map.mappings.should.be.eql("AAAA;AACA;AACA;"); }); it("should handle empty string", function() { var source = new OriginalSource("", "file.js"); var resultText = source.source(); var resultMap = source.sourceAndMap({ columns: true }); var resultListMap = source.sourceAndMap({ columns: false }); resultText.should.be.eql(""); resultMap.source.should.be.eql(resultText); resultListMap.source.should.be.eql(resultText); resultListMap.map.file.should.be.eql(resultMap.map.file); resultListMap.map.version.should.be.eql(resultMap.map.version); resultMap.map.sources.should.be.eql([]); resultListMap.map.sources.should.be.eql(resultMap.map.sources); resultMap.map.mappings.should.be.eql(""); resultListMap.map.mappings.should.be.eql(""); }); it("should omit mappings for columns with node", function() { var source = new OriginalSource("Line1\n\nLine3\n", "file.js"); var resultMap = source.node({ columns: false }).toStringWithSourceMap({ file: "x" }).map.toJSON(); resultMap.mappings.should.be.eql("AAAA;AACA;AACA"); }); it("should return the correct size for binary files", function() { var source = new OriginalSource(new ArrayBuffer(256), "file.wasm"); source.size().should.be.eql(256); }); it("should return the correct size for unicode files", function() { var source = new OriginalSource("😋", "file.js"); source.size().should.be.eql(4); }); }); webpack-sources-1.4.3/test/PrefixSource.js000066400000000000000000000051631352204163100205510ustar00rootroot00000000000000var should = require("should"); var PrefixSource = require("../lib/PrefixSource"); var RawSource = require("../lib/RawSource"); var OriginalSource = require("../lib/OriginalSource"); var ConcatSource = require('../lib/ConcatSource'); describe("PrefixSource", function() { it("should prefix a source", function() { var source = new PrefixSource( "\t", new OriginalSource("console.log('test');console.log('test2');\nconsole.log('test22');\n", "console.js") ); var expectedMap1 = { version: 3, file: "x", mappings: "AAAA;AACA;", sources: [ "console.js" ], sourcesContent: [ "console.log('test');console.log('test2');\nconsole.log('test22');\n" ] }; var expectedSource = [ "\tconsole.log('test');console.log('test2');", "\tconsole.log('test22');", "" ].join("\n"); source.size().should.be.eql(67); source.source().should.be.eql(expectedSource); source.map({ columns: false }).should.be.eql(expectedMap1); source.sourceAndMap({ columns: false }).should.be.eql({ source: expectedSource, map: expectedMap1 }); var expectedMap2 = { version: 3, file: "x", mappings: "CAAA,oBAAoB;CACpB", names: [], sources: [ "console.js" ], sourcesContent: [ "console.log('test');console.log('test2');\nconsole.log('test22');\n" ] }; source.map().should.be.eql(expectedMap2); source.sourceAndMap().should.be.eql({ source: expectedSource, map: expectedMap2 }); }); it('should have consistent source/sourceAndMap behavior', function() { var source = new PrefixSource( "\t", new ConcatSource( new OriginalSource("console.log('test');\n", "consoleA.js"), new OriginalSource("\nconsole.log('test1');\n\n", "consoleB.js"), new OriginalSource("\nconsole.log('test2');\n", "consoleC.js"), new OriginalSource("console.log('test3');", "consoleD.js"), new OriginalSource("\n", "empty.js"), new OriginalSource("console.log('test4');", "consoleE.js") ) ); var actualSource = source.source(); var expectedSource = [ "\tconsole.log('test');\n", "\t\n\tconsole.log('test1');\n\t\n", "\t\n\tconsole.log('test2');\n", "\tconsole.log('test3');", "\n\t", "console.log('test4');" ].join("") actualSource.should.be.eql(expectedSource); actualSource.should.be.eql(source.sourceAndMap().source); }); it("should handle newlines correctly", () => { var source = new PrefixSource( "*", new ConcatSource( "Line", " and more\n", "double nl\n\n", "nl\nline\nin\nline\n", "\nstart with nl", "\n\n\nempty lines" ) ); source.sourceAndMap().source.should.be.eql(source.source()); }); }); webpack-sources-1.4.3/test/ReplaceSource.js000066400000000000000000000146051352204163100206700ustar00rootroot00000000000000var should = require("should"); var ReplaceSource = require("../lib/ReplaceSource"); var RawSource = require("../lib/RawSource"); var OriginalSource = require("../lib/OriginalSource"); var validate = require('sourcemap-validator'); describe("ReplaceSource", function() { it("should replace correctly", function() { var line1, line2, line3, line4, line5, line6; var source = new ReplaceSource( new OriginalSource([ line1 = "Hello World!", line2 = "{}", line3 = "Line 3", line4 = "Line 4", line5 = "Line 5", line6 = "Last", "Line" ].join("\n"), "file.txt") ); var startLine3 = line1.length + line2.length + 2; var startLine6 = startLine3 + line3.length + line4.length + line5.length + 3; source.replace(startLine3, startLine3 + line3.length + line4.length + line5.length + 2, ""); source.replace(1, 4, "i "); source.replace(1, 4, "bye"); source.replace(7, 7, "0000"); source.insert(line1.length + 2, "\n Multi Line\n"); source.replace(startLine6 + 4, startLine6 + 4, " "); var originalSource = source.original(); var originalText = originalSource.source(); var resultText = source.source(); var resultMap = source.sourceAndMap({ columns: true }); var resultListMap = source.sourceAndMap({ columns: false }); originalSource.should.be.eql(source._source); originalText.should.be.eql("Hello World!\n{}\nLine 3\nLine 4\nLine 5\nLast\nLine"); resultText.should.be.eql("Hi bye W0000rld!\n{\n Multi Line\n}\nLast Line"); resultMap.source.should.be.eql(resultText); resultListMap.source.should.be.eql(resultText); resultListMap.map.file.should.be.eql(resultMap.map.file); resultListMap.map.version.should.be.eql(resultMap.map.version); resultListMap.map.sources.should.be.eql(resultMap.map.sources); resultListMap.map.sourcesContent.should.be.eql(resultMap.map.sourcesContent); resultMap.map.mappings.should.be.eql("AAAA,CAAC,EAAI,KAAE,IAAC;AACR,CAAC;AAAA;AAAA;AAID,IAAI,CACJ"); resultListMap.map.mappings.should.be.eql("AAAA;AACA;AAAA;AAAA;AAIA,KACA"); }); it("should replace multiple items correctly", function() { var line1, line2; var source = new ReplaceSource( new OriginalSource([ line1 = "Hello", line2 = "World!" ].join("\n"), "file.txt") ); source.insert(0, "Message: "); source.replace(2, line1.length + 4, "y A"); var resultText = source.source(); var resultMap = source.sourceAndMap({ columns: true }); var resultListMap = source.sourceAndMap({ columns: false }); resultText.should.be.eql("Message: Hey Ad!"); resultMap.source.should.be.eql(resultText); resultListMap.source.should.be.eql(resultText); resultListMap.map.file.should.be.eql(resultMap.map.file); resultListMap.map.version.should.be.eql(resultMap.map.version); resultListMap.map.sources.should.be.eql(resultMap.map.sources); resultListMap.map.sourcesContent.should.be.eql(resultMap.map.sourcesContent); resultMap.map.mappings.should.be.eql("AAAA,WAAE,GACE"); resultListMap.map.mappings.should.be.eql("AAAA,cACA"); }); it("should prepend items correctly", function() { var source = new ReplaceSource( new OriginalSource("Line 1", "file.txt") ); source.insert(-1, "Line -1\n"); source.insert(-1, "Line 0\n"); var resultText = source.source(); var resultMap = source.sourceAndMap({ columns: true }); var resultListMap = source.sourceAndMap({ columns: false }); resultText.should.be.eql("Line -1\nLine 0\nLine 1"); resultMap.source.should.be.eql(resultText); resultListMap.source.should.be.eql(resultText); resultListMap.map.file.should.be.eql(resultMap.map.file); resultListMap.map.version.should.be.eql(resultMap.map.version); resultListMap.map.sources.should.be.eql(resultMap.map.sources); resultListMap.map.sourcesContent.should.be.eql(resultMap.map.sourcesContent); resultMap.map.mappings.should.be.eql("AAAA;AAAA;AAAA"); resultListMap.map.mappings.should.be.eql("AAAA;AAAA;AAAA"); }); it("should prepend items with replace at start correctly", function() { var source = new ReplaceSource( new OriginalSource([ "Line 1", "Line 2" ].join("\n"), "file.txt") ); source.insert(-1, "Line 0\n"); source.replace(0, 5, "Hello"); var resultText = source.source(); var resultMap = source.sourceAndMap({ columns: true }); var resultListMap = source.sourceAndMap({ columns: false }); resultText.should.be.eql("Line 0\nHello\nLine 2"); resultMap.source.should.be.eql(resultText); resultListMap.source.should.be.eql(resultText); resultListMap.map.file.should.be.eql(resultMap.map.file); resultListMap.map.version.should.be.eql(resultMap.map.version); resultListMap.map.sources.should.be.eql(resultMap.map.sources); resultListMap.map.sourcesContent.should.be.eql(resultMap.map.sourcesContent); resultMap.map.mappings.should.be.eql("AAAA;AAAA,KAAM;AACN"); resultListMap.map.mappings.should.be.eql("AAAA;AAAA;AACA"); }); it("should append items correctly", function() { var line1; var source = new ReplaceSource( new OriginalSource(line1 = "Line 1\n", "file.txt") ); source.insert(line1.length + 1, "Line 2\n"); var resultText = source.source(); var resultMap = source.sourceAndMap({ columns: true }); var resultListMap = source.sourceAndMap({ columns: false }); resultText.should.be.eql("Line 1\nLine 2\n"); resultMap.source.should.be.eql(resultText); resultListMap.source.should.be.eql(resultText); resultListMap.map.file.should.be.eql(resultMap.map.file); resultListMap.map.version.should.be.eql(resultMap.map.version); resultListMap.map.sources.should.be.eql(resultMap.map.sources); resultListMap.map.sourcesContent.should.be.eql(resultMap.map.sourcesContent); resultMap.map.mappings.should.be.eql("AAAA"); resultListMap.map.mappings.should.be.eql("AAAA;;"); }); it("should produce correct source map", function() { var bootstrapCode = ' var hello\n var world\n'; should(function() { var source = new ReplaceSource(new OriginalSource(bootstrapCode, "file.js")); source.replace(7, 11, 'h', 'incorrect'); source.replace(20, 24, 'w', 'identifiers'); var resultMap = source.sourceAndMap(); validate(resultMap.source, JSON.stringify(resultMap.map)); }).throw(); var source = new ReplaceSource(new OriginalSource(bootstrapCode, "file.js")); source.replace(7, 11, 'h', 'hello'); source.replace(20, 24, 'w', 'world'); var resultMap = source.sourceAndMap(); validate(resultMap.source, JSON.stringify(resultMap.map)); }); }); webpack-sources-1.4.3/test/SourceMapSource.js000066400000000000000000000040761352204163100212140ustar00rootroot00000000000000var should = require("should"); var SourceMapSource = require("../lib/SourceMapSource"); var OriginalSource = require("../lib/OriginalSource"); var ConcatSource = require("../lib/ConcatSource"); var SourceNode = require("source-map").SourceNode; describe("SourceMapSource", function() { it("map correctly", function() { var innerSourceCode = [ "Hello World", "is a test string" ].join("\n") + "\n"; var innerSource = new ConcatSource( new OriginalSource(innerSourceCode, "hello-world.txt"), "Other text\n" ); var source = new SourceNode(null, null, null, [ "Translated: ", new SourceNode(1, 0, "text", "Hallo", "Hello"), " ", new SourceNode(1, 6, "text", "Welt\n", "World"), new SourceNode(2, 0, "text", "ist ein", "nope"), " test ", new SourceNode(2, 10, "text", "Text\n"), new SourceNode(3, 0, "text", "Anderer"), " ", new SourceNode(3, 6, "text", "Text") ]); source.setSourceContent("text", innerSourceCode); var sourceR = source.toStringWithSourceMap({ file: "translated.txt" }); var sourceMapSource1 = new SourceMapSource(sourceR.code, "text", sourceR.map.toJSON(), innerSource.source(), innerSource.map()); var sourceMapSource2 = new SourceMapSource(sourceR.code, "text", sourceR.map.toJSON(), innerSource.source(), innerSource.map(), true); var expectedContent = [ "Translated: Hallo Welt", "ist ein test Text", "Anderer Text" ].join("\n"); sourceMapSource1.source().should.be.eql(expectedContent) sourceMapSource2.source().should.be.eql(expectedContent) sourceMapSource1.map().should.be.eql({ file: "x", mappings: "YAAAA,K,CAAMC;AACN,O,MAAU;ACCV,O,CAAM", names: [ "Hello", "World" ], sources: [ "hello-world.txt", "text" ], sourcesContent: [ innerSourceCode, innerSource.source() ], version: 3 }); sourceMapSource2.map().should.be.eql({ file: "x", mappings: "YAAAA,K,CAAMC;AACN,O,MAAU", names: [ "Hello", "World" ], sources: [ "hello-world.txt" ], sourcesContent: [ innerSourceCode ], version: 3 }); }) }); webpack-sources-1.4.3/test/package-entry.js000066400000000000000000000001621352204163100206570ustar00rootroot00000000000000describe("package-entry", function() { it("should not throw SyntaxError", function() { require("../"); }) }); webpack-sources-1.4.3/yarn.lock000066400000000000000000001774561352204163100164600ustar00rootroot00000000000000# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 abbrev@1, abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" acorn@^5.5.0: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" ajv@^5.2.3, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: color-convert "^1.9.0" argparse@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" dependencies: sprintf-js "~1.0.2" array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" asn1@0.1.11: version "0.1.11" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" assert-plus@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" async@1.x, async@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" aws-sign2@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: chalk "^1.1.3" esutils "^2.0.2" js-tokens "^3.0.2" balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" dependencies: tweetnacl "^0.14.3" beautify-lint@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/beautify-lint/-/beautify-lint-1.0.4.tgz#954b10f0bcd0a93dd17d0ed519b8996b701247db" dependencies: async "^1.5.0" diff "^2.2.1" glob "^6.0.1" js-beautify "^1.5.10" bl@~0.9.0: version "0.9.5" resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" dependencies: readable-stream "~1.0.26" bluebird@^3.0.5: version "3.5.0" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" boom@0.4.x: version "0.4.2" resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" dependencies: hoek "0.9.x" boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" dependencies: hoek "2.x.x" brace-expansion@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" dependencies: balanced-match "^0.4.1" concat-map "0.0.1" browser-stdout@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" caseless@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.6.0.tgz#8167c1ab8397fb5bb95f96d28e5a81c50f247ac4" chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" has-ansi "^2.0.0" strip-ansi "^3.0.0" supports-color "^2.0.0" chalk@^2.0.0, chalk@^2.1.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" circular-json@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" dependencies: restore-cursor "^2.0.0" cli-width@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" codecov.io@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/codecov.io/-/codecov.io-0.1.6.tgz#59dfd02da1ff31c2fb2b952ad8ad16fd3781b728" dependencies: request "2.42.0" urlgrey "0.4.0" color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" dependencies: color-name "1.1.3" color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" dependencies: delayed-stream "~1.0.0" combined-stream@~0.0.4: version "0.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" dependencies: delayed-stream "0.0.5" commander@2.9.0, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" commander@~2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" config-chain@~1.1.5: version "1.1.11" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" dependencies: ini "^1.3.4" proto-list "~1.2.1" core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" coveralls@^2.11.6: version "2.13.1" resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.13.1.tgz#d70bb9acc1835ec4f063ff9dac5423c17b11f178" dependencies: js-yaml "3.6.1" lcov-parse "0.0.10" log-driver "1.2.5" minimist "1.2.0" request "2.79.0" cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" cryptiles@0.2.x: version "0.2.2" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" dependencies: boom "0.4.x" cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" dependencies: boom "2.x.x" ctype@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" dependencies: assert-plus "^1.0.0" debug@2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" dependencies: ms "0.7.2" debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" dependencies: ms "^2.1.1" deep-equal@~0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.1.2.tgz#b246c2b80a570a47c11be1d9bd1070ec878b87ce" deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" defined@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-0.0.0.tgz#f35eea7d705e933baf13b2f03b3f83d921403b3e" del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" is-path-in-cwd "^1.0.0" object-assign "^4.0.1" pify "^2.0.0" pinkie-promise "^2.0.0" rimraf "^2.2.8" delayed-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" diff@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" diff@^2.2.1: version "2.2.3" resolved "https://registry.yarnpkg.com/diff/-/diff-2.2.3.tgz#60eafd0d28ee906e4e8ff0a52c1229521033bf99" doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: esutils "^2.0.2" duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" editorconfig@^0.13.2: version "0.13.2" resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.2.tgz#8e57926d9ee69ab6cb999f027c2171467acceb35" dependencies: bluebird "^3.0.5" commander "^2.9.0" lru-cache "^3.2.0" sigmund "^1.0.1" escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" escodegen@1.8.x: version "1.8.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" dependencies: esprima "^2.7.1" estraverse "^1.9.1" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.2.0" eslint-plugin-nodeca@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/eslint-plugin-nodeca/-/eslint-plugin-nodeca-1.0.3.tgz#66c85663ee910a8baed7a505d2b9241bb7037b5b" eslint-scope@^3.7.1: version "3.7.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" eslint@^4.18.2: version "4.18.2" resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" chalk "^2.1.0" concat-stream "^1.6.0" cross-spawn "^5.1.0" debug "^3.1.0" doctrine "^2.1.0" eslint-scope "^3.7.1" eslint-visitor-keys "^1.0.0" espree "^3.5.2" esquery "^1.0.0" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" globals "^11.0.1" ignore "^3.3.3" imurmurhash "^0.1.4" inquirer "^3.0.6" is-resolvable "^1.0.0" js-yaml "^3.9.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" lodash "^4.17.4" minimatch "^3.0.2" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" pluralize "^7.0.0" progress "^2.0.0" require-uncached "^1.0.3" semver "^5.3.0" strip-ansi "^4.0.0" strip-json-comments "~2.0.1" table "4.0.2" text-table "~0.2.0" espree@^3.5.2: version "3.5.4" resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" dependencies: acorn "^5.5.0" acorn-jsx "^3.0.0" esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" esquery@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" dependencies: estraverse "~4.1.0" object-assign "^4.0.1" estraverse@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" estraverse@^4.0.0, estraverse@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" estraverse@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" extend@~3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" tmp "^0.0.33" extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" flat-cache@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" dependencies: circular-json "^0.3.1" del "^2.0.2" graceful-fs "^4.1.2" write "^0.2.1" forever-agent@~0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" form-data@~0.1.0: version "0.1.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" dependencies: async "~0.9.0" combined-stream "~0.0.4" mime "~1.2.11" form-data@~2.1.1: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" dependencies: asynckit "^0.4.0" combined-stream "^1.0.5" mime-types "^2.1.12" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" generate-function@^2.0.0: version "2.3.1" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" dependencies: is-property "^1.0.2" generate-object-property@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" dependencies: is-property "^1.0.0" getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" dependencies: assert-plus "^1.0.0" glob@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^3.0.2" once "^1.3.0" path-is-absolute "^1.0.0" glob@^5.0.15: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" dependencies: inflight "^1.0.4" inherits "2" minimatch "2 || 3" once "^1.3.0" path-is-absolute "^1.0.0" glob@^6.0.1: version "6.0.4" resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" dependencies: inflight "^1.0.4" inherits "2" minimatch "2 || 3" once "^1.3.0" path-is-absolute "^1.0.0" glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" globals@^11.0.1: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" dependencies: array-union "^1.0.1" arrify "^1.0.0" glob "^7.0.3" object-assign "^4.0.1" pify "^2.0.0" pinkie-promise "^2.0.0" graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" growl@1.9.2: version "1.9.2" resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" handlebars@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" dependencies: neo-async "^2.6.0" optimist "^0.6.1" source-map "^0.6.1" optionalDependencies: uglify-js "^3.1.4" har-validator@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" dependencies: chalk "^1.1.1" commander "^2.9.0" is-my-json-valid "^2.12.4" pinkie-promise "^2.0.0" has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" dependencies: ansi-regex "^2.0.0" has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" hawk@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" dependencies: boom "0.4.x" cryptiles "0.2.x" hoek "0.9.x" sntp "0.2.x" hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: boom "2.x.x" cryptiles "2.x.x" hoek "2.x.x" sntp "1.x.x" hoek@0.9.x: version "0.9.1" resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" http-signature@~0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" dependencies: asn1 "0.1.11" assert-plus "^0.1.5" ctype "0.5.3" http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" dependencies: assert-plus "^0.2.0" jsprim "^1.2.2" sshpk "^1.7.0" iconv-lite@^0.4.17: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: safer-buffer ">= 2.1.2 < 3" ignore@^3.3.3: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: once "^1.3.0" wrappy "1" inherits@2, inherits@^2.0.3, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" ini@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" external-editor "^2.0.4" figures "^2.0.0" lodash "^4.3.0" mute-stream "0.0.7" run-async "^2.2.0" rx-lite "^4.0.8" rx-lite-aggregates "^4.0.8" string-width "^2.1.0" strip-ansi "^4.0.0" through "^2.3.6" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" is-my-ip-valid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" is-my-json-valid@^2.12.4: version "2.20.0" resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a" dependencies: generate-function "^2.0.0" generate-object-property "^1.1.0" is-my-ip-valid "^1.0.0" jsonpointer "^4.0.0" xtend "^4.0.0" is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" dependencies: path-is-inside "^1.0.1" is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" is-property@^1.0.0, is-property@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" is-resolvable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" dependencies: tryit "^1.0.1" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" istanbul@^0.4.1: version "0.4.5" resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" dependencies: abbrev "1.0.x" async "1.x" escodegen "1.8.x" esprima "2.7.x" glob "^5.0.15" handlebars "^4.0.1" js-yaml "3.x" mkdirp "0.5.x" nopt "3.x" once "1.x" resolve "1.1.x" supports-color "^3.1.0" which "^1.1.1" wordwrap "^1.0.0" js-beautify@^1.5.10: version "1.6.14" resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.6.14.tgz#d3b8f7322d02b9277d58bd238264c327e58044cd" dependencies: config-chain "~1.1.5" editorconfig "^0.13.2" mkdirp "~0.5.0" nopt "~3.0.1" js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" js-yaml@3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" dependencies: argparse "^1.0.7" esprima "^2.6.0" js-yaml@3.x, js-yaml@^3.9.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" dependencies: argparse "^1.0.7" esprima "^4.0.0" jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" jsesc@~0.3.x: version "0.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.3.0.tgz#1bf5ee63b4539fe2e26d0c1e99c240b97a457972" json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" json3@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" jsonpointer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" jsprim@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" dependencies: assert-plus "1.0.0" extsprintf "1.0.2" json-schema "0.2.3" verror "1.3.6" lcov-parse@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" lodash._baseassign@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" dependencies: lodash._basecopy "^3.0.0" lodash.keys "^3.0.0" lodash._basebind@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._basebind/-/lodash._basebind-2.3.0.tgz#2b5bc452a0e106143b21869f233bdb587417d248" dependencies: lodash._basecreate "~2.3.0" lodash._setbinddata "~2.3.0" lodash.isobject "~2.3.0" lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" lodash._basecreate@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" lodash._basecreate@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-2.3.0.tgz#9b88a86a4dcff7b7f3c61d83a2fcfc0671ec9de0" dependencies: lodash._renative "~2.3.0" lodash.isobject "~2.3.0" lodash.noop "~2.3.0" lodash._basecreatecallback@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._basecreatecallback/-/lodash._basecreatecallback-2.3.0.tgz#37b2ab17591a339e988db3259fcd46019d7ac362" dependencies: lodash._setbinddata "~2.3.0" lodash.bind "~2.3.0" lodash.identity "~2.3.0" lodash.support "~2.3.0" lodash._basecreatewrapper@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._basecreatewrapper/-/lodash._basecreatewrapper-2.3.0.tgz#aa0c61ad96044c3933376131483a9759c3651247" dependencies: lodash._basecreate "~2.3.0" lodash._setbinddata "~2.3.0" lodash._slice "~2.3.0" lodash.isobject "~2.3.0" lodash._createwrapper@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._createwrapper/-/lodash._createwrapper-2.3.0.tgz#d1aae1102dadf440e8e06fc133a6edd7fe146075" dependencies: lodash._basebind "~2.3.0" lodash._basecreatewrapper "~2.3.0" lodash.isfunction "~2.3.0" lodash._escapehtmlchar@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.3.0.tgz#d03da6bd82eedf38dc0a5b503d740ecd0e894592" dependencies: lodash._htmlescapes "~2.3.0" lodash._escapestringchar@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._escapestringchar/-/lodash._escapestringchar-2.3.0.tgz#cce73ae60fc6da55d2bf8a0679c23ca2bab149fc" lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" lodash._htmlescapes@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._htmlescapes/-/lodash._htmlescapes-2.3.0.tgz#1ca98863cadf1fa1d82c84f35f31e40556a04f3a" lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" lodash._objecttypes@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.3.0.tgz#6a3ea3987dd6eeb8021b2d5c9c303549cc2bae1e" lodash._reinterpolate@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-2.3.0.tgz#03ee9d85c0e55cbd590d71608a295bdda51128ec" lodash._renative@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._renative/-/lodash._renative-2.3.0.tgz#77d8edd4ced26dd5971f9e15a5f772e4e317fbd3" lodash._reunescapedhtml@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.3.0.tgz#db920b55ac7f3ff825939aceb9ba2c231713d24d" dependencies: lodash._htmlescapes "~2.3.0" lodash.keys "~2.3.0" lodash._setbinddata@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._setbinddata/-/lodash._setbinddata-2.3.0.tgz#e5610490acd13277d59858d95b5f2727f1508f04" dependencies: lodash._renative "~2.3.0" lodash.noop "~2.3.0" lodash._shimkeys@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.3.0.tgz#611f93149e3e6c721096b48769ef29537ada8ba9" dependencies: lodash._objecttypes "~2.3.0" lodash._slice@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash._slice/-/lodash._slice-2.3.0.tgz#147198132859972e4680ca29a5992c855669aa5c" lodash.bind@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-2.3.0.tgz#c2a8e18b68e5ecc152e2b168266116fea5b016cc" dependencies: lodash._createwrapper "~2.3.0" lodash._renative "~2.3.0" lodash._slice "~2.3.0" lodash.create@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" dependencies: lodash._baseassign "^3.0.0" lodash._basecreate "^3.0.0" lodash._isiterateecall "^3.0.0" lodash.defaults@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.3.0.tgz#a832b001f138f3bb9721c2819a2a7cc5ae21ed25" dependencies: lodash._objecttypes "~2.3.0" lodash.keys "~2.3.0" lodash.escape@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-2.3.0.tgz#844c38c58f844e1362ebe96726159b62cf5f2a58" dependencies: lodash._escapehtmlchar "~2.3.0" lodash._reunescapedhtml "~2.3.0" lodash.keys "~2.3.0" lodash.foreach@~2.3.x: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-2.3.0.tgz#083404c91e846ee77245fdf9d76519c68b2af168" dependencies: lodash._basecreatecallback "~2.3.0" lodash.forown "~2.3.0" lodash.forown@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-2.3.0.tgz#24fb4aaf800d45fc2dc60bfec3ce04c836a3ad7f" dependencies: lodash._basecreatecallback "~2.3.0" lodash._objecttypes "~2.3.0" lodash.keys "~2.3.0" lodash.identity@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.identity/-/lodash.identity-2.3.0.tgz#6b01a210c9485355c2a913b48b6711219a173ded" lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" lodash.isfunction@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-2.3.0.tgz#6b2973e47a647cf12e70d676aea13643706e5267" lodash.isobject@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.3.0.tgz#2e16d3fc583da9831968953f2d8e6d73434f6799" dependencies: lodash._objecttypes "~2.3.0" lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" dependencies: lodash._getnative "^3.0.0" lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" lodash.keys@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.3.0.tgz#b350f4f92caa9f45a4a2ecf018454cf2f28ae253" dependencies: lodash._renative "~2.3.0" lodash._shimkeys "~2.3.0" lodash.isobject "~2.3.0" lodash.noop@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-2.3.0.tgz#3059d628d51bbf937cd2a0b6fc3a7f212a669c2c" lodash.support@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.support/-/lodash.support-2.3.0.tgz#7eaf038af4f0d6aab776b44aa6dcfc80334c9bfd" dependencies: lodash._renative "~2.3.0" lodash.template@~2.3.x: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-2.3.0.tgz#4e3e29c433b4cfea675ec835e6f12391c61fd22b" dependencies: lodash._escapestringchar "~2.3.0" lodash._reinterpolate "~2.3.0" lodash.defaults "~2.3.0" lodash.escape "~2.3.0" lodash.keys "~2.3.0" lodash.templatesettings "~2.3.0" lodash.values "~2.3.0" lodash.templatesettings@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-2.3.0.tgz#303d132c342710040d5a18efaa2d572fd03f8cdc" dependencies: lodash._reinterpolate "~2.3.0" lodash.escape "~2.3.0" lodash.values@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.3.0.tgz#ca96fbe60a20b0b0ec2ba2ba5fc6a765bd14a3ba" dependencies: lodash.keys "~2.3.0" lodash@^4.17.4, lodash@^4.3.0: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" log-driver@1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056" lru-cache@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" dependencies: pseudomap "^1.0.1" lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" mime-db@~1.27.0: version "1.27.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" mime-types@^2.1.12, mime-types@~2.1.7: version "2.1.15" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" dependencies: mime-db "~1.27.0" mime-types@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" mime@~1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" "minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" mocha@^3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.4.2.tgz#d0ef4d332126dbf18d0d640c9b382dd48be97594" dependencies: browser-stdout "1.3.0" commander "2.9.0" debug "2.6.0" diff "3.2.0" escape-string-regexp "1.0.5" glob "7.1.1" growl "1.9.2" json3 "3.3.2" lodash.create "3.1.1" mkdirp "0.5.1" supports-color "3.1.2" ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" neo-async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" node-uuid@~1.4.0: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" nopt@3.x, nopt@~3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" oauth-sign@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.4.0.tgz#f22956f31ea7151a821e5f2fb32c113cad8b9f69" oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" once@1.x, once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" dependencies: mimic-fn "^1.0.0" optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: minimist "~0.0.1" wordwrap "~0.0.2" optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" wordwrap "~1.0.0" os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" pseudomap@^1.0.1, pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" qs@~1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" qs@~6.3.0: version "6.3.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" readable-stream@^2.2.2: version "2.2.10" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.10.tgz#effe72bb7c884c0dd335e2379d526196d9d011ee" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "~1.0.0" process-nextick-args "~1.0.6" safe-buffer "^5.0.1" string_decoder "~1.0.0" util-deprecate "~1.0.1" readable-stream@~1.0.26: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" request@2.42.0: version "2.42.0" resolved "https://registry.yarnpkg.com/request/-/request-2.42.0.tgz#572bd0148938564040ac7ab148b96423a063304a" dependencies: bl "~0.9.0" caseless "~0.6.0" forever-agent "~0.5.0" json-stringify-safe "~5.0.0" mime-types "~1.0.1" node-uuid "~1.4.0" qs "~1.2.0" tunnel-agent "~0.4.0" optionalDependencies: aws-sign2 "~0.5.0" form-data "~0.1.0" hawk "1.1.1" http-signature "~0.10.0" oauth-sign "~0.4.0" stringstream "~0.0.4" tough-cookie ">=0.12.0" request@2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" caseless "~0.11.0" combined-stream "~1.0.5" extend "~3.0.0" forever-agent "~0.6.1" form-data "~2.1.1" har-validator "~2.0.6" hawk "~3.1.3" http-signature "~1.1.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.7" oauth-sign "~0.8.1" qs "~6.3.0" stringstream "~0.0.4" tough-cookie "~2.3.0" tunnel-agent "~0.4.1" uuid "^3.0.0" require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" dependencies: onetime "^2.0.0" signal-exit "^3.0.2" resumer@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" dependencies: through "~2.3.4" rimraf@^2.2.8: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" dependencies: is-promise "^2.1.0" rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" dependencies: rx-lite "*" rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" safe-buffer@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" semver@^5.3.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" should-equal@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-1.0.1.tgz#0b6e9516f2601a9fb0bb2dcc369afa1c7e200af7" dependencies: should-type "^1.0.0" should-format@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" dependencies: should-type "^1.3.0" should-type-adaptors "^1.0.1" should-type-adaptors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.0.1.tgz#efe5553cdf68cff66e5c5f51b712dc351c77beaa" dependencies: should-type "^1.3.0" should-util "^1.0.0" should-type@^1.0.0, should-type@^1.3.0, should-type@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" should-util@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063" should@^11.2.1: version "11.2.1" resolved "https://registry.yarnpkg.com/should/-/should-11.2.1.tgz#90f55145552d01cfc200666e4e818a1c9670eda2" dependencies: should-equal "^1.0.0" should-format "^3.0.2" should-type "^1.4.0" should-type-adaptors "^1.0.1" should-util "^1.0.0" sigmund@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" dependencies: is-fullwidth-code-point "^2.0.0" sntp@0.2.x: version "0.2.4" resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" dependencies: hoek "0.9.x" sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" dependencies: hoek "2.x.x" source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" source-map@~0.1.x: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: amdefine ">=0.0.4" source-map@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" dependencies: amdefine ">=0.0.4" sourcemap-validator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/sourcemap-validator/-/sourcemap-validator-1.1.0.tgz#00454547d1682186e1498a7208e022e8dfa8738f" dependencies: jsesc "~0.3.x" lodash.foreach "~2.3.x" lodash.template "~2.3.x" source-map "~0.1.x" split@~0.2.10: version "0.2.10" resolved "https://registry.yarnpkg.com/split/-/split-0.2.10.tgz#67097c601d697ce1368f418f06cd201cf0521a57" dependencies: through "2" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" bcrypt-pbkdf "^1.0.0" dashdash "^1.12.0" ecc-jsbn "~0.1.1" getpass "^0.1.1" jsbn "~0.1.0" safer-buffer "^2.0.2" tweetnacl "~0.14.0" stream-combiner@~0.0.2: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" dependencies: duplexer "~0.1.1" string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" string_decoder@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" dependencies: safe-buffer "^5.0.1" stringstream@~0.0.4: version "0.0.6" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" strip-ansi@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: ansi-regex "^3.0.0" strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" supports-color@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: has-flag "^1.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^3.1.0: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" dependencies: has-flag "^3.0.0" table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" dependencies: ajv "^5.2.3" ajv-keywords "^2.1.0" chalk "^2.1.0" lodash "^4.17.4" slice-ansi "1.0.0" string-width "^2.1.1" tape@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/tape/-/tape-2.3.0.tgz#0dfeec709227fbcc9170abe7f046962b271431db" dependencies: deep-equal "~0.1.0" defined "~0.0.0" inherits "~2.0.1" jsonify "~0.0.0" resumer "~0.0.0" split "~0.2.10" stream-combiner "~0.0.2" through "~2.3.4" text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" through@2, through@^2.3.6, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" dependencies: os-tmpdir "~1.0.2" tough-cookie@>=0.12.0, tough-cookie@~2.3.0: version "2.3.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" dependencies: punycode "^1.4.1" tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" tunnel-agent@~0.4.0, tunnel-agent@~0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" dependencies: prelude-ls "~1.1.2" typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" uglify-js@^3.1.4: version "3.6.0" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" dependencies: commander "~2.20.0" source-map "~0.6.1" urlgrey@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.0.tgz#f065357040fb35c3b311d4e5dc36484d96dbea06" dependencies: tape "2.3.0" util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" uuid@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" verror@1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" dependencies: extsprintf "1.0.2" which@^1.1.1: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: isexe "^2.0.0" which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" dependencies: isexe "^2.0.0" wordwrap@^1.0.0, wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" xtend@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"