@danielx/civet 0.5.39 → 0.5.41

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
@@ -440,6 +440,7 @@ ${input.slice(result.pos)}
440
440
  ArgumentsWithTrailingMemberExpressions,
441
441
  TrailingMemberExpressions,
442
442
  NonSuppressedTrailingMemberExpressions,
443
+ CommaDelimiter,
443
444
  ArgumentList,
444
445
  NestedArgumentList,
445
446
  NestedArgument,
@@ -491,6 +492,7 @@ ${input.slice(result.pos)}
491
492
  AccessModifier,
492
493
  FieldDefinition,
493
494
  ThisLiteral,
495
+ AtThis,
494
496
  LeftHandSideExpression,
495
497
  CallExpression,
496
498
  CallExpressionRest,
@@ -821,9 +823,14 @@ ${input.slice(result.pos)}
821
823
  JSXTag,
822
824
  JSXElement,
823
825
  JSXSelfClosingElement,
826
+ PushJSXOpeningElement,
824
827
  JSXOpeningElement,
828
+ JSXOptionalClosingElement,
825
829
  JSXClosingElement,
826
830
  JSXFragment,
831
+ PushJSXOpeningFragment,
832
+ JSXOptionalClosingFragment,
833
+ JSXClosingFragment,
827
834
  JSXElementName,
828
835
  JSXIdentifierName,
829
836
  JSXAttributes,
@@ -846,6 +853,8 @@ ${input.slice(result.pos)}
846
853
  JSXMixedChildren,
847
854
  JSXChildren,
848
855
  JSXNestedChildren,
856
+ JSXEOS,
857
+ JSXNested,
849
858
  JSXChild,
850
859
  JSXComment,
851
860
  JSXCommentContent,
@@ -898,6 +907,7 @@ ${input.slice(result.pos)}
898
907
  TypeConstraint,
899
908
  TypeInitializer,
900
909
  TypeParameterDelimiter,
910
+ ThisType,
901
911
  Shebang,
902
912
  CivetPrologue,
903
913
  CivetPrologueContent,
@@ -930,6 +940,7 @@ ${input.slice(result.pos)}
930
940
  CoffeeForLoopsEnabled,
931
941
  CoffeeInterpolationEnabled,
932
942
  CoffeeIsntEnabled,
943
+ CoffeeJSXEnabled,
933
944
  CoffeeLineContinuationEnabled,
934
945
  CoffeeNotEnabled,
935
946
  CoffeeOfEnabled,
@@ -1332,7 +1343,7 @@ ${input.slice(result.pos)}
1332
1343
  return result;
1333
1344
  }
1334
1345
  }
1335
- var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1346
+ var Expression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1336
1347
  if ($2.length == 0)
1337
1348
  return $1;
1338
1349
  return $0;
@@ -1565,7 +1576,30 @@ ${input.slice(result.pos)}
1565
1576
  return result;
1566
1577
  }
1567
1578
  }
1568
- var ArgumentList$0 = $S(ArgumentPart, $P($S(__, Comma, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1579
+ var CommaDelimiter$0 = $S($E($C(Samedent, IndentedFurther)), $Q(_), Comma);
1580
+ function CommaDelimiter(state) {
1581
+ let eventData;
1582
+ if (state.events) {
1583
+ const result = state.events.enter?.("CommaDelimiter", state);
1584
+ if (result) {
1585
+ if (result.cache)
1586
+ return result.cache;
1587
+ eventData = result.data;
1588
+ }
1589
+ }
1590
+ if (state.tokenize) {
1591
+ const result = $TOKEN("CommaDelimiter", state, CommaDelimiter$0(state));
1592
+ if (state.events)
1593
+ state.events.exit?.("CommaDelimiter", state, result, eventData);
1594
+ return result;
1595
+ } else {
1596
+ const result = CommaDelimiter$0(state);
1597
+ if (state.events)
1598
+ state.events.exit?.("CommaDelimiter", state, result, eventData);
1599
+ return result;
1600
+ }
1601
+ }
1602
+ var ArgumentList$0 = $S(ArgumentPart, $P($S(CommaDelimiter, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1569
1603
  var ArgumentList$1 = $TS($S(NestedImplicitObjectLiteral), function($skip, $loc, $0, $1) {
1570
1604
  return module2.insertTrimmingSpace($1, "");
1571
1605
  });
@@ -1644,7 +1678,7 @@ ${input.slice(result.pos)}
1644
1678
  return result;
1645
1679
  }
1646
1680
  }
1647
- var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(__, Comma, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1681
+ var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(CommaDelimiter, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1648
1682
  return [...$1, $2, ...$3];
1649
1683
  });
1650
1684
  function InlineArgumentExpressions(state) {
@@ -2965,15 +2999,12 @@ ${input.slice(result.pos)}
2965
2999
  }
2966
3000
  }
2967
3001
  var ThisLiteral$0 = This;
2968
- var ThisLiteral$1 = $TS($S(At, $TEXT($S($E($EXPECT($L8, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
2969
- var t = $1;
3002
+ var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E($EXPECT($L8, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
3003
+ var at = $1;
2970
3004
  var id = $2;
2971
- return [{ ...t, token: "this." }, id];
2972
- });
2973
- var ThisLiteral$2 = $TS($S(At), function($skip, $loc, $0, $1) {
2974
- $1.token = "this";
2975
- return $1;
3005
+ return [at, ".", id];
2976
3006
  });
3007
+ var ThisLiteral$2 = AtThis;
2977
3008
  function ThisLiteral(state) {
2978
3009
  let eventData;
2979
3010
  if (state.events) {
@@ -2996,6 +3027,32 @@ ${input.slice(result.pos)}
2996
3027
  return result;
2997
3028
  }
2998
3029
  }
3030
+ var AtThis$0 = $TV(At, function($skip, $loc, $0, $1) {
3031
+ var at = $0;
3032
+ return { ...at, token: "this" };
3033
+ });
3034
+ function AtThis(state) {
3035
+ let eventData;
3036
+ if (state.events) {
3037
+ const result = state.events.enter?.("AtThis", state);
3038
+ if (result) {
3039
+ if (result.cache)
3040
+ return result.cache;
3041
+ eventData = result.data;
3042
+ }
3043
+ }
3044
+ if (state.tokenize) {
3045
+ const result = $TOKEN("AtThis", state, AtThis$0(state));
3046
+ if (state.events)
3047
+ state.events.exit?.("AtThis", state, result, eventData);
3048
+ return result;
3049
+ } else {
3050
+ const result = AtThis$0(state);
3051
+ if (state.events)
3052
+ state.events.exit?.("AtThis", state, result, eventData);
3053
+ return result;
3054
+ }
3055
+ }
2999
3056
  var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L2, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
3000
3057
  if ($1.length)
3001
3058
  return $0;
@@ -3437,13 +3494,14 @@ ${input.slice(result.pos)}
3437
3494
  return result;
3438
3495
  }
3439
3496
  }
3440
- var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, $Q(ParameterElement), $E(FunctionRestParameter), $Q(ParameterElement), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
3497
+ var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, $E(ThisType), $Q(ParameterElement), $E(FunctionRestParameter), $Q(ParameterElement), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
3441
3498
  var tp = $1;
3442
3499
  var open = $2;
3443
- var pes = $3;
3444
- var rest = $4;
3445
- var after = $5;
3446
- var close = $6;
3500
+ var tt = $3;
3501
+ var pes = $4;
3502
+ var rest = $5;
3503
+ var after = $6;
3504
+ var close = $7;
3447
3505
  const names = pes.flatMap((p) => p.names);
3448
3506
  if (rest) {
3449
3507
  let restIdentifier;
@@ -3466,6 +3524,7 @@ ${input.slice(result.pos)}
3466
3524
  children: [
3467
3525
  tp,
3468
3526
  open,
3527
+ tt,
3469
3528
  ...pes,
3470
3529
  { ...rest, children: rest.children.slice(0, -1) },
3471
3530
  close
@@ -3477,7 +3536,7 @@ ${input.slice(result.pos)}
3477
3536
  }
3478
3537
  return {
3479
3538
  type: "Parameters",
3480
- children: [tp, open, ...pes, close],
3539
+ children: [tp, open, tt, ...pes, close],
3481
3540
  names: pes.flatMap((p) => p.names),
3482
3541
  tp
3483
3542
  };
@@ -13049,22 +13108,36 @@ ${input.slice(result.pos)}
13049
13108
  }
13050
13109
  }
13051
13110
  var JSXElement$0 = JSXSelfClosingElement;
13052
- var JSXElement$1 = $TS($S(JSXOpeningElement, $E(JSXChildren), $E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
13053
- if ($1[1] !== $4[2])
13111
+ var JSXElement$1 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningElement, $E(JSXMixedChildren), JSXOptionalClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
13112
+ var open = $2;
13113
+ var children = $3;
13114
+ var close = $4;
13115
+ module2.JSXTagStack.pop();
13116
+ if (!children)
13054
13117
  return $skip;
13055
- return { type: "JSXElement", children: $0 };
13056
- });
13057
- var JSXElement$2 = $TS($S(JSXOpeningElement, JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
13058
- var open = $1;
13059
- var children = $2;
13060
- return {
13061
- type: "JSXElement",
13062
- children: children.jsxChildren.length ? [...$0, ["</", open[1], ">"]] : [open.slice(0, -1), " />"]
13063
- };
13118
+ $0 = $0.slice(1);
13119
+ let parts;
13120
+ if (close) {
13121
+ parts = $0;
13122
+ } else if (children.jsxChildren.length) {
13123
+ parts = [
13124
+ ...$0,
13125
+ "\n",
13126
+ module2.currentIndent.token,
13127
+ ["</", open[1], ">"]
13128
+ ];
13129
+ } else {
13130
+ parts = [open.slice(0, -1), " />"];
13131
+ }
13132
+ return { type: "JSXElement", children: parts, tag: open[1] };
13064
13133
  });
13065
- var JSXElement$3 = $TV(JSXOpeningElement, function($skip, $loc, $0, $1) {
13066
- var elt = $0;
13067
- throw new Error(`could not parse JSX element "${elt[0]}${elt[1]}${elt[elt.length - 1]}" at pos ${$loc.pos}`);
13134
+ var JSXElement$2 = $TS($S(CoffeeJSXEnabled, JSXOpeningElement, $E(JSXChildren), $E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13135
+ var open = $2;
13136
+ var close = $5;
13137
+ $0 = $0.slice(1);
13138
+ if (open[1] !== close[2])
13139
+ return $skip;
13140
+ return { type: "JSXElement", children: $0, tag: open[1] };
13068
13141
  });
13069
13142
  function JSXElement(state) {
13070
13143
  let eventData;
@@ -13077,19 +13150,19 @@ ${input.slice(result.pos)}
13077
13150
  }
13078
13151
  }
13079
13152
  if (state.tokenize) {
13080
- const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state));
13153
+ const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state));
13081
13154
  if (state.events)
13082
13155
  state.events.exit?.("JSXElement", state, result, eventData);
13083
13156
  return result;
13084
13157
  } else {
13085
- const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state);
13158
+ const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state);
13086
13159
  if (state.events)
13087
13160
  state.events.exit?.("JSXElement", state, result, eventData);
13088
13161
  return result;
13089
13162
  }
13090
13163
  }
13091
13164
  var JSXSelfClosingElement$0 = $TS($S($EXPECT($L122, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L154, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13092
- return { type: "JSXElement", children: $0 };
13165
+ return { type: "JSXElement", children: $0, tag: $2 };
13093
13166
  });
13094
13167
  function JSXSelfClosingElement(state) {
13095
13168
  let eventData;
@@ -13113,6 +13186,32 @@ ${input.slice(result.pos)}
13113
13186
  return result;
13114
13187
  }
13115
13188
  }
13189
+ var PushJSXOpeningElement$0 = $TS($S(JSXOpeningElement), function($skip, $loc, $0, $1) {
13190
+ module2.JSXTagStack.push($1[1]);
13191
+ return $1;
13192
+ });
13193
+ function PushJSXOpeningElement(state) {
13194
+ let eventData;
13195
+ if (state.events) {
13196
+ const result = state.events.enter?.("PushJSXOpeningElement", state);
13197
+ if (result) {
13198
+ if (result.cache)
13199
+ return result.cache;
13200
+ eventData = result.data;
13201
+ }
13202
+ }
13203
+ if (state.tokenize) {
13204
+ const result = $TOKEN("PushJSXOpeningElement", state, PushJSXOpeningElement$0(state));
13205
+ if (state.events)
13206
+ state.events.exit?.("PushJSXOpeningElement", state, result, eventData);
13207
+ return result;
13208
+ } else {
13209
+ const result = PushJSXOpeningElement$0(state);
13210
+ if (state.events)
13211
+ state.events.exit?.("PushJSXOpeningElement", state, result, eventData);
13212
+ return result;
13213
+ }
13214
+ }
13116
13215
  var JSXOpeningElement$0 = $S($EXPECT($L122, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L27, fail, 'JSXOpeningElement ">"'));
13117
13216
  function JSXOpeningElement(state) {
13118
13217
  let eventData;
@@ -13136,6 +13235,35 @@ ${input.slice(result.pos)}
13136
13235
  return result;
13137
13236
  }
13138
13237
  }
13238
+ var JSXOptionalClosingElement$0 = $TS($S($E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2) {
13239
+ var close = $2;
13240
+ if (module2.currentJSXTag !== close[2])
13241
+ return $skip;
13242
+ return $0;
13243
+ });
13244
+ var JSXOptionalClosingElement$1 = $EXPECT($L14, fail, 'JSXOptionalClosingElement ""');
13245
+ function JSXOptionalClosingElement(state) {
13246
+ let eventData;
13247
+ if (state.events) {
13248
+ const result = state.events.enter?.("JSXOptionalClosingElement", state);
13249
+ if (result) {
13250
+ if (result.cache)
13251
+ return result.cache;
13252
+ eventData = result.data;
13253
+ }
13254
+ }
13255
+ if (state.tokenize) {
13256
+ const result = $TOKEN("JSXOptionalClosingElement", state, JSXOptionalClosingElement$0(state) || JSXOptionalClosingElement$1(state));
13257
+ if (state.events)
13258
+ state.events.exit?.("JSXOptionalClosingElement", state, result, eventData);
13259
+ return result;
13260
+ } else {
13261
+ const result = JSXOptionalClosingElement$0(state) || JSXOptionalClosingElement$1(state);
13262
+ if (state.events)
13263
+ state.events.exit?.("JSXOptionalClosingElement", state, result, eventData);
13264
+ return result;
13265
+ }
13266
+ }
13139
13267
  var JSXClosingElement$0 = $S($EXPECT($L155, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L27, fail, 'JSXClosingElement ">"'));
13140
13268
  function JSXClosingElement(state) {
13141
13269
  let eventData;
@@ -13159,15 +13287,30 @@ ${input.slice(result.pos)}
13159
13287
  return result;
13160
13288
  }
13161
13289
  }
13162
- var JSXFragment$0 = $TS($S($EXPECT($L156, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), $EXPECT($L157, fail, 'JSXFragment "</>"')), function($skip, $loc, $0, $1, $2, $3, $4) {
13163
- if ($2) {
13164
- return { type: "JSXFragment", children: $0, jsxChildren: $2.jsxChildren };
13165
- } else {
13166
- return { type: "JSXFragment", children: $0, jsxChildren: [] };
13167
- }
13290
+ var JSXFragment$0 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningFragment, $E(JSXMixedChildren), JSXOptionalClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4) {
13291
+ var open = $2;
13292
+ var children = $3;
13293
+ var close = $4;
13294
+ module2.JSXTagStack.pop();
13295
+ if (!children)
13296
+ return $skip;
13297
+ $0 = $0.slice(1);
13298
+ const parts = close ? $0 : [
13299
+ ...$0,
13300
+ "\n",
13301
+ module2.currentIndent.token,
13302
+ "</>"
13303
+ ];
13304
+ return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
13168
13305
  });
13169
- var JSXFragment$1 = $TS($S($EXPECT($L156, fail, 'JSXFragment "<>"'), JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
13170
- return { type: "JSXFragment", children: [...$0, "</>"], jsxChildren: $2.jsxChildren };
13306
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L156, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13307
+ var children = $3;
13308
+ $0 = $0.slice(1);
13309
+ return {
13310
+ type: "JSXFragment",
13311
+ children: $0,
13312
+ jsxChildren: children ? children.jsxChildren : []
13313
+ };
13171
13314
  });
13172
13315
  function JSXFragment(state) {
13173
13316
  let eventData;
@@ -13191,6 +13334,83 @@ ${input.slice(result.pos)}
13191
13334
  return result;
13192
13335
  }
13193
13336
  }
13337
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L156, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13338
+ module2.JSXTagStack.push("");
13339
+ return $1;
13340
+ });
13341
+ function PushJSXOpeningFragment(state) {
13342
+ let eventData;
13343
+ if (state.events) {
13344
+ const result = state.events.enter?.("PushJSXOpeningFragment", state);
13345
+ if (result) {
13346
+ if (result.cache)
13347
+ return result.cache;
13348
+ eventData = result.data;
13349
+ }
13350
+ }
13351
+ if (state.tokenize) {
13352
+ const result = $TOKEN("PushJSXOpeningFragment", state, PushJSXOpeningFragment$0(state));
13353
+ if (state.events)
13354
+ state.events.exit?.("PushJSXOpeningFragment", state, result, eventData);
13355
+ return result;
13356
+ } else {
13357
+ const result = PushJSXOpeningFragment$0(state);
13358
+ if (state.events)
13359
+ state.events.exit?.("PushJSXOpeningFragment", state, result, eventData);
13360
+ return result;
13361
+ }
13362
+ }
13363
+ var JSXOptionalClosingFragment$0 = $TS($S($E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2) {
13364
+ if (module2.currentJSXTag !== "")
13365
+ return $skip;
13366
+ return $0;
13367
+ });
13368
+ var JSXOptionalClosingFragment$1 = $EXPECT($L14, fail, 'JSXOptionalClosingFragment ""');
13369
+ function JSXOptionalClosingFragment(state) {
13370
+ let eventData;
13371
+ if (state.events) {
13372
+ const result = state.events.enter?.("JSXOptionalClosingFragment", state);
13373
+ if (result) {
13374
+ if (result.cache)
13375
+ return result.cache;
13376
+ eventData = result.data;
13377
+ }
13378
+ }
13379
+ if (state.tokenize) {
13380
+ const result = $TOKEN("JSXOptionalClosingFragment", state, JSXOptionalClosingFragment$0(state) || JSXOptionalClosingFragment$1(state));
13381
+ if (state.events)
13382
+ state.events.exit?.("JSXOptionalClosingFragment", state, result, eventData);
13383
+ return result;
13384
+ } else {
13385
+ const result = JSXOptionalClosingFragment$0(state) || JSXOptionalClosingFragment$1(state);
13386
+ if (state.events)
13387
+ state.events.exit?.("JSXOptionalClosingFragment", state, result, eventData);
13388
+ return result;
13389
+ }
13390
+ }
13391
+ var JSXClosingFragment$0 = $EXPECT($L157, fail, 'JSXClosingFragment "</>"');
13392
+ function JSXClosingFragment(state) {
13393
+ let eventData;
13394
+ if (state.events) {
13395
+ const result = state.events.enter?.("JSXClosingFragment", state);
13396
+ if (result) {
13397
+ if (result.cache)
13398
+ return result.cache;
13399
+ eventData = result.data;
13400
+ }
13401
+ }
13402
+ if (state.tokenize) {
13403
+ const result = $TOKEN("JSXClosingFragment", state, JSXClosingFragment$0(state));
13404
+ if (state.events)
13405
+ state.events.exit?.("JSXClosingFragment", state, result, eventData);
13406
+ return result;
13407
+ } else {
13408
+ const result = JSXClosingFragment$0(state);
13409
+ if (state.events)
13410
+ state.events.exit?.("JSXClosingFragment", state, result, eventData);
13411
+ return result;
13412
+ }
13413
+ }
13194
13414
  var JSXElementName$0 = $S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName))));
13195
13415
  function JSXElementName(state) {
13196
13416
  let eventData;
@@ -13907,7 +14127,7 @@ ${input.slice(result.pos)}
13907
14127
  return result;
13908
14128
  }
13909
14129
  }
13910
- var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(Nested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
14130
+ var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(JSXNested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13911
14131
  if ($2.length) {
13912
14132
  return {
13913
14133
  children: $2,
@@ -13916,7 +14136,7 @@ ${input.slice(result.pos)}
13916
14136
  }
13917
14137
  return $skip;
13918
14138
  });
13919
- var JSXNestedChildren$1 = $TV($Y($C(EOS, $EXPECT($L17, fail, 'JSXNestedChildren "}"'))), function($skip, $loc, $0, $1) {
14139
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L17, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
13920
14140
  return { children: [], jsxChildren: [] };
13921
14141
  });
13922
14142
  function JSXNestedChildren(state) {
@@ -13941,6 +14161,60 @@ ${input.slice(result.pos)}
13941
14161
  return result;
13942
14162
  }
13943
14163
  }
14164
+ var JSXEOS$0 = $P($S($E(NonNewlineWhitespace), EOL));
14165
+ function JSXEOS(state) {
14166
+ let eventData;
14167
+ if (state.events) {
14168
+ const result = state.events.enter?.("JSXEOS", state);
14169
+ if (result) {
14170
+ if (result.cache)
14171
+ return result.cache;
14172
+ eventData = result.data;
14173
+ }
14174
+ }
14175
+ if (state.tokenize) {
14176
+ const result = $TOKEN("JSXEOS", state, JSXEOS$0(state));
14177
+ if (state.events)
14178
+ state.events.exit?.("JSXEOS", state, result, eventData);
14179
+ return result;
14180
+ } else {
14181
+ const result = JSXEOS$0(state);
14182
+ if (state.events)
14183
+ state.events.exit?.("JSXEOS", state, result, eventData);
14184
+ return result;
14185
+ }
14186
+ }
14187
+ var JSXNested$0 = $TS($S(JSXEOS, Indent), function($skip, $loc, $0, $1, $2) {
14188
+ var eos = $1;
14189
+ var indent = $2;
14190
+ const { level } = indent;
14191
+ const currentIndent = module2.currentIndent;
14192
+ if (level !== currentIndent.level)
14193
+ return $skip;
14194
+ return $0;
14195
+ });
14196
+ function JSXNested(state) {
14197
+ let eventData;
14198
+ if (state.events) {
14199
+ const result = state.events.enter?.("JSXNested", state);
14200
+ if (result) {
14201
+ if (result.cache)
14202
+ return result.cache;
14203
+ eventData = result.data;
14204
+ }
14205
+ }
14206
+ if (state.tokenize) {
14207
+ const result = $TOKEN("JSXNested", state, JSXNested$0(state));
14208
+ if (state.events)
14209
+ state.events.exit?.("JSXNested", state, result, eventData);
14210
+ return result;
14211
+ } else {
14212
+ const result = JSXNested$0(state);
14213
+ if (state.events)
14214
+ state.events.exit?.("JSXNested", state, result, eventData);
14215
+ return result;
14216
+ }
14217
+ }
13944
14218
  var JSXChild$0 = JSXElement;
13945
14219
  var JSXChild$1 = JSXFragment;
13946
14220
  var JSXChild$2 = JSXComment;
@@ -14120,7 +14394,7 @@ ${input.slice(result.pos)}
14120
14394
  return result;
14121
14395
  }
14122
14396
  }
14123
- var NestedJSXChildExpression$0 = $S(Nested, JSXChildExpression);
14397
+ var NestedJSXChildExpression$0 = $S(JSXNested, JSXChildExpression);
14124
14398
  function NestedJSXChildExpression(state) {
14125
14399
  let eventData;
14126
14400
  if (state.events) {
@@ -15278,6 +15552,31 @@ ${input.slice(result.pos)}
15278
15552
  return result;
15279
15553
  }
15280
15554
  }
15555
+ var ThisType$0 = $T($S($C(This, AtThis), Colon, Type), function(value) {
15556
+ return { "type": "ThisType", "ts": true, "children": value };
15557
+ });
15558
+ function ThisType(state) {
15559
+ let eventData;
15560
+ if (state.events) {
15561
+ const result = state.events.enter?.("ThisType", state);
15562
+ if (result) {
15563
+ if (result.cache)
15564
+ return result.cache;
15565
+ eventData = result.data;
15566
+ }
15567
+ }
15568
+ if (state.tokenize) {
15569
+ const result = $TOKEN("ThisType", state, ThisType$0(state));
15570
+ if (state.events)
15571
+ state.events.exit?.("ThisType", state, result, eventData);
15572
+ return result;
15573
+ } else {
15574
+ const result = ThisType$0(state);
15575
+ if (state.events)
15576
+ state.events.exit?.("ThisType", state, result, eventData);
15577
+ return result;
15578
+ }
15579
+ }
15281
15580
  var Shebang$0 = $S($R$0($EXPECT($R52, fail, "Shebang /#![^\\r\\n]*/")), EOL);
15282
15581
  function Shebang(state) {
15283
15582
  let eventData;
@@ -16108,6 +16407,33 @@ ${input.slice(result.pos)}
16108
16407
  return result;
16109
16408
  }
16110
16409
  }
16410
+ var CoffeeJSXEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeJSXEnabled ""'), function($skip, $loc, $0, $1) {
16411
+ if (module2.config.coffeeJSX)
16412
+ return;
16413
+ return $skip;
16414
+ });
16415
+ function CoffeeJSXEnabled(state) {
16416
+ let eventData;
16417
+ if (state.events) {
16418
+ const result = state.events.enter?.("CoffeeJSXEnabled", state);
16419
+ if (result) {
16420
+ if (result.cache)
16421
+ return result.cache;
16422
+ eventData = result.data;
16423
+ }
16424
+ }
16425
+ if (state.tokenize) {
16426
+ const result = $TOKEN("CoffeeJSXEnabled", state, CoffeeJSXEnabled$0(state));
16427
+ if (state.events)
16428
+ state.events.exit?.("CoffeeJSXEnabled", state, result, eventData);
16429
+ return result;
16430
+ } else {
16431
+ const result = CoffeeJSXEnabled$0(state);
16432
+ if (state.events)
16433
+ state.events.exit?.("CoffeeJSXEnabled", state, result, eventData);
16434
+ return result;
16435
+ }
16436
+ }
16111
16437
  var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
16112
16438
  if (module2.config.coffeeLineContinuation)
16113
16439
  return;
@@ -16222,6 +16548,7 @@ ${input.slice(result.pos)}
16222
16548
  token: ""
16223
16549
  }];
16224
16550
  module2.suppressTrailingMemberProperty = [false];
16551
+ module2.JSXTagStack = [];
16225
16552
  if (!module2._init) {
16226
16553
  module2._init = true;
16227
16554
  Object.defineProperties(module2, {
@@ -16236,6 +16563,12 @@ ${input.slice(result.pos)}
16236
16563
  const { suppressTrailingMemberProperty: s } = module2;
16237
16564
  return s[s.length - 1];
16238
16565
  }
16566
+ },
16567
+ currentJSXTag: {
16568
+ get() {
16569
+ const { JSXTagStack: s } = module2;
16570
+ return s[s.length - 1];
16571
+ }
16239
16572
  }
16240
16573
  });
16241
16574
  }
@@ -16251,6 +16584,7 @@ ${input.slice(result.pos)}
16251
16584
  coffeeForLoops: false,
16252
16585
  coffeeInterpolation: false,
16253
16586
  coffeeIsnt: false,
16587
+ coffeeJSX: false,
16254
16588
  coffeeLineContinuation: false,
16255
16589
  coffeeNot: false,
16256
16590
  coffeeOf: false,
@@ -16355,11 +16689,8 @@ ${input.slice(result.pos)}
16355
16689
  if (module2.config.server && !module2.config.client) {
16356
16690
  return ["string"];
16357
16691
  }
16358
- let open = node.children;
16359
- while (Array.isArray(open[0]))
16360
- open = open[0];
16361
- open = open[1];
16362
- const clientType = typeof open === "string" && open[0] === open[0].toLowerCase() ? [module2.getRef("IntrinsicElements"), '<"', open, '">'] : ["ReturnType<typeof ", open, ">"];
16692
+ let { tag } = node;
16693
+ const clientType = tag[0] === tag[0].toLowerCase() ? [module2.getRef("IntrinsicElements"), '<"', tag, '">'] : ["ReturnType<typeof ", tag, ">"];
16363
16694
  if (module2.config.server) {
16364
16695
  return ["string", " | ", clientType];
16365
16696
  } else {
@@ -16405,36 +16736,24 @@ ${input.slice(result.pos)}
16405
16736
  };
16406
16737
  Object.defineProperty(module2.config, "coffeeCompat", {
16407
16738
  set(b) {
16408
- if (b) {
16409
- this.autoVar = true;
16410
- this.coffeeBinaryExistential = true;
16411
- this.coffeeBooleans = true;
16412
- this.coffeeClasses = true;
16413
- this.coffeeComment = true;
16414
- this.coffeeDo = true;
16415
- this.coffeeEq = true;
16416
- this.coffeeForLoops = true;
16417
- this.coffeeInterpolation = true;
16418
- this.coffeeIsnt = true;
16419
- this.coffeeLineContinuation = true;
16420
- this.coffeeNot = true;
16421
- this.coffeeOf = true;
16422
- this.coffeePrototype = true;
16423
- } else {
16424
- this.autoVar = false;
16425
- this.coffeeBinaryExistential = false;
16426
- this.coffeeBooleans = false;
16427
- this.coffeeClasses = false;
16428
- this.coffeeComment = false;
16429
- this.coffeeDo = false;
16430
- this.coffeeEq = false;
16431
- this.coffeeForLoops = false;
16432
- this.coffeeInterpolation = false;
16433
- this.coffeeIsnt = false;
16434
- this.coffeeLineContinuation = false;
16435
- this.coffeeNot = false;
16436
- this.coffeeOf = false;
16437
- this.coffeePrototype = false;
16739
+ for (const option of [
16740
+ "autoVar",
16741
+ "coffeeBinaryExistential",
16742
+ "coffeeBooleans",
16743
+ "coffeeClasses",
16744
+ "coffeeComment",
16745
+ "coffeeDo",
16746
+ "coffeeEq",
16747
+ "coffeeForLoops",
16748
+ "coffeeInterpolation",
16749
+ "coffeeIsnt",
16750
+ "coffeeJSX",
16751
+ "coffeeLineContinuation",
16752
+ "coffeeNot",
16753
+ "coffeeOf",
16754
+ "coffeePrototype"
16755
+ ]) {
16756
+ module2.config[option] = b;
16438
16757
  }
16439
16758
  }
16440
16759
  });
@@ -18099,7 +18418,7 @@ var uncacheable;
18099
18418
  ({ parse } = import_parser.default);
18100
18419
  ({ SourceMap: SourceMap2, base64Encode: base64Encode2 } = util_exports);
18101
18420
  defaultOptions = {};
18102
- uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "CoffeeCommentEnabled", "ConditionalExpression", "Debugger", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationSuppressed", "ExtendedExpression", "FatArrowBody", "ImplicitArguments", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNestedChildren", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedObject", "NestedPropertyDefinitions", "NonSuppressedTrailingMemberExpressions", "ObjectLiteral", "PopIndent", "PrimaryExpression", "PushIndent", "Samedent", "ShortCircuitExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "SuppressIndentedApplication", "SuppressTrailingMemberProperty", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
18421
+ uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "CoffeeCommentEnabled", "CommaDelimiter", "ConditionalExpression", "Debugger", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationSuppressed", "ExtendedExpression", "FatArrowBody", "ImplicitArguments", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNested", "JSXNestedChildren", "JSXOptionalClosingElement", "JSXOptionalClosingFragment", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedObject", "NestedPropertyDefinitions", "NonSuppressedTrailingMemberExpressions", "ObjectLiteral", "PopIndent", "PrimaryExpression", "PushIndent", "PushJSXOpeningElement", "PushJSXOpeningFragment", "Samedent", "ShortCircuitExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "StatementListItem", "SuppressIndentedApplication", "SuppressTrailingMemberProperty", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
18103
18422
  var compile = function(src, options = defaultOptions) {
18104
18423
  var ast, code, events, filename, sm, srcMapJSON;
18105
18424
  filename = options.filename || "unknown";