@danielx/civet 0.6.33 → 0.6.35

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
@@ -1983,6 +1983,66 @@ ${input.slice(result.pos)}
1983
1983
  }
1984
1984
  return parts;
1985
1985
  }
1986
+ function duplicateBlock(block) {
1987
+ const expressions = [...block.expressions];
1988
+ const children = [...block.children];
1989
+ children.splice(children.indexOf(block.expressions), 1, expressions);
1990
+ return {
1991
+ ...block,
1992
+ expressions,
1993
+ children
1994
+ };
1995
+ }
1996
+ function makeGetterMethod(name, ws, value, block, kind = { token: "get" }, autoReturn = true) {
1997
+ const { token } = kind;
1998
+ ws = insertTrimmingSpace(ws, "");
1999
+ let setVal;
2000
+ const parameters = token === "get" ? {
2001
+ type: "Parameters",
2002
+ children: ["()"],
2003
+ names: [],
2004
+ implicit: true
2005
+ } : {
2006
+ type: "Parameters",
2007
+ children: ["(", setVal = makeRef("value"), ")"],
2008
+ names: [],
2009
+ implicit: false
2010
+ };
2011
+ let expressions;
2012
+ if (block) {
2013
+ block = duplicateBlock(block);
2014
+ expressions = block.expressions;
2015
+ } else {
2016
+ expressions = [];
2017
+ block = {
2018
+ type: "BlockStatement",
2019
+ expressions,
2020
+ children: ["{ ", expressions, " }"]
2021
+ };
2022
+ }
2023
+ if (autoReturn) {
2024
+ const finalStatement = token === "get" ? [[expressions[0]?.[0] || "", ws], wrapWithReturn(value)] : [[expressions[0]?.[0] || "", ws], [value, " = ", setVal]];
2025
+ expressions.push(finalStatement);
2026
+ }
2027
+ const children = [kind, " ", name, parameters, block];
2028
+ return {
2029
+ type: "MethodDefinition",
2030
+ children,
2031
+ name,
2032
+ signature: {
2033
+ type: "MethodSignature",
2034
+ modifier: {
2035
+ get: token === "get",
2036
+ set: token === "set",
2037
+ async: false
2038
+ },
2039
+ name,
2040
+ returnType: void 0
2041
+ },
2042
+ block,
2043
+ parameters
2044
+ };
2045
+ }
1986
2046
  function needsRef(expression, base = "ref") {
1987
2047
  switch (expression.type) {
1988
2048
  case "Ref":
@@ -3281,6 +3341,7 @@ ${input.slice(result.pos)}
3281
3341
  literalValue,
3282
3342
  makeAsConst,
3283
3343
  makeEmptyBlock,
3344
+ makeGetterMethod,
3284
3345
  makeLeftHandSideExpression,
3285
3346
  makeRef,
3286
3347
  maybeRef,
@@ -3376,6 +3437,9 @@ ${input.slice(result.pos)}
3376
3437
  RHS,
3377
3438
  ParenthesizedAssignment,
3378
3439
  UnaryExpression,
3440
+ UnaryWithoutParenthesizedAssignment,
3441
+ UnaryBody,
3442
+ UnaryWithoutParenthesizedAssignmentBody,
3379
3443
  UnaryPostfix,
3380
3444
  UpdateExpression,
3381
3445
  UpdateExpressionSymbol,
@@ -3432,6 +3496,7 @@ ${input.slice(result.pos)}
3432
3496
  OptionalDot,
3433
3497
  NonNullAssertion,
3434
3498
  MemberExpression,
3499
+ MemberBase,
3435
3500
  MemberExpressionRest,
3436
3501
  MemberExpressionRestBody,
3437
3502
  MemberBracketContent,
@@ -4650,7 +4715,7 @@ ${input.slice(result.pos)}
4650
4715
  function ParenthesizedAssignment(ctx, state) {
4651
4716
  return $EVENT(ctx, state, "ParenthesizedAssignment", ParenthesizedAssignment$0);
4652
4717
  }
4653
- var UnaryExpression$0 = $TS($S($Q(UnaryOp), $C(UpdateExpression, NestedNonAssignmentExtendedExpression), $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4718
+ var UnaryExpression$0 = $TS($S($Q(UnaryOp), UnaryBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4654
4719
  var pre = $1;
4655
4720
  var exp = $2;
4656
4721
  var post = $3;
@@ -4666,6 +4731,30 @@ ${input.slice(result.pos)}
4666
4731
  function UnaryExpression(ctx, state) {
4667
4732
  return $EVENT_C(ctx, state, "UnaryExpression", UnaryExpression$$);
4668
4733
  }
4734
+ var UnaryWithoutParenthesizedAssignment$0 = $TS($S($Q(UnaryOp), UnaryWithoutParenthesizedAssignmentBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4735
+ var pre = $1;
4736
+ var exp = $2;
4737
+ var post = $3;
4738
+ return processUnaryExpression(pre, exp, post);
4739
+ });
4740
+ function UnaryWithoutParenthesizedAssignment(ctx, state) {
4741
+ return $EVENT(ctx, state, "UnaryWithoutParenthesizedAssignment", UnaryWithoutParenthesizedAssignment$0);
4742
+ }
4743
+ var UnaryBody$0 = ParenthesizedAssignment;
4744
+ var UnaryBody$1 = UpdateExpression;
4745
+ var UnaryBody$2 = ExpressionizedStatementWithTrailingCallExpressions;
4746
+ var UnaryBody$3 = NestedNonAssignmentExtendedExpression;
4747
+ var UnaryBody$$ = [UnaryBody$0, UnaryBody$1, UnaryBody$2, UnaryBody$3];
4748
+ function UnaryBody(ctx, state) {
4749
+ return $EVENT_C(ctx, state, "UnaryBody", UnaryBody$$);
4750
+ }
4751
+ var UnaryWithoutParenthesizedAssignmentBody$0 = UpdateExpression;
4752
+ var UnaryWithoutParenthesizedAssignmentBody$1 = ExpressionizedStatementWithTrailingCallExpressions;
4753
+ var UnaryWithoutParenthesizedAssignmentBody$2 = NestedNonAssignmentExtendedExpression;
4754
+ var UnaryWithoutParenthesizedAssignmentBody$$ = [UnaryWithoutParenthesizedAssignmentBody$0, UnaryWithoutParenthesizedAssignmentBody$1, UnaryWithoutParenthesizedAssignmentBody$2];
4755
+ function UnaryWithoutParenthesizedAssignmentBody(ctx, state) {
4756
+ return $EVENT_C(ctx, state, "UnaryWithoutParenthesizedAssignmentBody", UnaryWithoutParenthesizedAssignmentBody$$);
4757
+ }
4669
4758
  var UnaryPostfix$0 = QuestionMark;
4670
4759
  var UnaryPostfix$1 = $T($P($S(__, $C(As, Satisfies), Type)), function(value) {
4671
4760
  return { "ts": true, "children": value };
@@ -4674,7 +4763,7 @@ ${input.slice(result.pos)}
4674
4763
  function UnaryPostfix(ctx, state) {
4675
4764
  return $EVENT_C(ctx, state, "UnaryPostfix", UnaryPostfix$$);
4676
4765
  }
4677
- var UpdateExpression$0 = $TS($S(UpdateExpressionSymbol, UnaryExpression), function($skip, $loc, $0, $1, $2) {
4766
+ var UpdateExpression$0 = $TS($S(UpdateExpressionSymbol, UnaryWithoutParenthesizedAssignment), function($skip, $loc, $0, $1, $2) {
4678
4767
  return {
4679
4768
  type: "UpdateExpression",
4680
4769
  assigned: $2,
@@ -5067,10 +5156,22 @@ ${input.slice(result.pos)}
5067
5156
  return $EVENT(ctx, state, "NestedClassElement", NestedClassElement$0);
5068
5157
  }
5069
5158
  var ClassElement$0 = $TS($S($E(Decorators), $E(AccessModifier), $E($S(Static, $E(_))), ClassElementDefinition), function($skip, $loc, $0, $1, $2, $3, $4) {
5159
+ var decorators = $1;
5070
5160
  var definition = $4;
5161
+ if (definition.type === "ShorthandMethodDefinition") {
5162
+ return {
5163
+ ...definition,
5164
+ children: definition.children.map((c) => {
5165
+ return {
5166
+ ...c,
5167
+ children: [decorators, ...c.children]
5168
+ };
5169
+ })
5170
+ };
5171
+ }
5071
5172
  return {
5072
5173
  ...definition,
5073
- children: [$1, $2, $3, ...definition.children]
5174
+ children: [decorators, $2, $3, ...definition.children]
5074
5175
  };
5075
5176
  });
5076
5177
  var ClassElement$1 = $TS($S(Static, BracedBlock), function($skip, $loc, $0, $1, $2) {
@@ -5180,7 +5281,14 @@ ${input.slice(result.pos)}
5180
5281
  var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E(Hash), IdentifierName))), function($skip, $loc, $0, $1, $2) {
5181
5282
  var at = $1;
5182
5283
  var id = $2;
5183
- return [at, ".", id];
5284
+ return {
5285
+ type: "MemberExpression",
5286
+ children: [at, {
5287
+ type: "PropertyAccess",
5288
+ name: id,
5289
+ children: [".", id]
5290
+ }]
5291
+ };
5184
5292
  });
5185
5293
  var ThisLiteral$2 = AtThis;
5186
5294
  var ThisLiteral$3 = PrivateThis;
@@ -5194,7 +5302,14 @@ ${input.slice(result.pos)}
5194
5302
  });
5195
5303
  var PrivateThis$1 = $TV(PrivateIdentifier, function($skip, $loc, $0, $1) {
5196
5304
  var id = $0;
5197
- return ["this.", id];
5305
+ return {
5306
+ type: "MemberExpression",
5307
+ children: ["this", {
5308
+ type: "PropertyAccess",
5309
+ name: id.name,
5310
+ children: [".", id]
5311
+ }]
5312
+ };
5198
5313
  });
5199
5314
  var PrivateThis$$ = [PrivateThis$0, PrivateThis$1];
5200
5315
  function PrivateThis(ctx, state) {
@@ -5281,7 +5396,7 @@ ${input.slice(result.pos)}
5281
5396
  function NonNullAssertion(ctx, state) {
5282
5397
  return $EVENT(ctx, state, "NonNullAssertion", NonNullAssertion$0);
5283
5398
  }
5284
- var MemberExpression$0 = $TS($S($C(PrimaryExpression, SuperProperty, MetaProperty), $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
5399
+ var MemberExpression$0 = $TS($S(MemberBase, $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
5285
5400
  var rest = $2;
5286
5401
  if (rest.length || Array.isArray($1)) {
5287
5402
  return processCallMemberExpression({
@@ -5294,6 +5409,13 @@ ${input.slice(result.pos)}
5294
5409
  function MemberExpression(ctx, state) {
5295
5410
  return $EVENT(ctx, state, "MemberExpression", MemberExpression$0);
5296
5411
  }
5412
+ var MemberBase$0 = PrimaryExpression;
5413
+ var MemberBase$1 = SuperProperty;
5414
+ var MemberBase$2 = MetaProperty;
5415
+ var MemberBase$$ = [MemberBase$0, MemberBase$1, MemberBase$2];
5416
+ function MemberBase(ctx, state) {
5417
+ return $EVENT_C(ctx, state, "MemberBase", MemberBase$$);
5418
+ }
5297
5419
  var MemberExpressionRest$0 = $TS($S($Q(MultiLineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2) {
5298
5420
  var comments = $1;
5299
5421
  var body = $2;
@@ -5497,7 +5619,7 @@ ${input.slice(result.pos)}
5497
5619
  function PropertyAccess(ctx, state) {
5498
5620
  return $EVENT_C(ctx, state, "PropertyAccess", PropertyAccess$$);
5499
5621
  }
5500
- var PropertyGlob$0 = $TS($S(OptionalDot, $Q(MultiLineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
5622
+ var PropertyGlob$0 = $TS($S($S($E($C(QuestionMark, NonNullAssertion)), OptionalDot), $Q(MultiLineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
5501
5623
  var dot = $1;
5502
5624
  var object = $3;
5503
5625
  return {
@@ -7303,7 +7425,76 @@ ${input.slice(result.pos)}
7303
7425
  parameters: signature.parameters
7304
7426
  };
7305
7427
  });
7306
- var MethodDefinition$$ = [MethodDefinition$0, MethodDefinition$1];
7428
+ var MethodDefinition$2 = $TS($S(GetOrSet, $E(_), ForbidIndentedApplication, $E($S(MemberBase, $Q(CallExpressionRest))), RestoreIndentedApplication, $E(BracedBlock)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7429
+ var kind = $1;
7430
+ var ws = $2;
7431
+ var value = $4;
7432
+ var block = $6;
7433
+ if (!value)
7434
+ return $skip;
7435
+ const rest = value[1];
7436
+ if (!rest.length) {
7437
+ const base = value[0];
7438
+ let name2;
7439
+ if (base.type === "MemberExpression") {
7440
+ const lastAccess2 = lastAccessInCallExpression(base);
7441
+ if (lastAccess2) {
7442
+ ({ name: name2 } = lastAccess2);
7443
+ }
7444
+ }
7445
+ if (!name2)
7446
+ ({ name: name2 } = base);
7447
+ if (!name2)
7448
+ return $skip;
7449
+ if (name2[0] === "#")
7450
+ name2 = name2.slice(1);
7451
+ const autoReturn = !block || base.type !== "Identifier";
7452
+ return makeGetterMethod(name2, ws, base, block, kind, autoReturn);
7453
+ }
7454
+ let last = rest[rest.length - 1];
7455
+ while (Array.isArray(last)) {
7456
+ last = last[last.length - 1];
7457
+ }
7458
+ switch (last.type) {
7459
+ case "Call":
7460
+ return $skip;
7461
+ case "PropertyAccess":
7462
+ const { name: name2 } = last;
7463
+ return makeGetterMethod(name2, ws, value, block, kind);
7464
+ case "PropertyGlob":
7465
+ return {
7466
+ type: "ShorthandMethodDefinition",
7467
+ children: last.object.properties.map((p) => {
7468
+ const { name: name3, type } = p;
7469
+ let v;
7470
+ switch (type) {
7471
+ case "Identifier":
7472
+ v = insertTrimmingSpace(p, "");
7473
+ break;
7474
+ case "Property":
7475
+ v = insertTrimmingSpace(p.value, "");
7476
+ break;
7477
+ }
7478
+ const exp = processCallMemberExpression({
7479
+ type: "CallExpression",
7480
+ children: [value[0], ...value[1].slice(0, -1), {
7481
+ type: "PropertyAccess",
7482
+ children: [last.dot, {
7483
+ ...v,
7484
+ children: [v.children.slice(0, 2)]
7485
+ // Remove potential delimiter
7486
+ }]
7487
+ }]
7488
+ });
7489
+ return makeGetterMethod(name3, ws, exp, block, kind);
7490
+ })
7491
+ };
7492
+ }
7493
+ const lastAccess = lastAccessInCallExpression({ children: rest });
7494
+ const { name } = lastAccess;
7495
+ return makeGetterMethod(name, ws, value, block, kind);
7496
+ });
7497
+ var MethodDefinition$$ = [MethodDefinition$0, MethodDefinition$1, MethodDefinition$2];
7307
7498
  function MethodDefinition(ctx, state) {
7308
7499
  return $EVENT_C(ctx, state, "MethodDefinition", MethodDefinition$$);
7309
7500
  }
@@ -7389,13 +7580,14 @@ ${input.slice(result.pos)}
7389
7580
  return $EVENT_C(ctx, state, "ClassElementName", ClassElementName$$);
7390
7581
  }
7391
7582
  var PrivateIdentifier$0 = $TV($TEXT($S(Hash, IdentifierName)), function($skip, $loc, $0, $1) {
7583
+ var id = $0;
7392
7584
  return {
7393
7585
  type: "Identifier",
7394
- name: $0,
7395
- names: [$0],
7586
+ name: id,
7587
+ names: [id],
7396
7588
  children: [{
7397
7589
  $loc,
7398
- token: $0
7590
+ token: id
7399
7591
  }]
7400
7592
  };
7401
7593
  });
@@ -12431,6 +12623,9 @@ ${input.slice(result.pos)}
12431
12623
  exports.RHS = RHS;
12432
12624
  exports.ParenthesizedAssignment = ParenthesizedAssignment;
12433
12625
  exports.UnaryExpression = UnaryExpression;
12626
+ exports.UnaryWithoutParenthesizedAssignment = UnaryWithoutParenthesizedAssignment;
12627
+ exports.UnaryBody = UnaryBody;
12628
+ exports.UnaryWithoutParenthesizedAssignmentBody = UnaryWithoutParenthesizedAssignmentBody;
12434
12629
  exports.UnaryPostfix = UnaryPostfix;
12435
12630
  exports.UpdateExpression = UpdateExpression;
12436
12631
  exports.UpdateExpressionSymbol = UpdateExpressionSymbol;
@@ -12487,6 +12682,7 @@ ${input.slice(result.pos)}
12487
12682
  exports.OptionalDot = OptionalDot;
12488
12683
  exports.NonNullAssertion = NonNullAssertion;
12489
12684
  exports.MemberExpression = MemberExpression;
12685
+ exports.MemberBase = MemberBase;
12490
12686
  exports.MemberExpressionRest = MemberExpressionRest;
12491
12687
  exports.MemberExpressionRestBody = MemberExpressionRestBody;
12492
12688
  exports.MemberBracketContent = MemberBracketContent;
@@ -13083,6 +13279,7 @@ ${input.slice(result.pos)}
13083
13279
  lastAccessInCallExpression,
13084
13280
  literalValue,
13085
13281
  makeEmptyBlock,
13282
+ makeGetterMethod,
13086
13283
  makeLeftHandSideExpression,
13087
13284
  makeRef,
13088
13285
  maybeRef,
package/dist/civet CHANGED
@@ -64,7 +64,7 @@ encoding = "utf8";
64
64
  fs = require("fs/promises");
65
65
  path = require("path");
66
66
  parseArgs = function(args) {
67
- var options, filenames, scriptArgs, i, endOfArgs, arg, char;
67
+ var options, filenames, scriptArgs, i, endOfArgs, arg;
68
68
  options = {};
69
69
  Object.defineProperty(options, "run", {
70
70
  get: function() {
@@ -90,6 +90,7 @@ parseArgs = function(args) {
90
90
  arg = args[i];
91
91
  if (/^-\w{2,}$/.test(arg)) {
92
92
  args.splice(i, 1 + i - i, ...(() => {
93
+ var char;
93
94
  const results = [];
94
95
  for (let ref = arg.slice(1), i1 = 0, len = ref.length; i1 < len; i1++) {
95
96
  char = ref[i1];
@@ -156,7 +157,7 @@ parseArgs = function(args) {
156
157
  return { filenames, scriptArgs, options };
157
158
  };
158
159
  readFiles = async function* (filenames, options) {
159
- var filename, stdin, lines, rl, content, chunk;
160
+ var filename, stdin, lines, rl, content;
160
161
  const results1 = [];
161
162
  for (let i2 = 0, len1 = filenames.length; i2 < len1; i2++) {
162
163
  filename = filenames[i2];
@@ -185,6 +186,7 @@ readFiles = async function* (filenames, options) {
185
186
  });
186
187
  } else {
187
188
  content = (await (async () => {
189
+ var chunk;
188
190
  const results2 = [];
189
191
  for await (chunk of process.stdin) {
190
192
  results2.push(chunk);
@@ -130,3 +130,4 @@ civet.setup = defaultPlugin.setup;
130
130
  var esbuild_plugin_default = civet;
131
131
  // Annotate the CommonJS export names for ESM import in node:
132
132
  0 && (module.exports = {});
133
+ module.exports = module.exports.default;
package/dist/main.js CHANGED
@@ -1982,6 +1982,66 @@ var require_lib = __commonJS({
1982
1982
  }
1983
1983
  return parts;
1984
1984
  }
1985
+ function duplicateBlock(block) {
1986
+ const expressions = [...block.expressions];
1987
+ const children = [...block.children];
1988
+ children.splice(children.indexOf(block.expressions), 1, expressions);
1989
+ return {
1990
+ ...block,
1991
+ expressions,
1992
+ children
1993
+ };
1994
+ }
1995
+ function makeGetterMethod(name, ws, value, block, kind = { token: "get" }, autoReturn = true) {
1996
+ const { token } = kind;
1997
+ ws = insertTrimmingSpace(ws, "");
1998
+ let setVal;
1999
+ const parameters = token === "get" ? {
2000
+ type: "Parameters",
2001
+ children: ["()"],
2002
+ names: [],
2003
+ implicit: true
2004
+ } : {
2005
+ type: "Parameters",
2006
+ children: ["(", setVal = makeRef("value"), ")"],
2007
+ names: [],
2008
+ implicit: false
2009
+ };
2010
+ let expressions;
2011
+ if (block) {
2012
+ block = duplicateBlock(block);
2013
+ expressions = block.expressions;
2014
+ } else {
2015
+ expressions = [];
2016
+ block = {
2017
+ type: "BlockStatement",
2018
+ expressions,
2019
+ children: ["{ ", expressions, " }"]
2020
+ };
2021
+ }
2022
+ if (autoReturn) {
2023
+ const finalStatement = token === "get" ? [[expressions[0]?.[0] || "", ws], wrapWithReturn(value)] : [[expressions[0]?.[0] || "", ws], [value, " = ", setVal]];
2024
+ expressions.push(finalStatement);
2025
+ }
2026
+ const children = [kind, " ", name, parameters, block];
2027
+ return {
2028
+ type: "MethodDefinition",
2029
+ children,
2030
+ name,
2031
+ signature: {
2032
+ type: "MethodSignature",
2033
+ modifier: {
2034
+ get: token === "get",
2035
+ set: token === "set",
2036
+ async: false
2037
+ },
2038
+ name,
2039
+ returnType: void 0
2040
+ },
2041
+ block,
2042
+ parameters
2043
+ };
2044
+ }
1985
2045
  function needsRef(expression, base = "ref") {
1986
2046
  switch (expression.type) {
1987
2047
  case "Ref":
@@ -3280,6 +3340,7 @@ var require_lib = __commonJS({
3280
3340
  literalValue,
3281
3341
  makeAsConst,
3282
3342
  makeEmptyBlock,
3343
+ makeGetterMethod,
3283
3344
  makeLeftHandSideExpression,
3284
3345
  makeRef,
3285
3346
  maybeRef,
@@ -3375,6 +3436,9 @@ var require_parser = __commonJS({
3375
3436
  RHS,
3376
3437
  ParenthesizedAssignment,
3377
3438
  UnaryExpression,
3439
+ UnaryWithoutParenthesizedAssignment,
3440
+ UnaryBody,
3441
+ UnaryWithoutParenthesizedAssignmentBody,
3378
3442
  UnaryPostfix,
3379
3443
  UpdateExpression,
3380
3444
  UpdateExpressionSymbol,
@@ -3431,6 +3495,7 @@ var require_parser = __commonJS({
3431
3495
  OptionalDot,
3432
3496
  NonNullAssertion,
3433
3497
  MemberExpression,
3498
+ MemberBase,
3434
3499
  MemberExpressionRest,
3435
3500
  MemberExpressionRestBody,
3436
3501
  MemberBracketContent,
@@ -4649,7 +4714,7 @@ var require_parser = __commonJS({
4649
4714
  function ParenthesizedAssignment(ctx, state) {
4650
4715
  return $EVENT(ctx, state, "ParenthesizedAssignment", ParenthesizedAssignment$0);
4651
4716
  }
4652
- var UnaryExpression$0 = $TS($S($Q(UnaryOp), $C(UpdateExpression, NestedNonAssignmentExtendedExpression), $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4717
+ var UnaryExpression$0 = $TS($S($Q(UnaryOp), UnaryBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4653
4718
  var pre = $1;
4654
4719
  var exp = $2;
4655
4720
  var post = $3;
@@ -4665,6 +4730,30 @@ var require_parser = __commonJS({
4665
4730
  function UnaryExpression(ctx, state) {
4666
4731
  return $EVENT_C(ctx, state, "UnaryExpression", UnaryExpression$$);
4667
4732
  }
4733
+ var UnaryWithoutParenthesizedAssignment$0 = $TS($S($Q(UnaryOp), UnaryWithoutParenthesizedAssignmentBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4734
+ var pre = $1;
4735
+ var exp = $2;
4736
+ var post = $3;
4737
+ return processUnaryExpression(pre, exp, post);
4738
+ });
4739
+ function UnaryWithoutParenthesizedAssignment(ctx, state) {
4740
+ return $EVENT(ctx, state, "UnaryWithoutParenthesizedAssignment", UnaryWithoutParenthesizedAssignment$0);
4741
+ }
4742
+ var UnaryBody$0 = ParenthesizedAssignment;
4743
+ var UnaryBody$1 = UpdateExpression;
4744
+ var UnaryBody$2 = ExpressionizedStatementWithTrailingCallExpressions;
4745
+ var UnaryBody$3 = NestedNonAssignmentExtendedExpression;
4746
+ var UnaryBody$$ = [UnaryBody$0, UnaryBody$1, UnaryBody$2, UnaryBody$3];
4747
+ function UnaryBody(ctx, state) {
4748
+ return $EVENT_C(ctx, state, "UnaryBody", UnaryBody$$);
4749
+ }
4750
+ var UnaryWithoutParenthesizedAssignmentBody$0 = UpdateExpression;
4751
+ var UnaryWithoutParenthesizedAssignmentBody$1 = ExpressionizedStatementWithTrailingCallExpressions;
4752
+ var UnaryWithoutParenthesizedAssignmentBody$2 = NestedNonAssignmentExtendedExpression;
4753
+ var UnaryWithoutParenthesizedAssignmentBody$$ = [UnaryWithoutParenthesizedAssignmentBody$0, UnaryWithoutParenthesizedAssignmentBody$1, UnaryWithoutParenthesizedAssignmentBody$2];
4754
+ function UnaryWithoutParenthesizedAssignmentBody(ctx, state) {
4755
+ return $EVENT_C(ctx, state, "UnaryWithoutParenthesizedAssignmentBody", UnaryWithoutParenthesizedAssignmentBody$$);
4756
+ }
4668
4757
  var UnaryPostfix$0 = QuestionMark;
4669
4758
  var UnaryPostfix$1 = $T($P($S(__, $C(As, Satisfies), Type)), function(value) {
4670
4759
  return { "ts": true, "children": value };
@@ -4673,7 +4762,7 @@ var require_parser = __commonJS({
4673
4762
  function UnaryPostfix(ctx, state) {
4674
4763
  return $EVENT_C(ctx, state, "UnaryPostfix", UnaryPostfix$$);
4675
4764
  }
4676
- var UpdateExpression$0 = $TS($S(UpdateExpressionSymbol, UnaryExpression), function($skip, $loc, $0, $1, $2) {
4765
+ var UpdateExpression$0 = $TS($S(UpdateExpressionSymbol, UnaryWithoutParenthesizedAssignment), function($skip, $loc, $0, $1, $2) {
4677
4766
  return {
4678
4767
  type: "UpdateExpression",
4679
4768
  assigned: $2,
@@ -5066,10 +5155,22 @@ var require_parser = __commonJS({
5066
5155
  return $EVENT(ctx, state, "NestedClassElement", NestedClassElement$0);
5067
5156
  }
5068
5157
  var ClassElement$0 = $TS($S($E(Decorators), $E(AccessModifier), $E($S(Static, $E(_))), ClassElementDefinition), function($skip, $loc, $0, $1, $2, $3, $4) {
5158
+ var decorators = $1;
5069
5159
  var definition = $4;
5160
+ if (definition.type === "ShorthandMethodDefinition") {
5161
+ return {
5162
+ ...definition,
5163
+ children: definition.children.map((c) => {
5164
+ return {
5165
+ ...c,
5166
+ children: [decorators, ...c.children]
5167
+ };
5168
+ })
5169
+ };
5170
+ }
5070
5171
  return {
5071
5172
  ...definition,
5072
- children: [$1, $2, $3, ...definition.children]
5173
+ children: [decorators, $2, $3, ...definition.children]
5073
5174
  };
5074
5175
  });
5075
5176
  var ClassElement$1 = $TS($S(Static, BracedBlock), function($skip, $loc, $0, $1, $2) {
@@ -5179,7 +5280,14 @@ var require_parser = __commonJS({
5179
5280
  var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E(Hash), IdentifierName))), function($skip, $loc, $0, $1, $2) {
5180
5281
  var at = $1;
5181
5282
  var id = $2;
5182
- return [at, ".", id];
5283
+ return {
5284
+ type: "MemberExpression",
5285
+ children: [at, {
5286
+ type: "PropertyAccess",
5287
+ name: id,
5288
+ children: [".", id]
5289
+ }]
5290
+ };
5183
5291
  });
5184
5292
  var ThisLiteral$2 = AtThis;
5185
5293
  var ThisLiteral$3 = PrivateThis;
@@ -5193,7 +5301,14 @@ var require_parser = __commonJS({
5193
5301
  });
5194
5302
  var PrivateThis$1 = $TV(PrivateIdentifier, function($skip, $loc, $0, $1) {
5195
5303
  var id = $0;
5196
- return ["this.", id];
5304
+ return {
5305
+ type: "MemberExpression",
5306
+ children: ["this", {
5307
+ type: "PropertyAccess",
5308
+ name: id.name,
5309
+ children: [".", id]
5310
+ }]
5311
+ };
5197
5312
  });
5198
5313
  var PrivateThis$$ = [PrivateThis$0, PrivateThis$1];
5199
5314
  function PrivateThis(ctx, state) {
@@ -5280,7 +5395,7 @@ var require_parser = __commonJS({
5280
5395
  function NonNullAssertion(ctx, state) {
5281
5396
  return $EVENT(ctx, state, "NonNullAssertion", NonNullAssertion$0);
5282
5397
  }
5283
- var MemberExpression$0 = $TS($S($C(PrimaryExpression, SuperProperty, MetaProperty), $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
5398
+ var MemberExpression$0 = $TS($S(MemberBase, $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
5284
5399
  var rest = $2;
5285
5400
  if (rest.length || Array.isArray($1)) {
5286
5401
  return processCallMemberExpression({
@@ -5293,6 +5408,13 @@ var require_parser = __commonJS({
5293
5408
  function MemberExpression(ctx, state) {
5294
5409
  return $EVENT(ctx, state, "MemberExpression", MemberExpression$0);
5295
5410
  }
5411
+ var MemberBase$0 = PrimaryExpression;
5412
+ var MemberBase$1 = SuperProperty;
5413
+ var MemberBase$2 = MetaProperty;
5414
+ var MemberBase$$ = [MemberBase$0, MemberBase$1, MemberBase$2];
5415
+ function MemberBase(ctx, state) {
5416
+ return $EVENT_C(ctx, state, "MemberBase", MemberBase$$);
5417
+ }
5296
5418
  var MemberExpressionRest$0 = $TS($S($Q(MultiLineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2) {
5297
5419
  var comments = $1;
5298
5420
  var body = $2;
@@ -5496,7 +5618,7 @@ var require_parser = __commonJS({
5496
5618
  function PropertyAccess(ctx, state) {
5497
5619
  return $EVENT_C(ctx, state, "PropertyAccess", PropertyAccess$$);
5498
5620
  }
5499
- var PropertyGlob$0 = $TS($S(OptionalDot, $Q(MultiLineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
5621
+ var PropertyGlob$0 = $TS($S($S($E($C(QuestionMark, NonNullAssertion)), OptionalDot), $Q(MultiLineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
5500
5622
  var dot = $1;
5501
5623
  var object = $3;
5502
5624
  return {
@@ -7302,7 +7424,76 @@ var require_parser = __commonJS({
7302
7424
  parameters: signature.parameters
7303
7425
  };
7304
7426
  });
7305
- var MethodDefinition$$ = [MethodDefinition$0, MethodDefinition$1];
7427
+ var MethodDefinition$2 = $TS($S(GetOrSet, $E(_), ForbidIndentedApplication, $E($S(MemberBase, $Q(CallExpressionRest))), RestoreIndentedApplication, $E(BracedBlock)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7428
+ var kind = $1;
7429
+ var ws = $2;
7430
+ var value = $4;
7431
+ var block = $6;
7432
+ if (!value)
7433
+ return $skip;
7434
+ const rest = value[1];
7435
+ if (!rest.length) {
7436
+ const base = value[0];
7437
+ let name2;
7438
+ if (base.type === "MemberExpression") {
7439
+ const lastAccess2 = lastAccessInCallExpression(base);
7440
+ if (lastAccess2) {
7441
+ ({ name: name2 } = lastAccess2);
7442
+ }
7443
+ }
7444
+ if (!name2)
7445
+ ({ name: name2 } = base);
7446
+ if (!name2)
7447
+ return $skip;
7448
+ if (name2[0] === "#")
7449
+ name2 = name2.slice(1);
7450
+ const autoReturn = !block || base.type !== "Identifier";
7451
+ return makeGetterMethod(name2, ws, base, block, kind, autoReturn);
7452
+ }
7453
+ let last = rest[rest.length - 1];
7454
+ while (Array.isArray(last)) {
7455
+ last = last[last.length - 1];
7456
+ }
7457
+ switch (last.type) {
7458
+ case "Call":
7459
+ return $skip;
7460
+ case "PropertyAccess":
7461
+ const { name: name2 } = last;
7462
+ return makeGetterMethod(name2, ws, value, block, kind);
7463
+ case "PropertyGlob":
7464
+ return {
7465
+ type: "ShorthandMethodDefinition",
7466
+ children: last.object.properties.map((p) => {
7467
+ const { name: name3, type } = p;
7468
+ let v;
7469
+ switch (type) {
7470
+ case "Identifier":
7471
+ v = insertTrimmingSpace(p, "");
7472
+ break;
7473
+ case "Property":
7474
+ v = insertTrimmingSpace(p.value, "");
7475
+ break;
7476
+ }
7477
+ const exp = processCallMemberExpression({
7478
+ type: "CallExpression",
7479
+ children: [value[0], ...value[1].slice(0, -1), {
7480
+ type: "PropertyAccess",
7481
+ children: [last.dot, {
7482
+ ...v,
7483
+ children: [v.children.slice(0, 2)]
7484
+ // Remove potential delimiter
7485
+ }]
7486
+ }]
7487
+ });
7488
+ return makeGetterMethod(name3, ws, exp, block, kind);
7489
+ })
7490
+ };
7491
+ }
7492
+ const lastAccess = lastAccessInCallExpression({ children: rest });
7493
+ const { name } = lastAccess;
7494
+ return makeGetterMethod(name, ws, value, block, kind);
7495
+ });
7496
+ var MethodDefinition$$ = [MethodDefinition$0, MethodDefinition$1, MethodDefinition$2];
7306
7497
  function MethodDefinition(ctx, state) {
7307
7498
  return $EVENT_C(ctx, state, "MethodDefinition", MethodDefinition$$);
7308
7499
  }
@@ -7388,13 +7579,14 @@ var require_parser = __commonJS({
7388
7579
  return $EVENT_C(ctx, state, "ClassElementName", ClassElementName$$);
7389
7580
  }
7390
7581
  var PrivateIdentifier$0 = $TV($TEXT($S(Hash, IdentifierName)), function($skip, $loc, $0, $1) {
7582
+ var id = $0;
7391
7583
  return {
7392
7584
  type: "Identifier",
7393
- name: $0,
7394
- names: [$0],
7585
+ name: id,
7586
+ names: [id],
7395
7587
  children: [{
7396
7588
  $loc,
7397
- token: $0
7589
+ token: id
7398
7590
  }]
7399
7591
  };
7400
7592
  });
@@ -12430,6 +12622,9 @@ var require_parser = __commonJS({
12430
12622
  exports.RHS = RHS;
12431
12623
  exports.ParenthesizedAssignment = ParenthesizedAssignment;
12432
12624
  exports.UnaryExpression = UnaryExpression;
12625
+ exports.UnaryWithoutParenthesizedAssignment = UnaryWithoutParenthesizedAssignment;
12626
+ exports.UnaryBody = UnaryBody;
12627
+ exports.UnaryWithoutParenthesizedAssignmentBody = UnaryWithoutParenthesizedAssignmentBody;
12433
12628
  exports.UnaryPostfix = UnaryPostfix;
12434
12629
  exports.UpdateExpression = UpdateExpression;
12435
12630
  exports.UpdateExpressionSymbol = UpdateExpressionSymbol;
@@ -12486,6 +12681,7 @@ var require_parser = __commonJS({
12486
12681
  exports.OptionalDot = OptionalDot;
12487
12682
  exports.NonNullAssertion = NonNullAssertion;
12488
12683
  exports.MemberExpression = MemberExpression;
12684
+ exports.MemberBase = MemberBase;
12489
12685
  exports.MemberExpressionRest = MemberExpressionRest;
12490
12686
  exports.MemberExpressionRestBody = MemberExpressionRestBody;
12491
12687
  exports.MemberBracketContent = MemberBracketContent;
@@ -13082,6 +13278,7 @@ var require_parser = __commonJS({
13082
13278
  lastAccessInCallExpression,
13083
13279
  literalValue,
13084
13280
  makeEmptyBlock,
13281
+ makeGetterMethod,
13085
13282
  makeLeftHandSideExpression,
13086
13283
  makeRef,
13087
13284
  maybeRef,
package/dist/main.mjs CHANGED
@@ -1980,6 +1980,66 @@ var require_lib = __commonJS({
1980
1980
  }
1981
1981
  return parts;
1982
1982
  }
1983
+ function duplicateBlock(block) {
1984
+ const expressions = [...block.expressions];
1985
+ const children = [...block.children];
1986
+ children.splice(children.indexOf(block.expressions), 1, expressions);
1987
+ return {
1988
+ ...block,
1989
+ expressions,
1990
+ children
1991
+ };
1992
+ }
1993
+ function makeGetterMethod(name, ws, value, block, kind = { token: "get" }, autoReturn = true) {
1994
+ const { token } = kind;
1995
+ ws = insertTrimmingSpace(ws, "");
1996
+ let setVal;
1997
+ const parameters = token === "get" ? {
1998
+ type: "Parameters",
1999
+ children: ["()"],
2000
+ names: [],
2001
+ implicit: true
2002
+ } : {
2003
+ type: "Parameters",
2004
+ children: ["(", setVal = makeRef("value"), ")"],
2005
+ names: [],
2006
+ implicit: false
2007
+ };
2008
+ let expressions;
2009
+ if (block) {
2010
+ block = duplicateBlock(block);
2011
+ expressions = block.expressions;
2012
+ } else {
2013
+ expressions = [];
2014
+ block = {
2015
+ type: "BlockStatement",
2016
+ expressions,
2017
+ children: ["{ ", expressions, " }"]
2018
+ };
2019
+ }
2020
+ if (autoReturn) {
2021
+ const finalStatement = token === "get" ? [[expressions[0]?.[0] || "", ws], wrapWithReturn(value)] : [[expressions[0]?.[0] || "", ws], [value, " = ", setVal]];
2022
+ expressions.push(finalStatement);
2023
+ }
2024
+ const children = [kind, " ", name, parameters, block];
2025
+ return {
2026
+ type: "MethodDefinition",
2027
+ children,
2028
+ name,
2029
+ signature: {
2030
+ type: "MethodSignature",
2031
+ modifier: {
2032
+ get: token === "get",
2033
+ set: token === "set",
2034
+ async: false
2035
+ },
2036
+ name,
2037
+ returnType: void 0
2038
+ },
2039
+ block,
2040
+ parameters
2041
+ };
2042
+ }
1983
2043
  function needsRef(expression, base = "ref") {
1984
2044
  switch (expression.type) {
1985
2045
  case "Ref":
@@ -3278,6 +3338,7 @@ var require_lib = __commonJS({
3278
3338
  literalValue,
3279
3339
  makeAsConst,
3280
3340
  makeEmptyBlock,
3341
+ makeGetterMethod,
3281
3342
  makeLeftHandSideExpression,
3282
3343
  makeRef,
3283
3344
  maybeRef,
@@ -3373,6 +3434,9 @@ var require_parser = __commonJS({
3373
3434
  RHS,
3374
3435
  ParenthesizedAssignment,
3375
3436
  UnaryExpression,
3437
+ UnaryWithoutParenthesizedAssignment,
3438
+ UnaryBody,
3439
+ UnaryWithoutParenthesizedAssignmentBody,
3376
3440
  UnaryPostfix,
3377
3441
  UpdateExpression,
3378
3442
  UpdateExpressionSymbol,
@@ -3429,6 +3493,7 @@ var require_parser = __commonJS({
3429
3493
  OptionalDot,
3430
3494
  NonNullAssertion,
3431
3495
  MemberExpression,
3496
+ MemberBase,
3432
3497
  MemberExpressionRest,
3433
3498
  MemberExpressionRestBody,
3434
3499
  MemberBracketContent,
@@ -4647,7 +4712,7 @@ var require_parser = __commonJS({
4647
4712
  function ParenthesizedAssignment(ctx, state) {
4648
4713
  return $EVENT(ctx, state, "ParenthesizedAssignment", ParenthesizedAssignment$0);
4649
4714
  }
4650
- var UnaryExpression$0 = $TS($S($Q(UnaryOp), $C(UpdateExpression, NestedNonAssignmentExtendedExpression), $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4715
+ var UnaryExpression$0 = $TS($S($Q(UnaryOp), UnaryBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4651
4716
  var pre = $1;
4652
4717
  var exp = $2;
4653
4718
  var post = $3;
@@ -4663,6 +4728,30 @@ var require_parser = __commonJS({
4663
4728
  function UnaryExpression(ctx, state) {
4664
4729
  return $EVENT_C(ctx, state, "UnaryExpression", UnaryExpression$$);
4665
4730
  }
4731
+ var UnaryWithoutParenthesizedAssignment$0 = $TS($S($Q(UnaryOp), UnaryWithoutParenthesizedAssignmentBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
4732
+ var pre = $1;
4733
+ var exp = $2;
4734
+ var post = $3;
4735
+ return processUnaryExpression(pre, exp, post);
4736
+ });
4737
+ function UnaryWithoutParenthesizedAssignment(ctx, state) {
4738
+ return $EVENT(ctx, state, "UnaryWithoutParenthesizedAssignment", UnaryWithoutParenthesizedAssignment$0);
4739
+ }
4740
+ var UnaryBody$0 = ParenthesizedAssignment;
4741
+ var UnaryBody$1 = UpdateExpression;
4742
+ var UnaryBody$2 = ExpressionizedStatementWithTrailingCallExpressions;
4743
+ var UnaryBody$3 = NestedNonAssignmentExtendedExpression;
4744
+ var UnaryBody$$ = [UnaryBody$0, UnaryBody$1, UnaryBody$2, UnaryBody$3];
4745
+ function UnaryBody(ctx, state) {
4746
+ return $EVENT_C(ctx, state, "UnaryBody", UnaryBody$$);
4747
+ }
4748
+ var UnaryWithoutParenthesizedAssignmentBody$0 = UpdateExpression;
4749
+ var UnaryWithoutParenthesizedAssignmentBody$1 = ExpressionizedStatementWithTrailingCallExpressions;
4750
+ var UnaryWithoutParenthesizedAssignmentBody$2 = NestedNonAssignmentExtendedExpression;
4751
+ var UnaryWithoutParenthesizedAssignmentBody$$ = [UnaryWithoutParenthesizedAssignmentBody$0, UnaryWithoutParenthesizedAssignmentBody$1, UnaryWithoutParenthesizedAssignmentBody$2];
4752
+ function UnaryWithoutParenthesizedAssignmentBody(ctx, state) {
4753
+ return $EVENT_C(ctx, state, "UnaryWithoutParenthesizedAssignmentBody", UnaryWithoutParenthesizedAssignmentBody$$);
4754
+ }
4666
4755
  var UnaryPostfix$0 = QuestionMark;
4667
4756
  var UnaryPostfix$1 = $T($P($S(__, $C(As, Satisfies), Type)), function(value) {
4668
4757
  return { "ts": true, "children": value };
@@ -4671,7 +4760,7 @@ var require_parser = __commonJS({
4671
4760
  function UnaryPostfix(ctx, state) {
4672
4761
  return $EVENT_C(ctx, state, "UnaryPostfix", UnaryPostfix$$);
4673
4762
  }
4674
- var UpdateExpression$0 = $TS($S(UpdateExpressionSymbol, UnaryExpression), function($skip, $loc, $0, $1, $2) {
4763
+ var UpdateExpression$0 = $TS($S(UpdateExpressionSymbol, UnaryWithoutParenthesizedAssignment), function($skip, $loc, $0, $1, $2) {
4675
4764
  return {
4676
4765
  type: "UpdateExpression",
4677
4766
  assigned: $2,
@@ -5064,10 +5153,22 @@ var require_parser = __commonJS({
5064
5153
  return $EVENT(ctx, state, "NestedClassElement", NestedClassElement$0);
5065
5154
  }
5066
5155
  var ClassElement$0 = $TS($S($E(Decorators), $E(AccessModifier), $E($S(Static, $E(_))), ClassElementDefinition), function($skip, $loc, $0, $1, $2, $3, $4) {
5156
+ var decorators = $1;
5067
5157
  var definition = $4;
5158
+ if (definition.type === "ShorthandMethodDefinition") {
5159
+ return {
5160
+ ...definition,
5161
+ children: definition.children.map((c) => {
5162
+ return {
5163
+ ...c,
5164
+ children: [decorators, ...c.children]
5165
+ };
5166
+ })
5167
+ };
5168
+ }
5068
5169
  return {
5069
5170
  ...definition,
5070
- children: [$1, $2, $3, ...definition.children]
5171
+ children: [decorators, $2, $3, ...definition.children]
5071
5172
  };
5072
5173
  });
5073
5174
  var ClassElement$1 = $TS($S(Static, BracedBlock), function($skip, $loc, $0, $1, $2) {
@@ -5177,7 +5278,14 @@ var require_parser = __commonJS({
5177
5278
  var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E(Hash), IdentifierName))), function($skip, $loc, $0, $1, $2) {
5178
5279
  var at = $1;
5179
5280
  var id = $2;
5180
- return [at, ".", id];
5281
+ return {
5282
+ type: "MemberExpression",
5283
+ children: [at, {
5284
+ type: "PropertyAccess",
5285
+ name: id,
5286
+ children: [".", id]
5287
+ }]
5288
+ };
5181
5289
  });
5182
5290
  var ThisLiteral$2 = AtThis;
5183
5291
  var ThisLiteral$3 = PrivateThis;
@@ -5191,7 +5299,14 @@ var require_parser = __commonJS({
5191
5299
  });
5192
5300
  var PrivateThis$1 = $TV(PrivateIdentifier, function($skip, $loc, $0, $1) {
5193
5301
  var id = $0;
5194
- return ["this.", id];
5302
+ return {
5303
+ type: "MemberExpression",
5304
+ children: ["this", {
5305
+ type: "PropertyAccess",
5306
+ name: id.name,
5307
+ children: [".", id]
5308
+ }]
5309
+ };
5195
5310
  });
5196
5311
  var PrivateThis$$ = [PrivateThis$0, PrivateThis$1];
5197
5312
  function PrivateThis(ctx, state) {
@@ -5278,7 +5393,7 @@ var require_parser = __commonJS({
5278
5393
  function NonNullAssertion(ctx, state) {
5279
5394
  return $EVENT(ctx, state, "NonNullAssertion", NonNullAssertion$0);
5280
5395
  }
5281
- var MemberExpression$0 = $TS($S($C(PrimaryExpression, SuperProperty, MetaProperty), $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
5396
+ var MemberExpression$0 = $TS($S(MemberBase, $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
5282
5397
  var rest = $2;
5283
5398
  if (rest.length || Array.isArray($1)) {
5284
5399
  return processCallMemberExpression({
@@ -5291,6 +5406,13 @@ var require_parser = __commonJS({
5291
5406
  function MemberExpression(ctx, state) {
5292
5407
  return $EVENT(ctx, state, "MemberExpression", MemberExpression$0);
5293
5408
  }
5409
+ var MemberBase$0 = PrimaryExpression;
5410
+ var MemberBase$1 = SuperProperty;
5411
+ var MemberBase$2 = MetaProperty;
5412
+ var MemberBase$$ = [MemberBase$0, MemberBase$1, MemberBase$2];
5413
+ function MemberBase(ctx, state) {
5414
+ return $EVENT_C(ctx, state, "MemberBase", MemberBase$$);
5415
+ }
5294
5416
  var MemberExpressionRest$0 = $TS($S($Q(MultiLineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2) {
5295
5417
  var comments = $1;
5296
5418
  var body = $2;
@@ -5494,7 +5616,7 @@ var require_parser = __commonJS({
5494
5616
  function PropertyAccess(ctx, state) {
5495
5617
  return $EVENT_C(ctx, state, "PropertyAccess", PropertyAccess$$);
5496
5618
  }
5497
- var PropertyGlob$0 = $TS($S(OptionalDot, $Q(MultiLineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
5619
+ var PropertyGlob$0 = $TS($S($S($E($C(QuestionMark, NonNullAssertion)), OptionalDot), $Q(MultiLineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
5498
5620
  var dot = $1;
5499
5621
  var object = $3;
5500
5622
  return {
@@ -7300,7 +7422,76 @@ var require_parser = __commonJS({
7300
7422
  parameters: signature.parameters
7301
7423
  };
7302
7424
  });
7303
- var MethodDefinition$$ = [MethodDefinition$0, MethodDefinition$1];
7425
+ var MethodDefinition$2 = $TS($S(GetOrSet, $E(_), ForbidIndentedApplication, $E($S(MemberBase, $Q(CallExpressionRest))), RestoreIndentedApplication, $E(BracedBlock)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7426
+ var kind = $1;
7427
+ var ws = $2;
7428
+ var value = $4;
7429
+ var block = $6;
7430
+ if (!value)
7431
+ return $skip;
7432
+ const rest = value[1];
7433
+ if (!rest.length) {
7434
+ const base = value[0];
7435
+ let name2;
7436
+ if (base.type === "MemberExpression") {
7437
+ const lastAccess2 = lastAccessInCallExpression(base);
7438
+ if (lastAccess2) {
7439
+ ({ name: name2 } = lastAccess2);
7440
+ }
7441
+ }
7442
+ if (!name2)
7443
+ ({ name: name2 } = base);
7444
+ if (!name2)
7445
+ return $skip;
7446
+ if (name2[0] === "#")
7447
+ name2 = name2.slice(1);
7448
+ const autoReturn = !block || base.type !== "Identifier";
7449
+ return makeGetterMethod(name2, ws, base, block, kind, autoReturn);
7450
+ }
7451
+ let last = rest[rest.length - 1];
7452
+ while (Array.isArray(last)) {
7453
+ last = last[last.length - 1];
7454
+ }
7455
+ switch (last.type) {
7456
+ case "Call":
7457
+ return $skip;
7458
+ case "PropertyAccess":
7459
+ const { name: name2 } = last;
7460
+ return makeGetterMethod(name2, ws, value, block, kind);
7461
+ case "PropertyGlob":
7462
+ return {
7463
+ type: "ShorthandMethodDefinition",
7464
+ children: last.object.properties.map((p) => {
7465
+ const { name: name3, type } = p;
7466
+ let v;
7467
+ switch (type) {
7468
+ case "Identifier":
7469
+ v = insertTrimmingSpace(p, "");
7470
+ break;
7471
+ case "Property":
7472
+ v = insertTrimmingSpace(p.value, "");
7473
+ break;
7474
+ }
7475
+ const exp = processCallMemberExpression({
7476
+ type: "CallExpression",
7477
+ children: [value[0], ...value[1].slice(0, -1), {
7478
+ type: "PropertyAccess",
7479
+ children: [last.dot, {
7480
+ ...v,
7481
+ children: [v.children.slice(0, 2)]
7482
+ // Remove potential delimiter
7483
+ }]
7484
+ }]
7485
+ });
7486
+ return makeGetterMethod(name3, ws, exp, block, kind);
7487
+ })
7488
+ };
7489
+ }
7490
+ const lastAccess = lastAccessInCallExpression({ children: rest });
7491
+ const { name } = lastAccess;
7492
+ return makeGetterMethod(name, ws, value, block, kind);
7493
+ });
7494
+ var MethodDefinition$$ = [MethodDefinition$0, MethodDefinition$1, MethodDefinition$2];
7304
7495
  function MethodDefinition(ctx, state) {
7305
7496
  return $EVENT_C(ctx, state, "MethodDefinition", MethodDefinition$$);
7306
7497
  }
@@ -7386,13 +7577,14 @@ var require_parser = __commonJS({
7386
7577
  return $EVENT_C(ctx, state, "ClassElementName", ClassElementName$$);
7387
7578
  }
7388
7579
  var PrivateIdentifier$0 = $TV($TEXT($S(Hash, IdentifierName)), function($skip, $loc, $0, $1) {
7580
+ var id = $0;
7389
7581
  return {
7390
7582
  type: "Identifier",
7391
- name: $0,
7392
- names: [$0],
7583
+ name: id,
7584
+ names: [id],
7393
7585
  children: [{
7394
7586
  $loc,
7395
- token: $0
7587
+ token: id
7396
7588
  }]
7397
7589
  };
7398
7590
  });
@@ -12428,6 +12620,9 @@ var require_parser = __commonJS({
12428
12620
  exports.RHS = RHS;
12429
12621
  exports.ParenthesizedAssignment = ParenthesizedAssignment;
12430
12622
  exports.UnaryExpression = UnaryExpression;
12623
+ exports.UnaryWithoutParenthesizedAssignment = UnaryWithoutParenthesizedAssignment;
12624
+ exports.UnaryBody = UnaryBody;
12625
+ exports.UnaryWithoutParenthesizedAssignmentBody = UnaryWithoutParenthesizedAssignmentBody;
12431
12626
  exports.UnaryPostfix = UnaryPostfix;
12432
12627
  exports.UpdateExpression = UpdateExpression;
12433
12628
  exports.UpdateExpressionSymbol = UpdateExpressionSymbol;
@@ -12484,6 +12679,7 @@ var require_parser = __commonJS({
12484
12679
  exports.OptionalDot = OptionalDot;
12485
12680
  exports.NonNullAssertion = NonNullAssertion;
12486
12681
  exports.MemberExpression = MemberExpression;
12682
+ exports.MemberBase = MemberBase;
12487
12683
  exports.MemberExpressionRest = MemberExpressionRest;
12488
12684
  exports.MemberExpressionRestBody = MemberExpressionRestBody;
12489
12685
  exports.MemberBracketContent = MemberBracketContent;
@@ -13080,6 +13276,7 @@ var require_parser = __commonJS({
13080
13276
  lastAccessInCallExpression,
13081
13277
  literalValue,
13082
13278
  makeEmptyBlock,
13279
+ makeGetterMethod,
13083
13280
  makeLeftHandSideExpression,
13084
13281
  makeRef,
13085
13282
  maybeRef,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@danielx/civet",
3
3
  "type": "commonjs",
4
- "version": "0.6.33",
4
+ "version": "0.6.35",
5
5
  "description": "CoffeeScript style syntax for TypeScript",
6
6
  "main": "dist/main.js",
7
7
  "module": "dist/main.mjs",
@@ -66,7 +66,7 @@
66
66
  "unplugin": "^1.4.0"
67
67
  },
68
68
  "devDependencies": {
69
- "@danielx/civet": "^0.6.26",
69
+ "@danielx/civet": "0.6.34",
70
70
  "@danielx/hera": "^0.8.10",
71
71
  "@types/assert": "^1.5.6",
72
72
  "@types/mocha": "^9.1.1",