@danielx/civet 0.6.49 → 0.6.51

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
@@ -2059,6 +2059,20 @@ ${input.slice(result.pos)}
2059
2059
  implicit: true
2060
2060
  });
2061
2061
  }
2062
+ function makeExpressionStatement(expression) {
2063
+ if (Array.isArray(expression) && expression[1]?.[0]?.[0]?.[1]?.token === ",") {
2064
+ return [
2065
+ makeExpressionStatement(expression[0]),
2066
+ expression[1].map(([comma, exp]) => {
2067
+ return [comma, makeExpressionStatement(exp)];
2068
+ })
2069
+ ];
2070
+ } else if (expression?.type === "ObjectExpression" || expression?.type === "FunctionExpression" && !expression.id) {
2071
+ return makeLeftHandSideExpression(expression);
2072
+ } else {
2073
+ return expression;
2074
+ }
2075
+ }
2062
2076
  function modifyString(str) {
2063
2077
  return str.replace(/(^.?|[^\\]{2})(\\\\)*\n/g, "$1$2\\n");
2064
2078
  }
@@ -3692,6 +3706,7 @@ ${input.slice(result.pos)}
3692
3706
  literalValue,
3693
3707
  makeAsConst,
3694
3708
  makeEmptyBlock,
3709
+ makeExpressionStatement,
3695
3710
  makeGetterMethod,
3696
3711
  makeLeftHandSideExpression,
3697
3712
  makeRef,
@@ -3756,6 +3771,7 @@ ${input.slice(result.pos)}
3756
3771
  NestedTopLevelStatements,
3757
3772
  TopLevelSingleLineStatements,
3758
3773
  TopLevelStatement,
3774
+ ExtendedCommaExpression,
3759
3775
  ExtendedExpression,
3760
3776
  SingleLineExtendedExpression,
3761
3777
  NonPipelineExtendedExpression,
@@ -3764,7 +3780,7 @@ ${input.slice(result.pos)}
3764
3780
  ExpressionizedStatementWithTrailingCallExpressions,
3765
3781
  ExpressionizedStatement,
3766
3782
  _ExpressionizedStatement,
3767
- Expression,
3783
+ CommaExpression,
3768
3784
  Arguments,
3769
3785
  ImplicitArguments,
3770
3786
  ExplicitArguments,
@@ -3909,15 +3925,18 @@ ${input.slice(result.pos)}
3909
3925
  BareBlock,
3910
3926
  ThenClause,
3911
3927
  BracedOrEmptyBlock,
3928
+ NoCommaBracedOrEmptyBlock,
3912
3929
  NoPostfixBracedOrEmptyBlock,
3913
3930
  EmptyBlock,
3914
3931
  EmptyBareBlock,
3915
3932
  BracedBlock,
3916
3933
  NoPostfixBracedBlock,
3934
+ NoCommaBracedBlock,
3917
3935
  NonSingleBracedBlock,
3918
3936
  DeclarationOrStatement,
3919
3937
  SingleLineStatements,
3920
3938
  PostfixedSingleLineStatements,
3939
+ PostfixedSingleLineNoCommaStatements,
3921
3940
  BracedContent,
3922
3941
  NestedBlockStatements,
3923
3942
  NestedBlockStatement,
@@ -3985,11 +4004,15 @@ ${input.slice(result.pos)}
3985
4004
  ModuleItem,
3986
4005
  StatementListItem,
3987
4006
  PostfixedStatement,
4007
+ NoCommaStatementListItem,
4008
+ PostfixedNoCommaStatement,
3988
4009
  PostfixedExpression,
4010
+ PostfixedCommaExpression,
3989
4011
  NonPipelinePostfixedExpression,
3990
4012
  PostfixStatement,
3991
4013
  _PostfixStatement,
3992
4014
  Statement,
4015
+ NoCommaStatement,
3993
4016
  EmptyStatement,
3994
4017
  BlockStatement,
3995
4018
  LabelledStatement,
@@ -4073,6 +4096,7 @@ ${input.slice(result.pos)}
4073
4096
  NewlineBinaryOpAllowed,
4074
4097
  AllowAll,
4075
4098
  RestoreAll,
4099
+ CommaExpressionStatement,
4076
4100
  ExpressionStatement,
4077
4101
  KeywordStatement,
4078
4102
  DebuggerStatement,
@@ -4809,6 +4833,12 @@ ${input.slice(result.pos)}
4809
4833
  function TopLevelStatement(ctx, state) {
4810
4834
  return $EVENT(ctx, state, "TopLevelStatement", TopLevelStatement$0);
4811
4835
  }
4836
+ var ExtendedCommaExpression$0 = NonAssignmentExtendedExpression;
4837
+ var ExtendedCommaExpression$1 = CommaExpression;
4838
+ var ExtendedCommaExpression$$ = [ExtendedCommaExpression$0, ExtendedCommaExpression$1];
4839
+ function ExtendedCommaExpression(ctx, state) {
4840
+ return $EVENT_C(ctx, state, "ExtendedCommaExpression", ExtendedCommaExpression$$);
4841
+ }
4812
4842
  var ExtendedExpression$0 = NonAssignmentExtendedExpression;
4813
4843
  var ExtendedExpression$1 = AssignmentExpression;
4814
4844
  var ExtendedExpression$$ = [ExtendedExpression$0, ExtendedExpression$1];
@@ -4887,13 +4917,13 @@ ${input.slice(result.pos)}
4887
4917
  function _ExpressionizedStatement(ctx, state) {
4888
4918
  return $EVENT_C(ctx, state, "_ExpressionizedStatement", _ExpressionizedStatement$$);
4889
4919
  }
4890
- var Expression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
4920
+ var CommaExpression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
4891
4921
  if ($2.length == 0)
4892
4922
  return $1;
4893
4923
  return $0;
4894
4924
  });
4895
- function Expression(ctx, state) {
4896
- return $EVENT(ctx, state, "Expression", Expression$0);
4925
+ function CommaExpression(ctx, state) {
4926
+ return $EVENT(ctx, state, "CommaExpression", CommaExpression$0);
4897
4927
  }
4898
4928
  var Arguments$0 = ExplicitArguments;
4899
4929
  var Arguments$1 = $TS($S(ForbidTrailingMemberProperty, $E(ImplicitArguments), RestoreTrailingMemberProperty), function($skip, $loc, $0, $1, $2, $3) {
@@ -5298,11 +5328,14 @@ ${input.slice(result.pos)}
5298
5328
  function TrailingDeclaration(ctx, state) {
5299
5329
  return $EVENT(ctx, state, "TrailingDeclaration", TrailingDeclaration$0);
5300
5330
  }
5301
- var FatArrowBody$0 = $T($S($N(EOS), NonPipelinePostfixedExpression, $N(TrailingDeclaration), $N(SemicolonDelimiter)), function(value) {
5302
- var exp = value[1];
5331
+ var FatArrowBody$0 = $TS($S($N(EOS), NonPipelinePostfixedExpression, $N(TrailingDeclaration), $N(SemicolonDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
5332
+ var exp = $2;
5333
+ if (exp.type === "ObjectExpression") {
5334
+ return makeLeftHandSideExpression(exp);
5335
+ }
5303
5336
  return exp;
5304
5337
  });
5305
- var FatArrowBody$1 = BracedOrEmptyBlock;
5338
+ var FatArrowBody$1 = NoCommaBracedOrEmptyBlock;
5306
5339
  var FatArrowBody$$ = [FatArrowBody$0, FatArrowBody$1];
5307
5340
  function FatArrowBody(ctx, state) {
5308
5341
  return $EVENT_C(ctx, state, "FatArrowBody", FatArrowBody$$);
@@ -5414,7 +5447,7 @@ ${input.slice(result.pos)}
5414
5447
  function PrimaryExpression(ctx, state) {
5415
5448
  return $EVENT_C(ctx, state, "PrimaryExpression", PrimaryExpression$$);
5416
5449
  }
5417
- var ParenthesizedExpression$0 = $TS($S(OpenParen, AllowAll, $E($S(PostfixedExpression, __, CloseParen)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
5450
+ var ParenthesizedExpression$0 = $TS($S(OpenParen, AllowAll, $E($S(PostfixedCommaExpression, __, CloseParen)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
5418
5451
  var open = $1;
5419
5452
  if (!$3)
5420
5453
  return $skip;
@@ -6808,7 +6841,7 @@ ${input.slice(result.pos)}
6808
6841
  function AmpersandUnaryPrefix(ctx, state) {
6809
6842
  return $EVENT(ctx, state, "AmpersandUnaryPrefix", AmpersandUnaryPrefix$0);
6810
6843
  }
6811
- var ThinArrowFunction$0 = $TS($S($E($S(Async, _)), ArrowParameters, $E(ReturnTypeSuffix), $E(_), Arrow, BracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6844
+ var ThinArrowFunction$0 = $TS($S($E($S(Async, _)), ArrowParameters, $E(ReturnTypeSuffix), $E(_), Arrow, NoCommaBracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6812
6845
  var async = $1;
6813
6846
  var parameters = $2;
6814
6847
  var suffix = $3;
@@ -6950,6 +6983,12 @@ ${input.slice(result.pos)}
6950
6983
  function BracedOrEmptyBlock(ctx, state) {
6951
6984
  return $EVENT_C(ctx, state, "BracedOrEmptyBlock", BracedOrEmptyBlock$$);
6952
6985
  }
6986
+ var NoCommaBracedOrEmptyBlock$0 = NoCommaBracedBlock;
6987
+ var NoCommaBracedOrEmptyBlock$1 = EmptyBlock;
6988
+ var NoCommaBracedOrEmptyBlock$$ = [NoCommaBracedOrEmptyBlock$0, NoCommaBracedOrEmptyBlock$1];
6989
+ function NoCommaBracedOrEmptyBlock(ctx, state) {
6990
+ return $EVENT_C(ctx, state, "NoCommaBracedOrEmptyBlock", NoCommaBracedOrEmptyBlock$$);
6991
+ }
6953
6992
  var NoPostfixBracedOrEmptyBlock$0 = NoPostfixBracedBlock;
6954
6993
  var NoPostfixBracedOrEmptyBlock$1 = EmptyBlock;
6955
6994
  var NoPostfixBracedOrEmptyBlock$$ = [NoPostfixBracedOrEmptyBlock$0, NoPostfixBracedOrEmptyBlock$1];
@@ -7019,6 +7058,25 @@ ${input.slice(result.pos)}
7019
7058
  function NoPostfixBracedBlock(ctx, state) {
7020
7059
  return $EVENT_C(ctx, state, "NoPostfixBracedBlock", NoPostfixBracedBlock$$);
7021
7060
  }
7061
+ var NoCommaBracedBlock$0 = NonSingleBracedBlock;
7062
+ var NoCommaBracedBlock$1 = $TS($S(InsertOpenBrace, $N(EOS), PostfixedSingleLineNoCommaStatements, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7063
+ var o = $1;
7064
+ var s = $3;
7065
+ var ws = $4;
7066
+ var c = $5;
7067
+ if (!s.children.length)
7068
+ return $skip;
7069
+ return {
7070
+ type: "BlockStatement",
7071
+ expressions: s.expressions,
7072
+ // Remove !EOS assertion
7073
+ children: [o, s.children, ws, c]
7074
+ };
7075
+ });
7076
+ var NoCommaBracedBlock$$ = [NoCommaBracedBlock$0, NoCommaBracedBlock$1];
7077
+ function NoCommaBracedBlock(ctx, state) {
7078
+ return $EVENT_C(ctx, state, "NoCommaBracedBlock", NoCommaBracedBlock$$);
7079
+ }
7022
7080
  var NonSingleBracedBlock$0 = $TS($S($E(_), OpenBrace, AllowAll, $E($S(BracedContent, __, CloseBrace)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7023
7081
  var ws1 = $1;
7024
7082
  var open = $2;
@@ -7086,6 +7144,22 @@ ${input.slice(result.pos)}
7086
7144
  function PostfixedSingleLineStatements(ctx, state) {
7087
7145
  return $EVENT(ctx, state, "PostfixedSingleLineStatements", PostfixedSingleLineStatements$0);
7088
7146
  }
7147
+ var PostfixedSingleLineNoCommaStatements$0 = $TS($S($Q($S($S($E(_), $N(EOS)), NoCommaStatementListItem, SemicolonDelimiter)), $E($S($S($E(_), $N(EOS)), NoCommaStatementListItem, $E(SemicolonDelimiter)))), function($skip, $loc, $0, $1, $2) {
7148
+ var stmts = $1;
7149
+ var last = $2;
7150
+ const children = [...stmts];
7151
+ if (last)
7152
+ children.push(last);
7153
+ return {
7154
+ type: "BlockStatement",
7155
+ expressions: children,
7156
+ children,
7157
+ bare: true
7158
+ };
7159
+ });
7160
+ function PostfixedSingleLineNoCommaStatements(ctx, state) {
7161
+ return $EVENT(ctx, state, "PostfixedSingleLineNoCommaStatements", PostfixedSingleLineNoCommaStatements$0);
7162
+ }
7089
7163
  var BracedContent$0 = NestedBlockStatements;
7090
7164
  var BracedContent$1 = SingleLineStatements;
7091
7165
  var BracedContent$2 = $TV($Y($S(__, $EXPECT($L25, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
@@ -8480,6 +8554,22 @@ ${input.slice(result.pos)}
8480
8554
  function PostfixedStatement(ctx, state) {
8481
8555
  return $EVENT(ctx, state, "PostfixedStatement", PostfixedStatement$0);
8482
8556
  }
8557
+ var NoCommaStatementListItem$0 = Declaration;
8558
+ var NoCommaStatementListItem$1 = PostfixedNoCommaStatement;
8559
+ var NoCommaStatementListItem$$ = [NoCommaStatementListItem$0, NoCommaStatementListItem$1];
8560
+ function NoCommaStatementListItem(ctx, state) {
8561
+ return $EVENT_C(ctx, state, "NoCommaStatementListItem", NoCommaStatementListItem$$);
8562
+ }
8563
+ var PostfixedNoCommaStatement$0 = $TS($S(NoCommaStatement, $E($S($E(_), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
8564
+ var statement = $1;
8565
+ var post = $2;
8566
+ if (post)
8567
+ return addPostfixStatement(statement, ...post);
8568
+ return statement;
8569
+ });
8570
+ function PostfixedNoCommaStatement(ctx, state) {
8571
+ return $EVENT(ctx, state, "PostfixedNoCommaStatement", PostfixedNoCommaStatement$0);
8572
+ }
8483
8573
  var PostfixedExpression$0 = $TS($S(ExtendedExpression, $E($S($E(_), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
8484
8574
  var expression = $1;
8485
8575
  var post = $2;
@@ -8490,6 +8580,19 @@ ${input.slice(result.pos)}
8490
8580
  function PostfixedExpression(ctx, state) {
8491
8581
  return $EVENT(ctx, state, "PostfixedExpression", PostfixedExpression$0);
8492
8582
  }
8583
+ var PostfixedCommaExpression$0 = $TS($S(PostfixedExpression, $C($S($E(_), PostfixStatement), $Q($S(CommaDelimiter, AssignmentExpression)))), function($skip, $loc, $0, $1, $2) {
8584
+ var expression = $1;
8585
+ var post = $2;
8586
+ if (!post.length)
8587
+ return $1;
8588
+ if (post.length === 2 && !Array.isArray(post[1])) {
8589
+ return attachPostfixStatementAsExpression(expression, post);
8590
+ }
8591
+ return $0;
8592
+ });
8593
+ function PostfixedCommaExpression(ctx, state) {
8594
+ return $EVENT(ctx, state, "PostfixedCommaExpression", PostfixedCommaExpression$0);
8595
+ }
8493
8596
  var NonPipelinePostfixedExpression$0 = $TS($S(NonPipelineExtendedExpression, $E($S($E(_), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
8494
8597
  var expression = $1;
8495
8598
  var post = $2;
@@ -8523,17 +8626,26 @@ ${input.slice(result.pos)}
8523
8626
  var Statement$5 = TryStatement;
8524
8627
  var Statement$6 = EmptyStatement;
8525
8628
  var Statement$7 = LabelledStatement;
8526
- var Statement$8 = $TS($S(ExpressionStatement), function($skip, $loc, $0, $1) {
8527
- if ($1.type === "ObjectExpression" || $1.type === "FunctionExpression" && !$1.id) {
8528
- return makeLeftHandSideExpression($1);
8529
- }
8530
- return $1;
8531
- });
8629
+ var Statement$8 = CommaExpressionStatement;
8532
8630
  var Statement$9 = BlockStatement;
8533
8631
  var Statement$$ = [Statement$0, Statement$1, Statement$2, Statement$3, Statement$4, Statement$5, Statement$6, Statement$7, Statement$8, Statement$9];
8534
8632
  function Statement(ctx, state) {
8535
8633
  return $EVENT_C(ctx, state, "Statement", Statement$$);
8536
8634
  }
8635
+ var NoCommaStatement$0 = KeywordStatement;
8636
+ var NoCommaStatement$1 = VariableStatement;
8637
+ var NoCommaStatement$2 = IfStatement;
8638
+ var NoCommaStatement$3 = IterationStatement;
8639
+ var NoCommaStatement$4 = SwitchStatement;
8640
+ var NoCommaStatement$5 = TryStatement;
8641
+ var NoCommaStatement$6 = EmptyStatement;
8642
+ var NoCommaStatement$7 = LabelledStatement;
8643
+ var NoCommaStatement$8 = ExpressionStatement;
8644
+ var NoCommaStatement$9 = BlockStatement;
8645
+ var NoCommaStatement$$ = [NoCommaStatement$0, NoCommaStatement$1, NoCommaStatement$2, NoCommaStatement$3, NoCommaStatement$4, NoCommaStatement$5, NoCommaStatement$6, NoCommaStatement$7, NoCommaStatement$8, NoCommaStatement$9];
8646
+ function NoCommaStatement(ctx, state) {
8647
+ return $EVENT_C(ctx, state, "NoCommaStatement", NoCommaStatement$$);
8648
+ }
8537
8649
  var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L99, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
8538
8650
  return { type: "EmptyStatement", children: $1 || [] };
8539
8651
  });
@@ -9012,14 +9124,14 @@ ${input.slice(result.pos)}
9012
9124
  function CoffeeForDeclaration(ctx, state) {
9013
9125
  return $EVENT(ctx, state, "CoffeeForDeclaration", CoffeeForDeclaration$0);
9014
9126
  }
9015
- var ForStatementParameters$0 = $TS($S(OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E(Expression), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
9127
+ var ForStatementParameters$0 = $TS($S(OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(CommaExpression)), __, Semicolon, $E(CommaExpression), Semicolon, $E(CommaExpression), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
9016
9128
  var declaration = $3;
9017
9129
  return {
9018
9130
  declaration,
9019
9131
  children: $0
9020
9132
  };
9021
9133
  });
9022
- var ForStatementParameters$1 = $TS($S(InsertOpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E($S($N(EOS), ExpressionWithIndentedApplicationForbidden)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9134
+ var ForStatementParameters$1 = $TS($S(InsertOpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(CommaExpression)), __, Semicolon, $E(CommaExpression), Semicolon, $E($S($N(EOS), ExpressionWithIndentedApplicationForbidden)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9023
9135
  var declaration = $3;
9024
9136
  return {
9025
9137
  declaration,
@@ -9595,8 +9707,18 @@ ${input.slice(result.pos)}
9595
9707
  function RestoreAll(ctx, state) {
9596
9708
  return $EVENT(ctx, state, "RestoreAll", RestoreAll$0);
9597
9709
  }
9710
+ var CommaExpressionStatement$0 = IterationExpression;
9711
+ var CommaExpressionStatement$1 = $TS($S(CommaExpression), function($skip, $loc, $0, $1) {
9712
+ return makeExpressionStatement($1);
9713
+ });
9714
+ var CommaExpressionStatement$$ = [CommaExpressionStatement$0, CommaExpressionStatement$1];
9715
+ function CommaExpressionStatement(ctx, state) {
9716
+ return $EVENT_C(ctx, state, "CommaExpressionStatement", CommaExpressionStatement$$);
9717
+ }
9598
9718
  var ExpressionStatement$0 = IterationExpression;
9599
- var ExpressionStatement$1 = Expression;
9719
+ var ExpressionStatement$1 = $TS($S(AssignmentExpression), function($skip, $loc, $0, $1) {
9720
+ return makeExpressionStatement($1);
9721
+ });
9600
9722
  var ExpressionStatement$$ = [ExpressionStatement$0, ExpressionStatement$1];
9601
9723
  function ExpressionStatement(ctx, state) {
9602
9724
  return $EVENT_C(ctx, state, "ExpressionStatement", ExpressionStatement$$);
@@ -12230,7 +12352,7 @@ ${input.slice(result.pos)}
12230
12352
  args
12231
12353
  };
12232
12354
  });
12233
- var TypePrimary$8 = $S(__, OpenParen, $C(Type, $S(EOS, Type)), __, CloseParen);
12355
+ var TypePrimary$8 = $S($E(_), OpenParen, $C(Type, $S(EOS, Type)), __, CloseParen);
12234
12356
  var TypePrimary$$ = [TypePrimary$0, TypePrimary$1, TypePrimary$2, TypePrimary$3, TypePrimary$4, TypePrimary$5, TypePrimary$6, TypePrimary$7, TypePrimary$8];
12235
12357
  function TypePrimary(ctx, state) {
12236
12358
  return $EVENT_C(ctx, state, "TypePrimary", TypePrimary$$);
@@ -12879,19 +13001,45 @@ ${input.slice(result.pos)}
12879
13001
  };
12880
13002
  module.prelude.push(["", [preludeVar, moduloRef, typeSuffix, " = (a, b) => (a % b + b) % b;", "\n"]]);
12881
13003
  },
13004
+ Falsy(FalsyRef) {
13005
+ module.prelude.push(["", [{
13006
+ ts: true,
13007
+ children: ["type ", FalsyRef, " = false | 0 | '' | 0n | null | undefined;", "\n"]
13008
+ }]]);
13009
+ },
12882
13010
  xor(xorRef) {
13011
+ const Falsy = module.getRef("Falsy");
12883
13012
  const typeSuffix = {
12884
13013
  ts: true,
12885
- children: [": (a: unknown, b: unknown) => boolean"]
13014
+ children: [
13015
+ ": <A, B>(a: A, b: B) => A extends ",
13016
+ Falsy,
13017
+ " ? B : B extends ",
13018
+ Falsy,
13019
+ " ? A : (false | (A & ",
13020
+ Falsy,
13021
+ " extends never ? never : B) | (B & ",
13022
+ Falsy,
13023
+ " extends never ? never : A))"
13024
+ ]
12886
13025
  };
12887
- module.prelude.push(["", [preludeVar, xorRef, typeSuffix, " = (a, b) => a ? !b && a : b;", "\n"]]);
13026
+ module.prelude.push(["", [preludeVar, xorRef, typeSuffix, " = (a, b) => (a ? !b && a : b)", asAny, ";", "\n"]]);
12888
13027
  },
12889
13028
  xnor(xnorRef) {
13029
+ const Falsy = module.getRef("Falsy");
12890
13030
  const typeSuffix = {
12891
13031
  ts: true,
12892
- children: [": (a: unknown, b: unknown) => boolean"]
13032
+ children: [
13033
+ ": <A, B>(a: A, b: B) => A & ",
13034
+ Falsy,
13035
+ " extends never ? B : (true | (B extends ",
13036
+ Falsy,
13037
+ " ? never : A) | (A extends ",
13038
+ Falsy,
13039
+ " ? never : B))"
13040
+ ]
12893
13041
  };
12894
- module.prelude.push(["", [preludeVar, xnorRef, typeSuffix, " = (a, b) => a ? b : !b || a;", "\n"]]);
13042
+ module.prelude.push(["", [preludeVar, xnorRef, typeSuffix, " = (a, b) => (a ? b : !b || a)", asAny, ";", "\n"]]);
12895
13043
  },
12896
13044
  returnSymbol(ref) {
12897
13045
  module.prelude.push({
@@ -13119,6 +13267,7 @@ ${input.slice(result.pos)}
13119
13267
  exports.NestedTopLevelStatements = NestedTopLevelStatements;
13120
13268
  exports.TopLevelSingleLineStatements = TopLevelSingleLineStatements;
13121
13269
  exports.TopLevelStatement = TopLevelStatement;
13270
+ exports.ExtendedCommaExpression = ExtendedCommaExpression;
13122
13271
  exports.ExtendedExpression = ExtendedExpression;
13123
13272
  exports.SingleLineExtendedExpression = SingleLineExtendedExpression;
13124
13273
  exports.NonPipelineExtendedExpression = NonPipelineExtendedExpression;
@@ -13127,7 +13276,7 @@ ${input.slice(result.pos)}
13127
13276
  exports.ExpressionizedStatementWithTrailingCallExpressions = ExpressionizedStatementWithTrailingCallExpressions;
13128
13277
  exports.ExpressionizedStatement = ExpressionizedStatement;
13129
13278
  exports._ExpressionizedStatement = _ExpressionizedStatement;
13130
- exports.Expression = Expression;
13279
+ exports.CommaExpression = CommaExpression;
13131
13280
  exports.Arguments = Arguments;
13132
13281
  exports.ImplicitArguments = ImplicitArguments;
13133
13282
  exports.ExplicitArguments = ExplicitArguments;
@@ -13272,15 +13421,18 @@ ${input.slice(result.pos)}
13272
13421
  exports.BareBlock = BareBlock;
13273
13422
  exports.ThenClause = ThenClause;
13274
13423
  exports.BracedOrEmptyBlock = BracedOrEmptyBlock;
13424
+ exports.NoCommaBracedOrEmptyBlock = NoCommaBracedOrEmptyBlock;
13275
13425
  exports.NoPostfixBracedOrEmptyBlock = NoPostfixBracedOrEmptyBlock;
13276
13426
  exports.EmptyBlock = EmptyBlock;
13277
13427
  exports.EmptyBareBlock = EmptyBareBlock;
13278
13428
  exports.BracedBlock = BracedBlock;
13279
13429
  exports.NoPostfixBracedBlock = NoPostfixBracedBlock;
13430
+ exports.NoCommaBracedBlock = NoCommaBracedBlock;
13280
13431
  exports.NonSingleBracedBlock = NonSingleBracedBlock;
13281
13432
  exports.DeclarationOrStatement = DeclarationOrStatement;
13282
13433
  exports.SingleLineStatements = SingleLineStatements;
13283
13434
  exports.PostfixedSingleLineStatements = PostfixedSingleLineStatements;
13435
+ exports.PostfixedSingleLineNoCommaStatements = PostfixedSingleLineNoCommaStatements;
13284
13436
  exports.BracedContent = BracedContent;
13285
13437
  exports.NestedBlockStatements = NestedBlockStatements;
13286
13438
  exports.NestedBlockStatement = NestedBlockStatement;
@@ -13348,11 +13500,15 @@ ${input.slice(result.pos)}
13348
13500
  exports.ModuleItem = ModuleItem;
13349
13501
  exports.StatementListItem = StatementListItem;
13350
13502
  exports.PostfixedStatement = PostfixedStatement;
13503
+ exports.NoCommaStatementListItem = NoCommaStatementListItem;
13504
+ exports.PostfixedNoCommaStatement = PostfixedNoCommaStatement;
13351
13505
  exports.PostfixedExpression = PostfixedExpression;
13506
+ exports.PostfixedCommaExpression = PostfixedCommaExpression;
13352
13507
  exports.NonPipelinePostfixedExpression = NonPipelinePostfixedExpression;
13353
13508
  exports.PostfixStatement = PostfixStatement;
13354
13509
  exports._PostfixStatement = _PostfixStatement;
13355
13510
  exports.Statement = Statement;
13511
+ exports.NoCommaStatement = NoCommaStatement;
13356
13512
  exports.EmptyStatement = EmptyStatement;
13357
13513
  exports.BlockStatement = BlockStatement;
13358
13514
  exports.LabelledStatement = LabelledStatement;
@@ -13436,6 +13592,7 @@ ${input.slice(result.pos)}
13436
13592
  exports.NewlineBinaryOpAllowed = NewlineBinaryOpAllowed;
13437
13593
  exports.AllowAll = AllowAll;
13438
13594
  exports.RestoreAll = RestoreAll;
13595
+ exports.CommaExpressionStatement = CommaExpressionStatement;
13439
13596
  exports.ExpressionStatement = ExpressionStatement;
13440
13597
  exports.KeywordStatement = KeywordStatement;
13441
13598
  exports.DebuggerStatement = DebuggerStatement;
@@ -13825,6 +13982,7 @@ ${input.slice(result.pos)}
13825
13982
  lastAccessInCallExpression,
13826
13983
  literalValue,
13827
13984
  makeEmptyBlock,
13985
+ makeExpressionStatement,
13828
13986
  makeGetterMethod,
13829
13987
  makeLeftHandSideExpression,
13830
13988
  makeRef,
package/dist/esbuild.js CHANGED
@@ -42,14 +42,46 @@ var fs = __toESM(require("fs"));
42
42
  var import_path = __toESM(require("path"));
43
43
  var import_typescript = __toESM(require("typescript"));
44
44
  var tsvfs = __toESM(require("@typescript/vfs"));
45
+ var import_os = __toESM(require("os"));
45
46
  var formatHost = {
46
47
  getCurrentDirectory: () => import_typescript.default.sys.getCurrentDirectory(),
47
48
  getNewLine: () => import_typescript.default.sys.newLine,
48
49
  getCanonicalFileName: import_typescript.default.sys.useCaseSensitiveFileNames ? (f) => f : (f) => f.toLowerCase()
49
50
  };
50
51
  var isCivet = (id) => /\.civet$/.test(id);
51
- var isCivetTranspiled = (id) => /\.civet\.(m?)(j|t)s(x?)(\?transform)?$/.test(id);
52
- var isCivetTranspiledTS = (id) => /\.civet\.(m?)ts(x?)$/.test(id);
52
+ var isCivetTranspiled = (id) => /\.civet\.[jt]sx(\?transform)?$/.test(id);
53
+ var isCivetTranspiledTS = (id) => /\.civet\.tsx$/.test(id);
54
+ var postfixRE = /(\.[jt]sx)?[?#].*$/s;
55
+ var isWindows = import_os.default.platform() === "win32";
56
+ var windowsSlashRE = /\\/g;
57
+ function cleanCivetId(id) {
58
+ return id.replace(postfixRE, "");
59
+ }
60
+ function tryStatSync(file) {
61
+ try {
62
+ return fs.statSync(file, { throwIfNoEntry: false });
63
+ } catch {
64
+ return void 0;
65
+ }
66
+ }
67
+ function slash(p) {
68
+ return p.replace(windowsSlashRE, "/");
69
+ }
70
+ function normalizePath(id) {
71
+ return import_path.default.posix.normalize(isWindows ? slash(id) : id);
72
+ }
73
+ function tryFsResolve(file) {
74
+ const fileStat = tryStatSync(file);
75
+ if (fileStat?.isFile())
76
+ return normalizePath(file);
77
+ return void 0;
78
+ }
79
+ function resolveAbsolutePath(rootDir, id) {
80
+ const resolved = tryFsResolve(import_path.default.join(rootDir, id));
81
+ if (!resolved)
82
+ return tryFsResolve(id);
83
+ return resolved;
84
+ }
53
85
  var civetUnplugin = (0, import_unplugin.createUnplugin)((options = {}) => {
54
86
  if (options.dts && options.js) {
55
87
  throw new Error("Can't have both `dts` and `js` be set to `true`.");
@@ -62,7 +94,7 @@ var civetUnplugin = (0, import_unplugin.createUnplugin)((options = {}) => {
62
94
  let fsMap = /* @__PURE__ */ new Map();
63
95
  const sourceMaps = /* @__PURE__ */ new Map();
64
96
  let compilerOptions;
65
- let rootDir;
97
+ let rootDir = process.cwd();
66
98
  return {
67
99
  name: "unplugin-civet",
68
100
  enforce: "pre",
@@ -162,10 +194,11 @@ var civetUnplugin = (0, import_unplugin.createUnplugin)((options = {}) => {
162
194
  return null;
163
195
  if (!isCivet(id) && !isCivetTranspiled(id))
164
196
  return null;
165
- const absolutePath = rootDir != null && import_path.default.isAbsolute(id) ? import_path.default.join(rootDir, id) : import_path.default.resolve(import_path.default.dirname(importer ?? ""), id);
197
+ id = cleanCivetId(id);
198
+ const absolutePath = import_path.default.isAbsolute(id) ? resolveAbsolutePath(rootDir, id) : import_path.default.resolve(import_path.default.dirname(importer ?? ""), id);
199
+ if (!absolutePath)
200
+ return null;
166
201
  const relativeId = import_path.default.relative(process.cwd(), absolutePath);
167
- if (isCivetTranspiled(id))
168
- return relativeId.replace(/\?transform$/, "");
169
202
  const relativePath = relativeId + outExt;
170
203
  return relativePath;
171
204
  },
@@ -206,9 +239,9 @@ var civetUnplugin = (0, import_unplugin.createUnplugin)((options = {}) => {
206
239
  if (options.dts || options.typecheck) {
207
240
  const resolved = import_path.default.resolve(process.cwd(), id);
208
241
  fsMap.set(resolved, code);
209
- const slash = resolved.replace(/\\/g, "/");
210
- if (resolved !== slash)
211
- fsMap.set(slash, code);
242
+ const slashed = slash(resolved);
243
+ if (resolved !== slashed)
244
+ fsMap.set(slashed, code);
212
245
  }
213
246
  return null;
214
247
  },