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