@danielx/civet 0.8.0 → 0.8.1

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
@@ -28,9 +28,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  mod
29
29
  ));
30
30
 
31
- // node_modules/@danielx/hera/dist/machine.js
31
+ // node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js
32
32
  var require_machine = __commonJS({
33
- "node_modules/@danielx/hera/dist/machine.js"(exports, module) {
33
+ "node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js"(exports, module) {
34
34
  "use strict";
35
35
  var __defProp2 = Object.defineProperty;
36
36
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -60,7 +60,7 @@ var require_machine = __commonJS({
60
60
  $N: () => $N2,
61
61
  $P: () => $P2,
62
62
  $Q: () => $Q2,
63
- $R: () => $R99,
63
+ $R: () => $R100,
64
64
  $R$0: () => $R$02,
65
65
  $S: () => $S2,
66
66
  $T: () => $T2,
@@ -97,7 +97,7 @@ var require_machine = __commonJS({
97
97
  return;
98
98
  };
99
99
  }
100
- function $R99(regExp) {
100
+ function $R100(regExp) {
101
101
  return function(_ctx, state2) {
102
102
  const { input, pos } = state2;
103
103
  regExp.lastIndex = state2.pos;
@@ -514,6 +514,7 @@ __export(lib_exports, {
514
514
  getPrecedence: () => getPrecedence,
515
515
  getTrimmingSpace: () => getTrimmingSpace,
516
516
  hasAwait: () => hasAwait,
517
+ hasExportDeclaration: () => hasExportDeclaration,
517
518
  hasImportDeclaration: () => hasImportDeclaration,
518
519
  hasYield: () => hasYield,
519
520
  insertTrimmingSpace: () => insertTrimmingSpace,
@@ -964,6 +965,9 @@ function hasYield(exp) {
964
965
  function hasImportDeclaration(exp) {
965
966
  return gatherRecursiveWithinFunction(exp, ($3) => $3.type === "ImportDeclaration").length > 0;
966
967
  }
968
+ function hasExportDeclaration(exp) {
969
+ return gatherRecursiveWithinFunction(exp, ($4) => $4.type === "ExportDeclaration").length > 0;
970
+ }
967
971
  function deepCopy(node) {
968
972
  if (node == null)
969
973
  return node;
@@ -1002,6 +1006,7 @@ function removeHoistDecs(node) {
1002
1006
  }
1003
1007
  var skipParens = /* @__PURE__ */ new Set([
1004
1008
  "AmpersandRef",
1009
+ "ArrayExpression",
1005
1010
  "CallExpression",
1006
1011
  "Identifier",
1007
1012
  "JSXElement",
@@ -1015,6 +1020,10 @@ var skipParens = /* @__PURE__ */ new Set([
1015
1020
  // wrapIIFE
1016
1021
  ]);
1017
1022
  function makeLeftHandSideExpression(expression) {
1023
+ while (expression && Array.isArray(expression) && len(expression, 1)) {
1024
+ const [item] = expression;
1025
+ expression = item;
1026
+ }
1018
1027
  if (isASTNodeObject(expression)) {
1019
1028
  if (expression.parenthesized) {
1020
1029
  return expression;
@@ -1022,7 +1031,7 @@ function makeLeftHandSideExpression(expression) {
1022
1031
  if (skipParens.has(expression.type)) {
1023
1032
  return expression;
1024
1033
  }
1025
- if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($4) => $4.type === "ObjectExpression")) {
1034
+ if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($5) => $5.type === "ObjectExpression")) {
1026
1035
  return expression;
1027
1036
  }
1028
1037
  }
@@ -2402,7 +2411,12 @@ function makeAmpersandFunction(rhs) {
2402
2411
  if (isStatement(body)) {
2403
2412
  braceBlock(block);
2404
2413
  fn.ampersandBlock = false;
2405
- delete fn.body;
2414
+ }
2415
+ if (gatherRecursiveWithinFunction(
2416
+ block,
2417
+ (a4) => a4 === ref
2418
+ ).length > 1) {
2419
+ fn.ampersandBlock = false;
2406
2420
  }
2407
2421
  return fn;
2408
2422
  }
@@ -2765,7 +2779,7 @@ function processBinaryOpExpression($0) {
2765
2779
  a = makeAsConst(a);
2766
2780
  b = makeAsConst(b);
2767
2781
  }
2768
- let children;
2782
+ let children, type;
2769
2783
  if (op.type === "PatternTest") {
2770
2784
  children = [processPatternTest(a, b)];
2771
2785
  } else if (op.type === "ChainOp") {
@@ -2774,28 +2788,31 @@ function processBinaryOpExpression($0) {
2774
2788
  children = ["(", ...children, ")"];
2775
2789
  }
2776
2790
  } else if (op.call) {
2777
- wsOp = insertTrimmingSpace(wsOp, "");
2791
+ wsOp = trimFirstSpace(wsOp);
2778
2792
  if (op.reversed) {
2779
- wsB = insertTrimmingSpace(wsB, "");
2793
+ wsB = trimFirstSpace(wsB);
2780
2794
  children = [wsOp, op.call, "(", wsB, b, ", ", a, ")", op.suffix];
2781
2795
  } else {
2782
2796
  children = [wsOp, op.call, "(", a, ",", wsB, b, ")", op.suffix];
2783
2797
  }
2798
+ type = "CallExpression";
2784
2799
  } else if (op.method) {
2785
- wsOp = insertTrimmingSpace(wsOp, "");
2786
- wsB = insertTrimmingSpace(wsB, "");
2800
+ wsOp = trimFirstSpace(wsOp);
2801
+ wsB = trimFirstSpace(wsB);
2787
2802
  if (op.reversed) {
2788
- if (end !== i + 2)
2803
+ if (!(b.type === "CallExpression")) {
2789
2804
  b = makeLeftHandSideExpression(b);
2805
+ }
2790
2806
  b = dotNumericLiteral(b);
2791
2807
  children = [wsB, b, wsOp, ".", op.method, "(", a, ")"];
2792
2808
  } else {
2793
- if (start !== i - 2 || a.type === "NumericLiteral") {
2809
+ if (!(a.type === "CallExpression")) {
2794
2810
  a = makeLeftHandSideExpression(a);
2795
2811
  }
2796
2812
  a = dotNumericLiteral(a);
2797
2813
  children = [a, wsOp, ".", op.method, "(", wsB, b, ")"];
2798
2814
  }
2815
+ type = "CallExpression";
2799
2816
  } else if (op.token) {
2800
2817
  children = [a, wsOp, op, wsB, b];
2801
2818
  if (op.negated)
@@ -2809,6 +2826,7 @@ function processBinaryOpExpression($0) {
2809
2826
  children.push(error);
2810
2827
  }
2811
2828
  expandedOps.splice(start, end - start + 1, {
2829
+ type,
2812
2830
  children
2813
2831
  });
2814
2832
  i = start + 2;
@@ -4799,8 +4817,9 @@ function gen(root, options) {
4799
4817
  let line = "?";
4800
4818
  let column = "?";
4801
4819
  let offset;
4802
- if (options && typeof options === "object" && "sourceMap" in options) {
4803
- const { sourceMap } = options;
4820
+ let ref;
4821
+ if (ref = options.sourceMap) {
4822
+ const sourceMap = ref;
4804
4823
  line = sourceMap.data.srcLine + 1;
4805
4824
  column = sourceMap.data.srcColumn + 1;
4806
4825
  offset = sourceMap.data.srcOffset;
@@ -7486,6 +7505,7 @@ var grammar = {
7486
7505
  TypeIndex,
7487
7506
  TypeSuffix,
7488
7507
  MaybeNestedType,
7508
+ MaybeNestedTypePrimary,
7489
7509
  ReturnTypeSuffix,
7490
7510
  ReturnType,
7491
7511
  TypePredicate,
@@ -7942,14 +7962,15 @@ var $R87 = (0, import_lib3.$R)(new RegExp("[+-]?", "suy"));
7942
7962
  var $R88 = (0, import_lib3.$R)(new RegExp("(?=if|unless)", "suy"));
7943
7963
  var $R89 = (0, import_lib3.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
7944
7964
  var $R90 = (0, import_lib3.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
7945
- var $R91 = (0, import_lib3.$R)(new RegExp("#![^\\r\\n]*", "suy"));
7946
- var $R92 = (0, import_lib3.$R)(new RegExp("[\\t ]*", "suy"));
7947
- var $R93 = (0, import_lib3.$R)(new RegExp("[\\s]*", "suy"));
7948
- var $R94 = (0, import_lib3.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
7949
- var $R95 = (0, import_lib3.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
7950
- var $R96 = (0, import_lib3.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
7951
- var $R97 = (0, import_lib3.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
7952
- var $R98 = (0, import_lib3.$R)(new RegExp("[^]*", "suy"));
7965
+ var $R91 = (0, import_lib3.$R)(new RegExp("const|in|out", "suy"));
7966
+ var $R92 = (0, import_lib3.$R)(new RegExp("#![^\\r\\n]*", "suy"));
7967
+ var $R93 = (0, import_lib3.$R)(new RegExp("[\\t ]*", "suy"));
7968
+ var $R94 = (0, import_lib3.$R)(new RegExp("[\\s]*", "suy"));
7969
+ var $R95 = (0, import_lib3.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
7970
+ var $R96 = (0, import_lib3.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
7971
+ var $R97 = (0, import_lib3.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
7972
+ var $R98 = (0, import_lib3.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
7973
+ var $R99 = (0, import_lib3.$R)(new RegExp("[^]*", "suy"));
7953
7974
  var Program$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Reset, Init, (0, import_lib3.$E)(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7954
7975
  var reset = $1;
7955
7976
  var init = $2;
@@ -8128,11 +8149,11 @@ var ImplicitArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(ApplicationSt
8128
8149
  function ImplicitArguments(ctx, state2) {
8129
8150
  return (0, import_lib3.$EVENT)(ctx, state2, "ImplicitArguments", ImplicitArguments$0);
8130
8151
  }
8131
- var ExplicitArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenParen, (0, import_lib3.$E)((0, import_lib3.$S)(ArgumentList, (0, import_lib3.$E)((0, import_lib3.$S)(__, Comma)))), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4) {
8152
+ var ExplicitArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenParen, AllowAll, (0, import_lib3.$E)((0, import_lib3.$S)(ArgumentList, (0, import_lib3.$E)((0, import_lib3.$S)(__, Comma)))), __, RestoreAll, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
8132
8153
  var open = $1;
8133
- var args = $2;
8134
- var ws = $3;
8135
- var close = $4;
8154
+ var args = $3;
8155
+ var ws = $4;
8156
+ var close = $6;
8136
8157
  if (args) {
8137
8158
  if (args[1]) {
8138
8159
  args = [...args[0], args[1]];
@@ -8891,8 +8912,10 @@ var Placeholder$$ = [Placeholder$0, Placeholder$1, Placeholder$2];
8891
8912
  function Placeholder(ctx, state2) {
8892
8913
  return (0, import_lib3.$EVENT_C)(ctx, state2, "Placeholder", Placeholder$$);
8893
8914
  }
8894
- var PlaceholderTypeSuffix$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$Y)((0, import_lib3.$S)((0, import_lib3.$E)(QuestionMark), Colon)), TypeSuffix), function(value) {
8895
- return value[1];
8915
+ var PlaceholderTypeSuffix$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$E)(QuestionMark), Colon, MaybeNestedTypePrimary), function(value) {
8916
+ var optional = value[0];
8917
+ var t = value[2];
8918
+ return { "type": "TypeSuffix", "ts": true, "optional": optional, "t": t, "children": value };
8896
8919
  });
8897
8920
  function PlaceholderTypeSuffix(ctx, state2) {
8898
8921
  return (0, import_lib3.$EVENT)(ctx, state2, "PlaceholderTypeSuffix", PlaceholderTypeSuffix$0);
@@ -13605,7 +13628,15 @@ function CatchClause(ctx, state2) {
13605
13628
  return (0, import_lib3.$EVENT)(ctx, state2, "CatchClause", CatchClause$0);
13606
13629
  }
13607
13630
  var CatchBind$0 = (0, import_lib3.$S)((0, import_lib3.$E)(_), OpenParen, __, CatchParameter, __, CloseParen);
13608
- var CatchBind$1 = (0, import_lib3.$S)(_, InsertOpenParen, (0, import_lib3.$N)(EOS), CatchParameter, InsertCloseParen);
13631
+ var CatchBind$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(_, InsertOpenParen, (0, import_lib3.$N)(EOS), ForbidIndentedApplication, (0, import_lib3.$E)(CatchParameter), RestoreIndentedApplication, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
13632
+ var ws = $1;
13633
+ var open = $2;
13634
+ var param = $5;
13635
+ var close = $7;
13636
+ if (!param)
13637
+ return $skip;
13638
+ return [ws, open, param, close];
13639
+ });
13609
13640
  var CatchBind$$ = [CatchBind$0, CatchBind$1];
13610
13641
  function CatchBind(ctx, state2) {
13611
13642
  return (0, import_lib3.$EVENT_C)(ctx, state2, "CatchBind", CatchBind$$);
@@ -17011,6 +17042,19 @@ var MaybeNestedType$$ = [MaybeNestedType$0, MaybeNestedType$1, MaybeNestedType$2
17011
17042
  function MaybeNestedType(ctx, state2) {
17012
17043
  return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedType", MaybeNestedType$$);
17013
17044
  }
17045
+ var MaybeNestedTypePrimary$0 = NestedTypeBulletedTuple;
17046
+ var MaybeNestedTypePrimary$1 = NestedInterfaceBlock;
17047
+ var MaybeNestedTypePrimary$2 = NestedTypeBinaryChain;
17048
+ var MaybeNestedTypePrimary$3 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
17049
+ if (!$2)
17050
+ return $skip;
17051
+ return $2;
17052
+ });
17053
+ var MaybeNestedTypePrimary$4 = TypePrimary;
17054
+ var MaybeNestedTypePrimary$$ = [MaybeNestedTypePrimary$0, MaybeNestedTypePrimary$1, MaybeNestedTypePrimary$2, MaybeNestedTypePrimary$3, MaybeNestedTypePrimary$4];
17055
+ function MaybeNestedTypePrimary(ctx, state2) {
17056
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedTypePrimary", MaybeNestedTypePrimary$$);
17057
+ }
17014
17058
  var ReturnTypeSuffix$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$E)(QuestionMark), (0, import_lib3.$E)(_), Colon, ReturnType), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
17015
17059
  var optional = $2;
17016
17060
  var t = $5;
@@ -17718,7 +17762,7 @@ var TypeParameters$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenAngleBracket
17718
17762
  function TypeParameters(ctx, state2) {
17719
17763
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeParameters", TypeParameters$0);
17720
17764
  }
17721
- var TypeParameter$0 = (0, import_lib3.$S)(__, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L173, 'TypeParameter "const"'), (0, import_lib3.$E)(_))), Identifier, (0, import_lib3.$E)(TypeConstraint), (0, import_lib3.$E)(TypeInitializer), TypeParameterDelimiter);
17765
+ var TypeParameter$0 = (0, import_lib3.$S)(__, (0, import_lib3.$Q)((0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R91, "TypeParameter /const|in|out/")), _)), Identifier, (0, import_lib3.$E)(TypeConstraint), (0, import_lib3.$E)(TypeInitializer), TypeParameterDelimiter);
17722
17766
  function TypeParameter(ctx, state2) {
17723
17767
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeParameter", TypeParameter$0);
17724
17768
  }
@@ -17745,15 +17789,15 @@ var ThisType$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$E)(_),
17745
17789
  function ThisType(ctx, state2) {
17746
17790
  return (0, import_lib3.$EVENT)(ctx, state2, "ThisType", ThisType$0);
17747
17791
  }
17748
- var Shebang$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R91, "Shebang /#![^\\r\\n]*/")), EOL);
17792
+ var Shebang$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R92, "Shebang /#![^\\r\\n]*/")), EOL);
17749
17793
  function Shebang(ctx, state2) {
17750
17794
  return (0, import_lib3.$EVENT)(ctx, state2, "Shebang", Shebang$0);
17751
17795
  }
17752
- var CivetPrologue$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R92, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
17796
+ var CivetPrologue$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R93, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
17753
17797
  var content = value[2];
17754
17798
  return content;
17755
17799
  });
17756
- var CivetPrologue$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R92, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
17800
+ var CivetPrologue$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R93, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
17757
17801
  var content = value[2];
17758
17802
  return content;
17759
17803
  });
@@ -17761,7 +17805,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
17761
17805
  function CivetPrologue(ctx, state2) {
17762
17806
  return (0, import_lib3.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
17763
17807
  }
17764
- var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L238, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib3.$Q)(CivetOption), (0, import_lib3.$EXPECT)($R93, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
17808
+ var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L238, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib3.$Q)(CivetOption), (0, import_lib3.$EXPECT)($R94, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
17765
17809
  var options = $3;
17766
17810
  return {
17767
17811
  type: "CivetPrologue",
@@ -17772,7 +17816,7 @@ var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import
17772
17816
  function CivetPrologueContent(ctx, state2) {
17773
17817
  return (0, import_lib3.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
17774
17818
  }
17775
- var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R94, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17819
+ var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R95, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17776
17820
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
17777
17821
  if (l)
17778
17822
  return l.toUpperCase();
@@ -17794,11 +17838,11 @@ var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R94, "CivetOp
17794
17838
  function CivetOption(ctx, state2) {
17795
17839
  return (0, import_lib3.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
17796
17840
  }
17797
- var UnknownPrologue$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R92, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib3.$TEXT)(SimpleStatementDelimiter), EOS);
17841
+ var UnknownPrologue$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R93, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib3.$TEXT)(SimpleStatementDelimiter), EOS);
17798
17842
  function UnknownPrologue(ctx, state2) {
17799
17843
  return (0, import_lib3.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
17800
17844
  }
17801
- var TripleSlashDirective$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R95, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib3.$E)(EOS));
17845
+ var TripleSlashDirective$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R96, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib3.$E)(EOS));
17802
17846
  function TripleSlashDirective(ctx, state2) {
17803
17847
  return (0, import_lib3.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
17804
17848
  }
@@ -17814,13 +17858,13 @@ var PrologueString$$ = [PrologueString$0, PrologueString$1];
17814
17858
  function PrologueString(ctx, state2) {
17815
17859
  return (0, import_lib3.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
17816
17860
  }
17817
- var EOS$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R96, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib3.$P)(RestOfLine)), function(value) {
17861
+ var EOS$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R97, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib3.$P)(RestOfLine)), function(value) {
17818
17862
  return value[1];
17819
17863
  });
17820
17864
  function EOS(ctx, state2) {
17821
17865
  return (0, import_lib3.$EVENT)(ctx, state2, "EOS", EOS$0);
17822
17866
  }
17823
- var EOL$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R97, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17867
+ var EOL$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R98, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17824
17868
  return { $loc, token: $0 };
17825
17869
  });
17826
17870
  function EOL(ctx, state2) {
@@ -18220,7 +18264,7 @@ var Prologue$0 = (0, import_lib3.$Q)((0, import_lib3.$C)(TripleSlashDirective, (
18220
18264
  function Prologue(ctx, state2) {
18221
18265
  return (0, import_lib3.$EVENT)(ctx, state2, "Prologue", Prologue$0);
18222
18266
  }
18223
- var ProloguePrefix$0 = (0, import_lib3.$S)(Prologue, (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R98, "ProloguePrefix /[^]*/")));
18267
+ var ProloguePrefix$0 = (0, import_lib3.$S)(Prologue, (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R99, "ProloguePrefix /[^]*/")));
18224
18268
  function ProloguePrefix(ctx, state2) {
18225
18269
  return (0, import_lib3.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
18226
18270
  }
@@ -1,2 +1,2 @@
1
- declare const _default: (options: import("./unplugin.js").PluginOptions) => import("rollup").Plugin | import("rollup").Plugin[];
1
+ declare const _default: (options: import("./unplugin.js").PluginOptions) => import("rollup").Plugin<any> | import("rollup").Plugin<any>[];
2
2
  export default _default;
@@ -5,6 +5,7 @@ export type PluginOptions = {
5
5
  outputExtension?: string;
6
6
  transformOutput?: (code: string, id: string) => TransformResult | Promise<TransformResult>;
7
7
  emitDeclaration?: boolean;
8
+ declarationExtension?: string;
8
9
  typecheck?: boolean | string;
9
10
  ts?: 'civet' | 'esbuild' | 'tsc' | 'preserve';
10
11
  /** @deprecated Use "ts" option instead */
@@ -14,7 +15,7 @@ export type PluginOptions = {
14
15
  /** Cache compilation results based on file mtime (useful for serve or watch mode) */
15
16
  cache?: boolean;
16
17
  /** config filename, or null to not look for default config file */
17
- config?: string | null | undefined;
18
+ config?: (string | undefined) | null;
18
19
  parseOptions?: ParseOptions;
19
20
  };
20
21
  export declare function slash(p: string): string;
@@ -52,6 +52,7 @@ DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning";
52
52
  DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error";
53
53
  DiagnosticCategory[DiagnosticCategory["Suggestion"] = 2] = "Suggestion";
54
54
  DiagnosticCategory[DiagnosticCategory["Message"] = 3] = "Message";
55
+ var civetExtension = /\.civet$/;
55
56
  var isCivetTranspiled = /(\.civet)(\.[jt]sx)([?#].*)?$/;
56
57
  var postfixRE = /[?#].*$/s;
57
58
  var isWindows = import_os.default.platform() === "win32";
@@ -320,7 +321,7 @@ var rawPlugin = (options = {}, meta) => {
320
321
  }
321
322
  for (const file of fsMap.keys()) {
322
323
  const slashed = slash(file);
323
- if (file !== slashed) {
324
+ if (!(file === slashed)) {
324
325
  fsMap.delete(slashed);
325
326
  }
326
327
  }
@@ -329,7 +330,22 @@ var rawPlugin = (options = {}, meta) => {
329
330
  program.emit(
330
331
  sourceFile,
331
332
  (filePath, content) => {
332
- const pathFromDistDir = import_path.default.relative(
333
+ if (options.declarationExtension != null) {
334
+ if (filePath.endsWith(".d.ts")) {
335
+ filePath = filePath.slice(0, -5);
336
+ } else {
337
+ console.log(`WARNING: No .d.ts extension in ${filePath}`);
338
+ }
339
+ let ref;
340
+ if (ref = filePath.match(civetExtension)) {
341
+ const match = ref;
342
+ filePath = filePath.slice(0, -match[0].length);
343
+ } else {
344
+ console.log(`WARNING: No .civet extension in ${filePath}`);
345
+ }
346
+ filePath += options.declarationExtension;
347
+ }
348
+ let pathFromDistDir = import_path.default.relative(
333
349
  compilerOptions.outDir ?? process.cwd(),
334
350
  filePath
335
351
  );
@@ -341,7 +357,7 @@ var rawPlugin = (options = {}, meta) => {
341
357
  { recursive: true }
342
358
  );
343
359
  }
344
- this.emitFile({
360
+ return this.emitFile({
345
361
  source: content,
346
362
  fileName: pathFromDistDir,
347
363
  type: "asset"
@@ -353,7 +369,6 @@ var rawPlugin = (options = {}, meta) => {
353
369
  void 0,
354
370
  // @ts-ignore @internal interface
355
371
  true
356
- // forceDtsEmit
357
372
  );
358
373
  }
359
374
  }
@@ -364,14 +379,14 @@ var rawPlugin = (options = {}, meta) => {
364
379
  return null;
365
380
  let postfix;
366
381
  ({ id, postfix } = cleanCivetId(id));
367
- let ref;
382
+ let ref1;
368
383
  if (import_path.default.isAbsolute(id)) {
369
- ref = resolveAbsolutePath(rootDir, id, implicitExtension);
384
+ ref1 = resolveAbsolutePath(rootDir, id, implicitExtension);
370
385
  } else {
371
- ref = import_path.default.resolve(import_path.default.dirname(importer ?? ""), id);
386
+ ref1 = import_path.default.resolve(import_path.default.dirname(importer ?? ""), id);
372
387
  }
373
388
  ;
374
- let resolvedId = ref;
389
+ let resolvedId = ref1;
375
390
  if (!resolvedId)
376
391
  return null;
377
392
  if (!resolvedId.endsWith(".civet")) {
@@ -20,6 +20,7 @@ DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning";
20
20
  DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error";
21
21
  DiagnosticCategory[DiagnosticCategory["Suggestion"] = 2] = "Suggestion";
22
22
  DiagnosticCategory[DiagnosticCategory["Message"] = 3] = "Message";
23
+ var civetExtension = /\.civet$/;
23
24
  var isCivetTranspiled = /(\.civet)(\.[jt]sx)([?#].*)?$/;
24
25
  var postfixRE = /[?#].*$/s;
25
26
  var isWindows = os.platform() === "win32";
@@ -288,7 +289,7 @@ var rawPlugin = (options = {}, meta) => {
288
289
  }
289
290
  for (const file of fsMap.keys()) {
290
291
  const slashed = slash(file);
291
- if (file !== slashed) {
292
+ if (!(file === slashed)) {
292
293
  fsMap.delete(slashed);
293
294
  }
294
295
  }
@@ -297,7 +298,22 @@ var rawPlugin = (options = {}, meta) => {
297
298
  program.emit(
298
299
  sourceFile,
299
300
  (filePath, content) => {
300
- const pathFromDistDir = path.relative(
301
+ if (options.declarationExtension != null) {
302
+ if (filePath.endsWith(".d.ts")) {
303
+ filePath = filePath.slice(0, -5);
304
+ } else {
305
+ console.log(`WARNING: No .d.ts extension in ${filePath}`);
306
+ }
307
+ let ref;
308
+ if (ref = filePath.match(civetExtension)) {
309
+ const match = ref;
310
+ filePath = filePath.slice(0, -match[0].length);
311
+ } else {
312
+ console.log(`WARNING: No .civet extension in ${filePath}`);
313
+ }
314
+ filePath += options.declarationExtension;
315
+ }
316
+ let pathFromDistDir = path.relative(
301
317
  compilerOptions.outDir ?? process.cwd(),
302
318
  filePath
303
319
  );
@@ -309,7 +325,7 @@ var rawPlugin = (options = {}, meta) => {
309
325
  { recursive: true }
310
326
  );
311
327
  }
312
- this.emitFile({
328
+ return this.emitFile({
313
329
  source: content,
314
330
  fileName: pathFromDistDir,
315
331
  type: "asset"
@@ -321,7 +337,6 @@ var rawPlugin = (options = {}, meta) => {
321
337
  void 0,
322
338
  // @ts-ignore @internal interface
323
339
  true
324
- // forceDtsEmit
325
340
  );
326
341
  }
327
342
  }
@@ -332,14 +347,14 @@ var rawPlugin = (options = {}, meta) => {
332
347
  return null;
333
348
  let postfix;
334
349
  ({ id, postfix } = cleanCivetId(id));
335
- let ref;
350
+ let ref1;
336
351
  if (path.isAbsolute(id)) {
337
- ref = resolveAbsolutePath(rootDir, id, implicitExtension);
352
+ ref1 = resolveAbsolutePath(rootDir, id, implicitExtension);
338
353
  } else {
339
- ref = path.resolve(path.dirname(importer ?? ""), id);
354
+ ref1 = path.resolve(path.dirname(importer ?? ""), id);
340
355
  }
341
356
  ;
342
- let resolvedId = ref;
357
+ let resolvedId = ref1;
343
358
  if (!resolvedId)
344
359
  return null;
345
360
  if (!resolvedId.endsWith(".civet")) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@danielx/civet",
3
3
  "type": "commonjs",
4
- "version": "0.8.0",
4
+ "version": "0.8.1",
5
5
  "description": "CoffeeScript style syntax for TypeScript",
6
6
  "main": "dist/main.js",
7
7
  "module": "dist/main.mjs",