@danielx/civet 0.8.12 → 0.8.14

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/main.js CHANGED
@@ -30,9 +30,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  ));
31
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
32
 
33
- // node_modules/@danielx/hera/dist/machine.js
33
+ // node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js
34
34
  var require_machine = __commonJS({
35
- "node_modules/@danielx/hera/dist/machine.js"(exports2, module2) {
35
+ "node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js"(exports2, module2) {
36
36
  "use strict";
37
37
  var __defProp2 = Object.defineProperty;
38
38
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -1849,8 +1849,8 @@ var declareHelper = {
1849
1849
  ts(": <T>(object: T, prop: PropertyKey) => boolean"),
1850
1850
  " = ({}.constructor",
1851
1851
  asAny,
1852
- ").hasOwn;\n"
1853
- ]]);
1852
+ ").hasOwn"
1853
+ ], ";\n"]);
1854
1854
  },
1855
1855
  is(isRef) {
1856
1856
  state.prelude.push(["", [
@@ -1859,9 +1859,8 @@ var declareHelper = {
1859
1859
  isRef,
1860
1860
  ts(": { <B, A extends B> (a: A, b: B): b is A, <A, B> (a: A, b: B): a is A & B }"),
1861
1861
  " = Object.is",
1862
- asAny,
1863
- ";\n"
1864
- ]]);
1862
+ asAny
1863
+ ], ";\n"]);
1865
1864
  },
1866
1865
  /**
1867
1866
  * Array length check with type guard.
@@ -1879,8 +1878,11 @@ var declareHelper = {
1879
1878
  },
1880
1879
  rslice(rsliceRef) {
1881
1880
  const RSliceable = makeRef("RSliceable");
1881
+ state.prelude.push([
1882
+ "",
1883
+ ts(["type ", RSliceable, "<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}\n"])
1884
+ ]);
1882
1885
  state.prelude.push(["", [
1883
- ts(["type ", RSliceable, "<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}\n"]),
1884
1886
  preludeVar,
1885
1887
  rsliceRef,
1886
1888
  ts([": <R, T extends string | ", RSliceable, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceable, "<infer R> ? R : never"]),
@@ -1899,8 +1901,8 @@ var declareHelper = {
1899
1901
  " } else {\n",
1900
1902
  " return a.slice(end, start + 1).reverse()\n",
1901
1903
  " }\n",
1902
- "});\n"
1903
- ]]);
1904
+ "})"
1905
+ ], ";\n"]);
1904
1906
  },
1905
1907
  div(divRef) {
1906
1908
  state.prelude.push(["", [
@@ -1908,8 +1910,8 @@ var declareHelper = {
1908
1910
  preludeVar,
1909
1911
  divRef,
1910
1912
  ts(": (a: number, b: number) => number"),
1911
- " = (a, b) => Math.floor(a / b);\n"
1912
- ]]);
1913
+ " = (a, b) => Math.floor(a / b)"
1914
+ ], ";\n"]);
1913
1915
  },
1914
1916
  modulo(moduloRef) {
1915
1917
  state.prelude.push(["", [
@@ -1917,14 +1919,15 @@ var declareHelper = {
1917
1919
  preludeVar,
1918
1920
  moduloRef,
1919
1921
  ts(": (a: number, b: number) => number"),
1920
- " = (a, b) => (a % b + b) % b;\n"
1921
- ]]);
1922
+ " = (a, b) => (a % b + b) % b"
1923
+ ], ";\n"]);
1922
1924
  },
1923
1925
  Falsy(FalsyRef) {
1924
1926
  state.prelude.push([
1925
1927
  "",
1926
1928
  // [indent, statement]
1927
- ts(["type ", FalsyRef, " = false | 0 | '' | 0n | null | undefined;\n"])
1929
+ ts(["type ", FalsyRef, " = false | 0 | '' | 0n | null | undefined"]),
1930
+ ";\n"
1928
1931
  ]);
1929
1932
  },
1930
1933
  xor(xorRef) {
@@ -1945,9 +1948,8 @@ var declareHelper = {
1945
1948
  " extends never ? never : A))"
1946
1949
  ]),
1947
1950
  " = (a, b) => (a ? !b && a : b)",
1948
- asAny,
1949
- ";\n"
1950
- ]]);
1951
+ asAny
1952
+ ], ";\n"]);
1951
1953
  },
1952
1954
  xnor(xnorRef) {
1953
1955
  const Falsy = getHelperRef("Falsy");
@@ -1965,9 +1967,8 @@ var declareHelper = {
1965
1967
  " ? never : B))"
1966
1968
  ]),
1967
1969
  " = (a, b) => (a ? b : !b || a)",
1968
- asAny,
1969
- ";\n"
1970
- ]]);
1970
+ asAny
1971
+ ], ";\n"]);
1971
1972
  },
1972
1973
  concatAssign(ref) {
1973
1974
  state.prelude.push(["", [
@@ -1985,8 +1986,8 @@ var declareHelper = {
1985
1986
  asAny,
1986
1987
  ") : (lhs",
1987
1988
  asAny,
1988
- ").push(rhs), lhs);\n"
1989
- ]]);
1989
+ ").push(rhs), lhs)"
1990
+ ], ";\n"]);
1990
1991
  },
1991
1992
  AutoPromise(ref) {
1992
1993
  state.prelude.push([
@@ -3121,6 +3122,8 @@ function iterationDeclaration(statement) {
3121
3122
  }
3122
3123
  }
3123
3124
  })());
3125
+ } else if (statement.object) {
3126
+ declaration.children.push("={}");
3124
3127
  } else {
3125
3128
  if (decl === "const") {
3126
3129
  declaration.children.push("=[]");
@@ -3136,6 +3139,9 @@ function iterationDeclaration(statement) {
3136
3139
  }
3137
3140
  if (!block.empty) {
3138
3141
  assignResults(block, (node) => {
3142
+ if (statement.object) {
3143
+ return ["Object.assign(", resultsRef, ",", node, ")"];
3144
+ }
3139
3145
  if (!reduction) {
3140
3146
  return [resultsRef, ".push(", node, ")"];
3141
3147
  }
@@ -4694,7 +4700,7 @@ function processDeclarationCondition(condition, rootCondition, parent) {
4694
4700
  const simple = ref === expression;
4695
4701
  let children;
4696
4702
  if (simple) {
4697
- ref = insertTrimmingSpace(ref, "");
4703
+ ref = trimFirstSpace(ref);
4698
4704
  children = [ref];
4699
4705
  } else {
4700
4706
  children = [ref, initializer];
@@ -4740,8 +4746,8 @@ function processDeclarationConditionStatement(s) {
4740
4746
  return;
4741
4747
  }
4742
4748
  let { expression } = condition;
4743
- if (expression && typeof expression === "object" && "type" in expression && expression.type === "UnaryExpression" && "children" in expression && Array.isArray(expression.children) && len2(expression.children, 2) && expression.children[0] === "!" && typeof expression.children[1] === "object" && expression.children[1] != null && "type" in expression.children[1] && expression.children[1].type === "ParenthesizedExpression" && "expression" in expression.children[1]) {
4744
- const { type: type1, children: [, { type: type2, expression: expression2 }] } = expression;
4749
+ if (expression && typeof expression === "object" && "type" in expression && expression.type === "UnaryExpression" && "children" in expression && Array.isArray(expression.children) && len2(expression.children, 2) && Array.isArray(expression.children[0]) && len2(expression.children[0], 1) && expression.children[0][0] === "!" && typeof expression.children[1] === "object" && expression.children[1] != null && "type" in expression.children[1] && expression.children[1].type === "ParenthesizedExpression" && "expression" in expression.children[1]) {
4750
+ const { type: type1, children: [[], { type: type2, expression: expression2 }] } = expression;
4745
4751
  const type = [type1, type2];
4746
4752
  expression = expression2;
4747
4753
  }
@@ -4760,7 +4766,7 @@ function processDeclarationConditionStatement(s) {
4760
4766
  let children = condition.children;
4761
4767
  if (s.negated) {
4762
4768
  let m;
4763
- if (!(m = condition.expression, typeof m === "object" && m != null && "type" in m && m.type === "UnaryExpression" && "children" in m && Array.isArray(m.children) && len2(m.children, 2) && m.children[0] === "!" && typeof m.children[1] === "object" && m.children[1] != null && "type" in m.children[1] && m.children[1].type === "ParenthesizedExpression")) {
4769
+ if (!(m = condition.expression, typeof m === "object" && m != null && "type" in m && m.type === "UnaryExpression" && "children" in m && Array.isArray(m.children) && len2(m.children, 2) && Array.isArray(m.children[0]) && len2(m.children[0], 1) && m.children[0][0] === "!" && typeof m.children[1] === "object" && m.children[1] != null && "type" in m.children[1] && m.children[1].type === "ParenthesizedExpression")) {
4764
4770
  throw new Error("Unsupported negated condition");
4765
4771
  }
4766
4772
  ;
@@ -4884,9 +4890,12 @@ function processDeclarationConditionStatement(s) {
4884
4890
  }
4885
4891
  function dynamizeFromClause(from) {
4886
4892
  from = from.slice(1);
4887
- from = insertTrimmingSpace(from, "");
4888
- if (from[from.length - 1]?.type === "ImportAssertion") {
4889
- const assert2 = from.pop();
4893
+ from = trimFirstSpace(from);
4894
+ let ref2;
4895
+ if (ref2 = from[from.length - 1]?.assertion) {
4896
+ const assert2 = ref2;
4897
+ let ref3;
4898
+ ref3 = from[from.length - 1], ref3.children = ref3.children.filter((a2) => a2 !== assert2);
4890
4899
  from.push(", {", assert2.keyword, ":", assert2.object, "}");
4891
4900
  }
4892
4901
  return ["(", ...from, ")"];
@@ -4895,20 +4904,20 @@ function dynamizeImportDeclaration(decl) {
4895
4904
  const { imports } = decl;
4896
4905
  let { star, binding, specifiers } = imports;
4897
4906
  const justDefault = binding && !specifiers && !star;
4898
- let ref2;
4907
+ let ref4;
4899
4908
  {
4900
4909
  if (binding) {
4901
4910
  if (specifiers) {
4902
- ref2 = makeRef();
4911
+ ref4 = makeRef();
4903
4912
  } else {
4904
- ref2 = binding;
4913
+ ref4 = binding;
4905
4914
  }
4906
4915
  } else {
4907
- ref2 = convertNamedImportsToObject(imports, true);
4916
+ ref4 = convertNamedImportsToObject(imports, true);
4908
4917
  }
4909
4918
  }
4910
4919
  ;
4911
- const pattern = ref2;
4920
+ const pattern = ref4;
4912
4921
  const c = "const";
4913
4922
  const expression = [
4914
4923
  justDefault ? "(" : void 0,
@@ -4985,7 +4994,7 @@ function dynamizeImportDeclarationExpression($0) {
4985
4994
  { type: "Await", children: "await" },
4986
4995
  " ",
4987
4996
  imp,
4988
- insertTrimmingSpace(ws2, ""),
4997
+ trimFirstSpace(ws2),
4989
4998
  dynamizeFromClause(from),
4990
4999
  {
4991
5000
  type: "PropertyGlob",
@@ -5061,7 +5070,9 @@ function processUnaryExpression(pre, exp, post) {
5061
5070
  if (pre.length) {
5062
5071
  return {
5063
5072
  type: "UnaryExpression",
5064
- children: [...pre, exp]
5073
+ children: [pre, exp],
5074
+ pre,
5075
+ expression: exp
5065
5076
  };
5066
5077
  }
5067
5078
  return exp;
@@ -5113,7 +5124,10 @@ function processUnaryExpression(pre, exp, post) {
5113
5124
  }
5114
5125
  return {
5115
5126
  type: "UnaryExpression",
5116
- children: [...pre, exp, post]
5127
+ children: [pre, exp, post],
5128
+ pre,
5129
+ expression: exp,
5130
+ post
5117
5131
  };
5118
5132
  }
5119
5133
  function processUnaryNestedExpression(pre, args, post) {
@@ -6153,12 +6167,16 @@ function negateCondition(condition) {
6153
6167
  if (i < 0) {
6154
6168
  throw new Error(`Could not find expression in condition`);
6155
6169
  }
6170
+ const pre = ["!"];
6171
+ expression = makeLeftHandSideExpression(expression);
6156
6172
  children[i] = expression = {
6157
6173
  type: "UnaryExpression",
6158
6174
  children: [
6159
- "!",
6160
- makeLeftHandSideExpression(expression)
6161
- ]
6175
+ pre,
6176
+ expression
6177
+ ],
6178
+ pre,
6179
+ expression
6162
6180
  };
6163
6181
  return { ...condition, expression, children };
6164
6182
  }
@@ -6636,19 +6654,23 @@ function processCallMemberExpression(node) {
6636
6654
  assert.notEqual(i, 0, "Index access must be preceded by an expression");
6637
6655
  const prefix = i === 1 ? children[0] : children.slice(0, i);
6638
6656
  const { ref, refAssignment } = maybeRefAssignment(prefix);
6657
+ const args = [
6658
+ glob.children.slice(0 + 1, -1),
6659
+ // between "[" and "]" tokens
6660
+ ",",
6661
+ [" ", ref, ".length"]
6662
+ ];
6639
6663
  const call = makeNode({
6640
6664
  type: "CallExpression",
6665
+ implicit: true,
6641
6666
  children: [
6642
6667
  getHelperRef("modulo"),
6643
6668
  makeNode({
6644
6669
  type: "Call",
6670
+ args,
6645
6671
  children: [
6646
6672
  "(",
6647
- ...glob.children.slice(0 + 1, -1),
6648
- // between "[" and "]" tokens
6649
- ", ",
6650
- ref,
6651
- ".length",
6673
+ args,
6652
6674
  ")"
6653
6675
  ]
6654
6676
  })
@@ -6660,7 +6682,7 @@ function processCallMemberExpression(node) {
6660
6682
  ...node,
6661
6683
  children: [
6662
6684
  makeLeftHandSideExpression(refAssignment ?? prefix),
6663
- {
6685
+ makeNode({
6664
6686
  ...glob,
6665
6687
  mod: false,
6666
6688
  expression: call,
@@ -6671,7 +6693,7 @@ function processCallMemberExpression(node) {
6671
6693
  (ref3 = glob.children)[ref3.length - 1]
6672
6694
  // "]" token
6673
6695
  ]
6674
- },
6696
+ }),
6675
6697
  ...children.slice(i + 1)
6676
6698
  ]
6677
6699
  });
@@ -6721,7 +6743,7 @@ function makeExpressionStatement(expression) {
6721
6743
  return [comma, makeExpressionStatement(exp)];
6722
6744
  })
6723
6745
  ];
6724
- } else if (expression?.type === "ObjectExpression" || expression?.type === "FunctionExpression" && !expression.id) {
6746
+ } else if (expression?.type === "ObjectExpression" || expression?.type === "FunctionExpression" && !expression.id || expression?.type === "UnaryExpression" && !expression.pre?.length && expression.expression !== makeExpressionStatement(expression.expression)) {
6725
6747
  return makeLeftHandSideExpression(expression);
6726
6748
  } else {
6727
6749
  return expression;
@@ -7434,12 +7456,12 @@ function processProgram(root) {
7434
7456
  } else if (config2.autoVar) {
7435
7457
  createVarDecs(root, []);
7436
7458
  }
7437
- processBlocks(statements);
7438
- populateRefs(statements);
7439
- adjustAtBindings(statements);
7440
7459
  if (config2.repl) {
7441
7460
  processRepl(root, rootIIFE);
7442
7461
  }
7462
+ processBlocks(statements);
7463
+ populateRefs(statements);
7464
+ adjustAtBindings(statements);
7443
7465
  if (getSync()) {
7444
7466
  processComptime(statements);
7445
7467
  }
@@ -7458,7 +7480,11 @@ function processRepl(root, rootIIFE) {
7458
7480
  }
7459
7481
  if (decl.parent === topBlock || decl.decl === "var") {
7460
7482
  decl.children.shift();
7461
- root.expressions.splice(i++, 0, ["", `var ${decl.names.join(",")};`]);
7483
+ if (decl.bindings[0]?.pattern?.type === "ObjectBindingPattern") {
7484
+ decl.children.unshift("(");
7485
+ decl.children.push(")");
7486
+ }
7487
+ root.expressions.splice(i++, 0, ["", `var ${decl.names.join(",")}`, ";"]);
7462
7488
  }
7463
7489
  }
7464
7490
  for (let ref27 = gatherRecursive(topBlock, ($15) => $15.type === "FunctionExpression"), i10 = 0, len9 = ref27.length; i10 < len9; i10++) {
@@ -7470,7 +7496,7 @@ function processRepl(root, rootIIFE) {
7470
7496
  func.parent = root;
7471
7497
  } else {
7472
7498
  func.children.unshift(func.name, "=");
7473
- root.expressions.splice(i++, 0, ["", `var ${func.name};`]);
7499
+ root.expressions.splice(i++, 0, ["", `var ${func.name}`, ";"]);
7474
7500
  }
7475
7501
  }
7476
7502
  }
@@ -7479,7 +7505,7 @@ function processRepl(root, rootIIFE) {
7479
7505
  let m5;
7480
7506
  if (classExp.name && classExp.parent === topBlock || (m5 = classExp.parent, typeof m5 === "object" && m5 != null && "type" in m5 && m5.type === "ReturnStatement" && "parent" in m5 && m5.parent === topBlock)) {
7481
7507
  classExp.children.unshift(classExp.name, "=");
7482
- root.expressions.splice(i++, 0, ["", `var ${classExp.name};`]);
7508
+ root.expressions.splice(i++, 0, ["", `var ${classExp.name}`, ";"]);
7483
7509
  }
7484
7510
  }
7485
7511
  }
@@ -8021,6 +8047,7 @@ var grammar = {
8021
8047
  ArrayElementDelimiter,
8022
8048
  ElementListWithIndentedApplicationForbidden,
8023
8049
  ElementList,
8050
+ SingleLineElementList,
8024
8051
  ElementListRest,
8025
8052
  ArrayElementExpression,
8026
8053
  NestedBulletedArray,
@@ -8033,6 +8060,7 @@ var grammar = {
8033
8060
  BulletedArrayWithTrailing,
8034
8061
  ObjectLiteral,
8035
8062
  BracedObjectLiteral,
8063
+ SingleLineObjectProperties,
8036
8064
  BracedObjectLiteralContent,
8037
8065
  NestedImplicitObjectLiteral,
8038
8066
  NestedImplicitPropertyDefinitions,
@@ -8313,6 +8341,7 @@ var grammar = {
8313
8341
  Dot,
8314
8342
  DotDot,
8315
8343
  DotDotDot,
8344
+ InsertDotDotDot,
8316
8345
  DoubleColon,
8317
8346
  DoubleColonAsColon,
8318
8347
  DoubleQuote,
@@ -8873,7 +8902,7 @@ var $R11 = (0, import_lib2.$R)(new RegExp("%%?", "suy"));
8873
8902
  var $R12 = (0, import_lib2.$R)(new RegExp("[.\\s]", "suy"));
8874
8903
  var $R13 = (0, import_lib2.$R)(new RegExp("[)}]", "suy"));
8875
8904
  var $R14 = (0, import_lib2.$R)(new RegExp("[+-]", "suy"));
8876
- var $R15 = (0, import_lib2.$R)(new RegExp("\\+\\+|--|[\\+\\-&]\\S", "suy"));
8905
+ var $R15 = (0, import_lib2.$R)(new RegExp("\\+\\+|--|\u29FA|\u2014|[\\+\\-&]\\S", "suy"));
8877
8906
  var $R16 = (0, import_lib2.$R)(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
8878
8907
  var $R17 = (0, import_lib2.$R)(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
8879
8908
  var $R18 = (0, import_lib2.$R)(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
@@ -9735,9 +9764,7 @@ function TrailingPostfix(ctx, state2) {
9735
9764
  }
9736
9765
  var FatArrowBody$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)(EOS), (0, import_lib2.$N)((0, import_lib2.$S)((0, import_lib2.$E)(_), ExpressionizedStatement)), NonPipelineExpression, (0, import_lib2.$N)(TrailingDeclaration), (0, import_lib2.$N)(TrailingPipe), (0, import_lib2.$N)(TrailingPostfix), (0, import_lib2.$N)(SemicolonDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
9737
9766
  var exp = $3;
9738
- if (exp.type === "ObjectExpression") {
9739
- exp = makeLeftHandSideExpression(exp);
9740
- }
9767
+ exp = makeExpressionStatement(exp);
9741
9768
  const expressions = [["", exp]];
9742
9769
  return {
9743
9770
  type: "BlockStatement",
@@ -11671,13 +11698,13 @@ var FunctionExpression$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenParen, _
11671
11698
  expression: fn
11672
11699
  };
11673
11700
  });
11674
- var FunctionExpression$5 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenParen, __, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R15, "FunctionExpression /\\+\\+|--|[\\+\\-&]\\S/")), BinaryOp, __, NonPipelineAssignmentExpression, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
11701
+ var FunctionExpression$5 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenParen, __, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R15, "FunctionExpression /\\+\\+|--|\u29FA|\u2014|[\\+\\-&]\\S/")), (0, import_lib2.$N)((0, import_lib2.$S)(Placeholder, (0, import_lib2.$C)(TypePostfix, BinaryOpRHS))), BinaryOp, __, NonPipelineAssignmentExpression, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
11675
11702
  var open = $1;
11676
11703
  var ws1 = $2;
11677
- var op = $4;
11678
- var ws2 = $5;
11679
- var rhs = $6;
11680
- var close = $7;
11704
+ var op = $5;
11705
+ var ws2 = $6;
11706
+ var rhs = $7;
11707
+ var close = $8;
11681
11708
  const refA = makeRef("a");
11682
11709
  const fn = makeAmpersandFunction({
11683
11710
  ref: refA,
@@ -12379,7 +12406,30 @@ function ArrayLiteral(ctx, state2) {
12379
12406
  var _ArrayLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)(ArrayBindingPattern, UpcomingAssignment), function(value) {
12380
12407
  return value[0];
12381
12408
  });
12382
- var _ArrayLiteral$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenBracket, AllowAll, (0, import_lib2.$E)((0, import_lib2.$S)(ArrayLiteralContent, __, CloseBracket)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
12409
+ var _ArrayLiteral$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenBracket, CloseBracket, ApplicationStart, AllowAll, (0, import_lib2.$E)((0, import_lib2.$C)(NestedElementList, SingleLineElementList)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12410
+ var open = $1;
12411
+ var close = $2;
12412
+ var content = $5;
12413
+ if (!content)
12414
+ return $skip;
12415
+ let last = content[content.length - 1];
12416
+ let lastArray = Array.isArray(last) ? last : last.children;
12417
+ if (isComma(lastArray[lastArray.length - 1])) {
12418
+ lastArray = lastArray.slice(0, -1);
12419
+ if (Array.isArray(last)) {
12420
+ last = lastArray;
12421
+ } else {
12422
+ last = { ...last, children: lastArray };
12423
+ }
12424
+ content = [...content.slice(0, -1), last];
12425
+ }
12426
+ return {
12427
+ type: "ArrayExpression",
12428
+ children: [open, ...content, close],
12429
+ names: content.flatMap((c) => c?.names || [])
12430
+ };
12431
+ });
12432
+ var _ArrayLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenBracket, AllowAll, (0, import_lib2.$E)((0, import_lib2.$S)(ArrayLiteralContent, __, CloseBracket)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
12383
12433
  var open = $1;
12384
12434
  if (!$3)
12385
12435
  return $skip;
@@ -12400,8 +12450,8 @@ var _ArrayLiteral$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenBracket, Allo
12400
12450
  names
12401
12451
  };
12402
12452
  });
12403
- var _ArrayLiteral$2 = NestedBulletedArray;
12404
- var _ArrayLiteral$$ = [_ArrayLiteral$0, _ArrayLiteral$1, _ArrayLiteral$2];
12453
+ var _ArrayLiteral$3 = NestedBulletedArray;
12454
+ var _ArrayLiteral$$ = [_ArrayLiteral$0, _ArrayLiteral$1, _ArrayLiteral$2, _ArrayLiteral$3];
12405
12455
  function _ArrayLiteral(ctx, state2) {
12406
12456
  return (0, import_lib2.$EVENT_C)(ctx, state2, "_ArrayLiteral", _ArrayLiteral$$);
12407
12457
  }
@@ -12574,7 +12624,12 @@ function ElementListWithIndentedApplicationForbidden(ctx, state2) {
12574
12624
  var ElementList$0 = (0, import_lib2.$T)((0, import_lib2.$S)(BulletedArray), function(value) {
12575
12625
  return [value[0]];
12576
12626
  });
12577
- var ElementList$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)(EOS), ArrayElementExpression, (0, import_lib2.$Q)(ElementListRest)), function($skip, $loc, $0, $1, $2, $3) {
12627
+ var ElementList$1 = SingleLineElementList;
12628
+ var ElementList$$ = [ElementList$0, ElementList$1];
12629
+ function ElementList(ctx, state2) {
12630
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "ElementList", ElementList$$);
12631
+ }
12632
+ var SingleLineElementList$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)(EOS), ArrayElementExpression, (0, import_lib2.$Q)(ElementListRest)), function($skip, $loc, $0, $1, $2, $3) {
12578
12633
  var first = $2;
12579
12634
  var rest = $3;
12580
12635
  if (!rest.length)
@@ -12585,9 +12640,8 @@ var ElementList$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)
12585
12640
  rest.map(([_2, e], i) => append(e, rest[i + 1]?.[0]))
12586
12641
  );
12587
12642
  });
12588
- var ElementList$$ = [ElementList$0, ElementList$1];
12589
- function ElementList(ctx, state2) {
12590
- return (0, import_lib2.$EVENT_C)(ctx, state2, "ElementList", ElementList$$);
12643
+ function SingleLineElementList(ctx, state2) {
12644
+ return (0, import_lib2.$EVENT)(ctx, state2, "SingleLineElementList", SingleLineElementList$0);
12591
12645
  }
12592
12646
  var ElementListRest$0 = (0, import_lib2.$S)((0, import_lib2.$S)((0, import_lib2.$E)(_), Comma, (0, import_lib2.$N)(EOS)), ArrayElementExpression);
12593
12647
  function ElementListRest(ctx, state2) {
@@ -12766,7 +12820,29 @@ var ObjectLiteral$$ = [ObjectLiteral$0, ObjectLiteral$1, ObjectLiteral$2, Object
12766
12820
  function ObjectLiteral(ctx, state2) {
12767
12821
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ObjectLiteral", ObjectLiteral$$);
12768
12822
  }
12769
- var BracedObjectLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenBrace, AllowAll, (0, import_lib2.$E)((0, import_lib2.$S)(BracedObjectLiteralContent, __, CloseBrace)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
12823
+ var BracedObjectLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenBrace, CloseBrace, ApplicationStart, AllowAll, (0, import_lib2.$E)((0, import_lib2.$C)(NestedPropertyDefinitions, SingleLineObjectProperties)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12824
+ var open = $1;
12825
+ var close = $2;
12826
+ var properties = $5;
12827
+ if (!properties?.length)
12828
+ return $skip;
12829
+ let last = properties[properties.length - 1];
12830
+ if (last.delim?.implicit) {
12831
+ last = {
12832
+ ...last,
12833
+ delim: void 0,
12834
+ children: last.children.filter((c) => c !== last.delim)
12835
+ };
12836
+ properties = [...properties.slice(0, properties.length - 1), last];
12837
+ }
12838
+ return {
12839
+ type: "ObjectExpression",
12840
+ children: [open, properties, close],
12841
+ names: properties.flatMap((c) => c.names || []),
12842
+ properties
12843
+ };
12844
+ });
12845
+ var BracedObjectLiteral$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenBrace, AllowAll, (0, import_lib2.$E)((0, import_lib2.$S)(BracedObjectLiteralContent, __, CloseBrace)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
12770
12846
  var open = $1;
12771
12847
  if (!$3)
12772
12848
  return $skip;
@@ -12778,13 +12854,13 @@ var BracedObjectLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenBrace,
12778
12854
  properties
12779
12855
  };
12780
12856
  });
12857
+ var BracedObjectLiteral$$ = [BracedObjectLiteral$0, BracedObjectLiteral$1];
12781
12858
  function BracedObjectLiteral(ctx, state2) {
12782
- return (0, import_lib2.$EVENT)(ctx, state2, "BracedObjectLiteral", BracedObjectLiteral$0);
12859
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "BracedObjectLiteral", BracedObjectLiteral$$);
12783
12860
  }
12784
- var BracedObjectLiteralContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Q)((0, import_lib2.$S)(PropertyDefinition, ObjectPropertyDelimiter)), (0, import_lib2.$E)(NestedPropertyDefinitions)), function($skip, $loc, $0, $1, $2) {
12785
- var line = $1;
12786
- var nested = $2;
12787
- line = line.flatMap(([prop, delim]) => {
12861
+ var SingleLineObjectProperties$0 = (0, import_lib2.$TV)((0, import_lib2.$Q)((0, import_lib2.$S)(PropertyDefinition, ObjectPropertyDelimiter)), function($skip, $loc, $0, $1) {
12862
+ var line = $0;
12863
+ return line.flatMap(([prop, delim]) => {
12788
12864
  prop = Array.isArray(prop) ? prop : [prop];
12789
12865
  let last = prop[prop.length - 1];
12790
12866
  if (!last)
@@ -12796,6 +12872,13 @@ var BracedObjectLiteralContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0,
12796
12872
  };
12797
12873
  return [...prop.slice(0, prop.length - 1), last];
12798
12874
  });
12875
+ });
12876
+ function SingleLineObjectProperties(ctx, state2) {
12877
+ return (0, import_lib2.$EVENT)(ctx, state2, "SingleLineObjectProperties", SingleLineObjectProperties$0);
12878
+ }
12879
+ var BracedObjectLiteralContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(SingleLineObjectProperties, (0, import_lib2.$E)(NestedPropertyDefinitions)), function($skip, $loc, $0, $1, $2) {
12880
+ var line = $1;
12881
+ var nested = $2;
12799
12882
  return line.concat(nested || []);
12800
12883
  });
12801
12884
  var BracedObjectLiteralContent$1 = (0, import_lib2.$TV)((0, import_lib2.$P)((0, import_lib2.$S)(__, PropertyDefinition, ObjectPropertyDelimiter)), function($skip, $loc, $0, $1) {
@@ -12927,19 +13010,48 @@ function InlineObjectPropertyDelimiter(ctx, state2) {
12927
13010
  }
12928
13011
  var ObjectPropertyDelimiter$0 = (0, import_lib2.$S)((0, import_lib2.$E)(_), Comma);
12929
13012
  var ObjectPropertyDelimiter$1 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L37, 'ObjectPropertyDelimiter "}"')));
12930
- var ObjectPropertyDelimiter$2 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$Y)(EOS), InsertComma), function(value) {
12931
- return value[1];
13013
+ var ObjectPropertyDelimiter$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Y)(EOS), InsertComma), function($skip, $loc, $0, $1, $2) {
13014
+ return { ...$2, implicit: true };
12932
13015
  });
12933
13016
  var ObjectPropertyDelimiter$$ = [ObjectPropertyDelimiter$0, ObjectPropertyDelimiter$1, ObjectPropertyDelimiter$2];
12934
13017
  function ObjectPropertyDelimiter(ctx, state2) {
12935
13018
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ObjectPropertyDelimiter", ObjectPropertyDelimiter$$);
12936
13019
  }
12937
- var PropertyDefinition$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), NamedProperty), function($skip, $loc, $0, $1, $2) {
13020
+ var PropertyDefinition$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), InsertDotDotDot, IterationExpression), function($skip, $loc, $0, $1, $2, $3) {
13021
+ var ws = $1;
13022
+ var dots = $2;
13023
+ var exp = $3;
13024
+ let { statement } = exp;
13025
+ if (exp.block.implicit && (statement.type === "DoStatement" || statement.subtype === "loop")) {
13026
+ return $skip;
13027
+ }
13028
+ statement = { ...statement, object: true };
13029
+ exp = {
13030
+ ...exp,
13031
+ statement,
13032
+ children: exp.children.map(($) => $ === exp.statement ? statement : $)
13033
+ };
13034
+ const children = [ws, dots, exp];
13035
+ if (statement.reduction) {
13036
+ children.unshift({
13037
+ type: "Error",
13038
+ message: "Reduction loops are forbidden in object literals"
13039
+ });
13040
+ }
13041
+ return {
13042
+ type: "SpreadProperty",
13043
+ children,
13044
+ names: exp.names,
13045
+ dots,
13046
+ value: exp
13047
+ };
13048
+ });
13049
+ var PropertyDefinition$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), NamedProperty), function($skip, $loc, $0, $1, $2) {
12938
13050
  var ws = $1;
12939
13051
  var prop = $2;
12940
13052
  return prepend(ws, prop);
12941
13053
  });
12942
- var PropertyDefinition$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R24, "PropertyDefinition /[!+-]?/")), PropertyName, (0, import_lib2.$Y)(ObjectPropertyDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
13054
+ var PropertyDefinition$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R24, "PropertyDefinition /[!+-]?/")), PropertyName, (0, import_lib2.$Y)(ObjectPropertyDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
12943
13055
  var ws = $1;
12944
13056
  var toggle = $2;
12945
13057
  var id = $3;
@@ -12961,7 +13073,7 @@ var PropertyDefinition$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_l
12961
13073
  value: id
12962
13074
  };
12963
13075
  });
12964
- var PropertyDefinition$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), MethodDefinition), function($skip, $loc, $0, $1, $2) {
13076
+ var PropertyDefinition$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), MethodDefinition), function($skip, $loc, $0, $1, $2) {
12965
13077
  var ws = $1;
12966
13078
  var def = $2;
12967
13079
  if (def.type === "MultiMethodDefinition") {
@@ -12973,7 +13085,7 @@ var PropertyDefinition$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_l
12973
13085
  return $skip;
12974
13086
  return prepend(ws, def);
12975
13087
  });
12976
- var PropertyDefinition$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, Expression), function($skip, $loc, $0, $1, $2, $3) {
13088
+ var PropertyDefinition$4 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, Expression), function($skip, $loc, $0, $1, $2, $3) {
12977
13089
  var ws = $1;
12978
13090
  var dots = $2;
12979
13091
  var exp = $3;
@@ -12985,7 +13097,7 @@ var PropertyDefinition$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_l
12985
13097
  value: exp
12986
13098
  };
12987
13099
  });
12988
- var PropertyDefinition$4 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$N)((0, import_lib2.$C)(EOS, (0, import_lib2.$EXPECT)($L7, 'PropertyDefinition "."'))), (0, import_lib2.$Q)(UnaryOp), CallExpression, (0, import_lib2.$E)(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13100
+ var PropertyDefinition$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$N)((0, import_lib2.$C)(EOS, (0, import_lib2.$EXPECT)($L7, 'PropertyDefinition "."'))), (0, import_lib2.$Q)(UnaryOp), CallExpression, (0, import_lib2.$E)(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12989
13101
  var ws = $1;
12990
13102
  var pre = $3;
12991
13103
  var value = $4;
@@ -13050,7 +13162,7 @@ var PropertyDefinition$4 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_l
13050
13162
  value
13051
13163
  };
13052
13164
  });
13053
- var PropertyDefinition$$ = [PropertyDefinition$0, PropertyDefinition$1, PropertyDefinition$2, PropertyDefinition$3, PropertyDefinition$4];
13165
+ var PropertyDefinition$$ = [PropertyDefinition$0, PropertyDefinition$1, PropertyDefinition$2, PropertyDefinition$3, PropertyDefinition$4, PropertyDefinition$5];
13054
13166
  function PropertyDefinition(ctx, state2) {
13055
13167
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PropertyDefinition", PropertyDefinition$$);
13056
13168
  }
@@ -15707,8 +15819,9 @@ function ModuleExportName(ctx, state2) {
15707
15819
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ModuleExportName", ModuleExportName$$);
15708
15820
  }
15709
15821
  var ModuleSpecifier$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(UnprocessedModuleSpecifier, (0, import_lib2.$E)(ImportAssertion)), function($skip, $loc, $0, $1, $2) {
15710
- var a = $2;
15711
- let { token } = $1;
15822
+ var module2 = $1;
15823
+ var assertion = $2;
15824
+ let { token } = module2;
15712
15825
  if (config.rewriteTsImports) {
15713
15826
  token = token.replace(/\.([mc])?ts(['"])$/, ".$1js$2");
15714
15827
  }
@@ -15718,9 +15831,15 @@ var ModuleSpecifier$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(UnprocessedModu
15718
15831
  `${config.rewriteCivetImports.replace(/\$/g, "$$")}$1`
15719
15832
  );
15720
15833
  }
15721
- if (a)
15722
- return [{ ...$1, token }, a];
15723
- return { ...$1, token };
15834
+ if (token !== module2.token) {
15835
+ module2 = { ...module2, token, input: module2.token };
15836
+ }
15837
+ return {
15838
+ type: "ModuleSpecifier",
15839
+ module: module2,
15840
+ assertion,
15841
+ children: [module2, assertion]
15842
+ };
15724
15843
  });
15725
15844
  function ModuleSpecifier(ctx, state2) {
15726
15845
  return (0, import_lib2.$EVENT)(ctx, state2, "ModuleSpecifier", ModuleSpecifier$0);
@@ -16024,7 +16143,7 @@ var DecimalBigIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)(
16024
16143
  function DecimalBigIntegerLiteral(ctx, state2) {
16025
16144
  return (0, import_lib2.$EVENT)(ctx, state2, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
16026
16145
  }
16027
- var DecimalLiteral$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R36, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
16146
+ var DecimalLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R36, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), (0, import_lib2.$N)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L7, 'DecimalLiteral "."'), ExponentPart))), function($skip, $loc, $0, $1, $2) {
16028
16147
  return $1 + ".";
16029
16148
  });
16030
16149
  var DecimalLiteral$1 = (0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R37, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), (0, import_lib2.$E)(ExponentPart)));
@@ -16663,6 +16782,12 @@ var DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
16663
16782
  function DotDotDot(ctx, state2) {
16664
16783
  return (0, import_lib2.$EVENT_C)(ctx, state2, "DotDotDot", DotDotDot$$);
16665
16784
  }
16785
+ var InsertDotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'InsertDotDotDot ""'), function($skip, $loc, $0, $1) {
16786
+ return { $loc, token: "..." };
16787
+ });
16788
+ function InsertDotDotDot(ctx, state2) {
16789
+ return (0, import_lib2.$EVENT)(ctx, state2, "InsertDotDotDot", InsertDotDotDot$0);
16790
+ }
16666
16791
  var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
16667
16792
  return { $loc, token: $1 };
16668
16793
  });