module.exports = { ArrayExpression: ['type', 'elements'], ArrayPattern: ['type', 'elements'], ArrowFunctionExpression: ['type', 'id', 'params', 'body', 'generator', 'expression', 'async'], AssignmentExpression: ['type', 'operator', 'left', 'right'], AssignmentPattern: ['type', 'left', 'right'], AwaitExpression: ['type', 'argument'], BinaryExpression: ['type', 'operator', 'left', 'right'], BlockStatement: ['type', 'body'], BreakStatement: ['type', 'label'], CallExpression: ['type', 'callee', 'arguments'], CatchClause: ['type', 'param', 'guard', 'body'], ClassBody: ['type', 'body'], ClassDeclaration: ['type', 'id', 'superClass', 'body'], ClassExpression: ['type', 'id', 'superClass', 'body'], ConditionalExpression: ['type', 'test', 'consequent', 'alternate'], ContinueStatement: ['type', 'label'], DebuggerStatement: ['type'], DoWhileStatement: ['type', 'body', 'test'], EmptyStatement: ['type'], ExportAllDeclaration: ['type', 'source'], ExportDefaultDeclaration: ['type', 'declaration'], ExportNamedDeclaration: ['type', 'declaration', 'specifiers', 'source'], ExportSpecifier: ['type', 'exported', 'local'], ExpressionStatement: ['type', 'expression'], ForInStatement: ['type', 'left', 'right', 'body'], ForOfStatement: ['type', 'left', 'right', 'body', 'await'], ForStatement: ['type', 'init', 'test', 'update', 'body'], FunctionDeclaration: ['type', 'id', 'params', 'body', 'generator', 'async'], FunctionExpression: ['type', 'id', 'params', 'body', 'generator', 'async'], Identifier: ['type', 'name'], IfStatement: ['type', 'test', 'consequent', 'alternate'], ImportDeclaration: ['type', 'specifiers', 'source'], ImportDefaultSpecifier: ['type', 'local'], ImportNamespaceSpecifier: ['type', 'local'], ImportSpecifier: ['type', 'imported', 'local'], LabeledStatement: ['type', 'label', 'body'], Literal: ['type', 'value', 'regex'], LogicalExpression: ['type', 'operator', 'left', 'right'], MemberExpression: ['type', 'object', 'property', 'computed'], MetaProperty: ['type', 'meta', 'property'], MethodDefinition: ['type', 'key', 'value', 'kind', 'computed', 'static'], NewExpression: ['type', 'callee', 'arguments'], ObjectExpression: ['type', 'properties'], ObjectPattern: ['type', 'properties'], Program: ['type', 'body', 'sourceType'], Property: ['type', 'key', 'value', 'kind', 'method', 'shorthand', 'computed'], RestElement: ['type', 'argument'], ReturnStatement: ['type', 'argument'], SequenceExpression: ['type', 'expressions'], SpreadElement: ['type', 'argument'], Super: ['type'], SwitchCase: ['type', 'test', 'consequent'], SwitchStatement: ['type', 'discriminant', 'cases', 'lexical'], TaggedTemplateExpression: ['type', 'tag', 'quasi'], TemplateElement: ['type', 'tail', 'value'], TemplateLiteral: ['type', 'quasis', 'expressions'], ThisExpression: ['type'], ThrowStatement: ['type', 'argument'], TryStatement: ['type', 'block', 'handler', 'finalizer'], UnaryExpression: ['type', 'operator', 'prefix', 'argument'], UpdateExpression: ['type', 'operator', 'argument', 'prefix'], VariableDeclaration: ['type', 'declarations', 'kind'], VariableDeclarator: ['type', 'id', 'init'], WhileStatement: ['type', 'test', 'body'], WithStatement: ['type', 'object', 'body'], YieldExpression: ['type', 'argument', 'delegate'] };