flowquery 1.0.61 → 1.0.63

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.
@@ -11,7 +11,6 @@ declare class Node extends ASTNode {
11
11
  protected _incoming: Relationship | null;
12
12
  protected _outgoing: Relationship | null;
13
13
  private _data;
14
- private _todoNext;
15
14
  constructor(identifier?: string | null, label?: string | null);
16
15
  set identifier(identifier: string);
17
16
  get identifier(): string | null;
@@ -31,10 +30,8 @@ declare class Node extends ASTNode {
31
30
  set incoming(relationship: Relationship | null);
32
31
  get incoming(): Relationship | null;
33
32
  setData(data: NodeData | null): void;
34
- next(): Promise<void>;
35
- find(id: string, hop?: number): Promise<void>;
36
- set todoNext(func: (() => Promise<void>) | null);
37
- runTodoNext(): Promise<void>;
33
+ next(): AsyncGenerator<void>;
34
+ find(id: string, hop?: number): AsyncGenerator<void>;
38
35
  }
39
36
  export default Node;
40
37
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/graph/node.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,cAAM,IAAK,SAAQ,OAAO;IACtB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;IAC3D,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAQ;IAE3C,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAQ;IAChD,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEhD,OAAO,CAAC,KAAK,CAAyB;IAOtC,OAAO,CAAC,SAAS,CAAsC;gBAE3C,UAAU,GAAE,MAAM,GAAG,IAAW,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW;IAQzE,IAAW,UAAU,CAAC,UAAU,EAAE,MAAM,EAEvC;IACD,IAAW,UAAU,IAAI,MAAM,GAAG,IAAI,CAErC;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAG7B;IACD,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAEhC;IACD,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAGjC;IACD,IAAW,MAAM,IAAI,MAAM,EAAE,CAE5B;IACD,IAAW,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAE/C;IACD,IAAW,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAExD;IACD,OAAO,CAAC,kBAAkB;IAgBnB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAGjD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAG3C,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAGjC,KAAK,IAAI,UAAU,GAAG,IAAI;IAGjC,IAAW,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,EAEpD;IACD,IAAW,QAAQ,IAAI,YAAY,GAAG,IAAI,CAEzC;IACD,IAAW,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,EAEpD;IACD,IAAW,QAAQ,IAAI,YAAY,GAAG,IAAI,CAEzC;IACM,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAG9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7D,IAAW,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAErD;IACY,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5C;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/graph/node.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,cAAM,IAAK,SAAQ,OAAO;IACtB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;IAC3D,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAQ;IAE3C,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAQ;IAChD,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEhD,OAAO,CAAC,KAAK,CAAyB;gBAE1B,UAAU,GAAE,MAAM,GAAG,IAAW,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW;IAQzE,IAAW,UAAU,CAAC,UAAU,EAAE,MAAM,EAEvC;IACD,IAAW,UAAU,IAAI,MAAM,GAAG,IAAI,CAErC;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAG7B;IACD,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAEhC;IACD,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAGjC;IACD,IAAW,MAAM,IAAI,MAAM,EAAE,CAE5B;IACD,IAAW,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAE/C;IACD,IAAW,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAExD;IACD,OAAO,CAAC,kBAAkB;IAgBnB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAGjD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAG3C,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAGjC,KAAK,IAAI,UAAU,GAAG,IAAI;IAGjC,IAAW,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,EAEpD;IACD,IAAW,QAAQ,IAAI,YAAY,GAAG,IAAI,CAEzC;IACD,IAAW,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,EAEpD;IACD,IAAW,QAAQ,IAAI,YAAY,GAAG,IAAI,CAEzC;IACM,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAG7B,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC;IAc5B,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,cAAc,CAAC,IAAI,CAAC;CAexE;AAED,eAAe,IAAI,CAAC"}
@@ -1,12 +1,28 @@
1
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
- });
2
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
3
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
4
+ var m = o[Symbol.asyncIterator], i;
5
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
6
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
7
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
8
+ };
9
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
10
+ var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
11
+ var i, p;
12
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
13
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
14
+ };
15
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
16
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
17
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
18
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
19
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
20
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
21
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
22
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
23
+ function fulfill(value) { resume("next", value); }
24
+ function reject(value) { resume("throw", value); }
25
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
10
26
  };
11
27
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -24,12 +40,6 @@ class Node extends ast_node_1.default {
24
40
  this._incoming = null;
25
41
  this._outgoing = null;
26
42
  this._data = null;
27
- // Function to be called after each 'next' and 'find' operation
28
- // It is used to chain operations in a traversal
29
- // For example, after matching on a graph pattern, we may want to
30
- // continue to the next node or relationship in the pattern, or
31
- // perform the next operation in a statement.
32
- this._todoNext = null;
33
43
  this._identifier = identifier;
34
44
  this._label = label;
35
45
  if (label !== null) {
@@ -106,22 +116,26 @@ class Node extends ast_node_1.default {
106
116
  this._data = data;
107
117
  }
108
118
  next() {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- var _a, _b, _c, _d;
119
+ return __asyncGenerator(this, arguments, function* next_1() {
120
+ var _a, _b, _c;
111
121
  (_a = this._data) === null || _a === void 0 ? void 0 : _a.reset();
112
122
  while ((_b = this._data) === null || _b === void 0 ? void 0 : _b.next()) {
113
123
  this.setValue((_c = this._data) === null || _c === void 0 ? void 0 : _c.current());
114
124
  if (!this._matchesProperties()) {
115
125
  continue;
116
126
  }
117
- yield ((_d = this._outgoing) === null || _d === void 0 ? void 0 : _d.find(this._value.id));
118
- yield this.runTodoNext();
127
+ if (this._outgoing) {
128
+ yield __await(yield* __asyncDelegator(__asyncValues(this._outgoing.find(this._value.id))));
129
+ }
130
+ else {
131
+ yield yield __await(void 0);
132
+ }
119
133
  }
120
134
  });
121
135
  }
122
136
  find(id_1) {
123
- return __awaiter(this, arguments, void 0, function* (id, hop = 0) {
124
- var _a, _b, _c, _d, _e;
137
+ return __asyncGenerator(this, arguments, function* find_1(id, hop = 0) {
138
+ var _a, _b, _c, _d;
125
139
  (_a = this._data) === null || _a === void 0 ? void 0 : _a.reset();
126
140
  while ((_b = this._data) === null || _b === void 0 ? void 0 : _b.find(id, hop)) {
127
141
  this.setValue((_c = this._data) === null || _c === void 0 ? void 0 : _c.current(hop));
@@ -129,19 +143,12 @@ class Node extends ast_node_1.default {
129
143
  continue;
130
144
  }
131
145
  (_d = this._incoming) === null || _d === void 0 ? void 0 : _d.setEndNode(this);
132
- yield ((_e = this._outgoing) === null || _e === void 0 ? void 0 : _e.find(this._value.id, hop));
133
- yield this.runTodoNext();
134
- }
135
- });
136
- }
137
- // For setting a function to be called after each 'next' and 'find' operation
138
- set todoNext(func) {
139
- this._todoNext = func;
140
- }
141
- runTodoNext() {
142
- return __awaiter(this, void 0, void 0, function* () {
143
- if (this._todoNext) {
144
- yield this._todoNext();
146
+ if (this._outgoing) {
147
+ yield __await(yield* __asyncDelegator(__asyncValues(this._outgoing.find(this._value.id, hop))));
148
+ }
149
+ else {
150
+ yield yield __await(void 0);
151
+ }
145
152
  }
146
153
  });
147
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/graph/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/graph/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAA0C;AAK1C,MAAM,IAAK,SAAQ,kBAAO;IAYtB,YAAY,aAA4B,IAAI,EAAE,QAAuB,IAAI;QACrE,KAAK,EAAE,CAAC;QAZF,gBAAW,GAAkB,IAAI,CAAC;QAClC,WAAM,GAAkB,IAAI,CAAC;QAC7B,YAAO,GAAa,EAAE,CAAC;QACvB,gBAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;QACjD,WAAM,GAAsB,IAAI,CAAC;QAEjC,cAAS,GAAwB,IAAI,CAAC;QACtC,cAAS,GAAwB,IAAI,CAAC;QAExC,UAAK,GAAoB,IAAI,CAAC;QAIlC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,IAAW,UAAU,CAAC,UAAkB;QACpC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAW,KAAK,CAAC,KAAa;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAW,MAAM,CAAC,MAAgB;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IACD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAW,UAAU,CAAC,UAAmC;QACrD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IACO,kBAAkB,CAAC,MAAc,CAAC;QACtC,MAAM,IAAI,GAAa,IAAI,CAAC,KAAM,CAAC;QACnC,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAe,IAAI,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC;YAC9C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,WAAW,CAAC,GAAW,EAAE,KAAiB;QAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACM,WAAW,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC7C,CAAC;IACM,QAAQ,CAAC,KAAiB;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAW,QAAQ,CAAC,YAAiC;QACjD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;IAClC,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,QAAQ,CAAC,YAAiC;QACjD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;IAClC,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACM,OAAO,CAAC,IAAqB;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IACa,IAAI;;;YACd,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE,CAAC;YACpB,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,EAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;oBAC7B,SAAS;gBACb,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,CAAA,CAAA,CAAA,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,2BAAK,CAAC;gBACV,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IACa,IAAI;kEAAC,EAAU,EAAE,MAAc,CAAC;;YAC1C,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE,CAAC;YACpB,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,CAAC,GAAG,CAAe,CAAC,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,SAAS;gBACb,CAAC;gBACD,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA,CAAA,CAAA,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACJ,2BAAK,CAAC;gBACV,CAAC;YACL,CAAC;QACL,CAAC;KAAA;CACJ;AAED,kBAAe,IAAI,CAAC"}
@@ -4,8 +4,8 @@ declare class NodeReference extends Node {
4
4
  private _reference;
5
5
  constructor(base: Node, reference: ASTNode);
6
6
  get reference(): ASTNode | null;
7
- next(): Promise<void>;
8
- find(id: string, hop?: number): Promise<void>;
7
+ next(): AsyncGenerator<void>;
8
+ find(id: string, hop?: number): AsyncGenerator<void>;
9
9
  }
10
10
  export default NodeReference;
11
11
  //# sourceMappingURL=node_reference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node_reference.d.ts","sourceRoot":"","sources":["../../src/graph/node_reference.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,cAAM,aAAc,SAAQ,IAAI;IAC5B,OAAO,CAAC,UAAU,CAAwB;gBAC9B,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO;IAU1C,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IACY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASrB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAShE;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"node_reference.d.ts","sourceRoot":"","sources":["../../src/graph/node_reference.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,cAAM,aAAc,SAAQ,IAAI;IAC5B,OAAO,CAAC,UAAU,CAAwB;gBAC9B,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO;IAU1C,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IACa,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC;IAY5B,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,cAAc,CAAC,IAAI,CAAC;CAYxE;AAED,eAAe,aAAa,CAAC"}
@@ -1,12 +1,28 @@
1
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
- });
2
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
3
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
4
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
5
+ var m = o[Symbol.asyncIterator], i;
6
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
7
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
8
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
9
+ };
10
+ var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
11
+ var i, p;
12
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
13
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
14
+ };
15
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
16
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
17
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
18
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
19
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
20
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
21
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
22
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
23
+ function fulfill(value) { resume("next", value); }
24
+ function reject(value) { resume("throw", value); }
25
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
10
26
  };
11
27
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -29,27 +45,35 @@ class NodeReference extends node_1.default {
29
45
  return this._reference;
30
46
  }
31
47
  next() {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- var _a, _b;
48
+ return __asyncGenerator(this, arguments, function* next_1() {
49
+ var _a;
34
50
  const referenced = (_a = this._reference) === null || _a === void 0 ? void 0 : _a.value();
35
51
  if (referenced == null) {
36
- return;
52
+ return yield __await(void 0);
37
53
  }
38
54
  this.setValue(referenced);
39
- yield ((_b = this._outgoing) === null || _b === void 0 ? void 0 : _b.find(this._value.id));
40
- yield this.runTodoNext();
55
+ if (this._outgoing) {
56
+ yield __await(yield* __asyncDelegator(__asyncValues(this._outgoing.find(this._value.id))));
57
+ }
58
+ else {
59
+ yield yield __await(void 0);
60
+ }
41
61
  });
42
62
  }
43
63
  find(id_1) {
44
- return __awaiter(this, arguments, void 0, function* (id, hop = 0) {
45
- var _a, _b;
64
+ return __asyncGenerator(this, arguments, function* find_1(id, hop = 0) {
65
+ var _a;
46
66
  const referenced = (_a = this._reference) === null || _a === void 0 ? void 0 : _a.value();
47
67
  if (id !== (referenced === null || referenced === void 0 ? void 0 : referenced.id)) {
48
- return;
68
+ return yield __await(void 0);
49
69
  }
50
70
  this.setValue(referenced);
51
- yield ((_b = this._outgoing) === null || _b === void 0 ? void 0 : _b.find(this._value.id, hop));
52
- yield this.runTodoNext();
71
+ if (this._outgoing) {
72
+ yield __await(yield* __asyncDelegator(__asyncValues(this._outgoing.find(this._value.id, hop))));
73
+ }
74
+ else {
75
+ yield yield __await(void 0);
76
+ }
53
77
  });
54
78
  }
55
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node_reference.js","sourceRoot":"","sources":["../../src/graph/node_reference.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kDAA0B;AAE1B,MAAM,aAAc,SAAQ,cAAI;IAE5B,YAAY,IAAU,EAAE,SAAkB;QACtC,KAAK,EAAE,CAAC;QAFJ,eAAU,GAAmB,IAAI,CAAC;QAGtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACY,IAAI;;;YACb,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;YAC5C,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gBACrB,OAAO;YACX,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC1B,MAAM,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAC5C,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;KAAA;IACY,IAAI;6DAAC,EAAU,EAAE,MAAc,CAAC;;YACzC,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;YAC5C,IAAI,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,EAAE,CAAA,EAAE,CAAC;gBACxB,OAAO;YACX,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,UAAW,CAAC,CAAC;YAC3B,MAAM,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA,CAAC;YACjD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;KAAA;CACJ;AAED,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"node_reference.js","sourceRoot":"","sources":["../../src/graph/node_reference.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAE1B,MAAM,aAAc,SAAQ,cAAI;IAE5B,YAAY,IAAU,EAAE,SAAkB;QACtC,KAAK,EAAE,CAAC;QAFJ,eAAU,GAAmB,IAAI,CAAC;QAGtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACa,IAAI;;;YACd,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;YAC5C,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gBACrB,6BAAO;YACX,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,CAAA,CAAA,CAAA,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACJ,2BAAK,CAAC;YACV,CAAC;QACL,CAAC;KAAA;IACa,IAAI;kEAAC,EAAU,EAAE,MAAc,CAAC;;YAC1C,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;YAC5C,IAAI,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,EAAE,CAAA,EAAE,CAAC;gBACxB,6BAAO;YACX,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,UAAW,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA,CAAA,CAAA,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,2BAAK,CAAC;YACV,CAAC;QACL,CAAC;KAAA;CACJ;AAED,kBAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pattern_expression.d.ts","sourceRoot":"","sources":["../../src/graph/pattern_expression.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,cAAM,iBAAkB,SAAQ,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAkB;IACrC,IAAW,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAEtC;IACM,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAG9C,MAAM,IAAI,IAAI;IAcR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B,KAAK,IAAI,OAAO;IAGV,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAO1C;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"pattern_expression.d.ts","sourceRoot":"","sources":["../../src/graph/pattern_expression.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,cAAM,iBAAkB,SAAQ,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAkB;IACrC,IAAW,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAEtC;IACM,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAG9C,MAAM,IAAI,IAAI;IAcR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,KAAK,IAAI,OAAO;IAGV,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAO1C;AAED,eAAe,iBAAiB,CAAC"}
@@ -8,6 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
11
18
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
20
  };
@@ -42,11 +49,23 @@ class PatternExpression extends pattern_1.default {
42
49
  }
43
50
  evaluate() {
44
51
  return __awaiter(this, void 0, void 0, function* () {
52
+ var _a, e_1, _b, _c;
45
53
  this._evaluation = false;
46
- this.endNode.todoNext = () => __awaiter(this, void 0, void 0, function* () {
47
- this._evaluation = true;
48
- });
49
- yield this.startNode.next();
54
+ try {
55
+ for (var _d = true, _e = __asyncValues(this.startNode.next()), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {
56
+ _c = _f.value;
57
+ _d = false;
58
+ const _ = _c;
59
+ this._evaluation = true;
60
+ }
61
+ }
62
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
63
+ finally {
64
+ try {
65
+ if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);
66
+ }
67
+ finally { if (e_1) throw e_1.error; }
68
+ }
50
69
  });
51
70
  }
52
71
  value() {
@@ -1 +1 @@
1
- {"version":3,"file":"pattern_expression.js","sourceRoot":"","sources":["../../src/graph/pattern_expression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,sEAA6C;AAC7C,wDAAgC;AAGhC,MAAM,iBAAkB,SAAQ,iBAAO;IAAvC;;QACY,aAAQ,GAAY,KAAK,CAAC;QAC1B,gBAAW,GAAY,KAAK,CAAC;IAsCzC,CAAC;IArCG,IAAW,UAAU,CAAC,EAAiB;QACnC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IACM,UAAU,CAAC,OAA4B;QAC1C,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACM,MAAM;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5C,IAAI,OAAO,YAAY,wBAAa,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IACY,QAAQ;;YACjB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAS,EAAE;gBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5B,CAAC,CAAA,CAAC;YACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;KAAA;IACM,KAAK;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACY,SAAS;;;;;YAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACX,CAAC;YACD,MAAM,OAAM,SAAS,WAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC;KAAA;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"pattern_expression.js","sourceRoot":"","sources":["../../src/graph/pattern_expression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,sEAA6C;AAC7C,wDAAgC;AAGhC,MAAM,iBAAkB,SAAQ,iBAAO;IAAvC;;QACY,aAAQ,GAAY,KAAK,CAAC;QAC1B,gBAAW,GAAY,KAAK,CAAC;IAqCzC,CAAC;IApCG,IAAW,UAAU,CAAC,EAAiB;QACnC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IACM,UAAU,CAAC,OAA4B;QAC1C,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACM,MAAM;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5C,IAAI,OAAO,YAAY,wBAAa,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IACY,QAAQ;;;YACjB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;;gBACzB,KAAsB,eAAA,KAAA,cAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA,IAAA,sDAAE,CAAC;oBAAxB,cAAqB;oBAArB,WAAqB;oBAAhC,MAAM,CAAC,KAAA,CAAA;oBACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,CAAC;;;;;;;;;QACL,CAAC;KAAA;IACM,KAAK;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACY,SAAS;;;;;YAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACX,CAAC;YACD,MAAM,OAAM,SAAS,WAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC;KAAA;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
@@ -4,8 +4,8 @@ declare class Patterns {
4
4
  constructor(patterns?: Pattern[]);
5
5
  get patterns(): Pattern[];
6
6
  initialize(): Promise<void>;
7
- set toDoNext(func: () => Promise<void>);
8
- traverse(): Promise<void>;
7
+ traverse(): AsyncGenerator<void>;
8
+ private _chainPatterns;
9
9
  }
10
10
  export default Patterns;
11
11
  //# sourceMappingURL=patterns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/graph/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,cAAM,QAAQ;IACV,OAAO,CAAC,SAAS,CAAiB;gBACtB,QAAQ,GAAE,OAAO,EAAO;IAGpC,IAAW,QAAQ,IAAI,OAAO,EAAE,CAE/B;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxC,IAAW,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAI5C;IACY,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKzC;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/graph/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,cAAM,QAAQ;IACV,OAAO,CAAC,SAAS,CAAiB;gBACtB,QAAQ,GAAE,OAAO,EAAO;IAGpC,IAAW,QAAQ,IAAI,OAAO,EAAE,CAE/B;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC;YAI/B,cAAc;CAShC;AAED,eAAe,QAAQ,CAAC"}
@@ -8,6 +8,31 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
12
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
13
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
14
+ var m = o[Symbol.asyncIterator], i;
15
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
16
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
17
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
18
+ };
19
+ var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
20
+ var i, p;
21
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
22
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
23
+ };
24
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
25
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
26
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
27
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
28
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
29
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
30
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
31
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
32
+ function fulfill(value) { resume("next", value); }
33
+ function reject(value) { resume("throw", value); }
34
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
35
+ };
11
36
  Object.defineProperty(exports, "__esModule", { value: true });
12
37
  class Patterns {
13
38
  constructor(patterns = []) {
@@ -19,28 +44,40 @@ class Patterns {
19
44
  }
20
45
  initialize() {
21
46
  return __awaiter(this, void 0, void 0, function* () {
22
- let previous = null;
23
47
  for (const pattern of this._patterns) {
24
- yield pattern.fetchData(); // Ensure data is loaded
25
- if (previous !== null) {
26
- // Chain the patterns together
27
- previous.endNode.todoNext = () => __awaiter(this, void 0, void 0, function* () {
28
- yield pattern.startNode.next();
29
- });
30
- }
31
- previous = pattern;
48
+ yield pattern.fetchData();
32
49
  }
33
50
  });
34
51
  }
35
- set toDoNext(func) {
36
- if (this._patterns.length > 0) {
37
- this._patterns[this._patterns.length - 1].endNode.todoNext = func;
38
- }
39
- }
40
52
  traverse() {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- if (this._patterns.length > 0) {
43
- yield this._patterns[0].startNode.next();
53
+ return __asyncGenerator(this, arguments, function* traverse_1() {
54
+ if (this._patterns.length === 0)
55
+ return yield __await(void 0);
56
+ yield __await(yield* __asyncDelegator(__asyncValues(this._chainPatterns(0))));
57
+ });
58
+ }
59
+ _chainPatterns(index) {
60
+ return __asyncGenerator(this, arguments, function* _chainPatterns_1() {
61
+ var _a, e_1, _b, _c;
62
+ try {
63
+ for (var _d = true, _e = __asyncValues(this._patterns[index].startNode.next()), _f; _f = yield __await(_e.next()), _a = _f.done, !_a; _d = true) {
64
+ _c = _f.value;
65
+ _d = false;
66
+ const _ = _c;
67
+ if (index + 1 < this._patterns.length) {
68
+ yield __await(yield* __asyncDelegator(__asyncValues(this._chainPatterns(index + 1))));
69
+ }
70
+ else {
71
+ yield yield __await(void 0);
72
+ }
73
+ }
74
+ }
75
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
76
+ finally {
77
+ try {
78
+ if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e));
79
+ }
80
+ finally { if (e_1) throw e_1.error; }
44
81
  }
45
82
  });
46
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/graph/patterns.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAM,QAAQ;IAEV,YAAY,WAAsB,EAAE;QAD5B,cAAS,GAAc,EAAE,CAAC;QAE9B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACY,UAAU;;YACnB,IAAI,QAAQ,GAAmB,IAAI,CAAC;YACpC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,wBAAwB;gBACnD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACpB,8BAA8B;oBAC9B,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAS,EAAE;wBACnC,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;oBACnC,CAAC,CAAA,CAAC;gBACN,CAAC;gBACD,QAAQ,GAAG,OAAO,CAAC;YACvB,CAAC;QACL,CAAC;KAAA;IACD,IAAW,QAAQ,CAAC,IAAyB;QACzC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtE,CAAC;IACL,CAAC;IACY,QAAQ;;YACjB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC;QACL,CAAC;KAAA;CACJ;AAED,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/graph/patterns.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,QAAQ;IAEV,YAAY,WAAsB,EAAE;QAD5B,cAAS,GAAc,EAAE,CAAC;QAE9B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACY,UAAU;;YACnB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YAC9B,CAAC;QACL,CAAC;KAAA;IACa,QAAQ;;YAClB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,6BAAO;YACxC,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;QAClC,CAAC;KAAA;IACc,cAAc,CAAC,KAAa;;;;gBACvC,KAAsB,eAAA,KAAA,cAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA,IAAA,+DAAE,CAAC;oBAAzC,cAAsC;oBAAtC,WAAsC;oBAAjD,MAAM,CAAC,KAAA,CAAA;oBACd,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;wBACpC,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACJ,2BAAK,CAAC;oBACV,CAAC;gBACL,CAAC;;;;;;;;;QACL,CAAC;KAAA;CACJ;AAED,kBAAe,QAAQ,CAAC"}
@@ -42,7 +42,7 @@ declare class Relationship extends ASTNode {
42
42
  getData(): RelationshipData | null;
43
43
  setEndNode(node: Node): void;
44
44
  _left_id_or_right_id(): string;
45
- find(left_id: string, hop?: number): Promise<void>;
45
+ find(left_id: string, hop?: number): AsyncGenerator<void>;
46
46
  }
47
47
  export default Relationship;
48
48
  //# sourceMappingURL=relationship.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relationship.d.ts","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship.d.ts","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,28 @@
1
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
- });
2
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
3
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
4
+ var m = o[Symbol.asyncIterator], i;
5
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
6
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
7
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
8
+ };
9
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
10
+ var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
11
+ var i, p;
12
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
13
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
14
+ };
15
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
16
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
17
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
18
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
19
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
20
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
21
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
22
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
23
+ function fulfill(value) { resume("next", value); }
24
+ function reject(value) { resume("throw", value); }
25
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
10
26
  };
11
27
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -126,49 +142,53 @@ class Relationship extends ast_node_1.default {
126
142
  return this._direction === "left" ? "left_id" : "right_id";
127
143
  }
128
144
  find(left_id_1) {
129
- return __awaiter(this, arguments, void 0, function* (left_id, hop = 0) {
130
- var _a, _b, _c, _d;
145
+ return __asyncGenerator(this, arguments, function* find_1(left_id, hop = 0) {
146
+ var _a, _b, _c;
131
147
  // Save original source node
132
148
  const original = this._source;
133
149
  if (hop > 0) {
134
150
  // For hops greater than 0, the source becomes the target of the previous hop
135
151
  this._source = this._target;
136
152
  }
137
- if (hop === 0) {
138
- (_a = this._data) === null || _a === void 0 ? void 0 : _a.reset();
139
- // Handle zero-hop case: when min is 0 on a variable-length relationship,
140
- // match source node as target (no traversal)
141
- if (((_b = this.hops) === null || _b === void 0 ? void 0 : _b.multi()) && this.hops.min === 0 && this._target) {
142
- // For zero-hop, target finds the same node as source (left_id)
143
- // No relationship match is pushed since no edge is traversed
144
- yield this._target.find(left_id, hop);
145
- }
146
- }
147
- while (this._data.find(left_id, hop, this._direction)) {
148
- const data = (_c = this._data) === null || _c === void 0 ? void 0 : _c.current(hop);
149
- const id = data[this._left_id_or_right_id()];
150
- if (hop + 1 >= this.hops.min) {
151
- this.setValue(this, left_id);
152
- if (!this._matchesProperties(hop)) {
153
- continue;
153
+ try {
154
+ if (hop === 0) {
155
+ (_a = this._data) === null || _a === void 0 ? void 0 : _a.reset();
156
+ // Handle zero-hop case: when min is 0 on a variable-length relationship,
157
+ // match source node as target (no traversal)
158
+ if (((_b = this.hops) === null || _b === void 0 ? void 0 : _b.multi()) && this.hops.min === 0 && this._target) {
159
+ // For zero-hop, target finds the same node as source (left_id)
160
+ // No relationship match is pushed since no edge is traversed
161
+ yield __await(yield* __asyncDelegator(__asyncValues(this._target.find(left_id, hop))));
154
162
  }
155
- yield ((_d = this._target) === null || _d === void 0 ? void 0 : _d.find(id, hop));
156
- if (hop + 1 < this.hops.max) {
157
- if (this._matches.isCircular(id)) {
158
- this._matches.pop();
163
+ }
164
+ while (this._data.find(left_id, hop, this._direction)) {
165
+ const data = (_c = this._data) === null || _c === void 0 ? void 0 : _c.current(hop);
166
+ const id = data[this._left_id_or_right_id()];
167
+ if (hop + 1 >= this.hops.min) {
168
+ this.setValue(this, left_id);
169
+ if (!this._matchesProperties(hop)) {
159
170
  continue;
160
171
  }
161
- yield this.find(id, hop + 1);
172
+ yield __await(yield* __asyncDelegator(__asyncValues(this._target.find(id, hop))));
173
+ if (hop + 1 < this.hops.max) {
174
+ if (this._matches.isCircular(id)) {
175
+ this._matches.pop();
176
+ continue;
177
+ }
178
+ yield __await(yield* __asyncDelegator(__asyncValues(this.find(id, hop + 1))));
179
+ }
180
+ this._matches.pop();
181
+ }
182
+ else {
183
+ // Below minimum hops: traverse the edge without yielding a match
184
+ yield __await(yield* __asyncDelegator(__asyncValues(this.find(id, hop + 1))));
162
185
  }
163
- this._matches.pop();
164
- }
165
- else {
166
- // Below minimum hops: traverse the edge without yielding a match
167
- yield this.find(id, hop + 1);
168
186
  }
169
187
  }
170
- // Restore original source node
171
- this._source = original;
188
+ finally {
189
+ // Restore original source node
190
+ this._source = original;
191
+ }
172
192
  });
173
193
  }
174
194
  }