ast-types 0.14.1 → 0.15.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 (52) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/README.md +1 -1
  3. package/def/babel-core.js +48 -28
  4. package/def/babel.js +15 -2
  5. package/def/core.js +8 -26
  6. package/def/es-proposals.js +32 -4
  7. package/def/es2016.js +6 -12
  8. package/def/es2017.js +3 -3
  9. package/def/es2018.js +3 -3
  10. package/def/es2019.js +3 -3
  11. package/def/es2020.js +23 -12
  12. package/def/{es7.d.ts → es2021.d.ts} +0 -0
  13. package/def/es2021.js +13 -0
  14. package/def/es2022.d.ts +2 -0
  15. package/def/es2022.js +16 -0
  16. package/def/es6.js +3 -3
  17. package/def/esprima.js +4 -4
  18. package/def/flow.js +15 -4
  19. package/def/jsx.js +4 -4
  20. package/def/operators/core.d.ts +5 -0
  21. package/def/operators/core.js +25 -0
  22. package/def/operators/es2016.d.ts +5 -0
  23. package/def/operators/es2016.js +19 -0
  24. package/def/operators/es2020.d.ts +5 -0
  25. package/def/operators/es2020.js +15 -0
  26. package/def/operators/es2021.d.ts +5 -0
  27. package/def/operators/es2021.js +18 -0
  28. package/def/type-annotations.js +2 -2
  29. package/def/typescript.js +11 -4
  30. package/fork.d.ts +3 -2
  31. package/fork.js +7 -7
  32. package/gen/builders.d.ts +200 -100
  33. package/gen/kinds.d.ts +28 -15
  34. package/gen/namedTypes.d.ts +143 -49
  35. package/gen/visitor.d.ts +18 -5
  36. package/lib/equiv.js +1 -1
  37. package/lib/node-path.js +3 -3
  38. package/lib/path-visitor.js +2 -2
  39. package/lib/path.d.ts +3 -3
  40. package/lib/path.js +1 -1
  41. package/lib/scope.d.ts +3 -2
  42. package/lib/scope.js +63 -26
  43. package/lib/shared.js +1 -1
  44. package/lib/types.d.ts +1 -0
  45. package/lib/types.js +10 -6
  46. package/main.d.ts +1 -0
  47. package/main.js +9 -25
  48. package/package.json +15 -15
  49. package/types.d.ts +0 -1
  50. package/def/core-operators.d.ts +0 -3
  51. package/def/core-operators.js +0 -20
  52. package/def/es7.js +0 -34
@@ -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,15 +1,17 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
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
+ var _a, _b, _c, _d, _e;
8
9
  fork.use(es_proposals_1.default);
9
10
  var types = fork.use(types_1.default);
10
11
  var defaults = fork.use(shared_1.default).defaults;
11
12
  var def = types.Type.def;
12
13
  var or = types.Type.or;
14
+ var isUndefined = types.builtInTypes.undefined;
13
15
  def("Noop")
14
16
  .bases("Statement")
15
17
  .build();
@@ -63,40 +65,49 @@ function default_1(fork) {
63
65
  .field("body", [def("Statement")])
64
66
  .field("directives", [def("Directive")], defaults.emptyArray)
65
67
  .field("interpreter", or(def("InterpreterDirective"), null), defaults["null"]);
68
+ function makeLiteralExtra(rawValueType, toRaw) {
69
+ if (rawValueType === void 0) { rawValueType = String; }
70
+ return [
71
+ "extra",
72
+ {
73
+ rawValue: rawValueType,
74
+ raw: String,
75
+ },
76
+ function getDefault() {
77
+ var value = types.getFieldValue(this, "value");
78
+ return {
79
+ rawValue: value,
80
+ raw: toRaw ? toRaw(value) : String(value),
81
+ };
82
+ },
83
+ ];
84
+ }
66
85
  // Split Literal
67
- def("StringLiteral")
86
+ (_a = def("StringLiteral")
68
87
  .bases("Literal")
69
88
  .build("value")
70
- .field("value", String);
71
- def("NumericLiteral")
89
+ .field("value", String))
90
+ .field.apply(_a, makeLiteralExtra(String, function (val) { return JSON.stringify(val); }));
91
+ (_b = def("NumericLiteral")
72
92
  .bases("Literal")
73
93
  .build("value")
74
94
  .field("value", Number)
75
- .field("raw", or(String, null), defaults["null"])
76
- .field("extra", {
77
- rawValue: Number,
78
- raw: String
79
- }, function getDefault() {
80
- return {
81
- rawValue: this.value,
82
- raw: this.value + ""
83
- };
84
- });
85
- def("BigIntLiteral")
95
+ .field("raw", or(String, null), defaults["null"]))
96
+ .field.apply(_b, makeLiteralExtra(Number));
97
+ (_c = def("BigIntLiteral")
86
98
  .bases("Literal")
87
99
  .build("value")
88
100
  // Only String really seems appropriate here, since BigInt values
89
101
  // often exceed the limits of JS numbers.
90
- .field("value", or(String, Number))
91
- .field("extra", {
92
- rawValue: String,
93
- raw: String
94
- }, function getDefault() {
95
- return {
96
- rawValue: String(this.value),
97
- raw: this.value + "n"
98
- };
99
- });
102
+ .field("value", or(String, Number)))
103
+ .field.apply(_c, makeLiteralExtra(String, function (val) { return val + "n"; }));
104
+ // https://github.com/tc39/proposal-decimal
105
+ // https://github.com/babel/babel/pull/11640
106
+ (_d = def("DecimalLiteral")
107
+ .bases("Literal")
108
+ .build("value")
109
+ .field("value", String))
110
+ .field.apply(_d, makeLiteralExtra(String, function (val) { return val + "m"; }));
100
111
  def("NullLiteral")
101
112
  .bases("Literal")
102
113
  .build()
@@ -105,13 +116,22 @@ function default_1(fork) {
105
116
  .bases("Literal")
106
117
  .build("value")
107
118
  .field("value", Boolean);
108
- def("RegExpLiteral")
119
+ (_e = def("RegExpLiteral")
109
120
  .bases("Literal")
110
121
  .build("pattern", "flags")
111
122
  .field("pattern", String)
112
123
  .field("flags", String)
113
124
  .field("value", RegExp, function () {
114
125
  return new RegExp(this.pattern, this.flags);
126
+ }))
127
+ .field.apply(_e, makeLiteralExtra(or(RegExp, isUndefined), function (exp) { return "/".concat(exp.pattern, "/").concat(exp.flags || ""); })).field("regex", {
128
+ pattern: String,
129
+ flags: String
130
+ }, function () {
131
+ return {
132
+ pattern: this.pattern,
133
+ flags: this.flags,
134
+ };
115
135
  });
116
136
  var ObjectExpressionProperty = or(def("Property"), def("ObjectMethod"), def("ObjectProperty"), def("SpreadProperty"), def("SpreadElement"));
117
137
  // Split Property -> ObjectProperty and ObjectMethod
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,9 +1,9 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
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"));
7
7
  function default_1(fork) {
8
8
  var types = fork.use(types_1.default);
9
9
  var Type = types.Type;
@@ -12,6 +12,7 @@ function default_1(fork) {
12
12
  var shared = fork.use(shared_1.default);
13
13
  var defaults = shared.defaults;
14
14
  var geq = shared.geq;
15
+ var _a = fork.use(core_1.default), BinaryOperators = _a.BinaryOperators, AssignmentOperators = _a.AssignmentOperators, LogicalOperators = _a.LogicalOperators;
15
16
  // Abstract supertype of all syntactic entities that are allowed to have a
16
17
  // .loc field.
17
18
  def("Printable")
@@ -185,14 +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.apply(void 0, core_operators_1.BinaryOperators);
189
+ var BinaryOperator = or.apply(void 0, BinaryOperators);
189
190
  def("BinaryExpression")
190
191
  .bases("Expression")
191
192
  .build("operator", "left", "right")
192
193
  .field("operator", BinaryOperator)
193
194
  .field("left", def("Expression"))
194
195
  .field("right", def("Expression"));
195
- var AssignmentOperator = or.apply(void 0, core_operators_1.AssignmentOperators);
196
+ var AssignmentOperator = or.apply(void 0, AssignmentOperators);
196
197
  def("AssignmentExpression")
197
198
  .bases("Expression")
198
199
  .build("operator", "left", "right")
@@ -206,7 +207,7 @@ function default_1(fork) {
206
207
  .field("operator", UpdateOperator)
207
208
  .field("argument", def("Expression"))
208
209
  .field("prefix", Boolean);
209
- var LogicalOperator = or.apply(void 0, core_operators_1.LogicalOperators);
210
+ var LogicalOperator = or.apply(void 0, LogicalOperators);
210
211
  def("LogicalExpression")
211
212
  .bases("Expression")
212
213
  .build("operator", "left", "right")
@@ -261,26 +262,7 @@ function default_1(fork) {
261
262
  def("Literal")
262
263
  .bases("Expression")
263
264
  .build("value")
264
- .field("value", or(String, Boolean, null, Number, RegExp))
265
- .field("regex", or({
266
- pattern: String,
267
- flags: String
268
- }, null), function () {
269
- if (this.value instanceof RegExp) {
270
- var flags = "";
271
- if (this.value.ignoreCase)
272
- flags += "i";
273
- if (this.value.multiline)
274
- flags += "m";
275
- if (this.value.global)
276
- flags += "g";
277
- return {
278
- pattern: this.value.source,
279
- flags: flags
280
- };
281
- }
282
- return null;
283
- });
265
+ .field("value", or(String, Boolean, null, Number, RegExp, BigInt));
284
266
  // Abstract (non-buildable) comment supertype. Not a Node.
285
267
  def("Comment")
286
268
  .bases("Printable")
@@ -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 es2020_1 = tslib_1.__importDefault(require("./es2020"));
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(es2020_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;
@@ -35,6 +35,34 @@ function default_1(fork) {
35
35
  .build("key", "value")
36
36
  .field("key", def("PrivateName"))
37
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", or(def("Identifier"), def("Literal")))
43
+ .field("value", def("Expression"));
44
+ ["ImportDeclaration",
45
+ "ExportAllDeclaration",
46
+ "ExportNamedDeclaration",
47
+ ].forEach(function (decl) {
48
+ def(decl).field("assertions", [def("ImportAttribute")], defaults.emptyArray);
49
+ });
50
+ // https://github.com/tc39/proposal-record-tuple
51
+ // https://github.com/babel/babel/pull/10865
52
+ def("RecordExpression")
53
+ .bases("Expression")
54
+ .build("properties")
55
+ .field("properties", [or(def("ObjectProperty"), def("ObjectMethod"), def("SpreadElement"))]);
56
+ def("TupleExpression")
57
+ .bases("Expression")
58
+ .build("elements")
59
+ .field("elements", [or(def("Expression"), def("SpreadElement"), null)]);
60
+ // https://github.com/tc39/proposal-js-module-blocks
61
+ // https://github.com/babel/babel/pull/12469
62
+ def("ModuleExpression")
63
+ .bases("Node")
64
+ .build("body")
65
+ .field("body", def("Program"));
38
66
  }
39
67
  exports.default = default_1;
40
68
  module.exports = exports["default"];
package/def/es2016.js CHANGED
@@ -1,20 +1,14 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
4
+ var es2016_1 = (0, tslib_1.__importDefault)(require("./operators/es2016"));
5
+ var es6_1 = (0, tslib_1.__importDefault)(require("./es6"));
7
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);
8
11
  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
12
  }
19
13
  exports.default = default_1;
20
14
  module.exports = exports["default"];
package/def/es2017.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
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
7
  function default_1(fork) {
8
8
  fork.use(es2016_1.default);
9
9
  var types = fork.use(types_1.default);
package/def/es2018.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
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
8
  fork.use(es2017_1.default);
9
9
  var types = fork.use(types_1.default);
package/def/es2019.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
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
7
  function default_1(fork) {
8
8
  fork.use(es2018_1.default);
9
9
  var types = fork.use(types_1.default);
package/def/es2020.js CHANGED
@@ -1,11 +1,14 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
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"));
8
8
  function default_1(fork) {
9
+ // The es2020OpsDef plugin comes before es2019Def so LogicalOperators will be
10
+ // appropriately augmented before first used.
11
+ fork.use(es2020_1.default);
9
12
  fork.use(es2019_1.default);
10
13
  var types = fork.use(types_1.default);
11
14
  var def = types.Type.def;
@@ -21,18 +24,26 @@ function default_1(fork) {
21
24
  .field("source", def("Literal"))
22
25
  .field("exported", or(def("Identifier"), null));
23
26
  // Optional chaining
24
- def("OptionalMemberExpression")
25
- .bases("MemberExpression")
26
- .build("object", "property", "computed", "optional")
27
- .field("optional", Boolean, defaults["true"]);
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"));
28
38
  def("OptionalCallExpression")
29
39
  .bases("CallExpression")
30
40
  .build("callee", "arguments", "optional")
31
41
  .field("optional", Boolean, defaults["true"]);
32
- // Nullish coalescing
33
- var LogicalOperator = or.apply(void 0, tslib_1.__spreadArrays(core_operators_1.LogicalOperators, ["??"]));
34
- def("LogicalExpression")
35
- .field("operator", LogicalOperator);
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"]);
36
47
  }
37
48
  exports.default = default_1;
38
49
  module.exports = exports["default"];
File without changes
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("Declaration")
12
+ .build("body")
13
+ .field("body", [def("Statement")]);
14
+ }
15
+ exports.default = default_1;
16
+ module.exports = exports["default"];
package/def/es6.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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"));
4
+ var core_1 = (0, tslib_1.__importDefault)(require("./core"));
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
8
  fork.use(core_1.default);
9
9
  var types = fork.use(types_1.default);
package/def/esprima.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 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"));
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(es2020_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;
package/def/flow.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use strict";;
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var es_proposals_1 = tslib_1.__importDefault(require("./es-proposals"));
5
- var type_annotations_1 = tslib_1.__importDefault(require("./type-annotations"));
6
- var types_1 = tslib_1.__importDefault(require("../lib/types"));
7
- var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
4
+ var es_proposals_1 = (0, tslib_1.__importDefault)(require("./es-proposals"));
5
+ var type_annotations_1 = (0, tslib_1.__importDefault)(require("./type-annotations"));
6
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
7
+ var shared_1 = (0, tslib_1.__importDefault)(require("../lib/shared"));
8
8
  function default_1(fork) {
9
9
  fork.use(es_proposals_1.default);
10
10
  fork.use(type_annotations_1.default);
@@ -161,6 +161,17 @@ function default_1(fork) {
161
161
  .build("object", "property")
162
162
  .field("object", def("Identifier"))
163
163
  .field("property", or(def("MemberTypeAnnotation"), def("GenericTypeAnnotation")));
164
+ def("IndexedAccessType")
165
+ .bases("FlowType")
166
+ .build("objectType", "indexType")
167
+ .field("objectType", def("FlowType"))
168
+ .field("indexType", def("FlowType"));
169
+ def("OptionalIndexedAccessType")
170
+ .bases("FlowType")
171
+ .build("objectType", "indexType", "optional")
172
+ .field("objectType", def("FlowType"))
173
+ .field("indexType", def("FlowType"))
174
+ .field('optional', Boolean);
164
175
  def("UnionTypeAnnotation")
165
176
  .bases("FlowType")
166
177
  .build("types")
package/def/jsx.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 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"));
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(es2020_1.default);
8
+ fork.use(es_proposals_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;
@@ -0,0 +1,5 @@
1
+ export default function (): {
2
+ BinaryOperators: string[];
3
+ AssignmentOperators: string[];
4
+ LogicalOperators: string[];
5
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function default_1() {
4
+ return {
5
+ BinaryOperators: [
6
+ "==", "!=", "===", "!==",
7
+ "<", "<=", ">", ">=",
8
+ "<<", ">>", ">>>",
9
+ "+", "-", "*", "/", "%",
10
+ "&",
11
+ "|", "^", "in",
12
+ "instanceof",
13
+ ],
14
+ AssignmentOperators: [
15
+ "=", "+=", "-=", "*=", "/=", "%=",
16
+ "<<=", ">>=", ">>>=",
17
+ "|=", "^=", "&=",
18
+ ],
19
+ LogicalOperators: [
20
+ "||", "&&",
21
+ ],
22
+ };
23
+ }
24
+ exports.default = default_1;
25
+ module.exports = exports["default"];
@@ -0,0 +1,5 @@
1
+ export default function (fork: import("../../types").Fork): {
2
+ BinaryOperators: string[];
3
+ AssignmentOperators: string[];
4
+ LogicalOperators: string[];
5
+ };
@@ -0,0 +1,19 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var core_1 = (0, tslib_1.__importDefault)(require("./core"));
5
+ function default_1(fork) {
6
+ var result = fork.use(core_1.default);
7
+ // Exponentiation operators. Must run before BinaryOperators or
8
+ // AssignmentOperators are used (hence before fork.use(es6Def)).
9
+ // https://github.com/tc39/proposal-exponentiation-operator
10
+ if (result.BinaryOperators.indexOf("**") < 0) {
11
+ result.BinaryOperators.push("**");
12
+ }
13
+ if (result.AssignmentOperators.indexOf("**=") < 0) {
14
+ result.AssignmentOperators.push("**=");
15
+ }
16
+ return result;
17
+ }
18
+ exports.default = default_1;
19
+ module.exports = exports["default"];
@@ -0,0 +1,5 @@
1
+ export default function (fork: import("../../types").Fork): {
2
+ BinaryOperators: string[];
3
+ AssignmentOperators: string[];
4
+ LogicalOperators: string[];
5
+ };
@@ -0,0 +1,15 @@
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
+ function default_1(fork) {
6
+ var result = fork.use(es2016_1.default);
7
+ // Nullish coalescing. Must run before LogicalOperators is used.
8
+ // https://github.com/tc39/proposal-nullish-coalescing
9
+ if (result.LogicalOperators.indexOf("??") < 0) {
10
+ result.LogicalOperators.push("??");
11
+ }
12
+ return result;
13
+ }
14
+ exports.default = default_1;
15
+ module.exports = exports["default"];
@@ -0,0 +1,5 @@
1
+ export default function (fork: import("../../types").Fork): {
2
+ BinaryOperators: string[];
3
+ AssignmentOperators: string[];
4
+ LogicalOperators: string[];
5
+ };