summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def')
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/babel.js105
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/core.js367
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/e4x.js84
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/es6.js217
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/es7.js36
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/esprima.js96
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/flow.js269
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/jsx.js100
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/mozilla.js49
9 files changed, 0 insertions, 1323 deletions
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/babel.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/babel.js
deleted file mode 100644
index 608ffbc7b7..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/babel.js
+++ /dev/null
@@ -1,105 +0,0 @@
-require("./es7");
-
-var types = require("../lib/types");
-var defaults = require("../lib/shared").defaults;
-var def = types.Type.def;
-var or = types.Type.or;
-
-def("Noop")
- .bases("Node")
- .build();
-
-def("DoExpression")
- .bases("Expression")
- .build("body")
- .field("body", [def("Statement")]);
-
-def("Super")
- .bases("Expression")
- .build();
-
-def("BindExpression")
- .bases("Expression")
- .build("object", "callee")
- .field("object", or(def("Expression"), null))
- .field("callee", def("Expression"));
-
-def("Decorator")
- .bases("Node")
- .build("expression")
- .field("expression", def("Expression"));
-
-def("Property")
- .field("decorators",
- or([def("Decorator")], null),
- defaults["null"]);
-
-def("MethodDefinition")
- .field("decorators",
- or([def("Decorator")], null),
- defaults["null"]);
-
-def("MetaProperty")
- .bases("Expression")
- .build("meta", "property")
- .field("meta", def("Identifier"))
- .field("property", def("Identifier"));
-
-def("ParenthesizedExpression")
- .bases("Expression")
- .build("expression")
- .field("expression", def("Expression"));
-
-def("ImportSpecifier")
- .bases("ModuleSpecifier")
- .build("imported", "local")
- .field("imported", def("Identifier"));
-
-def("ImportDefaultSpecifier")
- .bases("ModuleSpecifier")
- .build("local");
-
-def("ImportNamespaceSpecifier")
- .bases("ModuleSpecifier")
- .build("local");
-
-def("ExportDefaultDeclaration")
- .bases("Declaration")
- .build("declaration")
- .field("declaration", or(def("Declaration"), def("Expression")));
-
-def("ExportNamedDeclaration")
- .bases("Declaration")
- .build("declaration", "specifiers", "source")
- .field("declaration", or(def("Declaration"), null))
- .field("specifiers", [def("ExportSpecifier")], defaults.emptyArray)
- .field("source", or(def("Literal"), null), defaults["null"]);
-
-def("ExportSpecifier")
- .bases("ModuleSpecifier")
- .build("local", "exported")
- .field("exported", def("Identifier"));
-
-def("ExportNamespaceSpecifier")
- .bases("Specifier")
- .build("exported")
- .field("exported", def("Identifier"));
-
-def("ExportDefaultSpecifier")
- .bases("Specifier")
- .build("exported")
- .field("exported", def("Identifier"));
-
-def("ExportAllDeclaration")
- .bases("Declaration")
- .build("exported", "source")
- .field("exported", or(def("Identifier"), null))
- .field("source", def("Literal"));
-
-def("CommentBlock")
- .bases("Comment")
- .build("value", /*optional:*/ "leading", "trailing");
-
-def("CommentLine")
- .bases("Comment")
- .build("value", /*optional:*/ "leading", "trailing");
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/core.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/core.js
deleted file mode 100644
index 2942c4b154..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/core.js
+++ /dev/null
@@ -1,367 +0,0 @@
-var types = require("../lib/types");
-var Type = types.Type;
-var def = Type.def;
-var or = Type.or;
-var shared = require("../lib/shared");
-var defaults = shared.defaults;
-var geq = shared.geq;
-
-// Abstract supertype of all syntactic entities that are allowed to have a
-// .loc field.
-def("Printable")
- .field("loc", or(
- def("SourceLocation"),
- null
- ), defaults["null"], true);
-
-def("Node")
- .bases("Printable")
- .field("type", String)
- .field("comments", or(
- [def("Comment")],
- null
- ), defaults["null"], true);
-
-def("SourceLocation")
- .build("start", "end", "source")
- .field("start", def("Position"))
- .field("end", def("Position"))
- .field("source", or(String, null), defaults["null"]);
-
-def("Position")
- .build("line", "column")
- .field("line", geq(1))
- .field("column", geq(0));
-
-def("File")
- .bases("Node")
- .build("program")
- .field("program", def("Program"));
-
-def("Program")
- .bases("Node")
- .build("body")
- .field("body", [def("Statement")]);
-
-def("Function")
- .bases("Node")
- .field("id", or(def("Identifier"), null), defaults["null"])
- .field("params", [def("Pattern")])
- .field("body", def("BlockStatement"));
-
-def("Statement").bases("Node");
-
-// The empty .build() here means that an EmptyStatement can be constructed
-// (i.e. it's not abstract) but that it needs no arguments.
-def("EmptyStatement").bases("Statement").build();
-
-def("BlockStatement")
- .bases("Statement")
- .build("body")
- .field("body", [def("Statement")]);
-
-// TODO Figure out how to silently coerce Expressions to
-// ExpressionStatements where a Statement was expected.
-def("ExpressionStatement")
- .bases("Statement")
- .build("expression")
- .field("expression", def("Expression"));
-
-def("IfStatement")
- .bases("Statement")
- .build("test", "consequent", "alternate")
- .field("test", def("Expression"))
- .field("consequent", def("Statement"))
- .field("alternate", or(def("Statement"), null), defaults["null"]);
-
-def("LabeledStatement")
- .bases("Statement")
- .build("label", "body")
- .field("label", def("Identifier"))
- .field("body", def("Statement"));
-
-def("BreakStatement")
- .bases("Statement")
- .build("label")
- .field("label", or(def("Identifier"), null), defaults["null"]);
-
-def("ContinueStatement")
- .bases("Statement")
- .build("label")
- .field("label", or(def("Identifier"), null), defaults["null"]);
-
-def("WithStatement")
- .bases("Statement")
- .build("object", "body")
- .field("object", def("Expression"))
- .field("body", def("Statement"));
-
-def("SwitchStatement")
- .bases("Statement")
- .build("discriminant", "cases", "lexical")
- .field("discriminant", def("Expression"))
- .field("cases", [def("SwitchCase")])
- .field("lexical", Boolean, defaults["false"]);
-
-def("ReturnStatement")
- .bases("Statement")
- .build("argument")
- .field("argument", or(def("Expression"), null));
-
-def("ThrowStatement")
- .bases("Statement")
- .build("argument")
- .field("argument", def("Expression"));
-
-def("TryStatement")
- .bases("Statement")
- .build("block", "handler", "finalizer")
- .field("block", def("BlockStatement"))
- .field("handler", or(def("CatchClause"), null), function() {
- return this.handlers && this.handlers[0] || null;
- })
- .field("handlers", [def("CatchClause")], function() {
- return this.handler ? [this.handler] : [];
- }, true) // Indicates this field is hidden from eachField iteration.
- .field("guardedHandlers", [def("CatchClause")], defaults.emptyArray)
- .field("finalizer", or(def("BlockStatement"), null), defaults["null"]);
-
-def("CatchClause")
- .bases("Node")
- .build("param", "guard", "body")
- .field("param", def("Pattern"))
- .field("guard", or(def("Expression"), null), defaults["null"])
- .field("body", def("BlockStatement"));
-
-def("WhileStatement")
- .bases("Statement")
- .build("test", "body")
- .field("test", def("Expression"))
- .field("body", def("Statement"));
-
-def("DoWhileStatement")
- .bases("Statement")
- .build("body", "test")
- .field("body", def("Statement"))
- .field("test", def("Expression"));
-
-def("ForStatement")
- .bases("Statement")
- .build("init", "test", "update", "body")
- .field("init", or(
- def("VariableDeclaration"),
- def("Expression"),
- null))
- .field("test", or(def("Expression"), null))
- .field("update", or(def("Expression"), null))
- .field("body", def("Statement"));
-
-def("ForInStatement")
- .bases("Statement")
- .build("left", "right", "body")
- .field("left", or(
- def("VariableDeclaration"),
- def("Expression")))
- .field("right", def("Expression"))
- .field("body", def("Statement"));
-
-def("DebuggerStatement").bases("Statement").build();
-
-def("Declaration").bases("Statement");
-
-def("FunctionDeclaration")
- .bases("Function", "Declaration")
- .build("id", "params", "body")
- .field("id", def("Identifier"));
-
-def("FunctionExpression")
- .bases("Function", "Expression")
- .build("id", "params", "body");
-
-def("VariableDeclaration")
- .bases("Declaration")
- .build("kind", "declarations")
- .field("kind", or("var", "let", "const"))
- .field("declarations", [def("VariableDeclarator")]);
-
-def("VariableDeclarator")
- .bases("Node")
- .build("id", "init")
- .field("id", def("Pattern"))
- .field("init", or(def("Expression"), null));
-
-// TODO Are all Expressions really Patterns?
-def("Expression").bases("Node", "Pattern");
-
-def("ThisExpression").bases("Expression").build();
-
-def("ArrayExpression")
- .bases("Expression")
- .build("elements")
- .field("elements", [or(def("Expression"), null)]);
-
-def("ObjectExpression")
- .bases("Expression")
- .build("properties")
- .field("properties", [def("Property")]);
-
-// TODO Not in the Mozilla Parser API, but used by Esprima.
-def("Property")
- .bases("Node") // Want to be able to visit Property Nodes.
- .build("kind", "key", "value")
- .field("kind", or("init", "get", "set"))
- .field("key", or(def("Literal"), def("Identifier")))
- .field("value", def("Expression"));
-
-def("SequenceExpression")
- .bases("Expression")
- .build("expressions")
- .field("expressions", [def("Expression")]);
-
-var UnaryOperator = or(
- "-", "+", "!", "~",
- "typeof", "void", "delete");
-
-def("UnaryExpression")
- .bases("Expression")
- .build("operator", "argument", "prefix")
- .field("operator", UnaryOperator)
- .field("argument", def("Expression"))
- // Esprima doesn't bother with this field, presumably because it's
- // always true for unary operators.
- .field("prefix", Boolean, defaults["true"]);
-
-var BinaryOperator = or(
- "==", "!=", "===", "!==",
- "<", "<=", ">", ">=",
- "<<", ">>", ">>>",
- "+", "-", "*", "/", "%",
- "&", // TODO Missing from the Parser API.
- "|", "^", "in",
- "instanceof", "..");
-
-def("BinaryExpression")
- .bases("Expression")
- .build("operator", "left", "right")
- .field("operator", BinaryOperator)
- .field("left", def("Expression"))
- .field("right", def("Expression"));
-
-var AssignmentOperator = or(
- "=", "+=", "-=", "*=", "/=", "%=",
- "<<=", ">>=", ">>>=",
- "|=", "^=", "&=");
-
-def("AssignmentExpression")
- .bases("Expression")
- .build("operator", "left", "right")
- .field("operator", AssignmentOperator)
- .field("left", def("Pattern"))
- .field("right", def("Expression"));
-
-var UpdateOperator = or("++", "--");
-
-def("UpdateExpression")
- .bases("Expression")
- .build("operator", "argument", "prefix")
- .field("operator", UpdateOperator)
- .field("argument", def("Expression"))
- .field("prefix", Boolean);
-
-var LogicalOperator = or("||", "&&");
-
-def("LogicalExpression")
- .bases("Expression")
- .build("operator", "left", "right")
- .field("operator", LogicalOperator)
- .field("left", def("Expression"))
- .field("right", def("Expression"));
-
-def("ConditionalExpression")
- .bases("Expression")
- .build("test", "consequent", "alternate")
- .field("test", def("Expression"))
- .field("consequent", def("Expression"))
- .field("alternate", def("Expression"));
-
-def("NewExpression")
- .bases("Expression")
- .build("callee", "arguments")
- .field("callee", def("Expression"))
- // The Mozilla Parser API gives this type as [or(def("Expression"),
- // null)], but null values don't really make sense at the call site.
- // TODO Report this nonsense.
- .field("arguments", [def("Expression")]);
-
-def("CallExpression")
- .bases("Expression")
- .build("callee", "arguments")
- .field("callee", def("Expression"))
- // See comment for NewExpression above.
- .field("arguments", [def("Expression")]);
-
-def("MemberExpression")
- .bases("Expression")
- .build("object", "property", "computed")
- .field("object", def("Expression"))
- .field("property", or(def("Identifier"), def("Expression")))
- .field("computed", Boolean, function(){
- var type = this.property.type;
- if (type === 'Literal' ||
- type === 'MemberExpression' ||
- type === 'BinaryExpression') {
- return true;
- }
- return false;
- });
-
-def("Pattern").bases("Node");
-
-def("SwitchCase")
- .bases("Node")
- .build("test", "consequent")
- .field("test", or(def("Expression"), null))
- .field("consequent", [def("Statement")]);
-
-def("Identifier")
- // But aren't Expressions and Patterns already Nodes? TODO Report this.
- .bases("Node", "Expression", "Pattern")
- .build("name")
- .field("name", String);
-
-def("Literal")
- // But aren't Expressions already Nodes? TODO Report this.
- .bases("Node", "Expression")
- .build("value")
- .field("value", or(String, Boolean, null, Number, RegExp))
- .field("regex", or({
- pattern: String,
- flags: String
- }, null), function() {
- if (this.value instanceof RegExp) {
- var flags = "";
-
- if (this.value.ignoreCase) flags += "i";
- if (this.value.multiline) flags += "m";
- if (this.value.global) flags += "g";
-
- return {
- pattern: this.value.source,
- flags: flags
- };
- }
-
- return null;
- });
-
-// Abstract (non-buildable) comment supertype. Not a Node.
-def("Comment")
- .bases("Printable")
- .field("value", String)
- // A .leading comment comes before the node, whereas a .trailing
- // comment comes after it. These two fields should not both be true,
- // but they might both be false when the comment falls inside a node
- // and the node has no children for the comment to lead or trail,
- // e.g. { /*dangling*/ }.
- .field("leading", Boolean, defaults["true"])
- .field("trailing", Boolean, defaults["false"]);
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/e4x.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/e4x.js
deleted file mode 100644
index 22ac0fff4f..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/e4x.js
+++ /dev/null
@@ -1,84 +0,0 @@
-require("./core");
-var types = require("../lib/types");
-var def = types.Type.def;
-var or = types.Type.or;
-
-// Note that none of these types are buildable because the Mozilla Parser
-// API doesn't specify any builder functions, and nobody uses E4X anymore.
-
-def("XMLDefaultDeclaration")
- .bases("Declaration")
- .field("namespace", def("Expression"));
-
-def("XMLAnyName").bases("Expression");
-
-def("XMLQualifiedIdentifier")
- .bases("Expression")
- .field("left", or(def("Identifier"), def("XMLAnyName")))
- .field("right", or(def("Identifier"), def("Expression")))
- .field("computed", Boolean);
-
-def("XMLFunctionQualifiedIdentifier")
- .bases("Expression")
- .field("right", or(def("Identifier"), def("Expression")))
- .field("computed", Boolean);
-
-def("XMLAttributeSelector")
- .bases("Expression")
- .field("attribute", def("Expression"));
-
-def("XMLFilterExpression")
- .bases("Expression")
- .field("left", def("Expression"))
- .field("right", def("Expression"));
-
-def("XMLElement")
- .bases("XML", "Expression")
- .field("contents", [def("XML")]);
-
-def("XMLList")
- .bases("XML", "Expression")
- .field("contents", [def("XML")]);
-
-def("XML").bases("Node");
-
-def("XMLEscape")
- .bases("XML")
- .field("expression", def("Expression"));
-
-def("XMLText")
- .bases("XML")
- .field("text", String);
-
-def("XMLStartTag")
- .bases("XML")
- .field("contents", [def("XML")]);
-
-def("XMLEndTag")
- .bases("XML")
- .field("contents", [def("XML")]);
-
-def("XMLPointTag")
- .bases("XML")
- .field("contents", [def("XML")]);
-
-def("XMLName")
- .bases("XML")
- .field("contents", or(String, [def("XML")]));
-
-def("XMLAttribute")
- .bases("XML")
- .field("value", String);
-
-def("XMLCdata")
- .bases("XML")
- .field("contents", String);
-
-def("XMLComment")
- .bases("XML")
- .field("contents", String);
-
-def("XMLProcessingInstruction")
- .bases("XML")
- .field("target", String)
- .field("contents", or(String, null));
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/es6.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/es6.js
deleted file mode 100644
index b73bc07c4b..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/es6.js
+++ /dev/null
@@ -1,217 +0,0 @@
-require("./core");
-var types = require("../lib/types");
-var def = types.Type.def;
-var or = types.Type.or;
-var defaults = require("../lib/shared").defaults;
-
-def("Function")
- .field("generator", Boolean, defaults["false"])
- .field("expression", Boolean, defaults["false"])
- .field("defaults", [or(def("Expression"), null)], defaults.emptyArray)
- // TODO This could be represented as a RestElement in .params.
- .field("rest", or(def("Identifier"), null), defaults["null"]);
-
-// The ESTree way of representing a ...rest parameter.
-def("RestElement")
- .bases("Pattern")
- .build("argument")
- .field("argument", def("Pattern"));
-
-def("SpreadElementPattern")
- .bases("Pattern")
- .build("argument")
- .field("argument", def("Pattern"));
-
-def("FunctionDeclaration")
- .build("id", "params", "body", "generator", "expression");
-
-def("FunctionExpression")
- .build("id", "params", "body", "generator", "expression");
-
-// The Parser API calls this ArrowExpression, but Esprima and all other
-// actual parsers use ArrowFunctionExpression.
-def("ArrowFunctionExpression")
- .bases("Function", "Expression")
- .build("params", "body", "expression")
- // The forced null value here is compatible with the overridden
- // definition of the "id" field in the Function interface.
- .field("id", null, defaults["null"])
- // Arrow function bodies are allowed to be expressions.
- .field("body", or(def("BlockStatement"), def("Expression")))
- // The current spec forbids arrow generators, so I have taken the
- // liberty of enforcing that. TODO Report this.
- .field("generator", false, defaults["false"]);
-
-def("YieldExpression")
- .bases("Expression")
- .build("argument", "delegate")
- .field("argument", or(def("Expression"), null))
- .field("delegate", Boolean, defaults["false"]);
-
-def("GeneratorExpression")
- .bases("Expression")
- .build("body", "blocks", "filter")
- .field("body", def("Expression"))
- .field("blocks", [def("ComprehensionBlock")])
- .field("filter", or(def("Expression"), null));
-
-def("ComprehensionExpression")
- .bases("Expression")
- .build("body", "blocks", "filter")
- .field("body", def("Expression"))
- .field("blocks", [def("ComprehensionBlock")])
- .field("filter", or(def("Expression"), null));
-
-def("ComprehensionBlock")
- .bases("Node")
- .build("left", "right", "each")
- .field("left", def("Pattern"))
- .field("right", def("Expression"))
- .field("each", Boolean);
-
-def("Property")
- .field("key", or(def("Literal"), def("Identifier"), def("Expression")))
- .field("value", or(def("Expression"), def("Pattern")))
- .field("method", Boolean, defaults["false"])
- .field("shorthand", Boolean, defaults["false"])
- .field("computed", Boolean, defaults["false"]);
-
-def("PropertyPattern")
- .bases("Pattern")
- .build("key", "pattern")
- .field("key", or(def("Literal"), def("Identifier"), def("Expression")))
- .field("pattern", def("Pattern"))
- .field("computed", Boolean, defaults["false"]);
-
-def("ObjectPattern")
- .bases("Pattern")
- .build("properties")
- .field("properties", [or(def("PropertyPattern"), def("Property"))]);
-
-def("ArrayPattern")
- .bases("Pattern")
- .build("elements")
- .field("elements", [or(def("Pattern"), null)]);
-
-def("MethodDefinition")
- .bases("Declaration")
- .build("kind", "key", "value", "static")
- .field("kind", or("constructor", "method", "get", "set"))
- .field("key", or(def("Literal"), def("Identifier"), def("Expression")))
- .field("value", def("Function"))
- .field("computed", Boolean, defaults["false"])
- .field("static", Boolean, defaults["false"]);
-
-def("SpreadElement")
- .bases("Node")
- .build("argument")
- .field("argument", def("Expression"));
-
-def("ArrayExpression")
- .field("elements", [or(
- def("Expression"),
- def("SpreadElement"),
- def("RestElement"),
- null
- )]);
-
-def("NewExpression")
- .field("arguments", [or(def("Expression"), def("SpreadElement"))]);
-
-def("CallExpression")
- .field("arguments", [or(def("Expression"), def("SpreadElement"))]);
-
-// Note: this node type is *not* an AssignmentExpression with a Pattern on
-// the left-hand side! The existing AssignmentExpression type already
-// supports destructuring assignments. AssignmentPattern nodes may appear
-// wherever a Pattern is allowed, and the right-hand side represents a
-// default value to be destructured against the left-hand side, if no
-// value is otherwise provided. For example: default parameter values.
-def("AssignmentPattern")
- .bases("Pattern")
- .build("left", "right")
- .field("left", def("Pattern"))
- .field("right", def("Expression"));
-
-var ClassBodyElement = or(
- def("MethodDefinition"),
- def("VariableDeclarator"),
- def("ClassPropertyDefinition"),
- def("ClassProperty")
-);
-
-def("ClassProperty")
- .bases("Declaration")
- .build("key")
- .field("key", or(def("Literal"), def("Identifier"), def("Expression")))
- .field("computed", Boolean, defaults["false"]);
-
-def("ClassPropertyDefinition") // static property
- .bases("Declaration")
- .build("definition")
- // Yes, Virginia, circular definitions are permitted.
- .field("definition", ClassBodyElement);
-
-def("ClassBody")
- .bases("Declaration")
- .build("body")
- .field("body", [ClassBodyElement]);
-
-def("ClassDeclaration")
- .bases("Declaration")
- .build("id", "body", "superClass")
- .field("id", or(def("Identifier"), null))
- .field("body", def("ClassBody"))
- .field("superClass", or(def("Expression"), null), defaults["null"]);
-
-def("ClassExpression")
- .bases("Expression")
- .build("id", "body", "superClass")
- .field("id", or(def("Identifier"), null), defaults["null"])
- .field("body", def("ClassBody"))
- .field("superClass", or(def("Expression"), null), defaults["null"])
- .field("implements", [def("ClassImplements")], defaults.emptyArray);
-
-def("ClassImplements")
- .bases("Node")
- .build("id")
- .field("id", def("Identifier"))
- .field("superClass", or(def("Expression"), null), defaults["null"]);
-
-// Specifier and ModuleSpecifier are abstract non-standard types
-// introduced for definitional convenience.
-def("Specifier").bases("Node");
-
-// This supertype is shared/abused by both def/babel.js and
-// def/esprima.js. In the future, it will be possible to load only one set
-// of definitions appropriate for a given parser, but until then we must
-// rely on default functions to reconcile the conflicting AST formats.
-def("ModuleSpecifier")
- .bases("Specifier")
- // This local field is used by Babel/Acorn. It should not technically
- // be optional in the Babel/Acorn AST format, but it must be optional
- // in the Esprima AST format.
- .field("local", or(def("Identifier"), null), defaults["null"])
- // The id and name fields are used by Esprima. The id field should not
- // technically be optional in the Esprima AST format, but it must be
- // optional in the Babel/Acorn AST format.
- .field("id", or(def("Identifier"), null), defaults["null"])
- .field("name", or(def("Identifier"), null), defaults["null"]);
-
-def("TaggedTemplateExpression")
- .bases("Expression")
- .build("tag", "quasi")
- .field("tag", def("Expression"))
- .field("quasi", def("TemplateLiteral"));
-
-def("TemplateLiteral")
- .bases("Expression")
- .build("quasis", "expressions")
- .field("quasis", [def("TemplateElement")])
- .field("expressions", [def("Expression")]);
-
-def("TemplateElement")
- .bases("Node")
- .build("value", "tail")
- .field("value", {"cooked": String, "raw": String})
- .field("tail", Boolean);
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/es7.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/es7.js
deleted file mode 100644
index e9c50bd542..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/es7.js
+++ /dev/null
@@ -1,36 +0,0 @@
-require("./es6");
-
-var types = require("../lib/types");
-var def = types.Type.def;
-var or = types.Type.or;
-var builtin = types.builtInTypes;
-var defaults = require("../lib/shared").defaults;
-
-def("Function")
- .field("async", Boolean, defaults["false"]);
-
-def("SpreadProperty")
- .bases("Node")
- .build("argument")
- .field("argument", def("Expression"));
-
-def("ObjectExpression")
- .field("properties", [or(def("Property"), def("SpreadProperty"))]);
-
-def("SpreadPropertyPattern")
- .bases("Pattern")
- .build("argument")
- .field("argument", def("Pattern"));
-
-def("ObjectPattern")
- .field("properties", [or(
- def("Property"),
- def("PropertyPattern"),
- def("SpreadPropertyPattern")
- )]);
-
-def("AwaitExpression")
- .bases("Expression")
- .build("argument", "all")
- .field("argument", or(def("Expression"), null))
- .field("all", Boolean, defaults["false"]);
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/esprima.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/esprima.js
deleted file mode 100644
index a27e38f742..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/esprima.js
+++ /dev/null
@@ -1,96 +0,0 @@
-require("./es7");
-
-var types = require("../lib/types");
-var defaults = require("../lib/shared").defaults;
-var def = types.Type.def;
-var or = types.Type.or;
-
-def("VariableDeclaration")
- .field("declarations", [or(
- def("VariableDeclarator"),
- def("Identifier") // Esprima deviation.
- )]);
-
-def("Property")
- .field("value", or(
- def("Expression"),
- def("Pattern") // Esprima deviation.
- ));
-
-def("ArrayPattern")
- .field("elements", [or(
- def("Pattern"),
- def("SpreadElement"),
- null
- )]);
-
-def("ObjectPattern")
- .field("properties", [or(
- def("Property"),
- def("PropertyPattern"),
- def("SpreadPropertyPattern"),
- def("SpreadProperty") // Used by Esprima.
- )]);
-
-// Like ModuleSpecifier, except type:"ExportSpecifier" and buildable.
-// export {<id [as name]>} [from ...];
-def("ExportSpecifier")
- .bases("ModuleSpecifier")
- .build("id", "name");
-
-// export <*> from ...;
-def("ExportBatchSpecifier")
- .bases("Specifier")
- .build();
-
-// Like ModuleSpecifier, except type:"ImportSpecifier" and buildable.
-// import {<id [as name]>} from ...;
-def("ImportSpecifier")
- .bases("ModuleSpecifier")
- .build("id", "name");
-
-// import <* as id> from ...;
-def("ImportNamespaceSpecifier")
- .bases("ModuleSpecifier")
- .build("id");
-
-// import <id> from ...;
-def("ImportDefaultSpecifier")
- .bases("ModuleSpecifier")
- .build("id");
-
-def("ExportDeclaration")
- .bases("Declaration")
- .build("default", "declaration", "specifiers", "source")
- .field("default", Boolean)
- .field("declaration", or(
- def("Declaration"),
- def("Expression"), // Implies default.
- null
- ))
- .field("specifiers", [or(
- def("ExportSpecifier"),
- def("ExportBatchSpecifier")
- )], defaults.emptyArray)
- .field("source", or(
- def("Literal"),
- null
- ), defaults["null"]);
-
-def("ImportDeclaration")
- .bases("Declaration")
- .build("specifiers", "source")
- .field("specifiers", [or(
- def("ImportSpecifier"),
- def("ImportNamespaceSpecifier"),
- def("ImportDefaultSpecifier")
- )], defaults.emptyArray)
- .field("source", def("Literal"));
-
-def("Block")
- .bases("Comment")
- .build("value", /*optional:*/ "leading", "trailing");
-
-def("Line")
- .bases("Comment")
- .build("value", /*optional:*/ "leading", "trailing");
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/flow.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/flow.js
deleted file mode 100644
index b7774a6f00..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/flow.js
+++ /dev/null
@@ -1,269 +0,0 @@
-require("./es7");
-
-var types = require("../lib/types");
-var def = types.Type.def;
-var or = types.Type.or;
-var defaults = require("../lib/shared").defaults;
-
-// Type Annotations
-def("Type").bases("Node");
-
-def("AnyTypeAnnotation")
- .bases("Type")
- .build();
-
-def("MixedTypeAnnotation")
- .bases("Type")
- .build();
-
-def("VoidTypeAnnotation")
- .bases("Type")
- .build();
-
-def("NumberTypeAnnotation")
- .bases("Type")
- .build();
-
-def("NumberLiteralTypeAnnotation")
- .bases("Type")
- .build("value", "raw")
- .field("value", Number)
- .field("raw", String);
-
-def("StringTypeAnnotation")
- .bases("Type")
- .build();
-
-def("StringLiteralTypeAnnotation")
- .bases("Type")
- .build("value", "raw")
- .field("value", String)
- .field("raw", String);
-
-def("BooleanTypeAnnotation")
- .bases("Type")
- .build();
-
-def("BooleanLiteralTypeAnnotation")
- .bases("Type")
- .build("value", "raw")
- .field("value", Boolean)
- .field("raw", String);
-
-def("TypeAnnotation")
- .bases("Node")
- .build("typeAnnotation")
- .field("typeAnnotation", def("Type"));
-
-def("NullableTypeAnnotation")
- .bases("Type")
- .build("typeAnnotation")
- .field("typeAnnotation", def("Type"));
-
-def("NullLiteralTypeAnnotation")
- .bases("Type")
- .build();
-
-def("ThisTypeAnnotation")
- .bases("Type")
- .build();
-
-def("FunctionTypeAnnotation")
- .bases("Type")
- .build("params", "returnType", "rest", "typeParameters")
- .field("params", [def("FunctionTypeParam")])
- .field("returnType", def("Type"))
- .field("rest", or(def("FunctionTypeParam"), null))
- .field("typeParameters", or(def("TypeParameterDeclaration"), null));
-
-def("FunctionTypeParam")
- .bases("Node")
- .build("name", "typeAnnotation", "optional")
- .field("name", def("Identifier"))
- .field("typeAnnotation", def("Type"))
- .field("optional", Boolean);
-
-def("ArrayTypeAnnotation")
- .bases("Type")
- .build("elementType")
- .field("elementType", def("Type"));
-
-def("ObjectTypeAnnotation")
- .bases("Type")
- .build("properties")
- .field("properties", [def("ObjectTypeProperty")])
- .field("indexers", [def("ObjectTypeIndexer")], defaults.emptyArray)
- .field("callProperties",
- [def("ObjectTypeCallProperty")],
- defaults.emptyArray);
-
-def("ObjectTypeProperty")
- .bases("Node")
- .build("key", "value", "optional")
- .field("key", or(def("Literal"), def("Identifier")))
- .field("value", def("Type"))
- .field("optional", Boolean);
-
-def("ObjectTypeIndexer")
- .bases("Node")
- .build("id", "key", "value")
- .field("id", def("Identifier"))
- .field("key", def("Type"))
- .field("value", def("Type"));
-
-def("ObjectTypeCallProperty")
- .bases("Node")
- .build("value")
- .field("value", def("FunctionTypeAnnotation"))
- .field("static", Boolean, defaults["false"]);
-
-def("QualifiedTypeIdentifier")
- .bases("Node")
- .build("qualification", "id")
- .field("qualification",
- or(def("Identifier"),
- def("QualifiedTypeIdentifier")))
- .field("id", def("Identifier"));
-
-def("GenericTypeAnnotation")
- .bases("Type")
- .build("id", "typeParameters")
- .field("id", or(def("Identifier"), def("QualifiedTypeIdentifier")))
- .field("typeParameters", or(def("TypeParameterInstantiation"), null));
-
-def("MemberTypeAnnotation")
- .bases("Type")
- .build("object", "property")
- .field("object", def("Identifier"))
- .field("property",
- or(def("MemberTypeAnnotation"),
- def("GenericTypeAnnotation")));
-
-def("UnionTypeAnnotation")
- .bases("Type")
- .build("types")
- .field("types", [def("Type")]);
-
-def("IntersectionTypeAnnotation")
- .bases("Type")
- .build("types")
- .field("types", [def("Type")]);
-
-def("TypeofTypeAnnotation")
- .bases("Type")
- .build("argument")
- .field("argument", def("Type"));
-
-def("Identifier")
- .field("typeAnnotation", or(def("TypeAnnotation"), null), defaults["null"]);
-
-def("TypeParameterDeclaration")
- .bases("Node")
- .build("params")
- .field("params", [def("Identifier")]);
-
-def("TypeParameterInstantiation")
- .bases("Node")
- .build("params")
- .field("params", [def("Type")]);
-
-def("Function")
- .field("returnType",
- or(def("TypeAnnotation"), null),
- defaults["null"])
- .field("typeParameters",
- or(def("TypeParameterDeclaration"), null),
- defaults["null"]);
-
-def("ClassProperty")
- .build("key", "value", "typeAnnotation", "static")
- .field("value", or(def("Expression"), null))
- .field("typeAnnotation", or(def("TypeAnnotation"), null))
- .field("static", Boolean, defaults["false"]);
-
-def("ClassImplements")
- .field("typeParameters",
- or(def("TypeParameterInstantiation"), null),
- defaults["null"]);
-
-def("InterfaceDeclaration")
- .bases("Declaration")
- .build("id", "body", "extends")
- .field("id", def("Identifier"))
- .field("typeParameters",
- or(def("TypeParameterDeclaration"), null),
- defaults["null"])
- .field("body", def("ObjectTypeAnnotation"))
- .field("extends", [def("InterfaceExtends")]);
-
-def("DeclareInterface")
- .bases("InterfaceDeclaration")
- .build("id", "body", "extends");
-
-def("InterfaceExtends")
- .bases("Node")
- .build("id")
- .field("id", def("Identifier"))
- .field("typeParameters", or(def("TypeParameterInstantiation"), null));
-
-def("TypeAlias")
- .bases("Declaration")
- .build("id", "typeParameters", "right")
- .field("id", def("Identifier"))
- .field("typeParameters", or(def("TypeParameterDeclaration"), null))
- .field("right", def("Type"));
-
-def("DeclareTypeAlias")
- .bases("TypeAlias")
- .build("id", "typeParameters", "right");
-
-def("TypeCastExpression")
- .bases("Expression")
- .build("expression", "typeAnnotation")
- .field("expression", def("Expression"))
- .field("typeAnnotation", def("TypeAnnotation"));
-
-def("TupleTypeAnnotation")
- .bases("Type")
- .build("types")
- .field("types", [def("Type")]);
-
-def("DeclareVariable")
- .bases("Statement")
- .build("id")
- .field("id", def("Identifier"));
-
-def("DeclareFunction")
- .bases("Statement")
- .build("id")
- .field("id", def("Identifier"));
-
-def("DeclareClass")
- .bases("InterfaceDeclaration")
- .build("id");
-
-def("DeclareModule")
- .bases("Statement")
- .build("id", "body")
- .field("id", or(def("Identifier"), def("Literal")))
- .field("body", def("BlockStatement"));
-
-def("DeclareExportDeclaration")
- .bases("Declaration")
- .build("default", "declaration", "specifiers", "source")
- .field("default", Boolean)
- .field("declaration", or(
- def("DeclareVariable"),
- def("DeclareFunction"),
- def("DeclareClass"),
- def("Type"), // Implies default.
- null
- ))
- .field("specifiers", [or(
- def("ExportSpecifier"),
- def("ExportBatchSpecifier")
- )], defaults.emptyArray)
- .field("source", or(
- def("Literal"),
- null
- ), defaults["null"]);
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/jsx.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/jsx.js
deleted file mode 100644
index 18fa4ea598..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/jsx.js
+++ /dev/null
@@ -1,100 +0,0 @@
-require("./es7");
-
-var types = require("../lib/types");
-var def = types.Type.def;
-var or = types.Type.or;
-var defaults = require("../lib/shared").defaults;
-
-def("JSXAttribute")
- .bases("Node")
- .build("name", "value")
- .field("name", or(def("JSXIdentifier"), def("JSXNamespacedName")))
- .field("value", or(
- def("Literal"), // attr="value"
- def("JSXExpressionContainer"), // attr={value}
- null // attr= or just attr
- ), defaults["null"]);
-
-def("JSXIdentifier")
- .bases("Identifier")
- .build("name")
- .field("name", String);
-
-def("JSXNamespacedName")
- .bases("Node")
- .build("namespace", "name")
- .field("namespace", def("JSXIdentifier"))
- .field("name", def("JSXIdentifier"));
-
-def("JSXMemberExpression")
- .bases("MemberExpression")
- .build("object", "property")
- .field("object", or(def("JSXIdentifier"), def("JSXMemberExpression")))
- .field("property", def("JSXIdentifier"))
- .field("computed", Boolean, defaults.false);
-
-var JSXElementName = or(
- def("JSXIdentifier"),
- def("JSXNamespacedName"),
- def("JSXMemberExpression")
-);
-
-def("JSXSpreadAttribute")
- .bases("Node")
- .build("argument")
- .field("argument", def("Expression"));
-
-var JSXAttributes = [or(
- def("JSXAttribute"),
- def("JSXSpreadAttribute")
-)];
-
-def("JSXExpressionContainer")
- .bases("Expression")
- .build("expression")
- .field("expression", def("Expression"));
-
-def("JSXElement")
- .bases("Expression")
- .build("openingElement", "closingElement", "children")
- .field("openingElement", def("JSXOpeningElement"))
- .field("closingElement", or(def("JSXClosingElement"), null), defaults["null"])
- .field("children", [or(
- def("JSXElement"),
- def("JSXExpressionContainer"),
- def("JSXText"),
- def("Literal") // TODO Esprima should return JSXText instead.
- )], defaults.emptyArray)
- .field("name", JSXElementName, function() {
- // Little-known fact: the `this` object inside a default function
- // is none other than the partially-built object itself, and any
- // fields initialized directly from builder function arguments
- // (like openingElement, closingElement, and children) are
- // guaranteed to be available.
- return this.openingElement.name;
- }, true) // hidden from traversal
- .field("selfClosing", Boolean, function() {
- return this.openingElement.selfClosing;
- }, true) // hidden from traversal
- .field("attributes", JSXAttributes, function() {
- return this.openingElement.attributes;
- }, true); // hidden from traversal
-
-def("JSXOpeningElement")
- .bases("Node") // TODO Does this make sense? Can't really be an JSXElement.
- .build("name", "attributes", "selfClosing")
- .field("name", JSXElementName)
- .field("attributes", JSXAttributes, defaults.emptyArray)
- .field("selfClosing", Boolean, defaults["false"]);
-
-def("JSXClosingElement")
- .bases("Node") // TODO Same concern.
- .build("name")
- .field("name", JSXElementName);
-
-def("JSXText")
- .bases("Literal")
- .build("value")
- .field("value", String);
-
-def("JSXEmptyExpression").bases("Expression").build();
diff --git a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/mozilla.js b/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/mozilla.js
deleted file mode 100644
index 2861ae9cc0..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/unreachable-branch-transform/node_modules/recast/node_modules/ast-types/def/mozilla.js
+++ /dev/null
@@ -1,49 +0,0 @@
-require("./core");
-var types = require("../lib/types");
-var def = types.Type.def;
-var or = types.Type.or;
-var shared = require("../lib/shared");
-var geq = shared.geq;
-var defaults = shared.defaults;
-
-def("Function")
- // SpiderMonkey allows expression closures: function(x) x+1
- .field("body", or(def("BlockStatement"), def("Expression")));
-
-def("ForInStatement")
- .build("left", "right", "body", "each")
- .field("each", Boolean, defaults["false"]);
-
-def("ForOfStatement")
- .bases("Statement")
- .build("left", "right", "body")
- .field("left", or(
- def("VariableDeclaration"),
- def("Expression")))
- .field("right", def("Expression"))
- .field("body", def("Statement"));
-
-def("LetStatement")
- .bases("Statement")
- .build("head", "body")
- // TODO Deviating from the spec by reusing VariableDeclarator here.
- .field("head", [def("VariableDeclarator")])
- .field("body", def("Statement"));
-
-def("LetExpression")
- .bases("Expression")
- .build("head", "body")
- // TODO Deviating from the spec by reusing VariableDeclarator here.
- .field("head", [def("VariableDeclarator")])
- .field("body", def("Expression"));
-
-def("GraphExpression")
- .bases("Expression")
- .build("index", "expression")
- .field("index", geq(0))
- .field("expression", def("Literal"));
-
-def("GraphIndexExpression")
- .bases("Expression")
- .build("index")
- .field("index", geq(0));