flowquery 1.0.53 → 1.0.54

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 (54) hide show
  1. package/README.md +67 -0
  2. package/dist/flowquery.min.js +1 -1
  3. package/dist/parsing/expressions/expression.d.ts +3 -0
  4. package/dist/parsing/expressions/expression.d.ts.map +1 -1
  5. package/dist/parsing/expressions/expression.js +8 -0
  6. package/dist/parsing/expressions/expression.js.map +1 -1
  7. package/dist/parsing/expressions/subquery_expression.d.ts +18 -0
  8. package/dist/parsing/expressions/subquery_expression.d.ts.map +1 -0
  9. package/dist/parsing/expressions/subquery_expression.js +98 -0
  10. package/dist/parsing/expressions/subquery_expression.js.map +1 -0
  11. package/dist/parsing/functions/function_factory.d.ts +11 -0
  12. package/dist/parsing/functions/function_factory.d.ts.map +1 -1
  13. package/dist/parsing/functions/function_factory.js +13 -0
  14. package/dist/parsing/functions/function_factory.js.map +1 -1
  15. package/dist/parsing/functions/predicate_all.d.ts +7 -0
  16. package/dist/parsing/functions/predicate_all.d.ts.map +1 -0
  17. package/dist/parsing/functions/predicate_all.js +58 -0
  18. package/dist/parsing/functions/predicate_all.js.map +1 -0
  19. package/dist/parsing/functions/predicate_any.d.ts +7 -0
  20. package/dist/parsing/functions/predicate_any.d.ts.map +1 -0
  21. package/dist/parsing/functions/predicate_any.js +58 -0
  22. package/dist/parsing/functions/predicate_any.js.map +1 -0
  23. package/dist/parsing/functions/predicate_function.d.ts +4 -1
  24. package/dist/parsing/functions/predicate_function.d.ts.map +1 -1
  25. package/dist/parsing/functions/predicate_function.js +18 -2
  26. package/dist/parsing/functions/predicate_function.js.map +1 -1
  27. package/dist/parsing/functions/predicate_none.d.ts +7 -0
  28. package/dist/parsing/functions/predicate_none.d.ts.map +1 -0
  29. package/dist/parsing/functions/predicate_none.js +58 -0
  30. package/dist/parsing/functions/predicate_none.js.map +1 -0
  31. package/dist/parsing/functions/predicate_single.d.ts +7 -0
  32. package/dist/parsing/functions/predicate_single.d.ts.map +1 -0
  33. package/dist/parsing/functions/predicate_single.js +61 -0
  34. package/dist/parsing/functions/predicate_single.js.map +1 -0
  35. package/dist/parsing/functions/predicate_sum.js.map +1 -1
  36. package/dist/parsing/operations/return.d.ts.map +1 -1
  37. package/dist/parsing/operations/return.js +3 -0
  38. package/dist/parsing/operations/return.js.map +1 -1
  39. package/dist/parsing/operations/where.d.ts.map +1 -1
  40. package/dist/parsing/operations/where.js +3 -0
  41. package/dist/parsing/operations/where.js.map +1 -1
  42. package/dist/parsing/parser.d.ts +2 -0
  43. package/dist/parsing/parser.d.ts.map +1 -1
  44. package/dist/parsing/parser.js +110 -9
  45. package/dist/parsing/parser.js.map +1 -1
  46. package/dist/tokenization/keyword.d.ts +2 -1
  47. package/dist/tokenization/keyword.d.ts.map +1 -1
  48. package/dist/tokenization/keyword.js +1 -0
  49. package/dist/tokenization/keyword.js.map +1 -1
  50. package/dist/tokenization/token.d.ts +2 -0
  51. package/dist/tokenization/token.d.ts.map +1 -1
  52. package/dist/tokenization/token.js +7 -0
  53. package/dist/tokenization/token.js.map +1 -1
  54. package/package.json +4 -1
@@ -1,6 +1,7 @@
1
1
  import PatternExpression from "../../graph/pattern_expression";
2
2
  import ASTNode from "../ast_node";
3
3
  import AggregateFunction from "../functions/aggregate_function";
4
+ import SubqueryExpression from "./subquery_expression";
4
5
  /**
5
6
  * Represents an expression in the FlowQuery AST.
6
7
  *
@@ -47,6 +48,8 @@ declare class Expression extends ASTNode {
47
48
  toString(): string;
48
49
  reducers(): AggregateFunction[];
49
50
  patterns(): PatternExpression[];
51
+ private _subqueries;
52
+ subqueries(): SubqueryExpression[];
50
53
  private _extract;
51
54
  mappable(): boolean;
52
55
  has_reducers(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/parsing/expressions/expression.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAGhE;;;;;;;;;;;;;;;GAeG;AACH,cAAM,UAAW,SAAQ,OAAO;IAC5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,SAAS,CAAoC;IAErD;;;;;;OAMG;IACI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAsBnC;;;;OAIG;IACI,MAAM,IAAI,IAAI;IAQrB,OAAO,CAAC,MAAM;IAWP,UAAU,IAAI,OAAO;IAIrB,KAAK,IAAI,GAAG;IAUZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAED,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAKhC;IAEM,QAAQ,IAAI,MAAM;IAOlB,QAAQ,IAAI,iBAAiB,EAAE;IAM/B,QAAQ,IAAI,iBAAiB,EAAE;IAMtC,OAAO,CAAE,QAAQ;IAQV,QAAQ,IAAI,OAAO;IAGnB,YAAY,IAAI,OAAO;IAG9B,IAAW,UAAU,CAAC,KAAK,EAAE,GAAG,EAE/B;CACJ;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/parsing/expressions/expression.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAEhE,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,cAAM,UAAW,SAAQ,OAAO;IAC5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,SAAS,CAAoC;IAErD;;;;;;OAMG;IACI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAsBnC;;;;OAIG;IACI,MAAM,IAAI,IAAI;IAQrB,OAAO,CAAC,MAAM;IAWP,UAAU,IAAI,OAAO;IAIrB,KAAK,IAAI,GAAG;IAUZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAED,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAKhC;IAEM,QAAQ,IAAI,MAAM;IAOlB,QAAQ,IAAI,iBAAiB,EAAE;IAM/B,QAAQ,IAAI,iBAAiB,EAAE;IAMtC,OAAO,CAAC,WAAW,CAAqC;IACjD,UAAU,IAAI,kBAAkB,EAAE;IAMzC,OAAO,CAAE,QAAQ;IAQV,QAAQ,IAAI,OAAO;IAGnB,YAAY,IAAI,OAAO;IAG9B,IAAW,UAAU,CAAC,KAAK,EAAE,GAAG,EAE/B;CACJ;AAED,eAAe,UAAU,CAAC"}
@@ -7,6 +7,7 @@ const pattern_expression_1 = __importDefault(require("../../graph/pattern_expres
7
7
  const ast_node_1 = __importDefault(require("../ast_node"));
8
8
  const aggregate_function_1 = __importDefault(require("../functions/aggregate_function"));
9
9
  const reference_1 = __importDefault(require("./reference"));
10
+ const subquery_expression_1 = __importDefault(require("./subquery_expression"));
10
11
  /**
11
12
  * Represents an expression in the FlowQuery AST.
12
13
  *
@@ -32,6 +33,7 @@ class Expression extends ast_node_1.default {
32
33
  this._overridden = null;
33
34
  this._reducers = null;
34
35
  this._patterns = null;
36
+ this._subqueries = null;
35
37
  }
36
38
  /**
37
39
  * Adds a node (operand or operator) to the expression.
@@ -127,6 +129,12 @@ class Expression extends ast_node_1.default {
127
129
  }
128
130
  return this._patterns;
129
131
  }
132
+ subqueries() {
133
+ if (this._subqueries === null) {
134
+ this._subqueries = [...this._extract(this, subquery_expression_1.default)];
135
+ }
136
+ return this._subqueries;
137
+ }
130
138
  *_extract(node = this, of_type) {
131
139
  if (node instanceof of_type) {
132
140
  yield node;
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/parsing/expressions/expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/parsing/expressions/expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import ASTNode from "../ast_node";
2
+ export declare enum SubqueryMode {
3
+ EXISTS = "exists",
4
+ COUNT = "count",
5
+ COLLECT = "collect"
6
+ }
7
+ declare class SubqueryExpression extends ASTNode {
8
+ private _mode;
9
+ private _subqueryAST;
10
+ private _results;
11
+ private _rowCount;
12
+ constructor(mode: SubqueryMode, subqueryAST: ASTNode);
13
+ get mode(): SubqueryMode;
14
+ evaluate(): Promise<void>;
15
+ value(): any;
16
+ }
17
+ export default SubqueryExpression;
18
+ //# sourceMappingURL=subquery_expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subquery_expression.d.ts","sourceRoot":"","sources":["../../../src/parsing/expressions/subquery_expression.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,aAAa,CAAC;AAIlC,oBAAY,YAAY;IACpB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;CACtB;AAaD,cAAM,kBAAmB,SAAQ,OAAO;IACpC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAa;gBAElB,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO;IAMpD,IAAW,IAAI,IAAI,YAAY,CAE9B;IAEY,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B/B,KAAK,IAAI,GAAG;CAiBtB;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SubqueryMode = void 0;
16
+ const runner_1 = __importDefault(require("../../compute/runner"));
17
+ const ast_node_1 = __importDefault(require("../ast_node"));
18
+ const operation_1 = __importDefault(require("../operations/operation"));
19
+ const return_1 = __importDefault(require("../operations/return"));
20
+ var SubqueryMode;
21
+ (function (SubqueryMode) {
22
+ SubqueryMode["EXISTS"] = "exists";
23
+ SubqueryMode["COUNT"] = "count";
24
+ SubqueryMode["COLLECT"] = "collect";
25
+ })(SubqueryMode || (exports.SubqueryMode = SubqueryMode = {}));
26
+ /**
27
+ * Counts rows flowing through an operation chain without producing results.
28
+ * Used by SubqueryExpression to evaluate MATCH-only subqueries (no RETURN).
29
+ */
30
+ class RowCounter extends operation_1.default {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.count = 0;
34
+ }
35
+ run() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ this.count++;
38
+ });
39
+ }
40
+ }
41
+ class SubqueryExpression extends ast_node_1.default {
42
+ constructor(mode, subqueryAST) {
43
+ super();
44
+ this._results = [];
45
+ this._rowCount = 0;
46
+ this._mode = mode;
47
+ this._subqueryAST = subqueryAST;
48
+ }
49
+ get mode() {
50
+ return this._mode;
51
+ }
52
+ evaluate() {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ var _a;
55
+ this._results = [];
56
+ this._rowCount = 0;
57
+ const first = this._subqueryAST.firstChild();
58
+ const last = this._subqueryAST.lastChild();
59
+ if (last instanceof return_1.default) {
60
+ const runner = new runner_1.default(null, this._subqueryAST);
61
+ yield runner.run();
62
+ this._results = (_a = runner.results) !== null && _a !== void 0 ? _a : [];
63
+ this._rowCount = this._results.length;
64
+ }
65
+ else {
66
+ // Subquery without RETURN (e.g., EXISTS { MATCH ... })
67
+ const counter = new RowCounter();
68
+ const savedNext = last.next;
69
+ last.next = counter;
70
+ yield first.initialize();
71
+ yield first.run();
72
+ yield first.finish();
73
+ last.next = savedNext;
74
+ this._rowCount = counter.count;
75
+ }
76
+ });
77
+ }
78
+ value() {
79
+ switch (this._mode) {
80
+ case SubqueryMode.EXISTS:
81
+ return this._rowCount > 0;
82
+ case SubqueryMode.COUNT:
83
+ return this._rowCount;
84
+ case SubqueryMode.COLLECT: {
85
+ if (this._results.length === 0)
86
+ return [];
87
+ const keys = Object.keys(this._results[0]);
88
+ if (keys.length !== 1) {
89
+ throw new Error("COLLECT subquery must return exactly one column");
90
+ }
91
+ const key = keys[0];
92
+ return this._results.map((r) => r[key]);
93
+ }
94
+ }
95
+ }
96
+ }
97
+ exports.default = SubqueryExpression;
98
+ //# sourceMappingURL=subquery_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subquery_expression.js","sourceRoot":"","sources":["../../../src/parsing/expressions/subquery_expression.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,11 @@ import "./localtime";
20
20
  import "./max";
21
21
  import "./min";
22
22
  import "./nodes";
23
+ import "./predicate_all";
24
+ import "./predicate_any";
23
25
  import PredicateFunction from "./predicate_function";
26
+ import "./predicate_none";
27
+ import "./predicate_single";
24
28
  import "./predicate_sum";
25
29
  import "./properties";
26
30
  import "./rand";
@@ -74,6 +78,13 @@ declare class FunctionFactory {
74
78
  * @returns True if the function is an async data provider
75
79
  */
76
80
  static isAsyncProvider(name: string): boolean;
81
+ /**
82
+ * Checks if a function name is registered as a predicate function.
83
+ *
84
+ * @param name - The function name (case-insensitive)
85
+ * @returns True if the function is a predicate function
86
+ */
87
+ static hasPredicate(name: string): boolean;
77
88
  /**
78
89
  * Gets metadata for a specific function.
79
90
  *
@@ -1 +1 @@
1
- {"version":3,"file":"function_factory.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/function_factory.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,OAAO,CAAC;AACf,OAAO,YAAY,CAAC;AACpB,OAAO,WAAW,CAAC;AACnB,OAAO,SAAS,CAAC;AACjB,OAAO,QAAQ,CAAC;AAChB,OAAO,YAAY,CAAC;AACpB,OAAO,YAAY,CAAC;AACpB,OAAO,cAAc,CAAC;AACtB,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC;AAChB,OAAO,iBAAiB,CAAC;AACzB,OAAO,aAAa,CAAC;AACrB,OAAO,OAAO,CAAC;AACf,OAAO,OAAO,CAAC;AACf,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,WAAW,CAAC;AACnB,OAAO,SAAS,CAAC;AACjB,OAAO,UAAU,CAAC;AAClB,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,CAAC;AACjB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AAErB,OAAO,OAAO,CAAC;AACf,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC;AAChB,OAAO,aAAa,CAAC;AACrB,OAAO,YAAY,CAAC;AACpB,OAAO,cAAc,CAAC;AACtB,OAAO,WAAW,CAAC;AACnB,OAAO,YAAY,CAAC;AACpB,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC;AAGhB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;;;;;;;;;GAYG;AACH,cAAM,eAAe;IACjB;;;;;OAKG;WACW,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI3E;;;;;OAKG;WACW,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpD;;;;;OAKG;WACW,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIrE;;;;;OAKG;WACW,aAAa,CAAC,OAAO,CAAC,EAAE;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,gBAAgB,EAAE;IAatB;;;;OAIG;WACW,iBAAiB,IAAI,MAAM,EAAE;IAI3C;;;;OAIG;WACW,MAAM,IAAI;QAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;IAQ/E;;;;;OAKG;WACW,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAY5C;;;;;;OAMG;WACW,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;WAYhD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;CAQzD;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"function_factory.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/function_factory.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,OAAO,CAAC;AACf,OAAO,YAAY,CAAC;AACpB,OAAO,WAAW,CAAC;AACnB,OAAO,SAAS,CAAC;AACjB,OAAO,QAAQ,CAAC;AAChB,OAAO,YAAY,CAAC;AACpB,OAAO,YAAY,CAAC;AACpB,OAAO,cAAc,CAAC;AACtB,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC;AAChB,OAAO,iBAAiB,CAAC;AACzB,OAAO,aAAa,CAAC;AACrB,OAAO,OAAO,CAAC;AACf,OAAO,OAAO,CAAC;AACf,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,kBAAkB,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,WAAW,CAAC;AACnB,OAAO,SAAS,CAAC;AACjB,OAAO,UAAU,CAAC;AAClB,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,CAAC;AACjB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AAErB,OAAO,OAAO,CAAC;AACf,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC;AAChB,OAAO,aAAa,CAAC;AACrB,OAAO,YAAY,CAAC;AACpB,OAAO,cAAc,CAAC;AACtB,OAAO,WAAW,CAAC;AACnB,OAAO,YAAY,CAAC;AACpB,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC;AAGhB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;;;;;;;;;GAYG;AACH,cAAM,eAAe;IACjB;;;;;OAKG;WACW,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI3E;;;;;OAKG;WACW,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpD;;;;;OAKG;WACW,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjD;;;;;OAKG;WACW,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIrE;;;;;OAKG;WACW,aAAa,CAAC,OAAO,CAAC,EAAE;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,gBAAgB,EAAE;IAatB;;;;OAIG;WACW,iBAAiB,IAAI,MAAM,EAAE;IAI3C;;;;OAIG;WACW,MAAM,IAAI;QAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;IAQ/E;;;;;OAKG;WACW,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAY5C;;;;;;OAMG;WACW,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;WAYhD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;CAQzD;AAED,eAAe,eAAe,CAAC"}
@@ -20,6 +20,10 @@ require("./localtime");
20
20
  require("./max");
21
21
  require("./min");
22
22
  require("./nodes");
23
+ require("./predicate_all");
24
+ require("./predicate_any");
25
+ require("./predicate_none");
26
+ require("./predicate_single");
23
27
  require("./predicate_sum");
24
28
  require("./properties");
25
29
  require("./rand");
@@ -77,6 +81,15 @@ class FunctionFactory {
77
81
  static isAsyncProvider(name) {
78
82
  return (0, function_metadata_1.getRegisteredFunctionFactory)(name.toLowerCase(), "async") !== undefined;
79
83
  }
84
+ /**
85
+ * Checks if a function name is registered as a predicate function.
86
+ *
87
+ * @param name - The function name (case-insensitive)
88
+ * @returns True if the function is a predicate function
89
+ */
90
+ static hasPredicate(name) {
91
+ return (0, function_metadata_1.getRegisteredFunctionFactory)(name.toLowerCase(), "predicate") !== undefined;
92
+ }
80
93
  /**
81
94
  * Gets metadata for a specific function.
82
95
  *
@@ -1 +1 @@
1
- {"version":3,"file":"function_factory.js","sourceRoot":"","sources":["../../../src/parsing/functions/function_factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function_factory.js","sourceRoot":"","sources":["../../../src/parsing/functions/function_factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import PredicateFunction from "./predicate_function";
2
+ declare class PredicateAll extends PredicateFunction {
3
+ constructor();
4
+ value(): any;
5
+ }
6
+ export default PredicateAll;
7
+ //# sourceMappingURL=predicate_all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate_all.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_all.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,cAuBM,YAAa,SAAQ,iBAAiB;;IAKjC,KAAK,IAAI,GAAG;CActB;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const function_metadata_1 = require("./function_metadata");
13
+ const predicate_function_1 = __importDefault(require("./predicate_function"));
14
+ let PredicateAll = class PredicateAll extends predicate_function_1.default {
15
+ constructor() {
16
+ super("all");
17
+ }
18
+ value() {
19
+ this.reference.referred = this._valueHolder;
20
+ const array = this.array.value();
21
+ if (array === null || !Array.isArray(array)) {
22
+ return true;
23
+ }
24
+ for (let i = 0; i < array.length; i++) {
25
+ this._valueHolder.holder = array[i];
26
+ if (this.where !== null && !this.where.value()) {
27
+ return false;
28
+ }
29
+ }
30
+ return true;
31
+ }
32
+ };
33
+ PredicateAll = __decorate([
34
+ (0, function_metadata_1.FunctionDef)({
35
+ description: "Returns true if all elements in the list satisfy the condition. Uses syntax: all(variable IN list WHERE condition)",
36
+ category: "predicate",
37
+ parameters: [
38
+ { name: "variable", description: "Variable name to bind each element", type: "string" },
39
+ { name: "list", description: "List to iterate over", type: "array" },
40
+ {
41
+ name: "where",
42
+ description: "Condition to test for each element",
43
+ type: "boolean",
44
+ },
45
+ ],
46
+ output: {
47
+ description: "True if all elements satisfy the condition",
48
+ type: "boolean",
49
+ example: true,
50
+ },
51
+ examples: [
52
+ "RETURN all(n IN [2, 4, 6] WHERE n > 0)",
53
+ "WITH [1, 2, 3] AS nums RETURN all(n IN nums WHERE n > 0)",
54
+ ],
55
+ })
56
+ ], PredicateAll);
57
+ exports.default = PredicateAll;
58
+ //# sourceMappingURL=predicate_all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate_all.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_all.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAAkD;AAClD,8EAAqD;AAyBrD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAiB;IACxC;QACI,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAnBK,YAAY;IAvBjB,IAAA,+BAAW,EAAC;QACT,WAAW,EACP,oHAAoH;QACxH,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvF,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE;YACpE;gBACI,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,oCAAoC;gBACjD,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,MAAM,EAAE;YACJ,WAAW,EAAE,4CAA4C;YACzD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SAChB;QACD,QAAQ,EAAE;YACN,wCAAwC;YACxC,0DAA0D;SAC7D;KACJ,CAAC;GACI,YAAY,CAmBjB;AAED,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import PredicateFunction from "./predicate_function";
2
+ declare class PredicateAny extends PredicateFunction {
3
+ constructor();
4
+ value(): any;
5
+ }
6
+ export default PredicateAny;
7
+ //# sourceMappingURL=predicate_any.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate_any.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_any.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,cAuBM,YAAa,SAAQ,iBAAiB;;IAKjC,KAAK,IAAI,GAAG;CActB;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const function_metadata_1 = require("./function_metadata");
13
+ const predicate_function_1 = __importDefault(require("./predicate_function"));
14
+ let PredicateAny = class PredicateAny extends predicate_function_1.default {
15
+ constructor() {
16
+ super("any");
17
+ }
18
+ value() {
19
+ this.reference.referred = this._valueHolder;
20
+ const array = this.array.value();
21
+ if (array === null || !Array.isArray(array)) {
22
+ return false;
23
+ }
24
+ for (let i = 0; i < array.length; i++) {
25
+ this._valueHolder.holder = array[i];
26
+ if (this.where !== null && this.where.value()) {
27
+ return true;
28
+ }
29
+ }
30
+ return false;
31
+ }
32
+ };
33
+ PredicateAny = __decorate([
34
+ (0, function_metadata_1.FunctionDef)({
35
+ description: "Returns true if at least one element in the list satisfies the condition. Uses syntax: any(variable IN list WHERE condition)",
36
+ category: "predicate",
37
+ parameters: [
38
+ { name: "variable", description: "Variable name to bind each element", type: "string" },
39
+ { name: "list", description: "List to iterate over", type: "array" },
40
+ {
41
+ name: "where",
42
+ description: "Condition to test for each element",
43
+ type: "boolean",
44
+ },
45
+ ],
46
+ output: {
47
+ description: "True if any element satisfies the condition",
48
+ type: "boolean",
49
+ example: true,
50
+ },
51
+ examples: [
52
+ "RETURN any(n IN [1, 2, 3] WHERE n > 2)",
53
+ "WITH [1, -1, 2] AS nums RETURN any(n IN nums WHERE n < 0)",
54
+ ],
55
+ })
56
+ ], PredicateAny);
57
+ exports.default = PredicateAny;
58
+ //# sourceMappingURL=predicate_any.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate_any.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_any.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAAkD;AAClD,8EAAqD;AAyBrD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAiB;IACxC;QACI,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAnBK,YAAY;IAvBjB,IAAA,+BAAW,EAAC;QACT,WAAW,EACP,8HAA8H;QAClI,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvF,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE;YACpE;gBACI,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,oCAAoC;gBACjD,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,MAAM,EAAE;YACJ,WAAW,EAAE,6CAA6C;YAC1D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SAChB;QACD,QAAQ,EAAE;YACN,wCAAwC;YACxC,2DAA2D;SAC9D;KACJ,CAAC;GACI,YAAY,CAmBjB;AAED,kBAAe,YAAY,CAAC"}
@@ -6,11 +6,14 @@ import ValueHolder from "./value_holder";
6
6
  declare class PredicateFunction extends ASTNode {
7
7
  private _name;
8
8
  protected _valueHolder: ValueHolder;
9
+ private _hasReturnExpression;
9
10
  constructor(name?: string);
10
11
  get name(): string;
12
+ get hasReturnExpression(): boolean;
13
+ set hasReturnExpression(value: boolean);
11
14
  protected get reference(): Reference;
12
15
  protected get array(): ASTNode;
13
- protected get _return(): Expression;
16
+ protected get _return(): Expression | null;
14
17
  protected get where(): Where | null;
15
18
  value(): any;
16
19
  toString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"predicate_function.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_function.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,cAAM,iBAAkB,SAAQ,OAAO;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,SAAS,CAAC,YAAY,EAAE,WAAW,CAAqB;gBAE5C,IAAI,CAAC,EAAE,MAAM;IAKzB,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,SAAS,KAAK,SAAS,IAAI,SAAS,CAEnC;IAED,SAAS,KAAK,KAAK,IAAI,OAAO,CAE7B;IAED,SAAS,KAAK,OAAO,IAAI,UAAU,CAElC;IAED,SAAS,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAKlC;IAEM,KAAK,IAAI,GAAG;IAIZ,QAAQ,IAAI,MAAM;CAG5B;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"predicate_function.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_function.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,cAAM,iBAAkB,SAAQ,OAAO;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,SAAS,CAAC,YAAY,EAAE,WAAW,CAAqB;IACxD,OAAO,CAAC,oBAAoB,CAAiB;gBAEjC,IAAI,CAAC,EAAE,MAAM;IAKzB,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,mBAAmB,IAAI,OAAO,CAExC;IAED,IAAW,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAE5C;IAED,SAAS,KAAK,SAAS,IAAI,SAAS,CAEnC;IAED,SAAS,KAAK,KAAK,IAAI,OAAO,CAE7B;IAED,SAAS,KAAK,OAAO,IAAI,UAAU,GAAG,IAAI,CAGzC;IAED,SAAS,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAWlC;IAEM,KAAK,IAAI,GAAG;IAIZ,QAAQ,IAAI,MAAM;CAG5B;AAED,eAAe,iBAAiB,CAAC"}
@@ -9,11 +9,18 @@ class PredicateFunction extends ast_node_1.default {
9
9
  constructor(name) {
10
10
  super();
11
11
  this._valueHolder = new value_holder_1.default();
12
+ this._hasReturnExpression = true;
12
13
  this._name = name || this.constructor.name;
13
14
  }
14
15
  get name() {
15
16
  return this._name;
16
17
  }
18
+ get hasReturnExpression() {
19
+ return this._hasReturnExpression;
20
+ }
21
+ set hasReturnExpression(value) {
22
+ this._hasReturnExpression = value;
23
+ }
17
24
  get reference() {
18
25
  return this.firstChild();
19
26
  }
@@ -21,11 +28,20 @@ class PredicateFunction extends ast_node_1.default {
21
28
  return this.getChildren()[1].firstChild();
22
29
  }
23
30
  get _return() {
31
+ if (!this._hasReturnExpression)
32
+ return null;
24
33
  return this.getChildren()[2];
25
34
  }
26
35
  get where() {
27
- if (this.getChildren().length === 4) {
28
- return this.getChildren()[3];
36
+ if (this._hasReturnExpression) {
37
+ if (this.getChildren().length === 4) {
38
+ return this.getChildren()[3];
39
+ }
40
+ }
41
+ else {
42
+ if (this.getChildren().length === 3) {
43
+ return this.getChildren()[2];
44
+ }
29
45
  }
30
46
  return null;
31
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"predicate_function.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_function.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAIlC,kEAAyC;AAEzC,MAAM,iBAAkB,SAAQ,kBAAO;IAInC,YAAY,IAAa;QACrB,KAAK,EAAE,CAAC;QAHF,iBAAY,GAAgB,IAAI,sBAAW,EAAE,CAAC;QAIpD,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAc,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,EAAe,CAAC;IAC1C,CAAC;IAED,IAAc,KAAK;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IAED,IAAc,OAAO;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAe,CAAC;IAC/C,CAAC;IAED,IAAc,KAAK;QACf,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAU,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACX,OAAO,sBAAsB,IAAI,CAAC,KAAK,GAAG,CAAC;IAC/C,CAAC;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"predicate_function.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_function.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAIlC,kEAAyC;AAEzC,MAAM,iBAAkB,SAAQ,kBAAO;IAKnC,YAAY,IAAa;QACrB,KAAK,EAAE,CAAC;QAJF,iBAAY,GAAgB,IAAI,sBAAW,EAAE,CAAC;QAChD,yBAAoB,GAAY,IAAI,CAAC;QAIzC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,IAAW,mBAAmB,CAAC,KAAc;QACzC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACtC,CAAC;IAED,IAAc,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,EAAe,CAAC;IAC1C,CAAC;IAED,IAAc,KAAK;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IAED,IAAc,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QAC5C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAe,CAAC;IAC/C,CAAC;IAED,IAAc,KAAK;QACf,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAU,CAAC;YAC1C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAU,CAAC;YAC1C,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACX,OAAO,sBAAsB,IAAI,CAAC,KAAK,GAAG,CAAC;IAC/C,CAAC;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import PredicateFunction from "./predicate_function";
2
+ declare class PredicateNone extends PredicateFunction {
3
+ constructor();
4
+ value(): any;
5
+ }
6
+ export default PredicateNone;
7
+ //# sourceMappingURL=predicate_none.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate_none.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_none.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,cAuBM,aAAc,SAAQ,iBAAiB;;IAKlC,KAAK,IAAI,GAAG;CActB;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const function_metadata_1 = require("./function_metadata");
13
+ const predicate_function_1 = __importDefault(require("./predicate_function"));
14
+ let PredicateNone = class PredicateNone extends predicate_function_1.default {
15
+ constructor() {
16
+ super("none");
17
+ }
18
+ value() {
19
+ this.reference.referred = this._valueHolder;
20
+ const array = this.array.value();
21
+ if (array === null || !Array.isArray(array)) {
22
+ return true;
23
+ }
24
+ for (let i = 0; i < array.length; i++) {
25
+ this._valueHolder.holder = array[i];
26
+ if (this.where !== null && this.where.value()) {
27
+ return false;
28
+ }
29
+ }
30
+ return true;
31
+ }
32
+ };
33
+ PredicateNone = __decorate([
34
+ (0, function_metadata_1.FunctionDef)({
35
+ description: "Returns true if no element in the list satisfies the condition. Uses syntax: none(variable IN list WHERE condition)",
36
+ category: "predicate",
37
+ parameters: [
38
+ { name: "variable", description: "Variable name to bind each element", type: "string" },
39
+ { name: "list", description: "List to iterate over", type: "array" },
40
+ {
41
+ name: "where",
42
+ description: "Condition to test for each element",
43
+ type: "boolean",
44
+ },
45
+ ],
46
+ output: {
47
+ description: "True if no element satisfies the condition",
48
+ type: "boolean",
49
+ example: true,
50
+ },
51
+ examples: [
52
+ "RETURN none(n IN [1, 2, 3] WHERE n > 5)",
53
+ "WITH [1, 2, 3] AS nums RETURN none(n IN nums WHERE n < 0)",
54
+ ],
55
+ })
56
+ ], PredicateNone);
57
+ exports.default = PredicateNone;
58
+ //# sourceMappingURL=predicate_none.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate_none.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_none.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAAkD;AAClD,8EAAqD;AAyBrD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,4BAAiB;IACzC;QACI,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAnBK,aAAa;IAvBlB,IAAA,+BAAW,EAAC;QACT,WAAW,EACP,qHAAqH;QACzH,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvF,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE;YACpE;gBACI,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,oCAAoC;gBACjD,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,MAAM,EAAE;YACJ,WAAW,EAAE,4CAA4C;YACzD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SAChB;QACD,QAAQ,EAAE;YACN,yCAAyC;YACzC,2DAA2D;SAC9D;KACJ,CAAC;GACI,aAAa,CAmBlB;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ import PredicateFunction from "./predicate_function";
2
+ declare class PredicateSingle extends PredicateFunction {
3
+ constructor();
4
+ value(): any;
5
+ }
6
+ export default PredicateSingle;
7
+ //# sourceMappingURL=predicate_single.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate_single.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_single.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,cAuBM,eAAgB,SAAQ,iBAAiB;;IAKpC,KAAK,IAAI,GAAG;CAgBtB;AAED,eAAe,eAAe,CAAC"}