@danielx/civet 0.4.38 → 0.5.0

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.
Files changed (4) hide show
  1. package/README.md +65 -61
  2. package/dist/browser.js +423 -103
  3. package/dist/main.js +423 -103
  4. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -478,6 +478,7 @@ ${input.slice(result.pos)}
478
478
  ExpressionizedStatement,
479
479
  Expression,
480
480
  Arguments,
481
+ ExplicitArguments,
481
482
  ApplicationStart,
482
483
  IndentedApplicationAllowed,
483
484
  ArgumentsWithTrailingCallExpressions,
@@ -843,6 +844,16 @@ ${input.slice(result.pos)}
843
844
  JSXAttributeInitializer,
844
845
  JSXAttributeValue,
845
846
  InlineJSXAttributeValue,
847
+ InlineJSXBinaryOpRHS,
848
+ InlineJSXUnaryExpression,
849
+ InlineJSXUnaryOp,
850
+ InlineJSXUnaryPostfix,
851
+ InlineJSXUpdateExpression,
852
+ InlineJSXCallExpression,
853
+ InlineJSXCallExpressionRest,
854
+ InlineJSXMemberExpression,
855
+ InlineJSXMemberExpressionRest,
856
+ InlineJSXPrimaryExpression,
846
857
  JSXMixedChildren,
847
858
  JSXChildren,
848
859
  JSXNestedChildren,
@@ -1139,16 +1150,14 @@ ${input.slice(result.pos)}
1139
1150
  var $R43 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1140
1151
  var $R44 = $R(new RegExp("\\s", "suy"));
1141
1152
  var $R45 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1142
- var $R46 = $R(new RegExp('"[^"]*"', "suy"));
1143
- var $R47 = $R(new RegExp("'[^']*'", "suy"));
1144
- var $R48 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1145
- var $R49 = $R(new RegExp("[+-]?", "suy"));
1146
- var $R50 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1147
- var $R51 = $R(new RegExp("[\\t ]*", "suy"));
1148
- var $R52 = $R(new RegExp("[\\s]*", "suy"));
1149
- var $R53 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1150
- var $R54 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1151
- var $R55 = $R(new RegExp("[ \\t]*", "suy"));
1153
+ var $R46 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1154
+ var $R47 = $R(new RegExp("[+-]?", "suy"));
1155
+ var $R48 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1156
+ var $R49 = $R(new RegExp("[\\t ]*", "suy"));
1157
+ var $R50 = $R(new RegExp("[\\s]*", "suy"));
1158
+ var $R51 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1159
+ var $R52 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1160
+ var $R53 = $R(new RegExp("[ \\t]*", "suy"));
1152
1161
  var Program$0 = $TS($S(Reset, Init, __, $Q(TopLevelStatement), __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1153
1162
  var statements = $4;
1154
1163
  module2.processProgram(statements);
@@ -1269,7 +1278,7 @@ ${input.slice(result.pos)}
1269
1278
  return result;
1270
1279
  }
1271
1280
  }
1272
- var Arguments$0 = $S(OpenParen, $E(ArgumentList), $E($S(__, Comma)), __, CloseParen);
1281
+ var Arguments$0 = ExplicitArguments;
1273
1282
  var Arguments$1 = $TS($S(ApplicationStart, InsertOpenParen, $Q(_), ArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1274
1283
  var open = $2;
1275
1284
  var ws = $3;
@@ -1295,6 +1304,25 @@ ${input.slice(result.pos)}
1295
1304
  return result;
1296
1305
  }
1297
1306
  }
1307
+ var ExplicitArguments$0 = $S(OpenParen, $E(ArgumentList), $E($S(__, Comma)), __, CloseParen);
1308
+ function ExplicitArguments(state) {
1309
+ if (state.events) {
1310
+ const result = state.events.enter?.("ExplicitArguments", state);
1311
+ if (result)
1312
+ return result.cache;
1313
+ }
1314
+ if (state.tokenize) {
1315
+ const result = $TOKEN("ExplicitArguments", state, ExplicitArguments$0(state));
1316
+ if (state.events)
1317
+ state.events.exit?.("ExplicitArguments", state, result);
1318
+ return result;
1319
+ } else {
1320
+ const result = ExplicitArguments$0(state);
1321
+ if (state.events)
1322
+ state.events.exit?.("ExplicitArguments", state, result);
1323
+ return result;
1324
+ }
1325
+ }
1298
1326
  var ApplicationStart$0 = $S(IndentedApplicationAllowed, $Y(NestedImplicitObjectLiteral));
1299
1327
  var ApplicationStart$1 = $S($N(EOS), $Y($S($P(_), $N(AdditionalReservedWords))));
1300
1328
  function ApplicationStart(state) {
@@ -1487,9 +1515,8 @@ ${input.slice(result.pos)}
1487
1515
  }
1488
1516
  }
1489
1517
  var BinaryOpExpression$0 = $TS($S(UnaryExpression, $Q(BinaryOpRHS)), function($skip, $loc, $0, $1, $2) {
1490
- if ($2.length) {
1518
+ if ($2.length)
1491
1519
  return module2.processBinaryOpExpression($0);
1492
- }
1493
1520
  return $1;
1494
1521
  });
1495
1522
  function BinaryOpExpression(state) {
@@ -1552,53 +1579,7 @@ ${input.slice(result.pos)}
1552
1579
  var pre = $1;
1553
1580
  var exp = $2;
1554
1581
  var post = $3;
1555
- if (post?.token === "?") {
1556
- post = {
1557
- $loc: post.$loc,
1558
- token: " != null"
1559
- };
1560
- switch (exp.type) {
1561
- case "Identifier":
1562
- case "Literal":
1563
- return {
1564
- ...exp,
1565
- children: [...pre, ...exp.children, post]
1566
- };
1567
- default:
1568
- return {
1569
- type: "ParenthesizedExpression",
1570
- children: ["(", ...pre, "(", exp, ")", post, ")"]
1571
- };
1572
- }
1573
- }
1574
- if (exp.type === "Literal") {
1575
- if (pre.length === 1 && pre[0].token === "-") {
1576
- const children = [pre[0], ...exp.children];
1577
- if (post)
1578
- exp.children.push(post);
1579
- return {
1580
- type: "Literal",
1581
- children,
1582
- raw: `-${exp.raw}`
1583
- };
1584
- }
1585
- }
1586
- if (exp.children) {
1587
- const children = [...pre, ...exp.children];
1588
- if (post)
1589
- children.push(post);
1590
- return Object.assign({}, exp, { children });
1591
- } else if (Array.isArray(exp)) {
1592
- const children = [...pre, ...exp];
1593
- if (post)
1594
- children.push(post);
1595
- return { children };
1596
- } else {
1597
- const children = [...pre, exp];
1598
- if (post)
1599
- children.push(post);
1600
- return { children };
1601
- }
1582
+ return module2.processUnaryExpression(pre, exp, post);
1602
1583
  });
1603
1584
  var UnaryExpression$1 = $TS($S(CoffeeDoEnabled, Do, __, $C($S(LeftHandSideExpression, $N($S(__, AssignmentOpSymbol))), ArrowFunction, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4) {
1604
1585
  var ws = $3;
@@ -2082,7 +2063,7 @@ ${input.slice(result.pos)}
2082
2063
  return result;
2083
2064
  }
2084
2065
  }
2085
- var ClassExpression$0 = $S($E(Decorators), Class, $E($S(BindingIdentifier, $E(TypeArguments))), $E(ClassHeritage), ClassBody);
2066
+ var ClassExpression$0 = $S($E(Decorators), Class, $E($S(BindingIdentifier, $E(TypeParameters))), $E(ClassHeritage), ClassBody);
2086
2067
  function ClassExpression(state) {
2087
2068
  if (state.events) {
2088
2069
  const result = state.events.enter?.("ClassExpression", state);
@@ -8315,10 +8296,9 @@ ${input.slice(result.pos)}
8315
8296
  var s = $2;
8316
8297
  var parts = $3;
8317
8298
  var e = $4;
8318
- const noInterpolations = parts.length === 1 && parts[0].token != null;
8319
- if (noInterpolations) {
8299
+ if (parts.length === 0 || parts.length === 1 && parts[0].token != null) {
8320
8300
  return {
8321
- token: `"${module2.modifyString(parts[0].token)}"`,
8301
+ token: parts.length ? `"${module2.modifyString(parts[0].token)}"` : '""',
8322
8302
  $loc
8323
8303
  };
8324
8304
  }
@@ -10842,12 +10822,15 @@ ${input.slice(result.pos)}
10842
10822
  return result;
10843
10823
  }
10844
10824
  }
10845
- var JSXAttributeValue$0 = $R$0($EXPECT($R46, fail, 'JSXAttributeValue /"[^"]*"/'));
10846
- var JSXAttributeValue$1 = $R$0($EXPECT($R47, fail, "JSXAttributeValue /'[^']*'/"));
10847
- var JSXAttributeValue$2 = $S(OpenBrace, ExtendedExpression, __, CloseBrace);
10848
- var JSXAttributeValue$3 = JSXElement;
10849
- var JSXAttributeValue$4 = JSXFragment;
10850
- var JSXAttributeValue$5 = $S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace);
10825
+ var JSXAttributeValue$0 = $TS($S(StringLiteral), function($skip, $loc, $0, $1) {
10826
+ if (module2.isTemplateLiteral($1))
10827
+ return $skip;
10828
+ return $1;
10829
+ });
10830
+ var JSXAttributeValue$1 = $S(OpenBrace, ExtendedExpression, __, CloseBrace);
10831
+ var JSXAttributeValue$2 = JSXElement;
10832
+ var JSXAttributeValue$3 = JSXFragment;
10833
+ var JSXAttributeValue$4 = $S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace);
10851
10834
  function JSXAttributeValue(state) {
10852
10835
  if (state.events) {
10853
10836
  const result = state.events.enter?.("JSXAttributeValue", state);
@@ -10855,27 +10838,22 @@ ${input.slice(result.pos)}
10855
10838
  return result.cache;
10856
10839
  }
10857
10840
  if (state.tokenize) {
10858
- const result = $TOKEN("JSXAttributeValue", state, JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state) || JSXAttributeValue$5(state));
10841
+ const result = $TOKEN("JSXAttributeValue", state, JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state));
10859
10842
  if (state.events)
10860
10843
  state.events.exit?.("JSXAttributeValue", state, result);
10861
10844
  return result;
10862
10845
  } else {
10863
- const result = JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state) || JSXAttributeValue$5(state);
10846
+ const result = JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state);
10864
10847
  if (state.events)
10865
10848
  state.events.exit?.("JSXAttributeValue", state, result);
10866
10849
  return result;
10867
10850
  }
10868
10851
  }
10869
- var InlineJSXAttributeValue$0 = NullLiteral;
10870
- var InlineJSXAttributeValue$1 = BooleanLiteral;
10871
- var InlineJSXAttributeValue$2 = NumericLiteral;
10872
- var InlineJSXAttributeValue$3 = ThisLiteral;
10873
- var InlineJSXAttributeValue$4 = ArrayLiteral;
10874
- var InlineJSXAttributeValue$5 = BracedObjectLiteral;
10875
- var InlineJSXAttributeValue$6 = IdentifierReference;
10876
- var InlineJSXAttributeValue$7 = RegularExpressionLiteral;
10877
- var InlineJSXAttributeValue$8 = TemplateLiteral;
10878
- var InlineJSXAttributeValue$9 = ParenthesizedExpression;
10852
+ var InlineJSXAttributeValue$0 = $TS($S(InlineJSXUnaryExpression, $Q(InlineJSXBinaryOpRHS)), function($skip, $loc, $0, $1, $2) {
10853
+ if ($2.length)
10854
+ return module2.processBinaryOpExpression($0);
10855
+ return $1;
10856
+ });
10879
10857
  function InlineJSXAttributeValue(state) {
10880
10858
  if (state.events) {
10881
10859
  const result = state.events.enter?.("InlineJSXAttributeValue", state);
@@ -10883,17 +10861,255 @@ ${input.slice(result.pos)}
10883
10861
  return result.cache;
10884
10862
  }
10885
10863
  if (state.tokenize) {
10886
- const result = $TOKEN("InlineJSXAttributeValue", state, InlineJSXAttributeValue$0(state) || InlineJSXAttributeValue$1(state) || InlineJSXAttributeValue$2(state) || InlineJSXAttributeValue$3(state) || InlineJSXAttributeValue$4(state) || InlineJSXAttributeValue$5(state) || InlineJSXAttributeValue$6(state) || InlineJSXAttributeValue$7(state) || InlineJSXAttributeValue$8(state) || InlineJSXAttributeValue$9(state));
10864
+ const result = $TOKEN("InlineJSXAttributeValue", state, InlineJSXAttributeValue$0(state));
10887
10865
  if (state.events)
10888
10866
  state.events.exit?.("InlineJSXAttributeValue", state, result);
10889
10867
  return result;
10890
10868
  } else {
10891
- const result = InlineJSXAttributeValue$0(state) || InlineJSXAttributeValue$1(state) || InlineJSXAttributeValue$2(state) || InlineJSXAttributeValue$3(state) || InlineJSXAttributeValue$4(state) || InlineJSXAttributeValue$5(state) || InlineJSXAttributeValue$6(state) || InlineJSXAttributeValue$7(state) || InlineJSXAttributeValue$8(state) || InlineJSXAttributeValue$9(state);
10869
+ const result = InlineJSXAttributeValue$0(state);
10892
10870
  if (state.events)
10893
10871
  state.events.exit?.("InlineJSXAttributeValue", state, result);
10894
10872
  return result;
10895
10873
  }
10896
10874
  }
10875
+ var InlineJSXBinaryOpRHS$0 = $TS($S(BinaryOp, $C(ParenthesizedAssignment, InlineJSXUnaryExpression)), function($skip, $loc, $0, $1, $2) {
10876
+ return [[], $1, [], $2];
10877
+ });
10878
+ function InlineJSXBinaryOpRHS(state) {
10879
+ if (state.events) {
10880
+ const result = state.events.enter?.("InlineJSXBinaryOpRHS", state);
10881
+ if (result)
10882
+ return result.cache;
10883
+ }
10884
+ if (state.tokenize) {
10885
+ const result = $TOKEN("InlineJSXBinaryOpRHS", state, InlineJSXBinaryOpRHS$0(state));
10886
+ if (state.events)
10887
+ state.events.exit?.("InlineJSXBinaryOpRHS", state, result);
10888
+ return result;
10889
+ } else {
10890
+ const result = InlineJSXBinaryOpRHS$0(state);
10891
+ if (state.events)
10892
+ state.events.exit?.("InlineJSXBinaryOpRHS", state, result);
10893
+ return result;
10894
+ }
10895
+ }
10896
+ var InlineJSXUnaryExpression$0 = $TS($S($Q(InlineJSXUnaryOp), InlineJSXUpdateExpression, $E(InlineJSXUnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
10897
+ var pre = $1;
10898
+ var exp = $2;
10899
+ var post = $3;
10900
+ return module2.processUnaryExpression(pre, exp, post);
10901
+ });
10902
+ function InlineJSXUnaryExpression(state) {
10903
+ if (state.events) {
10904
+ const result = state.events.enter?.("InlineJSXUnaryExpression", state);
10905
+ if (result)
10906
+ return result.cache;
10907
+ }
10908
+ if (state.tokenize) {
10909
+ const result = $TOKEN("InlineJSXUnaryExpression", state, InlineJSXUnaryExpression$0(state));
10910
+ if (state.events)
10911
+ state.events.exit?.("InlineJSXUnaryExpression", state, result);
10912
+ return result;
10913
+ } else {
10914
+ const result = InlineJSXUnaryExpression$0(state);
10915
+ if (state.events)
10916
+ state.events.exit?.("InlineJSXUnaryExpression", state, result);
10917
+ return result;
10918
+ }
10919
+ }
10920
+ var InlineJSXUnaryOp$0 = $TR($EXPECT($R6, fail, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10921
+ return { $loc, token: $0 };
10922
+ });
10923
+ function InlineJSXUnaryOp(state) {
10924
+ if (state.events) {
10925
+ const result = state.events.enter?.("InlineJSXUnaryOp", state);
10926
+ if (result)
10927
+ return result.cache;
10928
+ }
10929
+ if (state.tokenize) {
10930
+ const result = $TOKEN("InlineJSXUnaryOp", state, InlineJSXUnaryOp$0(state));
10931
+ if (state.events)
10932
+ state.events.exit?.("InlineJSXUnaryOp", state, result);
10933
+ return result;
10934
+ } else {
10935
+ const result = InlineJSXUnaryOp$0(state);
10936
+ if (state.events)
10937
+ state.events.exit?.("InlineJSXUnaryOp", state, result);
10938
+ return result;
10939
+ }
10940
+ }
10941
+ var InlineJSXUnaryPostfix$0 = QuestionMark;
10942
+ function InlineJSXUnaryPostfix(state) {
10943
+ if (state.events) {
10944
+ const result = state.events.enter?.("InlineJSXUnaryPostfix", state);
10945
+ if (result)
10946
+ return result.cache;
10947
+ }
10948
+ if (state.tokenize) {
10949
+ const result = $TOKEN("InlineJSXUnaryPostfix", state, InlineJSXUnaryPostfix$0(state));
10950
+ if (state.events)
10951
+ state.events.exit?.("InlineJSXUnaryPostfix", state, result);
10952
+ return result;
10953
+ } else {
10954
+ const result = InlineJSXUnaryPostfix$0(state);
10955
+ if (state.events)
10956
+ state.events.exit?.("InlineJSXUnaryPostfix", state, result);
10957
+ return result;
10958
+ }
10959
+ }
10960
+ var InlineJSXUpdateExpression$0 = $S(UpdateExpressionSymbol, UnaryExpression);
10961
+ var InlineJSXUpdateExpression$1 = $TS($S(InlineJSXCallExpression, $E(UpdateExpressionSymbol)), function($skip, $loc, $0, $1, $2) {
10962
+ if ($2)
10963
+ return $0;
10964
+ return $1;
10965
+ });
10966
+ function InlineJSXUpdateExpression(state) {
10967
+ if (state.events) {
10968
+ const result = state.events.enter?.("InlineJSXUpdateExpression", state);
10969
+ if (result)
10970
+ return result.cache;
10971
+ }
10972
+ if (state.tokenize) {
10973
+ const result = $TOKEN("InlineJSXUpdateExpression", state, InlineJSXUpdateExpression$0(state) || InlineJSXUpdateExpression$1(state));
10974
+ if (state.events)
10975
+ state.events.exit?.("InlineJSXUpdateExpression", state, result);
10976
+ return result;
10977
+ } else {
10978
+ const result = InlineJSXUpdateExpression$0(state) || InlineJSXUpdateExpression$1(state);
10979
+ if (state.events)
10980
+ state.events.exit?.("InlineJSXUpdateExpression", state, result);
10981
+ return result;
10982
+ }
10983
+ }
10984
+ var InlineJSXCallExpression$0 = $S($EXPECT($L10, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments);
10985
+ var InlineJSXCallExpression$1 = $S($EXPECT($L11, fail, 'InlineJSXCallExpression "import"'), OpenParen, ExtendedExpression, __, CloseParen);
10986
+ var InlineJSXCallExpression$2 = $TS($S(InlineJSXMemberExpression, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2) {
10987
+ if ($2.length)
10988
+ return $0;
10989
+ return $1;
10990
+ });
10991
+ function InlineJSXCallExpression(state) {
10992
+ if (state.events) {
10993
+ const result = state.events.enter?.("InlineJSXCallExpression", state);
10994
+ if (result)
10995
+ return result.cache;
10996
+ }
10997
+ if (state.tokenize) {
10998
+ const result = $TOKEN("InlineJSXCallExpression", state, InlineJSXCallExpression$0(state) || InlineJSXCallExpression$1(state) || InlineJSXCallExpression$2(state));
10999
+ if (state.events)
11000
+ state.events.exit?.("InlineJSXCallExpression", state, result);
11001
+ return result;
11002
+ } else {
11003
+ const result = InlineJSXCallExpression$0(state) || InlineJSXCallExpression$1(state) || InlineJSXCallExpression$2(state);
11004
+ if (state.events)
11005
+ state.events.exit?.("InlineJSXCallExpression", state, result);
11006
+ return result;
11007
+ }
11008
+ }
11009
+ var InlineJSXCallExpressionRest$0 = MemberExpressionRest;
11010
+ var InlineJSXCallExpressionRest$1 = TemplateLiteral;
11011
+ var InlineJSXCallExpressionRest$2 = $S($E($C(OptionalShorthand, NonNullAssertion)), ExplicitArguments);
11012
+ function InlineJSXCallExpressionRest(state) {
11013
+ if (state.events) {
11014
+ const result = state.events.enter?.("InlineJSXCallExpressionRest", state);
11015
+ if (result)
11016
+ return result.cache;
11017
+ }
11018
+ if (state.tokenize) {
11019
+ const result = $TOKEN("InlineJSXCallExpressionRest", state, InlineJSXCallExpressionRest$0(state) || InlineJSXCallExpressionRest$1(state) || InlineJSXCallExpressionRest$2(state));
11020
+ if (state.events)
11021
+ state.events.exit?.("InlineJSXCallExpressionRest", state, result);
11022
+ return result;
11023
+ } else {
11024
+ const result = InlineJSXCallExpressionRest$0(state) || InlineJSXCallExpressionRest$1(state) || InlineJSXCallExpressionRest$2(state);
11025
+ if (state.events)
11026
+ state.events.exit?.("InlineJSXCallExpressionRest", state, result);
11027
+ return result;
11028
+ }
11029
+ }
11030
+ var InlineJSXMemberExpression$0 = $TS($S(InlineJSXPrimaryExpression, $Q(InlineJSXMemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
11031
+ if ($2.length)
11032
+ return $0;
11033
+ return $1;
11034
+ });
11035
+ var InlineJSXMemberExpression$1 = SuperProperty;
11036
+ var InlineJSXMemberExpression$2 = MetaProperty;
11037
+ function InlineJSXMemberExpression(state) {
11038
+ if (state.events) {
11039
+ const result = state.events.enter?.("InlineJSXMemberExpression", state);
11040
+ if (result)
11041
+ return result.cache;
11042
+ }
11043
+ if (state.tokenize) {
11044
+ const result = $TOKEN("InlineJSXMemberExpression", state, InlineJSXMemberExpression$0(state) || InlineJSXMemberExpression$1(state) || InlineJSXMemberExpression$2(state));
11045
+ if (state.events)
11046
+ state.events.exit?.("InlineJSXMemberExpression", state, result);
11047
+ return result;
11048
+ } else {
11049
+ const result = InlineJSXMemberExpression$0(state) || InlineJSXMemberExpression$1(state) || InlineJSXMemberExpression$2(state);
11050
+ if (state.events)
11051
+ state.events.exit?.("InlineJSXMemberExpression", state, result);
11052
+ return result;
11053
+ }
11054
+ }
11055
+ var InlineJSXMemberExpressionRest$0 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), MemberBracketContent), function($skip, $loc, $0, $1, $2) {
11056
+ if ($1) {
11057
+ if ($1.length === 2 && $2.type === "SliceExpression") {
11058
+ return [$1[0], $2];
11059
+ }
11060
+ return $0;
11061
+ }
11062
+ return $2;
11063
+ });
11064
+ var InlineJSXMemberExpressionRest$1 = PropertyAccess;
11065
+ var InlineJSXMemberExpressionRest$2 = NonNullAssertion;
11066
+ function InlineJSXMemberExpressionRest(state) {
11067
+ if (state.events) {
11068
+ const result = state.events.enter?.("InlineJSXMemberExpressionRest", state);
11069
+ if (result)
11070
+ return result.cache;
11071
+ }
11072
+ if (state.tokenize) {
11073
+ const result = $TOKEN("InlineJSXMemberExpressionRest", state, InlineJSXMemberExpressionRest$0(state) || InlineJSXMemberExpressionRest$1(state) || InlineJSXMemberExpressionRest$2(state));
11074
+ if (state.events)
11075
+ state.events.exit?.("InlineJSXMemberExpressionRest", state, result);
11076
+ return result;
11077
+ } else {
11078
+ const result = InlineJSXMemberExpressionRest$0(state) || InlineJSXMemberExpressionRest$1(state) || InlineJSXMemberExpressionRest$2(state);
11079
+ if (state.events)
11080
+ state.events.exit?.("InlineJSXMemberExpressionRest", state, result);
11081
+ return result;
11082
+ }
11083
+ }
11084
+ var InlineJSXPrimaryExpression$0 = NullLiteral;
11085
+ var InlineJSXPrimaryExpression$1 = BooleanLiteral;
11086
+ var InlineJSXPrimaryExpression$2 = NumericLiteral;
11087
+ var InlineJSXPrimaryExpression$3 = StringLiteral;
11088
+ var InlineJSXPrimaryExpression$4 = ThisLiteral;
11089
+ var InlineJSXPrimaryExpression$5 = ArrayLiteral;
11090
+ var InlineJSXPrimaryExpression$6 = BracedObjectLiteral;
11091
+ var InlineJSXPrimaryExpression$7 = IdentifierReference;
11092
+ var InlineJSXPrimaryExpression$8 = RegularExpressionLiteral;
11093
+ var InlineJSXPrimaryExpression$9 = TemplateLiteral;
11094
+ var InlineJSXPrimaryExpression$10 = ParenthesizedExpression;
11095
+ function InlineJSXPrimaryExpression(state) {
11096
+ if (state.events) {
11097
+ const result = state.events.enter?.("InlineJSXPrimaryExpression", state);
11098
+ if (result)
11099
+ return result.cache;
11100
+ }
11101
+ if (state.tokenize) {
11102
+ const result = $TOKEN("InlineJSXPrimaryExpression", state, InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state) || InlineJSXPrimaryExpression$10(state));
11103
+ if (state.events)
11104
+ state.events.exit?.("InlineJSXPrimaryExpression", state, result);
11105
+ return result;
11106
+ } else {
11107
+ const result = InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state) || InlineJSXPrimaryExpression$10(state);
11108
+ if (state.events)
11109
+ state.events.exit?.("InlineJSXPrimaryExpression", state, result);
11110
+ return result;
11111
+ }
11112
+ }
10897
11113
  var JSXMixedChildren$0 = $TS($S($Q($C(_, JSXChild)), JSXNestedChildren), function($skip, $loc, $0, $1, $2) {
10898
11114
  var c1 = $1;
10899
11115
  var c2 = $2;
@@ -10984,7 +11200,7 @@ ${input.slice(result.pos)}
10984
11200
  return result;
10985
11201
  }
10986
11202
  }
10987
- var JSXText$0 = $R$0($EXPECT($R48, fail, "JSXText /[^{}<>\\r\\n]+/"));
11203
+ var JSXText$0 = $R$0($EXPECT($R46, fail, "JSXText /[^{}<>\\r\\n]+/"));
10988
11204
  function JSXText(state) {
10989
11205
  if (state.events) {
10990
11206
  const result = state.events.enter?.("JSXText", state);
@@ -11312,7 +11528,7 @@ ${input.slice(result.pos)}
11312
11528
  return result;
11313
11529
  }
11314
11530
  }
11315
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R49, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L154, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R4, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
11531
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R47, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L154, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R4, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
11316
11532
  function TypeIndexSignature(state) {
11317
11533
  if (state.events) {
11318
11534
  const result = state.events.enter?.("TypeIndexSignature", state);
@@ -11746,7 +11962,9 @@ ${input.slice(result.pos)}
11746
11962
  return result;
11747
11963
  }
11748
11964
  }
11749
- var TypeArguments$0 = $S(__, $EXPECT($L5, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L27, fail, 'TypeArguments ">"'));
11965
+ var TypeArguments$0 = $TS($S(__, $EXPECT($L5, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L27, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
11966
+ return { ts: true, children: $0 };
11967
+ });
11750
11968
  function TypeArguments(state) {
11751
11969
  if (state.events) {
11752
11970
  const result = state.events.enter?.("TypeArguments", state);
@@ -11765,7 +11983,7 @@ ${input.slice(result.pos)}
11765
11983
  return result;
11766
11984
  }
11767
11985
  }
11768
- var TypeParameters$0 = $TS($S(__, $EXPECT($L5, fail, 'TypeParameters "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L27, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
11986
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L5, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L27, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11769
11987
  return { ts: true, children: $0 };
11770
11988
  });
11771
11989
  function TypeParameters(state) {
@@ -11825,11 +12043,8 @@ ${input.slice(result.pos)}
11825
12043
  }
11826
12044
  }
11827
12045
  var TypeParameterDelimiter$0 = $S($Q(_), Comma);
11828
- var TypeParameterDelimiter$1 = $Y($S($Q(_), $EXPECT($L27, fail, 'TypeParameterDelimiter ">"')));
11829
- var TypeParameterDelimiter$2 = $T($S($Y($S(__, $EXPECT($L27, fail, 'TypeParameterDelimiter ">"'))), InsertComma), function(value) {
11830
- return value[1];
11831
- });
11832
- var TypeParameterDelimiter$3 = $T($S($Y(EOS), InsertComma), function(value) {
12046
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L27, fail, 'TypeParameterDelimiter ">"')));
12047
+ var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
11833
12048
  return value[1];
11834
12049
  });
11835
12050
  function TypeParameterDelimiter(state) {
@@ -11839,18 +12054,18 @@ ${input.slice(result.pos)}
11839
12054
  return result.cache;
11840
12055
  }
11841
12056
  if (state.tokenize) {
11842
- const result = $TOKEN("TypeParameterDelimiter", state, TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state));
12057
+ const result = $TOKEN("TypeParameterDelimiter", state, TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state));
11843
12058
  if (state.events)
11844
12059
  state.events.exit?.("TypeParameterDelimiter", state, result);
11845
12060
  return result;
11846
12061
  } else {
11847
- const result = TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state);
12062
+ const result = TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state);
11848
12063
  if (state.events)
11849
12064
  state.events.exit?.("TypeParameterDelimiter", state, result);
11850
12065
  return result;
11851
12066
  }
11852
12067
  }
11853
- var Shebang$0 = $S($R$0($EXPECT($R50, fail, "Shebang /#![^\\r\\n]*/")), EOL);
12068
+ var Shebang$0 = $S($R$0($EXPECT($R48, fail, "Shebang /#![^\\r\\n]*/")), EOL);
11854
12069
  function Shebang(state) {
11855
12070
  if (state.events) {
11856
12071
  const result = state.events.enter?.("Shebang", state);
@@ -11869,11 +12084,11 @@ ${input.slice(result.pos)}
11869
12084
  return result;
11870
12085
  }
11871
12086
  }
11872
- var CivetPrologue$0 = $T($S($EXPECT($R51, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
12087
+ var CivetPrologue$0 = $T($S($EXPECT($R49, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
11873
12088
  var content = value[2];
11874
12089
  return content;
11875
12090
  });
11876
- var CivetPrologue$1 = $T($S($EXPECT($R51, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
12091
+ var CivetPrologue$1 = $T($S($EXPECT($R49, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
11877
12092
  var content = value[2];
11878
12093
  return content;
11879
12094
  });
@@ -11895,7 +12110,7 @@ ${input.slice(result.pos)}
11895
12110
  return result;
11896
12111
  }
11897
12112
  }
11898
- var CivetPrologueContent$0 = $TS($S($EXPECT($L159, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R52, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
12113
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L159, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R50, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
11899
12114
  var options = $2;
11900
12115
  return {
11901
12116
  type: "CivetPrologue",
@@ -11921,7 +12136,7 @@ ${input.slice(result.pos)}
11921
12136
  return result;
11922
12137
  }
11923
12138
  }
11924
- var CivetOption$0 = $TR($EXPECT($R53, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12139
+ var CivetOption$0 = $TR($EXPECT($R51, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11925
12140
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
11926
12141
  if (l)
11927
12142
  return l.toUpperCase();
@@ -11953,7 +12168,7 @@ ${input.slice(result.pos)}
11953
12168
  return result;
11954
12169
  }
11955
12170
  }
11956
- var UnknownPrologue$0 = $S($R$0($EXPECT($R51, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
12171
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R49, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
11957
12172
  function UnknownPrologue(state) {
11958
12173
  if (state.events) {
11959
12174
  const result = state.events.enter?.("UnknownPrologue", state);
@@ -12011,7 +12226,7 @@ ${input.slice(result.pos)}
12011
12226
  return result;
12012
12227
  }
12013
12228
  }
12014
- var EOL$0 = $TR($EXPECT($R54, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12229
+ var EOL$0 = $TR($EXPECT($R52, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12015
12230
  return { $loc, token: $0 };
12016
12231
  });
12017
12232
  function EOL(state) {
@@ -12638,6 +12853,7 @@ ${input.slice(result.pos)}
12638
12853
  }
12639
12854
  module2.config = parse2.config = {
12640
12855
  autoVar: false,
12856
+ autoLet: false,
12641
12857
  coffeeBinaryExistential: false,
12642
12858
  coffeeBooleans: false,
12643
12859
  coffeeClasses: false,
@@ -12762,6 +12978,55 @@ ${input.slice(result.pos)}
12762
12978
  Object.assign(module2.config, directive.config);
12763
12979
  }
12764
12980
  });
12981
+ module2.processUnaryExpression = (pre, exp, post) => {
12982
+ if (post?.token === "?") {
12983
+ post = {
12984
+ $loc: post.$loc,
12985
+ token: " != null"
12986
+ };
12987
+ switch (exp.type) {
12988
+ case "Identifier":
12989
+ case "Literal":
12990
+ return {
12991
+ ...exp,
12992
+ children: [...pre, ...exp.children, post]
12993
+ };
12994
+ default:
12995
+ return {
12996
+ type: "ParenthesizedExpression",
12997
+ children: ["(", ...pre, "(", exp, ")", post, ")"]
12998
+ };
12999
+ }
13000
+ }
13001
+ if (exp.type === "Literal") {
13002
+ if (pre.length === 1 && pre[0].token === "-") {
13003
+ const children = [pre[0], ...exp.children];
13004
+ if (post)
13005
+ exp.children.push(post);
13006
+ return {
13007
+ type: "Literal",
13008
+ children,
13009
+ raw: `-${exp.raw}`
13010
+ };
13011
+ }
13012
+ }
13013
+ if (exp.children) {
13014
+ const children = [...pre, ...exp.children];
13015
+ if (post)
13016
+ children.push(post);
13017
+ return Object.assign({}, exp, { children });
13018
+ } else if (Array.isArray(exp)) {
13019
+ const children = [...pre, ...exp];
13020
+ if (post)
13021
+ children.push(post);
13022
+ return { children };
13023
+ } else {
13024
+ const children = [...pre, exp];
13025
+ if (post)
13026
+ children.push(post);
13027
+ return { children };
13028
+ }
13029
+ };
12765
13030
  module2.expressionizeIfClause = function(clause, b, e) {
12766
13031
  const children = clause.children.slice(1);
12767
13032
  children.push("?", b);
@@ -12995,6 +13260,12 @@ ${input.slice(result.pos)}
12995
13260
  if (Array.isArray(node))
12996
13261
  return node.every(module2.isWhitespaceOrEmpty);
12997
13262
  };
13263
+ module2.isTemplateLiteral = function(node) {
13264
+ let s = node;
13265
+ while (s && s[0] && !s.token)
13266
+ s = s[0];
13267
+ return s.token?.startsWith?.("`");
13268
+ };
12998
13269
  module2.processBinaryOpExpression = function($02) {
12999
13270
  const expandedOps = module2.expandChainedComparisons($02);
13000
13271
  let i = 2;
@@ -13420,6 +13691,9 @@ ${input.slice(result.pos)}
13420
13691
  if (module2.config.autoVar) {
13421
13692
  createVarDecs(statements, []);
13422
13693
  }
13694
+ if (module2.config.autoLet) {
13695
+ createLetDecs(statements, []);
13696
+ }
13423
13697
  populateRefs(statements);
13424
13698
  adjustAtBindings(statements);
13425
13699
  };
@@ -13518,6 +13792,52 @@ ${input.slice(result.pos)}
13518
13792
  statements.unshift([indent, "var ", varIds.join(", "), "\n"]);
13519
13793
  }
13520
13794
  }
13795
+ function createLetDecs(statements, scopes) {
13796
+ function hasDec(name) {
13797
+ return scopes.some((s) => s.has(name));
13798
+ }
13799
+ function insertBeforeAssignment(assignment, content) {
13800
+ if (assignment.children && assignment.children.length) {
13801
+ let indent = assignment.children[0][0][0];
13802
+ if (Array.isArray(indent))
13803
+ indent = indent[indent.length - 1];
13804
+ assignment.children.unshift([indent, ...content]);
13805
+ }
13806
+ }
13807
+ let currentScope = /* @__PURE__ */ new Set();
13808
+ scopes.push(currentScope);
13809
+ const fnNodes = gatherNodes(statements, (s) => s.type === "FunctionExpression");
13810
+ const forNodes = gatherNodes(statements, (s) => s.type === "ForStatement");
13811
+ const nodes = gatherNodes(statements, (s) => s.type === "BlockStatement" || s.type === "AssignmentExpression");
13812
+ for (const node of nodes) {
13813
+ if (node.type == "AssignmentExpression") {
13814
+ let undeclaredIdentifiers = node.names.filter((name) => !hasDec(name));
13815
+ if (node.children.length)
13816
+ createLetDecs(node.children, scopes);
13817
+ undeclaredIdentifiers.forEach((name) => currentScope.add(name));
13818
+ if (node.names.length === undeclaredIdentifiers.length) {
13819
+ insertBeforeAssignment(node, ["let "]);
13820
+ } else if (undeclaredIdentifiers.length > 0) {
13821
+ insertBeforeAssignment(node, ["let ", undeclaredIdentifiers.join(", "), "\n"]);
13822
+ }
13823
+ } else {
13824
+ let block = node;
13825
+ let fnNode = fnNodes.find((fnNode2) => fnNode2.block === block);
13826
+ let forNode = forNodes.find((forNode2) => forNode2.block === block);
13827
+ if (fnNode != null) {
13828
+ scopes.push(new Set(fnNode.parameters.names));
13829
+ createLetDecs(block.expressions, scopes);
13830
+ scopes.pop();
13831
+ } else if (forNode != null) {
13832
+ scopes.push(new Set(forNode.declaration.names));
13833
+ createLetDecs(block.expressions, scopes);
13834
+ scopes.pop();
13835
+ } else
13836
+ createLetDecs(block.expressions, scopes);
13837
+ }
13838
+ }
13839
+ scopes.pop();
13840
+ }
13521
13841
  function gatherBindingCode(statements) {
13522
13842
  const thisAssignments = [];
13523
13843
  const splices = [];
@@ -13557,7 +13877,7 @@ ${input.slice(result.pos)}
13557
13877
  return result;
13558
13878
  }
13559
13879
  }
13560
- var Indent$0 = $TR($EXPECT($R55, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13880
+ var Indent$0 = $TR($EXPECT($R53, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13561
13881
  let level;
13562
13882
  if (module2.config.tab) {
13563
13883
  const tabs = $0.match(/\t/g);