@witchcraft/expressit 0.2.2 → 0.3.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.
Files changed (122) hide show
  1. package/README.md +1 -2
  2. package/dist/Lexer.d.ts +99 -94
  3. package/dist/Lexer.d.ts.map +1 -1
  4. package/dist/Lexer.js +221 -574
  5. package/dist/Parser.d.ts +26 -26
  6. package/dist/Parser.d.ts.map +1 -1
  7. package/dist/Parser.js +106 -116
  8. package/dist/ast/builders/array.js +7 -8
  9. package/dist/ast/builders/condition.d.ts +1 -1
  10. package/dist/ast/builders/condition.d.ts.map +1 -1
  11. package/dist/ast/builders/condition.js +2 -1
  12. package/dist/ast/builders/delim.d.ts +2 -2
  13. package/dist/ast/builders/delim.d.ts.map +1 -1
  14. package/dist/ast/builders/error.d.ts +2 -2
  15. package/dist/ast/builders/error.d.ts.map +1 -1
  16. package/dist/ast/builders/expression.d.ts +2 -2
  17. package/dist/ast/builders/expression.d.ts.map +1 -1
  18. package/dist/ast/builders/expression.js +4 -8
  19. package/dist/ast/builders/group.d.ts +1 -1
  20. package/dist/ast/builders/group.d.ts.map +1 -1
  21. package/dist/ast/builders/group.js +8 -11
  22. package/dist/ast/builders/pos.d.ts +2 -2
  23. package/dist/ast/builders/pos.d.ts.map +1 -1
  24. package/dist/ast/builders/token.d.ts +2 -2
  25. package/dist/ast/builders/token.d.ts.map +1 -1
  26. package/dist/ast/builders/token.js +1 -1
  27. package/dist/ast/builders/type.d.ts +2 -2
  28. package/dist/ast/builders/type.d.ts.map +1 -1
  29. package/dist/ast/builders/variable.d.ts +3 -3
  30. package/dist/ast/builders/variable.d.ts.map +1 -1
  31. package/dist/ast/builders/variable.js +5 -6
  32. package/dist/ast/createConditionNode.d.ts +1 -1
  33. package/dist/ast/createConditionNode.d.ts.map +1 -1
  34. package/dist/ast/createConditionNode.js +1 -2
  35. package/dist/ast/createGroupNode.d.ts +1 -1
  36. package/dist/ast/createGroupNode.d.ts.map +1 -1
  37. package/dist/ast/createToken.d.ts +2 -2
  38. package/dist/ast/createToken.d.ts.map +1 -1
  39. package/dist/ast/createToken.js +2 -2
  40. package/dist/ast/error.d.ts +2 -2
  41. package/dist/ast/error.d.ts.map +1 -1
  42. package/dist/ast/error.js +1 -0
  43. package/dist/ast/handlers.d.ts +23 -23
  44. package/dist/ast/handlers.d.ts.map +1 -1
  45. package/dist/ast/handlers.js +23 -26
  46. package/dist/examples/ParserWithSqlSupport.d.ts +5 -5
  47. package/dist/examples/ParserWithSqlSupport.d.ts.map +1 -1
  48. package/dist/examples/ParserWithSqlSupport.js +22 -28
  49. package/dist/examples/ShortcutContextParser.js +2 -5
  50. package/dist/index.js +2 -2
  51. package/dist/internal/ExpressitError.d.ts +2 -2
  52. package/dist/internal/ExpressitError.d.ts.map +1 -1
  53. package/dist/internal/ExpressitError.js +7 -10
  54. package/dist/internal/checkParserOpts.js +21 -22
  55. package/dist/internal/escapeVariableOrPrefix.js +1 -1
  56. package/dist/internal/parseParserOptions.js +3 -4
  57. package/dist/package.json.js +2 -60
  58. package/dist/types/ast.d.ts +60 -58
  59. package/dist/types/ast.d.ts.map +1 -1
  60. package/dist/types/ast.js +26 -27
  61. package/dist/types/autocomplete.d.ts +23 -21
  62. package/dist/types/autocomplete.d.ts.map +1 -1
  63. package/dist/types/autocomplete.js +24 -21
  64. package/dist/types/errors.d.ts +12 -10
  65. package/dist/types/errors.d.ts.map +1 -1
  66. package/dist/types/errors.js +8 -7
  67. package/dist/types/index.js +2 -2
  68. package/dist/types/parser.d.ts +3 -3
  69. package/dist/types/parser.d.ts.map +1 -1
  70. package/dist/utils/extractTokens.js +4 -5
  71. package/dist/utils/generateParentsMap.js +7 -8
  72. package/dist/utils/getCursorInfo.js +5 -3
  73. package/dist/utils/getOppositeDelimiter.d.ts +2 -2
  74. package/dist/utils/getOppositeDelimiter.d.ts.map +1 -1
  75. package/dist/utils/getOppositeDelimiter.js +1 -1
  76. package/dist/utils/getSurroundingErrors.js +2 -3
  77. package/dist/utils/isBracket.js +1 -1
  78. package/dist/utils/isDelimiter.d.ts +2 -2
  79. package/dist/utils/isDelimiter.d.ts.map +1 -1
  80. package/dist/utils/isDelimiter.js +1 -1
  81. package/dist/utils/isNode.js +1 -1
  82. package/dist/utils/isParen.d.ts +2 -2
  83. package/dist/utils/isParen.d.ts.map +1 -1
  84. package/dist/utils/isParen.js +1 -1
  85. package/dist/utils/isQuote.d.ts +2 -2
  86. package/dist/utils/isQuote.d.ts.map +1 -1
  87. package/dist/utils/isQuote.js +1 -1
  88. package/dist/utils/isToken.js +1 -1
  89. package/dist/utils/prettyAst.js +10 -11
  90. package/package.json +19 -20
  91. package/src/Lexer.ts +100 -90
  92. package/src/Parser.ts +68 -68
  93. package/src/ast/builders/condition.ts +3 -3
  94. package/src/ast/builders/delim.ts +4 -4
  95. package/src/ast/builders/error.ts +3 -3
  96. package/src/ast/builders/expression.ts +4 -8
  97. package/src/ast/builders/group.ts +2 -4
  98. package/src/ast/builders/pos.ts +3 -3
  99. package/src/ast/builders/token.ts +3 -3
  100. package/src/ast/builders/type.ts +2 -2
  101. package/src/ast/builders/variable.ts +5 -5
  102. package/src/ast/createConditionNode.ts +2 -2
  103. package/src/ast/createGroupNode.ts +4 -4
  104. package/src/ast/createToken.ts +6 -6
  105. package/src/ast/error.ts +2 -2
  106. package/src/ast/handlers.ts +20 -20
  107. package/src/examples/ParserWithSqlSupport.ts +12 -6
  108. package/src/internal/ExpressitError.ts +6 -6
  109. package/src/internal/checkParserOpts.ts +13 -13
  110. package/src/internal/escapeVariableOrPrefix.ts +1 -1
  111. package/src/types/ast.ts +101 -96
  112. package/src/types/autocomplete.ts +26 -22
  113. package/src/types/errors.ts +18 -13
  114. package/src/types/parser.ts +3 -3
  115. package/src/utils/extractTokens.ts +1 -1
  116. package/src/utils/getCursorInfo.ts +2 -2
  117. package/src/utils/getOppositeDelimiter.ts +3 -3
  118. package/src/utils/getSurroundingErrors.ts +4 -4
  119. package/src/utils/isDelimiter.ts +3 -3
  120. package/src/utils/isParen.ts +2 -2
  121. package/src/utils/isQuote.ts +2 -2
  122. package/src/utils/prettyAst.ts +3 -3
@@ -1,8 +1,8 @@
1
- import { type ErrorToken, TOKEN_TYPE } from "../../types/ast.js";
1
+ import { type ErrorToken, type TokenType } from "../../types/ast.js";
2
2
  /**
3
3
  * Creates an error token.
4
4
  *
5
5
  * @param expected Can be passed an array of {@link ValidToken_TYPE} or strings, in which case it will use {@link type} internally. So instead of `[TOKEN_TYPE.VALUE]` we can do `[""]` and instead of `[TOKEN_TYPE.PARENR]` we can do `[")"]`.
6
6
  */
7
- export declare function error<T extends TOKEN_TYPE>(pos: number, expected: T[]): ErrorToken;
7
+ export declare function error<T extends TokenType>(pos: number, expected: T[]): ErrorToken;
8
8
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAC,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI/D;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,UAAU,CAAA"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAa,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAI/E;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,UAAU,CAAA"}
@@ -1,8 +1,8 @@
1
- import { type AnyToken, type ConditionNode, type ErrorToken, type ExpressionNode, type GroupNode, type TokenBooleanTypes } from "../../types/ast.js";
1
+ import { type AnyToken, type ConditionNode, type ErrorToken, type ExpressionNode, type GroupNode, type TokenBoolean } from "../../types/ast.js";
2
2
  /**
3
3
  * Creates an {@link ExpressionNode}, can be passed nothing for any of the tokens to automatically create error tokens.
4
4
  *
5
5
  * Also automatically sets the correct start/end positions from valid tokens (e.g. for start, searching left to right for a valid token and vice versa) assuming at least one is defined.
6
6
  */
7
- export declare function expression(left: ConditionNode | ExpressionNode | GroupNode | ErrorToken | undefined, operator: AnyToken<TokenBooleanTypes> | undefined, right: ConditionNode | ExpressionNode | GroupNode | ErrorToken | undefined): ExpressionNode;
7
+ export declare function expression(left: ConditionNode | ExpressionNode | GroupNode | ErrorToken | undefined, operator: AnyToken<TokenBoolean> | undefined, right: ConditionNode | ExpressionNode | GroupNode | ErrorToken | undefined): ExpressionNode;
8
8
  //# sourceMappingURL=expression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/expression.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAC,KAAK,SAAS,EAA6B,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAI9K;;;;GAIG;AACH,wBAAgB,UAAU,CACzB,IAAI,EACH,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,EACV,QAAQ,EACP,QAAQ,CAAC,iBAAiB,CAAC,GAC3B,SAAS,EACV,KAAK,EACJ,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,GACR,cAAc,CA+BhB"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/expression.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAC,KAAK,SAAS,EAA6B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAIzK;;;;GAIG;AACH,wBAAgB,UAAU,CACzB,IAAI,EACH,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,EACV,QAAQ,EACP,QAAQ,CAAC,YAAY,CAAC,GACtB,SAAS,EACV,KAAK,EACJ,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,GACR,cAAc,CA2BhB"}
@@ -3,19 +3,15 @@ import { token } from "./token.js";
3
3
  import { TOKEN_TYPE } from "../../types/ast.js";
4
4
  import { createExpressionNode } from "../createExpressionNode.js";
5
5
  function expression(left, operator, right) {
6
- const start = (left == null ? void 0 : left.start) ?? (operator == null ? void 0 : operator.start) ?? (right == null ? void 0 : right.start);
7
- const end = (right == null ? void 0 : right.end) ?? (operator == null ? void 0 : operator.end) ?? (left == null ? void 0 : left.end);
6
+ const start = left?.start ?? operator?.start ?? right?.start;
7
+ const end = right?.end ?? operator?.end ?? left?.end;
8
8
  const position = pos({ start, end });
9
- if (left === void 0) {
10
- left = token(TOKEN_TYPE.VALUE, void 0, { start: position.start });
11
- }
9
+ left ??= token(TOKEN_TYPE.VALUE, void 0, { start: position.start });
12
10
  let op;
13
11
  if (operator === void 0) {
14
12
  operator = token([TOKEN_TYPE.AND, TOKEN_TYPE.OR], void 0, { start: left.end });
15
13
  } else op = operator;
16
- if (right === void 0) {
17
- right = token(TOKEN_TYPE.VALUE, void 0, { start: op.end });
18
- }
14
+ right ??= token(TOKEN_TYPE.VALUE, void 0, { start: op.end });
19
15
  return createExpressionNode({
20
16
  left,
21
17
  operator: op,
@@ -8,7 +8,7 @@ import { type ConditionNode, type ErrorToken, type ExpressionNode, type GroupNod
8
8
  *
9
9
  * The positions of the parens can be adjusted with the last two parameters by passing positions.
10
10
  */
11
- export declare function group(prefix: ConditionNode | ValidToken<TOKEN_TYPE.NOT> | undefined, expression: ConditionNode | ExpressionNode | GroupNode | ErrorToken | undefined, paren?: {
11
+ export declare function group(prefix: ConditionNode | ValidToken<typeof TOKEN_TYPE.NOT> | undefined, expression: ConditionNode | ExpressionNode | GroupNode | ErrorToken | undefined, paren?: {
12
12
  left?: boolean;
13
13
  right?: boolean;
14
14
  }, parenLeftPos?: Position, parenRightPos?: Position): GroupNode;
@@ -1 +1 @@
1
- {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/group.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAkB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGzK;;;;;;;;GAQG;AAEH,wBAAgB,KAAK,CACpB,MAAM,EACJ,aAAa,GACb,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAC1B,SAAS,EAEX,UAAU,EACR,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,EAEX,KAAK,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAgC,EACxE,YAAY,CAAC,EAAE,QAAQ,EACvB,aAAa,CAAC,EAAE,QAAQ,GACtB,SAAS,CA2CX"}
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/group.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAkB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGzK;;;;;;;;GAQG;AAEH,wBAAgB,KAAK,CACpB,MAAM,EACJ,aAAa,GACb,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,GACjC,SAAS,EAEX,UAAU,EACR,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,EAEX,KAAK,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAgC,EACxE,YAAY,CAAC,EAAE,QAAQ,EACvB,aAAa,CAAC,EAAE,QAAQ,GACtB,SAAS,CAyCX"}
@@ -2,17 +2,14 @@ import { token } from "./token.js";
2
2
  import { TOKEN_TYPE } from "../../types/ast.js";
3
3
  import { createGroupNode } from "../createGroupNode.js";
4
4
  function group(prefix, expression, paren = { right: true, left: true }, parenLeftPos, parenRightPos) {
5
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
6
- if (expression === void 0) {
7
- expression = token(TOKEN_TYPE.VALUE, void 0, (prefix == null ? void 0 : prefix.end) !== void 0 ? { start: prefix.end } : void 0);
8
- }
5
+ expression ??= token(TOKEN_TYPE.VALUE, void 0, prefix?.end !== void 0 ? { start: prefix.end } : void 0);
9
6
  const node = {
10
7
  prefix: void 0,
11
8
  expression
12
9
  };
13
10
  if (prefix) {
14
11
  node.prefix = prefix;
15
- const locToRight = ((_b = (_a = node.paren) == null ? void 0 : _a.left) == null ? void 0 : _b.start) ?? ((_c = node.expression) == null ? void 0 : _c.start) ?? ((_d = node.paren) == null ? void 0 : _d.right.start);
12
+ const locToRight = node.paren?.left?.start ?? node.expression?.start ?? node.paren?.right.start;
16
13
  if (prefix.start === void 0 && locToRight !== void 0) {
17
14
  throw new Error("group builder: missing prefix location when passed expression with location");
18
15
  }
@@ -20,9 +17,9 @@ function group(prefix, expression, paren = { right: true, left: true }, parenLef
20
17
  node.paren = {};
21
18
  const start = expression.start;
22
19
  const end = expression.end;
23
- parenLeftPos ?? (parenLeftPos = start !== void 0 ? { start: start - 1, end: start } : void 0);
24
- parenRightPos ?? (parenRightPos = end !== void 0 ? { start: end, end: end + 1 } : void 0);
25
- if (paren == null ? void 0 : paren.left) {
20
+ parenLeftPos ??= start !== void 0 ? { start: start - 1, end: start } : void 0;
21
+ parenRightPos ??= end !== void 0 ? { start: end, end: end + 1 } : void 0;
22
+ if (paren?.left) {
26
23
  node.paren.left = token(TOKEN_TYPE.PARENL, "(", parenLeftPos);
27
24
  } else {
28
25
  if (parenLeftPos) {
@@ -30,7 +27,7 @@ function group(prefix, expression, paren = { right: true, left: true }, parenLef
30
27
  }
31
28
  node.paren.left = token(TOKEN_TYPE.PARENL, void 0, parenLeftPos);
32
29
  }
33
- if (paren == null ? void 0 : paren.right) {
30
+ if (paren?.right) {
34
31
  node.paren.right = token(TOKEN_TYPE.PARENR, ")", parenRightPos);
35
32
  } else {
36
33
  if (parenRightPos) {
@@ -38,8 +35,8 @@ function group(prefix, expression, paren = { right: true, left: true }, parenLef
38
35
  }
39
36
  node.paren.right = token(TOKEN_TYPE.PARENR, void 0, parenRightPos);
40
37
  }
41
- node.start = ((_e = node.prefix) == null ? void 0 : _e.start) ?? ((_g = (_f = node.paren) == null ? void 0 : _f.left) == null ? void 0 : _g.start) ?? ((_h = node.expression) == null ? void 0 : _h.start) ?? ((_i = node.paren) == null ? void 0 : _i.right.start);
42
- node.end = ((_k = (_j = node.paren) == null ? void 0 : _j.right) == null ? void 0 : _k.end) ?? ((_l = node.expression) == null ? void 0 : _l.end) ?? ((_m = node.paren) == null ? void 0 : _m.left.end) ?? ((_n = node.prefix) == null ? void 0 : _n.end);
38
+ node.start = node.prefix?.start ?? node.paren?.left?.start ?? node.expression?.start ?? node.paren?.right.start;
39
+ node.end = node.paren?.right?.end ?? node.expression?.end ?? node.paren?.left.end ?? node.prefix?.end;
43
40
  return createGroupNode(node);
44
41
  }
45
42
  export {
@@ -1,4 +1,4 @@
1
- import type { AnyToken, AST_TYPE, EmptyObj, Node, Position, TOKEN_TYPE } from "../../types/ast.js";
1
+ import type { AnyToken, AstType, EmptyObj, Node, Position, TokenType } from "../../types/ast.js";
2
2
  /**
3
3
  * Can either:
4
4
  *
@@ -15,6 +15,6 @@ export declare function pos<TItem extends Position | Partial<Position> | EmptyOb
15
15
  } ? Position : EmptyObj;
16
16
  export declare function pos<TItem extends Position | Partial<Position> | EmptyObj>(item: TItem, opts?: undefined | {
17
17
  fill: false;
18
- }): TItem extends Position ? Position : TItem extends AnyToken<TOKEN_TYPE> | Position | EmptyObj ? Position | EmptyObj : TItem extends Node<AST_TYPE> | Position | EmptyObj ? Position | EmptyObj : EmptyObj;
18
+ }): TItem extends Position ? Position : TItem extends AnyToken<TokenType> | Position | EmptyObj ? Position | EmptyObj : TItem extends Node<AstType> | Position | EmptyObj ? Position | EmptyObj : EmptyObj;
19
19
  export declare function pos(start: number, end: number): Position;
20
20
  //# sourceMappingURL=pos.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pos.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/pos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAElG;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,KAAK,SAAS,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,EACxE,IAAI,EAAE,KAAK,EACX,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAClB,KAAK,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACjD,QAAQ,GACR,QAAQ,CAAA;AACX,wBAAgB,GAAG,CAAC,KAAK,SAAS,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,EACxE,IAAI,EAAE,KAAK,EACX,IAAI,CAAC,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAGlC,KAAK,SAAS,QAAQ,GACpB,QAAQ,GACR,KAAK,SAAS,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,QAAQ,GACxD,QAAQ,GAAG,QAAQ,GACnB,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,QAAQ,GAClD,QAAQ,GAAG,QAAQ,GACnB,QAAQ,CAAA;AACX,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"pos.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/pos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEhG;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,KAAK,SAAS,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,EACxE,IAAI,EAAE,KAAK,EACX,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAClB,KAAK,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACjD,QAAQ,GACR,QAAQ,CAAA;AACX,wBAAgB,GAAG,CAAC,KAAK,SAAS,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,EACxE,IAAI,EAAE,KAAK,EACX,IAAI,CAAC,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAGlC,KAAK,SAAS,QAAQ,GACpB,QAAQ,GACR,KAAK,SAAS,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,QAAQ,GACvD,QAAQ,GAAG,QAAQ,GACnB,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,QAAQ,GACjD,QAAQ,GAAG,QAAQ,GACnB,QAAQ,CAAA;AACX,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { EmptyObj, ErrorToken, Position, TOKEN_TYPE, ValidToken } from "../../types/ast.js";
1
+ import type { EmptyObj, ErrorToken, Position, TokenType, ValidToken } from "../../types/ast.js";
2
2
  /**
3
3
  * Creates a {@link ValidToken} or of the given type with the given value. If no value is given, creates an {@link ErrorToken} instead.
4
4
  *
@@ -6,5 +6,5 @@ import type { EmptyObj, ErrorToken, Position, TOKEN_TYPE, ValidToken } from "../
6
6
  *
7
7
  * If the token is an error token, just `start` or `end` can be passed, and the other position will be filled to the same value.
8
8
  */
9
- export declare function token<TValue extends string | undefined, TType extends TOKEN_TYPE = TOKEN_TYPE>(type: TValue extends undefined ? TType | TType[] : TType, value: TValue, position?: Position | Partial<Position> | EmptyObj): TValue extends undefined ? ErrorToken : ValidToken<TType>;
9
+ export declare function token<TValue extends string | undefined, TType extends TokenType = TokenType>(type: TValue extends undefined ? TType | TType[] : TType, value: TValue, position?: Position | Partial<Position> | EmptyObj): TValue extends undefined ? ErrorToken : ValidToken<TType>;
10
10
  //# sourceMappingURL=token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/token.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAY,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI1G;;;;;;GAMG;AAEH,wBAAgB,KAAK,CACpB,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,KAAK,SAAS,UAAU,GAAG,UAAU,EAErC,IAAI,EAAE,MAAM,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,KAAK,EACxD,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAa,GACpD,MAAM,SAAS,SAAS,GACxB,UAAU,GACV,UAAU,CAAC,KAAK,CAAC,CAmBnB"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/token.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAY,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIzG;;;;;;GAMG;AAEH,wBAAgB,KAAK,CACpB,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,KAAK,SAAS,SAAS,GAAG,SAAS,EAEnC,IAAI,EAAE,MAAM,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,KAAK,EACxD,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAa,GACpD,MAAM,SAAS,SAAS,GACxB,UAAU,GACV,UAAU,CAAC,KAAK,CAAC,CAmBnB"}
@@ -1,4 +1,4 @@
1
- import { isArray } from "@alanscodelog/utils/isArray.js";
1
+ import { isArray } from "@alanscodelog/utils/isArray";
2
2
  import { pos } from "./pos.js";
3
3
  import { createToken } from "../createToken.js";
4
4
  function token(type, value, position = {}) {
@@ -1,6 +1,6 @@
1
- import { type ExtractTokenType } from "../../types/ast.js";
1
+ import { type ExtractToken } from "../../types/ast.js";
2
2
  /**
3
3
  * Given a the string value of an operator or single delimiter token, returns the corresponding {@link ValidToken_TYPE} .
4
4
  */
5
- export declare function type<T extends string>(operatorSymbol: T): ExtractTokenType<T>;
5
+ export declare function type<T extends string>(operatorSymbol: T): ExtractToken<T>;
6
6
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,oBAAoB,CAAA;AACtE;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACpC,cAAc,EAAE,CAAC,GACf,gBAAgB,CAAC,CAAC,CAAC,CAwBrB"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,oBAAoB,CAAA;AAClE;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACpC,cAAc,EAAE,CAAC,GACf,YAAY,CAAC,CAAC,CAAC,CAwBjB"}
@@ -1,4 +1,4 @@
1
- import { type AnyToken, type EmptyObj, type Position, TOKEN_TYPE, type TokenQuoteTypes, type ValidToken, type VariableNode } from "../../types/ast.js";
1
+ import { type AnyToken, type EmptyObj, type Position, TOKEN_TYPE, type TokenQuote, type ValidToken, type VariableNode } from "../../types/ast.js";
2
2
  /**
3
3
  * Creates an {@link VariableNode} .
4
4
  *
@@ -6,8 +6,8 @@ import { type AnyToken, type EmptyObj, type Position, TOKEN_TYPE, type TokenQuot
6
6
  *
7
7
  * @param position Refers to position of the value (in case it needs to be created) not the node. Quote positions are automatically calculated from this if used. If value is already a token, there's no need to pass a position, it can be extracted from the token.
8
8
  */
9
- export declare function variable(prefix: ValidToken<TOKEN_TYPE.VALUE> | undefined, value: string | AnyToken<TOKEN_TYPE.VALUE>, quote?: {
10
- type: TokenQuoteTypes;
9
+ export declare function variable(prefix: ValidToken<typeof TOKEN_TYPE.VALUE> | undefined, value: string | AnyToken<typeof TOKEN_TYPE.VALUE>, quote?: {
10
+ type: TokenQuote;
11
11
  left?: boolean;
12
12
  right?: boolean;
13
13
  flags?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/variable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAkB,KAAK,QAAQ,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItK;;;;;;GAMG;AAEH,wBAAgB,QAAQ,CACvB,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,EAChD,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAC1C,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAClF,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAC5B,YAAY,CAwDd"}
1
+ {"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/variable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAkB,KAAK,QAAQ,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAIjK;;;;;;GAMG;AAEH,wBAAgB,QAAQ,CACvB,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,EACvD,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,EACjD,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7E,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAC5B,YAAY,CAwDd"}
@@ -3,7 +3,6 @@ import { token } from "./token.js";
3
3
  import { TOKEN_TYPE } from "../../types/ast.js";
4
4
  import { createVariableNode } from "../createVariableNode.js";
5
5
  function variable(prefix, value, quote, position) {
6
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
7
6
  if (typeof value === "string") {
8
7
  value = token(TOKEN_TYPE.VALUE, value, position);
9
8
  }
@@ -14,14 +13,14 @@ function variable(prefix, value, quote, position) {
14
13
  };
15
14
  if (quote) {
16
15
  node.quote = {};
17
- const quoteLeftPos = (position == null ? void 0 : position.start) !== void 0 ? pos({ start: position.start }, { fill: true }) : void 0;
16
+ const quoteLeftPos = position?.start !== void 0 ? pos({ start: position.start }, { fill: true }) : void 0;
18
17
  if (quote.left) {
19
18
  if (quoteLeftPos) quoteLeftPos.start -= 1;
20
19
  node.quote.left = token(quote.type, quoteFromType(quote.type), quoteLeftPos);
21
20
  } else {
22
21
  node.quote.left = token(quote.type, void 0, quoteLeftPos);
23
22
  }
24
- const quoteRightPos = (position == null ? void 0 : position.end) !== void 0 ? pos({ end: position.end }, { fill: true }) : void 0;
23
+ const quoteRightPos = position?.end !== void 0 ? pos({ end: position.end }, { fill: true }) : void 0;
25
24
  if (quote.right) {
26
25
  if (quoteRightPos) quoteRightPos.end += 1;
27
26
  node.quote.right = token(quote.type, quoteFromType(quote.type), quoteRightPos);
@@ -32,12 +31,12 @@ function variable(prefix, value, quote, position) {
32
31
  const start = node.quote.right.end;
33
32
  node.quote.flags = token(TOKEN_TYPE.VALUE, quote.flags, {
34
33
  start,
35
- end: start + ((_a = quote.flags) == null ? void 0 : _a.length)
34
+ end: start + quote.flags?.length
36
35
  });
37
36
  }
38
37
  }
39
- node.start = ((_b = node.prefix) == null ? void 0 : _b.start) ?? ((_c = node.quote) == null ? void 0 : _c.left.start) ?? ((_d = node.value) == null ? void 0 : _d.start) ?? ((_e = node.quote) == null ? void 0 : _e.right.start);
40
- node.end = ((_g = (_f = node.quote) == null ? void 0 : _f.flags) == null ? void 0 : _g.end) ?? ((_h = node.quote) == null ? void 0 : _h.right.end) ?? ((_i = node.value) == null ? void 0 : _i.end) ?? ((_j = node.quote) == null ? void 0 : _j.left.end);
38
+ node.start = node.prefix?.start ?? node.quote?.left.start ?? node.value?.start ?? node.quote?.right.start;
39
+ node.end = node.quote?.flags?.end ?? node.quote?.right.end ?? node.value?.end ?? node.quote?.left.end;
41
40
  return createVariableNode(node);
42
41
  }
43
42
  function quoteFromType(type) {
@@ -1,5 +1,5 @@
1
1
  import { type ConditionNode, type TOKEN_TYPE, type ValidToken } from "../types/ast.js";
2
- export declare function createConditionNode<TValid extends boolean = boolean, TOperator extends ValidToken<TOKEN_TYPE.NOT> | undefined = ValidToken<TOKEN_TYPE.NOT> | undefined>(raw: {
2
+ export declare function createConditionNode<TValid extends boolean = boolean, TOperator extends ValidToken<typeof TOKEN_TYPE.NOT> | undefined = ValidToken<typeof TOKEN_TYPE.NOT> | undefined>(raw: {
3
3
  operator?: TOperator;
4
4
  property?: ConditionNode<TValid>["property"];
5
5
  propertyOperator?: ConditionNode<TValid>["propertyOperator"];
@@ -1 +1 @@
1
- {"version":3,"file":"createConditionNode.d.ts","sourceRoot":"","sources":["../../src/ast/createConditionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAIhG,wBAAgB,mBAAmB,CAClC,MAAM,SAAS,OAAO,GAAG,OAAO,EAChC,SAAS,SACR,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,GACtC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,EACtC,GAAG,EAAE;IACN,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAA;IAC5C,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC5D,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAA;IAClC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACX,GACE,aAAa,CAAC,MAAM,CAAC,CAuCvB"}
1
+ {"version":3,"file":"createConditionNode.d.ts","sourceRoot":"","sources":["../../src/ast/createConditionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAIhG,wBAAgB,mBAAmB,CAClC,MAAM,SAAS,OAAO,GAAG,OAAO,EAChC,SAAS,SACR,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,GAC7C,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,EAC7C,GAAG,EAAE;IACN,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAA;IAC5C,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC5D,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAA;IAClC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACX,GACE,aAAa,CAAC,MAAM,CAAC,CAuCvB"}
@@ -1,8 +1,7 @@
1
1
  import { AST_TYPE } from "../types/ast.js";
2
2
  import { isNode } from "../utils/isNode.js";
3
3
  function createConditionNode(raw) {
4
- var _a, _b, _c, _d, _e;
5
- const valid = (raw.operator === void 0 || ((_a = raw.operator) == null ? void 0 : _a.valid)) && isNode(raw.value) && raw.value.valid && (raw.property === void 0 && raw.propertyOperator === void 0 && raw.sep === void 0 || raw.property !== void 0 && "type" in raw.property && raw.property.type === AST_TYPE.VARIABLE && (((_b = raw.propertyOperator) == null ? void 0 : _b.valid) === true || ((_d = (_c = raw.sep) == null ? void 0 : _c.left) == null ? void 0 : _d.valid) === true && (raw.sep.right === void 0 || ((_e = raw.sep) == null ? void 0 : _e.right.valid))));
4
+ const valid = (raw.operator === void 0 || raw.operator?.valid) && isNode(raw.value) && raw.value.valid && (raw.property === void 0 && raw.propertyOperator === void 0 && raw.sep === void 0 || raw.property !== void 0 && "type" in raw.property && raw.property.type === AST_TYPE.VARIABLE && (raw.propertyOperator?.valid === true || raw.sep?.left?.valid === true && (raw.sep.right === void 0 || raw.sep?.right.valid)));
6
5
  return {
7
6
  property: void 0,
8
7
  propertyOperator: void 0,
@@ -1,5 +1,5 @@
1
1
  import { type ConditionNode, type GroupNode, type RawNode, type TOKEN_TYPE, type ValidToken } from "../types/ast.js";
2
- export declare function createGroupNode<TValid extends boolean = boolean, TPrefixable extends boolean = true, TPrefix extends TPrefixable extends true ? ConditionNode<TValid> | ValidToken<TOKEN_TYPE.NOT> | undefined : ValidToken<TOKEN_TYPE.NOT> | undefined = TPrefixable extends true ? ConditionNode<TValid> | ValidToken<TOKEN_TYPE.NOT> | undefined : ValidToken<TOKEN_TYPE.NOT>>(raw: {
2
+ export declare function createGroupNode<TValid extends boolean = boolean, TPrefixable extends boolean = true, TPrefix extends TPrefixable extends true ? ConditionNode<TValid> | ValidToken<typeof TOKEN_TYPE.NOT> | undefined : ValidToken<typeof TOKEN_TYPE.NOT> | undefined = TPrefixable extends true ? ConditionNode<TValid> | ValidToken<typeof TOKEN_TYPE.NOT> | undefined : ValidToken<typeof TOKEN_TYPE.NOT>>(raw: {
3
3
  prefix: TPrefix;
4
4
  } & RawNode<GroupNode<TValid>>): GroupNode<TValid, TPrefixable, TPrefix>;
5
5
  //# sourceMappingURL=createGroupNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createGroupNode.d.ts","sourceRoot":"","sources":["../../src/ast/createGroupNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAK9H,wBAAgB,eAAe,CAC9B,MAAM,SAAS,OAAO,GAAG,OAAO,EAChC,WAAW,SAAS,OAAO,GAAG,IAAI,EAClC,OAAO,SACN,WAAW,SAAS,IAAI,GACrB,aAAa,CAAC,MAAM,CAAC,GACvB,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAC1B,SAAS,GACP,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAC5B,SAAS,GACV,WAAW,SAAS,IAAI,GACrB,aAAa,CAAC,MAAM,CAAC,GACvB,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAC1B,SAAS,GACP,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAC7B,GAAG,EAAE;IACN,MAAM,EAAE,OAAO,CAAA;CACf,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAsBvE"}
1
+ {"version":3,"file":"createGroupNode.d.ts","sourceRoot":"","sources":["../../src/ast/createGroupNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAK9H,wBAAgB,eAAe,CAC9B,MAAM,SAAS,OAAO,GAAG,OAAO,EAChC,WAAW,SAAS,OAAO,GAAG,IAAI,EAClC,OAAO,SACN,WAAW,SAAS,IAAI,GACrB,aAAa,CAAC,MAAM,CAAC,GACvB,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,GACjC,SAAS,GACP,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,GACnC,SAAS,GACV,WAAW,SAAS,IAAI,GACrB,aAAa,CAAC,MAAM,CAAC,GACvB,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,GACjC,SAAS,GACP,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,EACpC,GAAG,EAAE;IACN,MAAM,EAAE,OAAO,CAAA;CACf,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAsBvE"}
@@ -1,5 +1,5 @@
1
- import type { ErrorToken, RawToken, TOKEN_TYPE, ValidToken } from "../types/ast.js";
2
- export declare function createToken<TType extends TOKEN_TYPE>(raw: {
1
+ import type { ErrorToken, RawToken, TokenType, ValidToken } from "../types/ast.js";
2
+ export declare function createToken<TType extends TokenType>(raw: {
3
3
  type: TType;
4
4
  } & RawToken<ValidToken>): ValidToken<TType>;
5
5
  export declare function createToken(raw: RawToken<ErrorToken>): ErrorToken;
@@ -1 +1 @@
1
- {"version":3,"file":"createToken.d.ts","sourceRoot":"","sources":["../../src/ast/createToken.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGnF,wBAAgB,WAAW,CAC1B,KAAK,SAAS,UAAU,EACvB,GAAG,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;AACjE,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAAA"}
1
+ {"version":3,"file":"createToken.d.ts","sourceRoot":"","sources":["../../src/ast/createToken.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGlF,wBAAgB,WAAW,CAC1B,KAAK,SAAS,SAAS,EACtB,GAAG,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;AACjE,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { ExpressitError } from "../internal/ExpressitError.js";
2
- import { ERROR_CODES } from "../types/errors.js";
2
+ import { PARSER_ERROR } from "../types/errors.js";
3
3
  function createToken(raw) {
4
4
  if (raw.start === void 0 || raw.end === void 0) {
5
- throw new ExpressitError(ERROR_CODES.PARSER_POSITION_ERROR, raw);
5
+ throw new ExpressitError(PARSER_ERROR.POSITION_ERROR, raw);
6
6
  }
7
7
  return {
8
8
  ...raw,
@@ -1,3 +1,3 @@
1
- import { type ErrorToken, type TOKEN_TYPE } from "../types/ast.js";
2
- export declare function error<T extends TOKEN_TYPE>(pos: number, expected: T[]): ErrorToken;
1
+ import { type ErrorToken, type TokenType } from "../types/ast.js";
2
+ export declare function error<T extends TokenType>(pos: number, expected: T[]): ErrorToken;
3
3
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/ast/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjE,wBAAgB,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,UAAU,CAGlF"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/ast/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAC,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhE,wBAAgB,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,UAAU,CAGjF"}
package/dist/ast/error.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { createToken } from "./createToken.js";
2
+ import "../types/ast.js";
2
3
  function error(pos, expected) {
3
4
  if (pos === void 0) throw new Error("should never happen, passed undefined position for error token");
4
5
  return createToken({ expected, start: pos, end: pos });
@@ -1,35 +1,35 @@
1
- import { type AnyToken, type ArrayNode, type ConditionNode, type ErrorToken, type ExpressionNode, type GroupNode, type Position, TOKEN_TYPE, type TokenBooleanTypes, type TokenQuoteTypes, type ValidToken, type VariableNode } from "../types/ast.js";
2
- declare function error<T extends TOKEN_TYPE>(pos: number, expected: T[]): ErrorToken;
1
+ import { type AnyToken, type ArrayNode, type ConditionNode, type ErrorToken, type ExpressionNode, type GroupNode, type Position, TOKEN_TYPE, type TokenBoolean, type TokenQuote, type TokenType, type ValidToken, type VariableNode } from "../types/ast.js";
2
+ declare function error<T extends TokenType>(pos: number, expected: T[]): ErrorToken;
3
3
  export declare const token: {
4
- value: <TVal extends string | undefined>(value: TVal, pos: Position) => TVal extends string ? ValidToken<TOKEN_TYPE.VALUE> : ErrorToken;
5
- custom: <TVal extends string | undefined>(value: TVal, pos: Position) => TVal extends string ? ValidToken<TOKEN_TYPE.OP_CUSTOM> : ErrorToken;
6
- sep: <TVal extends string | undefined>(value: TVal, pos: Position) => TVal extends string ? ValidToken<TOKEN_TYPE.OP_EXPANDED_SEP> : ErrorToken;
4
+ value: <TVal extends string | undefined>(value: TVal, pos: Position) => TVal extends string ? ValidToken<"VALUE"> : ErrorToken;
5
+ custom: <TVal extends string | undefined>(value: TVal, pos: Position) => TVal extends string ? ValidToken<"OP_CUSTOM"> : ErrorToken;
6
+ sep: <TVal extends string | undefined>(value: TVal, pos: Position) => TVal extends string ? ValidToken<"OP_EXPANDED_SEP"> : ErrorToken;
7
7
  };
8
8
  /** We want to handle all the types outside the grammar file. This makes it easier without trying to check the value. */
9
9
  export declare const delimiter: {
10
- parenL: (value: string | undefined, pos: Position) => ValidToken<TOKEN_TYPE.PARENL> | undefined;
11
- parenR: (value: string | undefined, pos: Position) => ValidToken<TOKEN_TYPE.PARENR> | undefined;
12
- bracketL: (value: string | undefined, pos: Position) => ValidToken<TOKEN_TYPE.BRACKETL> | undefined;
13
- bracketR: (value: string | undefined, pos: Position) => ValidToken<TOKEN_TYPE.BRACKETR> | undefined;
14
- double: (value: string | undefined, pos: Position) => ValidToken<TOKEN_TYPE.DOUBLEQUOTE> | undefined;
15
- single: (value: string | undefined, pos: Position) => ValidToken<TOKEN_TYPE.SINGLEQUOTE> | undefined;
16
- regex: (value: string | undefined, pos: Position) => ValidToken<TOKEN_TYPE.REGEX> | undefined;
17
- tick: (value: string | undefined, pos: Position) => ValidToken<TOKEN_TYPE.BACKTICK> | undefined;
10
+ parenL: (value: string | undefined, pos: Position) => ValidToken<"PARENL"> | undefined;
11
+ parenR: (value: string | undefined, pos: Position) => ValidToken<"PARENR"> | undefined;
12
+ bracketL: (value: string | undefined, pos: Position) => ValidToken<"BRACKETL"> | undefined;
13
+ bracketR: (value: string | undefined, pos: Position) => ValidToken<"BRACKETR"> | undefined;
14
+ double: (value: string | undefined, pos: Position) => ValidToken<"DOUBLEQUOTE"> | undefined;
15
+ single: (value: string | undefined, pos: Position) => ValidToken<"SINGLEQUOTE"> | undefined;
16
+ regex: (value: string | undefined, pos: Position) => ValidToken<"REGEX"> | undefined;
17
+ tick: (value: string | undefined, pos: Position) => ValidToken<"BACKTICK"> | undefined;
18
18
  tokenError: typeof error;
19
19
  };
20
20
  export declare const operator: {
21
- and: (value: string, pos: Position) => ValidToken<TOKEN_TYPE.AND>;
22
- or: (value: string, pos: Position) => ValidToken<TOKEN_TYPE.OR>;
23
- not: (value: string, pos: Position) => ValidToken<TOKEN_TYPE.NOT>;
21
+ and: (value: string, pos: Position) => ValidToken<"AND">;
22
+ or: (value: string, pos: Position) => ValidToken<"OR">;
23
+ not: (value: string, pos: Position) => ValidToken<"NOT">;
24
24
  };
25
- export declare function variable(prefix: ValidToken<TOKEN_TYPE.VALUE> | null | undefined, quoteL: AnyToken<TokenQuoteTypes> | null | undefined, value: AnyToken<TOKEN_TYPE.VALUE> | null | undefined, quoteR: AnyToken<TokenQuoteTypes> | null | undefined, flags?: ValidToken<TOKEN_TYPE.VALUE>): VariableNode;
26
- export declare function condition(not: ValidToken<TOKEN_TYPE.NOT> | null | undefined, property: VariableNode | null | undefined, { propertyOperator, sepL, sepR }?: {
25
+ export declare function variable(prefix: ValidToken<typeof TOKEN_TYPE.VALUE> | null | undefined, quoteL: AnyToken<TokenQuote> | null | undefined, value: AnyToken<typeof TOKEN_TYPE.VALUE> | null | undefined, quoteR: AnyToken<TokenQuote> | null | undefined, flags?: ValidToken<typeof TOKEN_TYPE.VALUE>): VariableNode;
26
+ export declare function condition(not: ValidToken<typeof TOKEN_TYPE.NOT> | null | undefined, property: VariableNode | null | undefined, { propertyOperator, sepL, sepR }?: {
27
27
  propertyOperator?: ConditionNode["propertyOperator"] | null;
28
- sepL?: ValidToken<TOKEN_TYPE.OP_EXPANDED_SEP> | null;
29
- sepR?: ValidToken<TOKEN_TYPE.OP_EXPANDED_SEP> | null;
28
+ sepL?: ValidToken<typeof TOKEN_TYPE.OP_EXPANDED_SEP> | null;
29
+ sepR?: ValidToken<typeof TOKEN_TYPE.OP_EXPANDED_SEP> | null;
30
30
  }, value?: VariableNode | GroupNode | ArrayNode | null): ConditionNode;
31
- export declare function expression(left: ConditionNode | GroupNode | null | undefined, operator: ValidToken<TokenBooleanTypes> | null | undefined, right: ConditionNode | GroupNode | null | undefined): ExpressionNode;
32
- export declare function group(operator: ValidToken<TOKEN_TYPE.NOT> | null | undefined, prefix: ConditionNode | null | undefined, parenL: ValidToken<TOKEN_TYPE.PARENL> | null | undefined, condition: GroupNode["expression"], parenR: ValidToken<TOKEN_TYPE.PARENR> | null | undefined): GroupNode;
33
- export declare function array(bracketL: ValidToken<TOKEN_TYPE.BRACKETL>, values: VariableNode[], bracketR: ValidToken<TOKEN_TYPE.BRACKETR> | null | undefined): ArrayNode;
31
+ export declare function expression(left: ConditionNode | GroupNode | null | undefined, operator: ValidToken<TokenBoolean> | null | undefined, right: ConditionNode | GroupNode | null | undefined): ExpressionNode;
32
+ export declare function group(operator: ValidToken<typeof TOKEN_TYPE.NOT> | null | undefined, prefix: ConditionNode | null | undefined, parenL: ValidToken<typeof TOKEN_TYPE.PARENL> | null | undefined, condition: GroupNode["expression"], parenR: ValidToken<typeof TOKEN_TYPE.PARENR> | null | undefined): GroupNode;
33
+ export declare function array(bracketL: ValidToken<typeof TOKEN_TYPE.BRACKETL>, values: VariableNode[], bracketR: ValidToken<typeof TOKEN_TYPE.BRACKETR> | null | undefined): ArrayNode;
34
34
  export {};
35
35
  //# sourceMappingURL=handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/ast/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/ast/handlers.ts"],"names":[],"mappings":"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"}
@@ -43,12 +43,11 @@ const operator = {
43
43
  not: operators(TOKEN_TYPE.NOT)
44
44
  };
45
45
  function variable(prefix, quoteL, value, quoteR, flags) {
46
- var _a, _b;
47
46
  const node = {
48
47
  prefix: prefix ?? void 0,
49
- value: value ?? error((prefix == null ? void 0 : prefix.end) ?? (quoteL == null ? void 0 : quoteL.end) ?? (quoteR == null ? void 0 : quoteR.start), [TOKEN_TYPE.VALUE]),
50
- start: (prefix == null ? void 0 : prefix.start) ?? (quoteL == null ? void 0 : quoteL.start) ?? (value == null ? void 0 : value.start) ?? (quoteR == null ? void 0 : quoteR.start),
51
- end: (quoteR == null ? void 0 : quoteR.end) ?? (value == null ? void 0 : value.end) ?? (quoteL == null ? void 0 : quoteL.end) ?? (prefix == null ? void 0 : prefix.end)
48
+ value: value ?? error(prefix?.end ?? quoteL?.end ?? quoteR?.start, [TOKEN_TYPE.VALUE]),
49
+ start: prefix?.start ?? quoteL?.start ?? value?.start ?? quoteR?.start,
50
+ end: quoteR?.end ?? value?.end ?? quoteL?.end ?? prefix?.end
52
51
  };
53
52
  if (quoteL || quoteR) {
54
53
  node.quote = {
@@ -57,17 +56,16 @@ function variable(prefix, quoteL, value, quoteR, flags) {
57
56
  };
58
57
  if (flags) {
59
58
  node.quote.flags = flags;
60
- node.end = ((_b = (_a = node.quote) == null ? void 0 : _a.flags) == null ? void 0 : _b.end) ?? node.end;
59
+ node.end = node.quote?.flags?.end ?? node.end;
61
60
  }
62
61
  }
63
62
  return createVariableNode(node);
64
63
  }
65
64
  function condition(not, property, { propertyOperator, sepL, sepR } = {}, value) {
66
- var _a;
67
- const start = (not == null ? void 0 : not.start) ?? (property == null ? void 0 : property.start) ?? (sepL == null ? void 0 : sepL.start) ?? (propertyOperator == null ? void 0 : propertyOperator.start) ?? (sepR == null ? void 0 : sepR.start) ?? (value == null ? void 0 : value.start);
68
- const end = (value == null ? void 0 : value.end) ?? (sepR == null ? void 0 : sepR.end) ?? (propertyOperator == null ? void 0 : propertyOperator.end) ?? (sepL == null ? void 0 : sepL.end) ?? (property == null ? void 0 : property.end) ?? (not == null ? void 0 : not.end);
65
+ const start = not?.start ?? property?.start ?? sepL?.start ?? propertyOperator?.start ?? sepR?.start ?? value?.start;
66
+ const end = value?.end ?? sepR?.end ?? propertyOperator?.end ?? sepL?.end ?? property?.end ?? not?.end;
69
67
  const node = {
70
- value: value ? value : error(end, [TOKEN_TYPE.VALUE]),
68
+ value: value ?? error(end, [TOKEN_TYPE.VALUE]),
71
69
  start,
72
70
  end
73
71
  };
@@ -80,50 +78,49 @@ function condition(not, property, { propertyOperator, sepL, sepR } = {}, value)
80
78
  node.sep = {};
81
79
  if (sepL) {
82
80
  node.sep.left = sepL;
83
- node.property ?? (node.property = error(sepL.start, [TOKEN_TYPE.VALUE]));
84
- node.propertyOperator ?? (node.propertyOperator = error((sepL == null ? void 0 : sepL.end) ?? (sepR == null ? void 0 : sepR.start), [TOKEN_TYPE.VALUE]));
81
+ node.property ??= error(sepL.start, [TOKEN_TYPE.VALUE]);
82
+ node.propertyOperator ??= error(sepL?.end ?? sepR?.start, [TOKEN_TYPE.VALUE]);
85
83
  }
86
84
  if (sepR) node.sep.right = sepR;
87
85
  else if (!node.value || node.value.type === AST_TYPE.VARIABLE) {
88
- node.sep.right = error(((_a = node.value) == null ? void 0 : _a.start) ?? end, [TOKEN_TYPE.OP_EXPANDED_SEP]);
86
+ node.sep.right = error(node.value?.start ?? end, [TOKEN_TYPE.OP_EXPANDED_SEP]);
89
87
  }
90
88
  } else if (propertyOperator) {
91
- node.property ?? (node.property = error(propertyOperator.start, [TOKEN_TYPE.VALUE]));
89
+ node.property ??= error(propertyOperator.start, [TOKEN_TYPE.VALUE]);
92
90
  }
93
91
  return createConditionNode(node);
94
92
  }
95
93
  function expression(left, operator2, right) {
96
94
  return createExpressionNode({
97
- left: left ?? error((operator2 == null ? void 0 : operator2.start) ?? (right == null ? void 0 : right.start), [TOKEN_TYPE.VALUE]),
98
- operator: operator2 ?? error((left == null ? void 0 : left.end) ?? (right == null ? void 0 : right.start), [TOKEN_TYPE.AND, TOKEN_TYPE.OR]),
99
- right: right ?? error((operator2 == null ? void 0 : operator2.end) ?? (left == null ? void 0 : left.end), [TOKEN_TYPE.VALUE]),
100
- start: (left == null ? void 0 : left.start) ?? (operator2 == null ? void 0 : operator2.start) ?? (right == null ? void 0 : right.start),
101
- end: (right == null ? void 0 : right.end) ?? (operator2 == null ? void 0 : operator2.end) ?? (left == null ? void 0 : left.end)
95
+ left: left ?? error(operator2?.start ?? right?.start, [TOKEN_TYPE.VALUE]),
96
+ operator: operator2 ?? error(left?.end ?? right?.start, [TOKEN_TYPE.AND, TOKEN_TYPE.OR]),
97
+ right: right ?? error(operator2?.end ?? left?.end, [TOKEN_TYPE.VALUE]),
98
+ start: left?.start ?? operator2?.start ?? right?.start,
99
+ end: right?.end ?? operator2?.end ?? left?.end
102
100
  });
103
101
  }
104
102
  function group(operator2, prefix, parenL, condition2, parenR) {
105
103
  return createGroupNode({
106
104
  prefix: prefix ?? operator2 ?? void 0,
107
- expression: condition2 ?? error((parenL == null ? void 0 : parenL.end) ?? (parenR == null ? void 0 : parenR.start), [TOKEN_TYPE.VALUE]),
105
+ expression: condition2 ?? error(parenL?.end ?? parenR?.start, [TOKEN_TYPE.VALUE]),
108
106
  paren: {
109
- left: parenL ?? error((prefix == null ? void 0 : prefix.end) ?? (operator2 == null ? void 0 : operator2.end) ?? (condition2 == null ? void 0 : condition2.start) ?? (parenR == null ? void 0 : parenR.start), [TOKEN_TYPE.PARENL]),
110
- right: parenR ?? error((condition2 == null ? void 0 : condition2.end) ?? (parenL == null ? void 0 : parenL.end), [TOKEN_TYPE.PARENR])
107
+ left: parenL ?? error(prefix?.end ?? operator2?.end ?? condition2?.start ?? parenR?.start, [TOKEN_TYPE.PARENL]),
108
+ right: parenR ?? error(condition2?.end ?? parenL?.end, [TOKEN_TYPE.PARENR])
111
109
  },
112
- start: (prefix == null ? void 0 : prefix.start) ?? (operator2 == null ? void 0 : operator2.start) ?? (parenL == null ? void 0 : parenL.start) ?? (condition2 == null ? void 0 : condition2.start) ?? (parenR == null ? void 0 : parenR.start),
113
- end: (parenR == null ? void 0 : parenR.end) ?? (condition2 == null ? void 0 : condition2.end) ?? (parenL == null ? void 0 : parenL.end) ?? (operator2 == null ? void 0 : operator2.end) ?? (prefix == null ? void 0 : prefix.end)
110
+ start: prefix?.start ?? operator2?.start ?? parenL?.start ?? condition2?.start ?? parenR?.start,
111
+ end: parenR?.end ?? condition2?.end ?? parenL?.end ?? operator2?.end ?? prefix?.end
114
112
  });
115
113
  }
116
114
  function array(bracketL, values, bracketR) {
117
- var _a, _b;
118
115
  return createArrayNode({
119
116
  values,
120
117
  bracket: {
121
118
  left: bracketL,
122
119
  // always valid for now
123
- right: bracketR ?? error(((_a = values[values.length - 1]) == null ? void 0 : _a.end) ?? (bracketL == null ? void 0 : bracketL.end), [TOKEN_TYPE.BRACKETR])
120
+ right: bracketR ?? error(values[values.length - 1]?.end ?? bracketL?.end, [TOKEN_TYPE.BRACKETR])
124
121
  },
125
122
  start: bracketL.start,
126
- end: (bracketR == null ? void 0 : bracketR.end) ?? ((_b = values[values.length - 1]) == null ? void 0 : _b.end) ?? bracketL.end
123
+ end: bracketR?.end ?? values[values.length - 1]?.end ?? bracketL.end
127
124
  });
128
125
  }
129
126
  export {
@@ -26,18 +26,18 @@ export interface BaseOperatorDefinition {
26
26
  /** How to compare the value when evualuating a condition. This is only used if using `evaluate`. */
27
27
  valueComparer: (condition: any, contextValue: any) => boolean;
28
28
  }
29
- export type BaseErrorTokenTypes = "invalidKey" | "unknownProperty" | "unknownOperator" | "unknownOperatorForType" | "invalidValueType";
29
+ export type SqlParserError = "invalidKey" | "unknownProperty" | "unknownOperator" | "unknownOperatorForType" | "invalidValueType";
30
30
  export declare class ParserWithSqlSupport<TErrorToken extends Position & {
31
- type: BaseErrorTokenTypes;
31
+ type: SqlParserError;
32
32
  message?: string;
33
33
  } = Position & {
34
- type: BaseErrorTokenTypes;
34
+ type: SqlParserError;
35
35
  message?: string;
36
36
  }, TPropertyDefinition extends BasePropertyDefinition = BasePropertyDefinition, TPropertyDefinitions extends Record<string, TPropertyDefinition> = Record<string, TPropertyDefinition>, TOperatorDefinition extends BaseOperatorDefinition = BaseOperatorDefinition, TOperatorDefinitions extends Record<string, TOperatorDefinition> = Record<string, TOperatorDefinition>, TSqlEscapeValue extends (value: string) => any | ReturnType<TSqlEscapeValue> = (value: string) => any> extends Parser<TErrorToken> {
37
- propertyDefinitions: TPropertyDefinitions;
38
- operatorDefinitions: TOperatorDefinitions;
39
37
  sqlEscapeValue: TSqlEscapeValue;
40
38
  operatorMap: Record<string, string>;
39
+ propertyDefinitions: TPropertyDefinitions;
40
+ operatorDefinitions: TOperatorDefinitions;
41
41
  constructor(propertyDefinitions: TPropertyDefinitions, operatorDefinitions: TOperatorDefinitions, { sqlEscapeValue }: {
42
42
  sqlEscapeValue: TSqlEscapeValue;
43
43
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ParserWithSqlSupport.d.ts","sourceRoot":"","sources":["../../src/examples/ParserWithSqlSupport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParserWithSqlSupport.d.ts","sourceRoot":"","sources":["../../src/examples/ParserWithSqlSupport.ts"],"names":[],"mappings":"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"}