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