Add Prettier (babel/babel-eslint#491)
This commit is contained in:
parent
001064885d
commit
94e69f399b
@ -1,9 +1,13 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
root: true,
|
root: true,
|
||||||
extends: "babel",
|
extends: "babel",
|
||||||
|
"plugins": [
|
||||||
|
"prettier"
|
||||||
|
],
|
||||||
rules: {
|
rules: {
|
||||||
"no-var": 0,
|
"no-var": 0,
|
||||||
"max-len": 0
|
"max-len": 0,
|
||||||
|
"prettier/prettier": ["error", { "trailingComma": "es5" }],
|
||||||
},
|
},
|
||||||
env: {
|
env: {
|
||||||
node: true,
|
node: true,
|
||||||
|
|||||||
@ -11,14 +11,15 @@ module.exports = function (tokens, tt) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isTemplateStarter(token) {
|
function isTemplateStarter(token) {
|
||||||
return isBackQuote(token) ||
|
return (
|
||||||
|
isBackQuote(token) ||
|
||||||
// only can be a template starter when in a template already
|
// only can be a template starter when in a template already
|
||||||
tokens[token].type === tt.braceR && numBackQuotes > 0;
|
(tokens[token].type === tt.braceR && numBackQuotes > 0)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isTemplateEnder(token) {
|
function isTemplateEnder(token) {
|
||||||
return isBackQuote(token) ||
|
return isBackQuote(token) || tokens[token].type === tt.dollarBraceL;
|
||||||
tokens[token].type === tt.dollarBraceL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// append the values between start and end
|
// append the values between start and end
|
||||||
@ -44,8 +45,8 @@ module.exports = function (tokens, tt) {
|
|||||||
end: tokens[end].end,
|
end: tokens[end].end,
|
||||||
loc: {
|
loc: {
|
||||||
start: tokens[start].loc.start,
|
start: tokens[start].loc.start,
|
||||||
end: tokens[end].loc.end
|
end: tokens[end].loc.end,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// put new token in place of old tokens
|
// put new token in place of old tokens
|
||||||
@ -70,7 +71,10 @@ module.exports = function (tokens, tt) {
|
|||||||
currentToken = startingToken + 1;
|
currentToken = startingToken + 1;
|
||||||
|
|
||||||
// check if token after template start is "template"
|
// check if token after template start is "template"
|
||||||
if (currentToken >= tokens.length - 1 || tokens[currentToken].type !== tt.template) {
|
if (
|
||||||
|
currentToken >= tokens.length - 1 ||
|
||||||
|
tokens[currentToken].type !== tt.template
|
||||||
|
) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,13 @@ module.exports = function (ast, traverse, code) {
|
|||||||
|
|
||||||
// Monkey patch visitor keys in order to be able to traverse the estree nodes
|
// Monkey patch visitor keys in order to be able to traverse the estree nodes
|
||||||
t.VISITOR_KEYS.Property = t.VISITOR_KEYS.ObjectProperty;
|
t.VISITOR_KEYS.Property = t.VISITOR_KEYS.ObjectProperty;
|
||||||
t.VISITOR_KEYS.MethodDefinition = ["key", "value", "decorators", "returnType", "typeParameters"];
|
t.VISITOR_KEYS.MethodDefinition = [
|
||||||
|
"key",
|
||||||
|
"value",
|
||||||
|
"decorators",
|
||||||
|
"returnType",
|
||||||
|
"typeParameters",
|
||||||
|
];
|
||||||
|
|
||||||
traverse(ast, astTransformVisitor, null, state);
|
traverse(ast, astTransformVisitor, null, state);
|
||||||
|
|
||||||
@ -49,11 +55,19 @@ var astTransformVisitor = {
|
|||||||
if (!node.shorthand) node.shorthand = false;
|
if (!node.shorthand) node.shorthand = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (path.isRestElement() && path.parent && path.parent.type === "ObjectPattern") {
|
if (
|
||||||
|
path.isRestElement() &&
|
||||||
|
path.parent &&
|
||||||
|
path.parent.type === "ObjectPattern"
|
||||||
|
) {
|
||||||
node.type = "ExperimentalRestProperty";
|
node.type = "ExperimentalRestProperty";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (path.isSpreadElement() && path.parent && path.parent.type === "ObjectExpression") {
|
if (
|
||||||
|
path.isSpreadElement() &&
|
||||||
|
path.parent &&
|
||||||
|
path.parent.type === "ObjectExpression"
|
||||||
|
) {
|
||||||
node.type = "ExperimentalSpreadProperty";
|
node.type = "ExperimentalSpreadProperty";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,5 +119,5 @@ var astTransformVisitor = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -6,24 +6,42 @@ module.exports = function (token, tt, source) {
|
|||||||
|
|
||||||
if (type === tt.name) {
|
if (type === tt.name) {
|
||||||
token.type = "Identifier";
|
token.type = "Identifier";
|
||||||
} else if (type === tt.semi || type === tt.comma ||
|
} else if (
|
||||||
type === tt.parenL || type === tt.parenR ||
|
type === tt.semi ||
|
||||||
type === tt.braceL || type === tt.braceR ||
|
type === tt.comma ||
|
||||||
type === tt.slash || type === tt.dot ||
|
type === tt.parenL ||
|
||||||
type === tt.bracketL || type === tt.bracketR ||
|
type === tt.parenR ||
|
||||||
type === tt.ellipsis || type === tt.arrow ||
|
type === tt.braceL ||
|
||||||
type === tt.star || type === tt.incDec ||
|
type === tt.braceR ||
|
||||||
type === tt.colon || type === tt.question ||
|
type === tt.slash ||
|
||||||
type === tt.template || type === tt.backQuote ||
|
type === tt.dot ||
|
||||||
type === tt.dollarBraceL || type === tt.at ||
|
type === tt.bracketL ||
|
||||||
type === tt.logicalOR || type === tt.logicalAND ||
|
type === tt.bracketR ||
|
||||||
type === tt.bitwiseOR || type === tt.bitwiseXOR ||
|
type === tt.ellipsis ||
|
||||||
type === tt.bitwiseAND || type === tt.equality ||
|
type === tt.arrow ||
|
||||||
type === tt.relational || type === tt.bitShift ||
|
type === tt.star ||
|
||||||
type === tt.plusMin || type === tt.modulo ||
|
type === tt.incDec ||
|
||||||
type === tt.exponent || type === tt.prefix ||
|
type === tt.colon ||
|
||||||
|
type === tt.question ||
|
||||||
|
type === tt.template ||
|
||||||
|
type === tt.backQuote ||
|
||||||
|
type === tt.dollarBraceL ||
|
||||||
|
type === tt.at ||
|
||||||
|
type === tt.logicalOR ||
|
||||||
|
type === tt.logicalAND ||
|
||||||
|
type === tt.bitwiseOR ||
|
||||||
|
type === tt.bitwiseXOR ||
|
||||||
|
type === tt.bitwiseAND ||
|
||||||
|
type === tt.equality ||
|
||||||
|
type === tt.relational ||
|
||||||
|
type === tt.bitShift ||
|
||||||
|
type === tt.plusMin ||
|
||||||
|
type === tt.modulo ||
|
||||||
|
type === tt.exponent ||
|
||||||
|
type === tt.prefix ||
|
||||||
type === tt.doubleColon ||
|
type === tt.doubleColon ||
|
||||||
type.isAssign) {
|
type.isAssign
|
||||||
|
) {
|
||||||
token.type = "Punctuator";
|
token.type = "Punctuator";
|
||||||
if (!token.value) token.value = type.label;
|
if (!token.value) token.value = type.label;
|
||||||
} else if (type === tt.jsxTagStart) {
|
} else if (type === tt.jsxTagStart) {
|
||||||
@ -53,7 +71,7 @@ module.exports = function (token, tt, source) {
|
|||||||
var value = token.value;
|
var value = token.value;
|
||||||
token.regex = {
|
token.regex = {
|
||||||
pattern: value.pattern,
|
pattern: value.pattern,
|
||||||
flags: value.flags
|
flags: value.flags,
|
||||||
};
|
};
|
||||||
token.value = `/${value.pattern}/${value.flags}`;
|
token.value = `/${value.pattern}/${value.flags}`;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,7 +30,8 @@ function getModules() {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
var escope = eslintMod.require("eslint-scope");
|
var escope = eslintMod.require("eslint-scope");
|
||||||
var Definition = eslintMod.require("eslint-scope/lib/definition").Definition;
|
var Definition = eslintMod.require("eslint-scope/lib/definition")
|
||||||
|
.Definition;
|
||||||
var referencer = eslintMod.require("eslint-scope/lib/referencer");
|
var referencer = eslintMod.require("eslint-scope/lib/referencer");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
escope = eslintMod.require("escope");
|
escope = eslintMod.require("escope");
|
||||||
@ -94,7 +95,7 @@ function monkeypatch(modules) {
|
|||||||
"FunctionExpression",
|
"FunctionExpression",
|
||||||
"Identifier",
|
"Identifier",
|
||||||
"ObjectPattern",
|
"ObjectPattern",
|
||||||
"RestElement"
|
"RestElement",
|
||||||
]);
|
]);
|
||||||
var visitorKeysMap = Object.keys(t.VISITOR_KEYS).reduce(function(acc, key) {
|
var visitorKeysMap = Object.keys(t.VISITOR_KEYS).reduce(function(acc, key) {
|
||||||
var value = t.VISITOR_KEYS[key];
|
var value = t.VISITOR_KEYS[key];
|
||||||
@ -120,7 +121,7 @@ function monkeypatch(modules) {
|
|||||||
// others
|
// others
|
||||||
typeAnnotation: { type: "typeAnnotation" },
|
typeAnnotation: { type: "typeAnnotation" },
|
||||||
typeParameters: { type: "typeParameters" },
|
typeParameters: { type: "typeParameters" },
|
||||||
id: { type: "id" }
|
id: { type: "id" },
|
||||||
};
|
};
|
||||||
|
|
||||||
function visitTypeAnnotation(node) {
|
function visitTypeAnnotation(node) {
|
||||||
@ -182,7 +183,13 @@ function monkeypatch(modules) {
|
|||||||
|
|
||||||
function nestTypeParamScope(manager, node) {
|
function nestTypeParamScope(manager, node) {
|
||||||
var parentScope = manager.__currentScope;
|
var parentScope = manager.__currentScope;
|
||||||
var scope = new escope.Scope(manager, "type-parameters", parentScope, node, false);
|
var scope = new escope.Scope(
|
||||||
|
manager,
|
||||||
|
"type-parameters",
|
||||||
|
parentScope,
|
||||||
|
node,
|
||||||
|
false
|
||||||
|
);
|
||||||
manager.__nestScope(scope);
|
manager.__nestScope(scope);
|
||||||
for (var j = 0; j < node.typeParameters.params.length; j++) {
|
for (var j = 0; j < node.typeParameters.params.length; j++) {
|
||||||
var name = node.typeParameters.params[j];
|
var name = node.typeParameters.params[j];
|
||||||
@ -297,15 +304,9 @@ function monkeypatch(modules) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function createScopeVariable(node, name) {
|
function createScopeVariable(node, name) {
|
||||||
this.currentScope().variableScope.__define(name,
|
this.currentScope().variableScope.__define(
|
||||||
new Definition(
|
|
||||||
"Variable",
|
|
||||||
name,
|
name,
|
||||||
node,
|
new Definition("Variable", name, node, null, null, null)
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,10 +340,9 @@ function monkeypatch(modules) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
referencer.prototype.DeclareModule =
|
referencer.prototype.DeclareModule = referencer.prototype.DeclareFunction = referencer.prototype.DeclareVariable = referencer.prototype.DeclareClass = function(
|
||||||
referencer.prototype.DeclareFunction =
|
node
|
||||||
referencer.prototype.DeclareVariable =
|
) {
|
||||||
referencer.prototype.DeclareClass = function(node) {
|
|
||||||
if (node.id) {
|
if (node.id) {
|
||||||
createScopeVariable.call(this, node, node.id);
|
createScopeVariable.call(this, node, node.id);
|
||||||
}
|
}
|
||||||
@ -360,8 +360,10 @@ function monkeypatch(modules) {
|
|||||||
exports.parse = function(code, options) {
|
exports.parse = function(code, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
eslintOptions.ecmaVersion = options.ecmaVersion = options.ecmaVersion || 6;
|
eslintOptions.ecmaVersion = options.ecmaVersion = options.ecmaVersion || 6;
|
||||||
eslintOptions.sourceType = options.sourceType = options.sourceType || "module";
|
eslintOptions.sourceType = options.sourceType =
|
||||||
eslintOptions.allowImportExportEverywhere = options.allowImportExportEverywhere = options.allowImportExportEverywhere || false;
|
options.sourceType || "module";
|
||||||
|
eslintOptions.allowImportExportEverywhere = options.allowImportExportEverywhere =
|
||||||
|
options.allowImportExportEverywhere || false;
|
||||||
if (options.sourceType === "module") {
|
if (options.sourceType === "module") {
|
||||||
eslintOptions.globalReturn = false;
|
eslintOptions.globalReturn = false;
|
||||||
} else {
|
} else {
|
||||||
@ -410,7 +412,7 @@ exports.parseNoPatch = function (code, options) {
|
|||||||
"optionalChaining",
|
"optionalChaining",
|
||||||
"importMeta",
|
"importMeta",
|
||||||
"classPrivateProperties",
|
"classPrivateProperties",
|
||||||
]
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
var ast;
|
var ast;
|
||||||
@ -418,7 +420,6 @@ exports.parseNoPatch = function (code, options) {
|
|||||||
ast = parse(code, opts);
|
ast = parse(code, opts);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err instanceof SyntaxError) {
|
if (err instanceof SyntaxError) {
|
||||||
|
|
||||||
err.lineNumber = err.loc.line;
|
err.lineNumber = err.loc.line;
|
||||||
err.column = err.loc.column;
|
err.column = err.loc.column;
|
||||||
|
|
||||||
@ -427,15 +428,23 @@ exports.parseNoPatch = function (code, options) {
|
|||||||
err.column = err.loc.column + 1;
|
err.column = err.loc.column + 1;
|
||||||
|
|
||||||
// remove trailing "(LINE:COLUMN)" acorn message and add in esprima syntax error message start
|
// remove trailing "(LINE:COLUMN)" acorn message and add in esprima syntax error message start
|
||||||
err.message = "Line " + err.lineNumber + ": " + err.message.replace(/ \((\d+):(\d+)\)$/, "") +
|
err.message =
|
||||||
|
"Line " +
|
||||||
|
err.lineNumber +
|
||||||
|
": " +
|
||||||
|
err.message.replace(/ \((\d+):(\d+)\)$/, "") +
|
||||||
// add codeframe
|
// add codeframe
|
||||||
"\n\n" +
|
"\n\n" +
|
||||||
codeFrameColumns(code, {
|
codeFrameColumns(
|
||||||
|
code,
|
||||||
|
{
|
||||||
start: {
|
start: {
|
||||||
line: err.lineNumber,
|
line: err.lineNumber,
|
||||||
column: err.column,
|
column: err.column,
|
||||||
},
|
},
|
||||||
}, { highlightCode: true });
|
},
|
||||||
|
{ highlightCode: true }
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@
|
|||||||
"test-only": "mocha",
|
"test-only": "mocha",
|
||||||
"lint": "eslint index.js babylon-to-espree test",
|
"lint": "eslint index.js babylon-to-espree test",
|
||||||
"fix": "eslint index.js babylon-to-espree test --fix",
|
"fix": "eslint index.js babylon-to-espree test --fix",
|
||||||
|
"precommit": "lint-staged",
|
||||||
"preversion": "npm test",
|
"preversion": "npm test",
|
||||||
"changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'"
|
"changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'"
|
||||||
},
|
},
|
||||||
@ -38,9 +39,19 @@
|
|||||||
"babel-eslint": "^7.0.0",
|
"babel-eslint": "^7.0.0",
|
||||||
"dedent": "^0.7.0",
|
"dedent": "^0.7.0",
|
||||||
"eslint": "^3.18.0",
|
"eslint": "^3.18.0",
|
||||||
"eslint-config-babel": "^6.0.0",
|
"eslint-config-babel": "^7.0.1",
|
||||||
"eslint-plugin-flowtype": "^2.30.3",
|
"eslint-plugin-flowtype": "^2.30.3",
|
||||||
|
"eslint-plugin-prettier": "^2.1.2",
|
||||||
"espree": "^3.4.0",
|
"espree": "^3.4.0",
|
||||||
"mocha": "^3.0.0"
|
"husky": "^0.13.2",
|
||||||
|
"lint-staged": "^3.6.1",
|
||||||
|
"mocha": "^3.0.0",
|
||||||
|
"prettier": "1.4.4"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"*.js": [
|
||||||
|
"eslint --format=codeframe --fix",
|
||||||
|
"git add"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,9 +20,18 @@ function assertImplementsAST(target, source, path) {
|
|||||||
var typeA = target === null ? "null" : typeof target;
|
var typeA = target === null ? "null" : typeof target;
|
||||||
var typeB = source === null ? "null" : typeof source;
|
var typeB = source === null ? "null" : typeof source;
|
||||||
if (typeA !== typeB) {
|
if (typeA !== typeB) {
|
||||||
error(`have different types (${typeA} !== ${typeB}) (${target} !== ${source})`);
|
error(
|
||||||
} else if (typeA === "object" && ["RegExp"].indexOf(target.constructor.name) !== -1 && target.constructor.name !== source.constructor.name) {
|
`have different types (${typeA} !== ${typeB}) (${target} !== ${source})`
|
||||||
error(`object have different constructors (${target.constructor.name} !== ${source.constructor.name}`);
|
);
|
||||||
|
} else if (
|
||||||
|
typeA === "object" &&
|
||||||
|
["RegExp"].indexOf(target.constructor.name) !== -1 &&
|
||||||
|
target.constructor.name !== source.constructor.name
|
||||||
|
) {
|
||||||
|
error(
|
||||||
|
`object have different constructors (${target.constructor
|
||||||
|
.name} !== ${source.constructor.name}`
|
||||||
|
);
|
||||||
} else if (typeA === "object") {
|
} else if (typeA === "object") {
|
||||||
var keysTarget = Object.keys(target);
|
var keysTarget = Object.keys(target);
|
||||||
for (var i in keysTarget) {
|
for (var i in keysTarget) {
|
||||||
@ -32,15 +41,23 @@ function assertImplementsAST(target, source, path) {
|
|||||||
path.pop();
|
path.pop();
|
||||||
}
|
}
|
||||||
} else if (target !== source) {
|
} else if (target !== source) {
|
||||||
error(`are different (${JSON.stringify(target)} !== ${JSON.stringify(source)})`);
|
error(
|
||||||
|
`are different (${JSON.stringify(target)} !== ${JSON.stringify(source)})`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function lookup(obj, keypath, backwardsDepth) {
|
function lookup(obj, keypath, backwardsDepth) {
|
||||||
if (!keypath) { return obj; }
|
if (!keypath) {
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
return keypath.split(".").slice(0, -1 * backwardsDepth)
|
return keypath
|
||||||
.reduce((base, segment) => { return base && base[segment], obj; });
|
.split(".")
|
||||||
|
.slice(0, -1 * backwardsDepth)
|
||||||
|
.reduce((base, segment) => {
|
||||||
|
return base && base[segment], obj;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseAndAssertSame(code) {
|
function parseAndAssertSame(code) {
|
||||||
@ -53,7 +70,7 @@ function parseAndAssertSame(code) {
|
|||||||
// enable implied strict mode (if ecmaVersion >= 5)
|
// enable implied strict mode (if ecmaVersion >= 5)
|
||||||
impliedStrict: true,
|
impliedStrict: true,
|
||||||
// allow experimental object rest/spread
|
// allow experimental object rest/spread
|
||||||
experimentalObjectRestSpread: true
|
experimentalObjectRestSpread: true,
|
||||||
},
|
},
|
||||||
tokens: true,
|
tokens: true,
|
||||||
loc: true,
|
loc: true,
|
||||||
@ -61,7 +78,7 @@ function parseAndAssertSame(code) {
|
|||||||
comment: true,
|
comment: true,
|
||||||
attachComment: true,
|
attachComment: true,
|
||||||
ecmaVersion: 8,
|
ecmaVersion: 8,
|
||||||
sourceType: "module"
|
sourceType: "module",
|
||||||
});
|
});
|
||||||
var babylonAST = babelEslint.parse(code);
|
var babylonAST = babelEslint.parse(code);
|
||||||
try {
|
try {
|
||||||
@ -76,9 +93,15 @@ function parseAndAssertSame(code) {
|
|||||||
}
|
}
|
||||||
err.message += unpad(`
|
err.message += unpad(`
|
||||||
espree:
|
espree:
|
||||||
${util.inspect(lookup(esAST, traversal, 2), { depth: err.depth, colors: true })}
|
${util.inspect(lookup(esAST, traversal, 2), {
|
||||||
|
depth: err.depth,
|
||||||
|
colors: true,
|
||||||
|
})}
|
||||||
babel-eslint:
|
babel-eslint:
|
||||||
${util.inspect(lookup(babylonAST, traversal, 2), { depth: err.depth, colors: true })}
|
${util.inspect(lookup(babylonAST, traversal, 2), {
|
||||||
|
depth: err.depth,
|
||||||
|
colors: true,
|
||||||
|
})}
|
||||||
`);
|
`);
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
@ -90,9 +113,13 @@ describe("babylon-to-esprima", () => {
|
|||||||
it("should allow ast.analyze to be called without options", function() {
|
it("should allow ast.analyze to be called without options", function() {
|
||||||
var esAST = babelEslint.parse("`test`");
|
var esAST = babelEslint.parse("`test`");
|
||||||
|
|
||||||
assert.doesNotThrow(() => {
|
assert.doesNotThrow(
|
||||||
|
() => {
|
||||||
escope.analyze(esAST);
|
escope.analyze(esAST);
|
||||||
}, TypeError, "Should allow no options argument.");
|
},
|
||||||
|
TypeError,
|
||||||
|
"Should allow no options argument."
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -138,11 +165,15 @@ describe("babylon-to-esprima", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("template with nested function/object", () => {
|
it("template with nested function/object", () => {
|
||||||
parseAndAssertSame("`outer${{x: {y: 10}}}bar${`nested${function(){return 1;}}endnest`}end`");
|
parseAndAssertSame(
|
||||||
|
"`outer${{x: {y: 10}}}bar${`nested${function(){return 1;}}endnest`}end`"
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("template with braces inside and outside of template string #96", () => {
|
it("template with braces inside and outside of template string #96", () => {
|
||||||
parseAndAssertSame("if (a) { var target = `{}a:${webpackPort}{}}}}`; } else { app.use(); }");
|
parseAndAssertSame(
|
||||||
|
"if (a) { var target = `{}a:${webpackPort}{}}}}`; } else { app.use(); }"
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("template also with braces #96", () => {
|
it("template also with braces #96", () => {
|
||||||
@ -218,19 +249,19 @@ describe("babylon-to-esprima", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("default import", () => {
|
it("default import", () => {
|
||||||
parseAndAssertSame("import foo from \"foo\";");
|
parseAndAssertSame('import foo from "foo";');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("import specifier", () => {
|
it("import specifier", () => {
|
||||||
parseAndAssertSame("import { foo } from \"foo\";");
|
parseAndAssertSame('import { foo } from "foo";');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("import specifier with name", () => {
|
it("import specifier with name", () => {
|
||||||
parseAndAssertSame("import { foo as bar } from \"foo\";");
|
parseAndAssertSame('import { foo as bar } from "foo";');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("import bare", () => {
|
it("import bare", () => {
|
||||||
parseAndAssertSame("import \"foo\";");
|
parseAndAssertSame('import "foo";');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("export default class declaration", () => {
|
it("export default class declaration", () => {
|
||||||
@ -250,7 +281,7 @@ describe("babylon-to-esprima", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("export all", () => {
|
it("export all", () => {
|
||||||
parseAndAssertSame("export * from \"foo\";");
|
parseAndAssertSame('export * from "foo";');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("export named", () => {
|
it("export named", () => {
|
||||||
@ -331,11 +362,11 @@ describe("babylon-to-esprima", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("regexp in a template string", () => {
|
it("regexp in a template string", () => {
|
||||||
parseAndAssertSame("`${/\\d/.exec(\"1\")[0]}`");
|
parseAndAssertSame('`${/\\d/.exec("1")[0]}`');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("first line is empty", () => {
|
it("first line is empty", () => {
|
||||||
parseAndAssertSame("\nimport Immutable from \"immutable\";");
|
parseAndAssertSame('\nimport Immutable from "immutable";');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("empty", () => {
|
it("empty", () => {
|
||||||
@ -383,7 +414,9 @@ describe("babylon-to-esprima", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("MethodDefinition 2", () => {
|
it("MethodDefinition 2", () => {
|
||||||
parseAndAssertSame("export default class Bar { get bar() { return 42; }}");
|
parseAndAssertSame(
|
||||||
|
"export default class Bar { get bar() { return 42; }}"
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("ClassMethod", () => {
|
it("ClassMethod", () => {
|
||||||
@ -443,7 +476,7 @@ describe("babylon-to-esprima", () => {
|
|||||||
|
|
||||||
it("do not allow import export everywhere", () => {
|
it("do not allow import export everywhere", () => {
|
||||||
assert.throws(() => {
|
assert.throws(() => {
|
||||||
parseAndAssertSame("function F() { import a from \"a\"; }");
|
parseAndAssertSame('function F() { import a from "a"; }');
|
||||||
}, /SyntaxError: 'import' and 'export' may only appear at the top level/);
|
}, /SyntaxError: 'import' and 'export' may only appear at the top level/);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -13,8 +13,8 @@ var errorLevel = 2;
|
|||||||
var baseEslintOpts = {
|
var baseEslintOpts = {
|
||||||
parser: require.resolve(".."),
|
parser: require.resolve(".."),
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
sourceType: "script"
|
sourceType: "script",
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -38,11 +38,7 @@ function lint (opts, done) {
|
|||||||
function readFixture(id, done) {
|
function readFixture(id, done) {
|
||||||
if (Array.isArray(id)) id = path.join.apply(path, id);
|
if (Array.isArray(id)) id = path.join.apply(path, id);
|
||||||
if (!path.extname(id)) id += ".js";
|
if (!path.extname(id)) id += ".js";
|
||||||
fs.readFile(
|
fs.readFile(path.join(paths.fixtures, id), encoding, done);
|
||||||
path.join(paths.fixtures, id),
|
|
||||||
encoding,
|
|
||||||
done
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
// readFixture
|
// readFixture
|
||||||
|
|
||||||
@ -60,19 +56,20 @@ function strictSuite () {
|
|||||||
});
|
});
|
||||||
eslintOpts.rules[ruleId] = [errorLevel, "never"];
|
eslintOpts.rules[ruleId] = [errorLevel, "never"];
|
||||||
|
|
||||||
["global-with", "function-with"].forEach((fixture) => {
|
["global-with", "function-with"].forEach(fixture => {
|
||||||
it(`should error on ${fixture.match(/^[^-]+/)[0]} directive`,
|
it(`should error on ${fixture.match(/^[^-]+/)[0]} directive`, done => {
|
||||||
(done) => {
|
lint(
|
||||||
lint({
|
{
|
||||||
fixture: ["strict", fixture],
|
fixture: ["strict", fixture],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
assert(report[0].ruleId === ruleId);
|
||||||
done();
|
done();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
});
|
||||||
// it
|
// it
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -80,41 +77,49 @@ function strictSuite () {
|
|||||||
|
|
||||||
describe("when set to 'global'", () => {
|
describe("when set to 'global'", () => {
|
||||||
var eslintOpts = Object.assign({}, baseEslintOpts, {
|
var eslintOpts = Object.assign({}, baseEslintOpts, {
|
||||||
rules: {}
|
rules: {},
|
||||||
});
|
});
|
||||||
eslintOpts.rules[ruleId] = [errorLevel, "global"];
|
eslintOpts.rules[ruleId] = [errorLevel, "global"];
|
||||||
|
|
||||||
it("shouldn't error on single global directive", (done) => {
|
it("shouldn't error on single global directive", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["strict", "global-with"],
|
fixture: ["strict", "global-with"],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(!report.length);
|
assert(!report.length);
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
// it
|
// it
|
||||||
|
|
||||||
it("should error twice on global directive: no and function directive: yes", (done) => {
|
it("should error twice on global directive: no and function directive: yes", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["strict", "function-with"],
|
fixture: ["strict", "function-with"],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
[0, 1].forEach((i) => {
|
[0, 1].forEach(i => {
|
||||||
assert(report[i].ruleId === ruleId);
|
assert(report[i].ruleId === ruleId);
|
||||||
});
|
});
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
// it
|
// it
|
||||||
|
|
||||||
it("should error on function directive", (done) => {
|
it("should error on function directive", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["strict", "global-with-function-with"],
|
fixture: ["strict", "global-with-function-with"],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
assert(report[0].ruleId === ruleId);
|
||||||
|
|
||||||
@ -124,19 +129,23 @@ function strictSuite () {
|
|||||||
// result of the previous assertion.
|
// result of the previous assertion.
|
||||||
assert(report[0].nodeType !== "Program");
|
assert(report[0].nodeType !== "Program");
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
// it
|
// it
|
||||||
|
|
||||||
it("should error on no directive", (done) => {
|
it("should error on no directive", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["strict", "none"],
|
fixture: ["strict", "none"],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
assert(report[0].ruleId === ruleId);
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
// it
|
// it
|
||||||
});
|
});
|
||||||
@ -144,108 +153,130 @@ function strictSuite () {
|
|||||||
|
|
||||||
describe("when set to 'function'", () => {
|
describe("when set to 'function'", () => {
|
||||||
var eslintOpts = Object.assign({}, baseEslintOpts, {
|
var eslintOpts = Object.assign({}, baseEslintOpts, {
|
||||||
rules: {}
|
rules: {},
|
||||||
});
|
});
|
||||||
eslintOpts.rules[ruleId] = [errorLevel, "function"];
|
eslintOpts.rules[ruleId] = [errorLevel, "function"];
|
||||||
|
|
||||||
it("shouldn't error on single function directive", (done) => {
|
it("shouldn't error on single function directive", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["strict", "function-with"],
|
fixture: ["strict", "function-with"],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(!report.length);
|
assert(!report.length);
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
// it
|
// it
|
||||||
|
|
||||||
it("should error twice on function directive: no and global directive: yes", (done) => {
|
it("should error twice on function directive: no and global directive: yes", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["strict", "global-with-function-without"],
|
fixture: ["strict", "global-with-function-without"],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
[0, 1].forEach((i) => {
|
[0, 1].forEach(i => {
|
||||||
assert(report[i].ruleId === ruleId);
|
assert(report[i].ruleId === ruleId);
|
||||||
});
|
});
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
// it
|
// it
|
||||||
|
|
||||||
it("should error on only global directive", (done) => {
|
it("should error on only global directive", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["strict", "global-with"],
|
fixture: ["strict", "global-with"],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
assert(report[0].ruleId === ruleId);
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
// it
|
// it
|
||||||
|
|
||||||
it("should error on extraneous global directive", (done) => {
|
it("should error on extraneous global directive", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["strict", "global-with-function-with"],
|
fixture: ["strict", "global-with-function-with"],
|
||||||
eslint: eslintOpts,
|
eslint: eslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
assert(report[0].ruleId === ruleId);
|
||||||
assert(report[0].nodeType.indexOf("Function") === -1);
|
assert(report[0].nodeType.indexOf("Function") === -1);
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
// it
|
// it
|
||||||
});
|
});
|
||||||
// describe
|
// describe
|
||||||
describe("When \"codeFrame\"", () => {
|
describe('When "codeFrame"', () => {
|
||||||
// Strip chalk colors, these are not relevant for the test
|
// Strip chalk colors, these are not relevant for the test
|
||||||
const stripAnsi = (str) => str.replace(
|
const stripAnsi = str =>
|
||||||
|
str.replace(
|
||||||
/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
|
/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
|
||||||
""
|
""
|
||||||
);
|
);
|
||||||
|
|
||||||
it("should display codeFrame when option is absent", (done) => {
|
it("should display codeFrame when option is absent", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["syntax-error"],
|
fixture: ["syntax-error"],
|
||||||
eslint: baseEslintOpts
|
eslint: baseEslintOpts,
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(stripAnsi(report[0].message).indexOf("^\n 5 |") > -1);
|
assert(stripAnsi(report[0].message).indexOf("^\n 5 |") > -1);
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should display codeFrame when option is true", (done) => {
|
it("should display codeFrame when option is true", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["syntax-error"],
|
fixture: ["syntax-error"],
|
||||||
eslint: Object.assign({}, baseEslintOpts, {
|
eslint: Object.assign({}, baseEslintOpts, {
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
codeFrame: true
|
codeFrame: true,
|
||||||
}
|
},
|
||||||
})
|
}),
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(stripAnsi(report[0].message).indexOf("^\n 5 |") > -1);
|
assert(stripAnsi(report[0].message).indexOf("^\n 5 |") > -1);
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should not display codeFrame when option is false", (done) => {
|
it("should not display codeFrame when option is false", done => {
|
||||||
lint({
|
lint(
|
||||||
|
{
|
||||||
fixture: ["syntax-error"],
|
fixture: ["syntax-error"],
|
||||||
eslint: Object.assign({}, baseEslintOpts, {
|
eslint: Object.assign({}, baseEslintOpts, {
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
codeFrame: false
|
codeFrame: false,
|
||||||
}
|
},
|
||||||
})
|
}),
|
||||||
}, (err, report) => {
|
},
|
||||||
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(stripAnsi(report[0].message).indexOf("^\n 5 |") === -1);
|
assert(stripAnsi(report[0].message).indexOf("^\n 5 |") === -1);
|
||||||
done();
|
done();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,23 +3,29 @@
|
|||||||
var eslint = require("eslint");
|
var eslint = require("eslint");
|
||||||
var unpad = require("dedent");
|
var unpad = require("dedent");
|
||||||
|
|
||||||
function verifyAndAssertMessages(code, rules, expectedMessages, sourceType, overrideConfig) {
|
function verifyAndAssertMessages(
|
||||||
|
code,
|
||||||
|
rules,
|
||||||
|
expectedMessages,
|
||||||
|
sourceType,
|
||||||
|
overrideConfig
|
||||||
|
) {
|
||||||
var config = {
|
var config = {
|
||||||
parser: require.resolve(".."),
|
parser: require.resolve(".."),
|
||||||
rules,
|
rules,
|
||||||
env: {
|
env: {
|
||||||
node: true,
|
node: true,
|
||||||
es6: true
|
es6: true,
|
||||||
},
|
},
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
ecmaVersion: 8,
|
ecmaVersion: 8,
|
||||||
ecmaFeatures: {
|
ecmaFeatures: {
|
||||||
jsx: true,
|
jsx: true,
|
||||||
experimentalObjectRestSpread: true,
|
experimentalObjectRestSpread: true,
|
||||||
globalReturn: true
|
globalReturn: true,
|
||||||
|
},
|
||||||
|
sourceType,
|
||||||
},
|
},
|
||||||
sourceType
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (overrideConfig) {
|
if (overrideConfig) {
|
||||||
@ -31,11 +37,19 @@ function verifyAndAssertMessages(code, rules, expectedMessages, sourceType, over
|
|||||||
var messages = eslint.linter.verify(code, config);
|
var messages = eslint.linter.verify(code, config);
|
||||||
|
|
||||||
if (messages.length !== expectedMessages.length) {
|
if (messages.length !== expectedMessages.length) {
|
||||||
throw new Error(`Expected ${expectedMessages.length} message(s), got ${messages.length}\n${JSON.stringify(messages, null, 2)}`);
|
throw new Error(
|
||||||
|
`Expected ${expectedMessages.length} message(s), got ${messages.length}\n${JSON.stringify(
|
||||||
|
messages,
|
||||||
|
null,
|
||||||
|
2
|
||||||
|
)}`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
messages.forEach((message, i) => {
|
messages.forEach((message, i) => {
|
||||||
var formatedMessage = `${message.line}:${message.column} ${message.message}${(message.ruleId ? ` ${message.ruleId}` : "")}`;
|
var formatedMessage = `${message.line}:${message.column} ${message.message}${message.ruleId
|
||||||
|
? ` ${message.ruleId}`
|
||||||
|
: ""}`;
|
||||||
if (formatedMessage !== expectedMessages[i]) {
|
if (formatedMessage !== expectedMessages[i]) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
unpad(`
|
unpad(`
|
||||||
@ -50,27 +64,21 @@ function verifyAndAssertMessages(code, rules, expectedMessages, sourceType, over
|
|||||||
|
|
||||||
describe("verify", () => {
|
describe("verify", () => {
|
||||||
it("arrow function support (issue #1)", () => {
|
it("arrow function support (issue #1)", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("describe('stuff', () => {});", {}, []);
|
||||||
"describe('stuff', () => {});",
|
|
||||||
{},
|
|
||||||
[]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("EOL validation (issue #2)", () => {
|
it("EOL validation (issue #2)", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
"module.exports = \"something\";",
|
'module.exports = "something";',
|
||||||
{ "eol-last": 1, "semi": 1 },
|
{ "eol-last": 1, semi: 1 },
|
||||||
["1:30 Newline required at end of file but not found. eol-last"]
|
["1:30 Newline required at end of file but not found. eol-last"]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
xit("Readable error messages (issue #3)", () => {
|
xit("Readable error messages (issue #3)", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("{ , res }", {}, [
|
||||||
"{ , res }",
|
"1:3 Parsing error: Unexpected token",
|
||||||
{},
|
]);
|
||||||
[ "1:3 Parsing error: Unexpected token" ]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Modules support (issue #5)", () => {
|
it("Modules support (issue #5)", () => {
|
||||||
@ -120,7 +128,7 @@ describe("verify", () => {
|
|||||||
|
|
||||||
it("JSX attribute names marked as variables (issue #12)", () => {
|
it("JSX attribute names marked as variables (issue #12)", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
"module.exports = <div className=\"foo\" />",
|
'module.exports = <div className="foo" />',
|
||||||
{ "no-undef": 1 },
|
{ "no-undef": 1 },
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
@ -136,8 +144,8 @@ describe("verify", () => {
|
|||||||
|
|
||||||
it("Arrow function with non-block bodies (issue #20)", () => {
|
it("Arrow function with non-block bodies (issue #20)", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
"\"use strict\"; () => 1",
|
'"use strict"; () => 1',
|
||||||
{ "strict": [1, "global"] },
|
{ strict: [1, "global"] },
|
||||||
[],
|
[],
|
||||||
"script"
|
"script"
|
||||||
);
|
);
|
||||||
@ -145,7 +153,7 @@ describe("verify", () => {
|
|||||||
|
|
||||||
it("#242", () => {
|
it("#242", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
"\"use strict\"; asdf;",
|
'"use strict"; asdf;',
|
||||||
{ "no-irregular-whitespace": 1 },
|
{ "no-irregular-whitespace": 1 },
|
||||||
[],
|
[],
|
||||||
{}
|
{}
|
||||||
@ -191,19 +199,11 @@ describe("verify", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("type alias", () => {
|
it("type alias", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("type SomeNewType = any;", { "no-undef": 1 }, []);
|
||||||
"type SomeNewType = any;",
|
|
||||||
{ "no-undef": 1 },
|
|
||||||
[]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("type cast expression #102", () => {
|
it("type cast expression #102", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("for (let a of (a: Array)) {}", {}, []);
|
||||||
"for (let a of (a: Array)) {}",
|
|
||||||
{},
|
|
||||||
[]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("multiple nullable type annotations and return #108", () => {
|
it("multiple nullable type annotations and return #108", () => {
|
||||||
@ -259,9 +259,11 @@ describe("verify", () => {
|
|||||||
new Foo();
|
new Foo();
|
||||||
`),
|
`),
|
||||||
{ "no-unused-vars": 1, "no-undef": 1 },
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
[ "1:1 'T' is not defined. no-undef",
|
[
|
||||||
|
"1:1 'T' is not defined. no-undef",
|
||||||
"2:11 'T' is defined but never used. no-unused-vars",
|
"2:11 'T' is defined but never used. no-unused-vars",
|
||||||
"3:1 'T' is not defined. no-undef" ]
|
"3:1 'T' is not defined. no-undef",
|
||||||
|
]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -274,8 +276,10 @@ describe("verify", () => {
|
|||||||
}
|
}
|
||||||
`),
|
`),
|
||||||
{ "no-unused-vars": 1, "no-undef": 1 },
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
[ "2:11 'Log' is defined but never used. no-unused-vars",
|
[
|
||||||
"2:38 'T4' is defined but never used. no-unused-vars" ]
|
"2:11 'Log' is defined but never used. no-unused-vars",
|
||||||
|
"2:38 'T4' is defined but never used. no-unused-vars",
|
||||||
|
]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -288,9 +292,11 @@ describe("verify", () => {
|
|||||||
Foo;
|
Foo;
|
||||||
`),
|
`),
|
||||||
{ "no-unused-vars": 1, "no-undef": 1 },
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
[ "1:1 'T' is not defined. no-undef",
|
[
|
||||||
|
"1:1 'T' is not defined. no-undef",
|
||||||
"2:15 'T' is defined but never used. no-unused-vars",
|
"2:15 'T' is defined but never used. no-unused-vars",
|
||||||
"3:1 'T' is not defined. no-undef" ]
|
"3:1 'T' is not defined. no-undef",
|
||||||
|
]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -304,8 +310,10 @@ describe("verify", () => {
|
|||||||
};
|
};
|
||||||
`),
|
`),
|
||||||
{ "no-unused-vars": 1, "no-undef": 1 },
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
[ "2:6 'Log' is defined but never used. no-unused-vars",
|
[
|
||||||
"2:29 'T3' is defined but never used. no-unused-vars" ]
|
"2:6 'Log' is defined but never used. no-unused-vars",
|
||||||
|
"2:29 'T3' is defined but never used. no-unused-vars",
|
||||||
|
]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -318,9 +326,11 @@ describe("verify", () => {
|
|||||||
Foo;
|
Foo;
|
||||||
`),
|
`),
|
||||||
{ "no-unused-vars": 1, "no-undef": 1 },
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
[ "1:1 'T' is not defined. no-undef",
|
[
|
||||||
|
"1:1 'T' is not defined. no-undef",
|
||||||
"2:10 'T' is defined but never used. no-unused-vars",
|
"2:10 'T' is defined but never used. no-unused-vars",
|
||||||
"3:1 'T' is not defined. no-undef" ]
|
"3:1 'T' is not defined. no-undef",
|
||||||
|
]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -346,9 +356,11 @@ describe("verify", () => {
|
|||||||
log;
|
log;
|
||||||
`),
|
`),
|
||||||
{ "no-unused-vars": 1, "no-undef": 1 },
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
[ "1:1 'T' is not defined. no-undef",
|
[
|
||||||
|
"1:1 'T' is not defined. no-undef",
|
||||||
"2:14 'T' is defined but never used. no-unused-vars",
|
"2:14 'T' is defined but never used. no-unused-vars",
|
||||||
"3:1 'T' is not defined. no-undef" ]
|
"3:1 'T' is not defined. no-undef",
|
||||||
|
]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -544,8 +556,10 @@ describe("verify", () => {
|
|||||||
var b: T = 1; b;
|
var b: T = 1; b;
|
||||||
`),
|
`),
|
||||||
{ "no-unused-vars": 1, "no-undef": 1 },
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
[ "1:21 'T' is defined but never used. no-unused-vars",
|
[
|
||||||
"2:8 'T' is not defined. no-undef" ]
|
"1:21 'T' is defined but never used. no-unused-vars",
|
||||||
|
"2:8 'T' is not defined. no-undef",
|
||||||
|
]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -581,8 +595,10 @@ describe("verify", () => {
|
|||||||
type T = {a: number, ...U, ...V};
|
type T = {a: number, ...U, ...V};
|
||||||
`),
|
`),
|
||||||
{ "no-undef": 1, "no-unused-vars": 1 },
|
{ "no-undef": 1, "no-unused-vars": 1 },
|
||||||
[ "2:6 'T' is defined but never used. no-unused-vars",
|
[
|
||||||
"2:31 'V' is not defined. no-undef" ]
|
"2:6 'T' is defined but never used. no-unused-vars",
|
||||||
|
"2:31 'V' is not defined. no-undef",
|
||||||
|
]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1289,11 +1305,9 @@ describe("verify", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("detects minimal no-unused-vars case #120", () => {
|
it("detects minimal no-unused-vars case #120", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("var unused;", { "no-unused-vars": 1 }, [
|
||||||
"var unused;",
|
"1:5 'unused' is defined but never used. no-unused-vars",
|
||||||
{ "no-unused-vars": 1 },
|
]);
|
||||||
[ "1:5 'unused' is defined but never used. no-unused-vars" ]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// This two tests are disabled, as the feature to visit properties when
|
// This two tests are disabled, as the feature to visit properties when
|
||||||
@ -1430,14 +1444,16 @@ describe("verify", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("no no-undef error with rest #11", () => {
|
it("no no-undef error with rest #11", () => {
|
||||||
verifyAndAssertMessages("const [a, ...rest] = ['1', '2', '3']; a; rest;",
|
verifyAndAssertMessages(
|
||||||
|
"const [a, ...rest] = ['1', '2', '3']; a; rest;",
|
||||||
{ "no-undef": 1, "no-unused-vars": 1 },
|
{ "no-undef": 1, "no-unused-vars": 1 },
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("async function with space-before-function-paren #168", () => {
|
it("async function with space-before-function-paren #168", () => {
|
||||||
verifyAndAssertMessages("it('handles updates', async function() {});",
|
verifyAndAssertMessages(
|
||||||
|
"it('handles updates', async function() {});",
|
||||||
{ "space-before-function-paren": [1, "never"] },
|
{ "space-before-function-paren": [1, "never"] },
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
@ -1474,11 +1490,7 @@ describe("verify", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("jsx and stringliteral #216", () => {
|
it("jsx and stringliteral #216", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("<div className=''></div>", {}, []);
|
||||||
"<div className=''></div>",
|
|
||||||
{},
|
|
||||||
[]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("getter/setter #218", () => {
|
it("getter/setter #218", () => {
|
||||||
@ -1488,7 +1500,11 @@ describe("verify", () => {
|
|||||||
set a (v) { }
|
set a (v) { }
|
||||||
}
|
}
|
||||||
`),
|
`),
|
||||||
{ "space-before-function-paren": 1, "keyword-spacing": [1, { "before": true }], "indent": 1 },
|
{
|
||||||
|
"space-before-function-paren": 1,
|
||||||
|
"keyword-spacing": [1, { before: true }],
|
||||||
|
indent: 1,
|
||||||
|
},
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -1552,11 +1568,13 @@ describe("verify", () => {
|
|||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
"var leakedGlobal = 1;",
|
"var leakedGlobal = 1;",
|
||||||
{ "no-implicit-globals": 1 },
|
{ "no-implicit-globals": 1 },
|
||||||
[ "1:5 Implicit global variable, assign as global property instead. no-implicit-globals" ],
|
[
|
||||||
|
"1:5 Implicit global variable, assign as global property instead. no-implicit-globals",
|
||||||
|
],
|
||||||
"script",
|
"script",
|
||||||
{
|
{
|
||||||
env: {},
|
env: {},
|
||||||
parserOptions: { ecmaVersion: 6, sourceType: "script" }
|
parserOptions: { ecmaVersion: 6, sourceType: "script" },
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -1569,7 +1587,7 @@ describe("verify", () => {
|
|||||||
"module",
|
"module",
|
||||||
{
|
{
|
||||||
env: {},
|
env: {},
|
||||||
parserOptions: { ecmaVersion: 6, sourceType: "module" }
|
parserOptions: { ecmaVersion: 6, sourceType: "module" },
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -1582,7 +1600,7 @@ describe("verify", () => {
|
|||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
env: {},
|
env: {},
|
||||||
parserOptions: { ecmaVersion: 6 }
|
parserOptions: { ecmaVersion: 6 },
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -1599,26 +1617,23 @@ describe("verify", () => {
|
|||||||
"module",
|
"module",
|
||||||
{
|
{
|
||||||
env: {},
|
env: {},
|
||||||
parserOptions: { ecmaVersion: 6, sourceType: "module", allowImportExportEverywhere: true }
|
parserOptions: {
|
||||||
|
ecmaVersion: 6,
|
||||||
|
sourceType: "module",
|
||||||
|
allowImportExportEverywhere: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("with does not crash parsing in script mode (strict off) #171", () => {
|
it("with does not crash parsing in script mode (strict off) #171", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("with (arguments) { length; }", {}, [], "script");
|
||||||
"with (arguments) { length; }",
|
|
||||||
{},
|
|
||||||
[],
|
|
||||||
"script"
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
xit("with does crash parsing in module mode (strict on) #171", () => {
|
xit("with does crash parsing in module mode (strict on) #171", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("with (arguments) { length; }", {}, [
|
||||||
"with (arguments) { length; }",
|
"1:1 Parsing error: 'with' in strict mode",
|
||||||
{},
|
]);
|
||||||
[ "1:1 Parsing error: 'with' in strict mode" ]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("new.target is not reported as undef #235", () => {
|
it("new.target is not reported as undef #235", () => {
|
||||||
@ -1723,24 +1738,18 @@ describe("verify", () => {
|
|||||||
new A
|
new A
|
||||||
`),
|
`),
|
||||||
{ "no-undef": 1, "no-unused-vars": 1, "no-redeclare": 1 },
|
{ "no-undef": 1, "no-unused-vars": 1, "no-redeclare": 1 },
|
||||||
[
|
["5:11 'b' is not defined. no-undef"]
|
||||||
"5:11 'b' is not defined. no-undef"
|
|
||||||
]
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("dynamic import support", () => {
|
it("dynamic import support", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages("import('test-module').then(() => {})", {}, []);
|
||||||
"import('test-module').then(() => {})",
|
|
||||||
{},
|
|
||||||
[]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("regex with es6 unicodeCodePointEscapes", () => {
|
it("regex with es6 unicodeCodePointEscapes", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
"string.replace(/[\u{0000A0}-\u{10FFFF}<>\&]/gmiu, (char) => `&#x${char.codePointAt(0).toString(16)};`);",
|
"string.replace(/[\u{0000A0}-\u{10FFFF}<>&]/gmiu, (char) => `&#x${char.codePointAt(0).toString(16)};`);",
|
||||||
{},
|
{},
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
|
|||||||
@ -27,7 +27,7 @@ ajv@^4.7.0:
|
|||||||
co "^4.6.0"
|
co "^4.6.0"
|
||||||
json-stable-stringify "^1.0.1"
|
json-stable-stringify "^1.0.1"
|
||||||
|
|
||||||
ansi-escapes@^1.1.0:
|
ansi-escapes@^1.0.0, ansi-escapes@^1.1.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
||||||
|
|
||||||
@ -39,6 +39,10 @@ ansi-styles@^2.2.1:
|
|||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
|
||||||
|
|
||||||
|
app-root-path@^2.0.0:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46"
|
||||||
|
|
||||||
argparse@^1.0.7:
|
argparse@^1.0.7:
|
||||||
version "1.0.9"
|
version "1.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
|
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
|
||||||
@ -259,16 +263,31 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
|
|||||||
strip-ansi "^3.0.0"
|
strip-ansi "^3.0.0"
|
||||||
supports-color "^2.0.0"
|
supports-color "^2.0.0"
|
||||||
|
|
||||||
|
ci-info@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
|
||||||
|
|
||||||
circular-json@^0.3.1:
|
circular-json@^0.3.1:
|
||||||
version "0.3.1"
|
version "0.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
|
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
|
||||||
|
|
||||||
cli-cursor@^1.0.1:
|
cli-cursor@^1.0.1, cli-cursor@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
|
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
|
||||||
dependencies:
|
dependencies:
|
||||||
restore-cursor "^1.0.1"
|
restore-cursor "^1.0.1"
|
||||||
|
|
||||||
|
cli-spinners@^0.1.2:
|
||||||
|
version "0.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c"
|
||||||
|
|
||||||
|
cli-truncate@^0.2.1:
|
||||||
|
version "0.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
|
||||||
|
dependencies:
|
||||||
|
slice-ansi "0.0.4"
|
||||||
|
string-width "^1.0.1"
|
||||||
|
|
||||||
cli-width@^2.0.0:
|
cli-width@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
|
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
|
||||||
@ -281,7 +300,7 @@ code-point-at@^1.0.0:
|
|||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
|
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
|
||||||
|
|
||||||
commander@2.9.0:
|
commander@2.9.0, commander@^2.9.0:
|
||||||
version "2.9.0"
|
version "2.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -307,12 +326,37 @@ core-util-is@~1.0.0:
|
|||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||||
|
|
||||||
|
cosmiconfig@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-1.1.0.tgz#0dea0f9804efdfb929fbb1b188e25553ea053d37"
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.1.2"
|
||||||
|
js-yaml "^3.4.3"
|
||||||
|
minimist "^1.2.0"
|
||||||
|
object-assign "^4.0.1"
|
||||||
|
os-homedir "^1.0.1"
|
||||||
|
parse-json "^2.2.0"
|
||||||
|
pinkie-promise "^2.0.0"
|
||||||
|
require-from-string "^1.1.0"
|
||||||
|
|
||||||
|
cross-spawn@^5.0.1:
|
||||||
|
version "5.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
|
||||||
|
dependencies:
|
||||||
|
lru-cache "^4.0.1"
|
||||||
|
shebang-command "^1.2.0"
|
||||||
|
which "^1.2.9"
|
||||||
|
|
||||||
d@1:
|
d@1:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
|
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
|
||||||
dependencies:
|
dependencies:
|
||||||
es5-ext "^0.10.9"
|
es5-ext "^0.10.9"
|
||||||
|
|
||||||
|
date-fns@^1.27.2:
|
||||||
|
version "1.28.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf"
|
||||||
|
|
||||||
debug@2.2.0:
|
debug@2.2.0:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
|
||||||
@ -356,6 +400,16 @@ doctrine@^2.0.0:
|
|||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
isarray "^1.0.0"
|
isarray "^1.0.0"
|
||||||
|
|
||||||
|
elegant-spinner@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
|
||||||
|
|
||||||
|
error-ex@^1.2.0:
|
||||||
|
version "1.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
|
||||||
|
dependencies:
|
||||||
|
is-arrayish "^0.2.1"
|
||||||
|
|
||||||
es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
|
es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
|
||||||
version "0.10.15"
|
version "0.10.15"
|
||||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.15.tgz#c330a5934c1ee21284a7c081a86e5fd937c91ea6"
|
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.15.tgz#c330a5934c1ee21284a7c081a86e5fd937c91ea6"
|
||||||
@ -421,9 +475,9 @@ escope@^3.6.0:
|
|||||||
esrecurse "^4.1.0"
|
esrecurse "^4.1.0"
|
||||||
estraverse "^4.1.1"
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
eslint-config-babel@^6.0.0:
|
eslint-config-babel@^7.0.1:
|
||||||
version "6.0.0"
|
version "7.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-config-babel/-/eslint-config-babel-6.0.0.tgz#66feedf6ce6e04abe585cec1a65b5bcc96bed50a"
|
resolved "https://registry.yarnpkg.com/eslint-config-babel/-/eslint-config-babel-7.0.1.tgz#aac7b79f2f06f52358a5a764fdc01fde23718572"
|
||||||
|
|
||||||
eslint-plugin-flowtype@^2.30.3:
|
eslint-plugin-flowtype@^2.30.3:
|
||||||
version "2.30.3"
|
version "2.30.3"
|
||||||
@ -431,6 +485,13 @@ eslint-plugin-flowtype@^2.30.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
lodash "^4.15.0"
|
lodash "^4.15.0"
|
||||||
|
|
||||||
|
eslint-plugin-prettier@^2.1.2:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.1.2.tgz#4b90f4ee7f92bfbe2e926017e1ca40eb628965ea"
|
||||||
|
dependencies:
|
||||||
|
fast-diff "^1.1.1"
|
||||||
|
jest-docblock "^20.0.1"
|
||||||
|
|
||||||
eslint@^3.18.0:
|
eslint@^3.18.0:
|
||||||
version "3.18.0"
|
version "3.18.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.18.0.tgz#647e985c4ae71502d20ac62c109f66d5104c8a4b"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.18.0.tgz#647e985c4ae71502d20ac62c109f66d5104c8a4b"
|
||||||
@ -514,15 +575,31 @@ event-emitter@~0.3.5:
|
|||||||
d "1"
|
d "1"
|
||||||
es5-ext "~0.10.14"
|
es5-ext "~0.10.14"
|
||||||
|
|
||||||
|
execa@^0.7.0:
|
||||||
|
version "0.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
|
||||||
|
dependencies:
|
||||||
|
cross-spawn "^5.0.1"
|
||||||
|
get-stream "^3.0.0"
|
||||||
|
is-stream "^1.1.0"
|
||||||
|
npm-run-path "^2.0.0"
|
||||||
|
p-finally "^1.0.0"
|
||||||
|
signal-exit "^3.0.0"
|
||||||
|
strip-eof "^1.0.0"
|
||||||
|
|
||||||
exit-hook@^1.0.0:
|
exit-hook@^1.0.0:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
|
resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
|
||||||
|
|
||||||
|
fast-diff@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.1.tgz#0aea0e4e605b6a2189f0e936d4b7fbaf1b7cfd9b"
|
||||||
|
|
||||||
fast-levenshtein@~2.0.4:
|
fast-levenshtein@~2.0.4:
|
||||||
version "2.0.6"
|
version "2.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||||
|
|
||||||
figures@^1.3.5:
|
figures@^1.3.5, figures@^1.7.0:
|
||||||
version "1.7.0"
|
version "1.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
|
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -536,6 +613,10 @@ file-entry-cache@^2.0.0:
|
|||||||
flat-cache "^1.2.1"
|
flat-cache "^1.2.1"
|
||||||
object-assign "^4.0.1"
|
object-assign "^4.0.1"
|
||||||
|
|
||||||
|
find-parent-dir@^0.3.0:
|
||||||
|
version "0.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
|
||||||
|
|
||||||
flat-cache@^1.2.1:
|
flat-cache@^1.2.1:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
|
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
|
||||||
@ -559,6 +640,10 @@ generate-object-property@^1.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-property "^1.0.0"
|
is-property "^1.0.0"
|
||||||
|
|
||||||
|
get-stream@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
|
||||||
|
|
||||||
glob@7.0.5:
|
glob@7.0.5:
|
||||||
version "7.0.5"
|
version "7.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95"
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95"
|
||||||
@ -618,6 +703,15 @@ has-flag@^1.0.0:
|
|||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
|
||||||
|
|
||||||
|
husky@^0.13.2:
|
||||||
|
version "0.13.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/husky/-/husky-0.13.4.tgz#48785c5028de3452a51c48c12c4f94b2124a1407"
|
||||||
|
dependencies:
|
||||||
|
chalk "^1.1.3"
|
||||||
|
find-parent-dir "^0.3.0"
|
||||||
|
is-ci "^1.0.9"
|
||||||
|
normalize-path "^1.0.0"
|
||||||
|
|
||||||
ignore@^3.2.0:
|
ignore@^3.2.0:
|
||||||
version "3.2.6"
|
version "3.2.6"
|
||||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.6.tgz#26e8da0644be0bb4cb39516f6c79f0e0f4ffe48c"
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.6.tgz#26e8da0644be0bb4cb39516f6c79f0e0f4ffe48c"
|
||||||
@ -626,6 +720,16 @@ imurmurhash@^0.1.4:
|
|||||||
version "0.1.4"
|
version "0.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
||||||
|
|
||||||
|
indent-string@^2.1.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
|
||||||
|
dependencies:
|
||||||
|
repeating "^2.0.0"
|
||||||
|
|
||||||
|
indent-string@^3.0.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d"
|
||||||
|
|
||||||
inflight@^1.0.4:
|
inflight@^1.0.4:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
@ -665,6 +769,22 @@ invariant@^2.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.0.0"
|
loose-envify "^1.0.0"
|
||||||
|
|
||||||
|
is-arrayish@^0.2.1:
|
||||||
|
version "0.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
||||||
|
|
||||||
|
is-ci@^1.0.9:
|
||||||
|
version "1.0.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e"
|
||||||
|
dependencies:
|
||||||
|
ci-info "^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"
|
||||||
|
|
||||||
is-fullwidth-code-point@^1.0.0:
|
is-fullwidth-code-point@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
|
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
|
||||||
@ -700,6 +820,10 @@ is-path-inside@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
path-is-inside "^1.0.1"
|
path-is-inside "^1.0.1"
|
||||||
|
|
||||||
|
is-promise@^2.1.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
|
||||||
|
|
||||||
is-property@^1.0.0:
|
is-property@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
|
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
|
||||||
@ -710,15 +834,27 @@ is-resolvable@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
tryit "^1.0.1"
|
tryit "^1.0.1"
|
||||||
|
|
||||||
|
is-stream@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||||
|
|
||||||
isarray@^1.0.0, isarray@~1.0.0:
|
isarray@^1.0.0, isarray@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||||
|
|
||||||
|
isexe@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||||
|
|
||||||
|
jest-docblock@^20.0.1:
|
||||||
|
version "20.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712"
|
||||||
|
|
||||||
js-tokens@^3.0.0:
|
js-tokens@^3.0.0:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
|
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
|
||||||
|
|
||||||
js-yaml@^3.5.1:
|
js-yaml@^3.4.3, js-yaml@^3.5.1:
|
||||||
version "3.8.2"
|
version "3.8.2"
|
||||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721"
|
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -750,6 +886,67 @@ levn@^0.3.0, levn@~0.3.0:
|
|||||||
prelude-ls "~1.1.2"
|
prelude-ls "~1.1.2"
|
||||||
type-check "~0.3.2"
|
type-check "~0.3.2"
|
||||||
|
|
||||||
|
lint-staged@^3.6.1:
|
||||||
|
version "3.6.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.6.1.tgz#24423c8b7bd99d96e15acd1ac8cb392a78e58582"
|
||||||
|
dependencies:
|
||||||
|
app-root-path "^2.0.0"
|
||||||
|
cosmiconfig "^1.1.0"
|
||||||
|
execa "^0.7.0"
|
||||||
|
listr "^0.12.0"
|
||||||
|
lodash.chunk "^4.2.0"
|
||||||
|
minimatch "^3.0.0"
|
||||||
|
npm-which "^3.0.1"
|
||||||
|
p-map "^1.1.1"
|
||||||
|
staged-git-files "0.0.4"
|
||||||
|
|
||||||
|
listr-silent-renderer@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
|
||||||
|
|
||||||
|
listr-update-renderer@^0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9"
|
||||||
|
dependencies:
|
||||||
|
chalk "^1.1.3"
|
||||||
|
cli-truncate "^0.2.1"
|
||||||
|
elegant-spinner "^1.0.1"
|
||||||
|
figures "^1.7.0"
|
||||||
|
indent-string "^3.0.0"
|
||||||
|
log-symbols "^1.0.2"
|
||||||
|
log-update "^1.0.2"
|
||||||
|
strip-ansi "^3.0.1"
|
||||||
|
|
||||||
|
listr-verbose-renderer@^0.4.0:
|
||||||
|
version "0.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f"
|
||||||
|
dependencies:
|
||||||
|
chalk "^1.1.3"
|
||||||
|
cli-cursor "^1.0.2"
|
||||||
|
date-fns "^1.27.2"
|
||||||
|
figures "^1.7.0"
|
||||||
|
|
||||||
|
listr@^0.12.0:
|
||||||
|
version "0.12.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a"
|
||||||
|
dependencies:
|
||||||
|
chalk "^1.1.3"
|
||||||
|
cli-truncate "^0.2.1"
|
||||||
|
figures "^1.7.0"
|
||||||
|
indent-string "^2.1.0"
|
||||||
|
is-promise "^2.1.0"
|
||||||
|
is-stream "^1.1.0"
|
||||||
|
listr-silent-renderer "^1.1.1"
|
||||||
|
listr-update-renderer "^0.2.0"
|
||||||
|
listr-verbose-renderer "^0.4.0"
|
||||||
|
log-symbols "^1.0.2"
|
||||||
|
log-update "^1.0.2"
|
||||||
|
ora "^0.2.3"
|
||||||
|
p-map "^1.1.1"
|
||||||
|
rxjs "^5.0.0-beta.11"
|
||||||
|
stream-to-observable "^0.1.0"
|
||||||
|
strip-ansi "^3.0.1"
|
||||||
|
|
||||||
lodash._baseassign@^3.0.0:
|
lodash._baseassign@^3.0.0:
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
|
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
|
||||||
@ -773,6 +970,10 @@ lodash._isiterateecall@^3.0.0:
|
|||||||
version "3.0.9"
|
version "3.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
|
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
|
||||||
|
|
||||||
|
lodash.chunk@^4.2.0:
|
||||||
|
version "4.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
|
||||||
|
|
||||||
lodash.create@3.1.1:
|
lodash.create@3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
|
resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
|
||||||
@ -805,13 +1006,33 @@ lodash@^4.0.0, lodash@^4.15.0, lodash@^4.2.0, lodash@^4.3.0:
|
|||||||
version "4.17.4"
|
version "4.17.4"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
||||||
|
|
||||||
|
log-symbols@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
|
||||||
|
dependencies:
|
||||||
|
chalk "^1.0.0"
|
||||||
|
|
||||||
|
log-update@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1"
|
||||||
|
dependencies:
|
||||||
|
ansi-escapes "^1.0.0"
|
||||||
|
cli-cursor "^1.0.2"
|
||||||
|
|
||||||
loose-envify@^1.0.0:
|
loose-envify@^1.0.0:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
|
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
|
||||||
dependencies:
|
dependencies:
|
||||||
js-tokens "^3.0.0"
|
js-tokens "^3.0.0"
|
||||||
|
|
||||||
minimatch@^3.0.2:
|
lru-cache@^4.0.1:
|
||||||
|
version "4.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
|
||||||
|
dependencies:
|
||||||
|
pseudomap "^1.0.2"
|
||||||
|
yallist "^2.1.2"
|
||||||
|
|
||||||
|
minimatch@^3.0.0, minimatch@^3.0.2:
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -821,6 +1042,10 @@ minimist@0.0.8:
|
|||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||||
|
|
||||||
|
minimist@^1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
||||||
|
|
||||||
mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1:
|
mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1:
|
||||||
version "0.5.1"
|
version "0.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||||
@ -859,6 +1084,30 @@ natural-compare@^1.4.0:
|
|||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||||
|
|
||||||
|
normalize-path@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
|
||||||
|
|
||||||
|
npm-path@^2.0.2:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe"
|
||||||
|
dependencies:
|
||||||
|
which "^1.2.10"
|
||||||
|
|
||||||
|
npm-run-path@^2.0.0:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
|
||||||
|
dependencies:
|
||||||
|
path-key "^2.0.0"
|
||||||
|
|
||||||
|
npm-which@^3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
|
||||||
|
dependencies:
|
||||||
|
commander "^2.9.0"
|
||||||
|
npm-path "^2.0.2"
|
||||||
|
which "^1.2.10"
|
||||||
|
|
||||||
number-is-nan@^1.0.0:
|
number-is-nan@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||||
@ -888,10 +1137,33 @@ optionator@^0.8.2:
|
|||||||
type-check "~0.3.2"
|
type-check "~0.3.2"
|
||||||
wordwrap "~1.0.0"
|
wordwrap "~1.0.0"
|
||||||
|
|
||||||
os-homedir@^1.0.0:
|
ora@^0.2.3:
|
||||||
|
version "0.2.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4"
|
||||||
|
dependencies:
|
||||||
|
chalk "^1.1.1"
|
||||||
|
cli-cursor "^1.0.2"
|
||||||
|
cli-spinners "^0.1.2"
|
||||||
|
object-assign "^4.0.1"
|
||||||
|
|
||||||
|
os-homedir@^1.0.0, os-homedir@^1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
|
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
|
||||||
|
|
||||||
|
p-finally@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
|
||||||
|
|
||||||
|
p-map@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a"
|
||||||
|
|
||||||
|
parse-json@^2.2.0:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
|
||||||
|
dependencies:
|
||||||
|
error-ex "^1.2.0"
|
||||||
|
|
||||||
path-is-absolute@^1.0.0:
|
path-is-absolute@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||||
@ -900,6 +1172,10 @@ path-is-inside@^1.0.1:
|
|||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
||||||
|
|
||||||
|
path-key@^2.0.0:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
||||||
|
|
||||||
path-parse@^1.0.5:
|
path-parse@^1.0.5:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
|
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
|
||||||
@ -926,6 +1202,10 @@ prelude-ls@~1.1.2:
|
|||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||||
|
|
||||||
|
prettier@1.4.4:
|
||||||
|
version "1.4.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.4.4.tgz#a8d1447b14c9bf67e6d420dcadd10fb9a4fad65a"
|
||||||
|
|
||||||
process-nextick-args@~1.0.6:
|
process-nextick-args@~1.0.6:
|
||||||
version "1.0.7"
|
version "1.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
||||||
@ -934,6 +1214,10 @@ progress@^1.1.8:
|
|||||||
version "1.1.8"
|
version "1.1.8"
|
||||||
resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
|
resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
|
||||||
|
|
||||||
|
pseudomap@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
||||||
|
|
||||||
readable-stream@^2.2.2:
|
readable-stream@^2.2.2:
|
||||||
version "2.2.6"
|
version "2.2.6"
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.6.tgz#8b43aed76e71483938d12a8d46c6cf1a00b1f816"
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.6.tgz#8b43aed76e71483938d12a8d46c6cf1a00b1f816"
|
||||||
@ -964,6 +1248,16 @@ regenerator-runtime@^0.10.0:
|
|||||||
version "0.10.3"
|
version "0.10.3"
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e"
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e"
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
require-from-string@^1.1.0:
|
||||||
|
version "1.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418"
|
||||||
|
|
||||||
require-uncached@^1.0.2:
|
require-uncached@^1.0.2:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
|
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
|
||||||
@ -1004,6 +1298,22 @@ rx-lite@^3.1.2:
|
|||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
|
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
|
||||||
|
|
||||||
|
rxjs@^5.0.0-beta.11:
|
||||||
|
version "5.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.1.tgz#b62f757f279445d265a18a58fb0a70dc90e91626"
|
||||||
|
dependencies:
|
||||||
|
symbol-observable "^1.0.1"
|
||||||
|
|
||||||
|
shebang-command@^1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
||||||
|
dependencies:
|
||||||
|
shebang-regex "^1.0.0"
|
||||||
|
|
||||||
|
shebang-regex@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
||||||
|
|
||||||
shelljs@^0.7.5:
|
shelljs@^0.7.5:
|
||||||
version "0.7.7"
|
version "0.7.7"
|
||||||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
|
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
|
||||||
@ -1012,6 +1322,10 @@ shelljs@^0.7.5:
|
|||||||
interpret "^1.0.0"
|
interpret "^1.0.0"
|
||||||
rechoir "^0.6.2"
|
rechoir "^0.6.2"
|
||||||
|
|
||||||
|
signal-exit@^3.0.0:
|
||||||
|
version "3.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||||
|
|
||||||
slice-ansi@0.0.4:
|
slice-ansi@0.0.4:
|
||||||
version "0.0.4"
|
version "0.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
|
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
|
||||||
@ -1020,6 +1334,14 @@ sprintf-js@~1.0.2:
|
|||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||||
|
|
||||||
|
staged-git-files@0.0.4:
|
||||||
|
version "0.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35"
|
||||||
|
|
||||||
|
stream-to-observable@^0.1.0:
|
||||||
|
version "0.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe"
|
||||||
|
|
||||||
string-width@^1.0.1:
|
string-width@^1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
|
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
|
||||||
@ -1039,7 +1361,7 @@ string_decoder@~0.10.x:
|
|||||||
version "0.10.31"
|
version "0.10.31"
|
||||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
|
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
|
||||||
|
|
||||||
strip-ansi@^3.0.0:
|
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
|
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -1049,6 +1371,10 @@ strip-bom@^3.0.0:
|
|||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
|
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
|
||||||
|
|
||||||
|
strip-eof@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
|
||||||
|
|
||||||
strip-json-comments@~2.0.1:
|
strip-json-comments@~2.0.1:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||||
@ -1063,6 +1389,10 @@ supports-color@^2.0.0:
|
|||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
||||||
|
|
||||||
|
symbol-observable@^1.0.1:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
|
||||||
|
|
||||||
table@^3.7.8:
|
table@^3.7.8:
|
||||||
version "3.8.3"
|
version "3.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
|
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
|
||||||
@ -1110,6 +1440,12 @@ util-deprecate@~1.0.1:
|
|||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||||
|
|
||||||
|
which@^1.2.10, which@^1.2.9:
|
||||||
|
version "1.2.14"
|
||||||
|
resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
|
||||||
|
dependencies:
|
||||||
|
isexe "^2.0.0"
|
||||||
|
|
||||||
wordwrap@~1.0.0:
|
wordwrap@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
||||||
@ -1127,3 +1463,7 @@ write@^0.2.1:
|
|||||||
xtend@^4.0.0:
|
xtend@^4.0.0:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||||
|
|
||||||
|
yallist@^2.1.2:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user