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