@witchcraft/expressit 0.2.0 → 0.2.2

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 (60) hide show
  1. package/README.md +5 -2
  2. package/dist/Lexer.d.ts +3 -5
  3. package/dist/Lexer.d.ts.map +1 -1
  4. package/dist/Lexer.js +21 -40
  5. package/dist/Parser.d.ts +1 -1
  6. package/dist/Parser.d.ts.map +1 -1
  7. package/dist/Parser.js +35 -64
  8. package/dist/ast/builders/condition.js +2 -4
  9. package/dist/ast/builders/delim.d.ts +1 -1
  10. package/dist/ast/builders/delim.d.ts.map +1 -1
  11. package/dist/ast/builders/delim.js +2 -4
  12. package/dist/ast/builders/expression.js +1 -2
  13. package/dist/ast/builders/pos.js +3 -6
  14. package/dist/ast/builders/variable.js +2 -4
  15. package/dist/ast/error.js +1 -2
  16. package/dist/ast/handlers.d.ts +2 -2
  17. package/dist/ast/handlers.d.ts.map +1 -1
  18. package/dist/ast/handlers.js +7 -11
  19. package/dist/defaults/defaultKeyParser.js +1 -2
  20. package/dist/examples/ParserWithSqlSupport.d.ts +62 -0
  21. package/dist/examples/ParserWithSqlSupport.d.ts.map +1 -0
  22. package/dist/examples/ParserWithSqlSupport.js +269 -0
  23. package/dist/examples/{shortcutContextParser.d.ts → ShortcutContextParser.d.ts} +5 -5
  24. package/dist/examples/ShortcutContextParser.d.ts.map +1 -0
  25. package/dist/examples/{shortcutContextParser.js → ShortcutContextParser.js} +6 -12
  26. package/dist/examples/index.d.ts +2 -1
  27. package/dist/examples/index.d.ts.map +1 -1
  28. package/dist/examples/index.js +3 -1
  29. package/dist/internal/ExpressitError.js +3 -5
  30. package/dist/internal/checkParserOpts.d.ts +1 -1
  31. package/dist/internal/checkParserOpts.d.ts.map +1 -1
  32. package/dist/internal/checkParserOpts.js +8 -16
  33. package/dist/internal/escapeVariableOrPrefix.js +4 -8
  34. package/dist/internal/parseParserOptions.d.ts +1 -1
  35. package/dist/internal/parseParserOptions.d.ts.map +1 -1
  36. package/dist/package.json.js +14 -147
  37. package/dist/types/parser.d.ts +6 -6
  38. package/dist/types/parser.d.ts.map +1 -1
  39. package/dist/utils/generateParentsMap.js +20 -40
  40. package/dist/utils/getCursorInfo.js +9 -17
  41. package/dist/utils/getOppositeDelimiter.js +3 -6
  42. package/dist/utils/prettyAst.js +1 -2
  43. package/package.json +25 -23
  44. package/src/Lexer.ts +5 -4
  45. package/src/Parser.ts +9 -3
  46. package/src/ast/builders/delim.ts +1 -1
  47. package/src/ast/handlers.ts +3 -3
  48. package/src/examples/ParserWithSqlSupport.ts +365 -0
  49. package/src/examples/{shortcutContextParser.ts → ShortcutContextParser.ts} +14 -14
  50. package/src/examples/index.ts +2 -1
  51. package/src/internal/ExpressitError.ts +2 -2
  52. package/src/internal/checkParserOpts.ts +3 -3
  53. package/src/internal/parseParserOptions.ts +2 -2
  54. package/src/types/parser.ts +6 -6
  55. package/src/utils/getCursorInfo.ts +1 -1
  56. package/dist/examples/shortcutContextParser.d.ts.map +0 -1
  57. package/dist/global.d.js +0 -1
  58. package/dist/package.js +0 -7
  59. package/src/global.d.ts +0 -4
  60. package/src/package.js +0 -11
package/README.md CHANGED
@@ -35,7 +35,10 @@ pnpm install @witchcraft/expressit
35
35
  - `extractTokens`, `getCursorInfo`, `getOppositeDelimiter`, `getSurroundingErrors` - useful for adding custom syntax highlighting.
36
36
  - `prettyAst` - pretty prints a compact version of the ast for debugging
37
37
  - other minor utilities - `isDelimiter`, `isQuote`, etc.
38
- - **Pre-Configured Parsers** - Includes a pre-configured boolean parser (intended for parsing shortcut contexts in a similar way to VS Code).
38
+ - **Pre-Configured Example Parsers**
39
+ - Shortcut Context Parser / Boolean Parser - Intended for parsing shortcut contexts in a similar way to VS Code).
40
+ - Experimental parser with **SQL output support** - Create an easy to read query language that can be used to generate safe SQL queries (it's flexible, but built to integrate
41
+ easily with drizzle).
39
42
  - **Lots of Docs and Tests**
40
43
 
41
44
  # Usage
@@ -79,7 +82,7 @@ const parser = new Parser({/* opts */})
79
82
  // ON ENTER/SUBMIT
80
83
  const res = parser.evaluate(ast, context)
81
84
  ```
82
- Many more examples can be found in the [tests](https://github.com/witchcraftjs/expressit/blob/master/tests), and there's also some WIP pre-configured parsers in [src/examples](https://github.com/witchcraftjs/expressit/blob/master/src/examples/) whose usage can be seen in [./test/examples.spec.ts](https://github.com/witchcraftjs/expressit/blob/master/test/examples.spec.ts).
85
+ Many more examples can be found in the [tests](https://github.com/witchcraftjs/expressit/blob/master/tests), and there's also some example pre-configured parsers in [src/examples](https://github.com/witchcraftjs/expressit/blob/master/src/examples/) whose usage can be seen in [./test/examples.spec.ts](https://github.com/witchcraftjs/expressit/blob/master/test/examples.spec.ts).
83
86
 
84
87
  ## [Development](./docs-src/DEVELOPMENT.md)
85
88
 
package/dist/Lexer.d.ts CHANGED
@@ -74,9 +74,7 @@ export interface RealTokenType<T extends $T = $T, TPush extends string | undefin
74
74
  }
75
75
  export interface TokenCategoryType<TC extends $C, TTokens extends RealTokenType<$T, any>[] = RealTokenType<$T, any>[]> extends BaseTokenType<TC> {
76
76
  isCategory: true;
77
- entries: Partial<{
78
- [key in TTokens[number]["type"]]: TTokens[number];
79
- }>;
77
+ entries: Partial<Record<TTokens[number]["type"], TTokens[number]>>;
80
78
  }
81
79
  export type TokenType<TC extends $C | $T> = TC extends $T ? RealTokenType<TC, any> : TC extends $C ? TokenCategoryType<TC> : never;
82
80
  export interface Token<T extends $T | $C = $T | $C> {
@@ -95,8 +93,8 @@ export declare class Lexer {
95
93
  branches: {
96
94
  [key in keyof typeof MODE]?: TokenType<$T>[];
97
95
  };
98
- opts: FullParserOptions<{}>;
99
- constructor(opts?: Partial<FullParserOptions<{}>>);
96
+ opts: FullParserOptions<any>;
97
+ constructor(opts?: Partial<FullParserOptions<any>>);
100
98
  calculateSymbolInfo(): SymbolInfo;
101
99
  createTokens(): {
102
100
  $: {
@@ -1 +1 @@
1
- {"version":3,"file":"Lexer.d.ts","sourceRoot":"","sources":["../src/Lexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Lexer.d.ts","sourceRoot":"","sources":["../src/Lexer.ts"],"names":[],"mappings":"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"}
package/dist/Lexer.js CHANGED
@@ -1,9 +1,6 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
4
  import { isBlank } from "@alanscodelog/utils/isBlank.js";
8
5
  import { pushIfNotIn } from "@alanscodelog/utils/pushIfNotIn.js";
9
6
  import { checkParserOpts } from "./internal/checkParserOpts.js";
@@ -76,8 +73,7 @@ function matchWhileCharNotEqualToUnescaped(char) {
76
73
  end++;
77
74
  c = input[end];
78
75
  }
79
- if (start === end)
80
- return false;
76
+ if (start === end) return false;
81
77
  return input.slice(start, end);
82
78
  };
83
79
  }
@@ -119,12 +115,9 @@ class Lexer {
119
115
  const syms = [...symOrs, ...symAnds, ...symNots];
120
116
  const customPropertyOperators = opts.customPropertyOperators ?? [];
121
117
  const expandedPropertySeparator = opts.expandedPropertySeparator ?? "";
122
- if (expandedPropertySeparator)
123
- syms.push(expandedPropertySeparator);
124
- if (customPropertyOperators.length > 0)
125
- pushIfNotIn(syms, customPropertyOperators);
126
- if (opts.regexValues)
127
- syms.push("\\/");
118
+ if (expandedPropertySeparator) syms.push(expandedPropertySeparator);
119
+ if (customPropertyOperators.length > 0) pushIfNotIn(syms, customPropertyOperators);
120
+ if (opts.regexValues) syms.push("\\/");
128
121
  if (opts.arrayValues) {
129
122
  syms.push("\\[");
130
123
  }
@@ -169,8 +162,7 @@ class Lexer {
169
162
  end++;
170
163
  c = input[end];
171
164
  }
172
- if (start === end)
173
- return false;
165
+ if (start === end) return false;
174
166
  return input.slice(start, end);
175
167
  }
176
168
  }),
@@ -196,8 +188,7 @@ class Lexer {
196
188
  end += match.input.length;
197
189
  }
198
190
  return input.slice(start, end);
199
- } else
200
- return false;
191
+ } else return false;
201
192
  }
202
193
  }),
203
194
  [
@@ -210,10 +201,8 @@ class Lexer {
210
201
  let inGroup = 0;
211
202
  let prevEscaped = false;
212
203
  while (c !== void 0 && (c !== "/" || inGroup > 0 || prevEscaped)) {
213
- if (c === "[")
214
- inGroup++;
215
- if (c === "]" && inGroup > 0)
216
- inGroup--;
204
+ if (c === "[") inGroup++;
205
+ if (c === "]" && inGroup > 0) inGroup--;
217
206
  if (c === "\\") {
218
207
  if (!prevEscaped) {
219
208
  prevEscaped = true;
@@ -226,8 +215,7 @@ class Lexer {
226
215
  end++;
227
216
  c = input[end];
228
217
  }
229
- if (start === end)
230
- return false;
218
+ if (start === end) return false;
231
219
  return input.slice(start, end);
232
220
  }
233
221
  }),
@@ -245,6 +233,7 @@ class Lexer {
245
233
  */
246
234
  (previous == null ? void 0 : previous.type) === "VALUE_NOT_SINGLE" || (previous == null ? void 0 : previous.type) === "VALUE_UNQUOTED"
247
235
  ) {
236
+ if (mode.startsWith(BRACKET_PREFIX)) return "BRACKET_MAIN";
248
237
  return "MAIN";
249
238
  }
250
239
  switch (mode) {
@@ -253,8 +242,7 @@ class Lexer {
253
242
  case "MAIN":
254
243
  return "NOT_SINGLE";
255
244
  default:
256
- if (mode.startsWith(BRACKET_PREFIX))
257
- return "BRACKET_MAIN";
245
+ if (mode.startsWith(BRACKET_PREFIX)) return "BRACKET_MAIN";
258
246
  return "MAIN";
259
247
  }
260
248
  },
@@ -267,8 +255,7 @@ class Lexer {
267
255
  push: (mode, tokens) => {
268
256
  const previous = tokens[tokens.length - 2];
269
257
  if ((previous == null ? void 0 : previous.type) === "VALUE_NOT_DOUBLE" || (previous == null ? void 0 : previous.type) === "VALUE_UNQUOTED") {
270
- if (mode.startsWith(BRACKET_PREFIX))
271
- return "BRACKET_MAIN";
258
+ if (mode.startsWith(BRACKET_PREFIX)) return "BRACKET_MAIN";
272
259
  return "MAIN";
273
260
  }
274
261
  switch (mode) {
@@ -277,8 +264,7 @@ class Lexer {
277
264
  case "MAIN":
278
265
  return "NOT_DOUBLE";
279
266
  default:
280
- if (mode.startsWith(BRACKET_PREFIX))
281
- return "BRACKET_MAIN";
267
+ if (mode.startsWith(BRACKET_PREFIX)) return "BRACKET_MAIN";
282
268
  return "MAIN";
283
269
  }
284
270
  },
@@ -291,6 +277,7 @@ class Lexer {
291
277
  push: (mode, tokens) => {
292
278
  const previous = tokens[tokens.length - 2];
293
279
  if ((previous == null ? void 0 : previous.type) === "VALUE_NOT_BACKTICK" || (previous == null ? void 0 : previous.type) === "VALUE_UNQUOTED") {
280
+ if (mode.startsWith(BRACKET_PREFIX)) return "BRACKET_MAIN";
294
281
  return "MAIN";
295
282
  }
296
283
  switch (mode) {
@@ -299,8 +286,7 @@ class Lexer {
299
286
  case "MAIN":
300
287
  return "NOT_BACKTICK";
301
288
  default:
302
- if (mode.startsWith(BRACKET_PREFIX))
303
- return "BRACKET_MAIN";
289
+ if (mode.startsWith(BRACKET_PREFIX)) return "BRACKET_MAIN";
304
290
  return "MAIN";
305
291
  }
306
292
  },
@@ -350,8 +336,7 @@ class Lexer {
350
336
  break;
351
337
  }
352
338
  }
353
- if (found)
354
- break;
339
+ if (found) break;
355
340
  }
356
341
  if (c === " " || c === " " || c === "(" || c === ")" || c === "'" || c === '"' || c === "`" || c === "\\" || mode === "BRACKET_MAIN" && c === "]") {
357
342
  break;
@@ -359,8 +344,7 @@ class Lexer {
359
344
  end++;
360
345
  c = input[end];
361
346
  }
362
- if (start === end)
363
- return false;
347
+ if (start === end) return false;
364
348
  return input.slice(start, end);
365
349
  }
366
350
  }),
@@ -424,8 +408,7 @@ class Lexer {
424
408
  matches: (_c, input, start) => {
425
409
  for (const op of opts.expandedPropertySeparator) {
426
410
  const chars = input.slice(start, start + op.length);
427
- if (chars === op)
428
- return op;
411
+ if (chars === op) return op;
429
412
  }
430
413
  return false;
431
414
  }
@@ -439,8 +422,7 @@ class Lexer {
439
422
  matches: (_c, input, start) => {
440
423
  for (const op of opts.customPropertyOperators ?? []) {
441
424
  const chars = input.slice(start, start + op.length);
442
- if (chars === op)
443
- return op;
425
+ if (chars === op) return op;
444
426
  }
445
427
  return false;
446
428
  }
@@ -930,8 +912,7 @@ class Lexer {
930
912
  const newIndex = index + matchLength;
931
913
  const val = match === true ? c : match;
932
914
  const token = createToken(type, val, index, newIndex - 1);
933
- if (!t.skip)
934
- tokens.push(token);
915
+ if (!t.skip) tokens.push(token);
935
916
  if (t.push) {
936
917
  mode = typeof t.push === "function" ? t.push(mode, tokens) : t.push;
937
918
  branch = branches[mode];
package/dist/Parser.d.ts CHANGED
@@ -6,7 +6,7 @@ import type { FullParserOptions, ParserOptions } from "./types/parser.js";
6
6
  /**
7
7
  * Creates the main parser class which handles all functionality (evaluation, validation, etc).
8
8
  */
9
- export declare class Parser<T extends {} = {}> {
9
+ export declare class Parser<T = any> {
10
10
  private evaluationOptionsChecked;
11
11
  _checkEvaluationOptions(): void;
12
12
  private validationOptionsChecked;
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"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"}
package/dist/Parser.js CHANGED
@@ -1,9 +1,6 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
4
  import { get } from "@alanscodelog/utils/get.js";
8
5
  import { insert } from "@alanscodelog/utils/insert.js";
9
6
  import { isArray } from "@alanscodelog/utils/isArray.js";
@@ -37,11 +34,9 @@ const OPPOSITE = {
37
34
  [TOKEN_TYPE.OR]: TOKEN_TYPE.AND
38
35
  };
39
36
  function isEqualSet(setA, setB) {
40
- if (setA.size !== setB.size)
41
- return false;
37
+ if (setA.size !== setB.size) return false;
42
38
  for (const key of setA) {
43
- if (!setB.has(key))
44
- return false;
39
+ if (!setB.has(key)) return false;
45
40
  }
46
41
  return true;
47
42
  }
@@ -58,8 +53,7 @@ const createDefaultRequires = (partial = {}) => ({
58
53
  prefix: partial.prefix ?? false
59
54
  });
60
55
  const tokenRequiresWhitespace = (valid, whitespace, wordOps) => {
61
- if (whitespace || valid === void 0)
62
- return false;
56
+ if (whitespace || valid === void 0) return false;
63
57
  return valid.type === TOKEN_TYPE.VALUE || [TOKEN_TYPE.AND, TOKEN_TYPE.OR, TOKEN_TYPE.NOT].includes(valid.type) && wordOps.find((_) => _.value === valid.value) !== void 0;
64
58
  };
65
59
  const tokenVariable = [TOKEN_TYPE.BACKTICK, TOKEN_TYPE.DOUBLEQUOTE, TOKEN_TYPE.SINGLEQUOTE, TOKEN_TYPE.VALUE, TOKEN_TYPE.REGEX];
@@ -180,13 +174,10 @@ class Parser {
180
174
  return false;
181
175
  }
182
176
  isType(token2, type) {
183
- if (token2 === void 0)
184
- return false;
185
- if (token2.type === type)
186
- return true;
177
+ if (token2 === void 0) return false;
178
+ if (token2.type === type) return true;
187
179
  const tokenType = this.getTokenType(token2.type);
188
- if ((tokenType == null ? void 0 : tokenType.type) === type)
189
- return true;
180
+ if ((tokenType == null ? void 0 : tokenType.type) === type) return true;
190
181
  const category = this.$categories[type];
191
182
  if ((category == null ? void 0 : category.entries[token2.type]) !== void 0) {
192
183
  return true;
@@ -327,13 +318,11 @@ class Parser {
327
318
  }
328
319
  this.restoreState(state);
329
320
  }
330
- if (type === "AND" && pairs.length === 0)
331
- return void 0;
321
+ if (type === "AND" && pairs.length === 0) return void 0;
332
322
  let res = pairs[pairs.length - 1][0];
333
323
  for (let i = pairs.length - 1; i > 0; i--) {
334
324
  const before = pairs[i - 1];
335
- if (type === "OR" && res === void 0 && before === void 0)
336
- return void 0;
325
+ if (type === "OR" && res === void 0 && before === void 0) return void 0;
337
326
  res = expression(before[0], before[1], res);
338
327
  }
339
328
  return res;
@@ -371,8 +360,7 @@ class Parser {
371
360
  }
372
361
  return group(not, value, ...group$1);
373
362
  }
374
- if ([not, property, value].every((_) => _ === void 0))
375
- return void 0;
363
+ if ([not, property, value].every((_) => _ === void 0)) return void 0;
376
364
  return condition(not, property == null ? void 0 : property.prop, property == null ? void 0 : property.rest, value);
377
365
  }
378
366
  ruleConditionValue(property, { convertRegexValues = false, convertArrayValues = false } = {}) {
@@ -383,23 +371,19 @@ class Parser {
383
371
  if (this.options.prefixableGroups && property === void 0 && (next == null ? void 0 : next.type) !== $T.PAREN_L && (this.isType(next, $C.VALUE) && (this.isType(next2, $T.PAREN_L) || this.isType(next2, $C.QUOTE_ANY) && this.isType(next3, $T.PAREN_L)) || this.isType(next, $C.QUOTE_ANY) && (this.isType(next2, $T.PAREN_L) || this.isType(next2, $C.VALUE) && (this.isType(next3, $T.PAREN_L) || // "a(
384
372
  this.isType(next3, $C.QUOTE_ANY) && this.isType(next4, $T.PAREN_L))))) {
385
373
  const res = this.ruleVariable({ unprefixed: true });
386
- if (res)
387
- return res;
374
+ if (res) return res;
388
375
  }
389
376
  if (!this.isType(next, $T.PAREN_L)) {
390
377
  const res = this.ruleVariable({ unprefixed: false });
391
- if (res)
392
- return res;
378
+ if (res) return res;
393
379
  }
394
380
  if (this.isType(next, $T.PAREN_L)) {
395
381
  const res = this.rulePlainGroup({ onlyValues: property !== void 0, convertRegexValues, convertArrayValues });
396
- if (res)
397
- return res;
382
+ if (res) return res;
398
383
  }
399
384
  if (this.isType(next, $T.BRACKET_L)) {
400
385
  const res = this.rulePlainBracketGroup({ convertArrayValues });
401
- if (res)
402
- return res;
386
+ if (res) return res;
403
387
  }
404
388
  return void 0;
405
389
  }
@@ -457,8 +441,7 @@ class Parser {
457
441
  }
458
442
  }
459
443
  const bracketR = this.isType(this.peek(1), $T.BRACKET_R) ? this.ruleBracketR() : void 0;
460
- if (bracketL === void 0)
461
- throw new Error("bracketL is undefined, peek before using rule.");
444
+ if (bracketL === void 0) throw new Error("bracketL is undefined, peek before using rule.");
462
445
  if (!convertArrayValues) {
463
446
  return array(bracketL, values, bracketR);
464
447
  }
@@ -640,8 +623,7 @@ class Parser {
640
623
  if (!unprefixed && this.options.prefixableStrings !== void 0 && this.isType(next2, $C.QUOTE_ANY) && next2 && this.isType(next4, next2.type) && next && this.options.prefixableStrings.includes(next.value)) {
641
624
  return this.ruleValueUnquoted({ onlyToken });
642
625
  }
643
- if (onlyToken)
644
- return void 0;
626
+ if (onlyToken) return void 0;
645
627
  return token.value(...this.processToken());
646
628
  }
647
629
  ruleValueUnquoted({
@@ -716,6 +698,7 @@ class Parser {
716
698
  return [{ suggestion, value: ")" }];
717
699
  case SUGGESTION_TYPE.BRAKCETR:
718
700
  return [{ suggestion, value: "]" }];
701
+ // L not needed
719
702
  case SUGGESTION_TYPE.REGEX:
720
703
  return [{ suggestion, value: "/" }];
721
704
  case SUGGESTION_TYPE.REGEX_FLAGS:
@@ -860,8 +843,7 @@ class Parser {
860
843
  };
861
844
  for (const error of surroundingErrors) {
862
845
  for (const type of error.expected) {
863
- if (errorTypesHandled.includes(type))
864
- continue;
846
+ if (errorTypesHandled.includes(type)) continue;
865
847
  errorTypesHandled.push(type);
866
848
  switch (type) {
867
849
  case TOKEN_TYPE.DOUBLEQUOTE:
@@ -903,10 +885,8 @@ class Parser {
903
885
  }),
904
886
  range: pos({ start: index }, { fill: true })
905
887
  });
906
- if (type === TOKEN_TYPE.AND)
907
- errorTypesHandled.push(TOKEN_TYPE.OR);
908
- if (type === TOKEN_TYPE.OR)
909
- errorTypesHandled.push(TOKEN_TYPE.AND);
888
+ if (type === TOKEN_TYPE.AND) errorTypesHandled.push(TOKEN_TYPE.OR);
889
+ if (type === TOKEN_TYPE.OR) errorTypesHandled.push(TOKEN_TYPE.AND);
910
890
  break;
911
891
  case TOKEN_TYPE.PARENL:
912
892
  case TOKEN_TYPE.PARENR:
@@ -1177,16 +1157,14 @@ class Parser {
1177
1157
  getBestIndexes(indexes, existing, sortIndex = "") {
1178
1158
  indexes = indexes.filter((set) => {
1179
1159
  for (const key of set) {
1180
- if (!existing.has(key))
1181
- return false;
1160
+ if (!existing.has(key)) return false;
1182
1161
  }
1183
1162
  return true;
1184
1163
  });
1185
1164
  let finalIndexes = indexes;
1186
1165
  if (existing.has(sortIndex)) {
1187
1166
  const indexesWithSortIndex = indexes.filter((set) => set.has(sortIndex));
1188
- if (indexesWithSortIndex.length > 0)
1189
- finalIndexes = indexesWithSortIndex;
1167
+ if (indexesWithSortIndex.length > 0) finalIndexes = indexesWithSortIndex;
1190
1168
  }
1191
1169
  let smallest = Infinity;
1192
1170
  if (existing instanceof Map) {
@@ -1230,8 +1208,7 @@ class Parser {
1230
1208
  const allKeys = /* @__PURE__ */ new Set();
1231
1209
  for (const leftSet of left) {
1232
1210
  const exists = sets.find((set) => isEqualSet(set, leftSet));
1233
- if (exists)
1234
- continue;
1211
+ if (exists) continue;
1235
1212
  sets.push(leftSet);
1236
1213
  for (const key of leftSet) {
1237
1214
  allKeys.add(key);
@@ -1239,22 +1216,19 @@ class Parser {
1239
1216
  }
1240
1217
  for (const rightSet of right) {
1241
1218
  const exists = sets.find((set) => isEqualSet(set, rightSet));
1242
- if (exists)
1243
- continue;
1219
+ if (exists) continue;
1244
1220
  sets.push(rightSet);
1245
1221
  for (const key of rightSet) {
1246
1222
  allKeys.add(key);
1247
1223
  }
1248
1224
  }
1249
1225
  const commonKeys = /* @__PURE__ */ new Set();
1250
- outerCheck:
1251
- for (const key of allKeys) {
1252
- for (const set of sets) {
1253
- if (!set.has(key))
1254
- continue outerCheck;
1255
- }
1256
- commonKeys.add(key);
1226
+ outerCheck: for (const key of allKeys) {
1227
+ for (const set of sets) {
1228
+ if (!set.has(key)) continue outerCheck;
1257
1229
  }
1230
+ commonKeys.add(key);
1231
+ }
1258
1232
  if (commonKeys.size > 0) {
1259
1233
  return [commonKeys, allKeys];
1260
1234
  } else {
@@ -1348,8 +1322,9 @@ class Parser {
1348
1322
  }
1349
1323
  if (ast.type === AST_TYPE.GROUP) {
1350
1324
  const _prefix = ((_p = ast.prefix) == null ? void 0 : _p.type) === AST_TYPE.CONDITION && ((_q = ast.prefix) == null ? void 0 : _q.value.type) === AST_TYPE.VARIABLE ? unescape(ast.prefix.value.value.value) : void 0;
1325
+ const isNotToken = _prefix === void 0;
1351
1326
  const _groupValue = ((_r = ast.prefix) == null ? void 0 : _r.type) === AST_TYPE.CONDITION ? ast.prefix.operator === void 0 : !(((_s = ast.prefix) == null ? void 0 : _s.valid) === true);
1352
- const applied = applyPrefix(prefix, _prefix ?? "", opts.prefixApplier);
1327
+ const applied = isNotToken ? prefix : applyPrefix(prefix, _prefix, opts.prefixApplier);
1353
1328
  return self_.normalize(ast.expression, applied, applyBoolean(groupValue, _groupValue), operator2);
1354
1329
  }
1355
1330
  if (ast.type === AST_TYPE.EXPRESSION) {
@@ -1424,11 +1399,9 @@ class Parser {
1424
1399
  condition: ast
1425
1400
  };
1426
1401
  const res = opts.valueValidator(contextValue, query, context);
1427
- if (res && !isArray(res))
1428
- throw new Error("The valueValidator must return an array or nothing/undefined");
1402
+ if (res && !isArray(res)) throw new Error("The valueValidator must return an array or nothing/undefined");
1429
1403
  if (res) {
1430
- for (const entry of res)
1431
- results.push(entry);
1404
+ for (const entry of res) results.push(entry);
1432
1405
  }
1433
1406
  } else {
1434
1407
  let name = unescape(ast.property.value.value);
@@ -1436,16 +1409,14 @@ class Parser {
1436
1409
  name = applyPrefix(prefix, name, opts.prefixApplier);
1437
1410
  }
1438
1411
  const boolValue = applyBoolean(groupValue, ast.operator === void 0);
1439
- if (ast.property)
1440
- prefixes.push(ast.property);
1412
+ if (ast.property) prefixes.push(ast.property);
1441
1413
  const operator22 = ast.propertyOperator;
1442
1414
  self_.validate(ast.value, context, name, boolValue, results, prefixes, operator22);
1443
1415
  }
1444
1416
  }
1445
1417
  if (ast.type === AST_TYPE.GROUP) {
1446
1418
  const _prefix = ((_j = ast.prefix) == null ? void 0 : _j.type) === AST_TYPE.CONDITION && ast.prefix.value.type === AST_TYPE.VARIABLE ? ast.prefix.value : void 0;
1447
- if (_prefix)
1448
- prefixes.push(_prefix);
1419
+ if (_prefix) prefixes.push(_prefix);
1449
1420
  const _groupValue = ((_k = ast.prefix) == null ? void 0 : _k.type) === AST_TYPE.CONDITION ? ast.prefix.operator === void 0 : !(((_l = ast.prefix) == null ? void 0 : _l.valid) === true);
1450
1421
  self_.validate(ast.expression, context, applyPrefix(prefix, (_prefix == null ? void 0 : _prefix.value.value) ?? "", opts.prefixApplier), applyBoolean(groupValue, _groupValue), results, prefixes, operator2);
1451
1422
  }
@@ -15,10 +15,8 @@ function condition(value, not = true, property, propertyOperator, { right, left
15
15
  }
16
16
  if (right || left) {
17
17
  node.sep = {};
18
- if (right)
19
- node.sep.right = right;
20
- if (left)
21
- node.sep.left = left;
18
+ if (right) node.sep.right = right;
19
+ if (left) node.sep.left = left;
22
20
  }
23
21
  return createConditionNode(node);
24
22
  }
@@ -5,7 +5,7 @@ import { type ExtractTokenType } from "../../types/ast.js";
5
5
  export declare function delim<TLeft extends boolean | string, TRight extends boolean | string, TType extends TLeft extends string ? ExtractTokenType<TLeft> : TRight extends string ? ExtractTokenType<TRight> : undefined>(left?: TLeft, right?: TRight): {
6
6
  left: TLeft extends string ? true : TLeft;
7
7
  right: TRight extends string ? true : TRight;
8
- } & TType extends undefined ? {} : {
8
+ } & TType extends undefined ? Record<string, never> : {
9
9
  type: TType;
10
10
  };
11
11
  //# sourceMappingURL=delim.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delim.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/delim.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,oBAAoB,CAAA;AAEtE;;GAEG;AAEH,wBAAgB,KAAK,CACpB,KAAK,SAAS,OAAO,GAAG,MAAM,EAC9B,MAAM,SAAS,OAAO,GAAG,MAAM,EAC/B,KAAK,SAAS,KAAK,SAAS,MAAM,GAC/B,gBAAgB,CAAC,KAAK,CAAC,GACvB,MAAM,SAAS,MAAM,GACrB,gBAAgB,CAAC,MAAM,CAAC,GACxB,SAAS,EAEZ,IAAI,GAAE,KAAsB,EAC5B,KAAK,GAAE,MAAwB,GAE/B;IACC,IAAI,EAAE,KAAK,SAAS,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;IACzC,KAAK,EAAE,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,CAAA;CAC5C,GAAG,KAAK,SAAS,SAAS,GAAG,EAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAelD"}
1
+ {"version":3,"file":"delim.d.ts","sourceRoot":"","sources":["../../../src/ast/builders/delim.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,oBAAoB,CAAA;AAEtE;;GAEG;AAEH,wBAAgB,KAAK,CACpB,KAAK,SAAS,OAAO,GAAG,MAAM,EAC9B,MAAM,SAAS,OAAO,GAAG,MAAM,EAC/B,KAAK,SAAS,KAAK,SAAS,MAAM,GAC/B,gBAAgB,CAAC,KAAK,CAAC,GACvB,MAAM,SAAS,MAAM,GACrB,gBAAgB,CAAC,MAAM,CAAC,GACxB,SAAS,EAEZ,IAAI,GAAE,KAAsB,EAC5B,KAAK,GAAE,MAAwB,GAE/B;IACC,IAAI,EAAE,KAAK,SAAS,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;IACzC,KAAK,EAAE,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,CAAA;CAC5C,GAAG,KAAK,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAC,KAAK,CAAC,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAepE"}
@@ -2,10 +2,8 @@ import { type } from "./type.js";
2
2
  import { TOKEN_TYPE } from "../../types/ast.js";
3
3
  function delim(left = false, right = false) {
4
4
  let quoteType;
5
- if (typeof left === "string")
6
- quoteType = type(left);
7
- else if (typeof right === "string")
8
- quoteType = type(right);
5
+ if (typeof left === "string") quoteType = type(left);
6
+ else if (typeof right === "string") quoteType = type(right);
9
7
  const opts = {
10
8
  left: left === true || typeof left === "string" && left !== void 0,
11
9
  right: right === true || typeof right === "string" && right !== void 0
@@ -12,8 +12,7 @@ function expression(left, operator, right) {
12
12
  let op;
13
13
  if (operator === void 0) {
14
14
  operator = token([TOKEN_TYPE.AND, TOKEN_TYPE.OR], void 0, { start: left.end });
15
- } else
16
- op = operator;
15
+ } else op = operator;
17
16
  if (right === void 0) {
18
17
  right = token(TOKEN_TYPE.VALUE, void 0, { start: op.end });
19
18
  }
@@ -4,8 +4,7 @@ function pos(start, end) {
4
4
  return { start, end };
5
5
  } else {
6
6
  const item = start;
7
- if (item === void 0)
8
- return {};
7
+ if (item === void 0) return {};
9
8
  const fill = typeof end === "object" ? end.fill : false;
10
9
  if (isFullPos(item)) {
11
10
  return { start: item.start, end: item.end };
@@ -13,10 +12,8 @@ function pos(start, end) {
13
12
  if (fill) {
14
13
  let start2 = item.start;
15
14
  let end2 = item.end;
16
- if (start2 !== void 0 && end2 === void 0)
17
- end2 = start2;
18
- if (end2 !== void 0 && start2 === void 0)
19
- start2 = end2;
15
+ if (start2 !== void 0 && end2 === void 0) end2 = start2;
16
+ if (end2 !== void 0 && start2 === void 0) start2 = end2;
20
17
  return { start: start2, end: end2 };
21
18
  }
22
19
  return {};
@@ -16,16 +16,14 @@ function variable(prefix, value, quote, position) {
16
16
  node.quote = {};
17
17
  const quoteLeftPos = (position == null ? void 0 : position.start) !== void 0 ? pos({ start: position.start }, { fill: true }) : void 0;
18
18
  if (quote.left) {
19
- if (quoteLeftPos)
20
- quoteLeftPos.start -= 1;
19
+ if (quoteLeftPos) quoteLeftPos.start -= 1;
21
20
  node.quote.left = token(quote.type, quoteFromType(quote.type), quoteLeftPos);
22
21
  } else {
23
22
  node.quote.left = token(quote.type, void 0, quoteLeftPos);
24
23
  }
25
24
  const quoteRightPos = (position == null ? void 0 : position.end) !== void 0 ? pos({ end: position.end }, { fill: true }) : void 0;
26
25
  if (quote.right) {
27
- if (quoteRightPos)
28
- quoteRightPos.end += 1;
26
+ if (quoteRightPos) quoteRightPos.end += 1;
29
27
  node.quote.right = token(quote.type, quoteFromType(quote.type), quoteRightPos);
30
28
  } else {
31
29
  node.quote.right = token(quote.type, void 0, quoteRightPos);
package/dist/ast/error.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { createToken } from "./createToken.js";
2
2
  function error(pos, expected) {
3
- if (pos === void 0)
4
- throw new Error("should never happen, passed undefined position for error token");
3
+ if (pos === void 0) throw new Error("should never happen, passed undefined position for error token");
5
4
  return createToken({ expected, start: pos, end: pos });
6
5
  }
7
6
  export {