@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.js CHANGED
@@ -62,7 +62,7 @@ var require_machine = __commonJS({
62
62
  $N: () => $N2,
63
63
  $P: () => $P2,
64
64
  $Q: () => $Q2,
65
- $R: () => $R98,
65
+ $R: () => $R100,
66
66
  $R$0: () => $R$02,
67
67
  $S: () => $S2,
68
68
  $T: () => $T2,
@@ -99,7 +99,7 @@ var require_machine = __commonJS({
99
99
  return;
100
100
  };
101
101
  }
102
- function $R98(regExp) {
102
+ function $R100(regExp) {
103
103
  return function(_ctx, state2) {
104
104
  const { input, pos } = state2;
105
105
  regExp.lastIndex = state2.pos;
@@ -511,6 +511,7 @@ __export(lib_exports, {
511
511
  addPostfixStatement: () => addPostfixStatement,
512
512
  adjustBindingElements: () => adjustBindingElements,
513
513
  adjustIndexAccess: () => adjustIndexAccess,
514
+ append: () => append,
514
515
  attachPostfixStatementAsExpression: () => attachPostfixStatementAsExpression,
515
516
  blockWithPrefix: () => blockWithPrefix,
516
517
  convertNamedImportsToObject: () => convertNamedImportsToObject,
@@ -799,7 +800,7 @@ function getTrimmingSpace(target) {
799
800
  return;
800
801
  }
801
802
  function prepend(prefix, node) {
802
- if (!(prefix && prefix.length)) {
803
+ if (!prefix || Array.isArray(prefix) && len(prefix, 0)) {
803
804
  return node;
804
805
  }
805
806
  if (Array.isArray(node)) {
@@ -813,6 +814,21 @@ function prepend(prefix, node) {
813
814
  return [prefix, node];
814
815
  }
815
816
  }
817
+ function append(node, suffix) {
818
+ if (!suffix || Array.isArray(suffix) && len(suffix, 0)) {
819
+ return node;
820
+ }
821
+ if (Array.isArray(node)) {
822
+ return [...node, suffix];
823
+ } else if (isParent(node)) {
824
+ return {
825
+ ...node,
826
+ children: [...node.children, suffix]
827
+ };
828
+ } else {
829
+ return [node, suffix];
830
+ }
831
+ }
816
832
  function inplacePrepend(prefix, node) {
817
833
  if (!prefix) {
818
834
  return;
@@ -3277,26 +3293,24 @@ function nonMatcherBindings(pattern) {
3277
3293
  function aggregateDuplicateBindings(bindings) {
3278
3294
  const props = gatherRecursiveAll(bindings, ($10) => $10.type === "BindingProperty");
3279
3295
  const arrayBindings = gatherRecursiveAll(bindings, ($11) => $11.type === "ArrayBindingPattern");
3280
- arrayBindings.forEach((a) => {
3281
- const { elements } = a;
3282
- return elements.forEach((element) => {
3296
+ for (let i5 = 0, len4 = arrayBindings.length; i5 < len4; i5++) {
3297
+ const { elements } = arrayBindings[i5];
3298
+ for (let i6 = 0, len5 = elements.length; i6 < len5; i6++) {
3299
+ const element = elements[i6];
3283
3300
  if (Array.isArray(element)) {
3284
3301
  const [, e] = element;
3285
3302
  if (e.type === "Identifier") {
3286
- return props.push(e);
3303
+ props.push(e);
3287
3304
  } else if (e.type === "BindingRestElement") {
3288
- return props.push(e);
3305
+ props.push(e);
3289
3306
  }
3290
- ;
3291
- return;
3292
3307
  }
3293
- ;
3294
- return;
3295
- });
3296
- });
3308
+ }
3309
+ }
3297
3310
  const declarations = [];
3298
3311
  const propsGroupedByName = /* @__PURE__ */ new Map();
3299
- for (const p of props) {
3312
+ for (let i7 = 0, len6 = props.length; i7 < len6; i7++) {
3313
+ const p = props[i7];
3300
3314
  const { name, value } = p;
3301
3315
  let m1;
3302
3316
  if (m1 = value?.type, m1 === "ArrayBindingPattern" || m1 === "ObjectBindingPattern") {
@@ -3318,9 +3332,10 @@ function aggregateDuplicateBindings(bindings) {
3318
3332
  pos: 0,
3319
3333
  input: key
3320
3334
  })) {
3321
- shared.forEach((p) => {
3322
- return aliasBinding(p, makeRef(`_${key}`, key));
3323
- });
3335
+ for (let i8 = 0, len7 = shared.length; i8 < len7; i8++) {
3336
+ const p = shared[i8];
3337
+ aliasBinding(p, makeRef(`_${key}`, key));
3338
+ }
3324
3339
  return;
3325
3340
  }
3326
3341
  if (shared.length === 1) {
@@ -5198,9 +5213,8 @@ function expressionizeIfStatement(statement) {
5198
5213
  children
5199
5214
  });
5200
5215
  }
5201
- function expressionizeTypeIf([ws, ifOp, condition, t, e]) {
5216
+ function expressionizeTypeIf([ifOp, condition, t, e]) {
5202
5217
  const children = [
5203
- ws,
5204
5218
  "(",
5205
5219
  insertTrimmingSpace(condition, ""),
5206
5220
  "?"
@@ -7157,6 +7171,8 @@ var grammar = {
7157
7171
  TypePredicate,
7158
7172
  Type,
7159
7173
  TypeBinary,
7174
+ NestedTypeBinaryChain,
7175
+ NestedTypeBinary,
7160
7176
  TypeUnary,
7161
7177
  TypeUnarySuffix,
7162
7178
  TypeUnaryOp,
@@ -7165,13 +7181,21 @@ var grammar = {
7165
7181
  TypePrimary,
7166
7182
  ImportType,
7167
7183
  TypeTuple,
7168
- TypeList,
7184
+ TypeTupleContent,
7185
+ TypeElementListWithIndentedApplicationForbidden,
7186
+ TypeElementList,
7169
7187
  TypeElement,
7170
- NestedTypeList,
7171
- NestedType,
7188
+ NestedTypeElementList,
7189
+ NestedTypeElement,
7190
+ NestedTypeBulletedTuple,
7191
+ TypeBulletedTuple,
7192
+ NestedTypeBullet,
7193
+ TypeBullet,
7194
+ TypeWithPostfix,
7172
7195
  TypeConditional,
7173
7196
  TypeCondition,
7174
7197
  TypeIfThenElse,
7198
+ TypeIfClause,
7175
7199
  TypeElse,
7176
7200
  TypeBlock,
7177
7201
  TypeTemplateSubstitution,
@@ -7186,6 +7210,14 @@ var grammar = {
7186
7210
  TypeFunction,
7187
7211
  TypeArrowFunction,
7188
7212
  TypeArguments,
7213
+ ImplicitTypeArguments,
7214
+ TypeApplicationStart,
7215
+ ForbiddenImplicitTypeCalls,
7216
+ TypeArgumentList,
7217
+ NestedTypeArgumentList,
7218
+ NestedTypeArgument,
7219
+ SingleLineTypeArgumentList,
7220
+ TypeArgumentDelimited,
7189
7221
  TypeArgument,
7190
7222
  TypeArgumentDelimiter,
7191
7223
  TypeParameters,
@@ -7214,6 +7246,8 @@ var grammar = {
7214
7246
  InsertCloseBrace,
7215
7247
  InsertOpenBracket,
7216
7248
  InsertCloseBracket,
7249
+ InsertOpenAngleBracket,
7250
+ InsertCloseAngleBracket,
7217
7251
  InsertComma,
7218
7252
  InsertSpaceEquals,
7219
7253
  InsertConst,
@@ -7255,7 +7289,8 @@ var grammar = {
7255
7289
  IndentedFurther,
7256
7290
  IndentedAtLeast,
7257
7291
  NotDedented,
7258
- Dedented
7292
+ Dedented,
7293
+ PushExtraIndent1
7259
7294
  };
7260
7295
  var $L0 = (0, import_lib3.$L)("");
7261
7296
  var $L1 = (0, import_lib3.$L)("{");
@@ -7502,7 +7537,7 @@ var $R2 = (0, import_lib3.$R)(new RegExp("(as|of|satisfies|then|when|implements|
7502
7537
  var $R3 = (0, import_lib3.$R)(new RegExp("[0-9]", "suy"));
7503
7538
  var $R4 = (0, import_lib3.$R)(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy"));
7504
7539
  var $R5 = (0, import_lib3.$R)(new RegExp("[ \\t]", "suy"));
7505
- var $R6 = (0, import_lib3.$R)(new RegExp("\\p{ID_Continue}|[\\u200C\\u200D$.#{]", "suy"));
7540
+ var $R6 = (0, import_lib3.$R)(new RegExp("\\p{ID_Continue}|[\\u200C\\u200D$.#{=]", "suy"));
7506
7541
  var $R7 = (0, import_lib3.$R)(new RegExp("[&=]", "suy"));
7507
7542
  var $R8 = (0, import_lib3.$R)(new RegExp("(?=['\"`])", "suy"));
7508
7543
  var $R9 = (0, import_lib3.$R)(new RegExp("(?=[\\/?])", "suy"));
@@ -7586,14 +7621,16 @@ var $R86 = (0, import_lib3.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
7586
7621
  var $R87 = (0, import_lib3.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
7587
7622
  var $R88 = (0, import_lib3.$R)(new RegExp("[+-]?", "suy"));
7588
7623
  var $R89 = (0, import_lib3.$R)(new RegExp("(?=if|unless)", "suy"));
7589
- var $R90 = (0, import_lib3.$R)(new RegExp("#![^\\r\\n]*", "suy"));
7590
- var $R91 = (0, import_lib3.$R)(new RegExp("[\\t ]*", "suy"));
7591
- var $R92 = (0, import_lib3.$R)(new RegExp("[\\s]*", "suy"));
7592
- var $R93 = (0, import_lib3.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
7593
- var $R94 = (0, import_lib3.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
7594
- var $R95 = (0, import_lib3.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
7595
- var $R96 = (0, import_lib3.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
7596
- var $R97 = (0, import_lib3.$R)(new RegExp("[^]*", "suy"));
7624
+ var $R90 = (0, import_lib3.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
7625
+ var $R91 = (0, import_lib3.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
7626
+ var $R92 = (0, import_lib3.$R)(new RegExp("#![^\\r\\n]*", "suy"));
7627
+ var $R93 = (0, import_lib3.$R)(new RegExp("[\\t ]*", "suy"));
7628
+ var $R94 = (0, import_lib3.$R)(new RegExp("[\\s]*", "suy"));
7629
+ var $R95 = (0, import_lib3.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
7630
+ var $R96 = (0, import_lib3.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
7631
+ var $R97 = (0, import_lib3.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
7632
+ var $R98 = (0, import_lib3.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
7633
+ var $R99 = (0, import_lib3.$R)(new RegExp("[^]*", "suy"));
7597
7634
  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) {
7598
7635
  var reset = $1;
7599
7636
  var init = $2;
@@ -7780,6 +7817,9 @@ var ImplicitArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(ApplicationSt
7780
7817
  var close = $5;
7781
7818
  if (skipImplicitArguments(args))
7782
7819
  return $skip;
7820
+ let last = args[args.length - 1];
7821
+ if (last?.token === "," && last.implicit)
7822
+ args = args.slice(0, -1);
7783
7823
  return {
7784
7824
  type: "Call",
7785
7825
  args,
@@ -8134,7 +8174,7 @@ var NWTypePostfix$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(As, _, Tuple), fu
8134
8174
  children: [{ $loc: $1.$loc, token: "satisfies" }, $2, $3]
8135
8175
  };
8136
8176
  });
8137
- 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) {
8177
+ 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) {
8138
8178
  var as = $1;
8139
8179
  var ex = $2;
8140
8180
  var type = $3;
@@ -8488,7 +8528,7 @@ var ParenthesizedExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenPar
8488
8528
  function ParenthesizedExpression(ctx, state2) {
8489
8529
  return (0, import_lib3.$EVENT)(ctx, state2, "ParenthesizedExpression", ParenthesizedExpression$0);
8490
8530
  }
8491
- 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) {
8531
+ 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) {
8492
8532
  var dot = $1;
8493
8533
  var typeSuffix = $3;
8494
8534
  return {
@@ -9441,18 +9481,18 @@ var NonEmptyParameters$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_l
9441
9481
  var params = $3;
9442
9482
  var close = $4;
9443
9483
  let tt, before = [], rest, after = [], errors = [];
9444
- function append(p) {
9484
+ function append2(p) {
9445
9485
  (rest ? after : before).push(p);
9446
9486
  }
9447
9487
  for (const param of params) {
9448
9488
  switch (param.type) {
9449
9489
  case "ThisType":
9450
9490
  if (tt) {
9451
- append({
9491
+ append2({
9452
9492
  type: "Error",
9453
9493
  message: "Only one typed this parameter is allowed"
9454
9494
  });
9455
- append(param);
9495
+ append2(param);
9456
9496
  } else {
9457
9497
  tt = trimFirstSpace(param);
9458
9498
  if (before.length || rest) {
@@ -9470,17 +9510,17 @@ var NonEmptyParameters$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_l
9470
9510
  break;
9471
9511
  case "FunctionRestParameter":
9472
9512
  if (rest) {
9473
- append({
9513
+ append2({
9474
9514
  type: "Error",
9475
9515
  message: "Only one rest parameter is allowed"
9476
9516
  });
9477
- append(param);
9517
+ append2(param);
9478
9518
  } else {
9479
9519
  rest = param;
9480
9520
  }
9481
9521
  break;
9482
9522
  default:
9483
- append(param);
9523
+ append2(param);
9484
9524
  }
9485
9525
  }
9486
9526
  const names = before.flatMap((p) => p.names);
@@ -10985,15 +11025,10 @@ var NestedElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, ElementLi
10985
11025
  if (!length)
10986
11026
  return $skip;
10987
11027
  return list.map((e, i) => {
10988
- if (i === 0 && i === length - 1) {
10989
- return { ...e, children: [indent, ...e.children, delimiter] };
10990
- }
10991
- if (i === 0) {
10992
- return { ...e, children: [indent, ...e.children] };
10993
- }
10994
- if (i === length - 1) {
10995
- return { ...e, children: [...e.children, delimiter] };
10996
- }
11028
+ if (i === 0)
11029
+ e = prepend(indent, e);
11030
+ if (i === length - 1)
11031
+ e = append(e, delimiter);
10997
11032
  return e;
10998
11033
  });
10999
11034
  });
@@ -11023,19 +11058,13 @@ var ElementList$0 = (0, import_lib3.$T)((0, import_lib3.$S)(BulletedArray), func
11023
11058
  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) {
11024
11059
  var first = $2;
11025
11060
  var rest = $3;
11026
- if (rest.length) {
11027
- return [{
11028
- ...first,
11029
- children: [...first.children, rest[0][0]]
11030
- }].concat(rest.map(([_2, e], i) => {
11031
- const delim = rest[i + 1]?.[0];
11032
- return {
11033
- ...e,
11034
- children: [...e.children, delim]
11035
- };
11036
- }));
11037
- }
11038
- return [first];
11061
+ if (!rest.length)
11062
+ return [first];
11063
+ return [
11064
+ append(first, rest[0][0])
11065
+ ].concat(
11066
+ rest.map(([_2, e], i) => append(e, rest[i + 1]?.[0]))
11067
+ );
11039
11068
  });
11040
11069
  var ElementList$$ = [ElementList$0, ElementList$1];
11041
11070
  function ElementList(ctx, state2) {
@@ -11096,9 +11125,10 @@ var NestedBulletedArray$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_
11096
11125
  if (!content.length)
11097
11126
  return $skip;
11098
11127
  content = content.flat();
11099
- const { children } = content[content.length - 1];
11100
- if (children.at(-1).implicit)
11101
- children.pop();
11128
+ const last = content[content.length - 1];
11129
+ if (last.children?.at(-1)?.implicit) {
11130
+ last.children = last.children.slice(0, -1);
11131
+ }
11102
11132
  return {
11103
11133
  type: "ArrayExpression",
11104
11134
  children: [...open, ...content, close]
@@ -11118,9 +11148,10 @@ var BulletedArray$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertOpenBracket
11118
11148
  // replace first space with bracket
11119
11149
  ...content[1].flat()
11120
11150
  ];
11121
- const { children } = content[content.length - 1];
11122
- if (children.at(-1).implicit)
11123
- children.pop();
11151
+ const last = content[content.length - 1];
11152
+ if (last.children?.at(-1)?.implicit) {
11153
+ last.children = last.children.slice(0, -1);
11154
+ }
11124
11155
  return {
11125
11156
  type: "ArrayExpression",
11126
11157
  children: [open, ...content, close]
@@ -11132,7 +11163,7 @@ function BulletedArray(ctx, state2) {
11132
11163
  var NestedArrayBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, ArrayBullet), function($skip, $loc, $0, $1, $2) {
11133
11164
  var indent = $1;
11134
11165
  var list = $2;
11135
- return list.map((e, i) => i === 0 ? { ...e, children: [indent, ...e.children] } : e);
11166
+ return list.map((e, i) => i === 0 ? prepend(indent, e) : e);
11136
11167
  });
11137
11168
  function NestedArrayBullet(ctx, state2) {
11138
11169
  return (0, import_lib3.$EVENT)(ctx, state2, "NestedArrayBullet", NestedArrayBullet$0);
@@ -11143,15 +11174,13 @@ var ArrayBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(BulletIndent, (0, i
11143
11174
  if (!content)
11144
11175
  return $skip;
11145
11176
  let [list, delimiter] = content;
11146
- if (list.type === "ArrayExpression")
11147
- list = [list];
11148
11177
  if (!list.length)
11149
11178
  return $skip;
11150
11179
  list = list.slice();
11151
- list[0] = { ...list[0], children: [bullet, ...list[0].children] };
11180
+ list[0] = prepend(bullet, list[0]);
11152
11181
  if (delimiter) {
11153
11182
  const last = list.length - 1;
11154
- list[last] = { ...list[last], children: [...list[last].children, delimiter] };
11183
+ list[last] = append(list[last], delimiter);
11155
11184
  }
11156
11185
  return list;
11157
11186
  });
@@ -15944,9 +15973,42 @@ var JSXText$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R87, "JSXText /[^
15944
15973
  function JSXText(ctx, state2) {
15945
15974
  return (0, import_lib3.$EVENT)(ctx, state2, "JSXText", JSXText$0);
15946
15975
  }
15947
- 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);
15976
+ var JSXChildExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(Whitespace), LexicalDeclaration), function($skip, $loc, $0, $1, $2) {
15977
+ var d = $2;
15978
+ let names = d.names.concat(
15979
+ d.thisAssignments.map((a) => a[1][1])
15980
+ );
15981
+ names.sort();
15982
+ names = names.filter((name, i) => i === 0 || name !== names[i - 1]);
15983
+ d = {
15984
+ ...d,
15985
+ hoistDec: {
15986
+ type: "Declaration",
15987
+ children: [
15988
+ "let ",
15989
+ names.map((n, i) => i === 0 ? [n] : [",", n]).flat()
15990
+ ]
15991
+ },
15992
+ children: d.children.slice(1)
15993
+ // drop LetOrConst
15994
+ };
15995
+ if (d.thisAssignments?.length) {
15996
+ d.children.push(...d.splices, ",", ...d.thisAssignments.map(
15997
+ (a, i) => a[a.length - 1] === ";" ? [
15998
+ ...a.slice(0, -1),
15999
+ i === d.thisAssignments.length - 1 ? "" : ","
16000
+ ] : a
16001
+ ));
16002
+ } else if (d.splices?.length) {
16003
+ d.children.push(...d.splices);
16004
+ }
16005
+ d.children.push(",void 0");
16006
+ return d;
16007
+ });
16008
+ 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);
16009
+ var JSXChildExpression$$ = [JSXChildExpression$0, JSXChildExpression$1];
15948
16010
  function JSXChildExpression(ctx, state2) {
15949
- return (0, import_lib3.$EVENT)(ctx, state2, "JSXChildExpression", JSXChildExpression$0);
16011
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "JSXChildExpression", JSXChildExpression$$);
15950
16012
  }
15951
16013
  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) {
15952
16014
  if (!$2)
@@ -16443,14 +16505,16 @@ var TypeSuffix$$ = [TypeSuffix$0, TypeSuffix$1, TypeSuffix$2];
16443
16505
  function TypeSuffix(ctx, state2) {
16444
16506
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeSuffix", TypeSuffix$$);
16445
16507
  }
16446
- var MaybeNestedType$0 = NestedInterfaceBlock;
16447
- 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) {
16508
+ var MaybeNestedType$0 = NestedTypeBulletedTuple;
16509
+ var MaybeNestedType$1 = NestedInterfaceBlock;
16510
+ var MaybeNestedType$2 = NestedTypeBinaryChain;
16511
+ 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) {
16448
16512
  if (!$2)
16449
16513
  return $skip;
16450
16514
  return $2;
16451
16515
  });
16452
- var MaybeNestedType$2 = Type;
16453
- var MaybeNestedType$$ = [MaybeNestedType$0, MaybeNestedType$1, MaybeNestedType$2];
16516
+ var MaybeNestedType$4 = Type;
16517
+ var MaybeNestedType$$ = [MaybeNestedType$0, MaybeNestedType$1, MaybeNestedType$2, MaybeNestedType$3, MaybeNestedType$4];
16454
16518
  function MaybeNestedType(ctx, state2) {
16455
16519
  return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedType", MaybeNestedType$$);
16456
16520
  }
@@ -16466,9 +16530,11 @@ var ReturnTypeSuffix$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib
16466
16530
  function ReturnTypeSuffix(ctx, state2) {
16467
16531
  return (0, import_lib3.$EVENT)(ctx, state2, "ReturnTypeSuffix", ReturnTypeSuffix$0);
16468
16532
  }
16469
- 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) {
16533
+ 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) {
16470
16534
  var asserts = $1;
16471
- var t = $2;
16535
+ var t = $3;
16536
+ if (!t)
16537
+ return $skip;
16472
16538
  if (asserts) {
16473
16539
  t = {
16474
16540
  type: "AssertsType",
@@ -16487,7 +16553,7 @@ var ReturnType$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(
16487
16553
  function ReturnType(ctx, state2) {
16488
16554
  return (0, import_lib3.$EVENT)(ctx, state2, "ReturnType", ReturnType$0);
16489
16555
  }
16490
- 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) {
16556
+ 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) {
16491
16557
  var lhs = $1;
16492
16558
  var rhs = $2;
16493
16559
  if (!rhs)
@@ -16502,11 +16568,11 @@ var TypePredicate$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(MaybeNestedType,
16502
16568
  function TypePredicate(ctx, state2) {
16503
16569
  return (0, import_lib3.$EVENT)(ctx, state2, "TypePredicate", TypePredicate$0);
16504
16570
  }
16505
- var Type$0 = TypeConditional;
16571
+ var Type$0 = TypeWithPostfix;
16506
16572
  function Type(ctx, state2) {
16507
16573
  return (0, import_lib3.$EVENT)(ctx, state2, "Type", Type$0);
16508
16574
  }
16509
- 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) {
16575
+ 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) {
16510
16576
  var optionalPrefix = $1;
16511
16577
  var t = $2;
16512
16578
  var ops = $3;
@@ -16521,6 +16587,25 @@ var TypeBinary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(
16521
16587
  function TypeBinary(ctx, state2) {
16522
16588
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeBinary", TypeBinary$0);
16523
16589
  }
16590
+ 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) {
16591
+ if (!$2.length)
16592
+ return $skip;
16593
+ return $2;
16594
+ });
16595
+ function NestedTypeBinaryChain(ctx, state2) {
16596
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBinaryChain", NestedTypeBinaryChain$0);
16597
+ }
16598
+ 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) {
16599
+ var indent = $1;
16600
+ var op = $2;
16601
+ var t = $4;
16602
+ if (!t)
16603
+ return $skip;
16604
+ return [indent, op, t];
16605
+ });
16606
+ function NestedTypeBinary(ctx, state2) {
16607
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBinary", NestedTypeBinary$0);
16608
+ }
16524
16609
  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) {
16525
16610
  var prefix = $1;
16526
16611
  var t = $2;
@@ -16590,7 +16675,7 @@ var TypePrimary$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)
16590
16675
  };
16591
16676
  });
16592
16677
  var TypePrimary$2 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), TypeTuple), function($skip, $loc, $0, $1, $2) {
16593
- return { ...$2, children: [$1, ...$2.children] };
16678
+ return prepend($1, $2);
16594
16679
  });
16595
16680
  var TypePrimary$3 = InterfaceBlock;
16596
16681
  var TypePrimary$4 = (0, import_lib3.$S)((0, import_lib3.$E)(_), TypeFunction);
@@ -16619,7 +16704,7 @@ var TypePrimary$8 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)
16619
16704
  args: void 0
16620
16705
  };
16621
16706
  });
16622
- 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) {
16707
+ 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) {
16623
16708
  var args = $4;
16624
16709
  return {
16625
16710
  type: "IdentifierType",
@@ -16628,10 +16713,13 @@ var TypePrimary$9 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)
16628
16713
  args
16629
16714
  };
16630
16715
  });
16631
- 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) {
16716
+ 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) {
16717
+ if (!$4)
16718
+ return $skip;
16632
16719
  return {
16633
16720
  type: "ParenthesizedType",
16634
- children: $0
16721
+ children: [$1, $2, $4, $6, $7]
16722
+ // omit AllowAll/RestoreAll
16635
16723
  };
16636
16724
  });
16637
16725
  var TypePrimary$$ = [TypePrimary$0, TypePrimary$1, TypePrimary$2, TypePrimary$3, TypePrimary$4, TypePrimary$5, TypePrimary$6, TypePrimary$7, TypePrimary$8, TypePrimary$9, TypePrimary$10];
@@ -16644,18 +16732,58 @@ var ImportType$$ = [ImportType$0, ImportType$1];
16644
16732
  function ImportType(ctx, state2) {
16645
16733
  return (0, import_lib3.$EVENT_C)(ctx, state2, "ImportType", ImportType$$);
16646
16734
  }
16647
- 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) {
16735
+ 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) {
16736
+ if (!$3)
16737
+ return $skip;
16648
16738
  return {
16649
16739
  type: "TypeTuple",
16650
- children: $0
16740
+ children: [$1, ...$3]
16651
16741
  };
16652
16742
  });
16653
16743
  function TypeTuple(ctx, state2) {
16654
16744
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeTuple", TypeTuple$0);
16655
16745
  }
16656
- var TypeList$0 = (0, import_lib3.$S)(TypeElement, (0, import_lib3.$Q)((0, import_lib3.$S)(__, Comma, TypeElement)));
16657
- function TypeList(ctx, state2) {
16658
- return (0, import_lib3.$EVENT)(ctx, state2, "TypeList", TypeList$0);
16746
+ var TypeTupleContent$0 = (0, import_lib3.$S)(NestedTypeElementList, (0, import_lib3.$Y)((0, import_lib3.$S)(__, CloseBracket)));
16747
+ 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) {
16748
+ var list = $1;
16749
+ var delimiter = $2;
16750
+ var nested = $3;
16751
+ if (!nested)
16752
+ return list;
16753
+ return [...list, delimiter, ...nested];
16754
+ });
16755
+ var TypeTupleContent$2 = (0, import_lib3.$TV)((0, import_lib3.$Q)((0, import_lib3.$S)(__, TypeElementListWithIndentedApplicationForbidden, ArrayElementDelimiter)), function($skip, $loc, $0, $1) {
16756
+ return $1.flat();
16757
+ });
16758
+ var TypeTupleContent$$ = [TypeTupleContent$0, TypeTupleContent$1, TypeTupleContent$2];
16759
+ function TypeTupleContent(ctx, state2) {
16760
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeTupleContent", TypeTupleContent$$);
16761
+ }
16762
+ 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) {
16763
+ if ($2)
16764
+ return $2;
16765
+ return $skip;
16766
+ });
16767
+ function TypeElementListWithIndentedApplicationForbidden(ctx, state2) {
16768
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeElementListWithIndentedApplicationForbidden", TypeElementListWithIndentedApplicationForbidden$0);
16769
+ }
16770
+ var TypeElementList$0 = (0, import_lib3.$T)((0, import_lib3.$S)(TypeBulletedTuple), function(value) {
16771
+ return [value[0]];
16772
+ });
16773
+ 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) {
16774
+ var first = $2;
16775
+ var rest = $3;
16776
+ if (!rest.length)
16777
+ return [first];
16778
+ return [
16779
+ append(first, rest[0][0])
16780
+ ].concat(
16781
+ rest.map(([_2, e], i) => append(e, rest[i + 1]?.[0]))
16782
+ );
16783
+ });
16784
+ var TypeElementList$$ = [TypeElementList$0, TypeElementList$1];
16785
+ function TypeElementList(ctx, state2) {
16786
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeElementList", TypeElementList$$);
16659
16787
  }
16660
16788
  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) {
16661
16789
  var ws = $1;
@@ -16689,21 +16817,129 @@ var TypeElement$$ = [TypeElement$0, TypeElement$1, TypeElement$2];
16689
16817
  function TypeElement(ctx, state2) {
16690
16818
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeElement", TypeElement$$);
16691
16819
  }
16692
- 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) {
16820
+ 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) {
16693
16821
  var types = $2;
16694
16822
  if (types.length)
16695
16823
  return types;
16696
16824
  return $skip;
16697
16825
  });
16698
- function NestedTypeList(ctx, state2) {
16699
- return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeList", NestedTypeList$0);
16826
+ function NestedTypeElementList(ctx, state2) {
16827
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeElementList", NestedTypeElementList$0);
16828
+ }
16829
+ var NestedTypeElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, TypeElementList, ArrayElementDelimiter), function($skip, $loc, $0, $1, $2, $3) {
16830
+ var indent = $1;
16831
+ var list = $2;
16832
+ var delimiter = $3;
16833
+ const { length } = list;
16834
+ if (!length)
16835
+ return $skip;
16836
+ return list.map((e, i) => {
16837
+ if (i === 0)
16838
+ e = prepend(indent, e);
16839
+ if (i === length - 1)
16840
+ e = append(e, delimiter);
16841
+ return e;
16842
+ });
16843
+ });
16844
+ function NestedTypeElement(ctx, state2) {
16845
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeElement", NestedTypeElement$0);
16846
+ }
16847
+ 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) {
16848
+ var open = $1;
16849
+ var content = $3;
16850
+ var close = $4;
16851
+ if (!content.length)
16852
+ return $skip;
16853
+ content = content.flat();
16854
+ const last = content[content.length - 1];
16855
+ let children = Array.isArray(last) ? last : last?.children;
16856
+ if (children?.at(-1).implicit) {
16857
+ children = children.slice(0, -1);
16858
+ if (Array.isArray(last)) {
16859
+ content[content.length - 1] = children;
16860
+ } else {
16861
+ content[content.length - 1] = { ...last, children };
16862
+ }
16863
+ }
16864
+ return {
16865
+ type: "TypeTuple",
16866
+ children: [...open, ...content, close]
16867
+ };
16868
+ });
16869
+ function NestedTypeBulletedTuple(ctx, state2) {
16870
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBulletedTuple", NestedTypeBulletedTuple$0);
16871
+ }
16872
+ 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) {
16873
+ var open = $1;
16874
+ var content = $2;
16875
+ var close = $3;
16876
+ if (!content)
16877
+ return $skip;
16878
+ content = [
16879
+ ...trimFirstSpace(content[0]),
16880
+ // replace first space with bracket
16881
+ ...content[1].flat()
16882
+ ];
16883
+ const last = content[content.length - 1];
16884
+ let children = Array.isArray(last) ? last : last?.children;
16885
+ if (children?.at(-1).implicit) {
16886
+ children = children.slice(0, -1);
16887
+ if (Array.isArray(last)) {
16888
+ content[content.length - 1] = children;
16889
+ } else {
16890
+ content[content.length - 1] = { ...last, children };
16891
+ }
16892
+ }
16893
+ return {
16894
+ type: "TypeTuple",
16895
+ children: [open, ...content, close]
16896
+ };
16897
+ });
16898
+ function TypeBulletedTuple(ctx, state2) {
16899
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeBulletedTuple", TypeBulletedTuple$0);
16900
+ }
16901
+ var NestedTypeBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, TypeBullet), function($skip, $loc, $0, $1, $2) {
16902
+ var indent = $1;
16903
+ var list = $2;
16904
+ return list.map((e, i) => i === 0 ? prepend(indent, e) : e);
16905
+ });
16906
+ function NestedTypeBullet(ctx, state2) {
16907
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBullet", NestedTypeBullet$0);
16908
+ }
16909
+ 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) {
16910
+ var bullet = $1;
16911
+ var content = $2;
16912
+ if (!content)
16913
+ return $skip;
16914
+ let [list, delimiter] = content;
16915
+ if (!list.length)
16916
+ return $skip;
16917
+ list = list.slice();
16918
+ list[0] = prepend(bullet, list[0]);
16919
+ if (delimiter) {
16920
+ const last = list.length - 1;
16921
+ list[last] = append(list[last], delimiter);
16922
+ }
16923
+ return list;
16924
+ });
16925
+ function TypeBullet(ctx, state2) {
16926
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeBullet", TypeBullet$0);
16700
16927
  }
16701
- var NestedType$0 = (0, import_lib3.$S)(Nested, TypeElement, ArrayElementDelimiter);
16702
- function NestedType(ctx, state2) {
16703
- return (0, import_lib3.$EVENT)(ctx, state2, "NestedType", NestedType$0);
16928
+ 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) {
16929
+ var t = $1;
16930
+ var postfix = $2;
16931
+ if (!postfix)
16932
+ return t;
16933
+ return prepend(
16934
+ postfix[0],
16935
+ expressionizeTypeIf([...postfix[1], $1, void 0])
16936
+ );
16937
+ });
16938
+ function TypeWithPostfix(ctx, state2) {
16939
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
16704
16940
  }
16705
16941
  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) {
16706
- return [$1, expressionizeTypeIf($3)];
16942
+ return prepend($1, expressionizeTypeIf($3));
16707
16943
  });
16708
16944
  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) {
16709
16945
  if ($1.negated)
@@ -16715,7 +16951,7 @@ var TypeConditional$$ = [TypeConditional$0, TypeConditional$1, TypeConditional$2
16715
16951
  function TypeConditional(ctx, state2) {
16716
16952
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeConditional", TypeConditional$$);
16717
16953
  }
16718
- 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) {
16954
+ 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) {
16719
16955
  return {
16720
16956
  type: "TypeCondition",
16721
16957
  negated: $3.negated,
@@ -16725,13 +16961,27 @@ var TypeCondition$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeBinary, (0, i
16725
16961
  function TypeCondition(ctx, state2) {
16726
16962
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeCondition", TypeCondition$0);
16727
16963
  }
16728
- 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) {
16729
- return [$1, $2, $3[1], $4, $5];
16964
+ 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) {
16965
+ return [...$1, $2, $3];
16730
16966
  });
16731
- var TypeIfThenElse$1 = (0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$C)(If, Unless), TypeCondition, TypeBlock, (0, import_lib3.$E)(TypeElse));
16732
- var TypeIfThenElse$$ = [TypeIfThenElse$0, TypeIfThenElse$1];
16733
16967
  function TypeIfThenElse(ctx, state2) {
16734
- return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeIfThenElse", TypeIfThenElse$$);
16968
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeIfThenElse", TypeIfThenElse$0);
16969
+ }
16970
+ 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) {
16971
+ var condition = $4;
16972
+ if (!condition)
16973
+ return $skip;
16974
+ return [$1, condition];
16975
+ });
16976
+ 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) {
16977
+ var condition = $3;
16978
+ if (!condition)
16979
+ return $skip;
16980
+ return [$1, condition];
16981
+ });
16982
+ var TypeIfClause$$ = [TypeIfClause$0, TypeIfClause$1];
16983
+ function TypeIfClause(ctx, state2) {
16984
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeIfClause", TypeIfClause$$);
16735
16985
  }
16736
16986
  var TypeElse$0 = (0, import_lib3.$S)(NotDedented, Else, TypeBlock);
16737
16987
  function TypeElse(ctx, state2) {
@@ -16831,12 +17081,18 @@ var TypeBinaryOp$$ = [TypeBinaryOp$0, TypeBinaryOp$1];
16831
17081
  function TypeBinaryOp(ctx, state2) {
16832
17082
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeBinaryOp", TypeBinaryOp$$);
16833
17083
  }
16834
- 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) {
16835
- var type = $5;
16836
- if (type) {
16837
- return $0;
17084
+ 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) {
17085
+ var type = $6;
17086
+ const ret = [...$0];
17087
+ if ($1 && !$2) {
17088
+ ret[1] = {
17089
+ type: "Error",
17090
+ message: "abstract function types must be constructors (abstract new)"
17091
+ };
16838
17092
  }
16839
- return [...$0, "void"];
17093
+ if (!type)
17094
+ ret.push("void");
17095
+ return ret;
16840
17096
  });
16841
17097
  function TypeFunction(ctx, state2) {
16842
17098
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeFunction", TypeFunction$0);
@@ -16847,8 +17103,9 @@ var TypeArrowFunction$0 = (0, import_lib3.$TV)((0, import_lib3.$C)((0, import_li
16847
17103
  function TypeArrowFunction(ctx, state2) {
16848
17104
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArrowFunction", TypeArrowFunction$0);
16849
17105
  }
16850
- 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) {
17106
+ 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) {
16851
17107
  var args = $2;
17108
+ args = args.map(([ws, arg]) => [ws, ...arg]);
16852
17109
  return {
16853
17110
  type: "TypeArguments",
16854
17111
  ts: true,
@@ -16859,7 +17116,91 @@ var TypeArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenAngleBracket,
16859
17116
  function TypeArguments(ctx, state2) {
16860
17117
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArguments", TypeArguments$0);
16861
17118
  }
16862
- var TypeArgument$0 = (0, import_lib3.$S)(__, Type, TypeArgumentDelimiter);
17119
+ 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) {
17120
+ var open = $2;
17121
+ var ws = $3;
17122
+ var args = $4;
17123
+ var close = $5;
17124
+ let last = args[args.length - 1];
17125
+ if (last?.token === ",")
17126
+ args = args.slice(0, -1);
17127
+ return [open, ws, args, close];
17128
+ });
17129
+ function ImplicitTypeArguments(ctx, state2) {
17130
+ return (0, import_lib3.$EVENT)(ctx, state2, "ImplicitTypeArguments", ImplicitTypeArguments$0);
17131
+ }
17132
+ var TypeApplicationStart$0 = (0, import_lib3.$S)(IndentedApplicationAllowed, (0, import_lib3.$Y)((0, import_lib3.$S)(IndentedFurther, (0, import_lib3.$N)(ForbiddenImplicitTypeCalls))));
17133
+ 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))));
17134
+ var TypeApplicationStart$$ = [TypeApplicationStart$0, TypeApplicationStart$1];
17135
+ function TypeApplicationStart(ctx, state2) {
17136
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
17137
+ }
17138
+ var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
17139
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
17140
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
17141
+ var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
17142
+ function ForbiddenImplicitTypeCalls(ctx, state2) {
17143
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
17144
+ }
17145
+ 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) {
17146
+ return [
17147
+ $2,
17148
+ ...$3.flatMap(([comma, eos, ws, arg]) => [comma, prepend(ws, arg)]),
17149
+ ...$4.flatMap(
17150
+ ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
17151
+ )
17152
+ ];
17153
+ });
17154
+ 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) {
17155
+ return [
17156
+ trimFirstSpace($1),
17157
+ ...$2.flatMap(
17158
+ ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
17159
+ )
17160
+ ];
17161
+ });
17162
+ var TypeArgumentList$2 = NestedTypeArgumentList;
17163
+ 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) {
17164
+ return [
17165
+ $1,
17166
+ ...$2.flatMap(([comma, ws, arg]) => [comma, prepend(ws, arg)])
17167
+ ];
17168
+ });
17169
+ var TypeArgumentList$$ = [TypeArgumentList$0, TypeArgumentList$1, TypeArgumentList$2, TypeArgumentList$3];
17170
+ function TypeArgumentList(ctx, state2) {
17171
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeArgumentList", TypeArgumentList$$);
17172
+ }
17173
+ 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) {
17174
+ var args = $2;
17175
+ if (!args.length)
17176
+ return $skip;
17177
+ return args.flat();
17178
+ });
17179
+ function NestedTypeArgumentList(ctx, state2) {
17180
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeArgumentList", NestedTypeArgumentList$0);
17181
+ }
17182
+ var NestedTypeArgument$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, SingleLineTypeArgumentList, TypeArgumentDelimiter), function($skip, $loc, $0, $1, $2, $3) {
17183
+ var indent = $1;
17184
+ var args = $2;
17185
+ var comma = $3;
17186
+ let [arg0, ...rest] = args;
17187
+ arg0 = prepend(indent, arg0);
17188
+ return [arg0, ...rest, comma];
17189
+ });
17190
+ function NestedTypeArgument(ctx, state2) {
17191
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeArgument", NestedTypeArgument$0);
17192
+ }
17193
+ 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) {
17194
+ return [$1, ...$2.flat()];
17195
+ });
17196
+ function SingleLineTypeArgumentList(ctx, state2) {
17197
+ return (0, import_lib3.$EVENT)(ctx, state2, "SingleLineTypeArgumentList", SingleLineTypeArgumentList$0);
17198
+ }
17199
+ var TypeArgumentDelimited$0 = (0, import_lib3.$S)(TypeArgument, TypeArgumentDelimiter);
17200
+ function TypeArgumentDelimited(ctx, state2) {
17201
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeArgumentDelimited", TypeArgumentDelimited$0);
17202
+ }
17203
+ var TypeArgument$0 = Type;
16863
17204
  function TypeArgument(ctx, state2) {
16864
17205
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArgument", TypeArgument$0);
16865
17206
  }
@@ -16906,15 +17247,15 @@ var ThisType$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$E)(_),
16906
17247
  function ThisType(ctx, state2) {
16907
17248
  return (0, import_lib3.$EVENT)(ctx, state2, "ThisType", ThisType$0);
16908
17249
  }
16909
- var Shebang$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R90, "Shebang /#![^\\r\\n]*/")), EOL);
17250
+ var Shebang$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R92, "Shebang /#![^\\r\\n]*/")), EOL);
16910
17251
  function Shebang(ctx, state2) {
16911
17252
  return (0, import_lib3.$EVENT)(ctx, state2, "Shebang", Shebang$0);
16912
17253
  }
16913
- 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) {
17254
+ 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) {
16914
17255
  var content = value[2];
16915
17256
  return content;
16916
17257
  });
16917
- 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) {
17258
+ 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) {
16918
17259
  var content = value[2];
16919
17260
  return content;
16920
17261
  });
@@ -16922,7 +17263,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
16922
17263
  function CivetPrologue(ctx, state2) {
16923
17264
  return (0, import_lib3.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
16924
17265
  }
16925
- 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) {
17266
+ 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) {
16926
17267
  var options = $3;
16927
17268
  return {
16928
17269
  type: "CivetPrologue",
@@ -16933,7 +17274,7 @@ var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import
16933
17274
  function CivetPrologueContent(ctx, state2) {
16934
17275
  return (0, import_lib3.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
16935
17276
  }
16936
- 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) {
17277
+ 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) {
16937
17278
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
16938
17279
  if (l)
16939
17280
  return l.toUpperCase();
@@ -16950,11 +17291,11 @@ var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R93, "CivetOp
16950
17291
  function CivetOption(ctx, state2) {
16951
17292
  return (0, import_lib3.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
16952
17293
  }
16953
- 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);
17294
+ 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);
16954
17295
  function UnknownPrologue(ctx, state2) {
16955
17296
  return (0, import_lib3.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
16956
17297
  }
16957
- 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));
17298
+ 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));
16958
17299
  function TripleSlashDirective(ctx, state2) {
16959
17300
  return (0, import_lib3.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
16960
17301
  }
@@ -16970,13 +17311,13 @@ var PrologueString$$ = [PrologueString$0, PrologueString$1];
16970
17311
  function PrologueString(ctx, state2) {
16971
17312
  return (0, import_lib3.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
16972
17313
  }
16973
- 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) {
17314
+ 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) {
16974
17315
  return value[1];
16975
17316
  });
16976
17317
  function EOS(ctx, state2) {
16977
17318
  return (0, import_lib3.$EVENT)(ctx, state2, "EOS", EOS$0);
16978
17319
  }
16979
- 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) {
17320
+ 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) {
16980
17321
  return { $loc, token: $0 };
16981
17322
  });
16982
17323
  function EOL(ctx, state2) {
@@ -17042,6 +17383,18 @@ var InsertCloseBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'I
17042
17383
  function InsertCloseBracket(ctx, state2) {
17043
17384
  return (0, import_lib3.$EVENT)(ctx, state2, "InsertCloseBracket", InsertCloseBracket$0);
17044
17385
  }
17386
+ var InsertOpenAngleBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertOpenAngleBracket ""'), function($skip, $loc, $0, $1) {
17387
+ return { $loc, token: "<" };
17388
+ });
17389
+ function InsertOpenAngleBracket(ctx, state2) {
17390
+ return (0, import_lib3.$EVENT)(ctx, state2, "InsertOpenAngleBracket", InsertOpenAngleBracket$0);
17391
+ }
17392
+ var InsertCloseAngleBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertCloseAngleBracket ""'), function($skip, $loc, $0, $1) {
17393
+ return { $loc, token: ">" };
17394
+ });
17395
+ function InsertCloseAngleBracket(ctx, state2) {
17396
+ return (0, import_lib3.$EVENT)(ctx, state2, "InsertCloseAngleBracket", InsertCloseAngleBracket$0);
17397
+ }
17045
17398
  var InsertComma$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertComma ""'), function($skip, $loc, $0, $1) {
17046
17399
  return { $loc, token: ",", implicit: true };
17047
17400
  });
@@ -17374,7 +17727,7 @@ var Prologue$0 = (0, import_lib3.$Q)((0, import_lib3.$C)(TripleSlashDirective, (
17374
17727
  function Prologue(ctx, state2) {
17375
17728
  return (0, import_lib3.$EVENT)(ctx, state2, "Prologue", Prologue$0);
17376
17729
  }
17377
- var ProloguePrefix$0 = (0, import_lib3.$S)(Prologue, (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R97, "ProloguePrefix /[^]*/")));
17730
+ var ProloguePrefix$0 = (0, import_lib3.$S)(Prologue, (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R99, "ProloguePrefix /[^]*/")));
17378
17731
  function ProloguePrefix(ctx, state2) {
17379
17732
  return (0, import_lib3.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
17380
17733
  }
@@ -17464,6 +17817,20 @@ var Dedented$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$N)(Ind
17464
17817
  function Dedented(ctx, state2) {
17465
17818
  return (0, import_lib3.$EVENT)(ctx, state2, "Dedented", Dedented$0);
17466
17819
  }
17820
+ var PushExtraIndent1$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'PushExtraIndent1 ""'), function($skip, $loc, $0, $1) {
17821
+ const indent = {
17822
+ token: "",
17823
+ $loc,
17824
+ level: state.currentIndent.level + 1
17825
+ };
17826
+ if (config.verbose)
17827
+ console.log("pushing bonus indent", indent);
17828
+ state.indentLevels.push(indent);
17829
+ return indent;
17830
+ });
17831
+ function PushExtraIndent1(ctx, state2) {
17832
+ return (0, import_lib3.$EVENT)(ctx, state2, "PushExtraIndent1", PushExtraIndent1$0);
17833
+ }
17467
17834
  var parser = function() {
17468
17835
  const { fail, validate, reset } = (0, import_lib3.Validator)();
17469
17836
  let ctx = { expectation: "", fail };
@@ -17923,6 +18290,7 @@ var uncacheable = /* @__PURE__ */ new Set([
17923
18290
  "PopIndent",
17924
18291
  "TrackIndented",
17925
18292
  "BulletIndent",
18293
+ "PushExtraIndent1",
17926
18294
  // JSX
17927
18295
  "PushJSXOpeningElement",
17928
18296
  "PushJSXOpeningFragment",