@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.mjs CHANGED
@@ -438,6 +438,7 @@ ${input.slice(result.pos)}
438
438
  ArgumentsWithTrailingMemberExpressions,
439
439
  TrailingMemberExpressions,
440
440
  NonSuppressedTrailingMemberExpressions,
441
+ CommaDelimiter,
441
442
  ArgumentList,
442
443
  NestedArgumentList,
443
444
  NestedArgument,
@@ -489,6 +490,7 @@ ${input.slice(result.pos)}
489
490
  AccessModifier,
490
491
  FieldDefinition,
491
492
  ThisLiteral,
493
+ AtThis,
492
494
  LeftHandSideExpression,
493
495
  CallExpression,
494
496
  CallExpressionRest,
@@ -819,9 +821,14 @@ ${input.slice(result.pos)}
819
821
  JSXTag,
820
822
  JSXElement,
821
823
  JSXSelfClosingElement,
824
+ PushJSXOpeningElement,
822
825
  JSXOpeningElement,
826
+ JSXOptionalClosingElement,
823
827
  JSXClosingElement,
824
828
  JSXFragment,
829
+ PushJSXOpeningFragment,
830
+ JSXOptionalClosingFragment,
831
+ JSXClosingFragment,
825
832
  JSXElementName,
826
833
  JSXIdentifierName,
827
834
  JSXAttributes,
@@ -844,6 +851,8 @@ ${input.slice(result.pos)}
844
851
  JSXMixedChildren,
845
852
  JSXChildren,
846
853
  JSXNestedChildren,
854
+ JSXEOS,
855
+ JSXNested,
847
856
  JSXChild,
848
857
  JSXComment,
849
858
  JSXCommentContent,
@@ -896,6 +905,7 @@ ${input.slice(result.pos)}
896
905
  TypeConstraint,
897
906
  TypeInitializer,
898
907
  TypeParameterDelimiter,
908
+ ThisType,
899
909
  Shebang,
900
910
  CivetPrologue,
901
911
  CivetPrologueContent,
@@ -928,6 +938,7 @@ ${input.slice(result.pos)}
928
938
  CoffeeForLoopsEnabled,
929
939
  CoffeeInterpolationEnabled,
930
940
  CoffeeIsntEnabled,
941
+ CoffeeJSXEnabled,
931
942
  CoffeeLineContinuationEnabled,
932
943
  CoffeeNotEnabled,
933
944
  CoffeeOfEnabled,
@@ -1330,7 +1341,7 @@ ${input.slice(result.pos)}
1330
1341
  return result;
1331
1342
  }
1332
1343
  }
1333
- var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1344
+ var Expression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1334
1345
  if ($2.length == 0)
1335
1346
  return $1;
1336
1347
  return $0;
@@ -1563,7 +1574,30 @@ ${input.slice(result.pos)}
1563
1574
  return result;
1564
1575
  }
1565
1576
  }
1566
- var ArgumentList$0 = $S(ArgumentPart, $P($S(__, Comma, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1577
+ var CommaDelimiter$0 = $S($E($C(Samedent, IndentedFurther)), $Q(_), Comma);
1578
+ function CommaDelimiter(state) {
1579
+ let eventData;
1580
+ if (state.events) {
1581
+ const result = state.events.enter?.("CommaDelimiter", state);
1582
+ if (result) {
1583
+ if (result.cache)
1584
+ return result.cache;
1585
+ eventData = result.data;
1586
+ }
1587
+ }
1588
+ if (state.tokenize) {
1589
+ const result = $TOKEN("CommaDelimiter", state, CommaDelimiter$0(state));
1590
+ if (state.events)
1591
+ state.events.exit?.("CommaDelimiter", state, result, eventData);
1592
+ return result;
1593
+ } else {
1594
+ const result = CommaDelimiter$0(state);
1595
+ if (state.events)
1596
+ state.events.exit?.("CommaDelimiter", state, result, eventData);
1597
+ return result;
1598
+ }
1599
+ }
1600
+ var ArgumentList$0 = $S(ArgumentPart, $P($S(CommaDelimiter, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1567
1601
  var ArgumentList$1 = $TS($S(NestedImplicitObjectLiteral), function($skip, $loc, $0, $1) {
1568
1602
  return module.insertTrimmingSpace($1, "");
1569
1603
  });
@@ -1642,7 +1676,7 @@ ${input.slice(result.pos)}
1642
1676
  return result;
1643
1677
  }
1644
1678
  }
1645
- var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(__, Comma, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1679
+ var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(CommaDelimiter, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1646
1680
  return [...$1, $2, ...$3];
1647
1681
  });
1648
1682
  function InlineArgumentExpressions(state) {
@@ -2963,15 +2997,12 @@ ${input.slice(result.pos)}
2963
2997
  }
2964
2998
  }
2965
2999
  var ThisLiteral$0 = This;
2966
- var ThisLiteral$1 = $TS($S(At, $TEXT($S($E($EXPECT($L8, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
2967
- var t = $1;
3000
+ var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E($EXPECT($L8, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
3001
+ var at = $1;
2968
3002
  var id = $2;
2969
- return [{ ...t, token: "this." }, id];
2970
- });
2971
- var ThisLiteral$2 = $TS($S(At), function($skip, $loc, $0, $1) {
2972
- $1.token = "this";
2973
- return $1;
3003
+ return [at, ".", id];
2974
3004
  });
3005
+ var ThisLiteral$2 = AtThis;
2975
3006
  function ThisLiteral(state) {
2976
3007
  let eventData;
2977
3008
  if (state.events) {
@@ -2994,6 +3025,32 @@ ${input.slice(result.pos)}
2994
3025
  return result;
2995
3026
  }
2996
3027
  }
3028
+ var AtThis$0 = $TV(At, function($skip, $loc, $0, $1) {
3029
+ var at = $0;
3030
+ return { ...at, token: "this" };
3031
+ });
3032
+ function AtThis(state) {
3033
+ let eventData;
3034
+ if (state.events) {
3035
+ const result = state.events.enter?.("AtThis", state);
3036
+ if (result) {
3037
+ if (result.cache)
3038
+ return result.cache;
3039
+ eventData = result.data;
3040
+ }
3041
+ }
3042
+ if (state.tokenize) {
3043
+ const result = $TOKEN("AtThis", state, AtThis$0(state));
3044
+ if (state.events)
3045
+ state.events.exit?.("AtThis", state, result, eventData);
3046
+ return result;
3047
+ } else {
3048
+ const result = AtThis$0(state);
3049
+ if (state.events)
3050
+ state.events.exit?.("AtThis", state, result, eventData);
3051
+ return result;
3052
+ }
3053
+ }
2997
3054
  var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L2, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
2998
3055
  if ($1.length)
2999
3056
  return $0;
@@ -3435,13 +3492,14 @@ ${input.slice(result.pos)}
3435
3492
  return result;
3436
3493
  }
3437
3494
  }
3438
- 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) {
3495
+ 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) {
3439
3496
  var tp = $1;
3440
3497
  var open = $2;
3441
- var pes = $3;
3442
- var rest = $4;
3443
- var after = $5;
3444
- var close = $6;
3498
+ var tt = $3;
3499
+ var pes = $4;
3500
+ var rest = $5;
3501
+ var after = $6;
3502
+ var close = $7;
3445
3503
  const names = pes.flatMap((p) => p.names);
3446
3504
  if (rest) {
3447
3505
  let restIdentifier;
@@ -3464,6 +3522,7 @@ ${input.slice(result.pos)}
3464
3522
  children: [
3465
3523
  tp,
3466
3524
  open,
3525
+ tt,
3467
3526
  ...pes,
3468
3527
  { ...rest, children: rest.children.slice(0, -1) },
3469
3528
  close
@@ -3475,7 +3534,7 @@ ${input.slice(result.pos)}
3475
3534
  }
3476
3535
  return {
3477
3536
  type: "Parameters",
3478
- children: [tp, open, ...pes, close],
3537
+ children: [tp, open, tt, ...pes, close],
3479
3538
  names: pes.flatMap((p) => p.names),
3480
3539
  tp
3481
3540
  };
@@ -13047,22 +13106,36 @@ ${input.slice(result.pos)}
13047
13106
  }
13048
13107
  }
13049
13108
  var JSXElement$0 = JSXSelfClosingElement;
13050
- var JSXElement$1 = $TS($S(JSXOpeningElement, $E(JSXChildren), $E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
13051
- if ($1[1] !== $4[2])
13109
+ var JSXElement$1 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningElement, $E(JSXMixedChildren), JSXOptionalClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
13110
+ var open = $2;
13111
+ var children = $3;
13112
+ var close = $4;
13113
+ module.JSXTagStack.pop();
13114
+ if (!children)
13052
13115
  return $skip;
13053
- return { type: "JSXElement", children: $0 };
13054
- });
13055
- var JSXElement$2 = $TS($S(JSXOpeningElement, JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
13056
- var open = $1;
13057
- var children = $2;
13058
- return {
13059
- type: "JSXElement",
13060
- children: children.jsxChildren.length ? [...$0, ["</", open[1], ">"]] : [open.slice(0, -1), " />"]
13061
- };
13116
+ $0 = $0.slice(1);
13117
+ let parts;
13118
+ if (close) {
13119
+ parts = $0;
13120
+ } else if (children.jsxChildren.length) {
13121
+ parts = [
13122
+ ...$0,
13123
+ "\n",
13124
+ module.currentIndent.token,
13125
+ ["</", open[1], ">"]
13126
+ ];
13127
+ } else {
13128
+ parts = [open.slice(0, -1), " />"];
13129
+ }
13130
+ return { type: "JSXElement", children: parts, tag: open[1] };
13062
13131
  });
13063
- var JSXElement$3 = $TV(JSXOpeningElement, function($skip, $loc, $0, $1) {
13064
- var elt = $0;
13065
- throw new Error(`could not parse JSX element "${elt[0]}${elt[1]}${elt[elt.length - 1]}" at pos ${$loc.pos}`);
13132
+ var JSXElement$2 = $TS($S(CoffeeJSXEnabled, JSXOpeningElement, $E(JSXChildren), $E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13133
+ var open = $2;
13134
+ var close = $5;
13135
+ $0 = $0.slice(1);
13136
+ if (open[1] !== close[2])
13137
+ return $skip;
13138
+ return { type: "JSXElement", children: $0, tag: open[1] };
13066
13139
  });
13067
13140
  function JSXElement(state) {
13068
13141
  let eventData;
@@ -13075,19 +13148,19 @@ ${input.slice(result.pos)}
13075
13148
  }
13076
13149
  }
13077
13150
  if (state.tokenize) {
13078
- const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state));
13151
+ const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state));
13079
13152
  if (state.events)
13080
13153
  state.events.exit?.("JSXElement", state, result, eventData);
13081
13154
  return result;
13082
13155
  } else {
13083
- const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state);
13156
+ const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state);
13084
13157
  if (state.events)
13085
13158
  state.events.exit?.("JSXElement", state, result, eventData);
13086
13159
  return result;
13087
13160
  }
13088
13161
  }
13089
13162
  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) {
13090
- return { type: "JSXElement", children: $0 };
13163
+ return { type: "JSXElement", children: $0, tag: $2 };
13091
13164
  });
13092
13165
  function JSXSelfClosingElement(state) {
13093
13166
  let eventData;
@@ -13111,6 +13184,32 @@ ${input.slice(result.pos)}
13111
13184
  return result;
13112
13185
  }
13113
13186
  }
13187
+ var PushJSXOpeningElement$0 = $TS($S(JSXOpeningElement), function($skip, $loc, $0, $1) {
13188
+ module.JSXTagStack.push($1[1]);
13189
+ return $1;
13190
+ });
13191
+ function PushJSXOpeningElement(state) {
13192
+ let eventData;
13193
+ if (state.events) {
13194
+ const result = state.events.enter?.("PushJSXOpeningElement", state);
13195
+ if (result) {
13196
+ if (result.cache)
13197
+ return result.cache;
13198
+ eventData = result.data;
13199
+ }
13200
+ }
13201
+ if (state.tokenize) {
13202
+ const result = $TOKEN("PushJSXOpeningElement", state, PushJSXOpeningElement$0(state));
13203
+ if (state.events)
13204
+ state.events.exit?.("PushJSXOpeningElement", state, result, eventData);
13205
+ return result;
13206
+ } else {
13207
+ const result = PushJSXOpeningElement$0(state);
13208
+ if (state.events)
13209
+ state.events.exit?.("PushJSXOpeningElement", state, result, eventData);
13210
+ return result;
13211
+ }
13212
+ }
13114
13213
  var JSXOpeningElement$0 = $S($EXPECT($L122, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L27, fail, 'JSXOpeningElement ">"'));
13115
13214
  function JSXOpeningElement(state) {
13116
13215
  let eventData;
@@ -13134,6 +13233,35 @@ ${input.slice(result.pos)}
13134
13233
  return result;
13135
13234
  }
13136
13235
  }
13236
+ var JSXOptionalClosingElement$0 = $TS($S($E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2) {
13237
+ var close = $2;
13238
+ if (module.currentJSXTag !== close[2])
13239
+ return $skip;
13240
+ return $0;
13241
+ });
13242
+ var JSXOptionalClosingElement$1 = $EXPECT($L14, fail, 'JSXOptionalClosingElement ""');
13243
+ function JSXOptionalClosingElement(state) {
13244
+ let eventData;
13245
+ if (state.events) {
13246
+ const result = state.events.enter?.("JSXOptionalClosingElement", state);
13247
+ if (result) {
13248
+ if (result.cache)
13249
+ return result.cache;
13250
+ eventData = result.data;
13251
+ }
13252
+ }
13253
+ if (state.tokenize) {
13254
+ const result = $TOKEN("JSXOptionalClosingElement", state, JSXOptionalClosingElement$0(state) || JSXOptionalClosingElement$1(state));
13255
+ if (state.events)
13256
+ state.events.exit?.("JSXOptionalClosingElement", state, result, eventData);
13257
+ return result;
13258
+ } else {
13259
+ const result = JSXOptionalClosingElement$0(state) || JSXOptionalClosingElement$1(state);
13260
+ if (state.events)
13261
+ state.events.exit?.("JSXOptionalClosingElement", state, result, eventData);
13262
+ return result;
13263
+ }
13264
+ }
13137
13265
  var JSXClosingElement$0 = $S($EXPECT($L155, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L27, fail, 'JSXClosingElement ">"'));
13138
13266
  function JSXClosingElement(state) {
13139
13267
  let eventData;
@@ -13157,15 +13285,30 @@ ${input.slice(result.pos)}
13157
13285
  return result;
13158
13286
  }
13159
13287
  }
13160
- 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) {
13161
- if ($2) {
13162
- return { type: "JSXFragment", children: $0, jsxChildren: $2.jsxChildren };
13163
- } else {
13164
- return { type: "JSXFragment", children: $0, jsxChildren: [] };
13165
- }
13288
+ var JSXFragment$0 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningFragment, $E(JSXMixedChildren), JSXOptionalClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4) {
13289
+ var open = $2;
13290
+ var children = $3;
13291
+ var close = $4;
13292
+ module.JSXTagStack.pop();
13293
+ if (!children)
13294
+ return $skip;
13295
+ $0 = $0.slice(1);
13296
+ const parts = close ? $0 : [
13297
+ ...$0,
13298
+ "\n",
13299
+ module.currentIndent.token,
13300
+ "</>"
13301
+ ];
13302
+ return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
13166
13303
  });
13167
- var JSXFragment$1 = $TS($S($EXPECT($L156, fail, 'JSXFragment "<>"'), JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
13168
- return { type: "JSXFragment", children: [...$0, "</>"], jsxChildren: $2.jsxChildren };
13304
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L156, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13305
+ var children = $3;
13306
+ $0 = $0.slice(1);
13307
+ return {
13308
+ type: "JSXFragment",
13309
+ children: $0,
13310
+ jsxChildren: children ? children.jsxChildren : []
13311
+ };
13169
13312
  });
13170
13313
  function JSXFragment(state) {
13171
13314
  let eventData;
@@ -13189,6 +13332,83 @@ ${input.slice(result.pos)}
13189
13332
  return result;
13190
13333
  }
13191
13334
  }
13335
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L156, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13336
+ module.JSXTagStack.push("");
13337
+ return $1;
13338
+ });
13339
+ function PushJSXOpeningFragment(state) {
13340
+ let eventData;
13341
+ if (state.events) {
13342
+ const result = state.events.enter?.("PushJSXOpeningFragment", state);
13343
+ if (result) {
13344
+ if (result.cache)
13345
+ return result.cache;
13346
+ eventData = result.data;
13347
+ }
13348
+ }
13349
+ if (state.tokenize) {
13350
+ const result = $TOKEN("PushJSXOpeningFragment", state, PushJSXOpeningFragment$0(state));
13351
+ if (state.events)
13352
+ state.events.exit?.("PushJSXOpeningFragment", state, result, eventData);
13353
+ return result;
13354
+ } else {
13355
+ const result = PushJSXOpeningFragment$0(state);
13356
+ if (state.events)
13357
+ state.events.exit?.("PushJSXOpeningFragment", state, result, eventData);
13358
+ return result;
13359
+ }
13360
+ }
13361
+ var JSXOptionalClosingFragment$0 = $TS($S($E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2) {
13362
+ if (module.currentJSXTag !== "")
13363
+ return $skip;
13364
+ return $0;
13365
+ });
13366
+ var JSXOptionalClosingFragment$1 = $EXPECT($L14, fail, 'JSXOptionalClosingFragment ""');
13367
+ function JSXOptionalClosingFragment(state) {
13368
+ let eventData;
13369
+ if (state.events) {
13370
+ const result = state.events.enter?.("JSXOptionalClosingFragment", state);
13371
+ if (result) {
13372
+ if (result.cache)
13373
+ return result.cache;
13374
+ eventData = result.data;
13375
+ }
13376
+ }
13377
+ if (state.tokenize) {
13378
+ const result = $TOKEN("JSXOptionalClosingFragment", state, JSXOptionalClosingFragment$0(state) || JSXOptionalClosingFragment$1(state));
13379
+ if (state.events)
13380
+ state.events.exit?.("JSXOptionalClosingFragment", state, result, eventData);
13381
+ return result;
13382
+ } else {
13383
+ const result = JSXOptionalClosingFragment$0(state) || JSXOptionalClosingFragment$1(state);
13384
+ if (state.events)
13385
+ state.events.exit?.("JSXOptionalClosingFragment", state, result, eventData);
13386
+ return result;
13387
+ }
13388
+ }
13389
+ var JSXClosingFragment$0 = $EXPECT($L157, fail, 'JSXClosingFragment "</>"');
13390
+ function JSXClosingFragment(state) {
13391
+ let eventData;
13392
+ if (state.events) {
13393
+ const result = state.events.enter?.("JSXClosingFragment", state);
13394
+ if (result) {
13395
+ if (result.cache)
13396
+ return result.cache;
13397
+ eventData = result.data;
13398
+ }
13399
+ }
13400
+ if (state.tokenize) {
13401
+ const result = $TOKEN("JSXClosingFragment", state, JSXClosingFragment$0(state));
13402
+ if (state.events)
13403
+ state.events.exit?.("JSXClosingFragment", state, result, eventData);
13404
+ return result;
13405
+ } else {
13406
+ const result = JSXClosingFragment$0(state);
13407
+ if (state.events)
13408
+ state.events.exit?.("JSXClosingFragment", state, result, eventData);
13409
+ return result;
13410
+ }
13411
+ }
13192
13412
  var JSXElementName$0 = $S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName))));
13193
13413
  function JSXElementName(state) {
13194
13414
  let eventData;
@@ -13905,7 +14125,7 @@ ${input.slice(result.pos)}
13905
14125
  return result;
13906
14126
  }
13907
14127
  }
13908
- var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(Nested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
14128
+ var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(JSXNested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13909
14129
  if ($2.length) {
13910
14130
  return {
13911
14131
  children: $2,
@@ -13914,7 +14134,7 @@ ${input.slice(result.pos)}
13914
14134
  }
13915
14135
  return $skip;
13916
14136
  });
13917
- var JSXNestedChildren$1 = $TV($Y($C(EOS, $EXPECT($L17, fail, 'JSXNestedChildren "}"'))), function($skip, $loc, $0, $1) {
14137
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L17, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
13918
14138
  return { children: [], jsxChildren: [] };
13919
14139
  });
13920
14140
  function JSXNestedChildren(state) {
@@ -13939,6 +14159,60 @@ ${input.slice(result.pos)}
13939
14159
  return result;
13940
14160
  }
13941
14161
  }
14162
+ var JSXEOS$0 = $P($S($E(NonNewlineWhitespace), EOL));
14163
+ function JSXEOS(state) {
14164
+ let eventData;
14165
+ if (state.events) {
14166
+ const result = state.events.enter?.("JSXEOS", state);
14167
+ if (result) {
14168
+ if (result.cache)
14169
+ return result.cache;
14170
+ eventData = result.data;
14171
+ }
14172
+ }
14173
+ if (state.tokenize) {
14174
+ const result = $TOKEN("JSXEOS", state, JSXEOS$0(state));
14175
+ if (state.events)
14176
+ state.events.exit?.("JSXEOS", state, result, eventData);
14177
+ return result;
14178
+ } else {
14179
+ const result = JSXEOS$0(state);
14180
+ if (state.events)
14181
+ state.events.exit?.("JSXEOS", state, result, eventData);
14182
+ return result;
14183
+ }
14184
+ }
14185
+ var JSXNested$0 = $TS($S(JSXEOS, Indent), function($skip, $loc, $0, $1, $2) {
14186
+ var eos = $1;
14187
+ var indent = $2;
14188
+ const { level } = indent;
14189
+ const currentIndent = module.currentIndent;
14190
+ if (level !== currentIndent.level)
14191
+ return $skip;
14192
+ return $0;
14193
+ });
14194
+ function JSXNested(state) {
14195
+ let eventData;
14196
+ if (state.events) {
14197
+ const result = state.events.enter?.("JSXNested", state);
14198
+ if (result) {
14199
+ if (result.cache)
14200
+ return result.cache;
14201
+ eventData = result.data;
14202
+ }
14203
+ }
14204
+ if (state.tokenize) {
14205
+ const result = $TOKEN("JSXNested", state, JSXNested$0(state));
14206
+ if (state.events)
14207
+ state.events.exit?.("JSXNested", state, result, eventData);
14208
+ return result;
14209
+ } else {
14210
+ const result = JSXNested$0(state);
14211
+ if (state.events)
14212
+ state.events.exit?.("JSXNested", state, result, eventData);
14213
+ return result;
14214
+ }
14215
+ }
13942
14216
  var JSXChild$0 = JSXElement;
13943
14217
  var JSXChild$1 = JSXFragment;
13944
14218
  var JSXChild$2 = JSXComment;
@@ -14118,7 +14392,7 @@ ${input.slice(result.pos)}
14118
14392
  return result;
14119
14393
  }
14120
14394
  }
14121
- var NestedJSXChildExpression$0 = $S(Nested, JSXChildExpression);
14395
+ var NestedJSXChildExpression$0 = $S(JSXNested, JSXChildExpression);
14122
14396
  function NestedJSXChildExpression(state) {
14123
14397
  let eventData;
14124
14398
  if (state.events) {
@@ -15276,6 +15550,31 @@ ${input.slice(result.pos)}
15276
15550
  return result;
15277
15551
  }
15278
15552
  }
15553
+ var ThisType$0 = $T($S($C(This, AtThis), Colon, Type), function(value) {
15554
+ return { "type": "ThisType", "ts": true, "children": value };
15555
+ });
15556
+ function ThisType(state) {
15557
+ let eventData;
15558
+ if (state.events) {
15559
+ const result = state.events.enter?.("ThisType", state);
15560
+ if (result) {
15561
+ if (result.cache)
15562
+ return result.cache;
15563
+ eventData = result.data;
15564
+ }
15565
+ }
15566
+ if (state.tokenize) {
15567
+ const result = $TOKEN("ThisType", state, ThisType$0(state));
15568
+ if (state.events)
15569
+ state.events.exit?.("ThisType", state, result, eventData);
15570
+ return result;
15571
+ } else {
15572
+ const result = ThisType$0(state);
15573
+ if (state.events)
15574
+ state.events.exit?.("ThisType", state, result, eventData);
15575
+ return result;
15576
+ }
15577
+ }
15279
15578
  var Shebang$0 = $S($R$0($EXPECT($R52, fail, "Shebang /#![^\\r\\n]*/")), EOL);
15280
15579
  function Shebang(state) {
15281
15580
  let eventData;
@@ -16106,6 +16405,33 @@ ${input.slice(result.pos)}
16106
16405
  return result;
16107
16406
  }
16108
16407
  }
16408
+ var CoffeeJSXEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeJSXEnabled ""'), function($skip, $loc, $0, $1) {
16409
+ if (module.config.coffeeJSX)
16410
+ return;
16411
+ return $skip;
16412
+ });
16413
+ function CoffeeJSXEnabled(state) {
16414
+ let eventData;
16415
+ if (state.events) {
16416
+ const result = state.events.enter?.("CoffeeJSXEnabled", state);
16417
+ if (result) {
16418
+ if (result.cache)
16419
+ return result.cache;
16420
+ eventData = result.data;
16421
+ }
16422
+ }
16423
+ if (state.tokenize) {
16424
+ const result = $TOKEN("CoffeeJSXEnabled", state, CoffeeJSXEnabled$0(state));
16425
+ if (state.events)
16426
+ state.events.exit?.("CoffeeJSXEnabled", state, result, eventData);
16427
+ return result;
16428
+ } else {
16429
+ const result = CoffeeJSXEnabled$0(state);
16430
+ if (state.events)
16431
+ state.events.exit?.("CoffeeJSXEnabled", state, result, eventData);
16432
+ return result;
16433
+ }
16434
+ }
16109
16435
  var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
16110
16436
  if (module.config.coffeeLineContinuation)
16111
16437
  return;
@@ -16220,6 +16546,7 @@ ${input.slice(result.pos)}
16220
16546
  token: ""
16221
16547
  }];
16222
16548
  module.suppressTrailingMemberProperty = [false];
16549
+ module.JSXTagStack = [];
16223
16550
  if (!module._init) {
16224
16551
  module._init = true;
16225
16552
  Object.defineProperties(module, {
@@ -16234,6 +16561,12 @@ ${input.slice(result.pos)}
16234
16561
  const { suppressTrailingMemberProperty: s } = module;
16235
16562
  return s[s.length - 1];
16236
16563
  }
16564
+ },
16565
+ currentJSXTag: {
16566
+ get() {
16567
+ const { JSXTagStack: s } = module;
16568
+ return s[s.length - 1];
16569
+ }
16237
16570
  }
16238
16571
  });
16239
16572
  }
@@ -16249,6 +16582,7 @@ ${input.slice(result.pos)}
16249
16582
  coffeeForLoops: false,
16250
16583
  coffeeInterpolation: false,
16251
16584
  coffeeIsnt: false,
16585
+ coffeeJSX: false,
16252
16586
  coffeeLineContinuation: false,
16253
16587
  coffeeNot: false,
16254
16588
  coffeeOf: false,
@@ -16353,11 +16687,8 @@ ${input.slice(result.pos)}
16353
16687
  if (module.config.server && !module.config.client) {
16354
16688
  return ["string"];
16355
16689
  }
16356
- let open = node.children;
16357
- while (Array.isArray(open[0]))
16358
- open = open[0];
16359
- open = open[1];
16360
- const clientType = typeof open === "string" && open[0] === open[0].toLowerCase() ? [module.getRef("IntrinsicElements"), '<"', open, '">'] : ["ReturnType<typeof ", open, ">"];
16690
+ let { tag } = node;
16691
+ const clientType = tag[0] === tag[0].toLowerCase() ? [module.getRef("IntrinsicElements"), '<"', tag, '">'] : ["ReturnType<typeof ", tag, ">"];
16361
16692
  if (module.config.server) {
16362
16693
  return ["string", " | ", clientType];
16363
16694
  } else {
@@ -16403,36 +16734,24 @@ ${input.slice(result.pos)}
16403
16734
  };
16404
16735
  Object.defineProperty(module.config, "coffeeCompat", {
16405
16736
  set(b) {
16406
- if (b) {
16407
- this.autoVar = true;
16408
- this.coffeeBinaryExistential = true;
16409
- this.coffeeBooleans = true;
16410
- this.coffeeClasses = true;
16411
- this.coffeeComment = true;
16412
- this.coffeeDo = true;
16413
- this.coffeeEq = true;
16414
- this.coffeeForLoops = true;
16415
- this.coffeeInterpolation = true;
16416
- this.coffeeIsnt = true;
16417
- this.coffeeLineContinuation = true;
16418
- this.coffeeNot = true;
16419
- this.coffeeOf = true;
16420
- this.coffeePrototype = true;
16421
- } else {
16422
- this.autoVar = false;
16423
- this.coffeeBinaryExistential = false;
16424
- this.coffeeBooleans = false;
16425
- this.coffeeClasses = false;
16426
- this.coffeeComment = false;
16427
- this.coffeeDo = false;
16428
- this.coffeeEq = false;
16429
- this.coffeeForLoops = false;
16430
- this.coffeeInterpolation = false;
16431
- this.coffeeIsnt = false;
16432
- this.coffeeLineContinuation = false;
16433
- this.coffeeNot = false;
16434
- this.coffeeOf = false;
16435
- this.coffeePrototype = false;
16737
+ for (const option of [
16738
+ "autoVar",
16739
+ "coffeeBinaryExistential",
16740
+ "coffeeBooleans",
16741
+ "coffeeClasses",
16742
+ "coffeeComment",
16743
+ "coffeeDo",
16744
+ "coffeeEq",
16745
+ "coffeeForLoops",
16746
+ "coffeeInterpolation",
16747
+ "coffeeIsnt",
16748
+ "coffeeJSX",
16749
+ "coffeeLineContinuation",
16750
+ "coffeeNot",
16751
+ "coffeeOf",
16752
+ "coffeePrototype"
16753
+ ]) {
16754
+ module.config[option] = b;
16436
16755
  }
16437
16756
  }
16438
16757
  });
@@ -18087,7 +18406,7 @@ var uncacheable;
18087
18406
  ({ parse } = import_parser.default);
18088
18407
  ({ SourceMap: SourceMap2, base64Encode: base64Encode2 } = util_exports);
18089
18408
  defaultOptions = {};
18090
- 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"]);
18409
+ 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"]);
18091
18410
  var compile = function(src, options = defaultOptions) {
18092
18411
  var ast, code, events, filename, sm, srcMapJSON;
18093
18412
  filename = options.filename || "unknown";