ast-types 0.13.3 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/.github/dependabot.yml +9 -0
  2. package/.github/workflows/main.yml +29 -0
  3. package/README.md +1 -1
  4. package/def/babel-core.js +5 -61
  5. package/def/babel.js +3 -5
  6. package/def/core-operators.d.ts +3 -0
  7. package/def/core-operators.js +20 -0
  8. package/def/core.js +8 -11
  9. package/def/es-proposals.js +28 -23
  10. package/def/{es7.d.ts → es2016.d.ts} +0 -0
  11. package/def/es2016.js +20 -0
  12. package/def/{esNext.d.ts → es2017.d.ts} +0 -0
  13. package/def/es2017.js +20 -0
  14. package/def/es2018.d.ts +2 -0
  15. package/def/es2018.js +34 -0
  16. package/def/es2019.d.ts +2 -0
  17. package/def/es2019.js +17 -0
  18. package/def/es2020.js +38 -6
  19. package/def/es6.js +49 -25
  20. package/def/esprima.js +5 -7
  21. package/def/flow.js +75 -20
  22. package/def/jsx.js +28 -25
  23. package/def/type-annotations.js +3 -5
  24. package/def/typescript.js +16 -11
  25. package/fork.d.ts +1 -1
  26. package/fork.js +6 -8
  27. package/gen/builders.d.ts +360 -226
  28. package/gen/kinds.d.ts +48 -33
  29. package/gen/namedTypes.d.ts +257 -152
  30. package/gen/namedTypes.js +1 -0
  31. package/gen/visitor.d.ts +36 -21
  32. package/lib/equiv.js +2 -4
  33. package/lib/node-path.js +4 -6
  34. package/lib/path-visitor.js +3 -5
  35. package/lib/path.js +2 -4
  36. package/lib/scope.js +8 -5
  37. package/lib/shared.d.ts +7 -7
  38. package/lib/shared.js +2 -4
  39. package/lib/types.d.ts +1 -1
  40. package/lib/types.js +31 -32
  41. package/main.js +21 -16
  42. package/package.json +15 -13
  43. package/tsconfig.json +1 -0
  44. package/.travis.yml +0 -11
  45. package/def/es7.js +0 -36
  46. package/def/esNext.js +0 -57
  47. package/gen/nodes.d.ts +0 -1265
  48. package/gen/nodes.js +0 -2
@@ -0,0 +1,9 @@
1
+ # Please see the documentation for all configuration options:
2
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
3
+
4
+ version: 2
5
+ updates:
6
+ - package-ecosystem: "npm"
7
+ directory: "/"
8
+ schedule:
9
+ interval: "daily"
@@ -0,0 +1,29 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+ name: Test on node ${{ matrix.node_version }} and ${{ matrix.os }}
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ matrix:
15
+ node_version: ['10', '12', '14']
16
+ os: [ubuntu-latest]
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - name: Use Node.js ${{ matrix.node_version }}
21
+ uses: actions/setup-node@v1
22
+ with:
23
+ node-version: ${{ matrix.node_version }}
24
+
25
+ - name: npm install, build and test
26
+ run: |
27
+ npm install
28
+ npm run build --if-present
29
+ npm test
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # AST Types [![Build Status](https://travis-ci.org/benjamn/ast-types.svg?branch=master)](https://travis-ci.org/benjamn/ast-types) [![Greenkeeper badge](https://badges.greenkeeper.io/benjamn/ast-types.svg)](https://greenkeeper.io/)
1
+ # AST Types ![CI](https://github.com/benjamn/ast-types/workflows/CI/badge.svg)
2
2
 
3
3
  This module provides an efficient, modular,
4
4
  [Esprima](https://github.com/ariya/esprima)-compatible implementation of
package/def/babel-core.js CHANGED
@@ -1,13 +1,11 @@
1
1
  "use strict";;
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var types_1 = __importDefault(require("../lib/types"));
7
- var shared_1 = __importDefault(require("../lib/shared"));
8
- var es7_1 = __importDefault(require("./es7"));
3
+ var tslib_1 = require("tslib");
4
+ var es_proposals_1 = tslib_1.__importDefault(require("./es-proposals"));
5
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
6
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
9
7
  function default_1(fork) {
10
- fork.use(es7_1.default);
8
+ fork.use(es_proposals_1.default);
11
9
  var types = fork.use(types_1.default);
12
10
  var defaults = fork.use(shared_1.default).defaults;
13
11
  var def = types.Type.def;
@@ -19,55 +17,15 @@ function default_1(fork) {
19
17
  .bases("Expression")
20
18
  .build("body")
21
19
  .field("body", [def("Statement")]);
22
- def("Super")
23
- .bases("Expression")
24
- .build();
25
20
  def("BindExpression")
26
21
  .bases("Expression")
27
22
  .build("object", "callee")
28
23
  .field("object", or(def("Expression"), null))
29
24
  .field("callee", def("Expression"));
30
- def("Decorator")
31
- .bases("Node")
32
- .build("expression")
33
- .field("expression", def("Expression"));
34
- def("Property")
35
- .field("decorators", or([def("Decorator")], null), defaults["null"]);
36
- def("MethodDefinition")
37
- .field("decorators", or([def("Decorator")], null), defaults["null"]);
38
- def("MetaProperty")
39
- .bases("Expression")
40
- .build("meta", "property")
41
- .field("meta", def("Identifier"))
42
- .field("property", def("Identifier"));
43
25
  def("ParenthesizedExpression")
44
26
  .bases("Expression")
45
27
  .build("expression")
46
28
  .field("expression", def("Expression"));
47
- def("ImportSpecifier")
48
- .bases("ModuleSpecifier")
49
- .build("imported", "local")
50
- .field("imported", def("Identifier"));
51
- def("ImportDefaultSpecifier")
52
- .bases("ModuleSpecifier")
53
- .build("local");
54
- def("ImportNamespaceSpecifier")
55
- .bases("ModuleSpecifier")
56
- .build("local");
57
- def("ExportDefaultDeclaration")
58
- .bases("Declaration")
59
- .build("declaration")
60
- .field("declaration", or(def("Declaration"), def("Expression")));
61
- def("ExportNamedDeclaration")
62
- .bases("Declaration")
63
- .build("declaration", "specifiers", "source")
64
- .field("declaration", or(def("Declaration"), null))
65
- .field("specifiers", [def("ExportSpecifier")], defaults.emptyArray)
66
- .field("source", or(def("Literal"), null), defaults["null"]);
67
- def("ExportSpecifier")
68
- .bases("ModuleSpecifier")
69
- .build("local", "exported")
70
- .field("exported", def("Identifier"));
71
29
  def("ExportNamespaceSpecifier")
72
30
  .bases("Specifier")
73
31
  .build("exported")
@@ -76,11 +34,6 @@ function default_1(fork) {
76
34
  .bases("Specifier")
77
35
  .build("exported")
78
36
  .field("exported", def("Identifier"));
79
- def("ExportAllDeclaration")
80
- .bases("Declaration")
81
- .build("exported", "source")
82
- .field("exported", or(def("Identifier"), null))
83
- .field("source", def("Literal"));
84
37
  def("CommentBlock")
85
38
  .bases("Comment")
86
39
  .build("value", /*optional:*/ "leading", "trailing");
@@ -216,15 +169,6 @@ function default_1(fork) {
216
169
  .field("decorators", or([def("Decorator")], null), defaults["null"])
217
170
  .field("optional", or(Boolean, null), defaults["null"]);
218
171
  });
219
- def("ClassPrivateProperty")
220
- .bases("ClassProperty")
221
- .build("key", "value")
222
- .field("key", def("PrivateName"))
223
- .field("value", or(def("Expression"), null), defaults["null"]);
224
- def("PrivateName")
225
- .bases("Expression", "Pattern")
226
- .build("id")
227
- .field("id", def("Identifier"));
228
172
  var ObjectPatternProperty = or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"), def("SpreadProperty"), // Used by Esprima
229
173
  def("ObjectProperty"), // Babel 6
230
174
  def("RestProperty") // Babel 6
package/def/babel.js CHANGED
@@ -1,10 +1,8 @@
1
1
  "use strict";;
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var babel_core_1 = __importDefault(require("./babel-core"));
7
- var flow_1 = __importDefault(require("./flow"));
3
+ var tslib_1 = require("tslib");
4
+ var babel_core_1 = tslib_1.__importDefault(require("./babel-core"));
5
+ var flow_1 = tslib_1.__importDefault(require("./flow"));
8
6
  function default_1(fork) {
9
7
  fork.use(babel_core_1.default);
10
8
  fork.use(flow_1.default);
@@ -0,0 +1,3 @@
1
+ export declare const BinaryOperators: string[];
2
+ export declare const AssignmentOperators: string[];
3
+ export declare const LogicalOperators: string[];
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogicalOperators = exports.AssignmentOperators = exports.BinaryOperators = void 0;
4
+ exports.BinaryOperators = [
5
+ "==", "!=", "===", "!==",
6
+ "<", "<=", ">", ">=",
7
+ "<<", ">>", ">>>",
8
+ "+", "-", "*", "/", "%",
9
+ "&",
10
+ "|", "^", "in",
11
+ "instanceof",
12
+ ];
13
+ exports.AssignmentOperators = [
14
+ "=", "+=", "-=", "*=", "/=", "%=",
15
+ "<<=", ">>=", ">>>=",
16
+ "|=", "^=", "&=",
17
+ ];
18
+ exports.LogicalOperators = [
19
+ "||", "&&",
20
+ ];
package/def/core.js CHANGED
@@ -1,10 +1,9 @@
1
1
  "use strict";;
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var types_1 = __importDefault(require("../lib/types"));
7
- var shared_1 = __importDefault(require("../lib/shared"));
3
+ var tslib_1 = require("tslib");
4
+ var core_operators_1 = require("./core-operators");
5
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
6
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
8
7
  function default_1(fork) {
9
8
  var types = fork.use(types_1.default);
10
9
  var Type = types.Type;
@@ -111,8 +110,7 @@ function default_1(fork) {
111
110
  def("CatchClause")
112
111
  .bases("Node")
113
112
  .build("param", "guard", "body")
114
- // https://github.com/tc39/proposal-optional-catch-binding
115
- .field("param", or(def("Pattern"), null), defaults["null"])
113
+ .field("param", def("Pattern"))
116
114
  .field("guard", or(def("Expression"), null), defaults["null"])
117
115
  .field("body", def("BlockStatement"));
118
116
  def("WhileStatement")
@@ -187,15 +185,14 @@ function default_1(fork) {
187
185
  // Esprima doesn't bother with this field, presumably because it's
188
186
  // always true for unary operators.
189
187
  .field("prefix", Boolean, defaults["true"]);
190
- var BinaryOperator = or("==", "!=", "===", "!==", "<", "<=", ">", ">=", "<<", ">>", ">>>", "+", "-", "*", "/", "%", "**", "&", // TODO Missing from the Parser API.
191
- "|", "^", "in", "instanceof");
188
+ var BinaryOperator = or.apply(void 0, core_operators_1.BinaryOperators);
192
189
  def("BinaryExpression")
193
190
  .bases("Expression")
194
191
  .build("operator", "left", "right")
195
192
  .field("operator", BinaryOperator)
196
193
  .field("left", def("Expression"))
197
194
  .field("right", def("Expression"));
198
- var AssignmentOperator = or("=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&=");
195
+ var AssignmentOperator = or.apply(void 0, core_operators_1.AssignmentOperators);
199
196
  def("AssignmentExpression")
200
197
  .bases("Expression")
201
198
  .build("operator", "left", "right")
@@ -209,7 +206,7 @@ function default_1(fork) {
209
206
  .field("operator", UpdateOperator)
210
207
  .field("argument", def("Expression"))
211
208
  .field("prefix", Boolean);
212
- var LogicalOperator = or("||", "&&");
209
+ var LogicalOperator = or.apply(void 0, core_operators_1.LogicalOperators);
213
210
  def("LogicalExpression")
214
211
  .bases("Expression")
215
212
  .build("operator", "left", "right")
@@ -1,35 +1,40 @@
1
1
  "use strict";;
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var types_1 = __importDefault(require("../lib/types"));
7
- var shared_1 = __importDefault(require("../lib/shared"));
8
- var core_1 = __importDefault(require("./core"));
3
+ var tslib_1 = require("tslib");
4
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
5
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
6
+ var es2020_1 = tslib_1.__importDefault(require("./es2020"));
9
7
  function default_1(fork) {
10
- fork.use(core_1.default);
8
+ fork.use(es2020_1.default);
11
9
  var types = fork.use(types_1.default);
12
10
  var Type = types.Type;
13
11
  var def = types.Type.def;
14
12
  var or = Type.or;
15
13
  var shared = fork.use(shared_1.default);
16
14
  var defaults = shared.defaults;
17
- // https://github.com/tc39/proposal-optional-chaining
18
- // `a?.b` as per https://github.com/estree/estree/issues/146
19
- def("OptionalMemberExpression")
20
- .bases("MemberExpression")
21
- .build("object", "property", "computed", "optional")
22
- .field("optional", Boolean, defaults["true"]);
23
- // a?.b()
24
- def("OptionalCallExpression")
25
- .bases("CallExpression")
26
- .build("callee", "arguments", "optional")
27
- .field("optional", Boolean, defaults["true"]);
28
- // https://github.com/tc39/proposal-nullish-coalescing
29
- // `a ?? b` as per https://github.com/babel/babylon/pull/761/files
30
- var LogicalOperator = or("||", "&&", "??");
31
- def("LogicalExpression")
32
- .field("operator", LogicalOperator);
15
+ def("AwaitExpression")
16
+ .build("argument", "all")
17
+ .field("argument", or(def("Expression"), null))
18
+ .field("all", Boolean, defaults["false"]);
19
+ // Decorators
20
+ def("Decorator")
21
+ .bases("Node")
22
+ .build("expression")
23
+ .field("expression", def("Expression"));
24
+ def("Property")
25
+ .field("decorators", or([def("Decorator")], null), defaults["null"]);
26
+ def("MethodDefinition")
27
+ .field("decorators", or([def("Decorator")], null), defaults["null"]);
28
+ // Private names
29
+ def("PrivateName")
30
+ .bases("Expression", "Pattern")
31
+ .build("id")
32
+ .field("id", def("Identifier"));
33
+ def("ClassPrivateProperty")
34
+ .bases("ClassProperty")
35
+ .build("key", "value")
36
+ .field("key", def("PrivateName"))
37
+ .field("value", or(def("Expression"), null), defaults["null"]);
33
38
  }
34
39
  exports.default = default_1;
35
40
  module.exports = exports["default"];
File without changes
package/def/es2016.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var core_operators_1 = require("./core-operators");
5
+ var es6_1 = tslib_1.__importDefault(require("./es6"));
6
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
7
+ function default_1(fork) {
8
+ fork.use(es6_1.default);
9
+ var types = fork.use(types_1.default);
10
+ var def = types.Type.def;
11
+ var or = types.Type.or;
12
+ var BinaryOperator = or.apply(void 0, tslib_1.__spreadArrays(core_operators_1.BinaryOperators, ["**"]));
13
+ def("BinaryExpression")
14
+ .field("operator", BinaryOperator);
15
+ var AssignmentOperator = or.apply(void 0, tslib_1.__spreadArrays(core_operators_1.AssignmentOperators, ["**="]));
16
+ def("AssignmentExpression")
17
+ .field("operator", AssignmentOperator);
18
+ }
19
+ exports.default = default_1;
20
+ module.exports = exports["default"];
File without changes
package/def/es2017.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var es2016_1 = tslib_1.__importDefault(require("./es2016"));
5
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
6
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
7
+ function default_1(fork) {
8
+ fork.use(es2016_1.default);
9
+ var types = fork.use(types_1.default);
10
+ var def = types.Type.def;
11
+ var defaults = fork.use(shared_1.default).defaults;
12
+ def("Function")
13
+ .field("async", Boolean, defaults["false"]);
14
+ def("AwaitExpression")
15
+ .bases("Expression")
16
+ .build("argument")
17
+ .field("argument", def("Expression"));
18
+ }
19
+ exports.default = default_1;
20
+ module.exports = exports["default"];
@@ -0,0 +1,2 @@
1
+ import { Fork } from "../types";
2
+ export default function (fork: Fork): void;
package/def/es2018.js ADDED
@@ -0,0 +1,34 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var es2017_1 = tslib_1.__importDefault(require("./es2017"));
5
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
6
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
7
+ function default_1(fork) {
8
+ fork.use(es2017_1.default);
9
+ var types = fork.use(types_1.default);
10
+ var def = types.Type.def;
11
+ var or = types.Type.or;
12
+ var defaults = fork.use(shared_1.default).defaults;
13
+ def("ForOfStatement")
14
+ .field("await", Boolean, defaults["false"]);
15
+ // Legacy
16
+ def("SpreadProperty")
17
+ .bases("Node")
18
+ .build("argument")
19
+ .field("argument", def("Expression"));
20
+ def("ObjectExpression")
21
+ .field("properties", [or(def("Property"), def("SpreadProperty"), // Legacy
22
+ def("SpreadElement"))]);
23
+ def("TemplateElement")
24
+ .field("value", { "cooked": or(String, null), "raw": String });
25
+ // Legacy
26
+ def("SpreadPropertyPattern")
27
+ .bases("Pattern")
28
+ .build("argument")
29
+ .field("argument", def("Pattern"));
30
+ def("ObjectPattern")
31
+ .field("properties", [or(def("PropertyPattern"), def("Property"), def("RestElement"), def("SpreadPropertyPattern"))]);
32
+ }
33
+ exports.default = default_1;
34
+ module.exports = exports["default"];
@@ -0,0 +1,2 @@
1
+ import { Fork } from "../types";
2
+ export default function (fork: Fork): void;
package/def/es2019.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var es2018_1 = tslib_1.__importDefault(require("./es2018"));
5
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
6
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
7
+ function default_1(fork) {
8
+ fork.use(es2018_1.default);
9
+ var types = fork.use(types_1.default);
10
+ var def = types.Type.def;
11
+ var or = types.Type.or;
12
+ var defaults = fork.use(shared_1.default).defaults;
13
+ def("CatchClause")
14
+ .field("param", or(def("Pattern"), null), defaults["null"]);
15
+ }
16
+ exports.default = default_1;
17
+ module.exports = exports["default"];
package/def/es2020.js CHANGED
@@ -1,18 +1,50 @@
1
1
  "use strict";;
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var es7_1 = __importDefault(require("./es7"));
7
- var types_1 = __importDefault(require("../lib/types"));
3
+ var tslib_1 = require("tslib");
4
+ var core_operators_1 = require("./core-operators");
5
+ var es2019_1 = tslib_1.__importDefault(require("./es2019"));
6
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
7
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
8
8
  function default_1(fork) {
9
- fork.use(es7_1.default);
9
+ fork.use(es2019_1.default);
10
10
  var types = fork.use(types_1.default);
11
11
  var def = types.Type.def;
12
+ var or = types.Type.or;
13
+ var shared = fork.use(shared_1.default);
14
+ var defaults = shared.defaults;
12
15
  def("ImportExpression")
13
16
  .bases("Expression")
14
17
  .build("source")
15
18
  .field("source", def("Expression"));
19
+ def("ExportAllDeclaration")
20
+ .build("source", "exported")
21
+ .field("source", def("Literal"))
22
+ .field("exported", or(def("Identifier"), null));
23
+ // Optional chaining
24
+ def("ChainElement")
25
+ .bases("Node")
26
+ .field("optional", Boolean, defaults["false"]);
27
+ def("CallExpression")
28
+ .bases("Expression", "ChainElement");
29
+ def("MemberExpression")
30
+ .bases("Expression", "ChainElement");
31
+ def("ChainExpression")
32
+ .bases("Expression")
33
+ .build("expression")
34
+ .field("expression", def("ChainElement"));
35
+ def("OptionalCallExpression")
36
+ .bases("CallExpression")
37
+ .build("callee", "arguments", "optional")
38
+ .field("optional", Boolean, defaults["true"]);
39
+ // Deprecated optional chaining type, doesn't work with babelParser@7.11.0 or newer
40
+ def("OptionalMemberExpression")
41
+ .bases("MemberExpression")
42
+ .build("object", "property", "computed", "optional")
43
+ .field("optional", Boolean, defaults["true"]);
44
+ // Nullish coalescing
45
+ var LogicalOperator = or.apply(void 0, tslib_1.__spreadArrays(core_operators_1.LogicalOperators, ["??"]));
46
+ def("LogicalExpression")
47
+ .field("operator", LogicalOperator);
16
48
  }
17
49
  exports.default = default_1;
18
50
  module.exports = exports["default"];
package/def/es6.js CHANGED
@@ -1,11 +1,9 @@
1
1
  "use strict";;
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var core_1 = __importDefault(require("./core"));
7
- var types_1 = __importDefault(require("../lib/types"));
8
- var shared_1 = __importDefault(require("../lib/shared"));
3
+ var tslib_1 = require("tslib");
4
+ var core_1 = tslib_1.__importDefault(require("./core"));
5
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
6
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
9
7
  function default_1(fork) {
10
8
  fork.use(core_1.default);
11
9
  var types = fork.use(types_1.default);
@@ -16,7 +14,7 @@ function default_1(fork) {
16
14
  .field("generator", Boolean, defaults["false"])
17
15
  .field("expression", Boolean, defaults["false"])
18
16
  .field("defaults", [or(def("Expression"), null)], defaults.emptyArray)
19
- // TODO This could be represented as a RestElement in .params.
17
+ // Legacy
20
18
  .field("rest", or(def("Identifier"), null), defaults["null"]);
21
19
  // The ESTree way of representing a ...rest parameter.
22
20
  def("RestElement")
@@ -30,11 +28,11 @@ function default_1(fork) {
30
28
  .build("argument")
31
29
  .field("argument", def("Pattern"));
32
30
  def("FunctionDeclaration")
33
- .build("id", "params", "body", "generator", "expression");
31
+ .build("id", "params", "body", "generator", "expression")
32
+ // May be `null` in the context of `export default function () {}`
33
+ .field("id", or(def("Identifier"), null));
34
34
  def("FunctionExpression")
35
35
  .build("id", "params", "body", "generator", "expression");
36
- // The Parser API calls this ArrowExpression, but Esprima and all other
37
- // actual parsers use ArrowFunctionExpression.
38
36
  def("ArrowFunctionExpression")
39
37
  .bases("Function", "Expression")
40
38
  .build("params", "body", "expression")
@@ -97,14 +95,6 @@ function default_1(fork) {
97
95
  .bases("Pattern")
98
96
  .build("elements")
99
97
  .field("elements", [or(def("Pattern"), null)]);
100
- def("MethodDefinition")
101
- .bases("Declaration")
102
- .build("kind", "key", "value", "static")
103
- .field("kind", or("constructor", "method", "get", "set"))
104
- .field("key", def("Expression"))
105
- .field("value", def("Function"))
106
- .field("computed", Boolean, defaults["false"])
107
- .field("static", Boolean, defaults["false"]);
108
98
  def("SpreadElement")
109
99
  .bases("Node")
110
100
  .build("argument")
@@ -126,6 +116,14 @@ function default_1(fork) {
126
116
  .build("left", "right")
127
117
  .field("left", def("Pattern"))
128
118
  .field("right", def("Expression"));
119
+ def("MethodDefinition")
120
+ .bases("Declaration")
121
+ .build("kind", "key", "value", "static")
122
+ .field("kind", or("constructor", "method", "get", "set"))
123
+ .field("key", def("Expression"))
124
+ .field("value", def("Function"))
125
+ .field("computed", Boolean, defaults["false"])
126
+ .field("static", Boolean, defaults["false"]);
129
127
  var ClassBodyElement = or(def("MethodDefinition"), def("VariableDeclarator"), def("ClassPropertyDefinition"), def("ClassProperty"));
130
128
  def("ClassProperty")
131
129
  .bases("Declaration")
@@ -153,6 +151,9 @@ function default_1(fork) {
153
151
  .field("id", or(def("Identifier"), null), defaults["null"])
154
152
  .field("body", def("ClassBody"))
155
153
  .field("superClass", or(def("Expression"), null), defaults["null"]);
154
+ def("Super")
155
+ .bases("Expression")
156
+ .build();
156
157
  // Specifier and ModuleSpecifier are abstract non-standard types
157
158
  // introduced for definitional convenience.
158
159
  def("Specifier").bases("Node");
@@ -171,19 +172,19 @@ function default_1(fork) {
171
172
  // optional in the Babel/Acorn AST format.
172
173
  .field("id", or(def("Identifier"), null), defaults["null"])
173
174
  .field("name", or(def("Identifier"), null), defaults["null"]);
174
- // Like ModuleSpecifier, except type:"ImportSpecifier" and buildable.
175
175
  // import {<id [as name]>} from ...;
176
176
  def("ImportSpecifier")
177
177
  .bases("ModuleSpecifier")
178
- .build("id", "name");
179
- // import <* as id> from ...;
180
- def("ImportNamespaceSpecifier")
181
- .bases("ModuleSpecifier")
182
- .build("id");
178
+ .build("imported", "local")
179
+ .field("imported", def("Identifier"));
183
180
  // import <id> from ...;
184
181
  def("ImportDefaultSpecifier")
185
182
  .bases("ModuleSpecifier")
186
- .build("id");
183
+ .build("local");
184
+ // import <* as id> from ...;
185
+ def("ImportNamespaceSpecifier")
186
+ .bases("ModuleSpecifier")
187
+ .build("local");
187
188
  def("ImportDeclaration")
188
189
  .bases("Declaration")
189
190
  .build("specifiers", "source", "importKind")
@@ -192,6 +193,24 @@ function default_1(fork) {
192
193
  .field("importKind", or("value", "type"), function () {
193
194
  return "value";
194
195
  });
196
+ def("ExportNamedDeclaration")
197
+ .bases("Declaration")
198
+ .build("declaration", "specifiers", "source")
199
+ .field("declaration", or(def("Declaration"), null))
200
+ .field("specifiers", [def("ExportSpecifier")], defaults.emptyArray)
201
+ .field("source", or(def("Literal"), null), defaults["null"]);
202
+ def("ExportSpecifier")
203
+ .bases("ModuleSpecifier")
204
+ .build("local", "exported")
205
+ .field("exported", def("Identifier"));
206
+ def("ExportDefaultDeclaration")
207
+ .bases("Declaration")
208
+ .build("declaration")
209
+ .field("declaration", or(def("Declaration"), def("Expression")));
210
+ def("ExportAllDeclaration")
211
+ .bases("Declaration")
212
+ .build("source")
213
+ .field("source", def("Literal"));
195
214
  def("TaggedTemplateExpression")
196
215
  .bases("Expression")
197
216
  .build("tag", "quasi")
@@ -207,6 +226,11 @@ function default_1(fork) {
207
226
  .build("value", "tail")
208
227
  .field("value", { "cooked": String, "raw": String })
209
228
  .field("tail", Boolean);
229
+ def("MetaProperty")
230
+ .bases("Expression")
231
+ .build("meta", "property")
232
+ .field("meta", def("Identifier"))
233
+ .field("property", def("Identifier"));
210
234
  }
211
235
  exports.default = default_1;
212
236
  module.exports = exports["default"];
package/def/esprima.js CHANGED
@@ -1,13 +1,11 @@
1
1
  "use strict";;
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var es7_1 = __importDefault(require("./es7"));
7
- var types_1 = __importDefault(require("../lib/types"));
8
- var shared_1 = __importDefault(require("../lib/shared"));
3
+ var tslib_1 = require("tslib");
4
+ var es2020_1 = tslib_1.__importDefault(require("./es2020"));
5
+ var types_1 = tslib_1.__importDefault(require("../lib/types"));
6
+ var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
9
7
  function default_1(fork) {
10
- fork.use(es7_1.default);
8
+ fork.use(es2020_1.default);
11
9
  var types = fork.use(types_1.default);
12
10
  var defaults = fork.use(shared_1.default).defaults;
13
11
  var def = types.Type.def;