@danielx/civet 0.7.28 → 0.7.29

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.
package/dist/main.mjs CHANGED
@@ -60,7 +60,7 @@ var require_machine = __commonJS({
60
60
  $N: () => $N2,
61
61
  $P: () => $P2,
62
62
  $Q: () => $Q2,
63
- $R: () => $R98,
63
+ $R: () => $R100,
64
64
  $R$0: () => $R$02,
65
65
  $S: () => $S2,
66
66
  $T: () => $T2,
@@ -97,7 +97,7 @@ var require_machine = __commonJS({
97
97
  return;
98
98
  };
99
99
  }
100
- function $R98(regExp) {
100
+ function $R100(regExp) {
101
101
  return function(_ctx, state2) {
102
102
  const { input, pos } = state2;
103
103
  regExp.lastIndex = state2.pos;
@@ -491,6 +491,7 @@ __export(lib_exports, {
491
491
  addPostfixStatement: () => addPostfixStatement,
492
492
  adjustBindingElements: () => adjustBindingElements,
493
493
  adjustIndexAccess: () => adjustIndexAccess,
494
+ append: () => append,
494
495
  attachPostfixStatementAsExpression: () => attachPostfixStatementAsExpression,
495
496
  blockWithPrefix: () => blockWithPrefix,
496
497
  convertNamedImportsToObject: () => convertNamedImportsToObject,
@@ -779,7 +780,7 @@ function getTrimmingSpace(target) {
779
780
  return;
780
781
  }
781
782
  function prepend(prefix, node) {
782
- if (!(prefix && prefix.length)) {
783
+ if (!prefix || Array.isArray(prefix) && len(prefix, 0)) {
783
784
  return node;
784
785
  }
785
786
  if (Array.isArray(node)) {
@@ -793,6 +794,21 @@ function prepend(prefix, node) {
793
794
  return [prefix, node];
794
795
  }
795
796
  }
797
+ function append(node, suffix) {
798
+ if (!suffix || Array.isArray(suffix) && len(suffix, 0)) {
799
+ return node;
800
+ }
801
+ if (Array.isArray(node)) {
802
+ return [...node, suffix];
803
+ } else if (isParent(node)) {
804
+ return {
805
+ ...node,
806
+ children: [...node.children, suffix]
807
+ };
808
+ } else {
809
+ return [node, suffix];
810
+ }
811
+ }
796
812
  function inplacePrepend(prefix, node) {
797
813
  if (!prefix) {
798
814
  return;
@@ -3257,26 +3273,24 @@ function nonMatcherBindings(pattern) {
3257
3273
  function aggregateDuplicateBindings(bindings) {
3258
3274
  const props = gatherRecursiveAll(bindings, ($10) => $10.type === "BindingProperty");
3259
3275
  const arrayBindings = gatherRecursiveAll(bindings, ($11) => $11.type === "ArrayBindingPattern");
3260
- arrayBindings.forEach((a) => {
3261
- const { elements } = a;
3262
- return elements.forEach((element) => {
3276
+ for (let i5 = 0, len4 = arrayBindings.length; i5 < len4; i5++) {
3277
+ const { elements } = arrayBindings[i5];
3278
+ for (let i6 = 0, len5 = elements.length; i6 < len5; i6++) {
3279
+ const element = elements[i6];
3263
3280
  if (Array.isArray(element)) {
3264
3281
  const [, e] = element;
3265
3282
  if (e.type === "Identifier") {
3266
- return props.push(e);
3283
+ props.push(e);
3267
3284
  } else if (e.type === "BindingRestElement") {
3268
- return props.push(e);
3285
+ props.push(e);
3269
3286
  }
3270
- ;
3271
- return;
3272
3287
  }
3273
- ;
3274
- return;
3275
- });
3276
- });
3288
+ }
3289
+ }
3277
3290
  const declarations = [];
3278
3291
  const propsGroupedByName = /* @__PURE__ */ new Map();
3279
- for (const p of props) {
3292
+ for (let i7 = 0, len6 = props.length; i7 < len6; i7++) {
3293
+ const p = props[i7];
3280
3294
  const { name, value } = p;
3281
3295
  let m1;
3282
3296
  if (m1 = value?.type, m1 === "ArrayBindingPattern" || m1 === "ObjectBindingPattern") {
@@ -3298,9 +3312,10 @@ function aggregateDuplicateBindings(bindings) {
3298
3312
  pos: 0,
3299
3313
  input: key
3300
3314
  })) {
3301
- shared.forEach((p) => {
3302
- return aliasBinding(p, makeRef(`_${key}`, key));
3303
- });
3315
+ for (let i8 = 0, len7 = shared.length; i8 < len7; i8++) {
3316
+ const p = shared[i8];
3317
+ aliasBinding(p, makeRef(`_${key}`, key));
3318
+ }
3304
3319
  return;
3305
3320
  }
3306
3321
  if (shared.length === 1) {
@@ -5178,9 +5193,8 @@ function expressionizeIfStatement(statement) {
5178
5193
  children
5179
5194
  });
5180
5195
  }
5181
- function expressionizeTypeIf([ws, ifOp, condition, t, e]) {
5196
+ function expressionizeTypeIf([ifOp, condition, t, e]) {
5182
5197
  const children = [
5183
- ws,
5184
5198
  "(",
5185
5199
  insertTrimmingSpace(condition, ""),
5186
5200
  "?"
@@ -7137,6 +7151,8 @@ var grammar = {
7137
7151
  TypePredicate,
7138
7152
  Type,
7139
7153
  TypeBinary,
7154
+ NestedTypeBinaryChain,
7155
+ NestedTypeBinary,
7140
7156
  TypeUnary,
7141
7157
  TypeUnarySuffix,
7142
7158
  TypeUnaryOp,
@@ -7145,13 +7161,21 @@ var grammar = {
7145
7161
  TypePrimary,
7146
7162
  ImportType,
7147
7163
  TypeTuple,
7148
- TypeList,
7164
+ TypeTupleContent,
7165
+ TypeElementListWithIndentedApplicationForbidden,
7166
+ TypeElementList,
7149
7167
  TypeElement,
7150
- NestedTypeList,
7151
- NestedType,
7168
+ NestedTypeElementList,
7169
+ NestedTypeElement,
7170
+ NestedTypeBulletedTuple,
7171
+ TypeBulletedTuple,
7172
+ NestedTypeBullet,
7173
+ TypeBullet,
7174
+ TypeWithPostfix,
7152
7175
  TypeConditional,
7153
7176
  TypeCondition,
7154
7177
  TypeIfThenElse,
7178
+ TypeIfClause,
7155
7179
  TypeElse,
7156
7180
  TypeBlock,
7157
7181
  TypeTemplateSubstitution,
@@ -7166,6 +7190,14 @@ var grammar = {
7166
7190
  TypeFunction,
7167
7191
  TypeArrowFunction,
7168
7192
  TypeArguments,
7193
+ ImplicitTypeArguments,
7194
+ TypeApplicationStart,
7195
+ ForbiddenImplicitTypeCalls,
7196
+ TypeArgumentList,
7197
+ NestedTypeArgumentList,
7198
+ NestedTypeArgument,
7199
+ SingleLineTypeArgumentList,
7200
+ TypeArgumentDelimited,
7169
7201
  TypeArgument,
7170
7202
  TypeArgumentDelimiter,
7171
7203
  TypeParameters,
@@ -7194,6 +7226,8 @@ var grammar = {
7194
7226
  InsertCloseBrace,
7195
7227
  InsertOpenBracket,
7196
7228
  InsertCloseBracket,
7229
+ InsertOpenAngleBracket,
7230
+ InsertCloseAngleBracket,
7197
7231
  InsertComma,
7198
7232
  InsertSpaceEquals,
7199
7233
  InsertConst,
@@ -7235,7 +7269,8 @@ var grammar = {
7235
7269
  IndentedFurther,
7236
7270
  IndentedAtLeast,
7237
7271
  NotDedented,
7238
- Dedented
7272
+ Dedented,
7273
+ PushExtraIndent1
7239
7274
  };
7240
7275
  var $L0 = (0, import_lib3.$L)("");
7241
7276
  var $L1 = (0, import_lib3.$L)("{");
@@ -7482,7 +7517,7 @@ var $R2 = (0, import_lib3.$R)(new RegExp("(as|of|satisfies|then|when|implements|
7482
7517
  var $R3 = (0, import_lib3.$R)(new RegExp("[0-9]", "suy"));
7483
7518
  var $R4 = (0, import_lib3.$R)(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy"));
7484
7519
  var $R5 = (0, import_lib3.$R)(new RegExp("[ \\t]", "suy"));
7485
- var $R6 = (0, import_lib3.$R)(new RegExp("\\p{ID_Continue}|[\\u200C\\u200D$.#{]", "suy"));
7520
+ var $R6 = (0, import_lib3.$R)(new RegExp("\\p{ID_Continue}|[\\u200C\\u200D$.#{=]", "suy"));
7486
7521
  var $R7 = (0, import_lib3.$R)(new RegExp("[&=]", "suy"));
7487
7522
  var $R8 = (0, import_lib3.$R)(new RegExp("(?=['\"`])", "suy"));
7488
7523
  var $R9 = (0, import_lib3.$R)(new RegExp("(?=[\\/?])", "suy"));
@@ -7566,14 +7601,16 @@ var $R86 = (0, import_lib3.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
7566
7601
  var $R87 = (0, import_lib3.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
7567
7602
  var $R88 = (0, import_lib3.$R)(new RegExp("[+-]?", "suy"));
7568
7603
  var $R89 = (0, import_lib3.$R)(new RegExp("(?=if|unless)", "suy"));
7569
- var $R90 = (0, import_lib3.$R)(new RegExp("#![^\\r\\n]*", "suy"));
7570
- var $R91 = (0, import_lib3.$R)(new RegExp("[\\t ]*", "suy"));
7571
- var $R92 = (0, import_lib3.$R)(new RegExp("[\\s]*", "suy"));
7572
- var $R93 = (0, import_lib3.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
7573
- var $R94 = (0, import_lib3.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
7574
- var $R95 = (0, import_lib3.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
7575
- var $R96 = (0, import_lib3.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
7576
- var $R97 = (0, import_lib3.$R)(new RegExp("[^]*", "suy"));
7604
+ var $R90 = (0, import_lib3.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
7605
+ var $R91 = (0, import_lib3.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
7606
+ var $R92 = (0, import_lib3.$R)(new RegExp("#![^\\r\\n]*", "suy"));
7607
+ var $R93 = (0, import_lib3.$R)(new RegExp("[\\t ]*", "suy"));
7608
+ var $R94 = (0, import_lib3.$R)(new RegExp("[\\s]*", "suy"));
7609
+ var $R95 = (0, import_lib3.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
7610
+ var $R96 = (0, import_lib3.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
7611
+ var $R97 = (0, import_lib3.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
7612
+ var $R98 = (0, import_lib3.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
7613
+ var $R99 = (0, import_lib3.$R)(new RegExp("[^]*", "suy"));
7577
7614
  var Program$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Reset, Init, (0, import_lib3.$E)(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7578
7615
  var reset = $1;
7579
7616
  var init = $2;
@@ -7760,6 +7797,9 @@ var ImplicitArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(ApplicationSt
7760
7797
  var close = $5;
7761
7798
  if (skipImplicitArguments(args))
7762
7799
  return $skip;
7800
+ let last = args[args.length - 1];
7801
+ if (last?.token === "," && last.implicit)
7802
+ args = args.slice(0, -1);
7763
7803
  return {
7764
7804
  type: "Call",
7765
7805
  args,
@@ -8114,7 +8154,7 @@ var NWTypePostfix$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(As, _, Tuple), fu
8114
8154
  children: [{ $loc: $1.$loc, token: "satisfies" }, $2, $3]
8115
8155
  };
8116
8156
  });
8117
- var NWTypePostfix$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(As, (0, import_lib3.$E)(ExclamationPoint), Type), function($skip, $loc, $0, $1, $2, $3) {
8157
+ var NWTypePostfix$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(As, (0, import_lib3.$E)(ExclamationPoint), (0, import_lib3.$C)(Type, (0, import_lib3.$S)(__, Const))), function($skip, $loc, $0, $1, $2, $3) {
8118
8158
  var as = $1;
8119
8159
  var ex = $2;
8120
8160
  var type = $3;
@@ -8468,7 +8508,7 @@ var ParenthesizedExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenPar
8468
8508
  function ParenthesizedExpression(ctx, state2) {
8469
8509
  return (0, import_lib3.$EVENT)(ctx, state2, "ParenthesizedExpression", ParenthesizedExpression$0);
8470
8510
  }
8471
- var Placeholder$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Dot, (0, import_lib3.$N)((0, import_lib3.$EXPECT)($R6, "Placeholder /\\p{ID_Continue}|[\\u200C\\u200D$.#{]/")), (0, import_lib3.$E)(PlaceholderTypeSuffix)), function($skip, $loc, $0, $1, $2, $3) {
8511
+ var Placeholder$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Dot, (0, import_lib3.$N)((0, import_lib3.$EXPECT)($R6, "Placeholder /\\p{ID_Continue}|[\\u200C\\u200D$.#{=]/")), (0, import_lib3.$E)(PlaceholderTypeSuffix)), function($skip, $loc, $0, $1, $2, $3) {
8472
8512
  var dot = $1;
8473
8513
  var typeSuffix = $3;
8474
8514
  return {
@@ -9421,18 +9461,18 @@ var NonEmptyParameters$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_l
9421
9461
  var params = $3;
9422
9462
  var close = $4;
9423
9463
  let tt, before = [], rest, after = [], errors = [];
9424
- function append(p) {
9464
+ function append2(p) {
9425
9465
  (rest ? after : before).push(p);
9426
9466
  }
9427
9467
  for (const param of params) {
9428
9468
  switch (param.type) {
9429
9469
  case "ThisType":
9430
9470
  if (tt) {
9431
- append({
9471
+ append2({
9432
9472
  type: "Error",
9433
9473
  message: "Only one typed this parameter is allowed"
9434
9474
  });
9435
- append(param);
9475
+ append2(param);
9436
9476
  } else {
9437
9477
  tt = trimFirstSpace(param);
9438
9478
  if (before.length || rest) {
@@ -9450,17 +9490,17 @@ var NonEmptyParameters$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_l
9450
9490
  break;
9451
9491
  case "FunctionRestParameter":
9452
9492
  if (rest) {
9453
- append({
9493
+ append2({
9454
9494
  type: "Error",
9455
9495
  message: "Only one rest parameter is allowed"
9456
9496
  });
9457
- append(param);
9497
+ append2(param);
9458
9498
  } else {
9459
9499
  rest = param;
9460
9500
  }
9461
9501
  break;
9462
9502
  default:
9463
- append(param);
9503
+ append2(param);
9464
9504
  }
9465
9505
  }
9466
9506
  const names = before.flatMap((p) => p.names);
@@ -10965,15 +11005,10 @@ var NestedElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, ElementLi
10965
11005
  if (!length)
10966
11006
  return $skip;
10967
11007
  return list.map((e, i) => {
10968
- if (i === 0 && i === length - 1) {
10969
- return { ...e, children: [indent, ...e.children, delimiter] };
10970
- }
10971
- if (i === 0) {
10972
- return { ...e, children: [indent, ...e.children] };
10973
- }
10974
- if (i === length - 1) {
10975
- return { ...e, children: [...e.children, delimiter] };
10976
- }
11008
+ if (i === 0)
11009
+ e = prepend(indent, e);
11010
+ if (i === length - 1)
11011
+ e = append(e, delimiter);
10977
11012
  return e;
10978
11013
  });
10979
11014
  });
@@ -11003,19 +11038,13 @@ var ElementList$0 = (0, import_lib3.$T)((0, import_lib3.$S)(BulletedArray), func
11003
11038
  var ElementList$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), ArrayElementExpression, (0, import_lib3.$Q)(ElementListRest)), function($skip, $loc, $0, $1, $2, $3) {
11004
11039
  var first = $2;
11005
11040
  var rest = $3;
11006
- if (rest.length) {
11007
- return [{
11008
- ...first,
11009
- children: [...first.children, rest[0][0]]
11010
- }].concat(rest.map(([_2, e], i) => {
11011
- const delim = rest[i + 1]?.[0];
11012
- return {
11013
- ...e,
11014
- children: [...e.children, delim]
11015
- };
11016
- }));
11017
- }
11018
- return [first];
11041
+ if (!rest.length)
11042
+ return [first];
11043
+ return [
11044
+ append(first, rest[0][0])
11045
+ ].concat(
11046
+ rest.map(([_2, e], i) => append(e, rest[i + 1]?.[0]))
11047
+ );
11019
11048
  });
11020
11049
  var ElementList$$ = [ElementList$0, ElementList$1];
11021
11050
  function ElementList(ctx, state2) {
@@ -11076,9 +11105,10 @@ var NestedBulletedArray$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_
11076
11105
  if (!content.length)
11077
11106
  return $skip;
11078
11107
  content = content.flat();
11079
- const { children } = content[content.length - 1];
11080
- if (children.at(-1).implicit)
11081
- children.pop();
11108
+ const last = content[content.length - 1];
11109
+ if (last.children?.at(-1)?.implicit) {
11110
+ last.children = last.children.slice(0, -1);
11111
+ }
11082
11112
  return {
11083
11113
  type: "ArrayExpression",
11084
11114
  children: [...open, ...content, close]
@@ -11098,9 +11128,10 @@ var BulletedArray$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertOpenBracket
11098
11128
  // replace first space with bracket
11099
11129
  ...content[1].flat()
11100
11130
  ];
11101
- const { children } = content[content.length - 1];
11102
- if (children.at(-1).implicit)
11103
- children.pop();
11131
+ const last = content[content.length - 1];
11132
+ if (last.children?.at(-1)?.implicit) {
11133
+ last.children = last.children.slice(0, -1);
11134
+ }
11104
11135
  return {
11105
11136
  type: "ArrayExpression",
11106
11137
  children: [open, ...content, close]
@@ -11112,7 +11143,7 @@ function BulletedArray(ctx, state2) {
11112
11143
  var NestedArrayBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, ArrayBullet), function($skip, $loc, $0, $1, $2) {
11113
11144
  var indent = $1;
11114
11145
  var list = $2;
11115
- return list.map((e, i) => i === 0 ? { ...e, children: [indent, ...e.children] } : e);
11146
+ return list.map((e, i) => i === 0 ? prepend(indent, e) : e);
11116
11147
  });
11117
11148
  function NestedArrayBullet(ctx, state2) {
11118
11149
  return (0, import_lib3.$EVENT)(ctx, state2, "NestedArrayBullet", NestedArrayBullet$0);
@@ -11123,15 +11154,13 @@ var ArrayBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(BulletIndent, (0, i
11123
11154
  if (!content)
11124
11155
  return $skip;
11125
11156
  let [list, delimiter] = content;
11126
- if (list.type === "ArrayExpression")
11127
- list = [list];
11128
11157
  if (!list.length)
11129
11158
  return $skip;
11130
11159
  list = list.slice();
11131
- list[0] = { ...list[0], children: [bullet, ...list[0].children] };
11160
+ list[0] = prepend(bullet, list[0]);
11132
11161
  if (delimiter) {
11133
11162
  const last = list.length - 1;
11134
- list[last] = { ...list[last], children: [...list[last].children, delimiter] };
11163
+ list[last] = append(list[last], delimiter);
11135
11164
  }
11136
11165
  return list;
11137
11166
  });
@@ -15924,9 +15953,42 @@ var JSXText$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R87, "JSXText /[^
15924
15953
  function JSXText(ctx, state2) {
15925
15954
  return (0, import_lib3.$EVENT)(ctx, state2, "JSXText", JSXText$0);
15926
15955
  }
15927
- var JSXChildExpression$0 = (0, import_lib3.$S)((0, import_lib3.$E)(Whitespace), (0, import_lib3.$E)((0, import_lib3.$S)(DotDotDot, (0, import_lib3.$E)(Whitespace))), PostfixedExpression);
15956
+ var JSXChildExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(Whitespace), LexicalDeclaration), function($skip, $loc, $0, $1, $2) {
15957
+ var d = $2;
15958
+ let names = d.names.concat(
15959
+ d.thisAssignments.map((a) => a[1][1])
15960
+ );
15961
+ names.sort();
15962
+ names = names.filter((name, i) => i === 0 || name !== names[i - 1]);
15963
+ d = {
15964
+ ...d,
15965
+ hoistDec: {
15966
+ type: "Declaration",
15967
+ children: [
15968
+ "let ",
15969
+ names.map((n, i) => i === 0 ? [n] : [",", n]).flat()
15970
+ ]
15971
+ },
15972
+ children: d.children.slice(1)
15973
+ // drop LetOrConst
15974
+ };
15975
+ if (d.thisAssignments?.length) {
15976
+ d.children.push(...d.splices, ",", ...d.thisAssignments.map(
15977
+ (a, i) => a[a.length - 1] === ";" ? [
15978
+ ...a.slice(0, -1),
15979
+ i === d.thisAssignments.length - 1 ? "" : ","
15980
+ ] : a
15981
+ ));
15982
+ } else if (d.splices?.length) {
15983
+ d.children.push(...d.splices);
15984
+ }
15985
+ d.children.push(",void 0");
15986
+ return d;
15987
+ });
15988
+ var JSXChildExpression$1 = (0, import_lib3.$S)((0, import_lib3.$E)(Whitespace), (0, import_lib3.$E)((0, import_lib3.$S)(DotDotDot, (0, import_lib3.$E)(Whitespace))), PostfixedExpression);
15989
+ var JSXChildExpression$$ = [JSXChildExpression$0, JSXChildExpression$1];
15928
15990
  function JSXChildExpression(ctx, state2) {
15929
- return (0, import_lib3.$EVENT)(ctx, state2, "JSXChildExpression", JSXChildExpression$0);
15991
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "JSXChildExpression", JSXChildExpression$$);
15930
15992
  }
15931
15993
  var IndentedJSXChildExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)(NestedJSXChildExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15932
15994
  if (!$2)
@@ -16423,14 +16485,16 @@ var TypeSuffix$$ = [TypeSuffix$0, TypeSuffix$1, TypeSuffix$2];
16423
16485
  function TypeSuffix(ctx, state2) {
16424
16486
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeSuffix", TypeSuffix$$);
16425
16487
  }
16426
- var MaybeNestedType$0 = NestedInterfaceBlock;
16427
- var MaybeNestedType$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16488
+ var MaybeNestedType$0 = NestedTypeBulletedTuple;
16489
+ var MaybeNestedType$1 = NestedInterfaceBlock;
16490
+ var MaybeNestedType$2 = NestedTypeBinaryChain;
16491
+ var MaybeNestedType$3 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16428
16492
  if (!$2)
16429
16493
  return $skip;
16430
16494
  return $2;
16431
16495
  });
16432
- var MaybeNestedType$2 = Type;
16433
- var MaybeNestedType$$ = [MaybeNestedType$0, MaybeNestedType$1, MaybeNestedType$2];
16496
+ var MaybeNestedType$4 = Type;
16497
+ var MaybeNestedType$$ = [MaybeNestedType$0, MaybeNestedType$1, MaybeNestedType$2, MaybeNestedType$3, MaybeNestedType$4];
16434
16498
  function MaybeNestedType(ctx, state2) {
16435
16499
  return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedType", MaybeNestedType$$);
16436
16500
  }
@@ -16446,9 +16510,11 @@ var ReturnTypeSuffix$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib
16446
16510
  function ReturnTypeSuffix(ctx, state2) {
16447
16511
  return (0, import_lib3.$EVENT)(ctx, state2, "ReturnTypeSuffix", ReturnTypeSuffix$0);
16448
16512
  }
16449
- var ReturnType$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(__, (0, import_lib3.$EXPECT)($L232, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
16513
+ var ReturnType$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(__, (0, import_lib3.$EXPECT)($L232, 'ReturnType "asserts"'), NonIdContinue)), ForbidIndentedApplication, (0, import_lib3.$E)(TypePredicate), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4) {
16450
16514
  var asserts = $1;
16451
- var t = $2;
16515
+ var t = $3;
16516
+ if (!t)
16517
+ return $skip;
16452
16518
  if (asserts) {
16453
16519
  t = {
16454
16520
  type: "AssertsType",
@@ -16467,7 +16533,7 @@ var ReturnType$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(
16467
16533
  function ReturnType(ctx, state2) {
16468
16534
  return (0, import_lib3.$EVENT)(ctx, state2, "ReturnType", ReturnType$0);
16469
16535
  }
16470
- var TypePredicate$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(MaybeNestedType, (0, import_lib3.$E)((0, import_lib3.$S)(__, (0, import_lib3.$EXPECT)($L174, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
16536
+ var TypePredicate$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(MaybeNestedType, (0, import_lib3.$E)((0, import_lib3.$S)(__, Is, Type))), function($skip, $loc, $0, $1, $2) {
16471
16537
  var lhs = $1;
16472
16538
  var rhs = $2;
16473
16539
  if (!rhs)
@@ -16482,11 +16548,11 @@ var TypePredicate$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(MaybeNestedType,
16482
16548
  function TypePredicate(ctx, state2) {
16483
16549
  return (0, import_lib3.$EVENT)(ctx, state2, "TypePredicate", TypePredicate$0);
16484
16550
  }
16485
- var Type$0 = TypeConditional;
16551
+ var Type$0 = TypeWithPostfix;
16486
16552
  function Type(ctx, state2) {
16487
16553
  return (0, import_lib3.$EVENT)(ctx, state2, "Type", Type$0);
16488
16554
  }
16489
- var TypeBinary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(__, TypeBinaryOp, __)), TypeUnary, (0, import_lib3.$Q)((0, import_lib3.$S)(__, TypeBinaryOp, __, TypeUnary))), function($skip, $loc, $0, $1, $2, $3) {
16555
+ var TypeBinary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(NotDedented, TypeBinaryOp, __)), TypeUnary, (0, import_lib3.$Q)((0, import_lib3.$S)(NotDedented, TypeBinaryOp, __, TypeUnary))), function($skip, $loc, $0, $1, $2, $3) {
16490
16556
  var optionalPrefix = $1;
16491
16557
  var t = $2;
16492
16558
  var ops = $3;
@@ -16501,6 +16567,25 @@ var TypeBinary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(
16501
16567
  function TypeBinary(ctx, state2) {
16502
16568
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeBinary", TypeBinary$0);
16503
16569
  }
16570
+ var NestedTypeBinaryChain$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedTypeBinary), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16571
+ if (!$2.length)
16572
+ return $skip;
16573
+ return $2;
16574
+ });
16575
+ function NestedTypeBinaryChain(ctx, state2) {
16576
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBinaryChain", NestedTypeBinaryChain$0);
16577
+ }
16578
+ var NestedTypeBinary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, TypeBinaryOp, PushExtraIndent1, (0, import_lib3.$E)(TypeUnary), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16579
+ var indent = $1;
16580
+ var op = $2;
16581
+ var t = $4;
16582
+ if (!t)
16583
+ return $skip;
16584
+ return [indent, op, t];
16585
+ });
16586
+ function NestedTypeBinary(ctx, state2) {
16587
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBinary", NestedTypeBinary$0);
16588
+ }
16504
16589
  var TypeUnary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$Q)((0, import_lib3.$S)(__, TypeUnaryOp)), TypePrimary, (0, import_lib3.$Q)(TypeUnarySuffix)), function($skip, $loc, $0, $1, $2, $3) {
16505
16590
  var prefix = $1;
16506
16591
  var t = $2;
@@ -16570,7 +16655,7 @@ var TypePrimary$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)
16570
16655
  };
16571
16656
  });
16572
16657
  var TypePrimary$2 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), TypeTuple), function($skip, $loc, $0, $1, $2) {
16573
- return { ...$2, children: [$1, ...$2.children] };
16658
+ return prepend($1, $2);
16574
16659
  });
16575
16660
  var TypePrimary$3 = InterfaceBlock;
16576
16661
  var TypePrimary$4 = (0, import_lib3.$S)((0, import_lib3.$E)(_), TypeFunction);
@@ -16599,7 +16684,7 @@ var TypePrimary$8 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)
16599
16684
  args: void 0
16600
16685
  };
16601
16686
  });
16602
- var TypePrimary$9 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), IdentifierName, (0, import_lib3.$Q)((0, import_lib3.$S)(Dot, IdentifierName)), (0, import_lib3.$E)(TypeArguments)), function($skip, $loc, $0, $1, $2, $3, $4) {
16687
+ var TypePrimary$9 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), Identifier, (0, import_lib3.$Q)((0, import_lib3.$S)(Dot, IdentifierName)), (0, import_lib3.$E)((0, import_lib3.$C)(TypeArguments, ImplicitTypeArguments))), function($skip, $loc, $0, $1, $2, $3, $4) {
16603
16688
  var args = $4;
16604
16689
  return {
16605
16690
  type: "IdentifierType",
@@ -16608,10 +16693,13 @@ var TypePrimary$9 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)
16608
16693
  args
16609
16694
  };
16610
16695
  });
16611
- var TypePrimary$10 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), OpenParen, (0, import_lib3.$C)(Type, (0, import_lib3.$S)(EOS, Type)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16696
+ var TypePrimary$10 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), OpenParen, AllowAll, (0, import_lib3.$E)((0, import_lib3.$C)(Type, (0, import_lib3.$S)(EOS, Type))), RestoreAll, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
16697
+ if (!$4)
16698
+ return $skip;
16612
16699
  return {
16613
16700
  type: "ParenthesizedType",
16614
- children: $0
16701
+ children: [$1, $2, $4, $6, $7]
16702
+ // omit AllowAll/RestoreAll
16615
16703
  };
16616
16704
  });
16617
16705
  var TypePrimary$$ = [TypePrimary$0, TypePrimary$1, TypePrimary$2, TypePrimary$3, TypePrimary$4, TypePrimary$5, TypePrimary$6, TypePrimary$7, TypePrimary$8, TypePrimary$9, TypePrimary$10];
@@ -16624,18 +16712,58 @@ var ImportType$$ = [ImportType$0, ImportType$1];
16624
16712
  function ImportType(ctx, state2) {
16625
16713
  return (0, import_lib3.$EVENT_C)(ctx, state2, "ImportType", ImportType$$);
16626
16714
  }
16627
- var TypeTuple$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenBracket, (0, import_lib3.$C)(NestedTypeList, (0, import_lib3.$E)(TypeList)), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
16715
+ var TypeTuple$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenBracket, AllowAll, (0, import_lib3.$E)((0, import_lib3.$S)(TypeTupleContent, __, CloseBracket)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
16716
+ if (!$3)
16717
+ return $skip;
16628
16718
  return {
16629
16719
  type: "TypeTuple",
16630
- children: $0
16720
+ children: [$1, ...$3]
16631
16721
  };
16632
16722
  });
16633
16723
  function TypeTuple(ctx, state2) {
16634
16724
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeTuple", TypeTuple$0);
16635
16725
  }
16636
- var TypeList$0 = (0, import_lib3.$S)(TypeElement, (0, import_lib3.$Q)((0, import_lib3.$S)(__, Comma, TypeElement)));
16637
- function TypeList(ctx, state2) {
16638
- return (0, import_lib3.$EVENT)(ctx, state2, "TypeList", TypeList$0);
16726
+ var TypeTupleContent$0 = (0, import_lib3.$S)(NestedTypeElementList, (0, import_lib3.$Y)((0, import_lib3.$S)(__, CloseBracket)));
16727
+ var TypeTupleContent$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeElementListWithIndentedApplicationForbidden, ArrayElementDelimiter, (0, import_lib3.$E)(NestedTypeElementList), (0, import_lib3.$Y)((0, import_lib3.$S)(__, CloseBracket))), function($skip, $loc, $0, $1, $2, $3, $4) {
16728
+ var list = $1;
16729
+ var delimiter = $2;
16730
+ var nested = $3;
16731
+ if (!nested)
16732
+ return list;
16733
+ return [...list, delimiter, ...nested];
16734
+ });
16735
+ var TypeTupleContent$2 = (0, import_lib3.$TV)((0, import_lib3.$Q)((0, import_lib3.$S)(__, TypeElementListWithIndentedApplicationForbidden, ArrayElementDelimiter)), function($skip, $loc, $0, $1) {
16736
+ return $1.flat();
16737
+ });
16738
+ var TypeTupleContent$$ = [TypeTupleContent$0, TypeTupleContent$1, TypeTupleContent$2];
16739
+ function TypeTupleContent(ctx, state2) {
16740
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeTupleContent", TypeTupleContent$$);
16741
+ }
16742
+ var TypeElementListWithIndentedApplicationForbidden$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(ForbidIndentedApplication, (0, import_lib3.$E)(TypeElementList), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3) {
16743
+ if ($2)
16744
+ return $2;
16745
+ return $skip;
16746
+ });
16747
+ function TypeElementListWithIndentedApplicationForbidden(ctx, state2) {
16748
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeElementListWithIndentedApplicationForbidden", TypeElementListWithIndentedApplicationForbidden$0);
16749
+ }
16750
+ var TypeElementList$0 = (0, import_lib3.$T)((0, import_lib3.$S)(TypeBulletedTuple), function(value) {
16751
+ return [value[0]];
16752
+ });
16753
+ var TypeElementList$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), TypeElement, (0, import_lib3.$Q)((0, import_lib3.$S)((0, import_lib3.$S)((0, import_lib3.$E)(_), Comma, (0, import_lib3.$N)(EOS)), TypeElement))), function($skip, $loc, $0, $1, $2, $3) {
16754
+ var first = $2;
16755
+ var rest = $3;
16756
+ if (!rest.length)
16757
+ return [first];
16758
+ return [
16759
+ append(first, rest[0][0])
16760
+ ].concat(
16761
+ rest.map(([_2, e], i) => append(e, rest[i + 1]?.[0]))
16762
+ );
16763
+ });
16764
+ var TypeElementList$$ = [TypeElementList$0, TypeElementList$1];
16765
+ function TypeElementList(ctx, state2) {
16766
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeElementList", TypeElementList$$);
16639
16767
  }
16640
16768
  var TypeElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(__, (0, import_lib3.$E)((0, import_lib3.$S)(DotDotDot, __)), IdentifierName, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)(_), DotDotDot)), (0, import_lib3.$S)(__, (0, import_lib3.$E)((0, import_lib3.$S)(QuestionMark, (0, import_lib3.$E)(_))), Colon, __), Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
16641
16769
  var ws = $1;
@@ -16669,21 +16797,129 @@ var TypeElement$$ = [TypeElement$0, TypeElement$1, TypeElement$2];
16669
16797
  function TypeElement(ctx, state2) {
16670
16798
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeElement", TypeElement$$);
16671
16799
  }
16672
- var NestedTypeList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedType), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16800
+ var NestedTypeElementList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedTypeElement), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16673
16801
  var types = $2;
16674
16802
  if (types.length)
16675
16803
  return types;
16676
16804
  return $skip;
16677
16805
  });
16678
- function NestedTypeList(ctx, state2) {
16679
- return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeList", NestedTypeList$0);
16806
+ function NestedTypeElementList(ctx, state2) {
16807
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeElementList", NestedTypeElementList$0);
16808
+ }
16809
+ var NestedTypeElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, TypeElementList, ArrayElementDelimiter), function($skip, $loc, $0, $1, $2, $3) {
16810
+ var indent = $1;
16811
+ var list = $2;
16812
+ var delimiter = $3;
16813
+ const { length } = list;
16814
+ if (!length)
16815
+ return $skip;
16816
+ return list.map((e, i) => {
16817
+ if (i === 0)
16818
+ e = prepend(indent, e);
16819
+ if (i === length - 1)
16820
+ e = append(e, delimiter);
16821
+ return e;
16822
+ });
16823
+ });
16824
+ function NestedTypeElement(ctx, state2) {
16825
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeElement", NestedTypeElement$0);
16826
+ }
16827
+ var NestedTypeBulletedTuple$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$S)(InsertSpace, InsertOpenBracket), PushIndent, (0, import_lib3.$Q)(NestedTypeBullet), InsertCloseBracket, PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16828
+ var open = $1;
16829
+ var content = $3;
16830
+ var close = $4;
16831
+ if (!content.length)
16832
+ return $skip;
16833
+ content = content.flat();
16834
+ const last = content[content.length - 1];
16835
+ let children = Array.isArray(last) ? last : last?.children;
16836
+ if (children?.at(-1).implicit) {
16837
+ children = children.slice(0, -1);
16838
+ if (Array.isArray(last)) {
16839
+ content[content.length - 1] = children;
16840
+ } else {
16841
+ content[content.length - 1] = { ...last, children };
16842
+ }
16843
+ }
16844
+ return {
16845
+ type: "TypeTuple",
16846
+ children: [...open, ...content, close]
16847
+ };
16848
+ });
16849
+ function NestedTypeBulletedTuple(ctx, state2) {
16850
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBulletedTuple", NestedTypeBulletedTuple$0);
16851
+ }
16852
+ var TypeBulletedTuple$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertOpenBracket, (0, import_lib3.$E)((0, import_lib3.$S)(TypeBullet, (0, import_lib3.$Q)(NestedTypeBullet))), InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3) {
16853
+ var open = $1;
16854
+ var content = $2;
16855
+ var close = $3;
16856
+ if (!content)
16857
+ return $skip;
16858
+ content = [
16859
+ ...trimFirstSpace(content[0]),
16860
+ // replace first space with bracket
16861
+ ...content[1].flat()
16862
+ ];
16863
+ const last = content[content.length - 1];
16864
+ let children = Array.isArray(last) ? last : last?.children;
16865
+ if (children?.at(-1).implicit) {
16866
+ children = children.slice(0, -1);
16867
+ if (Array.isArray(last)) {
16868
+ content[content.length - 1] = children;
16869
+ } else {
16870
+ content[content.length - 1] = { ...last, children };
16871
+ }
16872
+ }
16873
+ return {
16874
+ type: "TypeTuple",
16875
+ children: [open, ...content, close]
16876
+ };
16877
+ });
16878
+ function TypeBulletedTuple(ctx, state2) {
16879
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeBulletedTuple", TypeBulletedTuple$0);
16880
+ }
16881
+ var NestedTypeBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, TypeBullet), function($skip, $loc, $0, $1, $2) {
16882
+ var indent = $1;
16883
+ var list = $2;
16884
+ return list.map((e, i) => i === 0 ? prepend(indent, e) : e);
16885
+ });
16886
+ function NestedTypeBullet(ctx, state2) {
16887
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBullet", NestedTypeBullet$0);
16888
+ }
16889
+ var TypeBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(BulletIndent, (0, import_lib3.$E)((0, import_lib3.$S)(TypeElementList, ArrayBulletDelimiter)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16890
+ var bullet = $1;
16891
+ var content = $2;
16892
+ if (!content)
16893
+ return $skip;
16894
+ let [list, delimiter] = content;
16895
+ if (!list.length)
16896
+ return $skip;
16897
+ list = list.slice();
16898
+ list[0] = prepend(bullet, list[0]);
16899
+ if (delimiter) {
16900
+ const last = list.length - 1;
16901
+ list[last] = append(list[last], delimiter);
16902
+ }
16903
+ return list;
16904
+ });
16905
+ function TypeBullet(ctx, state2) {
16906
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeBullet", TypeBullet$0);
16680
16907
  }
16681
- var NestedType$0 = (0, import_lib3.$S)(Nested, TypeElement, ArrayElementDelimiter);
16682
- function NestedType(ctx, state2) {
16683
- return (0, import_lib3.$EVENT)(ctx, state2, "NestedType", NestedType$0);
16908
+ var TypeWithPostfix$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeConditional, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$C)(_, IndentedFurther)), TypeIfClause))), function($skip, $loc, $0, $1, $2) {
16909
+ var t = $1;
16910
+ var postfix = $2;
16911
+ if (!postfix)
16912
+ return t;
16913
+ return prepend(
16914
+ postfix[0],
16915
+ expressionizeTypeIf([...postfix[1], $1, void 0])
16916
+ );
16917
+ });
16918
+ function TypeWithPostfix(ctx, state2) {
16919
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
16684
16920
  }
16685
16921
  var TypeConditional$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$EXPECT)($R89, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
16686
- return [$1, expressionizeTypeIf($3)];
16922
+ return prepend($1, expressionizeTypeIf($3));
16687
16923
  });
16688
16924
  var TypeConditional$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeCondition, NotDedented, QuestionMark, __, Type, __, Colon, __, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16689
16925
  if ($1.negated)
@@ -16695,7 +16931,7 @@ var TypeConditional$$ = [TypeConditional$0, TypeConditional$1, TypeConditional$2
16695
16931
  function TypeConditional(ctx, state2) {
16696
16932
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeConditional", TypeConditional$$);
16697
16933
  }
16698
- var TypeCondition$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeBinary, (0, import_lib3.$E)(IndentedFurther), (0, import_lib3.$C)(ExtendsToken, NotExtendsToken), Type), function($skip, $loc, $0, $1, $2, $3, $4) {
16934
+ var TypeCondition$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeBinary, (0, import_lib3.$E)(IndentedFurther), (0, import_lib3.$C)(ExtendsToken, NotExtendsToken), TypeConditional), function($skip, $loc, $0, $1, $2, $3, $4) {
16699
16935
  return {
16700
16936
  type: "TypeCondition",
16701
16937
  negated: $3.negated,
@@ -16705,13 +16941,27 @@ var TypeCondition$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeBinary, (0, i
16705
16941
  function TypeCondition(ctx, state2) {
16706
16942
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeCondition", TypeCondition$0);
16707
16943
  }
16708
- var TypeIfThenElse$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$C)(If, Unless), (0, import_lib3.$S)(OpenParen, TypeCondition, CloseParen), TypeBlock, (0, import_lib3.$E)(TypeElse)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16709
- return [$1, $2, $3[1], $4, $5];
16944
+ var TypeIfThenElse$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeIfClause, TypeBlock, (0, import_lib3.$E)(TypeElse)), function($skip, $loc, $0, $1, $2, $3) {
16945
+ return [...$1, $2, $3];
16710
16946
  });
16711
- var TypeIfThenElse$1 = (0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$C)(If, Unless), TypeCondition, TypeBlock, (0, import_lib3.$E)(TypeElse));
16712
- var TypeIfThenElse$$ = [TypeIfThenElse$0, TypeIfThenElse$1];
16713
16947
  function TypeIfThenElse(ctx, state2) {
16714
- return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeIfThenElse", TypeIfThenElse$$);
16948
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeIfThenElse", TypeIfThenElse$0);
16949
+ }
16950
+ var TypeIfClause$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$C)(If, Unless), OpenParen, AllowAll, (0, import_lib3.$E)(TypeCondition), RestoreAll, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
16951
+ var condition = $4;
16952
+ if (!condition)
16953
+ return $skip;
16954
+ return [$1, condition];
16955
+ });
16956
+ var TypeIfClause$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$C)(If, Unless), ForbidIndentedApplication, (0, import_lib3.$E)(TypeCondition), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4) {
16957
+ var condition = $3;
16958
+ if (!condition)
16959
+ return $skip;
16960
+ return [$1, condition];
16961
+ });
16962
+ var TypeIfClause$$ = [TypeIfClause$0, TypeIfClause$1];
16963
+ function TypeIfClause(ctx, state2) {
16964
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeIfClause", TypeIfClause$$);
16715
16965
  }
16716
16966
  var TypeElse$0 = (0, import_lib3.$S)(NotDedented, Else, TypeBlock);
16717
16967
  function TypeElse(ctx, state2) {
@@ -16811,12 +17061,18 @@ var TypeBinaryOp$$ = [TypeBinaryOp$0, TypeBinaryOp$1];
16811
17061
  function TypeBinaryOp(ctx, state2) {
16812
17062
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeBinaryOp", TypeBinaryOp$$);
16813
17063
  }
16814
- var TypeFunction$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(Abstract, (0, import_lib3.$E)(_))), New, (0, import_lib3.$E)(_))), Parameters, __, TypeArrowFunction, (0, import_lib3.$E)(ReturnType)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16815
- var type = $5;
16816
- if (type) {
16817
- return $0;
17064
+ var TypeFunction$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(Abstract, (0, import_lib3.$E)(_))), (0, import_lib3.$E)((0, import_lib3.$S)(New, (0, import_lib3.$E)(_))), Parameters, __, TypeArrowFunction, (0, import_lib3.$E)(ReturnType)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
17065
+ var type = $6;
17066
+ const ret = [...$0];
17067
+ if ($1 && !$2) {
17068
+ ret[1] = {
17069
+ type: "Error",
17070
+ message: "abstract function types must be constructors (abstract new)"
17071
+ };
16818
17072
  }
16819
- return [...$0, "void"];
17073
+ if (!type)
17074
+ ret.push("void");
17075
+ return ret;
16820
17076
  });
16821
17077
  function TypeFunction(ctx, state2) {
16822
17078
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeFunction", TypeFunction$0);
@@ -16827,8 +17083,9 @@ var TypeArrowFunction$0 = (0, import_lib3.$TV)((0, import_lib3.$C)((0, import_li
16827
17083
  function TypeArrowFunction(ctx, state2) {
16828
17084
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArrowFunction", TypeArrowFunction$0);
16829
17085
  }
16830
- var TypeArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenAngleBracket, (0, import_lib3.$P)(TypeArgument), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
17086
+ var TypeArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenAngleBracket, (0, import_lib3.$P)((0, import_lib3.$S)(__, TypeArgumentDelimited)), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
16831
17087
  var args = $2;
17088
+ args = args.map(([ws, arg]) => [ws, ...arg]);
16832
17089
  return {
16833
17090
  type: "TypeArguments",
16834
17091
  ts: true,
@@ -16839,7 +17096,91 @@ var TypeArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenAngleBracket,
16839
17096
  function TypeArguments(ctx, state2) {
16840
17097
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArguments", TypeArguments$0);
16841
17098
  }
16842
- var TypeArgument$0 = (0, import_lib3.$S)(__, Type, TypeArgumentDelimiter);
17099
+ var ImplicitTypeArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeApplicationStart, InsertOpenAngleBracket, (0, import_lib3.$E)(Trimmed_), TypeArgumentList, InsertCloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
17100
+ var open = $2;
17101
+ var ws = $3;
17102
+ var args = $4;
17103
+ var close = $5;
17104
+ let last = args[args.length - 1];
17105
+ if (last?.token === ",")
17106
+ args = args.slice(0, -1);
17107
+ return [open, ws, args, close];
17108
+ });
17109
+ function ImplicitTypeArguments(ctx, state2) {
17110
+ return (0, import_lib3.$EVENT)(ctx, state2, "ImplicitTypeArguments", ImplicitTypeArguments$0);
17111
+ }
17112
+ var TypeApplicationStart$0 = (0, import_lib3.$S)(IndentedApplicationAllowed, (0, import_lib3.$Y)((0, import_lib3.$S)(IndentedFurther, (0, import_lib3.$N)(ForbiddenImplicitTypeCalls))));
17113
+ var TypeApplicationStart$1 = (0, import_lib3.$S)((0, import_lib3.$N)(EOS), (0, import_lib3.$Y)((0, import_lib3.$S)(_, (0, import_lib3.$N)(ForbiddenImplicitTypeCalls))));
17114
+ var TypeApplicationStart$$ = [TypeApplicationStart$0, TypeApplicationStart$1];
17115
+ function TypeApplicationStart(ctx, state2) {
17116
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
17117
+ }
17118
+ var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
17119
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
17120
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
17121
+ var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
17122
+ function ForbiddenImplicitTypeCalls(ctx, state2) {
17123
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
17124
+ }
17125
+ var TypeArgumentList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), TypeArgument, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$N)(EOS), (0, import_lib3.$E)(_), TypeArgument)), (0, import_lib3.$P)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$C)(NestedTypeBulletedTuple, NestedInterfaceBlock, NestedTypeArgumentList)))), function($skip, $loc, $0, $1, $2, $3, $4) {
17126
+ return [
17127
+ $2,
17128
+ ...$3.flatMap(([comma, eos, ws, arg]) => [comma, prepend(ws, arg)]),
17129
+ ...$4.flatMap(
17130
+ ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
17131
+ )
17132
+ ];
17133
+ });
17134
+ var TypeArgumentList$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$C)(NestedTypeBulletedTuple, NestedInterfaceBlock), (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$C)(NestedTypeBulletedTuple, NestedInterfaceBlock, NestedTypeArgumentList)))), function($skip, $loc, $0, $1, $2) {
17135
+ return [
17136
+ trimFirstSpace($1),
17137
+ ...$2.flatMap(
17138
+ ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
17139
+ )
17140
+ ];
17141
+ });
17142
+ var TypeArgumentList$2 = NestedTypeArgumentList;
17143
+ var TypeArgumentList$3 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeArgument, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$E)(_), TypeArgument))), function($skip, $loc, $0, $1, $2) {
17144
+ return [
17145
+ $1,
17146
+ ...$2.flatMap(([comma, ws, arg]) => [comma, prepend(ws, arg)])
17147
+ ];
17148
+ });
17149
+ var TypeArgumentList$$ = [TypeArgumentList$0, TypeArgumentList$1, TypeArgumentList$2, TypeArgumentList$3];
17150
+ function TypeArgumentList(ctx, state2) {
17151
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeArgumentList", TypeArgumentList$$);
17152
+ }
17153
+ var NestedTypeArgumentList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedTypeArgument), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
17154
+ var args = $2;
17155
+ if (!args.length)
17156
+ return $skip;
17157
+ return args.flat();
17158
+ });
17159
+ function NestedTypeArgumentList(ctx, state2) {
17160
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeArgumentList", NestedTypeArgumentList$0);
17161
+ }
17162
+ var NestedTypeArgument$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, SingleLineTypeArgumentList, TypeArgumentDelimiter), function($skip, $loc, $0, $1, $2, $3) {
17163
+ var indent = $1;
17164
+ var args = $2;
17165
+ var comma = $3;
17166
+ let [arg0, ...rest] = args;
17167
+ arg0 = prepend(indent, arg0);
17168
+ return [arg0, ...rest, comma];
17169
+ });
17170
+ function NestedTypeArgument(ctx, state2) {
17171
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeArgument", NestedTypeArgument$0);
17172
+ }
17173
+ var SingleLineTypeArgumentList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$S)((0, import_lib3.$E)(_), TypeArgument), (0, import_lib3.$Q)((0, import_lib3.$S)((0, import_lib3.$S)((0, import_lib3.$E)(_), Comma), (0, import_lib3.$S)((0, import_lib3.$E)(_), TypeArgument)))), function($skip, $loc, $0, $1, $2) {
17174
+ return [$1, ...$2.flat()];
17175
+ });
17176
+ function SingleLineTypeArgumentList(ctx, state2) {
17177
+ return (0, import_lib3.$EVENT)(ctx, state2, "SingleLineTypeArgumentList", SingleLineTypeArgumentList$0);
17178
+ }
17179
+ var TypeArgumentDelimited$0 = (0, import_lib3.$S)(TypeArgument, TypeArgumentDelimiter);
17180
+ function TypeArgumentDelimited(ctx, state2) {
17181
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeArgumentDelimited", TypeArgumentDelimited$0);
17182
+ }
17183
+ var TypeArgument$0 = Type;
16843
17184
  function TypeArgument(ctx, state2) {
16844
17185
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArgument", TypeArgument$0);
16845
17186
  }
@@ -16886,15 +17227,15 @@ var ThisType$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$E)(_),
16886
17227
  function ThisType(ctx, state2) {
16887
17228
  return (0, import_lib3.$EVENT)(ctx, state2, "ThisType", ThisType$0);
16888
17229
  }
16889
- var Shebang$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R90, "Shebang /#![^\\r\\n]*/")), EOL);
17230
+ var Shebang$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R92, "Shebang /#![^\\r\\n]*/")), EOL);
16890
17231
  function Shebang(ctx, state2) {
16891
17232
  return (0, import_lib3.$EVENT)(ctx, state2, "Shebang", Shebang$0);
16892
17233
  }
16893
- var CivetPrologue$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R91, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
17234
+ var CivetPrologue$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R93, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
16894
17235
  var content = value[2];
16895
17236
  return content;
16896
17237
  });
16897
- var CivetPrologue$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R91, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
17238
+ var CivetPrologue$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R93, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
16898
17239
  var content = value[2];
16899
17240
  return content;
16900
17241
  });
@@ -16902,7 +17243,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
16902
17243
  function CivetPrologue(ctx, state2) {
16903
17244
  return (0, import_lib3.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
16904
17245
  }
16905
- var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L238, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib3.$Q)(CivetOption), (0, import_lib3.$EXPECT)($R92, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
17246
+ var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L238, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib3.$Q)(CivetOption), (0, import_lib3.$EXPECT)($R94, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
16906
17247
  var options = $3;
16907
17248
  return {
16908
17249
  type: "CivetPrologue",
@@ -16913,7 +17254,7 @@ var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import
16913
17254
  function CivetPrologueContent(ctx, state2) {
16914
17255
  return (0, import_lib3.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
16915
17256
  }
16916
- var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R93, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17257
+ var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R95, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16917
17258
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
16918
17259
  if (l)
16919
17260
  return l.toUpperCase();
@@ -16930,11 +17271,11 @@ var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R93, "CivetOp
16930
17271
  function CivetOption(ctx, state2) {
16931
17272
  return (0, import_lib3.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
16932
17273
  }
16933
- var UnknownPrologue$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R91, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib3.$TEXT)(SimpleStatementDelimiter), EOS);
17274
+ var UnknownPrologue$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R93, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib3.$TEXT)(SimpleStatementDelimiter), EOS);
16934
17275
  function UnknownPrologue(ctx, state2) {
16935
17276
  return (0, import_lib3.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
16936
17277
  }
16937
- var TripleSlashDirective$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R94, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib3.$E)(EOS));
17278
+ var TripleSlashDirective$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R96, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib3.$E)(EOS));
16938
17279
  function TripleSlashDirective(ctx, state2) {
16939
17280
  return (0, import_lib3.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
16940
17281
  }
@@ -16950,13 +17291,13 @@ var PrologueString$$ = [PrologueString$0, PrologueString$1];
16950
17291
  function PrologueString(ctx, state2) {
16951
17292
  return (0, import_lib3.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
16952
17293
  }
16953
- var EOS$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R95, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib3.$P)(RestOfLine)), function(value) {
17294
+ var EOS$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R97, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib3.$P)(RestOfLine)), function(value) {
16954
17295
  return value[1];
16955
17296
  });
16956
17297
  function EOS(ctx, state2) {
16957
17298
  return (0, import_lib3.$EVENT)(ctx, state2, "EOS", EOS$0);
16958
17299
  }
16959
- var EOL$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R96, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17300
+ var EOL$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R98, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16960
17301
  return { $loc, token: $0 };
16961
17302
  });
16962
17303
  function EOL(ctx, state2) {
@@ -17022,6 +17363,18 @@ var InsertCloseBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'I
17022
17363
  function InsertCloseBracket(ctx, state2) {
17023
17364
  return (0, import_lib3.$EVENT)(ctx, state2, "InsertCloseBracket", InsertCloseBracket$0);
17024
17365
  }
17366
+ var InsertOpenAngleBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertOpenAngleBracket ""'), function($skip, $loc, $0, $1) {
17367
+ return { $loc, token: "<" };
17368
+ });
17369
+ function InsertOpenAngleBracket(ctx, state2) {
17370
+ return (0, import_lib3.$EVENT)(ctx, state2, "InsertOpenAngleBracket", InsertOpenAngleBracket$0);
17371
+ }
17372
+ var InsertCloseAngleBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertCloseAngleBracket ""'), function($skip, $loc, $0, $1) {
17373
+ return { $loc, token: ">" };
17374
+ });
17375
+ function InsertCloseAngleBracket(ctx, state2) {
17376
+ return (0, import_lib3.$EVENT)(ctx, state2, "InsertCloseAngleBracket", InsertCloseAngleBracket$0);
17377
+ }
17025
17378
  var InsertComma$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertComma ""'), function($skip, $loc, $0, $1) {
17026
17379
  return { $loc, token: ",", implicit: true };
17027
17380
  });
@@ -17354,7 +17707,7 @@ var Prologue$0 = (0, import_lib3.$Q)((0, import_lib3.$C)(TripleSlashDirective, (
17354
17707
  function Prologue(ctx, state2) {
17355
17708
  return (0, import_lib3.$EVENT)(ctx, state2, "Prologue", Prologue$0);
17356
17709
  }
17357
- var ProloguePrefix$0 = (0, import_lib3.$S)(Prologue, (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R97, "ProloguePrefix /[^]*/")));
17710
+ var ProloguePrefix$0 = (0, import_lib3.$S)(Prologue, (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R99, "ProloguePrefix /[^]*/")));
17358
17711
  function ProloguePrefix(ctx, state2) {
17359
17712
  return (0, import_lib3.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
17360
17713
  }
@@ -17444,6 +17797,20 @@ var Dedented$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$N)(Ind
17444
17797
  function Dedented(ctx, state2) {
17445
17798
  return (0, import_lib3.$EVENT)(ctx, state2, "Dedented", Dedented$0);
17446
17799
  }
17800
+ var PushExtraIndent1$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'PushExtraIndent1 ""'), function($skip, $loc, $0, $1) {
17801
+ const indent = {
17802
+ token: "",
17803
+ $loc,
17804
+ level: state.currentIndent.level + 1
17805
+ };
17806
+ if (config.verbose)
17807
+ console.log("pushing bonus indent", indent);
17808
+ state.indentLevels.push(indent);
17809
+ return indent;
17810
+ });
17811
+ function PushExtraIndent1(ctx, state2) {
17812
+ return (0, import_lib3.$EVENT)(ctx, state2, "PushExtraIndent1", PushExtraIndent1$0);
17813
+ }
17447
17814
  var parser = function() {
17448
17815
  const { fail, validate, reset } = (0, import_lib3.Validator)();
17449
17816
  let ctx = { expectation: "", fail };
@@ -17903,6 +18270,7 @@ var uncacheable = /* @__PURE__ */ new Set([
17903
18270
  "PopIndent",
17904
18271
  "TrackIndented",
17905
18272
  "BulletIndent",
18273
+ "PushExtraIndent1",
17906
18274
  // JSX
17907
18275
  "PushJSXOpeningElement",
17908
18276
  "PushJSXOpeningFragment",