[Pkg-javascript-commits] [node-recast] 01/07: New upstream version 0.12.7
Julien Puydt
julien.puydt at laposte.net
Sun Oct 15 07:27:06 UTC 2017
This is an automated email from the git hooks/post-receive script.
jpuydt-guest pushed a commit to branch master
in repository node-recast.
commit 1ab75a2cb2ae71239e58a63692a1b27d619ee01e
Author: Julien Puydt <julien.puydt at laposte.net>
Date: Sun Oct 15 08:50:16 2017 +0200
New upstream version 0.12.7
---
.travis.yml | 3 -
lib/lines.js | 1277 ++++++++++++++++++++++++++-------------------------
lib/printer.js | 1 +
package-lock.json | 1094 +++++++++++++++++++++++++++++++++++++++++++
package.json | 13 +-
test/type-syntax.js | 13 +-
yarn.lock | 827 +++++++++++++++++++++++++++++++++
7 files changed, 2580 insertions(+), 648 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 45a7297..5c61e31 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,9 +5,6 @@ node_js:
- "6"
- "5"
- "4"
- - "0.12"
- - "0.11"
- - "0.10"
# Allow Travis tests to run in containers.
sudo: false
diff --git a/lib/lines.js b/lib/lines.js
index 3b0bbcf..f8d0745 100644
--- a/lib/lines.js
+++ b/lib/lines.js
@@ -14,35 +14,57 @@ var Mapping = require("./mapping");
// 4. Enforce immutability.
// 5. No newline characters.
+var useSymbol = typeof Symbol === "function";
+var secretKey = "recastLinesSecret";
+if (useSymbol) {
+ secretKey = Symbol.for(secretKey);
+}
+
function getSecret(lines) {
- return lines[secretKey];
+ return lines[secretKey];
}
function Lines(infos, sourceFileName) {
- assert.ok(this instanceof Lines);
- assert.ok(infos.length > 0);
+ assert.ok(this instanceof Lines);
+ assert.ok(infos.length > 0);
+
+ if (sourceFileName) {
+ isString.assert(sourceFileName);
+ } else {
+ sourceFileName = null;
+ }
+
+ setSymbolOrKey(this, secretKey, {
+ infos: infos,
+ mappings: [],
+ name: sourceFileName,
+ cachedSourceMap: null
+ });
+
+ this.length = infos.length;
+ this.name = sourceFileName;
+
+ if (sourceFileName) {
+ getSecret(this).mappings.push(new Mapping(this, {
+ start: this.firstPos(),
+ end: this.lastPos()
+ }));
+ }
+}
- if (sourceFileName) {
- isString.assert(sourceFileName);
- } else {
- sourceFileName = null;
- }
+function setSymbolOrKey(obj, key, value) {
+ if (useSymbol) {
+ return obj[key] = value;
+ }
- Object.defineProperty(this, secretKey, {
- value: {
- infos: infos,
- mappings: [],
- name: sourceFileName,
- cachedSourceMap: null
- }
- });
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: false,
+ writable: false,
+ configurable: true
+ });
- if (sourceFileName) {
- getSecret(this).mappings.push(new Mapping(this, {
- start: this.firstPos(),
- end: this.lastPos()
- }));
- }
+ return value;
}
// Exposed for instanceof checks. The fromString function should be used
@@ -50,31 +72,14 @@ function Lines(infos, sourceFileName) {
exports.Lines = Lines;
var Lp = Lines.prototype;
-// These properties used to be assigned to each new object in the Lines
-// constructor, but we can more efficiently stuff them into the secret and
-// let these lazy accessors compute their values on-the-fly.
-Object.defineProperties(Lp, {
- length: {
- get: function() {
- return getSecret(this).infos.length;
- }
- },
-
- name: {
- get: function() {
- return getSecret(this).name;
- }
- }
-});
-
function copyLineInfo(info) {
- return {
- line: info.line,
- indent: info.indent,
- locked: info.locked,
- sliceStart: info.sliceStart,
- sliceEnd: info.sliceEnd
- };
+ return {
+ line: info.line,
+ indent: info.indent,
+ locked: info.locked,
+ sliceStart: info.sliceStart,
+ sliceEnd: info.sliceEnd
+ };
}
var fromStringCache = {};
@@ -82,39 +87,39 @@ var hasOwn = fromStringCache.hasOwnProperty;
var maxCacheKeyLen = 10;
function countSpaces(spaces, tabWidth) {
- var count = 0;
- var len = spaces.length;
-
- for (var i = 0; i < len; ++i) {
- switch (spaces.charCodeAt(i)) {
- case 9: // '\t'
- assert.strictEqual(typeof tabWidth, "number");
- assert.ok(tabWidth > 0);
-
- var next = Math.ceil(count / tabWidth) * tabWidth;
- if (next === count) {
- count += tabWidth;
- } else {
- count = next;
- }
-
- break;
-
- case 11: // '\v'
- case 12: // '\f'
- case 13: // '\r'
- case 0xfeff: // zero-width non-breaking space
- // These characters contribute nothing to indentation.
- break;
-
- case 32: // ' '
- default: // Treat all other whitespace like ' '.
- count += 1;
- break;
- }
- }
-
- return count;
+ var count = 0;
+ var len = spaces.length;
+
+ for (var i = 0; i < len; ++i) {
+ switch (spaces.charCodeAt(i)) {
+ case 9: // '\t'
+ assert.strictEqual(typeof tabWidth, "number");
+ assert.ok(tabWidth > 0);
+
+ var next = Math.ceil(count / tabWidth) * tabWidth;
+ if (next === count) {
+ count += tabWidth;
+ } else {
+ count = next;
+ }
+
+ break;
+
+ case 11: // '\v'
+ case 12: // '\f'
+ case 13: // '\r'
+ case 0xfeff: // zero-width non-breaking space
+ // These characters contribute nothing to indentation.
+ break;
+
+ case 32: // ' '
+ default: // Treat all other whitespace like ' '.
+ count += 1;
+ break;
+ }
+ }
+
+ return count;
}
exports.countSpaces = countSpaces;
@@ -122,772 +127,772 @@ var leadingSpaceExp = /^\s*/;
// As specified here: http://www.ecma-international.org/ecma-262/6.0/#sec-line-terminators
var lineTerminatorSeqExp =
- /\u000D\u000A|\u000D(?!\u000A)|\u000A|\u2028|\u2029/;
+ /\u000D\u000A|\u000D(?!\u000A)|\u000A|\u2028|\u2029/;
/**
* @param {Object} options - Options object that configures printing.
*/
function fromString(string, options) {
- if (string instanceof Lines)
- return string;
+ if (string instanceof Lines)
+ return string;
- string += "";
+ string += "";
- var tabWidth = options && options.tabWidth;
- var tabless = string.indexOf("\t") < 0;
- var locked = !! (options && options.locked);
- var cacheable = !options && tabless && (string.length <= maxCacheKeyLen);
+ var tabWidth = options && options.tabWidth;
+ var tabless = string.indexOf("\t") < 0;
+ var locked = !! (options && options.locked);
+ var cacheable = !options && tabless && (string.length <= maxCacheKeyLen);
- assert.ok(tabWidth || tabless, "No tab width specified but encountered tabs in string\n" + string);
+ assert.ok(tabWidth || tabless, "No tab width specified but encountered tabs in string\n" + string);
- if (cacheable && hasOwn.call(fromStringCache, string))
- return fromStringCache[string];
+ if (cacheable && hasOwn.call(fromStringCache, string))
+ return fromStringCache[string];
- var lines = new Lines(string.split(lineTerminatorSeqExp).map(function(line) {
- var spaces = leadingSpaceExp.exec(line)[0];
- return {
- line: line,
- indent: countSpaces(spaces, tabWidth),
- // Boolean indicating whether this line can be reindented.
- locked: locked,
- sliceStart: spaces.length,
- sliceEnd: line.length
- };
- }), normalizeOptions(options).sourceFileName);
+ var lines = new Lines(string.split(lineTerminatorSeqExp).map(function(line) {
+ var spaces = leadingSpaceExp.exec(line)[0];
+ return {
+ line: line,
+ indent: countSpaces(spaces, tabWidth),
+ // Boolean indicating whether this line can be reindented.
+ locked: locked,
+ sliceStart: spaces.length,
+ sliceEnd: line.length
+ };
+ }), normalizeOptions(options).sourceFileName);
- if (cacheable)
- fromStringCache[string] = lines;
+ if (cacheable)
+ fromStringCache[string] = lines;
- return lines;
+ return lines;
}
exports.fromString = fromString;
function isOnlyWhitespace(string) {
- return !/\S/.test(string);
+ return !/\S/.test(string);
}
Lp.toString = function(options) {
- return this.sliceString(this.firstPos(), this.lastPos(), options);
+ return this.sliceString(this.firstPos(), this.lastPos(), options);
};
Lp.getSourceMap = function(sourceMapName, sourceRoot) {
- if (!sourceMapName) {
- // Although we could make up a name or generate an anonymous
- // source map, instead we assume that any consumer who does not
- // provide a name does not actually want a source map.
- return null;
+ if (!sourceMapName) {
+ // Although we could make up a name or generate an anonymous
+ // source map, instead we assume that any consumer who does not
+ // provide a name does not actually want a source map.
+ return null;
+ }
+
+ var targetLines = this;
+
+ function updateJSON(json) {
+ json = json || {};
+
+ isString.assert(sourceMapName);
+ json.file = sourceMapName;
+
+ if (sourceRoot) {
+ isString.assert(sourceRoot);
+ json.sourceRoot = sourceRoot;
}
- var targetLines = this;
+ return json;
+ }
- function updateJSON(json) {
- json = json || {};
+ var secret = getSecret(targetLines);
+ if (secret.cachedSourceMap) {
+ // Since Lines objects are immutable, we can reuse any source map
+ // that was previously generated. Nevertheless, we return a new
+ // JSON object here to protect the cached source map from outside
+ // modification.
+ return updateJSON(secret.cachedSourceMap.toJSON());
+ }
- isString.assert(sourceMapName);
- json.file = sourceMapName;
+ var smg = new sourceMap.SourceMapGenerator(updateJSON());
+ var sourcesToContents = {};
- if (sourceRoot) {
- isString.assert(sourceRoot);
- json.sourceRoot = sourceRoot;
- }
+ secret.mappings.forEach(function(mapping) {
+ var sourceCursor = mapping.sourceLines.skipSpaces(
+ mapping.sourceLoc.start
+ ) || mapping.sourceLines.lastPos();
- return json;
- }
+ var targetCursor = targetLines.skipSpaces(
+ mapping.targetLoc.start
+ ) || targetLines.lastPos();
- var secret = getSecret(targetLines);
- if (secret.cachedSourceMap) {
- // Since Lines objects are immutable, we can reuse any source map
- // that was previously generated. Nevertheless, we return a new
- // JSON object here to protect the cached source map from outside
- // modification.
- return updateJSON(secret.cachedSourceMap.toJSON());
- }
+ while (comparePos(sourceCursor, mapping.sourceLoc.end) < 0 &&
+ comparePos(targetCursor, mapping.targetLoc.end) < 0) {
- var smg = new sourceMap.SourceMapGenerator(updateJSON());
- var sourcesToContents = {};
+ var sourceChar = mapping.sourceLines.charAt(sourceCursor);
+ var targetChar = targetLines.charAt(targetCursor);
+ assert.strictEqual(sourceChar, targetChar);
- secret.mappings.forEach(function(mapping) {
- var sourceCursor = mapping.sourceLines.skipSpaces(
- mapping.sourceLoc.start
- ) || mapping.sourceLines.lastPos();
-
- var targetCursor = targetLines.skipSpaces(
- mapping.targetLoc.start
- ) || targetLines.lastPos();
-
- while (comparePos(sourceCursor, mapping.sourceLoc.end) < 0 &&
- comparePos(targetCursor, mapping.targetLoc.end) < 0) {
-
- var sourceChar = mapping.sourceLines.charAt(sourceCursor);
- var targetChar = targetLines.charAt(targetCursor);
- assert.strictEqual(sourceChar, targetChar);
-
- var sourceName = mapping.sourceLines.name;
-
- // Add mappings one character at a time for maximum resolution.
- smg.addMapping({
- source: sourceName,
- original: { line: sourceCursor.line,
- column: sourceCursor.column },
- generated: { line: targetCursor.line,
- column: targetCursor.column }
- });
-
- if (!hasOwn.call(sourcesToContents, sourceName)) {
- var sourceContent = mapping.sourceLines.toString();
- smg.setSourceContent(sourceName, sourceContent);
- sourcesToContents[sourceName] = sourceContent;
- }
-
- targetLines.nextPos(targetCursor, true);
- mapping.sourceLines.nextPos(sourceCursor, true);
- }
- });
+ var sourceName = mapping.sourceLines.name;
+
+ // Add mappings one character at a time for maximum resolution.
+ smg.addMapping({
+ source: sourceName,
+ original: { line: sourceCursor.line,
+ column: sourceCursor.column },
+ generated: { line: targetCursor.line,
+ column: targetCursor.column }
+ });
- secret.cachedSourceMap = smg;
+ if (!hasOwn.call(sourcesToContents, sourceName)) {
+ var sourceContent = mapping.sourceLines.toString();
+ smg.setSourceContent(sourceName, sourceContent);
+ sourcesToContents[sourceName] = sourceContent;
+ }
+
+ targetLines.nextPos(targetCursor, true);
+ mapping.sourceLines.nextPos(sourceCursor, true);
+ }
+ });
- return smg.toJSON();
+ secret.cachedSourceMap = smg;
+
+ return smg.toJSON();
};
Lp.bootstrapCharAt = function(pos) {
- assert.strictEqual(typeof pos, "object");
- assert.strictEqual(typeof pos.line, "number");
- assert.strictEqual(typeof pos.column, "number");
+ assert.strictEqual(typeof pos, "object");
+ assert.strictEqual(typeof pos.line, "number");
+ assert.strictEqual(typeof pos.column, "number");
- var line = pos.line,
- column = pos.column,
- strings = this.toString().split(lineTerminatorSeqExp),
- string = strings[line - 1];
+ var line = pos.line,
+ column = pos.column,
+ strings = this.toString().split(lineTerminatorSeqExp),
+ string = strings[line - 1];
- if (typeof string === "undefined")
- return "";
+ if (typeof string === "undefined")
+ return "";
- if (column === string.length &&
- line < strings.length)
- return "\n";
+ if (column === string.length &&
+ line < strings.length)
+ return "\n";
- if (column >= string.length)
- return "";
+ if (column >= string.length)
+ return "";
- return string.charAt(column);
+ return string.charAt(column);
};
Lp.charAt = function(pos) {
- assert.strictEqual(typeof pos, "object");
- assert.strictEqual(typeof pos.line, "number");
- assert.strictEqual(typeof pos.column, "number");
+ assert.strictEqual(typeof pos, "object");
+ assert.strictEqual(typeof pos.line, "number");
+ assert.strictEqual(typeof pos.column, "number");
- var line = pos.line,
- column = pos.column,
- secret = getSecret(this),
- infos = secret.infos,
- info = infos[line - 1],
- c = column;
+ var line = pos.line,
+ column = pos.column,
+ secret = getSecret(this),
+ infos = secret.infos,
+ info = infos[line - 1],
+ c = column;
- if (typeof info === "undefined" || c < 0)
- return "";
+ if (typeof info === "undefined" || c < 0)
+ return "";
- var indent = this.getIndentAt(line);
- if (c < indent)
- return " ";
+ var indent = this.getIndentAt(line);
+ if (c < indent)
+ return " ";
- c += info.sliceStart - indent;
+ c += info.sliceStart - indent;
- if (c === info.sliceEnd &&
- line < this.length)
- return "\n";
+ if (c === info.sliceEnd &&
+ line < this.length)
+ return "\n";
- if (c >= info.sliceEnd)
- return "";
+ if (c >= info.sliceEnd)
+ return "";
- return info.line.charAt(c);
+ return info.line.charAt(c);
};
Lp.stripMargin = function(width, skipFirstLine) {
- if (width === 0)
- return this;
-
- assert.ok(width > 0, "negative margin: " + width);
+ if (width === 0)
+ return this;
- if (skipFirstLine && this.length === 1)
- return this;
+ assert.ok(width > 0, "negative margin: " + width);
- var secret = getSecret(this);
+ if (skipFirstLine && this.length === 1)
+ return this;
- var lines = new Lines(secret.infos.map(function(info, i) {
- if (info.line && (i > 0 || !skipFirstLine)) {
- info = copyLineInfo(info);
- info.indent = Math.max(0, info.indent - width);
- }
- return info;
- }));
+ var secret = getSecret(this);
- if (secret.mappings.length > 0) {
- var newMappings = getSecret(lines).mappings;
- assert.strictEqual(newMappings.length, 0);
- secret.mappings.forEach(function(mapping) {
- newMappings.push(mapping.indent(width, skipFirstLine, true));
- });
+ var lines = new Lines(secret.infos.map(function(info, i) {
+ if (info.line && (i > 0 || !skipFirstLine)) {
+ info = copyLineInfo(info);
+ info.indent = Math.max(0, info.indent - width);
}
+ return info;
+ }));
+
+ if (secret.mappings.length > 0) {
+ var newMappings = getSecret(lines).mappings;
+ assert.strictEqual(newMappings.length, 0);
+ secret.mappings.forEach(function(mapping) {
+ newMappings.push(mapping.indent(width, skipFirstLine, true));
+ });
+ }
- return lines;
+ return lines;
};
Lp.indent = function(by) {
- if (by === 0)
- return this;
-
- var secret = getSecret(this);
+ if (by === 0)
+ return this;
- var lines = new Lines(secret.infos.map(function(info) {
- if (info.line && ! info.locked) {
- info = copyLineInfo(info);
- info.indent += by;
- }
- return info
- }));
+ var secret = getSecret(this);
- if (secret.mappings.length > 0) {
- var newMappings = getSecret(lines).mappings;
- assert.strictEqual(newMappings.length, 0);
- secret.mappings.forEach(function(mapping) {
- newMappings.push(mapping.indent(by));
- });
+ var lines = new Lines(secret.infos.map(function(info) {
+ if (info.line && ! info.locked) {
+ info = copyLineInfo(info);
+ info.indent += by;
}
+ return info
+ }));
+
+ if (secret.mappings.length > 0) {
+ var newMappings = getSecret(lines).mappings;
+ assert.strictEqual(newMappings.length, 0);
+ secret.mappings.forEach(function(mapping) {
+ newMappings.push(mapping.indent(by));
+ });
+ }
- return lines;
+ return lines;
};
Lp.indentTail = function(by) {
- if (by === 0)
- return this;
+ if (by === 0)
+ return this;
- if (this.length < 2)
- return this;
+ if (this.length < 2)
+ return this;
- var secret = getSecret(this);
+ var secret = getSecret(this);
- var lines = new Lines(secret.infos.map(function(info, i) {
- if (i > 0 && info.line && ! info.locked) {
- info = copyLineInfo(info);
- info.indent += by;
- }
+ var lines = new Lines(secret.infos.map(function(info, i) {
+ if (i > 0 && info.line && ! info.locked) {
+ info = copyLineInfo(info);
+ info.indent += by;
+ }
- return info;
- }));
+ return info;
+ }));
- if (secret.mappings.length > 0) {
- var newMappings = getSecret(lines).mappings;
- assert.strictEqual(newMappings.length, 0);
- secret.mappings.forEach(function(mapping) {
- newMappings.push(mapping.indent(by, true));
- });
- }
+ if (secret.mappings.length > 0) {
+ var newMappings = getSecret(lines).mappings;
+ assert.strictEqual(newMappings.length, 0);
+ secret.mappings.forEach(function(mapping) {
+ newMappings.push(mapping.indent(by, true));
+ });
+ }
- return lines;
+ return lines;
};
Lp.lockIndentTail = function () {
- if (this.length < 2) {
- return this;
- }
+ if (this.length < 2) {
+ return this;
+ }
- var infos = getSecret(this).infos;
+ var infos = getSecret(this).infos;
- return new Lines(infos.map(function (info, i) {
- info = copyLineInfo(info);
- info.locked = i > 0;
- return info;
- }));
+ return new Lines(infos.map(function (info, i) {
+ info = copyLineInfo(info);
+ info.locked = i > 0;
+ return info;
+ }));
};
Lp.getIndentAt = function(line) {
- assert.ok(line >= 1, "no line " + line + " (line numbers start from 1)");
- var secret = getSecret(this),
- info = secret.infos[line - 1];
- return Math.max(info.indent, 0);
+ assert.ok(line >= 1, "no line " + line + " (line numbers start from 1)");
+ var secret = getSecret(this),
+ info = secret.infos[line - 1];
+ return Math.max(info.indent, 0);
};
Lp.guessTabWidth = function() {
- var secret = getSecret(this);
- if (hasOwn.call(secret, "cachedTabWidth")) {
- return secret.cachedTabWidth;
- }
+ var secret = getSecret(this);
+ if (hasOwn.call(secret, "cachedTabWidth")) {
+ return secret.cachedTabWidth;
+ }
- var counts = []; // Sparse array.
- var lastIndent = 0;
+ var counts = []; // Sparse array.
+ var lastIndent = 0;
- for (var line = 1, last = this.length; line <= last; ++line) {
- var info = secret.infos[line - 1];
- var sliced = info.line.slice(info.sliceStart, info.sliceEnd);
+ for (var line = 1, last = this.length; line <= last; ++line) {
+ var info = secret.infos[line - 1];
+ var sliced = info.line.slice(info.sliceStart, info.sliceEnd);
- // Whitespace-only lines don't tell us much about the likely tab
- // width of this code.
- if (isOnlyWhitespace(sliced)) {
- continue;
- }
-
- var diff = Math.abs(info.indent - lastIndent);
- counts[diff] = ~~counts[diff] + 1;
- lastIndent = info.indent;
+ // Whitespace-only lines don't tell us much about the likely tab
+ // width of this code.
+ if (isOnlyWhitespace(sliced)) {
+ continue;
}
- var maxCount = -1;
- var result = 2;
-
- for (var tabWidth = 1;
- tabWidth < counts.length;
- tabWidth += 1) {
- if (hasOwn.call(counts, tabWidth) &&
- counts[tabWidth] > maxCount) {
- maxCount = counts[tabWidth];
- result = tabWidth;
- }
+ var diff = Math.abs(info.indent - lastIndent);
+ counts[diff] = ~~counts[diff] + 1;
+ lastIndent = info.indent;
+ }
+
+ var maxCount = -1;
+ var result = 2;
+
+ for (var tabWidth = 1;
+ tabWidth < counts.length;
+ tabWidth += 1) {
+ if (hasOwn.call(counts, tabWidth) &&
+ counts[tabWidth] > maxCount) {
+ maxCount = counts[tabWidth];
+ result = tabWidth;
}
+ }
- return secret.cachedTabWidth = result;
+ return secret.cachedTabWidth = result;
};
// Determine if the list of lines has a first line that starts with a //
// or /* comment. If this is the case, the code may need to be wrapped in
// parens to avoid ASI issues.
Lp.startsWithComment = function () {
- var secret = getSecret(this);
- if (secret.infos.length === 0) {
- return false;
- }
- var firstLineInfo = secret.infos[0],
- sliceStart = firstLineInfo.sliceStart,
- sliceEnd = firstLineInfo.sliceEnd,
- firstLine = firstLineInfo.line.slice(sliceStart, sliceEnd).trim();
- return firstLine.length === 0 ||
- firstLine.slice(0, 2) === "//" ||
- firstLine.slice(0, 2) === "/*";
+ var secret = getSecret(this);
+ if (secret.infos.length === 0) {
+ return false;
+ }
+ var firstLineInfo = secret.infos[0],
+ sliceStart = firstLineInfo.sliceStart,
+ sliceEnd = firstLineInfo.sliceEnd,
+ firstLine = firstLineInfo.line.slice(sliceStart, sliceEnd).trim();
+ return firstLine.length === 0 ||
+ firstLine.slice(0, 2) === "//" ||
+ firstLine.slice(0, 2) === "/*";
};
Lp.isOnlyWhitespace = function() {
- return isOnlyWhitespace(this.toString());
+ return isOnlyWhitespace(this.toString());
};
Lp.isPrecededOnlyByWhitespace = function(pos) {
- var secret = getSecret(this);
- var info = secret.infos[pos.line - 1];
- var indent = Math.max(info.indent, 0);
-
- var diff = pos.column - indent;
- if (diff <= 0) {
- // If pos.column does not exceed the indentation amount, then
- // there must be only whitespace before it.
- return true;
- }
-
- var start = info.sliceStart;
- var end = Math.min(start + diff, info.sliceEnd);
- var prefix = info.line.slice(start, end);
-
- return isOnlyWhitespace(prefix);
+ var secret = getSecret(this);
+ var info = secret.infos[pos.line - 1];
+ var indent = Math.max(info.indent, 0);
+
+ var diff = pos.column - indent;
+ if (diff <= 0) {
+ // If pos.column does not exceed the indentation amount, then
+ // there must be only whitespace before it.
+ return true;
+ }
+
+ var start = info.sliceStart;
+ var end = Math.min(start + diff, info.sliceEnd);
+ var prefix = info.line.slice(start, end);
+
+ return isOnlyWhitespace(prefix);
};
Lp.getLineLength = function(line) {
- var secret = getSecret(this),
- info = secret.infos[line - 1];
- return this.getIndentAt(line) + info.sliceEnd - info.sliceStart;
+ var secret = getSecret(this),
+ info = secret.infos[line - 1];
+ return this.getIndentAt(line) + info.sliceEnd - info.sliceStart;
};
Lp.nextPos = function(pos, skipSpaces) {
- var l = Math.max(pos.line, 0),
- c = Math.max(pos.column, 0);
+ var l = Math.max(pos.line, 0),
+ c = Math.max(pos.column, 0);
- if (c < this.getLineLength(l)) {
- pos.column += 1;
+ if (c < this.getLineLength(l)) {
+ pos.column += 1;
- return skipSpaces
- ? !!this.skipSpaces(pos, false, true)
- : true;
- }
+ return skipSpaces
+ ? !!this.skipSpaces(pos, false, true)
+ : true;
+ }
- if (l < this.length) {
- pos.line += 1;
- pos.column = 0;
+ if (l < this.length) {
+ pos.line += 1;
+ pos.column = 0;
- return skipSpaces
- ? !!this.skipSpaces(pos, false, true)
- : true;
- }
+ return skipSpaces
+ ? !!this.skipSpaces(pos, false, true)
+ : true;
+ }
- return false;
+ return false;
};
Lp.prevPos = function(pos, skipSpaces) {
- var l = pos.line,
- c = pos.column;
+ var l = pos.line,
+ c = pos.column;
- if (c < 1) {
- l -= 1;
+ if (c < 1) {
+ l -= 1;
- if (l < 1)
- return false;
+ if (l < 1)
+ return false;
- c = this.getLineLength(l);
+ c = this.getLineLength(l);
- } else {
- c = Math.min(c - 1, this.getLineLength(l));
- }
+ } else {
+ c = Math.min(c - 1, this.getLineLength(l));
+ }
- pos.line = l;
- pos.column = c;
+ pos.line = l;
+ pos.column = c;
- return skipSpaces
- ? !!this.skipSpaces(pos, true, true)
- : true;
+ return skipSpaces
+ ? !!this.skipSpaces(pos, true, true)
+ : true;
};
Lp.firstPos = function() {
- // Trivial, but provided for completeness.
- return { line: 1, column: 0 };
+ // Trivial, but provided for completeness.
+ return { line: 1, column: 0 };
};
Lp.lastPos = function() {
- return {
- line: this.length,
- column: this.getLineLength(this.length)
- };
+ return {
+ line: this.length,
+ column: this.getLineLength(this.length)
+ };
};
Lp.skipSpaces = function(pos, backward, modifyInPlace) {
- if (pos) {
- pos = modifyInPlace ? pos : {
- line: pos.line,
- column: pos.column
- };
- } else if (backward) {
- pos = this.lastPos();
- } else {
- pos = this.firstPos();
+ if (pos) {
+ pos = modifyInPlace ? pos : {
+ line: pos.line,
+ column: pos.column
+ };
+ } else if (backward) {
+ pos = this.lastPos();
+ } else {
+ pos = this.firstPos();
+ }
+
+ if (backward) {
+ while (this.prevPos(pos)) {
+ if (!isOnlyWhitespace(this.charAt(pos)) &&
+ this.nextPos(pos)) {
+ return pos;
+ }
}
- if (backward) {
- while (this.prevPos(pos)) {
- if (!isOnlyWhitespace(this.charAt(pos)) &&
- this.nextPos(pos)) {
- return pos;
- }
- }
+ return null;
+ } else {
+ while (isOnlyWhitespace(this.charAt(pos))) {
+ if (!this.nextPos(pos)) {
return null;
-
- } else {
- while (isOnlyWhitespace(this.charAt(pos))) {
- if (!this.nextPos(pos)) {
- return null;
- }
- }
-
- return pos;
+ }
}
+
+ return pos;
+ }
};
Lp.trimLeft = function() {
- var pos = this.skipSpaces(this.firstPos(), false, true);
- return pos ? this.slice(pos) : emptyLines;
+ var pos = this.skipSpaces(this.firstPos(), false, true);
+ return pos ? this.slice(pos) : emptyLines;
};
Lp.trimRight = function() {
- var pos = this.skipSpaces(this.lastPos(), true, true);
- return pos ? this.slice(this.firstPos(), pos) : emptyLines;
+ var pos = this.skipSpaces(this.lastPos(), true, true);
+ return pos ? this.slice(this.firstPos(), pos) : emptyLines;
};
Lp.trim = function() {
- var start = this.skipSpaces(this.firstPos(), false, true);
- if (start === null)
- return emptyLines;
+ var start = this.skipSpaces(this.firstPos(), false, true);
+ if (start === null)
+ return emptyLines;
- var end = this.skipSpaces(this.lastPos(), true, true);
- assert.notStrictEqual(end, null);
+ var end = this.skipSpaces(this.lastPos(), true, true);
+ assert.notStrictEqual(end, null);
- return this.slice(start, end);
+ return this.slice(start, end);
};
Lp.eachPos = function(callback, startPos, skipSpaces) {
- var pos = this.firstPos();
+ var pos = this.firstPos();
- if (startPos) {
- pos.line = startPos.line,
- pos.column = startPos.column
- }
+ if (startPos) {
+ pos.line = startPos.line,
+ pos.column = startPos.column
+ }
- if (skipSpaces && !this.skipSpaces(pos, false, true)) {
- return; // Encountered nothing but spaces.
- }
+ if (skipSpaces && !this.skipSpaces(pos, false, true)) {
+ return; // Encountered nothing but spaces.
+ }
- do callback.call(this, pos);
- while (this.nextPos(pos, skipSpaces));
+ do callback.call(this, pos);
+ while (this.nextPos(pos, skipSpaces));
};
Lp.bootstrapSlice = function(start, end) {
- var strings = this.toString().split(
- lineTerminatorSeqExp
- ).slice(
- start.line - 1,
- end.line
- );
+ var strings = this.toString().split(
+ lineTerminatorSeqExp
+ ).slice(
+ start.line - 1,
+ end.line
+ );
- strings.push(strings.pop().slice(0, end.column));
- strings[0] = strings[0].slice(start.column);
+ strings.push(strings.pop().slice(0, end.column));
+ strings[0] = strings[0].slice(start.column);
- return fromString(strings.join("\n"));
+ return fromString(strings.join("\n"));
};
Lp.slice = function(start, end) {
- if (!end) {
- if (!start) {
- // The client seems to want a copy of this Lines object, but
- // Lines objects are immutable, so it's perfectly adequate to
- // return the same object.
- return this;
- }
-
- // Slice to the end if no end position was provided.
- end = this.lastPos();
- }
-
- var secret = getSecret(this);
- var sliced = secret.infos.slice(start.line - 1, end.line);
-
- if (start.line === end.line) {
- sliced[0] = sliceInfo(sliced[0], start.column, end.column);
- } else {
- assert.ok(start.line < end.line);
- sliced[0] = sliceInfo(sliced[0], start.column);
- sliced.push(sliceInfo(sliced.pop(), 0, end.column));
- }
-
- var lines = new Lines(sliced);
-
- if (secret.mappings.length > 0) {
- var newMappings = getSecret(lines).mappings;
- assert.strictEqual(newMappings.length, 0);
- secret.mappings.forEach(function(mapping) {
- var sliced = mapping.slice(this, start, end);
- if (sliced) {
- newMappings.push(sliced);
- }
- }, this);
- }
-
- return lines;
+ if (!end) {
+ if (!start) {
+ // The client seems to want a copy of this Lines object, but
+ // Lines objects are immutable, so it's perfectly adequate to
+ // return the same object.
+ return this;
+ }
+
+ // Slice to the end if no end position was provided.
+ end = this.lastPos();
+ }
+
+ var secret = getSecret(this);
+ var sliced = secret.infos.slice(start.line - 1, end.line);
+
+ if (start.line === end.line) {
+ sliced[0] = sliceInfo(sliced[0], start.column, end.column);
+ } else {
+ assert.ok(start.line < end.line);
+ sliced[0] = sliceInfo(sliced[0], start.column);
+ sliced.push(sliceInfo(sliced.pop(), 0, end.column));
+ }
+
+ var lines = new Lines(sliced);
+
+ if (secret.mappings.length > 0) {
+ var newMappings = getSecret(lines).mappings;
+ assert.strictEqual(newMappings.length, 0);
+ secret.mappings.forEach(function(mapping) {
+ var sliced = mapping.slice(this, start, end);
+ if (sliced) {
+ newMappings.push(sliced);
+ }
+ }, this);
+ }
+
+ return lines;
};
function sliceInfo(info, startCol, endCol) {
- var sliceStart = info.sliceStart;
- var sliceEnd = info.sliceEnd;
- var indent = Math.max(info.indent, 0);
- var lineLength = indent + sliceEnd - sliceStart;
-
- if (typeof endCol === "undefined") {
- endCol = lineLength;
- }
-
- startCol = Math.max(startCol, 0);
- endCol = Math.min(endCol, lineLength);
- endCol = Math.max(endCol, startCol);
-
- if (endCol < indent) {
- indent = endCol;
- sliceEnd = sliceStart;
- } else {
- sliceEnd -= lineLength - endCol;
- }
-
- lineLength = endCol;
- lineLength -= startCol;
-
- if (startCol < indent) {
- indent -= startCol;
- } else {
- startCol -= indent;
- indent = 0;
- sliceStart += startCol;
- }
-
- assert.ok(indent >= 0);
- assert.ok(sliceStart <= sliceEnd);
- assert.strictEqual(lineLength, indent + sliceEnd - sliceStart);
-
- if (info.indent === indent &&
- info.sliceStart === sliceStart &&
- info.sliceEnd === sliceEnd) {
- return info;
- }
-
- return {
- line: info.line,
- indent: indent,
- // A destructive slice always unlocks indentation.
- locked: false,
- sliceStart: sliceStart,
- sliceEnd: sliceEnd
- };
+ var sliceStart = info.sliceStart;
+ var sliceEnd = info.sliceEnd;
+ var indent = Math.max(info.indent, 0);
+ var lineLength = indent + sliceEnd - sliceStart;
+
+ if (typeof endCol === "undefined") {
+ endCol = lineLength;
+ }
+
+ startCol = Math.max(startCol, 0);
+ endCol = Math.min(endCol, lineLength);
+ endCol = Math.max(endCol, startCol);
+
+ if (endCol < indent) {
+ indent = endCol;
+ sliceEnd = sliceStart;
+ } else {
+ sliceEnd -= lineLength - endCol;
+ }
+
+ lineLength = endCol;
+ lineLength -= startCol;
+
+ if (startCol < indent) {
+ indent -= startCol;
+ } else {
+ startCol -= indent;
+ indent = 0;
+ sliceStart += startCol;
+ }
+
+ assert.ok(indent >= 0);
+ assert.ok(sliceStart <= sliceEnd);
+ assert.strictEqual(lineLength, indent + sliceEnd - sliceStart);
+
+ if (info.indent === indent &&
+ info.sliceStart === sliceStart &&
+ info.sliceEnd === sliceEnd) {
+ return info;
+ }
+
+ return {
+ line: info.line,
+ indent: indent,
+ // A destructive slice always unlocks indentation.
+ locked: false,
+ sliceStart: sliceStart,
+ sliceEnd: sliceEnd
+ };
}
Lp.bootstrapSliceString = function(start, end, options) {
- return this.slice(start, end).toString(options);
+ return this.slice(start, end).toString(options);
};
Lp.sliceString = function(start, end, options) {
- if (!end) {
- if (!start) {
- // The client seems to want a copy of this Lines object, but
- // Lines objects are immutable, so it's perfectly adequate to
- // return the same object.
- return this;
- }
-
- // Slice to the end if no end position was provided.
- end = this.lastPos();
+ if (!end) {
+ if (!start) {
+ // The client seems to want a copy of this Lines object, but
+ // Lines objects are immutable, so it's perfectly adequate to
+ // return the same object.
+ return this;
}
- options = normalizeOptions(options);
-
- var infos = getSecret(this).infos;
- var parts = [];
- var tabWidth = options.tabWidth;
+ // Slice to the end if no end position was provided.
+ end = this.lastPos();
+ }
- for (var line = start.line; line <= end.line; ++line) {
- var info = infos[line - 1];
+ options = normalizeOptions(options);
- if (line === start.line) {
- if (line === end.line) {
- info = sliceInfo(info, start.column, end.column);
- } else {
- info = sliceInfo(info, start.column);
- }
- } else if (line === end.line) {
- info = sliceInfo(info, 0, end.column);
- }
+ var infos = getSecret(this).infos;
+ var parts = [];
+ var tabWidth = options.tabWidth;
- var indent = Math.max(info.indent, 0);
+ for (var line = start.line; line <= end.line; ++line) {
+ var info = infos[line - 1];
- var before = info.line.slice(0, info.sliceStart);
- if (options.reuseWhitespace &&
- isOnlyWhitespace(before) &&
- countSpaces(before, options.tabWidth) === indent) {
- // Reuse original spaces if the indentation is correct.
- parts.push(info.line.slice(0, info.sliceEnd));
- continue;
- }
+ if (line === start.line) {
+ if (line === end.line) {
+ info = sliceInfo(info, start.column, end.column);
+ } else {
+ info = sliceInfo(info, start.column);
+ }
+ } else if (line === end.line) {
+ info = sliceInfo(info, 0, end.column);
+ }
- var tabs = 0;
- var spaces = indent;
+ var indent = Math.max(info.indent, 0);
- if (options.useTabs) {
- tabs = Math.floor(indent / tabWidth);
- spaces -= tabs * tabWidth;
- }
+ var before = info.line.slice(0, info.sliceStart);
+ if (options.reuseWhitespace &&
+ isOnlyWhitespace(before) &&
+ countSpaces(before, options.tabWidth) === indent) {
+ // Reuse original spaces if the indentation is correct.
+ parts.push(info.line.slice(0, info.sliceEnd));
+ continue;
+ }
- var result = "";
+ var tabs = 0;
+ var spaces = indent;
- if (tabs > 0) {
- result += new Array(tabs + 1).join("\t");
- }
+ if (options.useTabs) {
+ tabs = Math.floor(indent / tabWidth);
+ spaces -= tabs * tabWidth;
+ }
- if (spaces > 0) {
- result += new Array(spaces + 1).join(" ");
- }
+ var result = "";
- result += info.line.slice(info.sliceStart, info.sliceEnd);
+ if (tabs > 0) {
+ result += new Array(tabs + 1).join("\t");
+ }
- parts.push(result);
+ if (spaces > 0) {
+ result += new Array(spaces + 1).join(" ");
}
- return parts.join(options.lineTerminator);
+ result += info.line.slice(info.sliceStart, info.sliceEnd);
+
+ parts.push(result);
+ }
+
+ return parts.join(options.lineTerminator);
};
Lp.isEmpty = function() {
- return this.length < 2 && this.getLineLength(1) < 1;
+ return this.length < 2 && this.getLineLength(1) < 1;
};
Lp.join = function(elements) {
- var separator = this;
- var separatorSecret = getSecret(separator);
- var infos = [];
- var mappings = [];
- var prevInfo;
-
- function appendSecret(secret) {
- if (secret === null)
- return;
-
- if (prevInfo) {
- var info = secret.infos[0];
- var indent = new Array(info.indent + 1).join(" ");
- var prevLine = infos.length;
- var prevColumn = Math.max(prevInfo.indent, 0) +
- prevInfo.sliceEnd - prevInfo.sliceStart;
-
- prevInfo.line = prevInfo.line.slice(
- 0, prevInfo.sliceEnd) + indent + info.line.slice(
- info.sliceStart, info.sliceEnd);
-
- // If any part of a line is indentation-locked, the whole line
- // will be indentation-locked.
- prevInfo.locked = prevInfo.locked || info.locked;
-
- prevInfo.sliceEnd = prevInfo.line.length;
-
- if (secret.mappings.length > 0) {
- secret.mappings.forEach(function(mapping) {
- mappings.push(mapping.add(prevLine, prevColumn));
- });
- }
-
- } else if (secret.mappings.length > 0) {
- mappings.push.apply(mappings, secret.mappings);
- }
-
- secret.infos.forEach(function(info, i) {
- if (!prevInfo || i > 0) {
- prevInfo = copyLineInfo(info);
- infos.push(prevInfo);
- }
+ var separator = this;
+ var separatorSecret = getSecret(separator);
+ var infos = [];
+ var mappings = [];
+ var prevInfo;
+
+ function appendSecret(secret) {
+ if (secret === null)
+ return;
+
+ if (prevInfo) {
+ var info = secret.infos[0];
+ var indent = new Array(info.indent + 1).join(" ");
+ var prevLine = infos.length;
+ var prevColumn = Math.max(prevInfo.indent, 0) +
+ prevInfo.sliceEnd - prevInfo.sliceStart;
+
+ prevInfo.line = prevInfo.line.slice(
+ 0, prevInfo.sliceEnd) + indent + info.line.slice(
+ info.sliceStart, info.sliceEnd);
+
+ // If any part of a line is indentation-locked, the whole line
+ // will be indentation-locked.
+ prevInfo.locked = prevInfo.locked || info.locked;
+
+ prevInfo.sliceEnd = prevInfo.line.length;
+
+ if (secret.mappings.length > 0) {
+ secret.mappings.forEach(function(mapping) {
+ mappings.push(mapping.add(prevLine, prevColumn));
});
- }
+ }
- function appendWithSeparator(secret, i) {
- if (i > 0)
- appendSecret(separatorSecret);
- appendSecret(secret);
+ } else if (secret.mappings.length > 0) {
+ mappings.push.apply(mappings, secret.mappings);
}
- elements.map(function(elem) {
- var lines = fromString(elem);
- if (lines.isEmpty())
- return null;
- return getSecret(lines);
- }).forEach(separator.isEmpty()
- ? appendSecret
- : appendWithSeparator);
+ secret.infos.forEach(function(info, i) {
+ if (!prevInfo || i > 0) {
+ prevInfo = copyLineInfo(info);
+ infos.push(prevInfo);
+ }
+ });
+ }
+
+ function appendWithSeparator(secret, i) {
+ if (i > 0)
+ appendSecret(separatorSecret);
+ appendSecret(secret);
+ }
+
+ elements.map(function(elem) {
+ var lines = fromString(elem);
+ if (lines.isEmpty())
+ return null;
+ return getSecret(lines);
+ }).forEach(separator.isEmpty()
+ ? appendSecret
+ : appendWithSeparator);
- if (infos.length < 1)
- return emptyLines;
+ if (infos.length < 1)
+ return emptyLines;
- var lines = new Lines(infos);
+ var lines = new Lines(infos);
- getSecret(lines).mappings = mappings;
+ getSecret(lines).mappings = mappings;
- return lines;
+ return lines;
};
exports.concat = function(elements) {
- return emptyLines.join(elements);
+ return emptyLines.join(elements);
};
Lp.concat = function(other) {
- var args = arguments,
- list = [this];
- list.push.apply(list, args);
- assert.strictEqual(list.length, args.length + 1);
- return emptyLines.join(list);
+ var args = arguments,
+ list = [this];
+ list.push.apply(list, args);
+ assert.strictEqual(list.length, args.length + 1);
+ return emptyLines.join(list);
};
// The emptyLines object needs to be created all the way down here so that
diff --git a/lib/printer.js b/lib/printer.js
index 2040b1b..dfcaed1 100644
--- a/lib/printer.js
+++ b/lib/printer.js
@@ -306,6 +306,7 @@ function genericPrintNoParens(path, options, print) {
case "RestProperty": // Babel 6 for ObjectPattern
case "SpreadProperty":
case "SpreadPropertyPattern":
+ case "ObjectTypeSpreadProperty":
case "RestElement":
return concat(["...", path.call(print, "argument")]);
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..4c3409e
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1094 @@
+{
+ "name": "recast",
+ "version": "0.12.7",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "acorn": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz",
+ "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "ast-types": {
+ "version": "0.9.12",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.12.tgz",
+ "integrity": "sha1-sTYwDWcCZiWuFTJpgsqZGOXbc8k="
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
+ }
+ },
+ "babel-core": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
+ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-generator": "6.26.0",
+ "babel-helpers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "convert-source-map": "1.5.0",
+ "debug": "2.6.9",
+ "json5": "0.5.1",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4",
+ "path-is-absolute": "1.0.1",
+ "private": "0.1.7",
+ "slash": "1.0.0",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
+ "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
+ "dev": true,
+ "requires": {
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "4.17.4",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "dev": true,
+ "requires": {
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "dev": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helpers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-define-map": "6.26.0",
+ "babel-helper-function-name": "6.24.1",
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
+ "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "dev": true,
+ "requires": {
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "dev": true,
+ "requires": {
+ "babel-helper-call-delegate": "6.24.1",
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "regexpu-core": "2.0.0"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "0.10.1"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-preset-es2015": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
+ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-check-es2015-constants": "6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "6.26.0",
+ "babel-plugin-transform-es2015-classes": "6.24.1",
+ "babel-plugin-transform-es2015-computed-properties": "6.24.1",
+ "babel-plugin-transform-es2015-destructuring": "6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
+ "babel-plugin-transform-es2015-for-of": "6.23.0",
+ "babel-plugin-transform-es2015-function-name": "6.24.1",
+ "babel-plugin-transform-es2015-literals": "6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
+ "babel-plugin-transform-es2015-modules-umd": "6.24.1",
+ "babel-plugin-transform-es2015-object-super": "6.24.1",
+ "babel-plugin-transform-es2015-parameters": "6.24.1",
+ "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
+ "babel-plugin-transform-es2015-spread": "6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
+ "babel-plugin-transform-es2015-template-literals": "6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
+ "babel-plugin-transform-regenerator": "6.26.0"
+ }
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.1",
+ "home-or-tmp": "2.0.0",
+ "lodash": "4.17.4",
+ "mkdirp": "0.5.1",
+ "source-map-support": "0.4.18"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "2.5.1",
+ "regenerator-runtime": "0.11.0"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
+ "globals": "9.18.0",
+ "invariant": "2.2.2",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.4",
+ "to-fast-properties": "1.0.3"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
+ "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "diff": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+ "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw=="
+ },
+ "esprima-fb": {
+ "version": "15001.1001.0-dev-harmony-fb",
+ "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz",
+ "integrity": "sha1-Q761fsJujPI3092LM+QlM1d/Jlk=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "flow-parser": {
+ "version": "0.55.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.55.0.tgz",
+ "integrity": "sha1-BpLEVSHC8X7jHh85kuWHlo25Ef8=",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
+ "dev": true
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "dev": true,
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "dev": true,
+ "requires": {
+ "js-tokens": "3.0.2"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "minipass": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz",
+ "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==",
+ "dev": true,
+ "requires": {
+ "yallist": "3.0.2"
+ }
+ },
+ "minizlib": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.0.3.tgz",
+ "integrity": "sha1-1cGr93vhVGGZUuJTM27Mq5sqMvU=",
+ "dev": true,
+ "requires": {
+ "minipass": "2.2.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "mocha": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.0.1.tgz",
+ "integrity": "sha512-evDmhkoA+cBNiQQQdSKZa2b9+W2mpLoj50367lhy+Klnx9OV8XlCIhigUnn1gaTFLQCa0kdNhEGDr0hCXOQFDw==",
+ "dev": true,
+ "requires": {
+ "browser-stdout": "1.3.0",
+ "commander": "2.11.0",
+ "debug": "3.1.0",
+ "diff": "3.3.1",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "growl": "1.10.3",
+ "he": "1.1.1",
+ "mkdirp": "0.5.1",
+ "supports-color": "4.4.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "private": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
+ "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE="
+ },
+ "regenerate": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
+ "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "private": "0.1.7"
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "1.3.3",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "reify": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/reify/-/reify-0.12.3.tgz",
+ "integrity": "sha512-s13k0kuZbhBzeRoJQGomWnLj2y10wK3FYXRXbZoydowAMmY0jTiFN98TgLkaE8uZkVCaoq3djnDo7mksWLsx4g==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.1.2",
+ "minizlib": "1.0.3",
+ "semver": "5.4.1"
+ }
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
+ "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index 39269e9..5bf22b1 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"parsing",
"pretty-printing"
],
- "version": "0.12.6",
+ "version": "0.12.7",
"homepage": "http://github.com/benjamn/recast",
"repository": {
"type": "git",
@@ -28,19 +28,20 @@
"fs": false
},
"dependencies": {
- "ast-types": "0.9.11",
+ "ast-types": "0.9.12",
"core-js": "^2.4.1",
"esprima": "~4.0.0",
"private": "~0.1.5",
- "source-map": "~0.5.0"
+ "source-map": "~0.6.1"
},
"devDependencies": {
"babel-core": "^6.23.1",
"babel-preset-es2015": "^6.22.0",
- "babylon": "~6.17.0",
+ "babylon": "~6.18.0",
"esprima-fb": "^15001.1001.0-dev-harmony-fb",
- "mocha": "~3.4.2",
- "reify": "^0.11.21",
+ "mocha": "~4.0.1",
+ "flow-parser": "^0.55.0",
+ "reify": "^0.12.3",
"semver": "^5.3.0"
},
"engines": {
diff --git a/test/type-syntax.js b/test/type-syntax.js
index 723b215..0df12ca 100644
--- a/test/type-syntax.js
+++ b/test/type-syntax.js
@@ -8,11 +8,15 @@ var eol = require("os").EOL;
describe("type syntax", function() {
var printer = new Printer({ tabWidth: 2, quote: 'single', flowObjectCommas: false });
- var parseOptions = {
+ var esprimaParserParseOptions = {
parser: require("esprima-fb")
};
+ var flowParserParseOptions = {
+ parser: require("flow-parser")
+ };
- function check(source) {
+ function check(source, parseOptions) {
+ parseOptions = parseOptions || esprimaParserParseOptions;
var ast1 = parse(source, parseOptions);
var code = printer.printGenerically(ast1).code;
var ast2 = parse(code, parseOptions);
@@ -50,7 +54,10 @@ describe("type syntax", function() {
// Type aliases
check("type A = B;");
check("type A = B.C;");
- check("type A = { optionalNumber?: number };")
+ check("type A = { optionalNumber?: number };");
+ check("type A = {" + eol + " ...B;" + eol + " optionalNumber?: number;" + eol + "};", flowParserParseOptions);
+ check("type A = {| optionalNumber?: number |};", flowParserParseOptions);
+ check("type A = {|" + eol + " ...B;" + eol + " optionalNumber?: number;" + eol + "|};", flowParserParseOptions);
// Generic
check("var a: Array<Foo>;");
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..8f39d85
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,827 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+acorn@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+ast-types at 0.9.12:
+ version "0.9.12"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.12.tgz#b136300d67026625ae15326982ca9918e5db73c9"
+
+babel-code-frame@^6.26.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"
+
+babel-core@^6.23.1, babel-core@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-generator "^6.26.0"
+ babel-helpers "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-register "^6.26.0"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ convert-source-map "^1.5.0"
+ debug "^2.6.8"
+ json5 "^0.5.1"
+ lodash "^4.17.4"
+ minimatch "^3.0.4"
+ path-is-absolute "^1.0.1"
+ private "^0.1.7"
+ slash "^1.0.0"
+ source-map "^0.5.6"
+
+babel-generator@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5"
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.17.4"
+ source-map "^0.5.6"
+ trim-right "^1.0.1"
+
+babel-helper-call-delegate@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
+ dependencies:
+ babel-helper-hoist-variables "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-helper-define-map@^6.24.1:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
+ dependencies:
+ babel-helper-function-name "^6.24.1"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ lodash "^4.17.4"
+
+babel-helper-function-name@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
+ dependencies:
+ babel-helper-get-function-arity "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-helper-get-function-arity@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-helper-hoist-variables@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-helper-optimise-call-expression@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-helper-regex@^6.24.1:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ lodash "^4.17.4"
+
+babel-helper-replace-supers@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
+ dependencies:
+ babel-helper-optimise-call-expression "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-helpers@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-messages@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-check-es2015-constants@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-arrow-functions@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-block-scoping@^6.24.1:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ lodash "^4.17.4"
+
+babel-plugin-transform-es2015-classes@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
+ dependencies:
+ babel-helper-define-map "^6.24.1"
+ babel-helper-function-name "^6.24.1"
+ babel-helper-optimise-call-expression "^6.24.1"
+ babel-helper-replace-supers "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-computed-properties@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-plugin-transform-es2015-destructuring@^6.22.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-duplicate-keys@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-for-of@^6.22.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-function-name@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
+ dependencies:
+ babel-helper-function-name "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-literals@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-modules-amd@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154"
+ dependencies:
+ babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
+ dependencies:
+ babel-plugin-transform-strict-mode "^6.24.1"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-types "^6.26.0"
+
+babel-plugin-transform-es2015-modules-systemjs@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
+ dependencies:
+ babel-helper-hoist-variables "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-plugin-transform-es2015-modules-umd@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468"
+ dependencies:
+ babel-plugin-transform-es2015-modules-amd "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-plugin-transform-es2015-object-super@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
+ dependencies:
+ babel-helper-replace-supers "^6.24.1"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-parameters@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
+ dependencies:
+ babel-helper-call-delegate "^6.24.1"
+ babel-helper-get-function-arity "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-shorthand-properties@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-spread@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-sticky-regex@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
+ dependencies:
+ babel-helper-regex "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-template-literals@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-typeof-symbol@^6.22.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-unicode-regex@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
+ dependencies:
+ babel-helper-regex "^6.24.1"
+ babel-runtime "^6.22.0"
+ regexpu-core "^2.0.0"
+
+babel-plugin-transform-regenerator@^6.24.1:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
+ dependencies:
+ regenerator-transform "^0.10.0"
+
+babel-plugin-transform-strict-mode@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-preset-es2015@^6.22.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
+ dependencies:
+ babel-plugin-check-es2015-constants "^6.22.0"
+ babel-plugin-transform-es2015-arrow-functions "^6.22.0"
+ babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
+ babel-plugin-transform-es2015-block-scoping "^6.24.1"
+ babel-plugin-transform-es2015-classes "^6.24.1"
+ babel-plugin-transform-es2015-computed-properties "^6.24.1"
+ babel-plugin-transform-es2015-destructuring "^6.22.0"
+ babel-plugin-transform-es2015-duplicate-keys "^6.24.1"
+ babel-plugin-transform-es2015-for-of "^6.22.0"
+ babel-plugin-transform-es2015-function-name "^6.24.1"
+ babel-plugin-transform-es2015-literals "^6.22.0"
+ babel-plugin-transform-es2015-modules-amd "^6.24.1"
+ babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
+ babel-plugin-transform-es2015-modules-systemjs "^6.24.1"
+ babel-plugin-transform-es2015-modules-umd "^6.24.1"
+ babel-plugin-transform-es2015-object-super "^6.24.1"
+ babel-plugin-transform-es2015-parameters "^6.24.1"
+ babel-plugin-transform-es2015-shorthand-properties "^6.24.1"
+ babel-plugin-transform-es2015-spread "^6.22.0"
+ babel-plugin-transform-es2015-sticky-regex "^6.24.1"
+ babel-plugin-transform-es2015-template-literals "^6.22.0"
+ babel-plugin-transform-es2015-typeof-symbol "^6.22.0"
+ babel-plugin-transform-es2015-unicode-regex "^6.24.1"
+ babel-plugin-transform-regenerator "^6.24.1"
+
+babel-register@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
+ dependencies:
+ babel-core "^6.26.0"
+ babel-runtime "^6.26.0"
+ core-js "^2.5.0"
+ home-or-tmp "^2.0.0"
+ lodash "^4.17.4"
+ mkdirp "^0.5.1"
+ source-map-support "^0.4.15"
+
+babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+babel-template@^6.24.1, babel-template@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ lodash "^4.17.4"
+
+babel-traverse@^6.24.1, babel-traverse@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ debug "^2.6.8"
+ globals "^9.18.0"
+ invariant "^2.2.2"
+ lodash "^4.17.4"
+
+babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+ dependencies:
+ babel-runtime "^6.26.0"
+ esutils "^2.0.2"
+ lodash "^4.17.4"
+ to-fast-properties "^1.0.3"
+
+babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+
+babylon@~6.17.0:
+ version "6.17.4"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+brace-expansion@^1.1.7:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+browser-stdout at 1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
+
+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"
+
+commander at 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"
+
+concat-map at 0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+convert-source-map@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
+
+core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
+
+debug at 2.6.8:
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+ dependencies:
+ ms "2.0.0"
+
+debug@^2.6.8:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
+detect-indent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
+ dependencies:
+ repeating "^2.0.0"
+
+diff at 3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
+
+escape-string-regexp at 1.0.5, escape-string-regexp@^1.0.2:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+esprima-fb@^15001.1001.0-dev-harmony-fb:
+ version "15001.1001.0-dev-harmony-fb"
+ resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659"
+
+esprima@~4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+
+flow-parser@^0.55.0:
+ version "0.55.0"
+ resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.55.0.tgz#0692c45521c2f17ee31e1f3992e587968db911ff"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+glob at 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"
+
+globals@^9.18.0:
+ version "9.18.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+
+"graceful-readlink@>= 1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
+
+growl at 1.9.2:
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
+
+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"
+
+he at 1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+
+home-or-tmp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.1"
+
+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 at 2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+invariant@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
+ dependencies:
+ loose-envify "^1.0.0"
+
+is-finite@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+js-tokens@^3.0.0, js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+
+jsesc@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+
+jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+
+json3 at 3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
+
+json5@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+
+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._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._getnative@^3.0.0:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
+
+lodash._isiterateecall@^3.0.0:
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
+
+lodash.create at 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.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.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@^4.17.4:
+ version "4.17.4"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+
+loose-envify@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
+ dependencies:
+ js-tokens "^3.0.0"
+
+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 at 0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+minipass@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.1.tgz#5ada97538b1027b4cf7213432428578cb564011f"
+ dependencies:
+ yallist "^3.0.0"
+
+minizlib@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.0.3.tgz#d5c1abf77be154619952e253336eccab9b2a32f5"
+ dependencies:
+ minipass "^2.0.0"
+
+mkdirp at 0.5.1, mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ dependencies:
+ minimist "0.0.8"
+
+mocha@~3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
+ dependencies:
+ browser-stdout "1.3.0"
+ commander "2.9.0"
+ debug "2.6.8"
+ diff "3.2.0"
+ escape-string-regexp "1.0.5"
+ glob "7.1.1"
+ growl "1.9.2"
+ he "1.1.1"
+ json3 "3.3.2"
+ lodash.create "3.1.1"
+ mkdirp "0.5.1"
+ supports-color "3.1.2"
+
+ms at 2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+os-homedir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+os-tmpdir@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+
+path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+private@^0.1.6, private@^0.1.7, private@~0.1.5:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
+
+regenerate@^1.2.1:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
+
+regenerator-runtime@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
+
+regenerator-transform@^0.10.0:
+ version "0.10.1"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
+ dependencies:
+ babel-runtime "^6.18.0"
+ babel-types "^6.19.0"
+ private "^0.1.6"
+
+regexpu-core@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
+ dependencies:
+ regenerate "^1.2.1"
+ regjsgen "^0.2.0"
+ regjsparser "^0.1.4"
+
+regjsgen@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
+
+regjsparser@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
+ dependencies:
+ jsesc "~0.5.0"
+
+reify@^0.12.3:
+ version "0.12.3"
+ resolved "https://registry.yarnpkg.com/reify/-/reify-0.12.3.tgz#b1aa0c196e7dc7fb7e9ad42b87c1e10fe7f97f97"
+ dependencies:
+ acorn "~5.1.1"
+ minizlib "^1.0.3"
+ semver "^5.3.0"
+
+repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ dependencies:
+ is-finite "^1.0.0"
+
+semver@^5.3.0:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
+
+slash@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+
+source-map-support@^0.4.15:
+ version "0.4.18"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
+ dependencies:
+ source-map "^0.5.6"
+
+source-map@^0.5.6, source-map@~0.5.0:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
+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"
+
+supports-color at 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"
+
+to-fast-properties@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+
+trim-right@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+
+wrappy at 1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+yallist@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-recast.git
More information about the Pkg-javascript-commits
mailing list