xlucene-parser 1.10.1 → 1.10.3

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.
@@ -1,8 +1,71 @@
1
1
  import { ParserOptions, Node } from './interfaces.js';
2
2
  import { Parser } from './parser.js';
3
+ /**
4
+ * A caching wrapper around the Parser class for improved performance.
5
+ *
6
+ * CachedParser maintains an internal cache of parsed queries to avoid
7
+ * re-parsing identical query strings. This is particularly useful when
8
+ * the same queries are parsed repeatedly.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const cache = new CachedParser();
13
+ *
14
+ * // First parse - creates and caches the parser
15
+ * const parser1 = cache.make('name:John');
16
+ *
17
+ * // Second parse - returns cached parser
18
+ * const parser2 = cache.make('name:John');
19
+ *
20
+ * console.log(parser1 === parser2); // true
21
+ * ```
22
+ */
3
23
  export declare class CachedParser {
4
24
  constructor();
25
+ /**
26
+ * Create or retrieve a cached Parser instance for the given query.
27
+ *
28
+ * The cache key is based on the query string and type configuration.
29
+ * If a parser for the same query and configuration exists in the cache,
30
+ * it will be returned instead of creating a new one.
31
+ *
32
+ * @param query - The xLucene query string to parse
33
+ * @param options - Optional configuration for parsing behavior
34
+ * @param _overrideParsedQuery - Internal parameter for providing pre-parsed AST
35
+ * @returns A Parser instance (cached or newly created)
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const cache = new CachedParser();
40
+ *
41
+ * // Create parser with type configuration
42
+ * const parser = cache.make('age:25', {
43
+ * type_config: { age: 'integer' }
44
+ * });
45
+ *
46
+ * // Same query and config returns cached parser
47
+ * const cachedParser = cache.make('age:25', {
48
+ * type_config: { age: 'integer' }
49
+ * });
50
+ * ```
51
+ */
5
52
  make(query: string, options?: ParserOptions, _overrideParsedQuery?: Node): Parser;
53
+ /**
54
+ * Clear all cached parsers.
55
+ *
56
+ * This method removes all entries from the internal cache, forcing
57
+ * subsequent calls to `make()` to create new Parser instances.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const cache = new CachedParser();
62
+ * cache.make('name:John'); // Creates and caches parser
63
+ *
64
+ * cache.reset(); // Clear cache
65
+ *
66
+ * cache.make('name:John'); // Creates new parser (not cached)
67
+ * ```
68
+ */
6
69
  reset(): void;
7
70
  }
8
71
  //# sourceMappingURL=cached-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cached-parser.d.ts","sourceRoot":"","sources":["../../src/cached-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC,qBAAa,YAAY;;IAKrB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAAE,IAAI,GAAG,MAAM;IAajF,KAAK,IAAI,IAAI;CAIhB"}
1
+ {"version":3,"file":"cached-parser.d.ts","sourceRoot":"","sources":["../../src/cached-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAY;;IAKrB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAAE,IAAI,GAAG,MAAM;IAajF;;;;;;;;;;;;;;;OAeG;IACH,KAAK,IAAI,IAAI;CAIhB"}
@@ -1,9 +1,56 @@
1
1
  import { Parser } from './parser.js';
2
2
  const _cache = new WeakMap();
3
+ /**
4
+ * A caching wrapper around the Parser class for improved performance.
5
+ *
6
+ * CachedParser maintains an internal cache of parsed queries to avoid
7
+ * re-parsing identical query strings. This is particularly useful when
8
+ * the same queries are parsed repeatedly.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const cache = new CachedParser();
13
+ *
14
+ * // First parse - creates and caches the parser
15
+ * const parser1 = cache.make('name:John');
16
+ *
17
+ * // Second parse - returns cached parser
18
+ * const parser2 = cache.make('name:John');
19
+ *
20
+ * console.log(parser1 === parser2); // true
21
+ * ```
22
+ */
3
23
  export class CachedParser {
4
24
  constructor() {
5
25
  _cache.set(this, new Map());
6
26
  }
27
+ /**
28
+ * Create or retrieve a cached Parser instance for the given query.
29
+ *
30
+ * The cache key is based on the query string and type configuration.
31
+ * If a parser for the same query and configuration exists in the cache,
32
+ * it will be returned instead of creating a new one.
33
+ *
34
+ * @param query - The xLucene query string to parse
35
+ * @param options - Optional configuration for parsing behavior
36
+ * @param _overrideParsedQuery - Internal parameter for providing pre-parsed AST
37
+ * @returns A Parser instance (cached or newly created)
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const cache = new CachedParser();
42
+ *
43
+ * // Create parser with type configuration
44
+ * const parser = cache.make('age:25', {
45
+ * type_config: { age: 'integer' }
46
+ * });
47
+ *
48
+ * // Same query and config returns cached parser
49
+ * const cachedParser = cache.make('age:25', {
50
+ * type_config: { age: 'integer' }
51
+ * });
52
+ * ```
53
+ */
7
54
  make(query, options, _overrideParsedQuery) {
8
55
  const typeConfigKey = options?.type_config ? JSON.stringify(options.type_config) : '';
9
56
  const key = `${query}${typeConfigKey}`;
@@ -15,6 +62,22 @@ export class CachedParser {
15
62
  cached.set(key, parsed);
16
63
  return parsed;
17
64
  }
65
+ /**
66
+ * Clear all cached parsers.
67
+ *
68
+ * This method removes all entries from the internal cache, forcing
69
+ * subsequent calls to `make()` to create new Parser instances.
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const cache = new CachedParser();
74
+ * cache.make('name:John'); // Creates and caches parser
75
+ *
76
+ * cache.reset(); // Clear cache
77
+ *
78
+ * cache.make('name:John'); // Creates new parser (not cached)
79
+ * ```
80
+ */
18
81
  reset() {
19
82
  const cached = _cache.get(this);
20
83
  cached.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"cached-parser.js","sourceRoot":"","sources":["../../src/cached-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,MAAM,GAAG,IAAI,OAAO,EAAwB,CAAC;AAEnD,MAAM,OAAO,YAAY;IACrB;QACI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,OAAuB,EAAE,oBAA2B;QACpE,MAAM,aAAa,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,aAAa,EAAE,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,YAAY;YAAE,OAAO,YAAY,CAAC;QAEtC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACjC,MAAM,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;CACJ"}
1
+ {"version":3,"file":"cached-parser.js","sourceRoot":"","sources":["../../src/cached-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,MAAM,GAAG,IAAI,OAAO,EAAwB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,YAAY;IACrB;QACI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,IAAI,CAAC,KAAa,EAAE,OAAuB,EAAE,oBAA2B;QACpE,MAAM,aAAa,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,aAAa,EAAE,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,YAAY;YAAE,OAAO,YAAY,CAAC;QAEtC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACjC,MAAM,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;CACJ"}
@@ -1,5 +1,8 @@
1
1
  import { xLuceneTypeConfig, xLuceneVariables } from '@terascope/types';
2
2
  import { FunctionDefinition, FunctionMethods, FunctionNode } from '../interfaces.js';
3
+ /**
4
+ * Enumeration of available xLucene functions.
5
+ */
3
6
  export declare enum xLuceneFunction {
4
7
  geoDistance = "geoDistance",
5
8
  geoBox = "geoBox",
@@ -7,7 +10,35 @@ export declare enum xLuceneFunction {
7
10
  geoContainsPoint = "geoContainsPoint",
8
11
  knn = "knn"
9
12
  }
13
+ /**
14
+ * Registry of available xLucene function implementations.
15
+ *
16
+ * Maps function names to their corresponding function definitions
17
+ * that provide the implementation logic.
18
+ */
10
19
  export declare const xLuceneFunctions: Record<xLuceneFunction, FunctionDefinition>;
20
+ /**
21
+ * Initialize a function node with the appropriate implementation.
22
+ *
23
+ * This function looks up the function implementation based on the node's name
24
+ * and creates an instance configured with the provided variables and type config.
25
+ *
26
+ * @param config - Configuration object
27
+ * @param { FunctionNode } config.node - The function node from the AST
28
+ * @param { xLuceneVariables } config.variables - Variables for parameter resolution
29
+ * @param { xLuceneTypeConfig } config.type_config - Field type configuration
30
+ * @returns { FunctionMethods } Function methods for matching and query generation
31
+ * @throws { TypeError } If the function name is not recognized
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const functionMethods = initFunction({
36
+ * node: geoDistanceNode,
37
+ * variables: { maxDist: '10km' },
38
+ * type_config: { location: 'geo' }
39
+ * });
40
+ * ```
41
+ */
11
42
  export declare function initFunction({ node, variables, type_config }: {
12
43
  node: FunctionNode;
13
44
  variables?: xLuceneVariables;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOvE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErF,oBAAY,eAAe;IACvB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,GAAG,QAAQ;CACd;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAMxE,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;IAC3D,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,iBAAiB,CAAC;CAClC,GAAG,eAAe,CAYlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOvE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErF;;GAEG;AACH,oBAAY,eAAe;IACvB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,GAAG,QAAQ;CACd;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAMxE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;IAC3D,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,iBAAiB,CAAC;CAClC,GAAG,eAAe,CAYlB"}
@@ -4,6 +4,9 @@ import geoDistanceFn from './geo/distance.js';
4
4
  import geoPolygonFn from './geo/polygon.js';
5
5
  import geoContainsPointFn from './geo/contains-point.js';
6
6
  import knnSearch from './vector/knn.js';
7
+ /**
8
+ * Enumeration of available xLucene functions.
9
+ */
7
10
  export var xLuceneFunction;
8
11
  (function (xLuceneFunction) {
9
12
  xLuceneFunction["geoDistance"] = "geoDistance";
@@ -12,6 +15,12 @@ export var xLuceneFunction;
12
15
  xLuceneFunction["geoContainsPoint"] = "geoContainsPoint";
13
16
  xLuceneFunction["knn"] = "knn";
14
17
  })(xLuceneFunction || (xLuceneFunction = {}));
18
+ /**
19
+ * Registry of available xLucene function implementations.
20
+ *
21
+ * Maps function names to their corresponding function definitions
22
+ * that provide the implementation logic.
23
+ */
15
24
  export const xLuceneFunctions = {
16
25
  geoDistance: geoDistanceFn,
17
26
  geoBox: geoBoxFn,
@@ -19,6 +28,28 @@ export const xLuceneFunctions = {
19
28
  geoContainsPoint: geoContainsPointFn,
20
29
  knn: knnSearch
21
30
  };
31
+ /**
32
+ * Initialize a function node with the appropriate implementation.
33
+ *
34
+ * This function looks up the function implementation based on the node's name
35
+ * and creates an instance configured with the provided variables and type config.
36
+ *
37
+ * @param config - Configuration object
38
+ * @param { FunctionNode } config.node - The function node from the AST
39
+ * @param { xLuceneVariables } config.variables - Variables for parameter resolution
40
+ * @param { xLuceneTypeConfig } config.type_config - Field type configuration
41
+ * @returns { FunctionMethods } Function methods for matching and query generation
42
+ * @throws { TypeError } If the function name is not recognized
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const functionMethods = initFunction({
47
+ * node: geoDistanceNode,
48
+ * variables: { maxDist: '10km' },
49
+ * type_config: { location: 'geo' }
50
+ * });
51
+ * ```
52
+ */
22
53
  export function initFunction({ node, variables, type_config }) {
23
54
  const fnType = isKey(xLuceneFunctions, node.name)
24
55
  ? xLuceneFunctions[node.name]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,QAAQ,MAAM,cAAc,CAAC;AACpC,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAGxC,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACvB,8CAA2B,CAAA;IAC3B,oCAAiB,CAAA;IACjB,4CAAyB,CAAA;IACzB,wDAAqC,CAAA;IACrC,8BAAW,CAAA;AACf,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAgD;IACzE,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,GAAG,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAI1D;IACG,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,SAAS,CAAC,6BAA6B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE;KAChD,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,QAAQ,MAAM,cAAc,CAAC;AACpC,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAGxC;;GAEG;AACH,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACvB,8CAA2B,CAAA;IAC3B,oCAAiB,CAAA;IACjB,4CAAyB,CAAA;IACzB,wDAAqC,CAAA;IACrC,8BAAW,CAAA;AACf,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgD;IACzE,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,GAAG,EAAE,SAAS;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAI1D;IACG,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,SAAS,CAAC,6BAA6B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE;KAChD,CAAC,CAAC;AACP,CAAC"}
@@ -1,33 +1,65 @@
1
1
  import { Logger } from '@terascope/utils';
2
2
  import * as t from '@terascope/types';
3
3
  /**
4
- * @param filterNilVariables CAUTION: Filters out variable nodes that don't have
5
- * a variable provided in the variables object so make sure to pass in variables.
4
+ * Configuration options for the Parser constructor.
5
+ * @property type_config - Optional type config for field type inference.
6
+ * @property filterNilVariables - If true, removes variable nodes with no value in `variables`.
7
+ * CAUTION: Make sure to pass all needed variables or parts of the query may be dropped.
8
+ * @property variables - Optional map of variable names to values for substitution.
6
9
  */
7
10
  export interface ParserOptions {
8
11
  type_config?: t.xLuceneTypeConfig;
9
12
  filterNilVariables?: boolean;
10
13
  variables?: t.xLuceneVariables;
11
14
  }
15
+ /**
16
+ * Context argument passed to the PEG parser engine.
17
+ * @internal
18
+ */
12
19
  export interface ContextArg {
13
20
  typeConfig?: t.xLuceneTypeConfig;
14
21
  variables?: t.xLuceneVariables;
15
22
  }
16
23
  export type GroupLike = FieldGroup | LogicalGroup;
17
24
  export type GroupLikeType = NodeType.LogicalGroup | NodeType.FieldGroup;
25
+ /**
26
+ * Base interface for all AST nodes.
27
+ *
28
+ * Every node in the Abstract Syntax Tree has a type property
29
+ * that identifies what kind of node it is.
30
+ */
18
31
  export interface Node {
19
32
  type: NodeType;
20
33
  }
34
+ /**
35
+ * Base interface for nodes that contain logical flow (LogicalGroup and FieldGroup).
36
+ *
37
+ * Group-like nodes organize other nodes into logical conjunctions,
38
+ * representing AND/OR operations or field-scoped groupings.
39
+ */
21
40
  export interface GroupLikeNode extends Node {
22
41
  type: GroupLikeType;
23
42
  flow: Conjunction[];
24
43
  }
25
44
  export type TermLikeType = NodeType.Term | NodeType.Regexp | NodeType.Range | NodeType.Wildcard | NodeType.Function | NodeType.TermList;
45
+ /**
46
+ * Base interface for nodes that represent searchable terms.
47
+ *
48
+ * Term-like nodes include actual search terms, ranges, wildcards,
49
+ * regular expressions, and functions - anything that can be applied
50
+ * to a field for matching.
51
+ */
26
52
  export interface TermLikeNode extends Node {
27
53
  type: TermLikeType;
28
54
  field: Field;
29
55
  analyzed?: boolean;
30
56
  }
57
+ /**
58
+ * Enumeration of all possible AST node types.
59
+ *
60
+ * Each node in the parsed AST has one of these types, which determines
61
+ * its structure and behavior.
62
+ */
31
63
  export declare enum NodeType {
32
64
  LogicalGroup = "logical-group",
33
65
  FieldGroup = "field-group",
@@ -55,11 +87,31 @@ export type FieldValueVariable = {
55
87
  scoped: boolean;
56
88
  value: string;
57
89
  };
90
+ /**
91
+ * Union type representing either a literal value or a variable reference.
92
+ *
93
+ * Field values can be either concrete values or references to variables
94
+ * that will be resolved later.
95
+ */
58
96
  export type FieldValue<T> = FieldValueValue<T> | FieldValueVariable;
97
+ /**
98
+ * AST node representing a list of terms.
99
+ *
100
+ * Term lists are used internally for function parameters
101
+ * and other scenarios where multiple values are grouped.
102
+ *
103
+ * @internal
104
+ */
59
105
  export interface TermList extends TermLikeNode {
60
106
  type: NodeType.TermList;
61
107
  value: FieldValue<any>[];
62
108
  }
109
+ /**
110
+ * Interface for nodes that can contain any type of data value.
111
+ *
112
+ * This is the most general data type interface, used by Term nodes
113
+ * that can contain strings, numbers, booleans, or other values.
114
+ */
63
115
  export interface AnyDataType {
64
116
  /**
65
117
  * The field type here may be the field type specified
@@ -68,41 +120,105 @@ export interface AnyDataType {
68
120
  field_type: t.xLuceneFieldType;
69
121
  value: FieldValue<string | number | boolean | any>;
70
122
  }
123
+ /**
124
+ * Interface for nodes that contain numeric data values.
125
+ *
126
+ * Used by nodes that specifically work with integer or float values.
127
+ */
71
128
  export interface NumberDataType {
72
129
  field_type: t.xLuceneFieldType.Integer | t.xLuceneFieldType.Float;
73
130
  value: FieldValue<number>;
74
131
  }
132
+ /**
133
+ * Interface for nodes that contain string data values.
134
+ *
135
+ * String data types track whether the value was quoted in the original
136
+ * query and whether it has restricted characters.
137
+ */
75
138
  export interface StringDataType {
76
139
  field_type: t.xLuceneFieldType.String;
77
140
  value: FieldValue<string>;
78
141
  quoted: boolean;
79
142
  restricted?: boolean;
80
143
  }
144
+ /**
145
+ * Interface for nodes that contain boolean data values.
146
+ */
81
147
  export interface BooleanDataType {
82
148
  field_type: t.xLuceneFieldType.Boolean;
83
149
  value: FieldValue<boolean>;
84
150
  }
151
+ /**
152
+ * AST node representing a logical grouping of terms with AND/OR operations.
153
+ *
154
+ * Logical groups organize multiple terms or sub-groups with boolean logic.
155
+ *
156
+ * @example
157
+ * Query: "name:John AND age:25" creates a LogicalGroup with two conjunctions
158
+ */
85
159
  export interface LogicalGroup extends GroupLikeNode {
86
160
  type: NodeType.LogicalGroup;
87
161
  }
162
+ /**
163
+ * AST node representing a conjunction of terms (implicit AND operation).
164
+ *
165
+ * Conjunctions group multiple nodes that should all match.
166
+ *
167
+ * @example
168
+ * Query: "name:John age:25" creates a Conjunction with two Term nodes
169
+ */
88
170
  export interface Conjunction extends Node {
89
171
  type: NodeType.Conjunction;
90
172
  nodes: Node[];
91
173
  }
174
+ /**
175
+ * AST node representing a negated term or group.
176
+ *
177
+ * Negations wrap another node and indicate it should NOT match.
178
+ *
179
+ * @example
180
+ * Query: "NOT name:John" creates a Negation containing a Term node
181
+ */
92
182
  export interface Negation extends Node {
93
183
  type: NodeType.Negation;
94
184
  node: Node;
95
185
  }
186
+ /**
187
+ * AST node representing multiple operations on the same field.
188
+ *
189
+ * Field groups allow multiple conditions to be applied to a single field.
190
+ *
191
+ * @example
192
+ * Query: "age:(>=18 AND <=65)" creates a FieldGroup for the 'age' field
193
+ */
96
194
  export interface FieldGroup extends GroupLikeNode {
97
195
  type: NodeType.FieldGroup;
98
196
  field_type: t.xLuceneFieldType;
99
197
  field: string;
100
198
  }
199
+ /**
200
+ * AST node representing a field existence check.
201
+ *
202
+ * Exists nodes check whether a field has any value (is not null/undefined).
203
+ *
204
+ * @example
205
+ * Query: "_exists_:name" creates an Exists node for the 'name' field
206
+ */
101
207
  export interface Exists extends Node {
102
208
  type: NodeType.Exists;
103
209
  field: string;
104
210
  }
105
211
  export type RangeOperator = 'gte' | 'gt' | 'lt' | 'lte';
212
+ /**
213
+ * AST node representing a range query.
214
+ *
215
+ * Range nodes specify numeric or string ranges with comparison operators.
216
+ * They can have one or two bounds (left/right) with different operators.
217
+ *
218
+ * @example
219
+ * Query: "age:[18 TO 65]" creates a Range with gte and lte operators
220
+ * Query: "score:>=90" creates a Range with only a left bound (gte)
221
+ */
106
222
  export interface Range extends TermLikeNode {
107
223
  type: NodeType.Range;
108
224
  field_type: t.xLuceneFieldType;
@@ -110,11 +226,27 @@ export interface Range extends TermLikeNode {
110
226
  right?: RangeNode;
111
227
  __range?: boolean;
112
228
  }
229
+ /**
230
+ * Configuration for one side of a range query.
231
+ *
232
+ * Range nodes specify the operator (gte, gt, lt, lte) and the value
233
+ * for one boundary of a range.
234
+ */
113
235
  export interface RangeNode {
114
236
  operator: RangeOperator;
115
237
  field_type: t.xLuceneFieldType.Integer | t.xLuceneFieldType.Float | t.xLuceneFieldType.String | t.xLuceneFieldType.AnalyzedString | t.xLuceneFieldType.Date | t.xLuceneFieldType.IP;
116
238
  value: FieldValue<number | string>;
117
239
  }
240
+ /**
241
+ * AST node representing a function call.
242
+ *
243
+ * Function nodes represent specialized operations like geo queries
244
+ * that take named parameters.
245
+ *
246
+ * @example
247
+ * Query: "location:geoDistance(point:"40,-74", distance:"10km")"
248
+ * creates a FunctionNode with name="geoDistance" and parameters
249
+ */
118
250
  export interface FunctionNode extends TermLikeNode {
119
251
  type: NodeType.Function;
120
252
  /**
@@ -124,12 +256,39 @@ export interface FunctionNode extends TermLikeNode {
124
256
  description?: string;
125
257
  params: (Term | TermList)[];
126
258
  }
259
+ /**
260
+ * AST node representing a regular expression pattern.
261
+ *
262
+ * Regular expression nodes contain patterns for matching text.
263
+ *
264
+ * @example
265
+ * Query: "name:/[A-Z][a-z]+/" creates a Regexp node
266
+ */
127
267
  export interface Regexp extends StringDataType, TermLikeNode {
128
268
  type: NodeType.Regexp;
129
269
  }
270
+ /**
271
+ * AST node representing a wildcard pattern.
272
+ *
273
+ * Wildcard nodes contain patterns with ? (single character) and
274
+ * * (multiple characters) wildcards.
275
+ *
276
+ * @example
277
+ * Query: "name:J*n" creates a Wildcard node
278
+ */
130
279
  export interface Wildcard extends StringDataType, TermLikeNode {
131
280
  type: NodeType.Wildcard;
132
281
  }
282
+ /**
283
+ * AST node representing a simple term query.
284
+ *
285
+ * Term nodes are the most basic type of query, representing
286
+ * field-value pairs or standalone search terms.
287
+ *
288
+ * @example
289
+ * Query: "name:John" creates a Term node
290
+ * Query: "hello" creates a Term node with null field
291
+ */
133
292
  export interface Term extends AnyDataType, TermLikeNode {
134
293
  type: NodeType.Term;
135
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Enumeration of all possible AST node types.
3
+ *
4
+ * Each node in the parsed AST has one of these types, which determines
5
+ * its structure and behavior.
6
+ */
1
7
  export var NodeType;
2
8
  (function (NodeType) {
3
9
  NodeType["LogicalGroup"] = "logical-group";
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AA4CA,MAAM,CAAN,IAAY,QAaX;AAbD,WAAY,QAAQ;IAChB,0CAA8B,CAAA;IAC9B,sCAA0B,CAAA;IAC1B,uCAA2B,CAAA;IAC3B,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,iCAAqB,CAAA;IACrB,kCAAsB,CAAA;AAC1B,CAAC,EAbW,QAAQ,KAAR,QAAQ,QAanB"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAsEA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,QAaX;AAbD,WAAY,QAAQ;IAChB,0CAA8B,CAAA;IAC9B,sCAA0B,CAAA;IAC1B,uCAA2B,CAAA;IAC3B,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,iCAAqB,CAAA;IACrB,kCAAsB,CAAA;AAC1B,CAAC,EAbW,QAAQ,KAAR,QAAQ,QAanB"}