ast-types 0.13.4 → 0.15.0

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 (49) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/README.md +1 -1
  3. package/def/babel-core.js +20 -59
  4. package/def/babel.js +15 -2
  5. package/def/core.js +8 -8
  6. package/def/es-proposals.js +49 -20
  7. package/def/{es7.d.ts → es2016.d.ts} +0 -0
  8. package/def/es2016.js +14 -0
  9. package/def/es2017.d.ts +2 -0
  10. package/def/es2017.js +20 -0
  11. package/def/es2018.d.ts +2 -0
  12. package/def/{es7.js → es2018.js} +13 -13
  13. package/def/es2019.d.ts +2 -0
  14. package/def/es2019.js +17 -0
  15. package/def/es2020.js +36 -3
  16. package/def/es2021.d.ts +2 -0
  17. package/def/es2021.js +13 -0
  18. package/def/es2022.d.ts +2 -0
  19. package/def/es2022.js +16 -0
  20. package/def/es6.js +48 -22
  21. package/def/esprima.js +4 -4
  22. package/def/flow.js +85 -17
  23. package/def/jsx.js +27 -22
  24. package/def/operators/core.d.ts +5 -0
  25. package/def/operators/core.js +25 -0
  26. package/def/operators/es2016.d.ts +5 -0
  27. package/def/operators/es2016.js +19 -0
  28. package/def/operators/es2020.d.ts +5 -0
  29. package/def/operators/es2020.js +15 -0
  30. package/def/operators/es2021.d.ts +5 -0
  31. package/def/operators/es2021.js +18 -0
  32. package/def/type-annotations.js +2 -2
  33. package/def/typescript.js +11 -4
  34. package/fork.js +5 -5
  35. package/gen/builders.d.ts +489 -258
  36. package/gen/kinds.d.ts +61 -36
  37. package/gen/namedTypes.d.ts +334 -166
  38. package/gen/visitor.d.ts +47 -22
  39. package/lib/equiv.js +1 -1
  40. package/lib/node-path.js +3 -3
  41. package/lib/path-visitor.js +2 -2
  42. package/lib/path.d.ts +3 -3
  43. package/lib/path.js +1 -1
  44. package/lib/scope.d.ts +3 -2
  45. package/lib/scope.js +63 -26
  46. package/lib/shared.js +1 -1
  47. package/lib/types.js +6 -6
  48. package/main.js +9 -19
  49. package/package.json +15 -15
@@ -12,7 +12,7 @@ jobs:
12
12
  runs-on: ${{ matrix.os }}
13
13
  strategy:
14
14
  matrix:
15
- node_version: ['10', '12', '14']
15
+ node_version: ['10', '12', '14', '15', '16', '17']
16
16
  os: [ubuntu-latest]
17
17
 
18
18
  steps:
package/README.md CHANGED
@@ -507,6 +507,6 @@ The `def` syntax is used to define all the default AST node types found in
507
507
  [jsx.ts](def/jsx.ts),
508
508
  [type-annotations.ts](def/type-annotations.ts),
509
509
  and
510
- [typescripts.ts](def/typescripts.ts),
510
+ [typescript.ts](def/typescript.ts),
511
511
  so you have
512
512
  no shortage of examples to learn from.
package/def/babel-core.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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 es7_1 = tslib_1.__importDefault(require("./es7"));
4
+ var es_proposals_1 = (0, tslib_1.__importDefault)(require("./es-proposals"));
5
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
6
+ var shared_1 = (0, tslib_1.__importDefault)(require("../lib/shared"));
7
7
  function default_1(fork) {
8
- fork.use(es7_1.default);
8
+ fork.use(es_proposals_1.default);
9
9
  var types = fork.use(types_1.default);
10
10
  var defaults = fork.use(shared_1.default).defaults;
11
11
  var def = types.Type.def;
@@ -17,55 +17,15 @@ function default_1(fork) {
17
17
  .bases("Expression")
18
18
  .build("body")
19
19
  .field("body", [def("Statement")]);
20
- def("Super")
21
- .bases("Expression")
22
- .build();
23
20
  def("BindExpression")
24
21
  .bases("Expression")
25
22
  .build("object", "callee")
26
23
  .field("object", or(def("Expression"), null))
27
24
  .field("callee", def("Expression"));
28
- def("Decorator")
29
- .bases("Node")
30
- .build("expression")
31
- .field("expression", def("Expression"));
32
- def("Property")
33
- .field("decorators", or([def("Decorator")], null), defaults["null"]);
34
- def("MethodDefinition")
35
- .field("decorators", or([def("Decorator")], null), defaults["null"]);
36
- def("MetaProperty")
37
- .bases("Expression")
38
- .build("meta", "property")
39
- .field("meta", def("Identifier"))
40
- .field("property", def("Identifier"));
41
25
  def("ParenthesizedExpression")
42
26
  .bases("Expression")
43
27
  .build("expression")
44
28
  .field("expression", def("Expression"));
45
- def("ImportSpecifier")
46
- .bases("ModuleSpecifier")
47
- .build("imported", "local")
48
- .field("imported", def("Identifier"));
49
- def("ImportDefaultSpecifier")
50
- .bases("ModuleSpecifier")
51
- .build("local");
52
- def("ImportNamespaceSpecifier")
53
- .bases("ModuleSpecifier")
54
- .build("local");
55
- def("ExportDefaultDeclaration")
56
- .bases("Declaration")
57
- .build("declaration")
58
- .field("declaration", or(def("Declaration"), def("Expression")));
59
- def("ExportNamedDeclaration")
60
- .bases("Declaration")
61
- .build("declaration", "specifiers", "source")
62
- .field("declaration", or(def("Declaration"), null))
63
- .field("specifiers", [def("ExportSpecifier")], defaults.emptyArray)
64
- .field("source", or(def("Literal"), null), defaults["null"]);
65
- def("ExportSpecifier")
66
- .bases("ModuleSpecifier")
67
- .build("local", "exported")
68
- .field("exported", def("Identifier"));
69
29
  def("ExportNamespaceSpecifier")
70
30
  .bases("Specifier")
71
31
  .build("exported")
@@ -74,11 +34,6 @@ function default_1(fork) {
74
34
  .bases("Specifier")
75
35
  .build("exported")
76
36
  .field("exported", def("Identifier"));
77
- def("ExportAllDeclaration")
78
- .bases("Declaration")
79
- .build("exported", "source")
80
- .field("exported", or(def("Identifier"), null))
81
- .field("source", def("Literal"));
82
37
  def("CommentBlock")
83
38
  .bases("Comment")
84
39
  .build("value", /*optional:*/ "leading", "trailing");
@@ -139,7 +94,22 @@ function default_1(fork) {
139
94
  }, function getDefault() {
140
95
  return {
141
96
  rawValue: String(this.value),
142
- raw: this.value + "n"
97
+ raw: this.value + "n",
98
+ };
99
+ });
100
+ // https://github.com/tc39/proposal-decimal
101
+ // https://github.com/babel/babel/pull/11640
102
+ def("DecimalLiteral")
103
+ .bases("Literal")
104
+ .build("value")
105
+ .field("value", String)
106
+ .field("extra", {
107
+ rawValue: String,
108
+ raw: String
109
+ }, function getDefault() {
110
+ return {
111
+ rawValue: String(this.value),
112
+ raw: this.value + "m",
143
113
  };
144
114
  });
145
115
  def("NullLiteral")
@@ -214,15 +184,6 @@ function default_1(fork) {
214
184
  .field("decorators", or([def("Decorator")], null), defaults["null"])
215
185
  .field("optional", or(Boolean, null), defaults["null"]);
216
186
  });
217
- def("ClassPrivateProperty")
218
- .bases("ClassProperty")
219
- .build("key", "value")
220
- .field("key", def("PrivateName"))
221
- .field("value", or(def("Expression"), null), defaults["null"]);
222
- def("PrivateName")
223
- .bases("Expression", "Pattern")
224
- .build("id")
225
- .field("id", def("Identifier"));
226
187
  var ObjectPatternProperty = or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"), def("SpreadProperty"), // Used by Esprima
227
188
  def("ObjectProperty"), // Babel 6
228
189
  def("RestProperty") // Babel 6
package/def/babel.js CHANGED
@@ -1,11 +1,24 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
4
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
5
+ var babel_core_1 = (0, tslib_1.__importDefault)(require("./babel-core"));
6
+ var flow_1 = (0, tslib_1.__importDefault)(require("./flow"));
6
7
  function default_1(fork) {
8
+ var types = fork.use(types_1.default);
9
+ var def = types.Type.def;
7
10
  fork.use(babel_core_1.default);
8
11
  fork.use(flow_1.default);
12
+ // https://github.com/babel/babel/pull/10148
13
+ def("V8IntrinsicIdentifier")
14
+ .bases("Expression")
15
+ .build("name")
16
+ .field("name", String);
17
+ // https://github.com/babel/babel/pull/13191
18
+ // https://github.com/babel/website/pull/2541
19
+ def("TopicReference")
20
+ .bases("Expression")
21
+ .build();
9
22
  }
10
23
  exports.default = default_1;
11
24
  module.exports = exports["default"];
package/def/core.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
4
+ var core_1 = (0, tslib_1.__importDefault)(require("./operators/core"));
5
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
6
+ var shared_1 = (0, tslib_1.__importDefault)(require("../lib/shared"));
6
7
  function default_1(fork) {
7
8
  var types = fork.use(types_1.default);
8
9
  var Type = types.Type;
@@ -11,6 +12,7 @@ function default_1(fork) {
11
12
  var shared = fork.use(shared_1.default);
12
13
  var defaults = shared.defaults;
13
14
  var geq = shared.geq;
15
+ var _a = fork.use(core_1.default), BinaryOperators = _a.BinaryOperators, AssignmentOperators = _a.AssignmentOperators, LogicalOperators = _a.LogicalOperators;
14
16
  // Abstract supertype of all syntactic entities that are allowed to have a
15
17
  // .loc field.
16
18
  def("Printable")
@@ -109,8 +111,7 @@ function default_1(fork) {
109
111
  def("CatchClause")
110
112
  .bases("Node")
111
113
  .build("param", "guard", "body")
112
- // https://github.com/tc39/proposal-optional-catch-binding
113
- .field("param", or(def("Pattern"), null), defaults["null"])
114
+ .field("param", def("Pattern"))
114
115
  .field("guard", or(def("Expression"), null), defaults["null"])
115
116
  .field("body", def("BlockStatement"));
116
117
  def("WhileStatement")
@@ -185,15 +186,14 @@ function default_1(fork) {
185
186
  // Esprima doesn't bother with this field, presumably because it's
186
187
  // always true for unary operators.
187
188
  .field("prefix", Boolean, defaults["true"]);
188
- var BinaryOperator = or("==", "!=", "===", "!==", "<", "<=", ">", ">=", "<<", ">>", ">>>", "+", "-", "*", "/", "%", "**", "&", // TODO Missing from the Parser API.
189
- "|", "^", "in", "instanceof");
189
+ var BinaryOperator = or.apply(void 0, BinaryOperators);
190
190
  def("BinaryExpression")
191
191
  .bases("Expression")
192
192
  .build("operator", "left", "right")
193
193
  .field("operator", BinaryOperator)
194
194
  .field("left", def("Expression"))
195
195
  .field("right", def("Expression"));
196
- var AssignmentOperator = or("=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&=");
196
+ var AssignmentOperator = or.apply(void 0, AssignmentOperators);
197
197
  def("AssignmentExpression")
198
198
  .bases("Expression")
199
199
  .build("operator", "left", "right")
@@ -207,7 +207,7 @@ function default_1(fork) {
207
207
  .field("operator", UpdateOperator)
208
208
  .field("argument", def("Expression"))
209
209
  .field("prefix", Boolean);
210
- var LogicalOperator = or("||", "&&");
210
+ var LogicalOperator = or.apply(void 0, LogicalOperators);
211
211
  def("LogicalExpression")
212
212
  .bases("Expression")
213
213
  .build("operator", "left", "right")
@@ -1,33 +1,62 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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 core_1 = tslib_1.__importDefault(require("./core"));
4
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
5
+ var shared_1 = (0, tslib_1.__importDefault)(require("../lib/shared"));
6
+ var es2022_1 = (0, tslib_1.__importDefault)(require("./es2022"));
7
7
  function default_1(fork) {
8
- fork.use(core_1.default);
8
+ fork.use(es2022_1.default);
9
9
  var types = fork.use(types_1.default);
10
10
  var Type = types.Type;
11
11
  var def = types.Type.def;
12
12
  var or = Type.or;
13
13
  var shared = fork.use(shared_1.default);
14
14
  var defaults = shared.defaults;
15
- // https://github.com/tc39/proposal-optional-chaining
16
- // `a?.b` as per https://github.com/estree/estree/issues/146
17
- def("OptionalMemberExpression")
18
- .bases("MemberExpression")
19
- .build("object", "property", "computed", "optional")
20
- .field("optional", Boolean, defaults["true"]);
21
- // a?.b()
22
- def("OptionalCallExpression")
23
- .bases("CallExpression")
24
- .build("callee", "arguments", "optional")
25
- .field("optional", Boolean, defaults["true"]);
26
- // https://github.com/tc39/proposal-nullish-coalescing
27
- // `a ?? b` as per https://github.com/babel/babylon/pull/761/files
28
- var LogicalOperator = or("||", "&&", "??");
29
- def("LogicalExpression")
30
- .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"]);
38
+ // https://github.com/tc39/proposal-import-assertions
39
+ def("ImportAttribute")
40
+ .bases("Node")
41
+ .build("key", "value")
42
+ .field("key", def("Identifier"))
43
+ .field("value", String);
44
+ // https://github.com/tc39/proposal-record-tuple
45
+ // https://github.com/babel/babel/pull/10865
46
+ def("RecordExpression")
47
+ .bases("Expression")
48
+ .build("properties")
49
+ .field("properties", [or(def("ObjectProperty"), def("ObjectMethod"), def("SpreadElement"))]);
50
+ def("TupleExpression")
51
+ .bases("Expression")
52
+ .build("elements")
53
+ .field("elements", [or(def("Expression"), def("SpreadElement"), null)]);
54
+ // https://github.com/tc39/proposal-js-module-blocks
55
+ // https://github.com/babel/babel/pull/12469
56
+ def("ModuleExpression")
57
+ .bases("Node")
58
+ .build("program")
59
+ .field("body", def("Program"));
31
60
  }
32
61
  exports.default = default_1;
33
62
  module.exports = exports["default"];
File without changes
package/def/es2016.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var es2016_1 = (0, tslib_1.__importDefault)(require("./operators/es2016"));
5
+ var es6_1 = (0, tslib_1.__importDefault)(require("./es6"));
6
+ function default_1(fork) {
7
+ // The es2016OpsDef plugin comes before es6Def so BinaryOperators and
8
+ // AssignmentOperators will be appropriately augmented before they are first
9
+ // used in the core definitions for this fork.
10
+ fork.use(es2016_1.default);
11
+ fork.use(es6_1.default);
12
+ }
13
+ exports.default = default_1;
14
+ module.exports = exports["default"];
@@ -0,0 +1,2 @@
1
+ import { Fork } from "../types";
2
+ export default function (fork: Fork): void;
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 = (0, tslib_1.__importDefault)(require("./es2016"));
5
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
6
+ var shared_1 = (0, 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;
@@ -1,34 +1,34 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var es6_1 = tslib_1.__importDefault(require("./es6"));
5
- var types_1 = tslib_1.__importDefault(require("../lib/types"));
6
- var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
4
+ var es2017_1 = (0, tslib_1.__importDefault)(require("./es2017"));
5
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
6
+ var shared_1 = (0, tslib_1.__importDefault)(require("../lib/shared"));
7
7
  function default_1(fork) {
8
- fork.use(es6_1.default);
8
+ fork.use(es2017_1.default);
9
9
  var types = fork.use(types_1.default);
10
10
  var def = types.Type.def;
11
11
  var or = types.Type.or;
12
12
  var defaults = fork.use(shared_1.default).defaults;
13
- def("Function")
14
- .field("async", Boolean, defaults["false"]);
13
+ def("ForOfStatement")
14
+ .field("await", Boolean, defaults["false"]);
15
+ // Legacy
15
16
  def("SpreadProperty")
16
17
  .bases("Node")
17
18
  .build("argument")
18
19
  .field("argument", def("Expression"));
19
20
  def("ObjectExpression")
20
- .field("properties", [or(def("Property"), def("SpreadProperty"), def("SpreadElement"))]);
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
21
26
  def("SpreadPropertyPattern")
22
27
  .bases("Pattern")
23
28
  .build("argument")
24
29
  .field("argument", def("Pattern"));
25
30
  def("ObjectPattern")
26
- .field("properties", [or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"))]);
27
- def("AwaitExpression")
28
- .bases("Expression")
29
- .build("argument", "all")
30
- .field("argument", or(def("Expression"), null))
31
- .field("all", Boolean, defaults["false"]);
31
+ .field("properties", [or(def("PropertyPattern"), def("Property"), def("RestElement"), def("SpreadPropertyPattern"))]);
32
32
  }
33
33
  exports.default = default_1;
34
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 = (0, tslib_1.__importDefault)(require("./es2018"));
5
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
6
+ var shared_1 = (0, 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,16 +1,49 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var es7_1 = tslib_1.__importDefault(require("./es7"));
5
- var types_1 = tslib_1.__importDefault(require("../lib/types"));
4
+ var es2020_1 = (0, tslib_1.__importDefault)(require("./operators/es2020"));
5
+ var es2019_1 = (0, tslib_1.__importDefault)(require("./es2019"));
6
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
7
+ var shared_1 = (0, tslib_1.__importDefault)(require("../lib/shared"));
6
8
  function default_1(fork) {
7
- fork.use(es7_1.default);
9
+ // The es2020OpsDef plugin comes before es2019Def so LogicalOperators will be
10
+ // appropriately augmented before first used.
11
+ fork.use(es2020_1.default);
12
+ fork.use(es2019_1.default);
8
13
  var types = fork.use(types_1.default);
9
14
  var def = types.Type.def;
15
+ var or = types.Type.or;
16
+ var shared = fork.use(shared_1.default);
17
+ var defaults = shared.defaults;
10
18
  def("ImportExpression")
11
19
  .bases("Expression")
12
20
  .build("source")
13
21
  .field("source", def("Expression"));
22
+ def("ExportAllDeclaration")
23
+ .build("source", "exported")
24
+ .field("source", def("Literal"))
25
+ .field("exported", or(def("Identifier"), null));
26
+ // Optional chaining
27
+ def("ChainElement")
28
+ .bases("Node")
29
+ .field("optional", Boolean, defaults["false"]);
30
+ def("CallExpression")
31
+ .bases("Expression", "ChainElement");
32
+ def("MemberExpression")
33
+ .bases("Expression", "ChainElement");
34
+ def("ChainExpression")
35
+ .bases("Expression")
36
+ .build("expression")
37
+ .field("expression", def("ChainElement"));
38
+ def("OptionalCallExpression")
39
+ .bases("CallExpression")
40
+ .build("callee", "arguments", "optional")
41
+ .field("optional", Boolean, defaults["true"]);
42
+ // Deprecated optional chaining type, doesn't work with babelParser@7.11.0 or newer
43
+ def("OptionalMemberExpression")
44
+ .bases("MemberExpression")
45
+ .build("object", "property", "computed", "optional")
46
+ .field("optional", Boolean, defaults["true"]);
14
47
  }
15
48
  exports.default = default_1;
16
49
  module.exports = exports["default"];
@@ -0,0 +1,2 @@
1
+ import { Fork } from "../types";
2
+ export default function (fork: Fork): void;
package/def/es2021.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var es2021_1 = (0, tslib_1.__importDefault)(require("./operators/es2021"));
5
+ var es2020_1 = (0, tslib_1.__importDefault)(require("./es2020"));
6
+ function default_1(fork) {
7
+ // The es2021OpsDef plugin comes before es2020Def so AssignmentOperators will
8
+ // be appropriately augmented before first used.
9
+ fork.use(es2021_1.default);
10
+ fork.use(es2020_1.default);
11
+ }
12
+ exports.default = default_1;
13
+ module.exports = exports["default"];
@@ -0,0 +1,2 @@
1
+ import { Fork } from "../types";
2
+ export default function (fork: Fork): void;
package/def/es2022.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var es2021_1 = (0, tslib_1.__importDefault)(require("./es2021"));
5
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
6
+ function default_1(fork) {
7
+ fork.use(es2021_1.default);
8
+ var types = fork.use(types_1.default);
9
+ var def = types.Type.def;
10
+ def("StaticBlock")
11
+ .bases("Node")
12
+ .build("body")
13
+ .field("body", [def("Statement")]);
14
+ }
15
+ exports.default = default_1;
16
+ module.exports = exports["default"];