flowquery 1.0.37 → 1.0.39

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 (51) hide show
  1. package/dist/flowquery.min.js +1 -1
  2. package/dist/parsing/expressions/operator.js +4 -4
  3. package/dist/parsing/expressions/operator.js.map +1 -1
  4. package/dist/parsing/operations/aggregated_return.d.ts.map +1 -1
  5. package/dist/parsing/operations/aggregated_return.js +6 -2
  6. package/dist/parsing/operations/aggregated_return.js.map +1 -1
  7. package/dist/parsing/operations/group_by.d.ts.map +1 -1
  8. package/dist/parsing/operations/group_by.js +3 -2
  9. package/dist/parsing/operations/group_by.js.map +1 -1
  10. package/dist/parsing/operations/limit.d.ts +3 -0
  11. package/dist/parsing/operations/limit.d.ts.map +1 -1
  12. package/dist/parsing/operations/limit.js +9 -0
  13. package/dist/parsing/operations/limit.js.map +1 -1
  14. package/dist/parsing/operations/order_by.d.ts +35 -0
  15. package/dist/parsing/operations/order_by.d.ts.map +1 -0
  16. package/dist/parsing/operations/order_by.js +87 -0
  17. package/dist/parsing/operations/order_by.js.map +1 -0
  18. package/dist/parsing/operations/return.d.ts +6 -0
  19. package/dist/parsing/operations/return.d.ts.map +1 -1
  20. package/dist/parsing/operations/return.js +24 -1
  21. package/dist/parsing/operations/return.js.map +1 -1
  22. package/dist/parsing/parser.d.ts +1 -0
  23. package/dist/parsing/parser.d.ts.map +1 -1
  24. package/dist/parsing/parser.js +67 -10
  25. package/dist/parsing/parser.js.map +1 -1
  26. package/dist/tokenization/token.d.ts +8 -0
  27. package/dist/tokenization/token.d.ts.map +1 -1
  28. package/dist/tokenization/token.js +24 -0
  29. package/dist/tokenization/token.js.map +1 -1
  30. package/docs/flowquery.min.js +1 -1
  31. package/flowquery-py/pyproject.toml +1 -1
  32. package/flowquery-py/src/parsing/expressions/operator.py +4 -4
  33. package/flowquery-py/src/parsing/operations/__init__.py +3 -0
  34. package/flowquery-py/src/parsing/operations/aggregated_return.py +4 -1
  35. package/flowquery-py/src/parsing/operations/limit.py +11 -0
  36. package/flowquery-py/src/parsing/operations/order_by.py +72 -0
  37. package/flowquery-py/src/parsing/operations/return_op.py +32 -1
  38. package/flowquery-py/src/parsing/parser.py +57 -9
  39. package/flowquery-py/src/tokenization/token.py +28 -0
  40. package/flowquery-py/tests/compute/test_runner.py +238 -1
  41. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/parsing/expressions/operator.ts +4 -4
  44. package/src/parsing/operations/aggregated_return.ts +9 -5
  45. package/src/parsing/operations/group_by.ts +4 -2
  46. package/src/parsing/operations/limit.ts +10 -1
  47. package/src/parsing/operations/order_by.ts +75 -0
  48. package/src/parsing/operations/return.ts +26 -1
  49. package/src/parsing/parser.ts +64 -10
  50. package/src/tokenization/token.ts +32 -0
  51. package/tests/compute/runner.test.ts +211 -0
@@ -208,7 +208,7 @@ class Not extends Operator {
208
208
  exports.Not = Not;
209
209
  class Is extends Operator {
210
210
  constructor() {
211
- super(-1, true);
211
+ super(0, true);
212
212
  }
213
213
  value() {
214
214
  return this.lhs.value() == this.rhs.value() ? 1 : 0;
@@ -217,7 +217,7 @@ class Is extends Operator {
217
217
  exports.Is = Is;
218
218
  class IsNot extends Operator {
219
219
  constructor() {
220
- super(-1, true);
220
+ super(0, true);
221
221
  }
222
222
  value() {
223
223
  return this.lhs.value() != this.rhs.value() ? 1 : 0;
@@ -226,7 +226,7 @@ class IsNot extends Operator {
226
226
  exports.IsNot = IsNot;
227
227
  class In extends Operator {
228
228
  constructor() {
229
- super(-1, true);
229
+ super(0, true);
230
230
  }
231
231
  value() {
232
232
  const list = this.rhs.value();
@@ -239,7 +239,7 @@ class In extends Operator {
239
239
  exports.In = In;
240
240
  class NotIn extends Operator {
241
241
  constructor() {
242
- super(-1, true);
242
+ super(0, true);
243
243
  }
244
244
  value() {
245
245
  const list = this.rhs.value();
@@ -1 +1 @@
1
- {"version":3,"file":"operator.js","sourceRoot":"","sources":["../../../src/parsing/expressions/operator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator.js","sourceRoot":"","sources":["../../../src/parsing/expressions/operator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregated_return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/aggregated_return.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAI9B,cAAM,gBAAiB,SAAQ,MAAM;IACjC,OAAO,CAAC,SAAS,CAAuD;IAC3D,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAK1C;CACJ;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"aggregated_return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/aggregated_return.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,cAAM,gBAAiB,SAAQ,MAAM;IACjC,OAAO,CAAC,SAAS,CAAuD;IAC3D,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAS1C;CACJ;AAED,eAAe,gBAAgB,CAAC"}
@@ -12,8 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const return_1 = __importDefault(require("./return"));
16
15
  const group_by_1 = __importDefault(require("./group_by"));
16
+ const return_1 = __importDefault(require("./return"));
17
17
  class AggregatedReturn extends return_1.default {
18
18
  constructor() {
19
19
  super(...arguments);
@@ -28,7 +28,11 @@ class AggregatedReturn extends return_1.default {
28
28
  if (this._where !== null) {
29
29
  this._group_by.where = this._where;
30
30
  }
31
- return Array.from(this._group_by.generate_results());
31
+ const results = Array.from(this._group_by.generate_results());
32
+ if (this._orderBy !== null) {
33
+ return this._orderBy.sort(results);
34
+ }
35
+ return results;
32
36
  }
33
37
  }
34
38
  exports.default = AggregatedReturn;
@@ -1 +1 @@
1
- {"version":3,"file":"aggregated_return.js","sourceRoot":"","sources":["../../../src/parsing/operations/aggregated_return.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,0DAAiC;AAGjC,MAAM,gBAAiB,SAAQ,gBAAM;IAArC;;QACY,cAAS,GAAY,IAAI,kBAAO,CAAC,IAAI,CAAC,QAAwB,CAAC,CAAC;IAU5E,CAAC;IATgB,GAAG;;YACZ,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;KAAA;IACD,IAAW,OAAO;QACd,IAAG,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzD,CAAC;CACJ;AAED,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"aggregated_return.js","sourceRoot":"","sources":["../../../src/parsing/operations/aggregated_return.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,0DAAiC;AACjC,sDAA8B;AAE9B,MAAM,gBAAiB,SAAQ,gBAAM;IAArC;;QACY,cAAS,GAAY,IAAI,kBAAO,CAAC,IAAI,CAAC,QAAwB,CAAC,CAAC;IAc5E,CAAC;IAbgB,GAAG;;YACZ,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;KAAA;IACD,IAAW,OAAO;QACd,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAED,kBAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"group_by.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/group_by.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,cAAM,IAAI;IACN,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,SAAS,CAAqC;gBAC1C,KAAK,GAAE,GAAU;IAG7B,IAAW,KAAK,IAAI,GAAG,CAEtB;IACD,IAAW,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAEvC;IACD,IAAW,QAAQ,IAAI,kBAAkB,EAAE,GAAG,IAAI,CAEjD;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAEjD;CACJ;AAED,cAAM,OAAQ,SAAQ,UAAU;IAC5B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,SAAS,CAAoC;IACrD,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACzB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,OAAO,KAAK,IAAI,GAEf;IACD,OAAO,KAAK,OAAO,GAElB;IACD,OAAO,KAAK,OAAO,QAElB;IACD,OAAO,CAAC,SAAS;IAGjB,OAAO,CAAC,GAAG;IAaX,OAAO,CAAC,MAAM;IASd,OAAO,KAAK,OAAO,GAKlB;IACD,OAAO,CAAE,iBAAiB;IAO1B,OAAO,KAAK,QAAQ,GASnB;IACO,gBAAgB,CACpB,WAAW,GAAE,MAAU,EACvB,IAAI,GAAE,IAAgB,GACvB,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAyBjC,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;CACJ;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"group_by.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/group_by.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,cAAM,IAAI;IACN,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,SAAS,CAAqC;gBAC1C,KAAK,GAAE,GAAU;IAG7B,IAAW,KAAK,IAAI,GAAG,CAEtB;IACD,IAAW,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAEvC;IACD,IAAW,QAAQ,IAAI,kBAAkB,EAAE,GAAG,IAAI,CAEjD;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAEjD;CACJ;AAED,cAAM,OAAQ,SAAQ,UAAU;IAC5B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,SAAS,CAAoC;IACrD,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACzB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,OAAO,KAAK,IAAI,GAEf;IACD,OAAO,KAAK,OAAO,GAElB;IACD,OAAO,KAAK,OAAO,QAElB;IACD,OAAO,CAAC,SAAS;IAGjB,OAAO,CAAC,GAAG;IAeX,OAAO,CAAC,MAAM;IASd,OAAO,KAAK,OAAO,GAKlB;IACD,OAAO,CAAE,iBAAiB;IAO1B,OAAO,KAAK,QAAQ,GASnB;IACO,gBAAgB,CACpB,WAAW,GAAE,MAAU,EACvB,IAAI,GAAE,IAAgB,GACvB,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAyBjC,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;CACJ;AAED,eAAe,OAAO,CAAC"}
@@ -64,10 +64,11 @@ class GroupBy extends projection_1.default {
64
64
  let node = this.current;
65
65
  for (const mapper of this.mappers) {
66
66
  const value = mapper.value();
67
- let child = node.children.get(value);
67
+ const key = typeof value === "object" && value !== null ? JSON.stringify(value) : String(value);
68
+ let child = node.children.get(key);
68
69
  if (child === undefined) {
69
70
  child = new Node(value);
70
- node.children.set(value, child);
71
+ node.children.set(key, child);
71
72
  }
72
73
  node = child;
73
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"group_by.js","sourceRoot":"","sources":["../../../src/parsing/operations/group_by.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group_by.js","sourceRoot":"","sources":["../../../src/parsing/operations/group_by.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@ declare class Limit extends Operation {
3
3
  private count;
4
4
  private limit;
5
5
  constructor(limit: number);
6
+ get isLimitReached(): boolean;
7
+ get limitValue(): number;
8
+ increment(): void;
6
9
  run(): Promise<void>;
7
10
  reset(): void;
8
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,KAAM,SAAQ,SAAS;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAa;gBACd,KAAK,EAAE,MAAM;IAIZ,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,KAAK,IAAI,IAAI;CAGvB;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,KAAM,SAAQ,SAAS;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAa;gBACd,KAAK,EAAE,MAAM;IAIzB,IAAW,cAAc,IAAI,OAAO,CAEnC;IACD,IAAW,UAAU,IAAI,MAAM,CAE9B;IACM,SAAS,IAAI,IAAI;IAGX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,KAAK,IAAI,IAAI;CAGvB;AAED,eAAe,KAAK,CAAC"}
@@ -20,6 +20,15 @@ class Limit extends operation_1.default {
20
20
  this.limit = 0;
21
21
  this.limit = limit;
22
22
  }
23
+ get isLimitReached() {
24
+ return this.count >= this.limit;
25
+ }
26
+ get limitValue() {
27
+ return this.limit;
28
+ }
29
+ increment() {
30
+ this.count++;
31
+ }
23
32
  run() {
24
33
  return __awaiter(this, void 0, void 0, function* () {
25
34
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"limit.js","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,MAAM,KAAM,SAAQ,mBAAS;IAGzB,YAAY,KAAa;QACrB,KAAK,EAAE,CAAC;QAHJ,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACY,GAAG;;;YACZ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,OAAO;YACX,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;QAC3B,CAAC;KAAA;IACM,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AAED,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"limit.js","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,MAAM,KAAM,SAAQ,mBAAS;IAGzB,YAAY,KAAa;QACrB,KAAK,EAAE,CAAC;QAHJ,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACM,SAAS;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IACY,GAAG;;;YACZ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,OAAO;YACX,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;QAC3B,CAAC;KAAA;IACM,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AAED,kBAAe,KAAK,CAAC"}
@@ -0,0 +1,35 @@
1
+ import Operation from "./operation";
2
+ export interface SortField {
3
+ field: string;
4
+ direction: "asc" | "desc";
5
+ }
6
+ /**
7
+ * Represents an ORDER BY operation that sorts results.
8
+ *
9
+ * Can be attached to a RETURN operation (sorting its results),
10
+ * or used as a standalone accumulating operation after a non-aggregate WITH.
11
+ *
12
+ * @example
13
+ * ```
14
+ * RETURN x ORDER BY x DESC
15
+ * ```
16
+ */
17
+ declare class OrderBy extends Operation {
18
+ private _fields;
19
+ private _results;
20
+ constructor(fields: SortField[]);
21
+ get fields(): SortField[];
22
+ /**
23
+ * Sorts an array of records according to the sort fields.
24
+ */
25
+ sort(records: Record<string, any>[]): Record<string, any>[];
26
+ /**
27
+ * When used as a standalone operation (after non-aggregate WITH),
28
+ * accumulates records to sort later.
29
+ */
30
+ run(): Promise<void>;
31
+ initialize(): Promise<void>;
32
+ get results(): Record<string, any>[];
33
+ }
34
+ export default OrderBy;
35
+ //# sourceMappingURL=order_by.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order_by.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/order_by.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,cAAM,OAAQ,SAAQ,SAAS;IAC3B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,MAAM,EAAE,SAAS,EAAE;IAK/B,IAAW,MAAM,IAAI,SAAS,EAAE,CAE/B;IAED;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;IAmBlE;;;OAGG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,87 @@
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
+ const operation_1 = __importDefault(require("./operation"));
16
+ /**
17
+ * Represents an ORDER BY operation that sorts results.
18
+ *
19
+ * Can be attached to a RETURN operation (sorting its results),
20
+ * or used as a standalone accumulating operation after a non-aggregate WITH.
21
+ *
22
+ * @example
23
+ * ```
24
+ * RETURN x ORDER BY x DESC
25
+ * ```
26
+ */
27
+ class OrderBy extends operation_1.default {
28
+ constructor(fields) {
29
+ super();
30
+ this._results = [];
31
+ this._fields = fields;
32
+ }
33
+ get fields() {
34
+ return this._fields;
35
+ }
36
+ /**
37
+ * Sorts an array of records according to the sort fields.
38
+ */
39
+ sort(records) {
40
+ return records.sort((a, b) => {
41
+ for (const { field, direction } of this._fields) {
42
+ const aVal = a[field];
43
+ const bVal = b[field];
44
+ let cmp = 0;
45
+ if (aVal == null && bVal == null)
46
+ cmp = 0;
47
+ else if (aVal == null)
48
+ cmp = -1;
49
+ else if (bVal == null)
50
+ cmp = 1;
51
+ else if (aVal < bVal)
52
+ cmp = -1;
53
+ else if (aVal > bVal)
54
+ cmp = 1;
55
+ if (cmp !== 0) {
56
+ return direction === "desc" ? -cmp : cmp;
57
+ }
58
+ }
59
+ return 0;
60
+ });
61
+ }
62
+ /**
63
+ * When used as a standalone operation (after non-aggregate WITH),
64
+ * accumulates records to sort later.
65
+ */
66
+ run() {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ var _a;
69
+ const record = {};
70
+ // Collect current variable values from the context
71
+ // This gets called per-row, and then finish() sorts and emits
72
+ yield ((_a = this.next) === null || _a === void 0 ? void 0 : _a.run());
73
+ });
74
+ }
75
+ initialize() {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ var _a;
78
+ this._results = [];
79
+ yield ((_a = this.next) === null || _a === void 0 ? void 0 : _a.initialize());
80
+ });
81
+ }
82
+ get results() {
83
+ return this._results;
84
+ }
85
+ }
86
+ exports.default = OrderBy;
87
+ //# sourceMappingURL=order_by.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order_by.js","sourceRoot":"","sources":["../../../src/parsing/operations/order_by.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAOpC;;;;;;;;;;GAUG;AACH,MAAM,OAAQ,SAAQ,mBAAS;IAI3B,YAAY,MAAmB;QAC3B,KAAK,EAAE,CAAC;QAHJ,aAAQ,GAA0B,EAAE,CAAC;QAIzC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAA8B;QACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACzB,KAAK,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtB,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;oBAAE,GAAG,GAAG,CAAC,CAAC;qBACrC,IAAI,IAAI,IAAI,IAAI;oBAAE,GAAG,GAAG,CAAC,CAAC,CAAC;qBAC3B,IAAI,IAAI,IAAI,IAAI;oBAAE,GAAG,GAAG,CAAC,CAAC;qBAC1B,IAAI,IAAI,GAAG,IAAI;oBAAE,GAAG,GAAG,CAAC,CAAC,CAAC;qBAC1B,IAAI,IAAI,GAAG,IAAI;oBAAE,GAAG,GAAG,CAAC,CAAC;gBAC9B,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;oBACZ,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC7C,CAAC;YACL,CAAC;YACD,OAAO,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACU,GAAG;;;YACZ,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,mDAAmD;YACnD,8DAA8D;YAC9D,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;QAC3B,CAAC;KAAA;IAEY,UAAU;;;YACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,EAAE,CAAA,CAAC;QAClC,CAAC;KAAA;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAED,kBAAe,OAAO,CAAC"}
@@ -1,3 +1,5 @@
1
+ import Limit from "./limit";
2
+ import OrderBy from "./order_by";
1
3
  import Projection from "./projection";
2
4
  import Where from "./where";
3
5
  /**
@@ -14,8 +16,12 @@ import Where from "./where";
14
16
  declare class Return extends Projection {
15
17
  protected _where: Where | null;
16
18
  protected _results: Record<string, any>[];
19
+ private _limit;
20
+ protected _orderBy: OrderBy | null;
17
21
  set where(where: Where);
18
22
  get where(): boolean;
23
+ set limit(limit: Limit);
24
+ set orderBy(orderBy: OrderBy);
19
25
  run(): Promise<void>;
20
26
  initialize(): Promise<void>;
21
27
  get results(): Record<string, any>[];
@@ -1 +1 @@
1
- {"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;IAC/C,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAYpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAGxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;IAC/C,OAAO,CAAC,MAAM,CAAsB;IACpC,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC1C,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,OAAO,CAAC,OAAO,EAAE,OAAO,EAElC;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAGxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAS1C;CACJ;AAED,eAAe,MAAM,CAAC"}
@@ -29,6 +29,8 @@ class Return extends projection_1.default {
29
29
  super(...arguments);
30
30
  this._where = null;
31
31
  this._results = [];
32
+ this._limit = null;
33
+ this._orderBy = null;
32
34
  }
33
35
  set where(where) {
34
36
  this._where = where;
@@ -39,11 +41,22 @@ class Return extends projection_1.default {
39
41
  }
40
42
  return this._where.value();
41
43
  }
44
+ set limit(limit) {
45
+ this._limit = limit;
46
+ }
47
+ set orderBy(orderBy) {
48
+ this._orderBy = orderBy;
49
+ }
42
50
  run() {
43
51
  return __awaiter(this, void 0, void 0, function* () {
44
52
  if (!this.where) {
45
53
  return;
46
54
  }
55
+ // When ORDER BY is present, skip limit during accumulation;
56
+ // limit will be applied after sorting in get results()
57
+ if (this._orderBy === null && this._limit !== null && this._limit.isLimitReached) {
58
+ return;
59
+ }
47
60
  const record = new Map();
48
61
  for (const [expression, alias] of this.expressions()) {
49
62
  const raw = expression.value();
@@ -51,6 +64,9 @@ class Return extends projection_1.default {
51
64
  record.set(alias, value);
52
65
  }
53
66
  this._results.push(Object.fromEntries(record));
67
+ if (this._orderBy === null && this._limit !== null) {
68
+ this._limit.increment();
69
+ }
54
70
  });
55
71
  }
56
72
  initialize() {
@@ -59,7 +75,14 @@ class Return extends projection_1.default {
59
75
  });
60
76
  }
61
77
  get results() {
62
- return this._results;
78
+ let results = this._results;
79
+ if (this._orderBy !== null) {
80
+ results = this._orderBy.sort(results);
81
+ }
82
+ if (this._orderBy !== null && this._limit !== null) {
83
+ results = results.slice(0, this._limit.limitValue);
84
+ }
85
+ return results;
63
86
  }
64
87
  }
65
88
  exports.default = Return;
@@ -1 +1 @@
1
- {"version":3,"file":"return.js","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8DAAsC;AAGtC;;;;;;;;;;GAUG;AACH,MAAM,MAAO,SAAQ,oBAAU;IAA/B;;QACc,WAAM,GAAiB,IAAI,CAAC;QAC5B,aAAQ,GAA0B,EAAE,CAAC;IA4BnD,CAAC;IA3BG,IAAW,KAAK,CAAC,KAAY;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,IAAW,KAAK;QACZ,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IACY,GAAG;;YACZ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO;YACX,CAAC;YACD,MAAM,MAAM,GAAqB,IAAI,GAAG,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAQ,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxF,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;KAAA;IACY,UAAU;;YACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACvB,CAAC;KAAA;IACD,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAED,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"return.js","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,8DAAsC;AAGtC;;;;;;;;;;GAUG;AACH,MAAM,MAAO,SAAQ,oBAAU;IAA/B;;QACc,WAAM,GAAiB,IAAI,CAAC;QAC5B,aAAQ,GAA0B,EAAE,CAAC;QACvC,WAAM,GAAiB,IAAI,CAAC;QAC1B,aAAQ,GAAmB,IAAI,CAAC;IAiD9C,CAAC;IAhDG,IAAW,KAAK,CAAC,KAAY;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,IAAW,KAAK;QACZ,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IACD,IAAW,KAAK,CAAC,KAAY;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,IAAW,OAAO,CAAC,OAAgB;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IACY,GAAG;;YACZ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO;YACX,CAAC;YACD,4DAA4D;YAC5D,uDAAuD;YACvD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/E,OAAO;YACX,CAAC;YACD,MAAM,MAAM,GAAqB,IAAI,GAAG,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAQ,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxF,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC5B,CAAC;QACL,CAAC;KAAA;IACY,UAAU;;YACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACvB,CAAC;KAAA;IACD,IAAW,OAAO;QACd,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACjD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAED,kBAAe,MAAM,CAAC"}
@@ -47,6 +47,7 @@ declare class Parser extends BaseParser {
47
47
  private parseRelationshipHops;
48
48
  private parseSubQuery;
49
49
  private parseLimit;
50
+ private parseOrderBy;
50
51
  private parseExpressions;
51
52
  /**
52
53
  * Parse a single operand (without operators).
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parsing/parser.ts"],"names":[],"mappings":"AAWA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,eAAe,CAAC;AAuDvC;;;;;;;;;;;;GAYG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,OAAO,CAAC,MAAM,CAAkC;IAEhD;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKxC,OAAO,CAAC,eAAe;IA8EvB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,SAAS;IAoEjB,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,WAAW;IAgEnB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,SAAS;IAuDjB,OAAO,CAAE,eAAe;IAyCxB,OAAO,CAAE,aAAa;IAgCtB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,iBAAiB;IAgFzB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAE,gBAAgB;IAsCzB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA8EpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,eAAe;IA2CvB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,WAAW;IAkDnB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,aAAa;IAoCrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,sBAAsB;IAwE9B,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,qBAAqB;IAuC7B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,kCAAkC;IAO1C,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,0CAA0C;CAKrD;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parsing/parser.ts"],"names":[],"mappings":"AAWA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,eAAe,CAAC;AAwDvC;;;;;;;;;;;;GAYG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,OAAO,CAAC,MAAM,CAAkC;IAEhD;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKxC,OAAO,CAAC,eAAe;IA8FvB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,SAAS;IAoEjB,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,WAAW;IAgEnB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,SAAS;IAkDjB,OAAO,CAAE,eAAe;IAyCxB,OAAO,CAAE,aAAa;IAgCtB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,iBAAiB;IAgFzB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAE,gBAAgB;IAsCzB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA8EpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,eAAe;IA2CvB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,WAAW;IAkDnB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,aAAa;IAoCrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,sBAAsB;IAwE9B,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,qBAAqB;IAuC7B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,kCAAkC;IAO1C,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,0CAA0C;CAKrD;AAED,eAAe,MAAM,CAAC"}
@@ -46,6 +46,7 @@ const create_relationship_1 = __importDefault(require("./operations/create_relat
46
46
  const limit_1 = __importDefault(require("./operations/limit"));
47
47
  const load_1 = __importDefault(require("./operations/load"));
48
48
  const match_1 = __importDefault(require("./operations/match"));
49
+ const order_by_1 = __importDefault(require("./operations/order_by"));
49
50
  const return_1 = __importDefault(require("./operations/return"));
50
51
  const union_1 = __importDefault(require("./operations/union"));
51
52
  const union_all_1 = __importDefault(require("./operations/union_all"));
@@ -102,6 +103,9 @@ class Parser extends base_parser_1.default {
102
103
  if (this.token.isUnion()) {
103
104
  break;
104
105
  }
106
+ if (this.token.isEOF()) {
107
+ break;
108
+ }
105
109
  operation = this.parseOperation();
106
110
  if (operation === null && !isSubQuery) {
107
111
  throw new Error("Expected one of WITH, UNWIND, RETURN, LOAD, OR CALL");
@@ -131,10 +135,25 @@ class Parser extends base_parser_1.default {
131
135
  operation = where;
132
136
  }
133
137
  }
138
+ const orderBy = this.parseOrderBy();
139
+ if (orderBy !== null) {
140
+ if (operation instanceof return_1.default) {
141
+ operation.orderBy = orderBy;
142
+ }
143
+ else {
144
+ operation.addSibling(orderBy);
145
+ operation = orderBy;
146
+ }
147
+ }
134
148
  const limit = this.parseLimit();
135
149
  if (limit !== null) {
136
- operation.addSibling(limit);
137
- operation = limit;
150
+ if (operation instanceof return_1.default) {
151
+ operation.limit = limit;
152
+ }
153
+ else {
154
+ operation.addSibling(limit);
155
+ operation = limit;
156
+ }
138
157
  }
139
158
  previous = operation;
140
159
  }
@@ -473,15 +492,10 @@ class Parser extends base_parser_1.default {
473
492
  node.label = label;
474
493
  if (identifier !== null && this._state.variables.has(identifier)) {
475
494
  let reference = this._state.variables.get(identifier);
476
- // Resolve through Expression -> Reference -> Node (e.g., after WITH)
477
- if (reference instanceof expression_1.default && reference.firstChild() instanceof reference_1.default) {
478
- const inner = reference.firstChild().referred;
479
- if (inner instanceof node_1.default) {
480
- reference = inner;
481
- }
482
- }
483
495
  if (reference === undefined ||
484
- (!(reference instanceof node_1.default) && !(reference instanceof unwind_1.default))) {
496
+ (!(reference instanceof node_1.default) &&
497
+ !(reference instanceof unwind_1.default) &&
498
+ !(reference instanceof expression_1.default))) {
485
499
  throw new Error(`Undefined node reference: ${identifier}`);
486
500
  }
487
501
  node = new node_reference_1.default(node, reference);
@@ -766,6 +780,49 @@ class Parser extends base_parser_1.default {
766
780
  this.setNextToken();
767
781
  return limit;
768
782
  }
783
+ parseOrderBy() {
784
+ this.skipWhitespaceAndComments();
785
+ if (!this.token.isOrder()) {
786
+ return null;
787
+ }
788
+ this.expectPreviousTokenToBeWhitespaceOrComment();
789
+ this.setNextToken();
790
+ this.expectAndSkipWhitespaceAndComments();
791
+ if (!this.token.isByKeyword()) {
792
+ throw new Error("Expected BY after ORDER");
793
+ }
794
+ this.setNextToken();
795
+ this.expectAndSkipWhitespaceAndComments();
796
+ const fields = [];
797
+ while (true) {
798
+ if (!this.token.isIdentifierOrKeyword()) {
799
+ throw new Error("Expected field name in ORDER BY");
800
+ }
801
+ const field = this.token.value;
802
+ this.setNextToken();
803
+ this.skipWhitespaceAndComments();
804
+ let direction = "asc";
805
+ if (this.token.isAsc()) {
806
+ direction = "asc";
807
+ this.setNextToken();
808
+ this.skipWhitespaceAndComments();
809
+ }
810
+ else if (this.token.isDesc()) {
811
+ direction = "desc";
812
+ this.setNextToken();
813
+ this.skipWhitespaceAndComments();
814
+ }
815
+ fields.push({ field, direction });
816
+ if (this.token.isComma()) {
817
+ this.setNextToken();
818
+ this.skipWhitespaceAndComments();
819
+ }
820
+ else {
821
+ break;
822
+ }
823
+ }
824
+ return new order_by_1.default(fields);
825
+ }
769
826
  *parseExpressions(alias_option = alias_option_1.AliasOption.NOT_ALLOWED) {
770
827
  while (true) {
771
828
  const expression = this.parseExpression();