@danielx/civet 0.5.93 → 0.5.94

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
@@ -385,6 +385,82 @@ var require_lib = __commonJS({
385
385
  return '"' + str.replace(/"/g, '\\"') + '"';
386
386
  }
387
387
  }
388
+ function lastAccessInCallExpression(exp) {
389
+ let children, i;
390
+ do {
391
+ ({ children } = exp);
392
+ i = children.length - 1;
393
+ while (i >= 0 && (children[i].type === "Call" || children[i].type === "NonNullAssertion" || children[i].type === "Optional"))
394
+ i--;
395
+ if (i < 0)
396
+ return;
397
+ } while (children[i].type === "MemberExpression" && (exp = children[i]));
398
+ return children[i];
399
+ }
400
+ function convertMethodToFunction(method) {
401
+ const { signature, block } = method;
402
+ let { modifier } = signature;
403
+ if (modifier) {
404
+ if (modifier.get || modifier.set) {
405
+ return;
406
+ } else if (modifier.async) {
407
+ modifier = [modifier.children[0][0], " function ", ...modifier.children.slice(1)];
408
+ } else {
409
+ modifier = ["function ", ...modifier.children];
410
+ }
411
+ } else {
412
+ modifier = "function ";
413
+ }
414
+ return {
415
+ ...signature,
416
+ id: signature.name,
417
+ type: "FunctionExpression",
418
+ children: [
419
+ [modifier, ...signature.children.slice(1)],
420
+ block
421
+ ],
422
+ block
423
+ };
424
+ }
425
+ function convertObjectToJSXAttributes(obj) {
426
+ const { content } = obj;
427
+ const parts = [];
428
+ const rest = [];
429
+ for (let i = 0; i < content.length; i++) {
430
+ if (i > 0)
431
+ parts.push(" ");
432
+ const part = content[i];
433
+ switch (part.type) {
434
+ case "Identifier":
435
+ parts.push([part.name, "={", part.name, "}"]);
436
+ break;
437
+ case "Property":
438
+ if (part.name.type === "ComputedPropertyName") {
439
+ rest.push(part);
440
+ } else {
441
+ parts.push([part.name, "={", insertTrimmingSpace(part.value, ""), "}"]);
442
+ }
443
+ break;
444
+ case "SpreadProperty":
445
+ parts.push(["{", part.dots, part.value, "}"]);
446
+ break;
447
+ case "MethodDefinition":
448
+ const func = convertMethodToFunction(part);
449
+ if (func) {
450
+ parts.push([part.name, "={", convertMethodToFunction(part), "}"]);
451
+ } else {
452
+ rest.push(part);
453
+ }
454
+ break;
455
+ default:
456
+ throw new Error(`invalid object literal type in JSX attribute: ${part.type}`);
457
+ }
458
+ }
459
+ if (rest.length) {
460
+ parts.push(["{...{", ...rest, "}}"]);
461
+ }
462
+ return parts;
463
+ }
388
464
  function processCoffeeInterpolation(s, parts, e, $loc) {
389
465
  if (parts.length === 0 || parts.length === 1 && parts[0].token != null) {
390
466
  return {
@@ -533,6 +609,8 @@ var require_lib = __commonJS({
533
609
  module2.exports = {
534
610
  blockWithPrefix,
535
611
  clone,
612
+ convertMethodToFunction,
613
+ convertObjectToJSXAttributes,
536
614
  deepCopy,
537
615
  findAncestor,
538
616
  forRange,
@@ -548,6 +626,7 @@ var require_lib = __commonJS({
548
626
  hoistRefDecs,
549
627
  insertTrimmingSpace,
550
628
  isFunction,
629
+ lastAccessInCallExpression,
551
630
  literalValue,
552
631
  modifyString,
553
632
  processCoffeeInterpolation,
@@ -1051,6 +1130,7 @@ ${input.slice(result.pos)}
1051
1130
  SliceParameters,
1052
1131
  PropertyAccess,
1053
1132
  PropertyGlob,
1133
+ PropertyBind,
1054
1134
  SuperProperty,
1055
1135
  MetaProperty,
1056
1136
  ReturnValue,
@@ -1838,7 +1918,7 @@ ${input.slice(result.pos)}
1838
1918
  var $R48 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1839
1919
  var $R49 = $R(new RegExp("\\s", "suy"));
1840
1920
  var $R50 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1841
- var $R51 = $R(new RegExp("[\\s>]", "suy"));
1921
+ var $R51 = $R(new RegExp("[\\s>]|\\/>", "suy"));
1842
1922
  var $R52 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
1843
1923
  var $R53 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
1844
1924
  var $R54 = $R(new RegExp("[<>]", "suy"));
@@ -4147,14 +4227,14 @@ ${input.slice(result.pos)}
4147
4227
  }
4148
4228
  var CallExpression$0 = $TS($S($EXPECT($L14, fail, 'CallExpression "super"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
4149
4229
  var rest = $3;
4150
- return module2.processGlob({
4230
+ return module2.processCallMemberExpression({
4151
4231
  type: "CallExpression",
4152
4232
  children: [$1, ...$2, ...rest.flat()]
4153
4233
  });
4154
4234
  });
4155
4235
  var CallExpression$1 = $TS($S($EXPECT($L15, fail, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
4156
4236
  var rest = $3;
4157
- return module2.processGlob({
4237
+ return module2.processCallMemberExpression({
4158
4238
  type: "CallExpression",
4159
4239
  children: [$1, ...$2, ...rest.flat()]
4160
4240
  });
@@ -4165,7 +4245,7 @@ ${input.slice(result.pos)}
4165
4245
  var rest = $3;
4166
4246
  if (rest.length || trailing.length) {
4167
4247
  rest = rest.flat();
4168
- return module2.processGlob({
4248
+ return module2.processCallMemberExpression({
4169
4249
  type: "CallExpression",
4170
4250
  children: [member, ...trailing, ...rest]
4171
4251
  });
@@ -4308,7 +4388,7 @@ ${input.slice(result.pos)}
4308
4388
  var MemberExpression$0 = $TS($S($C(PrimaryExpression, SuperProperty, MetaProperty), $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
4309
4389
  var rest = $2;
4310
4390
  if (rest.length || Array.isArray($1)) {
4311
- return module2.processGlob({
4391
+ return module2.processCallMemberExpression({
4312
4392
  type: "MemberExpression",
4313
4393
  children: [$1, ...rest].flat()
4314
4394
  });
@@ -4348,7 +4428,8 @@ ${input.slice(result.pos)}
4348
4428
  });
4349
4429
  var MemberExpressionRest$1 = PropertyAccess;
4350
4430
  var MemberExpressionRest$2 = PropertyGlob;
4351
- var MemberExpressionRest$3 = NonNullAssertion;
4431
+ var MemberExpressionRest$3 = PropertyBind;
4432
+ var MemberExpressionRest$4 = NonNullAssertion;
4352
4433
  function MemberExpressionRest(state) {
4353
4434
  let eventData;
4354
4435
  if (state.events) {
@@ -4360,12 +4441,12 @@ ${input.slice(result.pos)}
4360
4441
  }
4361
4442
  }
4362
4443
  if (state.tokenize) {
4363
- const result = $TOKEN("MemberExpressionRest", state, MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state));
4444
+ const result = $TOKEN("MemberExpressionRest", state, MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state) || MemberExpressionRest$4(state));
4364
4445
  if (state.events)
4365
4446
  state.events.exit?.("MemberExpressionRest", state, result, eventData);
4366
4447
  return result;
4367
4448
  } else {
4368
- const result = MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state);
4449
+ const result = MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state) || MemberExpressionRest$4(state);
4369
4450
  if (state.events)
4370
4451
  state.events.exit?.("MemberExpressionRest", state, result, eventData);
4371
4452
  return result;
@@ -4575,9 +4656,11 @@ ${input.slice(result.pos)}
4575
4656
  }
4576
4657
  }
4577
4658
  var PropertyGlob$0 = $TS($S(OptionalDot, BracedObjectLiteral), function($skip, $loc, $0, $1, $2) {
4659
+ var dot = $1;
4578
4660
  var object = $2;
4579
4661
  return {
4580
4662
  type: "PropertyGlob",
4663
+ dot,
4581
4664
  object,
4582
4665
  children: $0
4583
4666
  };
@@ -4604,6 +4687,38 @@ ${input.slice(result.pos)}
4604
4687
  return result;
4605
4688
  }
4606
4689
  }
4690
+ var PropertyBind$0 = $TS($S($E($C(QuestionMark, NonNullAssertion)), At, OptionalDot, $C(IdentifierName, PrivateIdentifier)), function($skip, $loc, $0, $1, $2, $3, $4) {
4691
+ var modifier = $1;
4692
+ var dot = $3;
4693
+ var id = $4;
4694
+ return {
4695
+ type: "PropertyBind",
4696
+ name: id.name,
4697
+ children: [modifier, dot, id]
4698
+ };
4699
+ });
4700
+ function PropertyBind(state) {
4701
+ let eventData;
4702
+ if (state.events) {
4703
+ const result = state.events.enter?.("PropertyBind", state);
4704
+ if (result) {
4705
+ if (result.cache)
4706
+ return result.cache;
4707
+ eventData = result.data;
4708
+ }
4709
+ }
4710
+ if (state.tokenize) {
4711
+ const result = $TOKEN("PropertyBind", state, PropertyBind$0(state));
4712
+ if (state.events)
4713
+ state.events.exit?.("PropertyBind", state, result, eventData);
4714
+ return result;
4715
+ } else {
4716
+ const result = PropertyBind$0(state);
4717
+ if (state.events)
4718
+ state.events.exit?.("PropertyBind", state, result, eventData);
4719
+ return result;
4720
+ }
4721
+ }
4607
4722
  var SuperProperty$0 = $S($EXPECT($L14, fail, 'SuperProperty "super"'), MemberBracketContent);
4608
4723
  var SuperProperty$1 = $S($EXPECT($L14, fail, 'SuperProperty "super"'), $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
4609
4724
  function SuperProperty(state) {
@@ -8124,11 +8239,11 @@ ${input.slice(result.pos)}
8124
8239
  return result;
8125
8240
  }
8126
8241
  }
8127
- var PropertyDefinition$0 = $TS($S(__, At, IdentifierReference), function($skip, $loc, $0, $1, $2, $3) {
8242
+ var PropertyDefinition$0 = $TS($S(__, AtThis, IdentifierReference), function($skip, $loc, $0, $1, $2, $3) {
8128
8243
  var ws = $1;
8129
8244
  var at = $2;
8130
8245
  var id = $3;
8131
- const value = [{ ...at, token: "this." }, id];
8246
+ const value = [at, ".", id];
8132
8247
  return {
8133
8248
  type: "Property",
8134
8249
  children: [ws, id, ": ", ...value],
@@ -8186,26 +8301,19 @@ ${input.slice(result.pos)}
8186
8301
  if (value.type === "Identifier") {
8187
8302
  return { ...value, children: [ws, ...value.children] };
8188
8303
  }
8189
- let exp = value, children, i;
8190
- do {
8191
- ({ children } = exp);
8192
- i = children.length - 1;
8193
- while (i >= 0 && (children[i].type === "Call" || children[i].type === "NonNullAssertion" || children[i].type === "Optional"))
8194
- i--;
8195
- if (i < 0)
8196
- return $skip;
8197
- } while (children[i].type === "MemberExpression" && (exp = children[i]));
8198
- const last = children[i];
8304
+ const last = lastAccessInCallExpression(value);
8305
+ if (!last)
8306
+ return $skip;
8199
8307
  let name;
8200
- if (last.name) {
8201
- ({ name } = last);
8202
- } else if (last.type === "Index") {
8308
+ if (last.type === "Index") {
8203
8309
  name = {
8204
8310
  type: "ComputedPropertyName",
8205
8311
  children: last.children
8206
8312
  };
8207
8313
  } else {
8208
- return $skip;
8314
+ ({ name } = last);
8315
+ if (!name)
8316
+ return $skip;
8209
8317
  }
8210
8318
  return {
8211
8319
  type: "Property",
@@ -12511,7 +12619,7 @@ ${input.slice(result.pos)}
12511
12619
  return result;
12512
12620
  }
12513
12621
  }
12514
- var ExportDeclaration$0 = $TS($S(Export, __, Default, __, $C(HoistableDeclaration, ClassDeclaration, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12622
+ var ExportDeclaration$0 = $TS($S($E(Decorators), Export, __, Default, __, $C(HoistableDeclaration, ClassDeclaration, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12515
12623
  return { type: "ExportDeclaration", children: $0 };
12516
12624
  });
12517
12625
  var ExportDeclaration$1 = $TS($S(Export, __, ExportFromClause, __, FromClause), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
@@ -17192,42 +17300,7 @@ ${input.slice(result.pos)}
17192
17300
  }
17193
17301
  }
17194
17302
  var JSXAttribute$0 = $TS($S(BracedObjectLiteral), function($skip, $loc, $0, $1) {
17195
- const { children } = $1;
17196
- const parts = [];
17197
- const rest = [];
17198
- for (let i = 1; i < children.length - 1; i++) {
17199
- if (i > 1)
17200
- parts.push(" ");
17201
- const part = children[i];
17202
- switch (part.type) {
17203
- case "Identifier":
17204
- parts.push([part.name, "={", part.name, "}"]);
17205
- break;
17206
- case "Property":
17207
- if (part.name.type === "ComputedPropertyName") {
17208
- rest.push(part);
17209
- } else {
17210
- parts.push([part.name, "={", insertTrimmingSpace(part.value, ""), "}"]);
17211
- }
17212
- break;
17213
- case "SpreadProperty":
17214
- parts.push(["{", part.dots, part.value, "}"]);
17215
- break;
17216
- case "MethodDefinition":
17217
- try {
17218
- parts.push([part.name, "={", module2.convertMethodToFunction(part), "}"]);
17219
- } catch {
17220
- rest.push(part);
17221
- }
17222
- break;
17223
- default:
17224
- throw new Error(`invalid object literal type in JSX attribute: ${part.type}`);
17225
- }
17226
- }
17227
- if (rest.length) {
17228
- parts.push(["{...{", ...rest, "}}"]);
17229
- }
17230
- return parts;
17303
+ return convertObjectToJSXAttributes($1);
17231
17304
  });
17232
17305
  var JSXAttribute$1 = $TS($S(JSXAttributeName, $C(JSXAttributeInitializer, $Y(JSXAttributeSpace))), function($skip, $loc, $0, $1, $2) {
17233
17306
  var name = $1;
@@ -17247,16 +17320,73 @@ ${input.slice(result.pos)}
17247
17320
  }
17248
17321
  });
17249
17322
  var JSXAttribute$2 = $S(InsertInlineOpenBrace, DotDotDot, InlineJSXAttributeValue, InsertCloseBrace, $Y(JSXAttributeSpace));
17250
- var JSXAttribute$3 = $TS($S($EXPECT($L13, fail, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
17323
+ var JSXAttribute$3 = $TS($S(AtThis, $E(Identifier), $Q(InlineJSXCallExpressionRest), $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3, $4) {
17324
+ var at = $1;
17325
+ var id = $2;
17326
+ var rest = $3;
17327
+ const access = id && {
17328
+ type: "PropertyAccess",
17329
+ children: [".", id],
17330
+ name: id
17331
+ };
17332
+ const expr = module2.processCallMemberExpression({
17333
+ type: "CallExpression",
17334
+ children: [at, access, ...rest.flat()]
17335
+ });
17336
+ const last = lastAccessInCallExpression(expr);
17337
+ if (!last)
17338
+ return $skip;
17339
+ let name;
17340
+ if (last.type === "Index") {
17341
+ return [
17342
+ "{...{",
17343
+ { ...last, type: "ComputedPropertyName" },
17344
+ ": ",
17345
+ expr,
17346
+ "}}"
17347
+ ];
17348
+ } else if (last.name) {
17349
+ return [last.name, "={", expr, "}"];
17350
+ }
17351
+ return $skip;
17352
+ });
17353
+ var JSXAttribute$4 = $TS($S(Identifier, $P(InlineJSXCallExpressionRest), $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
17354
+ var id = $1;
17355
+ var rest = $2;
17356
+ const expr = module2.processCallMemberExpression({
17357
+ type: "CallExpression",
17358
+ children: [id, ...rest.flat()]
17359
+ });
17360
+ if (expr.type === "ObjectExpression") {
17361
+ return convertObjectToJSXAttributes(expr);
17362
+ }
17363
+ const last = lastAccessInCallExpression(expr);
17364
+ if (!last)
17365
+ return $skip;
17366
+ let name;
17367
+ if (last.type === "Index") {
17368
+ return [
17369
+ "{...{",
17370
+ { ...last, type: "ComputedPropertyName" },
17371
+ ": ",
17372
+ expr,
17373
+ "}}"
17374
+ ];
17375
+ } else if (last.name) {
17376
+ return [last.name, "={", expr, "}"];
17377
+ }
17378
+ return $skip;
17379
+ });
17380
+ var JSXAttribute$5 = $TS($S($EXPECT($L13, fail, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
17251
17381
  return [" ", "id=", $2];
17252
17382
  });
17253
- var JSXAttribute$4 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
17383
+ var JSXAttribute$6 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
17254
17384
  return {
17255
17385
  type: "JSXClass",
17256
17386
  class: $2
17257
17387
  };
17258
17388
  });
17259
- var JSXAttribute$5 = $TS($S($TEXT($EXPECT($R6, fail, "JSXAttribute /[!+-]/")), JSXAttributeName), function($skip, $loc, $0, $1, $2) {
17389
+ var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R6, fail, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
17260
17390
  var toggle = $1;
17261
17391
  var id = $2;
17262
17392
  const value = toggle === "+" ? "true" : "false";
@@ -17273,18 +17403,18 @@ ${input.slice(result.pos)}
17273
17403
  }
17274
17404
  }
17275
17405
  if (state.tokenize) {
17276
- const result = $TOKEN("JSXAttribute", state, JSXAttribute$0(state) || JSXAttribute$1(state) || JSXAttribute$2(state) || JSXAttribute$3(state) || JSXAttribute$4(state) || JSXAttribute$5(state));
17406
+ const result = $TOKEN("JSXAttribute", state, JSXAttribute$0(state) || JSXAttribute$1(state) || JSXAttribute$2(state) || JSXAttribute$3(state) || JSXAttribute$4(state) || JSXAttribute$5(state) || JSXAttribute$6(state) || JSXAttribute$7(state));
17277
17407
  if (state.events)
17278
17408
  state.events.exit?.("JSXAttribute", state, result, eventData);
17279
17409
  return result;
17280
17410
  } else {
17281
- const result = JSXAttribute$0(state) || JSXAttribute$1(state) || JSXAttribute$2(state) || JSXAttribute$3(state) || JSXAttribute$4(state) || JSXAttribute$5(state);
17411
+ const result = JSXAttribute$0(state) || JSXAttribute$1(state) || JSXAttribute$2(state) || JSXAttribute$3(state) || JSXAttribute$4(state) || JSXAttribute$5(state) || JSXAttribute$6(state) || JSXAttribute$7(state);
17282
17412
  if (state.events)
17283
17413
  state.events.exit?.("JSXAttribute", state, result, eventData);
17284
17414
  return result;
17285
17415
  }
17286
17416
  }
17287
- var JSXAttributeSpace$0 = $R$0($EXPECT($R51, fail, "JSXAttributeSpace /[\\s>]/"));
17417
+ var JSXAttributeSpace$0 = $R$0($EXPECT($R51, fail, "JSXAttributeSpace /[\\s>]|\\/>/"));
17288
17418
  function JSXAttributeSpace(state) {
17289
17419
  let eventData;
17290
17420
  if (state.events) {
@@ -17387,12 +17517,14 @@ ${input.slice(result.pos)}
17387
17517
  var JSXAttributeValue$0 = $S(OpenBrace, PostfixedExpression, $E(Whitespace), CloseBrace);
17388
17518
  var JSXAttributeValue$1 = JSXElement;
17389
17519
  var JSXAttributeValue$2 = JSXFragment;
17390
- var JSXAttributeValue$3 = $TS($S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3) {
17520
+ var JSXAttributeValue$3 = $TS($S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3, $4) {
17521
+ var open = $1;
17391
17522
  var value = $2;
17523
+ var close = $3;
17392
17524
  if (value.type === "StringLiteral") {
17393
17525
  return $skip;
17394
17526
  }
17395
- return $0;
17527
+ return [open, value, close];
17396
17528
  });
17397
17529
  var JSXAttributeValue$4 = $R$0($EXPECT($R53, fail, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
17398
17530
  function JSXAttributeValue(state) {
@@ -17575,12 +17707,41 @@ ${input.slice(result.pos)}
17575
17707
  return result;
17576
17708
  }
17577
17709
  }
17578
- var InlineJSXCallExpression$0 = $S($EXPECT($L14, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments);
17579
- var InlineJSXCallExpression$1 = $S($EXPECT($L15, fail, 'InlineJSXCallExpression "import"'), OpenParen, PostfixedExpression, __, CloseParen);
17710
+ var InlineJSXCallExpression$0 = $TS($S($EXPECT($L14, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
17711
+ var args = $2;
17712
+ var rest = $3;
17713
+ return module2.processCallMemberExpression({
17714
+ type: "CallExpression",
17715
+ children: [
17716
+ $1,
17717
+ { type: "Call", children: args },
17718
+ ...rest.flat()
17719
+ ]
17720
+ });
17721
+ });
17722
+ var InlineJSXCallExpression$1 = $TS($S($EXPECT($L15, fail, 'InlineJSXCallExpression "import"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
17723
+ var args = $2;
17724
+ var rest = $3;
17725
+ return module2.processCallMemberExpression({
17726
+ type: "CallExpression",
17727
+ children: [
17728
+ $1,
17729
+ { type: "Call", children: args },
17730
+ ...rest.flat()
17731
+ ]
17732
+ });
17733
+ });
17580
17734
  var InlineJSXCallExpression$2 = $TS($S(InlineJSXMemberExpression, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2) {
17581
- if ($2.length)
17582
- return $0;
17583
- return $1;
17735
+ var member = $1;
17736
+ var rest = $2;
17737
+ if (rest.length) {
17738
+ rest = rest.flat();
17739
+ return module2.processCallMemberExpression({
17740
+ type: "CallExpression",
17741
+ children: [member, ...rest]
17742
+ });
17743
+ }
17744
+ return member;
17584
17745
  });
17585
17746
  function InlineJSXCallExpression(state) {
17586
17747
  let eventData;
@@ -17604,9 +17765,20 @@ ${input.slice(result.pos)}
17604
17765
  return result;
17605
17766
  }
17606
17767
  }
17607
- var InlineJSXCallExpressionRest$0 = MemberExpressionRest;
17608
- var InlineJSXCallExpressionRest$1 = TemplateLiteral;
17609
- var InlineJSXCallExpressionRest$2 = $S($E($C(OptionalShorthand, NonNullAssertion)), ExplicitArguments);
17768
+ var InlineJSXCallExpressionRest$0 = InlineJSXMemberExpressionRest;
17769
+ var InlineJSXCallExpressionRest$1 = $TV($C(TemplateLiteral, StringLiteral), function($skip, $loc, $0, $1) {
17770
+ if ($1.type === "StringLiteral") {
17771
+ return "`" + $1.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
17772
+ }
17773
+ return $1;
17774
+ });
17775
+ var InlineJSXCallExpressionRest$2 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), ExplicitArguments), function($skip, $loc, $0, $1, $2) {
17776
+ var args = $2;
17777
+ args = { type: "Call", children: args };
17778
+ if (!$1)
17779
+ return args;
17780
+ return [$1, args];
17781
+ });
17610
17782
  function InlineJSXCallExpressionRest(state) {
17611
17783
  let eventData;
17612
17784
  if (state.events) {
@@ -17629,13 +17801,16 @@ ${input.slice(result.pos)}
17629
17801
  return result;
17630
17802
  }
17631
17803
  }
17632
- var InlineJSXMemberExpression$0 = $TS($S(InlineJSXPrimaryExpression, $Q(InlineJSXMemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
17633
- if ($2.length)
17634
- return $0;
17804
+ var InlineJSXMemberExpression$0 = $TS($S($C(InlineJSXPrimaryExpression, SuperProperty, MetaProperty), $Q(InlineJSXMemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
17805
+ var rest = $2;
17806
+ if (rest.length || Array.isArray($1)) {
17807
+ return module2.processCallMemberExpression({
17808
+ type: "MemberExpression",
17809
+ children: [$1, ...rest].flat()
17810
+ });
17811
+ }
17635
17812
  return $1;
17636
17813
  });
17637
- var InlineJSXMemberExpression$1 = SuperProperty;
17638
- var InlineJSXMemberExpression$2 = MetaProperty;
17639
17814
  function InlineJSXMemberExpression(state) {
17640
17815
  let eventData;
17641
17816
  if (state.events) {
@@ -17647,12 +17822,12 @@ ${input.slice(result.pos)}
17647
17822
  }
17648
17823
  }
17649
17824
  if (state.tokenize) {
17650
- const result = $TOKEN("InlineJSXMemberExpression", state, InlineJSXMemberExpression$0(state) || InlineJSXMemberExpression$1(state) || InlineJSXMemberExpression$2(state));
17825
+ const result = $TOKEN("InlineJSXMemberExpression", state, InlineJSXMemberExpression$0(state));
17651
17826
  if (state.events)
17652
17827
  state.events.exit?.("InlineJSXMemberExpression", state, result, eventData);
17653
17828
  return result;
17654
17829
  } else {
17655
- const result = InlineJSXMemberExpression$0(state) || InlineJSXMemberExpression$1(state) || InlineJSXMemberExpression$2(state);
17830
+ const result = InlineJSXMemberExpression$0(state);
17656
17831
  if (state.events)
17657
17832
  state.events.exit?.("InlineJSXMemberExpression", state, result, eventData);
17658
17833
  return result;
@@ -17668,7 +17843,9 @@ ${input.slice(result.pos)}
17668
17843
  return $2;
17669
17844
  });
17670
17845
  var InlineJSXMemberExpressionRest$1 = PropertyAccess;
17671
- var InlineJSXMemberExpressionRest$2 = NonNullAssertion;
17846
+ var InlineJSXMemberExpressionRest$2 = PropertyGlob;
17847
+ var InlineJSXMemberExpressionRest$3 = PropertyBind;
17848
+ var InlineJSXMemberExpressionRest$4 = NonNullAssertion;
17672
17849
  function InlineJSXMemberExpressionRest(state) {
17673
17850
  let eventData;
17674
17851
  if (state.events) {
@@ -17680,12 +17857,12 @@ ${input.slice(result.pos)}
17680
17857
  }
17681
17858
  }
17682
17859
  if (state.tokenize) {
17683
- const result = $TOKEN("InlineJSXMemberExpressionRest", state, InlineJSXMemberExpressionRest$0(state) || InlineJSXMemberExpressionRest$1(state) || InlineJSXMemberExpressionRest$2(state));
17860
+ const result = $TOKEN("InlineJSXMemberExpressionRest", state, InlineJSXMemberExpressionRest$0(state) || InlineJSXMemberExpressionRest$1(state) || InlineJSXMemberExpressionRest$2(state) || InlineJSXMemberExpressionRest$3(state) || InlineJSXMemberExpressionRest$4(state));
17684
17861
  if (state.events)
17685
17862
  state.events.exit?.("InlineJSXMemberExpressionRest", state, result, eventData);
17686
17863
  return result;
17687
17864
  } else {
17688
- const result = InlineJSXMemberExpressionRest$0(state) || InlineJSXMemberExpressionRest$1(state) || InlineJSXMemberExpressionRest$2(state);
17865
+ const result = InlineJSXMemberExpressionRest$0(state) || InlineJSXMemberExpressionRest$1(state) || InlineJSXMemberExpressionRest$2(state) || InlineJSXMemberExpressionRest$3(state) || InlineJSXMemberExpressionRest$4(state);
17689
17866
  if (state.events)
17690
17867
  state.events.exit?.("InlineJSXMemberExpressionRest", state, result, eventData);
17691
17868
  return result;
@@ -19803,7 +19980,7 @@ ${input.slice(result.pos)}
19803
19980
  return result;
19804
19981
  }
19805
19982
  }
19806
- var TypeParameter$0 = $S(__, Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
19983
+ var TypeParameter$0 = $S(__, $E($S($EXPECT($L129, fail, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
19807
19984
  function TypeParameter(state) {
19808
19985
  let eventData;
19809
19986
  if (state.events) {
@@ -21302,12 +21479,12 @@ ${input.slice(result.pos)}
21302
21479
  Object.assign(module2.config, directive.config);
21303
21480
  }
21304
21481
  });
21305
- module2.processGlob = (node) => {
21482
+ module2.processCallMemberExpression = (node) => {
21306
21483
  const { children } = node;
21307
21484
  for (let i = 0; i < children.length; i++) {
21308
21485
  const glob = children[i];
21309
21486
  if (glob?.type === "PropertyGlob") {
21310
- const prefix = children.slice(0, i).concat(glob.children[0]);
21487
+ const prefix = children.slice(0, i).concat(glob.dot);
21311
21488
  const parts = [];
21312
21489
  for (const part of glob.object.content) {
21313
21490
  if (part.type === "MethodDefinition") {
@@ -21332,7 +21509,7 @@ ${input.slice(result.pos)}
21332
21509
  });
21333
21510
  } else {
21334
21511
  parts.push({
21335
- type: part.type,
21512
+ type: part.type === "Identifier" ? "Property" : part.type,
21336
21513
  name: part.name,
21337
21514
  value,
21338
21515
  delim: part.delim,
@@ -21350,6 +21527,7 @@ ${input.slice(result.pos)}
21350
21527
  }
21351
21528
  const object = {
21352
21529
  type: "ObjectExpression",
21530
+ content: parts,
21353
21531
  children: [
21354
21532
  glob.object.children[0],
21355
21533
  ...parts,
@@ -21358,10 +21536,24 @@ ${input.slice(result.pos)}
21358
21536
  };
21359
21537
  if (i === children.length - 1)
21360
21538
  return object;
21361
- return module2.processGlob({
21539
+ return module2.processCallMemberExpression({
21362
21540
  ...node,
21363
21541
  children: [object, ...children.slice(i + 1)]
21364
21542
  });
21543
+ } else if (glob?.type === "PropertyBind") {
21544
+ const prefix = children.slice(0, i);
21545
+ return module2.processCallMemberExpression({
21546
+ ...node,
21547
+ children: [
21548
+ prefix,
21549
+ {
21550
+ ...glob,
21551
+ type: "PropertyAccess",
21552
+ children: [...glob.children, ".bind(", prefix, ")"]
21553
+ },
21554
+ ...children.slice(i + 1)
21555
+ ]
21556
+ });
21365
21557
  }
21366
21558
  }
21367
21559
  return node;
@@ -22305,31 +22497,6 @@ ${input.slice(result.pos)}
22305
22497
  throw new Error("Unknown postfix statement");
22306
22498
  }
22307
22499
  };
22308
- module2.convertMethodToFunction = function(method) {
22309
- const { signature, block } = method;
22310
- let { modifier } = signature;
22311
- if (modifier) {
22312
- if (modifier.get || modifier.set) {
22313
- throw new Error("cannot convert get/set method to function");
22314
- } else if (modifier.async) {
22315
- modifier = [modifier.children[0][0], " function ", ...modifier.children.slice(1)];
22316
- } else {
22317
- modifier = ["function ", ...modifier.children];
22318
- }
22319
- } else {
22320
- modifier = "function ";
22321
- }
22322
- return {
22323
- ...signature,
22324
- id: signature.name,
22325
- type: "FunctionExpression",
22326
- children: [
22327
- [modifier, ...signature.children.slice(1)],
22328
- block
22329
- ],
22330
- block
22331
- };
22332
- };
22333
22500
  function getPatternConditions(pattern, ref, conditions) {
22334
22501
  switch (pattern.type) {
22335
22502
  case "ArrayMatchingPattern": {
@@ -23302,6 +23469,8 @@ ${input.slice(result.pos)}
23302
23469
  var {
23303
23470
  blockWithPrefix,
23304
23471
  clone,
23472
+ convertMethodToFunction,
23473
+ convertObjectToJSXAttributes,
23305
23474
  deepCopy,
23306
23475
  findAncestor,
23307
23476
  forRange,
@@ -23317,6 +23486,7 @@ ${input.slice(result.pos)}
23317
23486
  hoistRefDecs,
23318
23487
  insertTrimmingSpace,
23319
23488
  isFunction,
23489
+ lastAccessInCallExpression,
23320
23490
  literalValue,
23321
23491
  modifyString,
23322
23492
  processCoffeeInterpolation,