ast-types 0.14.2 → 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 (47) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/README.md +1 -1
  3. package/def/babel-core.js +19 -4
  4. package/def/babel.js +15 -2
  5. package/def/core.js +7 -6
  6. package/def/es-proposals.js +26 -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 +7 -8
  12. package/def/es2021.d.ts +2 -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.js +5 -5
  31. package/gen/builders.d.ts +170 -61
  32. package/gen/kinds.d.ts +23 -12
  33. package/gen/namedTypes.d.ts +108 -36
  34. package/gen/visitor.d.ts +15 -4
  35. package/lib/equiv.js +1 -1
  36. package/lib/node-path.js +3 -3
  37. package/lib/path-visitor.js +2 -2
  38. package/lib/path.d.ts +3 -3
  39. package/lib/path.js +1 -1
  40. package/lib/scope.d.ts +3 -2
  41. package/lib/scope.js +61 -26
  42. package/lib/shared.js +1 -1
  43. package/lib/types.js +6 -6
  44. package/main.js +9 -25
  45. package/package.json +15 -15
  46. package/def/core-operators.d.ts +0 -3
  47. package/def/core-operators.js +0 -20
@@ -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,9 +1,9 @@
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
8
  fork.use(es_proposals_1.default);
9
9
  var types = fork.use(types_1.default);
@@ -94,7 +94,22 @@ function default_1(fork) {
94
94
  }, function getDefault() {
95
95
  return {
96
96
  rawValue: String(this.value),
97
- 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",
98
113
  };
99
114
  });
100
115
  def("NullLiteral")
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")
@@ -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,28 @@ 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", 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"));
38
60
  }
39
61
  exports.default = default_1;
40
62
  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;
@@ -41,10 +44,6 @@ function default_1(fork) {
41
44
  .bases("MemberExpression")
42
45
  .build("object", "property", "computed", "optional")
43
46
  .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);
48
47
  }
49
48
  exports.default = default_1;
50
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"];
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
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var es2020_1 = (0, tslib_1.__importDefault)(require("./es2020"));
5
+ function default_1(fork) {
6
+ var result = fork.use(es2020_1.default);
7
+ // Logical assignment operators. Must run before AssignmentOperators is used.
8
+ // https://github.com/tc39/proposal-logical-assignment
9
+ result.LogicalOperators.forEach(function (op) {
10
+ var assignOp = op + "=";
11
+ if (result.AssignmentOperators.indexOf(assignOp) < 0) {
12
+ result.AssignmentOperators.push(assignOp);
13
+ }
14
+ });
15
+ return result;
16
+ }
17
+ exports.default = default_1;
18
+ module.exports = exports["default"];
@@ -6,8 +6,8 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  var tslib_1 = require("tslib");
9
- var types_1 = tslib_1.__importDefault(require("../lib/types"));
10
- var shared_1 = tslib_1.__importDefault(require("../lib/shared"));
9
+ var types_1 = (0, tslib_1.__importDefault)(require("../lib/types"));
10
+ var shared_1 = (0, tslib_1.__importDefault)(require("../lib/shared"));
11
11
  function default_1(fork) {
12
12
  var types = fork.use(types_1.default);
13
13
  var def = types.Type.def;
package/def/typescript.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 babel_core_1 = tslib_1.__importDefault(require("./babel-core"));
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 babel_core_1 = (0, tslib_1.__importDefault)(require("./babel-core"));
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
  // Since TypeScript is parsed by Babylon, include the core Babylon types
10
10
  // but omit the Flow-related types.
@@ -74,6 +74,7 @@ function default_1(fork) {
74
74
  "TSUndefinedKeyword",
75
75
  "TSUnknownKeyword",
76
76
  "TSVoidKeyword",
77
+ "TSIntrinsicKeyword",
77
78
  "TSThisType",
78
79
  ].forEach(function (keywordType) {
79
80
  def(keywordType)
@@ -88,6 +89,12 @@ function default_1(fork) {
88
89
  .bases("TSType")
89
90
  .build("literal")
90
91
  .field("literal", or(def("NumericLiteral"), def("StringLiteral"), def("BooleanLiteral"), def("TemplateLiteral"), def("UnaryExpression")));
92
+ def("TemplateLiteral")
93
+ // The TemplateLiteral type appears to be reused for TypeScript template
94
+ // literal types (instead of introducing a new TSTemplateLiteralType type),
95
+ // so we allow the templateLiteral.expressions array to be either all
96
+ // expressions or all TypeScript types.
97
+ .field("expressions", or([def("Expression")], [def("TSType")]));
91
98
  ["TSUnionType",
92
99
  "TSIntersectionType",
93
100
  ].forEach(function (typeName) {
package/fork.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 path_visitor_1 = tslib_1.__importDefault(require("./lib/path-visitor"));
6
- var equiv_1 = tslib_1.__importDefault(require("./lib/equiv"));
7
- var path_1 = tslib_1.__importDefault(require("./lib/path"));
8
- var node_path_1 = tslib_1.__importDefault(require("./lib/node-path"));
4
+ var types_1 = (0, tslib_1.__importDefault)(require("./lib/types"));
5
+ var path_visitor_1 = (0, tslib_1.__importDefault)(require("./lib/path-visitor"));
6
+ var equiv_1 = (0, tslib_1.__importDefault)(require("./lib/equiv"));
7
+ var path_1 = (0, tslib_1.__importDefault)(require("./lib/path"));
8
+ var node_path_1 = (0, tslib_1.__importDefault)(require("./lib/node-path"));
9
9
  function default_1(defs) {
10
10
  var fork = createFork();
11
11
  var types = fork.use(types_1.default);