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