@danielx/civet 0.5.35 → 0.5.37

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
@@ -437,7 +437,7 @@ ${input.slice(result.pos)}
437
437
  ExplicitArguments,
438
438
  ApplicationStart,
439
439
  IndentedApplicationAllowed,
440
- ArgumentsWithTrailingCallExpressions,
440
+ ArgumentsWithTrailingMemberExpressions,
441
441
  ArgumentList,
442
442
  NestedArgumentList,
443
443
  NestedArgument,
@@ -851,6 +851,8 @@ ${input.slice(result.pos)}
851
851
  TypeDeclaration,
852
852
  TypeDeclarationModifier,
853
853
  TypeDeclarationRest,
854
+ InterfaceExtendsClause,
855
+ InterfaceExtendsTarget,
854
856
  TypeKeyword,
855
857
  Interface,
856
858
  Namespace,
@@ -883,10 +885,6 @@ ${input.slice(result.pos)}
883
885
  TypeBinaryOp,
884
886
  FunctionType,
885
887
  TypeArguments,
886
- InlineTypeArguments,
887
- InlineTypeArgument,
888
- InlineTypeArgumentDelimiter,
889
- CompactTypeArguments,
890
888
  TypeArgument,
891
889
  TypeArgumentDelimiter,
892
890
  TypeParameters,
@@ -941,13 +939,13 @@ ${input.slice(result.pos)}
941
939
  Nested
942
940
  });
943
941
  var $L0 = $L("");
944
- var $L1 = $L("++");
945
- var $L2 = $L("--");
946
- var $L3 = $L("=>");
947
- var $L4 = $L(" ");
948
- var $L5 = $L("implements");
949
- var $L6 = $L("#");
950
- var $L7 = $L(".");
942
+ var $L1 = $L(".");
943
+ var $L2 = $L("++");
944
+ var $L3 = $L("--");
945
+ var $L4 = $L("=>");
946
+ var $L5 = $L(" ");
947
+ var $L6 = $L("implements");
948
+ var $L7 = $L("#");
951
949
  var $L8 = $L("super");
952
950
  var $L9 = $L("import");
953
951
  var $L10 = $L("!");
@@ -1107,7 +1105,7 @@ ${input.slice(result.pos)}
1107
1105
  var $L164 = $L("infer");
1108
1106
  var $L165 = $L("[]");
1109
1107
  var $L166 = $L("civet");
1110
- var $R0 = $R(new RegExp("(for|of|then|when)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
1108
+ var $R0 = $R(new RegExp("(as|for|of|satisfies|then|when)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
1111
1109
  var $R1 = $R(new RegExp("[&]", "suy"));
1112
1110
  var $R2 = $R(new RegExp("[!~+-]+", "suy"));
1113
1111
  var $R3 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
@@ -1144,7 +1142,7 @@ ${input.slice(result.pos)}
1144
1142
  var $R34 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
1145
1143
  var $R35 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
1146
1144
  var $R36 = $R(new RegExp("(?:not)(?!\\p{ID_Continue})", "suy"));
1147
- var $R37 = $R(new RegExp("(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|satisfies|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1145
+ var $R37 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1148
1146
  var $R38 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1149
1147
  var $R39 = $R(new RegExp(".", "suy"));
1150
1148
  var $R40 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
@@ -1354,7 +1352,7 @@ ${input.slice(result.pos)}
1354
1352
  }
1355
1353
  }
1356
1354
  var Arguments$0 = ExplicitArguments;
1357
- var Arguments$1 = $TS($S($E($S(InlineTypeArguments, $N($S(__, ImplementsToken)))), ApplicationStart, InsertOpenParen, $Q(_), ArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1355
+ var Arguments$1 = $TS($S($E($S(TypeArguments, $N($S(__, ImplementsToken)))), ApplicationStart, InsertOpenParen, $Q(_), ArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1358
1356
  var ta = $1;
1359
1357
  var open = $3;
1360
1358
  var ws = $4;
@@ -1458,11 +1456,11 @@ ${input.slice(result.pos)}
1458
1456
  return result;
1459
1457
  }
1460
1458
  }
1461
- var ArgumentsWithTrailingCallExpressions$0 = $S(Arguments, $Q($S(Samedent, $N(Backtick), CallExpressionRest)));
1462
- function ArgumentsWithTrailingCallExpressions(state) {
1459
+ var ArgumentsWithTrailingMemberExpressions$0 = $S(Arguments, $Q($S(Samedent, $Y($EXPECT($L1, fail, 'ArgumentsWithTrailingMemberExpressions "."')), MemberExpressionRest)));
1460
+ function ArgumentsWithTrailingMemberExpressions(state) {
1463
1461
  let eventData;
1464
1462
  if (state.events) {
1465
- const result = state.events.enter?.("ArgumentsWithTrailingCallExpressions", state);
1463
+ const result = state.events.enter?.("ArgumentsWithTrailingMemberExpressions", state);
1466
1464
  if (result) {
1467
1465
  if (result.cache)
1468
1466
  return result.cache;
@@ -1470,14 +1468,14 @@ ${input.slice(result.pos)}
1470
1468
  }
1471
1469
  }
1472
1470
  if (state.tokenize) {
1473
- const result = $TOKEN("ArgumentsWithTrailingCallExpressions", state, ArgumentsWithTrailingCallExpressions$0(state));
1471
+ const result = $TOKEN("ArgumentsWithTrailingMemberExpressions", state, ArgumentsWithTrailingMemberExpressions$0(state));
1474
1472
  if (state.events)
1475
- state.events.exit?.("ArgumentsWithTrailingCallExpressions", state, result, eventData);
1473
+ state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1476
1474
  return result;
1477
1475
  } else {
1478
- const result = ArgumentsWithTrailingCallExpressions$0(state);
1476
+ const result = ArgumentsWithTrailingMemberExpressions$0(state);
1479
1477
  if (state.events)
1480
- state.events.exit?.("ArgumentsWithTrailingCallExpressions", state, result, eventData);
1478
+ state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1481
1479
  return result;
1482
1480
  }
1483
1481
  }
@@ -1801,7 +1799,7 @@ ${input.slice(result.pos)}
1801
1799
  return result;
1802
1800
  }
1803
1801
  }
1804
- var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L1, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L2, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
1802
+ var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L2, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L3, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
1805
1803
  return { $loc, token: $1 };
1806
1804
  });
1807
1805
  function UpdateExpressionSymbol(state) {
@@ -2093,7 +2091,7 @@ ${input.slice(result.pos)}
2093
2091
  return result;
2094
2092
  }
2095
2093
  }
2096
- var FatArrow$0 = $TS($S(__, $EXPECT($L3, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
2094
+ var FatArrow$0 = $TS($S(__, $EXPECT($L4, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
2097
2095
  var ws = $1;
2098
2096
  if (!ws.length)
2099
2097
  return " =>";
@@ -2176,7 +2174,7 @@ ${input.slice(result.pos)}
2176
2174
  }
2177
2175
  }
2178
2176
  var TernaryRest$0 = NestedTernaryRest;
2179
- var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L4, fail, 'TernaryRest " "')), $Q(TrailingComment), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
2177
+ var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L5, fail, 'TernaryRest " "')), $Q(TrailingComment), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
2180
2178
  return $0.slice(2);
2181
2179
  });
2182
2180
  function TernaryRest(state) {
@@ -2536,7 +2534,7 @@ ${input.slice(result.pos)}
2536
2534
  return result;
2537
2535
  }
2538
2536
  }
2539
- var ExtendsToken$0 = $TS($S(Loc, __, OpenAngleBracket, $E($EXPECT($L4, fail, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2537
+ var ExtendsToken$0 = $TS($S(Loc, __, OpenAngleBracket, $E($EXPECT($L5, fail, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2540
2538
  var l = $1;
2541
2539
  var ws = $2;
2542
2540
  var lt = $3;
@@ -2632,7 +2630,7 @@ ${input.slice(result.pos)}
2632
2630
  return result;
2633
2631
  }
2634
2632
  }
2635
- var ImplementsToken$0 = $TS($S($EXPECT($L5, fail, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
2633
+ var ImplementsToken$0 = $TS($S($EXPECT($L6, fail, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
2636
2634
  return { $loc, token: $1 };
2637
2635
  });
2638
2636
  function ImplementsToken(state) {
@@ -2881,7 +2879,7 @@ ${input.slice(result.pos)}
2881
2879
  }
2882
2880
  }
2883
2881
  var ThisLiteral$0 = This;
2884
- var ThisLiteral$1 = $TS($S(At, $TEXT($S($E($EXPECT($L6, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
2882
+ var ThisLiteral$1 = $TS($S(At, $TEXT($S($E($EXPECT($L7, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
2885
2883
  var t = $1;
2886
2884
  var id = $2;
2887
2885
  return [{ ...t, token: "this." }, id];
@@ -2912,7 +2910,7 @@ ${input.slice(result.pos)}
2912
2910
  return result;
2913
2911
  }
2914
2912
  }
2915
- var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L7, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
2913
+ var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L1, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
2916
2914
  if ($1.length)
2917
2915
  return $0;
2918
2916
  return $2;
@@ -2939,8 +2937,8 @@ ${input.slice(result.pos)}
2939
2937
  return result;
2940
2938
  }
2941
2939
  }
2942
- var CallExpression$0 = $S($EXPECT($L8, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions, $Q(CallExpressionRest));
2943
- var CallExpression$1 = $TS($S($EXPECT($L9, fail, 'CallExpression "import"'), ArgumentsWithTrailingCallExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
2940
+ var CallExpression$0 = $S($EXPECT($L8, fail, 'CallExpression "super"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest));
2941
+ var CallExpression$1 = $TS($S($EXPECT($L9, fail, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
2944
2942
  return {
2945
2943
  type: "CallExpression",
2946
2944
  children: $0
@@ -2979,7 +2977,7 @@ ${input.slice(result.pos)}
2979
2977
  }
2980
2978
  var CallExpressionRest$0 = MemberExpressionRest;
2981
2979
  var CallExpressionRest$1 = TemplateLiteral;
2982
- var CallExpressionRest$2 = $S($E($C(OptionalShorthand, NonNullAssertion)), ArgumentsWithTrailingCallExpressions);
2980
+ var CallExpressionRest$2 = $S($E($C(OptionalShorthand, NonNullAssertion)), ArgumentsWithTrailingMemberExpressions);
2983
2981
  function CallExpressionRest(state) {
2984
2982
  let eventData;
2985
2983
  if (state.events) {
@@ -3050,7 +3048,7 @@ ${input.slice(result.pos)}
3050
3048
  return result;
3051
3049
  }
3052
3050
  }
3053
- var AdditionalReservedWords$0 = $R$0($EXPECT($R0, fail, "AdditionalReservedWords /(for|of|then|when)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
3051
+ var AdditionalReservedWords$0 = $R$0($EXPECT($R0, fail, "AdditionalReservedWords /(as|for|of|satisfies|then|when)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
3054
3052
  var AdditionalReservedWords$1 = AtAt;
3055
3053
  function AdditionalReservedWords(state) {
3056
3054
  let eventData;
@@ -4577,16 +4575,8 @@ ${input.slice(result.pos)}
4577
4575
  return result;
4578
4576
  }
4579
4577
  }
4580
- var ThenClause$0 = $TS($S(Then, $Q(TrailingComment), Statement), function($skip, $loc, $0, $1, $2, $3) {
4581
- var ws = $2;
4582
- var s = $3;
4583
- const expressions = [[ws, s]];
4584
- return {
4585
- type: "BlockStatement",
4586
- expressions,
4587
- children: [expressions],
4588
- bare: true
4589
- };
4578
+ var ThenClause$0 = $T($S(Then, SingleLineStatements), function(value) {
4579
+ return value[1];
4590
4580
  });
4591
4581
  function ThenClause(state) {
4592
4582
  let eventData;
@@ -4691,8 +4681,8 @@ ${input.slice(result.pos)}
4691
4681
  var c = $5;
4692
4682
  return {
4693
4683
  type: "BlockStatement",
4694
- expressions: s,
4695
- children: [o, s, ws, c]
4684
+ expressions: s.expressions,
4685
+ children: [o, s.children, ws, c]
4696
4686
  };
4697
4687
  });
4698
4688
  function BracedBlock(state) {
@@ -4717,13 +4707,18 @@ ${input.slice(result.pos)}
4717
4707
  return result;
4718
4708
  }
4719
4709
  }
4720
- var SingleLineStatements$0 = $TS($S($S($Q(TrailingComment), Statement), $Q($S(SemicolonDelimiter, $E(Statement)))), function($skip, $loc, $0, $1, $2) {
4721
- var first = $1;
4722
- var rest = $2;
4723
- if (rest.length) {
4724
- return [first, ...rest];
4725
- }
4726
- return [first];
4710
+ var SingleLineStatements$0 = $TS($S($Q($S($Q(_), Statement, SemicolonDelimiter)), $E($S($Q(_), Statement, $E(SemicolonDelimiter)))), function($skip, $loc, $0, $1, $2) {
4711
+ var stmts = $1;
4712
+ var last = $2;
4713
+ const children = [...stmts];
4714
+ if (last)
4715
+ children.push(last);
4716
+ return {
4717
+ type: "BlockStatement",
4718
+ expressions: children,
4719
+ children,
4720
+ bare: true
4721
+ };
4727
4722
  });
4728
4723
  function SingleLineStatements(state) {
4729
4724
  let eventData;
@@ -6255,7 +6250,7 @@ ${input.slice(result.pos)}
6255
6250
  return result;
6256
6251
  }
6257
6252
  }
6258
- var PrivateIdentifier$0 = $TV($TEXT($S($EXPECT($L6, fail, 'PrivateIdentifier "#"'), IdentifierName)), function($skip, $loc, $0, $1) {
6253
+ var PrivateIdentifier$0 = $TV($TEXT($S($EXPECT($L7, fail, 'PrivateIdentifier "#"'), IdentifierName)), function($skip, $loc, $0, $1) {
6259
6254
  return {
6260
6255
  type: "Identifier",
6261
6256
  name: $0,
@@ -8016,48 +8011,34 @@ ${input.slice(result.pos)}
8016
8011
  }
8017
8012
  }
8018
8013
  var CaseClause$0 = $T($S(Case, CaseExpressionList, $C(NestedBlockStatements, NoExpressions)), function(value) {
8019
- var cases = value[1];
8020
- var expressions = value[2];
8021
- return { "type": "CaseClause", "cases": cases, "expressions": expressions, "children": value };
8014
+ return { "type": "CaseClause", "children": value };
8022
8015
  });
8023
- var CaseClause$1 = $TS($S(When, CaseExpressionList, InsertOpenBrace, $E($C(ThenClause, NestedBlockStatements)), InsertBreak, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
8016
+ var CaseClause$1 = $TS($S(When, CaseExpressionList, InsertOpenBrace, $C(ThenClause, NestedBlockStatements, NoExpressions), InsertBreak, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
8024
8017
  var cases = $2;
8025
- var expressions = $4;
8018
+ var block = $4;
8026
8019
  var b = $5;
8027
- let children = $0;
8028
- if (!expressions) {
8029
- expressions = [];
8030
- children = children.map((c, i) => i === 3 ? expressions : c);
8031
- }
8032
- if (expressions.expressions) {
8033
- expressions = expressions.expressions;
8034
- }
8035
8020
  return {
8036
8021
  type: "WhenClause",
8037
8022
  cases,
8038
- expressions,
8023
+ block,
8039
8024
  break: b,
8040
- children
8025
+ children: $0
8041
8026
  };
8042
8027
  });
8043
8028
  var CaseClause$2 = $TS($S(Default, ImpliedColon, $C(NestedBlockStatements, NoExpressions)), function($skip, $loc, $0, $1, $2, $3) {
8044
- var expressions = $3;
8045
- if (expressions.expressions)
8046
- expressions = expressions.expressions;
8029
+ var block = $3;
8047
8030
  return {
8048
8031
  type: "DefaultClause",
8049
- expressions,
8032
+ block,
8050
8033
  children: $0
8051
8034
  };
8052
8035
  });
8053
- var CaseClause$3 = $TS($S(Else, ImpliedColon, InsertOpenBrace, $C(NestedBlockStatements, $S($Q(TrailingComment), Statement)), InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
8054
- var expressions = $4;
8036
+ var CaseClause$3 = $TS($S(Else, ImpliedColon, InsertOpenBrace, $C(NestedBlockStatements, SingleLineStatements), InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
8037
+ var block = $4;
8055
8038
  $1.token = "default";
8056
- if (expressions.expressions)
8057
- expressions = expressions.expressions;
8058
8039
  return {
8059
8040
  type: "DefaultClause",
8060
- expressions,
8041
+ block,
8061
8042
  children: $0
8062
8043
  };
8063
8044
  });
@@ -8814,7 +8795,7 @@ ${input.slice(result.pos)}
8814
8795
  }
8815
8796
  }
8816
8797
  var ImportAsToken$0 = $S(__, As);
8817
- var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L4, fail, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
8798
+ var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L5, fail, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
8818
8799
  var l = $1;
8819
8800
  var ws = $2;
8820
8801
  var c = $3;
@@ -10386,7 +10367,7 @@ ${input.slice(result.pos)}
10386
10367
  var ReservedWord$3 = $S(CoffeeOfEnabled, $R$0($EXPECT($R35, fail, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")));
10387
10368
  var ReservedWord$4 = $S(CoffeeNotEnabled, $R$0($EXPECT($R36, fail, "ReservedWord /(?:not)(?!\\p{ID_Continue})/")));
10388
10369
  var ReservedWord$5 = $S($EXPECT($L71, fail, 'ReservedWord "not"'), NonIdContinue, __, $EXPECT($L72, fail, 'ReservedWord "in"'), NonIdContinue);
10389
- var ReservedWord$6 = $R$0($EXPECT($R37, fail, "ReservedWord /(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|satisfies|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
10370
+ var ReservedWord$6 = $R$0($EXPECT($R37, fail, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
10390
10371
  function ReservedWord(state) {
10391
10372
  let eventData;
10392
10373
  if (state.events) {
@@ -10904,7 +10885,7 @@ ${input.slice(result.pos)}
10904
10885
  return result;
10905
10886
  }
10906
10887
  }
10907
- var Abstract$0 = $TV($TEXT($S($EXPECT($L89, fail, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L4, fail, 'Abstract " "')))), function($skip, $loc, $0, $1) {
10888
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L89, fail, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L5, fail, 'Abstract " "')))), function($skip, $loc, $0, $1) {
10908
10889
  return { $loc, token: $1, ts: true };
10909
10890
  });
10910
10891
  function Abstract(state) {
@@ -11429,7 +11410,7 @@ ${input.slice(result.pos)}
11429
11410
  return result;
11430
11411
  }
11431
11412
  }
11432
- var Dot$0 = $TV($EXPECT($L7, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
11413
+ var Dot$0 = $TV($EXPECT($L1, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
11433
11414
  return { $loc, token: $1 };
11434
11415
  });
11435
11416
  function Dot(state) {
@@ -11754,7 +11735,7 @@ ${input.slice(result.pos)}
11754
11735
  return result;
11755
11736
  }
11756
11737
  }
11757
- var If$0 = $TV($TEXT($S($EXPECT($L115, fail, 'If "if"'), NonIdContinue, $E($EXPECT($L4, fail, 'If " "')))), function($skip, $loc, $0, $1) {
11738
+ var If$0 = $TV($TEXT($S($EXPECT($L115, fail, 'If "if"'), NonIdContinue, $E($EXPECT($L5, fail, 'If " "')))), function($skip, $loc, $0, $1) {
11758
11739
  return { $loc, token: $1 };
11759
11740
  });
11760
11741
  function If(state) {
@@ -11904,7 +11885,7 @@ ${input.slice(result.pos)}
11904
11885
  return result;
11905
11886
  }
11906
11887
  }
11907
- var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L71, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L4, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
11888
+ var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L71, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L5, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
11908
11889
  return { $loc, token: "!" };
11909
11890
  });
11910
11891
  function Not(state) {
@@ -12939,7 +12920,7 @@ ${input.slice(result.pos)}
12939
12920
  return result;
12940
12921
  }
12941
12922
  }
12942
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L120, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(CompactTypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L152, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12923
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L120, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L152, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12943
12924
  return { type: "JSXElement", children: $0 };
12944
12925
  });
12945
12926
  function JSXSelfClosingElement(state) {
@@ -12964,7 +12945,7 @@ ${input.slice(result.pos)}
12964
12945
  return result;
12965
12946
  }
12966
12947
  }
12967
- var JSXOpeningElement$0 = $S($EXPECT($L120, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(CompactTypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L25, fail, 'JSXOpeningElement ">"'));
12948
+ var JSXOpeningElement$0 = $S($EXPECT($L120, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L25, fail, 'JSXOpeningElement ">"'));
12968
12949
  function JSXOpeningElement(state) {
12969
12950
  let eventData;
12970
12951
  if (state.events) {
@@ -13244,7 +13225,7 @@ ${input.slice(result.pos)}
13244
13225
  }
13245
13226
  });
13246
13227
  var JSXAttribute$2 = $S(InsertInlineOpenBrace, DotDotDot, InlineJSXAttributeValue, InsertCloseBrace);
13247
- var JSXAttribute$3 = $TS($S($EXPECT($L6, fail, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13228
+ var JSXAttribute$3 = $TS($S($EXPECT($L7, fail, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13248
13229
  return [" ", "id=", $2];
13249
13230
  });
13250
13231
  var JSXAttribute$4 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -14044,7 +14025,7 @@ ${input.slice(result.pos)}
14044
14025
  }
14045
14026
  }
14046
14027
  var TypeDeclarationRest$0 = $S(TypeKeyword, $Q(TrailingComment), IdentifierName, $E(TypeParameters), __, Equals, __, Type);
14047
- var TypeDeclarationRest$1 = $S(Interface, $Q(TrailingComment), IdentifierName, $E(TypeParameters), InterfaceBlock);
14028
+ var TypeDeclarationRest$1 = $S(Interface, $Q(TrailingComment), IdentifierName, $E(TypeParameters), $E(InterfaceExtendsClause), InterfaceBlock);
14048
14029
  var TypeDeclarationRest$2 = $S(Namespace, $Q(TrailingComment), IdentifierName, NamespaceBlock);
14049
14030
  var TypeDeclarationRest$3 = FunctionSignature;
14050
14031
  function TypeDeclarationRest(state) {
@@ -14069,6 +14050,52 @@ ${input.slice(result.pos)}
14069
14050
  return result;
14070
14051
  }
14071
14052
  }
14053
+ var InterfaceExtendsClause$0 = $S(ExtendsToken, InterfaceExtendsTarget);
14054
+ function InterfaceExtendsClause(state) {
14055
+ let eventData;
14056
+ if (state.events) {
14057
+ const result = state.events.enter?.("InterfaceExtendsClause", state);
14058
+ if (result) {
14059
+ if (result.cache)
14060
+ return result.cache;
14061
+ eventData = result.data;
14062
+ }
14063
+ }
14064
+ if (state.tokenize) {
14065
+ const result = $TOKEN("InterfaceExtendsClause", state, InterfaceExtendsClause$0(state));
14066
+ if (state.events)
14067
+ state.events.exit?.("InterfaceExtendsClause", state, result, eventData);
14068
+ return result;
14069
+ } else {
14070
+ const result = InterfaceExtendsClause$0(state);
14071
+ if (state.events)
14072
+ state.events.exit?.("InterfaceExtendsClause", state, result, eventData);
14073
+ return result;
14074
+ }
14075
+ }
14076
+ var InterfaceExtendsTarget$0 = ImplementsTarget;
14077
+ function InterfaceExtendsTarget(state) {
14078
+ let eventData;
14079
+ if (state.events) {
14080
+ const result = state.events.enter?.("InterfaceExtendsTarget", state);
14081
+ if (result) {
14082
+ if (result.cache)
14083
+ return result.cache;
14084
+ eventData = result.data;
14085
+ }
14086
+ }
14087
+ if (state.tokenize) {
14088
+ const result = $TOKEN("InterfaceExtendsTarget", state, InterfaceExtendsTarget$0(state));
14089
+ if (state.events)
14090
+ state.events.exit?.("InterfaceExtendsTarget", state, result, eventData);
14091
+ return result;
14092
+ } else {
14093
+ const result = InterfaceExtendsTarget$0(state);
14094
+ if (state.events)
14095
+ state.events.exit?.("InterfaceExtendsTarget", state, result, eventData);
14096
+ return result;
14097
+ }
14098
+ }
14072
14099
  var TypeKeyword$0 = $S($EXPECT($L159, fail, 'TypeKeyword "type"'), NonIdContinue);
14073
14100
  function TypeKeyword(state) {
14074
14101
  let eventData;
@@ -14831,7 +14858,7 @@ ${input.slice(result.pos)}
14831
14858
  return result;
14832
14859
  }
14833
14860
  }
14834
- var FunctionType$0 = $S(Parameters, __, $EXPECT($L3, fail, 'FunctionType "=>"'), Type);
14861
+ var FunctionType$0 = $S(Parameters, __, $EXPECT($L4, fail, 'FunctionType "=>"'), Type);
14835
14862
  function FunctionType(state) {
14836
14863
  let eventData;
14837
14864
  if (state.events) {
@@ -14854,7 +14881,7 @@ ${input.slice(result.pos)}
14854
14881
  return result;
14855
14882
  }
14856
14883
  }
14857
- var TypeArguments$0 = $TS($S(__, $EXPECT($L120, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L25, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
14884
+ var TypeArguments$0 = $TS($S($EXPECT($L120, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L25, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
14858
14885
  return { ts: true, children: $0 };
14859
14886
  });
14860
14887
  function TypeArguments(state) {
@@ -14879,103 +14906,6 @@ ${input.slice(result.pos)}
14879
14906
  return result;
14880
14907
  }
14881
14908
  }
14882
- var InlineTypeArguments$0 = $TS($S($Q(_), $EXPECT($L120, fail, 'InlineTypeArguments "<"'), $P(InlineTypeArgument), $Q(_), $EXPECT($L25, fail, 'InlineTypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
14883
- return { ts: true, children: $0 };
14884
- });
14885
- function InlineTypeArguments(state) {
14886
- let eventData;
14887
- if (state.events) {
14888
- const result = state.events.enter?.("InlineTypeArguments", state);
14889
- if (result) {
14890
- if (result.cache)
14891
- return result.cache;
14892
- eventData = result.data;
14893
- }
14894
- }
14895
- if (state.tokenize) {
14896
- const result = $TOKEN("InlineTypeArguments", state, InlineTypeArguments$0(state));
14897
- if (state.events)
14898
- state.events.exit?.("InlineTypeArguments", state, result, eventData);
14899
- return result;
14900
- } else {
14901
- const result = InlineTypeArguments$0(state);
14902
- if (state.events)
14903
- state.events.exit?.("InlineTypeArguments", state, result, eventData);
14904
- return result;
14905
- }
14906
- }
14907
- var InlineTypeArgument$0 = $S($Q(_), Type, InlineTypeArgumentDelimiter);
14908
- function InlineTypeArgument(state) {
14909
- let eventData;
14910
- if (state.events) {
14911
- const result = state.events.enter?.("InlineTypeArgument", state);
14912
- if (result) {
14913
- if (result.cache)
14914
- return result.cache;
14915
- eventData = result.data;
14916
- }
14917
- }
14918
- if (state.tokenize) {
14919
- const result = $TOKEN("InlineTypeArgument", state, InlineTypeArgument$0(state));
14920
- if (state.events)
14921
- state.events.exit?.("InlineTypeArgument", state, result, eventData);
14922
- return result;
14923
- } else {
14924
- const result = InlineTypeArgument$0(state);
14925
- if (state.events)
14926
- state.events.exit?.("InlineTypeArgument", state, result, eventData);
14927
- return result;
14928
- }
14929
- }
14930
- var InlineTypeArgumentDelimiter$0 = $S($Q(_), Comma);
14931
- var InlineTypeArgumentDelimiter$1 = $Y($S($Q(_), $EXPECT($L25, fail, 'InlineTypeArgumentDelimiter ">"')));
14932
- function InlineTypeArgumentDelimiter(state) {
14933
- let eventData;
14934
- if (state.events) {
14935
- const result = state.events.enter?.("InlineTypeArgumentDelimiter", state);
14936
- if (result) {
14937
- if (result.cache)
14938
- return result.cache;
14939
- eventData = result.data;
14940
- }
14941
- }
14942
- if (state.tokenize) {
14943
- const result = $TOKEN("InlineTypeArgumentDelimiter", state, InlineTypeArgumentDelimiter$0(state) || InlineTypeArgumentDelimiter$1(state));
14944
- if (state.events)
14945
- state.events.exit?.("InlineTypeArgumentDelimiter", state, result, eventData);
14946
- return result;
14947
- } else {
14948
- const result = InlineTypeArgumentDelimiter$0(state) || InlineTypeArgumentDelimiter$1(state);
14949
- if (state.events)
14950
- state.events.exit?.("InlineTypeArgumentDelimiter", state, result, eventData);
14951
- return result;
14952
- }
14953
- }
14954
- var CompactTypeArguments$0 = $TS($S($EXPECT($L120, fail, 'CompactTypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L25, fail, 'CompactTypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
14955
- return { ts: true, children: $0 };
14956
- });
14957
- function CompactTypeArguments(state) {
14958
- let eventData;
14959
- if (state.events) {
14960
- const result = state.events.enter?.("CompactTypeArguments", state);
14961
- if (result) {
14962
- if (result.cache)
14963
- return result.cache;
14964
- eventData = result.data;
14965
- }
14966
- }
14967
- if (state.tokenize) {
14968
- const result = $TOKEN("CompactTypeArguments", state, CompactTypeArguments$0(state));
14969
- if (state.events)
14970
- state.events.exit?.("CompactTypeArguments", state, result, eventData);
14971
- return result;
14972
- } else {
14973
- const result = CompactTypeArguments$0(state);
14974
- if (state.events)
14975
- state.events.exit?.("CompactTypeArguments", state, result, eventData);
14976
- return result;
14977
- }
14978
- }
14979
14909
  var TypeArgument$0 = $S(__, Type, TypeArgumentDelimiter);
14980
14910
  function TypeArgument(state) {
14981
14911
  let eventData;
@@ -16153,6 +16083,16 @@ ${input.slice(result.pos)}
16153
16083
  };
16154
16084
  module.prelude.push(["", ["const ", moduloRef, typeSuffix, " = (a, b) => (a % b + b) % b", "\n"]]);
16155
16085
  },
16086
+ returnSymbol(ref) {
16087
+ module.prelude.push({
16088
+ children: [
16089
+ "const ",
16090
+ ref,
16091
+ ` = Symbol("return")';
16092
+ `
16093
+ ]
16094
+ });
16095
+ },
16156
16096
  JSX(jsxRef) {
16157
16097
  module.prelude.push({
16158
16098
  ts: true,
@@ -16449,35 +16389,19 @@ ${input.slice(result.pos)}
16449
16389
  if (!node)
16450
16390
  return;
16451
16391
  switch (node.type) {
16452
- case "AssignmentExpression":
16453
- node.children.unshift(ref, ".push(");
16454
- node.children.push(")");
16455
- return;
16456
- case "Identifier":
16457
- node.children.unshift(ref, ".push(");
16458
- node.children.push(")");
16459
- return;
16460
16392
  case "BlockStatement":
16461
16393
  insertPush(node.expressions[node.expressions.length - 1], ref);
16462
16394
  return;
16463
- case "ObjectBindingPattern":
16464
- case "ObjectExpression":
16465
- module.insertTrimmingSpace(node.children[0], "");
16466
- node.children.unshift(ref, ".push(");
16467
- node.children.push(")");
16468
- return;
16469
16395
  case "CaseBlock":
16470
16396
  node.clauses.forEach((clause) => {
16471
16397
  insertPush(clause, ref);
16472
16398
  });
16473
16399
  return;
16474
- case "CaseClause":
16475
- return;
16476
16400
  case "WhenClause":
16477
- insertPush(node.expressions[node.expressions.length - 1], ref);
16401
+ insertPush(node.block, ref);
16478
16402
  return;
16479
16403
  case "DefaultClause":
16480
- insertPush(node.expressions[node.expressions.length - 1], ref);
16404
+ insertPush(node.block, ref);
16481
16405
  return;
16482
16406
  }
16483
16407
  if (!Array.isArray(node))
@@ -16523,41 +16447,35 @@ ${input.slice(result.pos)}
16523
16447
  node.splice(1, 0, ref, ".push(");
16524
16448
  node.push(")");
16525
16449
  }
16450
+ function wrapWithReturn(expression) {
16451
+ const children = expression ? ["return ", expression] : ["return"];
16452
+ return {
16453
+ type: "ReturnStatement",
16454
+ children
16455
+ };
16456
+ }
16526
16457
  function insertReturn(node) {
16527
16458
  if (!node)
16528
16459
  return;
16529
16460
  switch (node.type) {
16530
- case "AssignmentExpression":
16531
- node.children.unshift("return ");
16532
- return;
16533
- case "Identifier":
16534
- node.children.unshift("return ");
16535
- return;
16536
16461
  case "BlockStatement":
16537
16462
  insertReturn(node.expressions[node.expressions.length - 1]);
16538
16463
  return;
16539
- case "ObjectBindingPattern":
16540
- case "ObjectExpression":
16541
- module.insertTrimmingSpace(node.children[0], "");
16542
- node.children.unshift("return ");
16543
- return;
16544
16464
  case "CaseBlock":
16545
16465
  node.clauses.forEach((clause) => {
16546
16466
  insertReturn(clause);
16547
16467
  });
16548
16468
  return;
16549
- case "CaseClause":
16550
- return;
16551
16469
  case "WhenClause":
16552
16470
  node.children.splice(node.children.indexOf(node.break), 1);
16553
- if (node.expressions.length === 0) {
16554
- node.expressions.push("return");
16471
+ if (node.block.length === 0) {
16472
+ node.block.push(wrapWithReturn());
16555
16473
  return;
16556
16474
  }
16557
- insertReturn(node.expressions[node.expressions.length - 1]);
16475
+ insertReturn(node.block);
16558
16476
  return;
16559
16477
  case "DefaultClause":
16560
- insertReturn(node.expressions[node.expressions.length - 1]);
16478
+ insertReturn(node.block);
16561
16479
  return;
16562
16480
  }
16563
16481
  if (!Array.isArray(node))
@@ -16589,7 +16507,7 @@ ${input.slice(result.pos)}
16589
16507
  if (exp.children[3])
16590
16508
  insertReturn(exp.children[3][2]);
16591
16509
  else
16592
- exp.children.push(["\n", indent, "return"]);
16510
+ exp.children.push(["\n", indent, wrapWithReturn()]);
16593
16511
  return;
16594
16512
  case "SwitchStatement":
16595
16513
  insertReturn(exp.children[2]);
@@ -16602,7 +16520,8 @@ ${input.slice(result.pos)}
16602
16520
  }
16603
16521
  if (node[node.length - 1]?.type === "SemicolonDelimiter")
16604
16522
  return;
16605
- node.splice(1, 0, "return ");
16523
+ const returnStatement = wrapWithReturn(node[1]);
16524
+ node.splice(1, 1, returnStatement);
16606
16525
  }
16607
16526
  module.makeLeftHandSideExpression = function(exp) {
16608
16527
  switch (exp.type) {
@@ -17966,7 +17885,7 @@ ${input.slice(result.pos)}
17966
17885
  ({ parse } = import_parser.default);
17967
17886
  ({ SourceMap: SourceMap2, base64Encode: base64Encode2 } = util_exports);
17968
17887
  defaultOptions = {};
17969
- uncacheable = /* @__PURE__ */ new Set(["TrackIndented", "Samedent", "IndentedFurther", "PushIndent", "PopIndent", "Nested", "InsertIndent", "Arguments", "ArgumentsWithTrailingCallExpressions", "ApplicationStart", "CallExpression", "CallExpressionRest", "LeftHandSideExpression", "ActualAssignment", "UpdateExpression", "UnaryExpression", "BinaryOpExpression", "BinaryOpRHS", "ConditionalExpression", "ShortCircuitExpression", "InlineObjectLiteral", "ImplicitInlineObjectPropertyDelimiter", "FatArrowBody", "ThinArrowFunction", "ArrowFunctionTail", "ArrowFunction", "ImplicitNestedBlock", "BracedBlock", "BracedOrEmptyBlock", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatements", "SingleLineStatements", "ExpressionStatement", "Statement", "IndentedJSXChildExpression", "NestedJSXChildExpression", "ObjectLiteral", "NestedObject", "NestedImplicitObjectLiteral", "BracedObjectLiteralContent", "NestedPropertyDefinitions", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedBlockStatement", "NestedElement", "NestedElementList", "NestedBindingElement", "NestedBindingElements", "NestedInterfaceProperty", "SnugNamedProperty", "MemberExpression", "PrimaryExpression", "IndentedApplicationAllowed", "ExpressionWithIndentedApplicationSuppressed", "SuppressIndentedApplication", "AssignmentExpressionTail", "AssignmentExpression", "ExtendedExpression", "Expression", "MemberExpressionRest", "ElseClause", "CoffeeCommentEnabled", "SingleLineComment", "Debugger", "JSXImplicitFragment", "JSXTag", "JSXElement", "TypedJSXElement", "JSXFragment", "TypedJSXFragment", "JSXChild", "JSXChildren", "JSXNestedChildren", "JSXMixedChildren"]);
17888
+ 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", "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", "ObjectLiteral", "PopIndent", "PrimaryExpression", "PushIndent", "Samedent", "ShortCircuitExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "SuppressIndentedApplication", "ThinArrowFunction", "TrackIndented", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
17970
17889
  var compile = function(src, options = defaultOptions) {
17971
17890
  var ast, code, events, filename, sm, srcMapJSON;
17972
17891
  filename = options.filename || "unknown";