@danielx/civet 0.4.27 → 0.4.29

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
@@ -5,6 +5,85 @@ var Civet = (() => {
5
5
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
6
6
  };
7
7
 
8
+ // source/generate.coffee
9
+ var require_generate = __commonJS({
10
+ "source/generate.coffee"(exports, module) {
11
+ "civet coffeeCompat";
12
+ var gen;
13
+ var prune;
14
+ gen = function(node, options) {
15
+ var $loc, token;
16
+ if (node === null || node === void 0) {
17
+ return "";
18
+ }
19
+ if (typeof node === "string") {
20
+ if (options != null) {
21
+ if (typeof options.updateSourceMap === "function") {
22
+ options.updateSourceMap(node);
23
+ }
24
+ }
25
+ return node;
26
+ }
27
+ if (Array.isArray(node)) {
28
+ return node.map(function(child) {
29
+ return gen(child, options);
30
+ }).join("");
31
+ }
32
+ if (typeof node === "object") {
33
+ if (options.js && node.ts) {
34
+ return "";
35
+ }
36
+ if (node.$loc != null) {
37
+ ({ token, $loc } = node);
38
+ if (options != null) {
39
+ if (typeof options.updateSourceMap === "function") {
40
+ options.updateSourceMap(token, $loc.pos);
41
+ }
42
+ }
43
+ return token;
44
+ }
45
+ if (!node.children) {
46
+ debugger;
47
+ throw new Error("Unknown node", JSON.stringify(node));
48
+ }
49
+ return gen(node.children, options);
50
+ }
51
+ debugger;
52
+ throw new Error("Unknown node", JSON.stringify(node));
53
+ };
54
+ module.exports = gen;
55
+ prune = function(node) {
56
+ var a;
57
+ if (node === null || node === void 0) {
58
+ return;
59
+ }
60
+ if (node.length === 0) {
61
+ return;
62
+ }
63
+ if (Array.isArray(node)) {
64
+ a = node.map(function(n) {
65
+ return prune(n);
66
+ }).filter(function(n) {
67
+ return !!n;
68
+ });
69
+ if (a.length > 1) {
70
+ return a;
71
+ }
72
+ if (a.length === 1) {
73
+ return a[0];
74
+ }
75
+ return;
76
+ }
77
+ if (node.children != null) {
78
+ node.children = prune(node.children) || [];
79
+ return node;
80
+ }
81
+ return node;
82
+ };
83
+ gen.prune = prune;
84
+ }
85
+ });
86
+
8
87
  // source/parser.hera
9
88
  var require_parser = __commonJS({
10
89
  "source/parser.hera"(exports, module) {
@@ -758,6 +837,7 @@ ${input.slice(result.pos)}
758
837
  JSXAttributeInitializer,
759
838
  JSXAttributeValue,
760
839
  JSXChildren,
840
+ JSXNestedChildren,
761
841
  JSXChild,
762
842
  JSXText,
763
843
  JSXChildExpression,
@@ -1004,57 +1084,58 @@ ${input.slice(result.pos)}
1004
1084
  var $R1 = $R(new RegExp("[&]", "suy"));
1005
1085
  var $R2 = $R(new RegExp("[!~+-]+", "suy"));
1006
1086
  var $R3 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
1007
- var $R4 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
1008
- var $R5 = $R(new RegExp("(?=[\\s\\)])", "suy"));
1009
- var $R6 = $R(new RegExp('[^;"\\s]+', "suy"));
1010
- var $R7 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
1011
- var $R8 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
1012
- var $R9 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
1013
- var $R10 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
1014
- var $R11 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
1015
- var $R12 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
1016
- var $R13 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
1017
- var $R14 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
1018
- var $R15 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
1019
- var $R16 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
1020
- var $R17 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
1021
- var $R18 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
1022
- var $R19 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
1023
- var $R20 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
1024
- var $R21 = $R(new RegExp("(?:\\\\.)", "suy"));
1025
- var $R22 = $R(new RegExp("[\\s]+", "suy"));
1026
- var $R23 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
1027
- var $R24 = $R(new RegExp("[^\\/\\s#\\\\]+", "suy"));
1028
- var $R25 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
1029
- var $R26 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
1030
- var $R27 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
1031
- var $R28 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
1032
- var $R29 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
1033
- var $R30 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
1034
- var $R31 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
1035
- var $R32 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
1036
- var $R33 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
1037
- var $R34 = $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|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1038
- var $R35 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1039
- var $R36 = $R(new RegExp(".", "suy"));
1040
- var $R37 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
1041
- var $R38 = $R(new RegExp("###(?!#)", "suy"));
1042
- var $R39 = $R(new RegExp("[^\\r\\n]", "suy"));
1043
- var $R40 = $R(new RegExp("[ \\t]+", "suy"));
1044
- var $R41 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1045
- var $R42 = $R(new RegExp("\\s", "suy"));
1046
- var $R43 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1047
- var $R44 = $R(new RegExp('"[^"]*"', "suy"));
1048
- var $R45 = $R(new RegExp("'[^']*'", "suy"));
1049
- var $R46 = $R(new RegExp("[^{}<>]+", "suy"));
1050
- var $R47 = $R(new RegExp("[+-]?", "suy"));
1051
- var $R48 = $R(new RegExp("[+-]", "suy"));
1052
- var $R49 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1053
- var $R50 = $R(new RegExp("[\\t ]*", "suy"));
1054
- var $R51 = $R(new RegExp("[\\s]*", "suy"));
1055
- var $R52 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1056
- var $R53 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1057
- var $R54 = $R(new RegExp("[ \\t]*", "suy"));
1087
+ var $R4 = $R(new RegExp("<(?!\\p{ID_Start}|[_$])", "suy"));
1088
+ var $R5 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
1089
+ var $R6 = $R(new RegExp("(?=[\\s\\)])", "suy"));
1090
+ var $R7 = $R(new RegExp('[^;"\\s]+', "suy"));
1091
+ var $R8 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
1092
+ var $R9 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
1093
+ var $R10 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
1094
+ var $R11 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
1095
+ var $R12 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
1096
+ var $R13 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
1097
+ var $R14 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
1098
+ var $R15 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
1099
+ var $R16 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
1100
+ var $R17 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
1101
+ var $R18 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
1102
+ var $R19 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
1103
+ var $R20 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
1104
+ var $R21 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
1105
+ var $R22 = $R(new RegExp("(?:\\\\.)", "suy"));
1106
+ var $R23 = $R(new RegExp("[\\s]+", "suy"));
1107
+ var $R24 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
1108
+ var $R25 = $R(new RegExp("[^\\/\\s#\\\\]+", "suy"));
1109
+ var $R26 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
1110
+ var $R27 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
1111
+ var $R28 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
1112
+ var $R29 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
1113
+ var $R30 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
1114
+ var $R31 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
1115
+ var $R32 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
1116
+ var $R33 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
1117
+ var $R34 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
1118
+ var $R35 = $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|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1119
+ var $R36 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1120
+ var $R37 = $R(new RegExp(".", "suy"));
1121
+ var $R38 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
1122
+ var $R39 = $R(new RegExp("###(?!#)", "suy"));
1123
+ var $R40 = $R(new RegExp("[^\\r\\n]", "suy"));
1124
+ var $R41 = $R(new RegExp("[ \\t]+", "suy"));
1125
+ var $R42 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1126
+ var $R43 = $R(new RegExp("\\s", "suy"));
1127
+ var $R44 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1128
+ var $R45 = $R(new RegExp('"[^"]*"', "suy"));
1129
+ var $R46 = $R(new RegExp("'[^']*'", "suy"));
1130
+ var $R47 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1131
+ var $R48 = $R(new RegExp("[+-]?", "suy"));
1132
+ var $R49 = $R(new RegExp("[+-]", "suy"));
1133
+ var $R50 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1134
+ var $R51 = $R(new RegExp("[\\t ]*", "suy"));
1135
+ var $R52 = $R(new RegExp("[\\s]*", "suy"));
1136
+ var $R53 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1137
+ var $R54 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1138
+ var $R55 = $R(new RegExp("[ \\t]*", "suy"));
1058
1139
  var Program$0 = $TS($S(Reset, Init, __, $Q(TopLevelStatement), __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1059
1140
  var statements = $4;
1060
1141
  module.processProgram(statements);
@@ -4699,7 +4780,14 @@ ${input.slice(result.pos)}
4699
4780
  };
4700
4781
  });
4701
4782
  var PropertyDefinition$1 = NamedProperty;
4702
- var PropertyDefinition$2 = MethodDefinition;
4783
+ var PropertyDefinition$2 = $TS($S(__, MethodDefinition), function($skip, $loc, $0, $1, $2) {
4784
+ var ws = $1;
4785
+ var def = $2;
4786
+ return {
4787
+ ...def,
4788
+ children: [...ws, ...def.children]
4789
+ };
4790
+ });
4703
4791
  var PropertyDefinition$3 = $TS($S(__, DotDotDot, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3) {
4704
4792
  var ws = $1;
4705
4793
  var dots = $2;
@@ -5114,7 +5202,9 @@ ${input.slice(result.pos)}
5114
5202
  var BinaryOpSymbol$6 = $EXPECT($L53, fail, 'BinaryOpSymbol "<="');
5115
5203
  var BinaryOpSymbol$7 = $EXPECT($L54, fail, 'BinaryOpSymbol ">="');
5116
5204
  var BinaryOpSymbol$8 = $EXPECT($L55, fail, 'BinaryOpSymbol "<<"');
5117
- var BinaryOpSymbol$9 = $EXPECT($L5, fail, 'BinaryOpSymbol "<"');
5205
+ var BinaryOpSymbol$9 = $TR($EXPECT($R4, fail, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5206
+ return "<";
5207
+ });
5118
5208
  var BinaryOpSymbol$10 = $EXPECT($L56, fail, 'BinaryOpSymbol ">>>"');
5119
5209
  var BinaryOpSymbol$11 = $EXPECT($L57, fail, 'BinaryOpSymbol ">>"');
5120
5210
  var BinaryOpSymbol$12 = $EXPECT($L25, fail, 'BinaryOpSymbol ">"');
@@ -5208,7 +5298,7 @@ ${input.slice(result.pos)}
5208
5298
  return result;
5209
5299
  }
5210
5300
  }
5211
- var UnaryOp$0 = $TR($EXPECT($R4, fail, "UnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5301
+ var UnaryOp$0 = $TR($EXPECT($R5, fail, "UnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5212
5302
  return { $loc, token: $0 };
5213
5303
  });
5214
5304
  var UnaryOp$1 = $S($C(Await, Delete, Void, Typeof), __);
@@ -6286,7 +6376,7 @@ ${input.slice(result.pos)}
6286
6376
  names: binding.names
6287
6377
  };
6288
6378
  });
6289
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R5, fail, "ForDeclaration /(?=[\\s\\)])/")), function($skip, $loc, $0, $1, $2, $3) {
6379
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R6, fail, "ForDeclaration /(?=[\\s\\)])/")), function($skip, $loc, $0, $1, $2, $3) {
6290
6380
  var c = $1;
6291
6381
  var binding = $2;
6292
6382
  return {
@@ -6517,10 +6607,15 @@ ${input.slice(result.pos)}
6517
6607
  var expressions = value[2];
6518
6608
  return { "type": "CaseClause", "cases": cases, "expressions": expressions, "children": value };
6519
6609
  });
6520
- var CaseClause$1 = $TS($S(When, CaseExpressionList, InsertOpenBrace, $C(ThenClause, NestedBlockStatements), InsertBreak, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
6610
+ 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) {
6521
6611
  var cases = $2;
6522
6612
  var expressions = $4;
6523
6613
  var b = $5;
6614
+ let children = $0;
6615
+ if (!expressions) {
6616
+ expressions = [];
6617
+ children = children.map((c, i) => i === 3 ? expressions : c);
6618
+ }
6524
6619
  if (expressions.expressions) {
6525
6620
  expressions = expressions.expressions;
6526
6621
  }
@@ -6529,7 +6624,7 @@ ${input.slice(result.pos)}
6529
6624
  cases,
6530
6625
  expressions,
6531
6626
  break: b,
6532
- children: $0
6627
+ children
6533
6628
  };
6534
6629
  });
6535
6630
  var CaseClause$2 = $TS($S(Default, ImpliedColon, $C(NestedBlockStatements, NoExpressions)), function($skip, $loc, $0, $1, $2, $3) {
@@ -6935,9 +7030,10 @@ ${input.slice(result.pos)}
6935
7030
  var MaybeNestedExpression$0 = $TS($S($N(EOS), ExtendedExpression), function($skip, $loc, $0, $1, $2) {
6936
7031
  return $2;
6937
7032
  });
6938
- var MaybeNestedExpression$1 = $T($S($Y(EOS), ObjectLiteral), function(value) {
6939
- return value[1];
7033
+ var MaybeNestedExpression$1 = $TS($S($Y(EOS), ObjectLiteral), function($skip, $loc, $0, $1, $2) {
7034
+ return $2;
6940
7035
  });
7036
+ var MaybeNestedExpression$2 = $S($Y(EOS), InsertSpace, InsertOpenParen, PushIndent, Nested, ExtendedExpression, PopIndent, InsertNewline, InsertIndent, InsertCloseParen);
6941
7037
  function MaybeNestedExpression(state) {
6942
7038
  if (state.events) {
6943
7039
  const result = state.events.enter?.("MaybeNestedExpression", state);
@@ -6945,12 +7041,12 @@ ${input.slice(result.pos)}
6945
7041
  return result.cache;
6946
7042
  }
6947
7043
  if (state.tokenize) {
6948
- const result = $TOKEN("MaybeNestedExpression", state, MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state));
7044
+ const result = $TOKEN("MaybeNestedExpression", state, MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state) || MaybeNestedExpression$2(state));
6949
7045
  if (state.events)
6950
7046
  state.events.exit?.("MaybeNestedExpression", state, result);
6951
7047
  return result;
6952
7048
  } else {
6953
- const result = MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
7049
+ const result = MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state) || MaybeNestedExpression$2(state);
6954
7050
  if (state.events)
6955
7051
  state.events.exit?.("MaybeNestedExpression", state, result);
6956
7052
  return result;
@@ -7215,7 +7311,7 @@ ${input.slice(result.pos)}
7215
7311
  return result;
7216
7312
  }
7217
7313
  }
7218
- var UnquotedSpecifier$0 = $TV($EXPECT($R6, fail, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
7314
+ var UnquotedSpecifier$0 = $TV($EXPECT($R7, fail, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
7219
7315
  var spec = $0;
7220
7316
  return { $loc, token: `"${spec}"` };
7221
7317
  });
@@ -7707,7 +7803,7 @@ ${input.slice(result.pos)}
7707
7803
  return result;
7708
7804
  }
7709
7805
  }
7710
- var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R7, fail, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
7806
+ var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R8, fail, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
7711
7807
  function DecimalBigIntegerLiteral(state) {
7712
7808
  if (state.events) {
7713
7809
  const result = state.events.enter?.("DecimalBigIntegerLiteral", state);
@@ -7726,11 +7822,11 @@ ${input.slice(result.pos)}
7726
7822
  return result;
7727
7823
  }
7728
7824
  }
7729
- var DecimalLiteral$0 = $TV($TEXT($EXPECT($R8, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
7825
+ var DecimalLiteral$0 = $TV($TEXT($EXPECT($R9, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
7730
7826
  return $1 + ".";
7731
7827
  });
7732
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R9, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
7733
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R10, fail, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
7828
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R10, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
7829
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R11, fail, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
7734
7830
  function DecimalLiteral(state) {
7735
7831
  if (state.events) {
7736
7832
  const result = state.events.enter?.("DecimalLiteral", state);
@@ -7749,7 +7845,7 @@ ${input.slice(result.pos)}
7749
7845
  return result;
7750
7846
  }
7751
7847
  }
7752
- var ExponentPart$0 = $R$0($EXPECT($R11, fail, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
7848
+ var ExponentPart$0 = $R$0($EXPECT($R12, fail, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
7753
7849
  function ExponentPart(state) {
7754
7850
  if (state.events) {
7755
7851
  const result = state.events.enter?.("ExponentPart", state);
@@ -7768,7 +7864,7 @@ ${input.slice(result.pos)}
7768
7864
  return result;
7769
7865
  }
7770
7866
  }
7771
- var BinaryIntegerLiteral$0 = $R$0($EXPECT($R12, fail, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
7867
+ var BinaryIntegerLiteral$0 = $R$0($EXPECT($R13, fail, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
7772
7868
  function BinaryIntegerLiteral(state) {
7773
7869
  if (state.events) {
7774
7870
  const result = state.events.enter?.("BinaryIntegerLiteral", state);
@@ -7787,7 +7883,7 @@ ${input.slice(result.pos)}
7787
7883
  return result;
7788
7884
  }
7789
7885
  }
7790
- var OctalIntegerLiteral$0 = $R$0($EXPECT($R13, fail, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
7886
+ var OctalIntegerLiteral$0 = $R$0($EXPECT($R14, fail, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
7791
7887
  function OctalIntegerLiteral(state) {
7792
7888
  if (state.events) {
7793
7889
  const result = state.events.enter?.("OctalIntegerLiteral", state);
@@ -7806,7 +7902,7 @@ ${input.slice(result.pos)}
7806
7902
  return result;
7807
7903
  }
7808
7904
  }
7809
- var HexLiteral$0 = $R$0($EXPECT($R14, fail, "HexLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
7905
+ var HexLiteral$0 = $R$0($EXPECT($R15, fail, "HexLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
7810
7906
  function HexLiteral(state) {
7811
7907
  if (state.events) {
7812
7908
  const result = state.events.enter?.("HexLiteral", state);
@@ -7886,7 +7982,7 @@ ${input.slice(result.pos)}
7886
7982
  return result;
7887
7983
  }
7888
7984
  }
7889
- var DoubleStringCharacters$0 = $TR($EXPECT($R15, fail, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7985
+ var DoubleStringCharacters$0 = $TR($EXPECT($R16, fail, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7890
7986
  return { $loc, token: $0 };
7891
7987
  });
7892
7988
  function DoubleStringCharacters(state) {
@@ -7907,7 +8003,7 @@ ${input.slice(result.pos)}
7907
8003
  return result;
7908
8004
  }
7909
8005
  }
7910
- var SingleStringCharacters$0 = $TR($EXPECT($R16, fail, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8006
+ var SingleStringCharacters$0 = $TR($EXPECT($R17, fail, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7911
8007
  return { $loc, token: $0 };
7912
8008
  });
7913
8009
  function SingleStringCharacters(state) {
@@ -7928,7 +8024,7 @@ ${input.slice(result.pos)}
7928
8024
  return result;
7929
8025
  }
7930
8026
  }
7931
- var TripleDoubleStringCharacters$0 = $TR($EXPECT($R17, fail, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8027
+ var TripleDoubleStringCharacters$0 = $TR($EXPECT($R18, fail, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7932
8028
  return { $loc, token: $0 };
7933
8029
  });
7934
8030
  function TripleDoubleStringCharacters(state) {
@@ -7949,7 +8045,7 @@ ${input.slice(result.pos)}
7949
8045
  return result;
7950
8046
  }
7951
8047
  }
7952
- var TripleSingleStringCharacters$0 = $TR($EXPECT($R18, fail, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8048
+ var TripleSingleStringCharacters$0 = $TR($EXPECT($R19, fail, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7953
8049
  return { $loc, token: $0 };
7954
8050
  });
7955
8051
  function TripleSingleStringCharacters(state) {
@@ -8027,7 +8123,7 @@ ${input.slice(result.pos)}
8027
8123
  return result;
8028
8124
  }
8029
8125
  }
8030
- var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R19, fail, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8126
+ var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R20, fail, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8031
8127
  return { $loc, token: $0 };
8032
8128
  });
8033
8129
  function CoffeeDoubleQuotedStringCharacters(state) {
@@ -8091,7 +8187,7 @@ ${input.slice(result.pos)}
8091
8187
  return result;
8092
8188
  }
8093
8189
  }
8094
- var RegularExpressionClassCharacters$0 = $TR($EXPECT($R20, fail, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8190
+ var RegularExpressionClassCharacters$0 = $TR($EXPECT($R21, fail, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8095
8191
  return { $loc, token: $0 };
8096
8192
  });
8097
8193
  function RegularExpressionClassCharacters(state) {
@@ -8186,7 +8282,7 @@ ${input.slice(result.pos)}
8186
8282
  var HeregexPart$2 = $T($S(TemplateSubstitution), function(value) {
8187
8283
  return { "type": "Substitution", "children": value[0] };
8188
8284
  });
8189
- var HeregexPart$3 = $TR($EXPECT($R21, fail, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8285
+ var HeregexPart$3 = $TR($EXPECT($R22, fail, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8190
8286
  let token = $0;
8191
8287
  switch ($0[1]) {
8192
8288
  case "\n":
@@ -8204,13 +8300,13 @@ ${input.slice(result.pos)}
8204
8300
  var HeregexPart$4 = $TS($S(HeregexComment), function($skip, $loc, $0, $1) {
8205
8301
  return { $loc, token: "" };
8206
8302
  });
8207
- var HeregexPart$5 = $TR($EXPECT($R22, fail, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8303
+ var HeregexPart$5 = $TR($EXPECT($R23, fail, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8208
8304
  return { $loc, token: "" };
8209
8305
  });
8210
- var HeregexPart$6 = $TR($EXPECT($R23, fail, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8306
+ var HeregexPart$6 = $TR($EXPECT($R24, fail, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8211
8307
  return { $loc, token: "\\/" };
8212
8308
  });
8213
- var HeregexPart$7 = $TR($EXPECT($R24, fail, "HeregexPart /[^\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8309
+ var HeregexPart$7 = $TR($EXPECT($R25, fail, "HeregexPart /[^\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8214
8310
  return { $loc, token: $0 };
8215
8311
  });
8216
8312
  function HeregexPart(state) {
@@ -8251,7 +8347,7 @@ ${input.slice(result.pos)}
8251
8347
  return result;
8252
8348
  }
8253
8349
  }
8254
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R25, fail, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpCharacter));
8350
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R26, fail, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpCharacter));
8255
8351
  function RegularExpressionBody(state) {
8256
8352
  if (state.events) {
8257
8353
  const result = state.events.enter?.("RegularExpressionBody", state);
@@ -8270,7 +8366,7 @@ ${input.slice(result.pos)}
8270
8366
  return result;
8271
8367
  }
8272
8368
  }
8273
- var RegExpCharacter$0 = $R$0($EXPECT($R26, fail, "RegExpCharacter /(?:\\\\.|[^\\/\\r\\n])+/"));
8369
+ var RegExpCharacter$0 = $R$0($EXPECT($R27, fail, "RegExpCharacter /(?:\\\\.|[^\\/\\r\\n])+/"));
8274
8370
  function RegExpCharacter(state) {
8275
8371
  if (state.events) {
8276
8372
  const result = state.events.enter?.("RegExpCharacter", state);
@@ -8289,7 +8385,7 @@ ${input.slice(result.pos)}
8289
8385
  return result;
8290
8386
  }
8291
8387
  }
8292
- var RegularExpressionFlags$0 = $R$0($EXPECT($R27, fail, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
8388
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R28, fail, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
8293
8389
  function RegularExpressionFlags(state) {
8294
8390
  if (state.events) {
8295
8391
  const result = state.events.enter?.("RegularExpressionFlags", state);
@@ -8349,7 +8445,7 @@ ${input.slice(result.pos)}
8349
8445
  return result;
8350
8446
  }
8351
8447
  }
8352
- var TemplateCharacters$0 = $TR($EXPECT($R28, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8448
+ var TemplateCharacters$0 = $TR($EXPECT($R29, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8353
8449
  return { $loc, token: $0 };
8354
8450
  });
8355
8451
  function TemplateCharacters(state) {
@@ -8370,7 +8466,7 @@ ${input.slice(result.pos)}
8370
8466
  return result;
8371
8467
  }
8372
8468
  }
8373
- var TemplateBlockCharacters$0 = $TR($EXPECT($R29, fail, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8469
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R30, fail, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8374
8470
  return { $loc, token: $0 };
8375
8471
  });
8376
8472
  function TemplateBlockCharacters(state) {
@@ -8391,11 +8487,11 @@ ${input.slice(result.pos)}
8391
8487
  return result;
8392
8488
  }
8393
8489
  }
8394
- var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R30, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
8395
- var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R31, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
8396
- var ReservedWord$2 = $S(CoffeeForLoopsEnabled, $R$0($EXPECT($R32, fail, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")));
8397
- var ReservedWord$3 = $S(CoffeeOfEnabled, $R$0($EXPECT($R33, fail, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")));
8398
- var ReservedWord$4 = $R$0($EXPECT($R34, 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|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
8490
+ var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R31, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
8491
+ var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R32, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
8492
+ var ReservedWord$2 = $S(CoffeeForLoopsEnabled, $R$0($EXPECT($R33, fail, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")));
8493
+ var ReservedWord$3 = $S(CoffeeOfEnabled, $R$0($EXPECT($R34, fail, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")));
8494
+ var ReservedWord$4 = $R$0($EXPECT($R35, 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|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
8399
8495
  function ReservedWord(state) {
8400
8496
  if (state.events) {
8401
8497
  const result = state.events.enter?.("ReservedWord", state);
@@ -8454,7 +8550,7 @@ ${input.slice(result.pos)}
8454
8550
  return result;
8455
8551
  }
8456
8552
  }
8457
- var JSSingleLineComment$0 = $TR($EXPECT($R35, fail, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8553
+ var JSSingleLineComment$0 = $TR($EXPECT($R36, fail, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8458
8554
  return { $loc, token: $0 };
8459
8555
  });
8460
8556
  function JSSingleLineComment(state) {
@@ -8495,7 +8591,7 @@ ${input.slice(result.pos)}
8495
8591
  return result;
8496
8592
  }
8497
8593
  }
8498
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L86, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L87, fail, 'JSMultiLineComment "*/"')), $EXPECT($R36, fail, "JSMultiLineComment /./"))), $EXPECT($L87, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
8594
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L86, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L87, fail, 'JSMultiLineComment "*/"')), $EXPECT($R37, fail, "JSMultiLineComment /./"))), $EXPECT($L87, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
8499
8595
  return { $loc, token: $1 };
8500
8596
  });
8501
8597
  function JSMultiLineComment(state) {
@@ -8516,7 +8612,7 @@ ${input.slice(result.pos)}
8516
8612
  return result;
8517
8613
  }
8518
8614
  }
8519
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R37, fail, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8615
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R38, fail, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8520
8616
  return { $loc, token: `//${$1}` };
8521
8617
  });
8522
8618
  function CoffeeSingleLineComment(state) {
@@ -8537,7 +8633,7 @@ ${input.slice(result.pos)}
8537
8633
  return result;
8538
8634
  }
8539
8635
  }
8540
- var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($Q($S($N($C(CoffeeHereCommentStart, $EXPECT($L87, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R36, fail, "CoffeeMultiLineComment /./")))), CoffeeHereCommentStart), function($skip, $loc, $0, $1, $2, $3) {
8636
+ var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($Q($S($N($C(CoffeeHereCommentStart, $EXPECT($L87, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R37, fail, "CoffeeMultiLineComment /./")))), CoffeeHereCommentStart), function($skip, $loc, $0, $1, $2, $3) {
8541
8637
  return { $loc, token: `/*${$2}*/` };
8542
8638
  });
8543
8639
  function CoffeeMultiLineComment(state) {
@@ -8558,7 +8654,7 @@ ${input.slice(result.pos)}
8558
8654
  return result;
8559
8655
  }
8560
8656
  }
8561
- var CoffeeHereCommentStart$0 = $R$0($EXPECT($R38, fail, "CoffeeHereCommentStart /###(?!#)/"));
8657
+ var CoffeeHereCommentStart$0 = $R$0($EXPECT($R39, fail, "CoffeeHereCommentStart /###(?!#)/"));
8562
8658
  function CoffeeHereCommentStart(state) {
8563
8659
  if (state.events) {
8564
8660
  const result = state.events.enter?.("CoffeeHereCommentStart", state);
@@ -8577,7 +8673,7 @@ ${input.slice(result.pos)}
8577
8673
  return result;
8578
8674
  }
8579
8675
  }
8580
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L86, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L87, fail, 'InlineComment "*/"')), $EXPECT($R39, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L87, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
8676
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L86, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L87, fail, 'InlineComment "*/"')), $EXPECT($R40, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L87, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
8581
8677
  return { $loc, token: $1 };
8582
8678
  });
8583
8679
  function InlineComment(state) {
@@ -8657,7 +8753,7 @@ ${input.slice(result.pos)}
8657
8753
  return result;
8658
8754
  }
8659
8755
  }
8660
- var NonNewlineWhitespace$0 = $TR($EXPECT($R40, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8756
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R41, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8661
8757
  return { $loc, token: $0 };
8662
8758
  });
8663
8759
  var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L88, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
@@ -8700,7 +8796,7 @@ ${input.slice(result.pos)}
8700
8796
  return result;
8701
8797
  }
8702
8798
  }
8703
- var Whitespace$0 = $TR($EXPECT($R22, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8799
+ var Whitespace$0 = $TR($EXPECT($R23, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8704
8800
  return { $loc, token: $0 };
8705
8801
  });
8706
8802
  function Whitespace(state) {
@@ -8766,7 +8862,7 @@ ${input.slice(result.pos)}
8766
8862
  return result;
8767
8863
  }
8768
8864
  }
8769
- var NonIdContinue$0 = $R$0($EXPECT($R41, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
8865
+ var NonIdContinue$0 = $R$0($EXPECT($R42, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
8770
8866
  function NonIdContinue(state) {
8771
8867
  if (state.events) {
8772
8868
  const result = state.events.enter?.("NonIdContinue", state);
@@ -9499,7 +9595,7 @@ ${input.slice(result.pos)}
9499
9595
  return result;
9500
9596
  }
9501
9597
  }
9502
- var Import$0 = $TS($S($EXPECT($L10, fail, 'Import "import"'), $Y($EXPECT($R42, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
9598
+ var Import$0 = $TS($S($EXPECT($L10, fail, 'Import "import"'), $Y($EXPECT($R43, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
9503
9599
  return { $loc, token: $1 };
9504
9600
  });
9505
9601
  function Import(state) {
@@ -10238,12 +10334,24 @@ ${input.slice(result.pos)}
10238
10334
  }
10239
10335
  }
10240
10336
  var JSXElement$0 = JSXSelfClosingElement;
10241
- var JSXElement$1 = $TS($S(JSXOpeningElement, $Q(JSXChildren), __, JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
10242
- if ($1[1] !== $4[2]) {
10243
- throw new Error(`mismatched closing tags at ${JSON.stringify($loc)}`);
10244
- }
10337
+ var JSXElement$1 = $TS($S(JSXOpeningElement, $E(JSXChildren), __, JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
10338
+ if ($1[1] !== $4[2])
10339
+ return $skip;
10245
10340
  return $0;
10246
10341
  });
10342
+ var JSXElement$2 = $TS($S(JSXOpeningElement, $Q($C(_, JSXChild)), JSXNestedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
10343
+ var open = $1;
10344
+ var c1 = $2;
10345
+ var c2 = $3;
10346
+ if (c1.length || c2.length) {
10347
+ return [...$0, ["</", open[1], ">"]];
10348
+ } else {
10349
+ return [open.slice(0, -1), " />"];
10350
+ }
10351
+ });
10352
+ var JSXElement$3 = $TS($S(JSXOpeningElement), function($skip, $loc, $0, $1) {
10353
+ throw new Error(`could not parse JSX element "${require_generate()($0)}" at pos ${$loc.pos}`);
10354
+ });
10247
10355
  function JSXElement(state) {
10248
10356
  if (state.events) {
10249
10357
  const result = state.events.enter?.("JSXElement", state);
@@ -10251,12 +10359,12 @@ ${input.slice(result.pos)}
10251
10359
  return result.cache;
10252
10360
  }
10253
10361
  if (state.tokenize) {
10254
- const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state));
10362
+ const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state));
10255
10363
  if (state.events)
10256
10364
  state.events.exit?.("JSXElement", state, result);
10257
10365
  return result;
10258
10366
  } else {
10259
- const result = JSXElement$0(state) || JSXElement$1(state);
10367
+ const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state);
10260
10368
  if (state.events)
10261
10369
  state.events.exit?.("JSXElement", state, result);
10262
10370
  return result;
@@ -10320,6 +10428,9 @@ ${input.slice(result.pos)}
10320
10428
  }
10321
10429
  }
10322
10430
  var JSXFragment$0 = $S($EXPECT($L145, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L146, fail, 'JSXFragment "</>"'));
10431
+ var JSXFragment$1 = $TS($S($EXPECT($L145, fail, 'JSXFragment "<>"'), JSXNestedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
10432
+ return [...$0, "</>"];
10433
+ });
10323
10434
  function JSXFragment(state) {
10324
10435
  if (state.events) {
10325
10436
  const result = state.events.enter?.("JSXFragment", state);
@@ -10327,12 +10438,12 @@ ${input.slice(result.pos)}
10327
10438
  return result.cache;
10328
10439
  }
10329
10440
  if (state.tokenize) {
10330
- const result = $TOKEN("JSXFragment", state, JSXFragment$0(state));
10441
+ const result = $TOKEN("JSXFragment", state, JSXFragment$0(state) || JSXFragment$1(state));
10331
10442
  if (state.events)
10332
10443
  state.events.exit?.("JSXFragment", state, result);
10333
10444
  return result;
10334
10445
  } else {
10335
- const result = JSXFragment$0(state);
10446
+ const result = JSXFragment$0(state) || JSXFragment$1(state);
10336
10447
  if (state.events)
10337
10448
  state.events.exit?.("JSXFragment", state, result);
10338
10449
  return result;
@@ -10357,7 +10468,7 @@ ${input.slice(result.pos)}
10357
10468
  return result;
10358
10469
  }
10359
10470
  }
10360
- var JSXIdentifierName$0 = $R$0($EXPECT($R43, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
10471
+ var JSXIdentifierName$0 = $R$0($EXPECT($R44, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
10361
10472
  function JSXIdentifierName(state) {
10362
10473
  if (state.events) {
10363
10474
  const result = state.events.enter?.("JSXIdentifierName", state);
@@ -10453,8 +10564,8 @@ ${input.slice(result.pos)}
10453
10564
  return result;
10454
10565
  }
10455
10566
  }
10456
- var JSXAttributeValue$0 = $R$0($EXPECT($R44, fail, 'JSXAttributeValue /"[^"]*"/'));
10457
- var JSXAttributeValue$1 = $R$0($EXPECT($R45, fail, "JSXAttributeValue /'[^']*'/"));
10567
+ var JSXAttributeValue$0 = $R$0($EXPECT($R45, fail, 'JSXAttributeValue /"[^"]*"/'));
10568
+ var JSXAttributeValue$1 = $R$0($EXPECT($R46, fail, "JSXAttributeValue /'[^']*'/"));
10458
10569
  var JSXAttributeValue$2 = $S(OpenBrace, ExtendedExpression, __, CloseBrace);
10459
10570
  var JSXAttributeValue$3 = JSXElement;
10460
10571
  var JSXAttributeValue$4 = JSXFragment;
@@ -10495,6 +10606,32 @@ ${input.slice(result.pos)}
10495
10606
  return result;
10496
10607
  }
10497
10608
  }
10609
+ var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(Nested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
10610
+ if ($2.length)
10611
+ return $2;
10612
+ return $skip;
10613
+ });
10614
+ var JSXNestedChildren$1 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
10615
+ return [];
10616
+ });
10617
+ function JSXNestedChildren(state) {
10618
+ if (state.events) {
10619
+ const result = state.events.enter?.("JSXNestedChildren", state);
10620
+ if (result)
10621
+ return result.cache;
10622
+ }
10623
+ if (state.tokenize) {
10624
+ const result = $TOKEN("JSXNestedChildren", state, JSXNestedChildren$0(state) || JSXNestedChildren$1(state));
10625
+ if (state.events)
10626
+ state.events.exit?.("JSXNestedChildren", state, result);
10627
+ return result;
10628
+ } else {
10629
+ const result = JSXNestedChildren$0(state) || JSXNestedChildren$1(state);
10630
+ if (state.events)
10631
+ state.events.exit?.("JSXNestedChildren", state, result);
10632
+ return result;
10633
+ }
10634
+ }
10498
10635
  var JSXChild$0 = JSXText;
10499
10636
  var JSXChild$1 = JSXElement;
10500
10637
  var JSXChild$2 = JSXFragment;
@@ -10517,7 +10654,7 @@ ${input.slice(result.pos)}
10517
10654
  return result;
10518
10655
  }
10519
10656
  }
10520
- var JSXText$0 = $R$0($EXPECT($R46, fail, "JSXText /[^{}<>]+/"));
10657
+ var JSXText$0 = $R$0($EXPECT($R47, fail, "JSXText /[^{}<>\\r\\n]+/"));
10521
10658
  function JSXText(state) {
10522
10659
  if (state.events) {
10523
10660
  const result = state.events.enter?.("JSXText", state);
@@ -10845,7 +10982,7 @@ ${input.slice(result.pos)}
10845
10982
  return result;
10846
10983
  }
10847
10984
  }
10848
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R47, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L151, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R48, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
10985
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R48, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L151, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R49, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
10849
10986
  function TypeIndexSignature(state) {
10850
10987
  if (state.events) {
10851
10988
  const result = state.events.enter?.("TypeIndexSignature", state);
@@ -11383,7 +11520,7 @@ ${input.slice(result.pos)}
11383
11520
  return result;
11384
11521
  }
11385
11522
  }
11386
- var Shebang$0 = $S($R$0($EXPECT($R49, fail, "Shebang /#![^\\r\\n]*/")), EOL);
11523
+ var Shebang$0 = $S($R$0($EXPECT($R50, fail, "Shebang /#![^\\r\\n]*/")), EOL);
11387
11524
  function Shebang(state) {
11388
11525
  if (state.events) {
11389
11526
  const result = state.events.enter?.("Shebang", state);
@@ -11402,11 +11539,11 @@ ${input.slice(result.pos)}
11402
11539
  return result;
11403
11540
  }
11404
11541
  }
11405
- var CivetPrologue$0 = $T($S($EXPECT($R50, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
11542
+ var CivetPrologue$0 = $T($S($EXPECT($R51, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
11406
11543
  var content = value[2];
11407
11544
  return content;
11408
11545
  });
11409
- var CivetPrologue$1 = $T($S($EXPECT($R50, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
11546
+ var CivetPrologue$1 = $T($S($EXPECT($R51, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
11410
11547
  var content = value[2];
11411
11548
  return content;
11412
11549
  });
@@ -11428,7 +11565,7 @@ ${input.slice(result.pos)}
11428
11565
  return result;
11429
11566
  }
11430
11567
  }
11431
- var CivetPrologueContent$0 = $TS($S($EXPECT($L156, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R51, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
11568
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L156, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R52, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
11432
11569
  var options = $2;
11433
11570
  return {
11434
11571
  type: "CivetPrologue",
@@ -11454,7 +11591,7 @@ ${input.slice(result.pos)}
11454
11591
  return result;
11455
11592
  }
11456
11593
  }
11457
- var CivetOption$0 = $TR($EXPECT($R52, 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) {
11594
+ 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) {
11458
11595
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
11459
11596
  if (l)
11460
11597
  return l.toUpperCase();
@@ -11486,7 +11623,7 @@ ${input.slice(result.pos)}
11486
11623
  return result;
11487
11624
  }
11488
11625
  }
11489
- var UnknownPrologue$0 = $S($R$0($EXPECT($R50, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
11626
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R51, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
11490
11627
  function UnknownPrologue(state) {
11491
11628
  if (state.events) {
11492
11629
  const result = state.events.enter?.("UnknownPrologue", state);
@@ -11544,7 +11681,7 @@ ${input.slice(result.pos)}
11544
11681
  return result;
11545
11682
  }
11546
11683
  }
11547
- var EOL$0 = $TR($EXPECT($R53, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11684
+ 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) {
11548
11685
  return { $loc, token: $0 };
11549
11686
  });
11550
11687
  function EOL(state) {
@@ -12127,8 +12264,7 @@ ${input.slice(result.pos)}
12127
12264
  }
12128
12265
  });
12129
12266
  }
12130
- module.verbose = false;
12131
- module.config = {
12267
+ module.config = parse.config = {
12132
12268
  autoVar: false,
12133
12269
  coffeeBinaryExistential: false,
12134
12270
  coffeeBooleans: false,
@@ -12143,7 +12279,8 @@ ${input.slice(result.pos)}
12143
12279
  coffeeNot: false,
12144
12280
  coffeeOf: false,
12145
12281
  implicitReturns: true,
12146
- tab: void 0
12282
+ tab: void 0,
12283
+ verbose: false
12147
12284
  };
12148
12285
  let indexOfRef, hasPropRef, spliceRef;
12149
12286
  const asAny = {
@@ -12422,6 +12559,10 @@ ${input.slice(result.pos)}
12422
12559
  return;
12423
12560
  case "WhenClause":
12424
12561
  node.children.splice(node.children.indexOf(node.break), 1);
12562
+ if (node.expressions.length === 0) {
12563
+ node.expressions.push("return");
12564
+ return;
12565
+ }
12425
12566
  insertReturn(node.expressions[node.expressions.length - 1]);
12426
12567
  return;
12427
12568
  case "DefaultClause":
@@ -13016,7 +13157,7 @@ ${input.slice(result.pos)}
13016
13157
  return result;
13017
13158
  }
13018
13159
  }
13019
- var Indent$0 = $TR($EXPECT($R54, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13160
+ var Indent$0 = $TR($EXPECT($R55, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13020
13161
  let level;
13021
13162
  if (module.config.tab) {
13022
13163
  const tabs = $0.match(/\t/g);
@@ -13055,6 +13196,9 @@ ${input.slice(result.pos)}
13055
13196
  if (level <= module.currentIndent.level) {
13056
13197
  return $skip;
13057
13198
  }
13199
+ if (module.config.verbose) {
13200
+ console.log("pushing indent", indent);
13201
+ }
13058
13202
  module.indentLevels.push(indent);
13059
13203
  });
13060
13204
  function TrackIndented(state) {
@@ -13149,7 +13293,7 @@ ${input.slice(result.pos)}
13149
13293
  }
13150
13294
  }
13151
13295
  var PopIndent$0 = $TV($EXPECT($L0, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
13152
- if (module.verbose) {
13296
+ if (module.config.verbose) {
13153
13297
  console.log("popping indent", module.indentLevels[module.indentLevels.length - 1], "->", module.indentLevels[module.indentLevels.length - 2]);
13154
13298
  }
13155
13299
  module.indentLevels.pop();
@@ -13177,11 +13321,11 @@ ${input.slice(result.pos)}
13177
13321
  var indent = $2;
13178
13322
  const { level } = indent;
13179
13323
  const currentIndent = module.currentIndent;
13180
- if (module.verbose) {
13324
+ if (module.config.verbose) {
13181
13325
  console.log("Indented", level, currentIndent);
13182
13326
  }
13183
13327
  if (level !== currentIndent.level) {
13184
- if (module.verbose) {
13328
+ if (module.config.verbose) {
13185
13329
  console.log("skipped nested");
13186
13330
  }
13187
13331
  return $skip;
@@ -13211,85 +13355,6 @@ ${input.slice(result.pos)}
13211
13355
  }
13212
13356
  });
13213
13357
 
13214
- // source/generate.coffee
13215
- var require_generate = __commonJS({
13216
- "source/generate.coffee"(exports, module) {
13217
- "civet coffeeCompat";
13218
- var gen;
13219
- var prune;
13220
- gen = function(node, options) {
13221
- var $loc, token;
13222
- if (node === null || node === void 0) {
13223
- return "";
13224
- }
13225
- if (typeof node === "string") {
13226
- if (options != null) {
13227
- if (typeof options.updateSourceMap === "function") {
13228
- options.updateSourceMap(node);
13229
- }
13230
- }
13231
- return node;
13232
- }
13233
- if (Array.isArray(node)) {
13234
- return node.map(function(child) {
13235
- return gen(child, options);
13236
- }).join("");
13237
- }
13238
- if (typeof node === "object") {
13239
- if (options.js && node.ts) {
13240
- return "";
13241
- }
13242
- if (node.$loc != null) {
13243
- ({ token, $loc } = node);
13244
- if (options != null) {
13245
- if (typeof options.updateSourceMap === "function") {
13246
- options.updateSourceMap(token, $loc.pos);
13247
- }
13248
- }
13249
- return token;
13250
- }
13251
- if (!node.children) {
13252
- debugger;
13253
- throw new Error("Unknown node", JSON.stringify(node));
13254
- }
13255
- return gen(node.children, options);
13256
- }
13257
- debugger;
13258
- throw new Error("Unknown node", JSON.stringify(node));
13259
- };
13260
- module.exports = gen;
13261
- prune = function(node) {
13262
- var a;
13263
- if (node === null || node === void 0) {
13264
- return;
13265
- }
13266
- if (node.length === 0) {
13267
- return;
13268
- }
13269
- if (Array.isArray(node)) {
13270
- a = node.map(function(n) {
13271
- return prune(n);
13272
- }).filter(function(n) {
13273
- return !!n;
13274
- });
13275
- if (a.length > 1) {
13276
- return a;
13277
- }
13278
- if (a.length === 1) {
13279
- return a[0];
13280
- }
13281
- return;
13282
- }
13283
- if (node.children != null) {
13284
- node.children = prune(node.children) || [];
13285
- return node;
13286
- }
13287
- return node;
13288
- };
13289
- gen.prune = prune;
13290
- }
13291
- });
13292
-
13293
13358
  // source/util.coffee
13294
13359
  var require_util = __commonJS({
13295
13360
  "source/util.coffee"(exports, module) {
@@ -13711,7 +13776,13 @@ ${"//#"} sourceMappingURL=data:application/json;base64,${base64Encode(JSON.strin
13711
13776
  case "NestedImplicitObjectLiteral":
13712
13777
  case "NestedImplicitPropertyDefinitions":
13713
13778
  case "NestedBlockStatement":
13779
+ case "NestedElement":
13780
+ case "NestedElementList":
13781
+ case "NestedBindingElement":
13782
+ case "NestedBindingElements":
13714
13783
  case "NestedInterfaceProperty":
13784
+ case "MemberExpression":
13785
+ case "PrimaryExpression":
13715
13786
  case "IndentedApplicationAllowed":
13716
13787
  case "ExpressionWithIndentedApplicationSuppressed":
13717
13788
  case "SuppressIndentedApplication":
@@ -13724,6 +13795,11 @@ ${"//#"} sourceMappingURL=data:application/json;base64,${base64Encode(JSON.strin
13724
13795
  case "CoffeeCommentEnabled":
13725
13796
  case "SingleLineComment":
13726
13797
  case "Debugger":
13798
+ case "JSXElement":
13799
+ case "JSXChild":
13800
+ case "JSXChildren":
13801
+ case "JSXFragment":
13802
+ case "JSXNestedChildren":
13727
13803
  break;
13728
13804
  default:
13729
13805
  cache = /* @__PURE__ */ new Map();
@@ -13737,6 +13813,9 @@ ${"//#"} sourceMappingURL=data:application/json;base64,${base64Encode(JSON.strin
13737
13813
  cache.set(state.pos, result);
13738
13814
  }
13739
13815
  }
13816
+ if (parse.config.verbose && result) {
13817
+ console.log(`Parsed ${JSON.stringify(state.input.slice(state.pos, result.pos))} [pos ${state.pos}-${result.pos}] as ${ruleName}`);
13818
+ }
13740
13819
  }
13741
13820
  };
13742
13821
  return events;