@ultipa-graph/ultipa-driver 6.0.18 → 6.2.1

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.
@@ -17,7 +17,32 @@ export declare class ConnectionPool {
17
17
  /** Get a connection for a specific host */
18
18
  getConnectionForHost(host: string): grpc.Client;
19
19
  private startHealthCheck;
20
+ /**
21
+ * Health-check tick. Connectivity-state semantics:
22
+ * - READY / IDLE → healthy; reset the unhealthy counter.
23
+ * - CONNECTING → transient; let the channel heal itself,
24
+ * don't count toward unhealthy.
25
+ * - SHUTDOWN → terminal; reconnect immediately.
26
+ * - TRANSIENT_FAILURE → count toward unhealthy; reconnect only
27
+ * after UNHEALTHY_RECONNECT_THRESHOLD
28
+ * consecutive ticks.
29
+ *
30
+ * Reconnect replaces the pool's channel reference; it does NOT close
31
+ * the old channel, so in-flight RPCs continue to completion on it.
32
+ */
20
33
  private checkHealth;
34
+ /**
35
+ * Replace the pool's channel for `host` with a fresh one.
36
+ *
37
+ * Critically, does NOT close the old channel. In-flight RPCs hold
38
+ * their own reference to it via the client they were issued on and
39
+ * continue to completion on that channel; the Node.js runtime's
40
+ * garbage collector releases the old channel only after every
41
+ * in-flight RPC has resolved.
42
+ *
43
+ * Earlier versions closed the old channel synchronously here, which
44
+ * cancelled every pending RPC with a "Channel closed!"-style error.
45
+ */
21
46
  private reconnect;
22
47
  /** Close all connections in the pool */
23
48
  close(): void;
@@ -39,6 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.ConnectionPool = void 0;
40
40
  const grpc = __importStar(require("@grpc/grpc-js"));
41
41
  const errors_1 = require("./errors");
42
+ /**
43
+ * Number of consecutive unhealthy ticks required before forcing a
44
+ * reconnect (which replaces the channel; in-flight RPCs are NOT
45
+ * cancelled because the old channel is left alive until GC).
46
+ */
47
+ const UNHEALTHY_RECONNECT_THRESHOLD = 3;
42
48
  /** Manages a pool of connections to GQLDB servers */
43
49
  class ConnectionPool {
44
50
  config;
@@ -87,6 +93,7 @@ class ConnectionPool {
87
93
  client,
88
94
  healthy: true,
89
95
  lastPing: Date.now(),
96
+ consecutiveUnhealthy: 0,
90
97
  };
91
98
  }
92
99
  /** Get a healthy connection from the pool */
@@ -115,39 +122,73 @@ class ConnectionPool {
115
122
  this.healthCheckTimer = setInterval(() => this.checkHealth(), interval);
116
123
  }
117
124
  }
125
+ /**
126
+ * Health-check tick. Connectivity-state semantics:
127
+ * - READY / IDLE → healthy; reset the unhealthy counter.
128
+ * - CONNECTING → transient; let the channel heal itself,
129
+ * don't count toward unhealthy.
130
+ * - SHUTDOWN → terminal; reconnect immediately.
131
+ * - TRANSIENT_FAILURE → count toward unhealthy; reconnect only
132
+ * after UNHEALTHY_RECONNECT_THRESHOLD
133
+ * consecutive ticks.
134
+ *
135
+ * Reconnect replaces the pool's channel reference; it does NOT close
136
+ * the old channel, so in-flight RPCs continue to completion on it.
137
+ */
118
138
  checkHealth() {
119
139
  for (const [host, conn] of this.connections) {
120
140
  const state = conn.client.getChannel().getConnectivityState(false);
121
- const healthy = state === grpc.connectivityState.READY ||
122
- state === grpc.connectivityState.IDLE;
123
- conn.healthy = healthy;
124
- if (healthy) {
141
+ if (state === grpc.connectivityState.READY ||
142
+ state === grpc.connectivityState.IDLE) {
143
+ conn.healthy = true;
144
+ conn.consecutiveUnhealthy = 0;
125
145
  conn.lastPing = Date.now();
146
+ continue;
147
+ }
148
+ if (state === grpc.connectivityState.CONNECTING) {
149
+ // Transient — let the channel heal itself.
150
+ continue;
126
151
  }
127
- else {
152
+ if (state === grpc.connectivityState.SHUTDOWN) {
153
+ conn.healthy = false;
154
+ conn.consecutiveUnhealthy = UNHEALTHY_RECONNECT_THRESHOLD;
155
+ this.reconnect(host);
156
+ continue;
157
+ }
158
+ // TRANSIENT_FAILURE or any other non-READY state.
159
+ conn.consecutiveUnhealthy++;
160
+ if (conn.consecutiveUnhealthy >= UNHEALTHY_RECONNECT_THRESHOLD) {
161
+ conn.healthy = false;
128
162
  this.reconnect(host);
129
163
  }
130
164
  }
131
165
  }
166
+ /**
167
+ * Replace the pool's channel for `host` with a fresh one.
168
+ *
169
+ * Critically, does NOT close the old channel. In-flight RPCs hold
170
+ * their own reference to it via the client they were issued on and
171
+ * continue to completion on that channel; the Node.js runtime's
172
+ * garbage collector releases the old channel only after every
173
+ * in-flight RPC has resolved.
174
+ *
175
+ * Earlier versions closed the old channel synchronously here, which
176
+ * cancelled every pending RPC with a "Channel closed!"-style error.
177
+ */
132
178
  async reconnect(host) {
133
179
  if (this.closed)
134
180
  return;
135
- const oldConn = this.connections.get(host);
136
- if (oldConn) {
137
- try {
138
- oldConn.client.close();
139
- }
140
- catch (e) {
141
- // Ignore
142
- }
143
- this.connections.delete(host);
144
- }
145
181
  try {
182
+ // Build the new connection up-front; only swap if it succeeds.
146
183
  const newConn = this.createConnection(host);
184
+ // Overwrite the pool entry. The old Connection is now
185
+ // unreferenced by the pool; in-flight RPCs still hold its
186
+ // grpc.Client alive via per-call references. Once they
187
+ // complete the client becomes garbage and gRPC closes it
188
+ // naturally.
147
189
  this.connections.set(host, newConn);
148
190
  }
149
191
  catch (e) {
150
- // Log and continue
151
192
  console.error(`Failed to reconnect to ${host}:`, e);
152
193
  }
153
194
  }
@@ -188,4 +229,4 @@ class ConnectionPool {
188
229
  }
189
230
  }
190
231
  exports.ConnectionPool = ConnectionPool;
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsb0RBQXNDO0FBRXRDLHFDQUF5RjtBQVV6RixxREFBcUQ7QUFDckQsTUFBYSxjQUFjO0lBQ2pCLE1BQU0sQ0FBYztJQUNwQixXQUFXLEdBQTRCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakQsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLGdCQUFnQixDQUFrQjtJQUUxQyxZQUFZLE1BQW1CO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZUFBZTtRQUNyQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDO2dCQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLDRCQUE0QjtnQkFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSw0QkFBbUIsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENB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QUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEIsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsU0FBUztZQUNYLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLGdCQUFnQjtRQUNkLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzdDLElBQUksSUFBSSxDQUFDLE9BQU87Z0JBQUUsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHVDQUF1QztJQUN2QyxLQUFLO1FBQ0gsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBbktELHdDQW1LQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29ubmVjdGlvbiBtYW5hZ2VtZW50IGZvciBHUUxEQiBOb2RlLmpzIGRyaXZlci5cbiAqL1xuXG5pbXBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnO1xuaW1wb3J0IHsgR3FsZGJDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBBbGxIb3N0c0ZhaWxlZEVycm9yLCBDb25uZWN0aW9uQ2xvc2VkRXJyb3IsIE5vQ29ubmVjdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG4vKiogUmVwcmVzZW50cyBhIHNpbmdsZSBnUlBDIGNvbm5lY3Rpb24gKi9cbmludGVyZmFjZSBDb25uZWN0aW9uIHtcbiAgaG9zdDogc3RyaW5nO1xuICBjbGllbnQ6IGdycGMuQ2xpZW50O1xuICBoZWFsdGh5OiBib29sZWFuO1xuICBsYXN0UGluZzogbnVtYmVyO1xufVxuXG4vKiogTWFuYWdlcyBhIHBvb2wgb2YgY29ubmVjdGlvbnMgdG8gR1FMREIgc2VydmVycyAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25Qb29sIHtcbiAgcHJpdmF0ZSBjb25maWc6IEdxbGRiQ29uZmlnO1xuICBwcml2YXRlIGNvbm5lY3Rpb25zOiBNYXA8c3RyaW5nLCBDb25uZWN0aW9uPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBjbG9zZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBoZWFsdGhDaGVja1RpbWVyPzogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBHcWxkYkNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuaW5pdENvbm5lY3Rpb25zKCk7XG4gICAgdGhpcy5zdGFydEhlYWx0aENoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRDb25uZWN0aW9ucygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGhvc3Qgb2YgdGhpcy5jb25maWcuaG9zdHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbm4gPSB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oaG9zdCk7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbnMuc2V0KGhvc3QsIGNvbm4pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBDb250aW51ZSB3aXRoIG90aGVyIGhvc3RzXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb25uZWN0IHRvICR7aG9zdH06YCwgZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbnMuc2l6ZSA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEFsbEhvc3RzRmFpbGVkRXJyb3IoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbm5lY3Rpb24oaG9zdDogc3RyaW5nKTogQ29ubmVjdGlvbiB7XG4gICAgbGV0IGNyZWRlbnRpYWxzOiBncnBjLkNoYW5uZWxDcmVkZW50aWFscztcblxuICAgIGlmICh0aGlzLmNvbmZpZy50bHNPcHRpb25zKSB7XG4gICAgICBjcmVkZW50aWFscyA9IGdycGMuY3JlZGVudGlhbHMuY3JlYXRlU3NsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNyZWRlbnRpYWxzID0gZ3JwYy5jcmVkZW50aWFscy5jcmVhdGVJbnNlY3VyZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnM6IGdycGMuQ2hhbm5lbE9wdGlvbnMgPSB7XG4gICAgICAnZ3JwYy5tYXhfcmVjZWl2ZV9tZXNzYWdlX2xlbmd0aCc6IHRoaXMuY29uZmlnLm1heFJlY3ZTaXplID8/IDY0ICogMTAyNCAqIDEwMjQsXG4gICAgICAnZ3JwYy5tYXhfc2VuZF9tZXNzYWdlX2xlbmd0aCc6IHRoaXMuY29uZmlnLm1heFJlY3ZTaXplID8/IDY0ICogMTAyNCAqIDEwMjQsXG4gICAgICAnZ3JwYy5rZWVwYWxpdmVfdGltZV9tcyc6IDMwMDAwLFxuICAgICAgJ2dycGMua2VlcGFsaXZlX3RpbWVvdXRfbXMnOiAxMDAwMCxcbiAgICAgICdncnBjLmtlZXBhbGl2ZV9wZXJtaXRfd2l0aG91dF9jYWxscyc6IDEsXG4gICAgfTtcblxuICAgIC8vIENyZWF0ZSBhIGdlbmVyaWMgY2xpZW50IGZvciB0aGUgY2hhbm5lbFxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBncnBjLkNsaWVudChob3N0LCBjcmVkZW50aWFscywgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaG9zdCxcbiAgICAgIGNsaWVudCxcbiAgICAgIGhlYWx0aHk6IHRydWUsXG4gICAgICBsYXN0UGluZzogRGF0ZS5ub3coKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEdldCBhIGhlYWx0aHkgY29ubmVjdGlvbiBmcm9tIHRoZSBwb29sICovXG4gIGdldENvbm5lY3Rpb24oKTogZ3JwYy5DbGllbnQge1xuICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IENvbm5lY3Rpb25DbG9zZWRFcnJvcigpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY29ubiBvZiB0aGlzLmNvbm5lY3Rpb25zLnZhbHVlcygpKSB7XG4gICAgICBpZiAoY29ubi5oZWFsdGh5KSB7XG4gICAgICAgIHJldHVybiBjb25uLmNsaWVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgTm9Db25uZWN0aW9uRXJyb3IoKTtcbiAgfVxuXG4gIC8qKiBHZXQgYSBjb25uZWN0aW9uIGZvciBhIHNwZWNpZmljIGhvc3QgKi9cbiAgZ2V0Q29ubmVjdGlvbkZvckhvc3QoaG9zdDogc3RyaW5nKTogZ3JwYy5DbGllbnQge1xuICAgIGNvbnN0IGNvbm4gPSB0aGlzLmNvbm5lY3Rpb25zLmdldChob3N0KTtcbiAgICBpZiAoIWNvbm4gfHwgIWNvbm4uaGVhbHRoeSkge1xuICAgICAgdGhyb3cgbmV3IE5vQ29ubmVjdGlvbkVycm9yKCk7XG4gICAgfVxuICAgIHJldHVybiBjb25uLmNsaWVudDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRIZWFsdGhDaGVjaygpOiB2b2lkIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IHRoaXMuY29uZmlnLmhlYWx0aENoZWNrSW50ZXJ2YWwgPz8gMzAwMDA7XG4gICAgaWYgKGludGVydmFsID4gMCkge1xuICAgICAgdGhpcy5oZWFsdGhDaGVja1RpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5jaGVja0hlYWx0aCgpLCBpbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0hlYWx0aCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtob3N0LCBjb25uXSBvZiB0aGlzLmNvbm5lY3Rpb25zKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IGNvbm4uY2xpZW50LmdldENoYW5uZWwoKS5nZXRDb25uZWN0aXZpdHlTdGF0ZShmYWxzZSk7XG4gICAgICBjb25zdCBoZWFsdGh5ID0gc3RhdGUgPT09IGdycGMuY29ubmVjdGl2aXR5U3RhdGUuUkVBRFkgfHxcbiAgICAgICAgICAgICAgICAgICAgIHN0YXRlID09PSBncnBjLmNvbm5lY3Rpdml0eVN0YXRlLklETEU7XG5cbiAgICAgIGNvbm4uaGVhbHRoeSA9IGhlYWx0aHk7XG4gICAgICBpZiAoaGVhbHRoeSkge1xuICAgICAgICBjb25uLmxhc3RQaW5nID0gRGF0ZS5ub3coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVjb25uZWN0KGhvc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVjb25uZWN0KGhvc3Q6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmNsb3NlZCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb2xkQ29ubiA9IHRoaXMuY29ubmVjdGlvbnMuZ2V0KGhvc3QpO1xuICAgIGlmIChvbGRDb25uKSB7XG4gICAgICB0cnkge1xuICAgICAgICBvbGRDb25uLmNsaWVudC5jbG9zZSgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBJZ25vcmVcbiAgICAgIH1cbiAgICAgIHRoaXMuY29ubmVjdGlvbnMuZGVsZXRlKGhvc3QpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBuZXdDb25uID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKGhvc3QpO1xuICAgICAgdGhpcy5jb25uZWN0aW9ucy5zZXQoaG9zdCwgbmV3Q29ubik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gTG9nIGFuZCBjb250aW51ZVxuICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHJlY29ubmVjdCB0byAke2hvc3R9OmAsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZSBhbGwgY29ubmVjdGlvbnMgaW4gdGhlIHBvb2wgKi9cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xvc2VkKSByZXR1cm47XG5cbiAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5oZWFsdGhDaGVja1RpbWVyKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaGVhbHRoQ2hlY2tUaW1lcik7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjb25uIG9mIHRoaXMuY29ubmVjdGlvbnMudmFsdWVzKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbm4uY2xpZW50LmNsb3NlKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIElnbm9yZVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbnMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIG51bWJlciBvZiBoZWFsdGh5IGhvc3RzICovXG4gIGhlYWx0aHlIb3N0Q291bnQoKTogbnVtYmVyIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGZvciAoY29uc3QgY29ubiBvZiB0aGlzLmNvbm5lY3Rpb25zLnZhbHVlcygpKSB7XG4gICAgICBpZiAoY29ubi5oZWFsdGh5KSBjb3VudCsrO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICAvKiogR2V0IHRoZSBsaXN0IG9mIGNvbmZpZ3VyZWQgaG9zdHMgKi9cbiAgaG9zdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY29ubmVjdGlvbnMua2V5cygpKTtcbiAgfVxuXG4gIC8qKiBDaGVjayBpZiB0aGUgcG9vbCBpcyBjbG9zZWQgKi9cbiAgaXNDbG9zZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2xvc2VkO1xuICB9XG59XG4iXX0=
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsb0RBQXNDO0FBRXRDLHFDQUF5RjtBQWtCekY7Ozs7R0FJRztBQUNILE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO0FBRXhDLHFEQUFxRDtBQUNyRCxNQUFhLGNBQWM7SUFDakIsTUFBTSxDQUFjO0lBQ3BCLFdBQVcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqRCxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YsZ0JBQWdCLENBQWtCO0lBRTFDLFlBQVksTUFBbUI7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsNEJBQTRCO2dCQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLDRCQUFt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O1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQTFNRCx3Q0EwTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbm5lY3Rpb24gbWFuYWdlbWVudCBmb3IgR1FMREIgTm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuaW1wb3J0ICogYXMgZ3JwYyBmcm9tICdAZ3JwYy9ncnBjLWpzJztcbmltcG9ydCB7IEdxbGRiQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgQWxsSG9zdHNGYWlsZWRFcnJvciwgQ29ubmVjdGlvbkNsb3NlZEVycm9yLCBOb0Nvbm5lY3Rpb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuLyoqIFJlcHJlc2VudHMgYSBzaW5nbGUgZ1JQQyBjb25uZWN0aW9uICovXG5pbnRlcmZhY2UgQ29ubmVjdGlvbiB7XG4gIGhvc3Q6IHN0cmluZztcbiAgY2xpZW50OiBncnBjLkNsaWVudDtcbiAgaGVhbHRoeTogYm9vbGVhbjtcbiAgbGFzdFBpbmc6IG51bWJlcjtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBoZWFsdGgtY2hlY2sgdGlja3MgdGhhdCBvYnNlcnZlZCBhIG5vbi1SRUFEWVxuICAgKiBzdGF0ZS4gUmVjb25uZWN0IGlzIG9ubHkgdHJpZ2dlcmVkIGFmdGVyIHRoaXMgcmVhY2hlc1xuICAgKiBVTkhFQUxUSFlfUkVDT05ORUNUX1RIUkVTSE9MRCwgc28gYSBzaW5nbGUgdHJhbnNpZW50IGZsaWNrZXJcbiAgICogZHVyaW5nIGEgYnVzeSBpbi1mbGlnaHQgUlBDIGRvZXMgbm90IHRlYXIgdGhlIGNoYW5uZWwgZG93biBhbmRcbiAgICogY2FuY2VsIGV2ZXJ5IHBlbmRpbmcgcmVxdWVzdC5cbiAgICovXG4gIGNvbnNlY3V0aXZlVW5oZWFsdGh5OiBudW1iZXI7XG59XG5cbi8qKlxuICogTnVtYmVyIG9mIGNvbnNlY3V0aXZlIHVuaGVhbHRoeSB0aWNrcyByZXF1aXJlZCBiZWZvcmUgZm9yY2luZyBhXG4gKiByZWNvbm5lY3QgKHdoaWNoIHJlcGxhY2VzIHRoZSBjaGFubmVsOyBpbi1mbGlnaHQgUlBDcyBhcmUgTk9UXG4gKiBjYW5jZWxsZWQgYmVjYXVzZSB0aGUgb2xkIGNoYW5uZWwgaXMgbGVmdCBhbGl2ZSB1bnRpbCBHQykuXG4gKi9cbmNvbnN0IFVOSEVBTFRIWV9SRUNPTk5FQ1RfVEhSRVNIT0xEID0gMztcblxuLyoqIE1hbmFnZXMgYSBwb29sIG9mIGNvbm5lY3Rpb25zIHRvIEdRTERCIHNlcnZlcnMgKi9cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uUG9vbCB7XG4gIHByaXZhdGUgY29uZmlnOiBHcWxkYkNvbmZpZztcbiAgcHJpdmF0ZSBjb25uZWN0aW9uczogTWFwPHN0cmluZywgQ29ubmVjdGlvbj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgY2xvc2VkID0gZmFsc2U7XG4gIHByaXZhdGUgaGVhbHRoQ2hlY2tUaW1lcj86IE5vZGVKUy5UaW1lb3V0O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogR3FsZGJDb25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmluaXRDb25uZWN0aW9ucygpO1xuICAgIHRoaXMuc3RhcnRIZWFsdGhDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q29ubmVjdGlvbnMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBob3N0IG9mIHRoaXMuY29uZmlnLmhvc3RzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb25uID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKGhvc3QpO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb25zLnNldChob3N0LCBjb25uKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gQ29udGludWUgd2l0aCBvdGhlciBob3N0c1xuICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY29ubmVjdCB0byAke2hvc3R9OmAsIGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25zLnNpemUgPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBBbGxIb3N0c0ZhaWxlZEVycm9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb25uZWN0aW9uKGhvc3Q6IHN0cmluZyk6IENvbm5lY3Rpb24ge1xuICAgIGxldCBjcmVkZW50aWFsczogZ3JwYy5DaGFubmVsQ3JlZGVudGlhbHM7XG5cbiAgICBpZiAodGhpcy5jb25maWcudGxzT3B0aW9ucykge1xuICAgICAgY3JlZGVudGlhbHMgPSBncnBjLmNyZWRlbnRpYWxzLmNyZWF0ZVNzbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjcmVkZW50aWFscyA9IGdycGMuY3JlZGVudGlhbHMuY3JlYXRlSW5zZWN1cmUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zOiBncnBjLkNoYW5uZWxPcHRpb25zID0ge1xuICAgICAgJ2dycGMubWF4X3JlY2VpdmVfbWVzc2FnZV9sZW5ndGgnOiB0aGlzLmNvbmZpZy5tYXhSZWN2U2l6ZSA/PyA2NCAqIDEwMjQgKiAxMDI0LFxuICAgICAgJ2dycGMubWF4X3NlbmRfbWVzc2FnZV9sZW5ndGgnOiB0aGlzLmNvbmZpZy5tYXhSZWN2U2l6ZSA/PyA2NCAqIDEwMjQgKiAxMDI0LFxuICAgICAgJ2dycGMua2VlcGFsaXZlX3RpbWVfbXMnOiAzMDAwMCxcbiAgICAgICdncnBjLmtlZXBhbGl2ZV90aW1lb3V0X21zJzogMTAwMDAsXG4gICAgICAnZ3JwYy5rZWVwYWxpdmVfcGVybWl0X3dpdGhvdXRfY2FsbHMnOiAxLFxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgYSBnZW5lcmljIGNsaWVudCBmb3IgdGhlIGNoYW5uZWxcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgZ3JwYy5DbGllbnQoaG9zdCwgY3JlZGVudGlhbHMsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGhvc3QsXG4gICAgICBjbGllbnQsXG4gICAgICBoZWFsdGh5OiB0cnVlLFxuICAgICAgbGFzdFBpbmc6IERhdGUubm93KCksXG4gICAgICBjb25zZWN1dGl2ZVVuaGVhbHRoeTogMCxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEdldCBhIGhlYWx0aHkgY29ubmVjdGlvbiBmcm9tIHRoZSBwb29sICovXG4gIGdldENvbm5lY3Rpb24oKTogZ3JwYy5DbGllbnQge1xuICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IENvbm5lY3Rpb25DbG9zZWRFcnJvcigpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY29ubiBvZiB0aGlzLmNvbm5lY3Rpb25zLnZhbHVlcygpKSB7XG4gICAgICBpZiAoY29ubi5oZWFsdGh5KSB7XG4gICAgICAgIHJldHVybiBjb25uLmNsaWVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgTm9Db25uZWN0aW9uRXJyb3IoKTtcbiAgfVxuXG4gIC8qKiBHZXQgYSBjb25uZWN0aW9uIGZvciBhIHNwZWNpZmljIGhvc3QgKi9cbiAgZ2V0Q29ubmVjdGlvbkZvckhvc3QoaG9zdDogc3RyaW5nKTogZ3JwYy5DbGllbnQge1xuICAgIGNvbnN0IGNvbm4gPSB0aGlzLmNvbm5lY3Rpb25zLmdldChob3N0KTtcbiAgICBpZiAoIWNvbm4gfHwgIWNvbm4uaGVhbHRoeSkge1xuICAgICAgdGhyb3cgbmV3IE5vQ29ubmVjdGlvbkVycm9yKCk7XG4gICAgfVxuICAgIHJldHVybiBjb25uLmNsaWVudDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRIZWFsdGhDaGVjaygpOiB2b2lkIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IHRoaXMuY29uZmlnLmhlYWx0aENoZWNrSW50ZXJ2YWwgPz8gMzAwMDA7XG4gICAgaWYgKGludGVydmFsID4gMCkge1xuICAgICAgdGhpcy5oZWFsdGhDaGVja1RpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5jaGVja0hlYWx0aCgpLCBpbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlYWx0aC1jaGVjayB0aWNrLiAgQ29ubmVjdGl2aXR5LXN0YXRlIHNlbWFudGljczpcbiAgICogIC0gUkVBRFkgLyBJRExFICAgICAgICAg4oaSIGhlYWx0aHk7IHJlc2V0IHRoZSB1bmhlYWx0aHkgY291bnRlci5cbiAgICogIC0gQ09OTkVDVElORyAgICAgICAgICAg4oaSIHRyYW5zaWVudDsgbGV0IHRoZSBjaGFubmVsIGhlYWwgaXRzZWxmLFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb24ndCBjb3VudCB0b3dhcmQgdW5oZWFsdGh5LlxuICAgKiAgLSBTSFVURE9XTiAgICAgICAgICAgICDihpIgdGVybWluYWw7IHJlY29ubmVjdCBpbW1lZGlhdGVseS5cbiAgICogIC0gVFJBTlNJRU5UX0ZBSUxVUkUgICAg4oaSIGNvdW50IHRvd2FyZCB1bmhlYWx0aHk7IHJlY29ubmVjdCBvbmx5XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyIFVOSEVBTFRIWV9SRUNPTk5FQ1RfVEhSRVNIT0xEXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlY3V0aXZlIHRpY2tzLlxuICAgKlxuICAgKiBSZWNvbm5lY3QgcmVwbGFjZXMgdGhlIHBvb2wncyBjaGFubmVsIHJlZmVyZW5jZTsgaXQgZG9lcyBOT1QgY2xvc2VcbiAgICogdGhlIG9sZCBjaGFubmVsLCBzbyBpbi1mbGlnaHQgUlBDcyBjb250aW51ZSB0byBjb21wbGV0aW9uIG9uIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0hlYWx0aCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtob3N0LCBjb25uXSBvZiB0aGlzLmNvbm5lY3Rpb25zKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IGNvbm4uY2xpZW50LmdldENoYW5uZWwoKS5nZXRDb25uZWN0aXZpdHlTdGF0ZShmYWxzZSk7XG5cbiAgICAgIGlmIChzdGF0ZSA9PT0gZ3JwYy5jb25uZWN0aXZpdHlTdGF0ZS5SRUFEWSB8fFxuICAgICAgICAgIHN0YXRlID09PSBncnBjLmNvbm5lY3Rpdml0eVN0YXRlLklETEUpIHtcbiAgICAgICAgY29ubi5oZWFsdGh5ID0gdHJ1ZTtcbiAgICAgICAgY29ubi5jb25zZWN1dGl2ZVVuaGVhbHRoeSA9IDA7XG4gICAgICAgIGNvbm4ubGFzdFBpbmcgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlID09PSBncnBjLmNvbm5lY3Rpdml0eVN0YXRlLkNPTk5FQ1RJTkcpIHtcbiAgICAgICAgLy8gVHJhbnNpZW50IOKAlCBsZXQgdGhlIGNoYW5uZWwgaGVhbCBpdHNlbGYuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUgPT09IGdycGMuY29ubmVjdGl2aXR5U3RhdGUuU0hVVERPV04pIHtcbiAgICAgICAgY29ubi5oZWFsdGh5ID0gZmFsc2U7XG4gICAgICAgIGNvbm4uY29uc2VjdXRpdmVVbmhlYWx0aHkgPSBVTkhFQUxUSFlfUkVDT05ORUNUX1RIUkVTSE9MRDtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3QoaG9zdCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBUUkFOU0lFTlRfRkFJTFVSRSBvciBhbnkgb3RoZXIgbm9uLVJFQURZIHN0YXRlLlxuICAgICAgY29ubi5jb25zZWN1dGl2ZVVuaGVhbHRoeSsrO1xuICAgICAgaWYgKGNvbm4uY29uc2VjdXRpdmVVbmhlYWx0aHkgPj0gVU5IRUFMVEhZX1JFQ09OTkVDVF9USFJFU0hPTEQpIHtcbiAgICAgICAgY29ubi5oZWFsdGh5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVjb25uZWN0KGhvc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBwb29sJ3MgY2hhbm5lbCBmb3IgYGhvc3RgIHdpdGggYSBmcmVzaCBvbmUuXG4gICAqXG4gICAqIENyaXRpY2FsbHksIGRvZXMgTk9UIGNsb3NlIHRoZSBvbGQgY2hhbm5lbC4gIEluLWZsaWdodCBSUENzIGhvbGRcbiAgICogdGhlaXIgb3duIHJlZmVyZW5jZSB0byBpdCB2aWEgdGhlIGNsaWVudCB0aGV5IHdlcmUgaXNzdWVkIG9uIGFuZFxuICAgKiBjb250aW51ZSB0byBjb21wbGV0aW9uIG9uIHRoYXQgY2hhbm5lbDsgdGhlIE5vZGUuanMgcnVudGltZSdzXG4gICAqIGdhcmJhZ2UgY29sbGVjdG9yIHJlbGVhc2VzIHRoZSBvbGQgY2hhbm5lbCBvbmx5IGFmdGVyIGV2ZXJ5XG4gICAqIGluLWZsaWdodCBSUEMgaGFzIHJlc29sdmVkLlxuICAgKlxuICAgKiBFYXJsaWVyIHZlcnNpb25zIGNsb3NlZCB0aGUgb2xkIGNoYW5uZWwgc3luY2hyb25vdXNseSBoZXJlLCB3aGljaFxuICAgKiBjYW5jZWxsZWQgZXZlcnkgcGVuZGluZyBSUEMgd2l0aCBhIFwiQ2hhbm5lbCBjbG9zZWQhXCItc3R5bGUgZXJyb3IuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlY29ubmVjdChob3N0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5jbG9zZWQpIHJldHVybjtcblxuICAgIHRyeSB7XG4gICAgICAvLyBCdWlsZCB0aGUgbmV3IGNvbm5lY3Rpb24gdXAtZnJvbnQ7IG9ubHkgc3dhcCBpZiBpdCBzdWNjZWVkcy5cbiAgICAgIGNvbnN0IG5ld0Nvbm4gPSB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oaG9zdCk7XG4gICAgICAvLyBPdmVyd3JpdGUgdGhlIHBvb2wgZW50cnkuICBUaGUgb2xkIENvbm5lY3Rpb24gaXMgbm93XG4gICAgICAvLyB1bnJlZmVyZW5jZWQgYnkgdGhlIHBvb2w7IGluLWZsaWdodCBSUENzIHN0aWxsIGhvbGQgaXRzXG4gICAgICAvLyBncnBjLkNsaWVudCBhbGl2ZSB2aWEgcGVyLWNhbGwgcmVmZXJlbmNlcy4gIE9uY2UgdGhleVxuICAgICAgLy8gY29tcGxldGUgdGhlIGNsaWVudCBiZWNvbWVzIGdhcmJhZ2UgYW5kIGdSUEMgY2xvc2VzIGl0XG4gICAgICAvLyBuYXR1cmFsbHkuXG4gICAgICB0aGlzLmNvbm5lY3Rpb25zLnNldChob3N0LCBuZXdDb25uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gcmVjb25uZWN0IHRvICR7aG9zdH06YCwgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsb3NlIGFsbCBjb25uZWN0aW9ucyBpbiB0aGUgcG9vbCAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbG9zZWQpIHJldHVybjtcblxuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmhlYWx0aENoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5oZWFsdGhDaGVja1RpbWVyKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNvbm4gb2YgdGhpcy5jb25uZWN0aW9ucy52YWx1ZXMoKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29ubi5jbGllbnQuY2xvc2UoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gSWdub3JlXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb25uZWN0aW9ucy5jbGVhcigpO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbnVtYmVyIG9mIGhlYWx0aHkgaG9zdHMgKi9cbiAgaGVhbHRoeUhvc3RDb3VudCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgZm9yIChjb25zdCBjb25uIG9mIHRoaXMuY29ubmVjdGlvbnMudmFsdWVzKCkpIHtcbiAgICAgIGlmIChjb25uLmhlYWx0aHkpIGNvdW50Kys7XG4gICAgfVxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGxpc3Qgb2YgY29uZmlndXJlZCBob3N0cyAqL1xuICBob3N0cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jb25uZWN0aW9ucy5rZXlzKCkpO1xuICB9XG5cbiAgLyoqIENoZWNrIGlmIHRoZSBwb29sIGlzIGNsb3NlZCAqL1xuICBpc0Nsb3NlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jbG9zZWQ7XG4gIH1cbn1cbiJdfQ==
package/dist/index.js CHANGED
@@ -3,8 +3,8 @@
3
3
  * GQLDB Node.js Driver - A gRPC-based client for GQLDB graph database.
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.GraphNotFoundError = exports.EmptyQueryError = exports.InvalidQueryError = exports.QueryTimeoutError = exports.QueryFailedError = exports.TransactionAlreadyOpenError = exports.TransactionNotFoundError = exports.TransactionFailedError = exports.NoTransactionError = exports.InvalidSessionError = exports.SessionExpiredError = exports.LogoutFailedError = exports.LoginFailedError = exports.NotLoggedInError = exports.HealthCheckFailedError = exports.AllHostsFailedError = exports.ConnectionFailedError = exports.ConnectionClosedError = exports.NoConnectionError = exports.InvalidTimeoutError = exports.NoHostsError = exports.GqldbError = exports.promisifyCallWithDeadline = exports.promisifyCall = exports.createServiceClients = exports.ConnectionPool = exports.TransactionManager = exports.SessionManager = exports.printAny = exports.printTable = exports.printPaths = exports.printEdgesWithoutSchema = exports.printEdges = exports.printNodesWithoutSchema = exports.printNodes = exports.Row = exports.Response = exports.createParameter = exports.typedValueToJS = exports.createTypedValue = exports.InsertType = exports.CacheType = exports.HealthStatus = exports.GraphType = exports.PropertyType = exports.DEFAULT_CONFIG = exports.validateConfig = exports.createConfig = exports.ConfigBuilder = exports.GqldbClient = void 0;
7
- exports.VERSION = exports.UnsupportedTypeError = exports.TypeConversionError = exports.InvalidTypeError = exports.ExportFailedError = exports.DeleteFailedError = exports.InsertFailedError = exports.DropGraphFailedError = exports.CreateGraphFailedError = exports.GraphExistsError = void 0;
6
+ exports.InvalidQueryError = exports.QueryTimeoutError = exports.QueryFailedError = exports.TransactionAlreadyOpenError = exports.TransactionNotFoundError = exports.TransactionFailedError = exports.NoTransactionError = exports.InvalidSessionError = exports.SessionExpiredError = exports.LogoutFailedError = exports.LoginFailedError = exports.NotLoggedInError = exports.HealthCheckFailedError = exports.AllHostsFailedError = exports.ConnectionFailedError = exports.ConnectionClosedError = exports.NoConnectionError = exports.InvalidTimeoutError = exports.NoHostsError = exports.GqldbError = exports.promisifyCallWithDeadline = exports.promisifyCall = exports.createServiceClients = exports.ConnectionPool = exports.TransactionManager = exports.SessionManager = exports.printAny = exports.printTable = exports.printPaths = exports.printEdgesWithoutSchema = exports.printEdges = exports.printNodesWithoutSchema = exports.printNodes = exports.Row = exports.Response = exports.Point3D = exports.Point = exports.createParameter = exports.typedValueToJS = exports.createTypedValue = exports.InsertType = exports.CacheType = exports.HealthStatus = exports.GraphType = exports.PropertyType = exports.DEFAULT_CONFIG = exports.validateConfig = exports.createConfig = exports.ConfigBuilder = exports.GqldbClient = void 0;
7
+ exports.VERSION = exports.UnsupportedTypeError = exports.TypeConversionError = exports.InvalidTypeError = exports.ExportFailedError = exports.DeleteFailedError = exports.InsertFailedError = exports.DropGraphFailedError = exports.CreateGraphFailedError = exports.GraphExistsError = exports.GraphNotFoundError = exports.EmptyQueryError = void 0;
8
8
  // Main client
9
9
  var client_1 = require("./client");
10
10
  Object.defineProperty(exports, "GqldbClient", { enumerable: true, get: function () { return client_1.GqldbClient; } });
@@ -24,6 +24,8 @@ Object.defineProperty(exports, "InsertType", { enumerable: true, get: function (
24
24
  Object.defineProperty(exports, "createTypedValue", { enumerable: true, get: function () { return types_1.createTypedValue; } });
25
25
  Object.defineProperty(exports, "typedValueToJS", { enumerable: true, get: function () { return types_1.typedValueToJS; } });
26
26
  Object.defineProperty(exports, "createParameter", { enumerable: true, get: function () { return types_1.createParameter; } });
27
+ Object.defineProperty(exports, "Point", { enumerable: true, get: function () { return types_1.Point; } });
28
+ Object.defineProperty(exports, "Point3D", { enumerable: true, get: function () { return types_1.Point3D; } });
27
29
  // Response
28
30
  var response_1 = require("./response");
29
31
  Object.defineProperty(exports, "Response", { enumerable: true, get: function () { return response_1.Response; } });
@@ -86,4 +88,4 @@ Object.defineProperty(exports, "TypeConversionError", { enumerable: true, get: f
86
88
  Object.defineProperty(exports, "UnsupportedTypeError", { enumerable: true, get: function () { return errors_1.UnsupportedTypeError; } });
87
89
  // Version
88
90
  exports.VERSION = '0.1.0';
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7O0FBRUgsY0FBYztBQUNkLG1DQUFpRjtBQUF4RSxxR0FBQSxXQUFXLE9BQUE7QUFFcEIsZ0JBQWdCO0FBQ2hCLG1DQUFvRztBQUE5RSx1R0FBQSxhQUFhLE9BQUE7QUFBRSxzR0FBQSxZQUFZLE9BQUE7QUFBRSx3R0FBQSxjQUFjLE9BQUE7QUFBRSx3R0FBQSxjQUFjLE9BQUE7QUFFakYsUUFBUTtBQUNSLGlDQTBDaUI7QUF6Q2YscUdBQUEsWUFBWSxPQUFBO0FBQ1osa0dBQUEsU0FBUyxPQUFBO0FBQ1QscUdBQUEsWUFBWSxPQUFBO0FBQ1osa0dBQUEsU0FBUyxPQUFBO0FBQ1QsbUdBQUEsVUFBVSxPQUFBO0FBRVYseUdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsdUdBQUEsY0FBYyxPQUFBO0FBRWQsd0dBQUEsZUFBZSxPQUFBO0FBa0NqQixXQUFXO0FBQ1gsdUNBYW9CO0FBWmxCLG9HQUFBLFFBQVEsT0FBQTtBQUNSLCtGQUFBLEdBQUcsT0FBQTtBQWFMLFdBQVc7QUFDWCx1Q0FRb0I7QUFQbEIsc0dBQUEsVUFBVSxPQUFBO0FBQ1YsbUhBQUEsdUJBQXVCLE9BQUE7QUFDdkIsc0dBQUEsVUFBVSxPQUFBO0FBQ1YsbUhBQUEsdUJBQXVCLE9BQUE7QUFDdkIsc0dBQUEsVUFBVSxPQUFBO0FBQ1Ysc0dBQUEsVUFBVSxPQUFBO0FBQ1Ysb0dBQUEsUUFBUSxPQUFBO0FBR1YsVUFBVTtBQUNWLHFDQUFvRDtBQUFsQyx5R0FBQSxjQUFjLE9BQUE7QUFFaEMsY0FBYztBQUNkLDZDQUFnRTtBQUExQyxpSEFBQSxrQkFBa0IsT0FBQTtBQUV4QyxhQUFhO0FBQ2IsMkNBQThDO0FBQXJDLDRHQUFBLGNBQWMsT0FBQTtBQUV2QixXQUFXO0FBQ1gsdUNBQTRHO0FBQW5HLGdIQUFBLG9CQUFvQixPQUFBO0FBQWtCLHlHQUFBLGFBQWEsT0FBQTtBQUFFLHFIQUFBLHlCQUF5QixPQUFBO0FBRXZGLFNBQVM7QUFDVCxtQ0FnQ2tCO0FBL0JoQixvR0FBQSxVQUFVLE9BQUE7QUFDVixzR0FBQSxZQUFZLE9BQUE7QUFDWiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwrR0FBQSxxQkFBcUIsT0FBQTtBQUNyQiwrR0FBQSxxQkFBcUIsT0FBQTtBQUNyQiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQixnSEFBQSxzQkFBc0IsT0FBQTtBQUN0QiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQiw0R0FBQSxrQkFBa0IsT0FBQTtBQUNsQixnSEFBQSxzQkFBc0IsT0FBQTtBQUN0QixrSEFBQSx3QkFBd0IsT0FBQTtBQUN4QixxSEFBQSwyQkFBMkIsT0FBQTtBQUMzQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQix5R0FBQSxlQUFlLE9BQUE7QUFDZiw0R0FBQSxrQkFBa0IsT0FBQTtBQUNsQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQixnSEFBQSxzQkFBc0IsT0FBQTtBQUN0Qiw4R0FBQSxvQkFBb0IsT0FBQTtBQUNwQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwyR0FBQSxpQkFBaUIsT0FBQTtBQUNqQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiw2R0FBQSxtQkFBbUIsT0FBQTtBQUNuQiw4R0FBQSxvQkFBb0IsT0FBQTtBQUd0QixVQUFVO0FBQ0csUUFBQSxPQUFPLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHUUxEQiBOb2RlLmpzIERyaXZlciAtIEEgZ1JQQy1iYXNlZCBjbGllbnQgZm9yIEdRTERCIGdyYXBoIGRhdGFiYXNlLlxuICovXG5cbi8vIE1haW4gY2xpZW50XG5leHBvcnQgeyBHcWxkYkNsaWVudCwgUXVlcnlDb25maWcsIEluc2VydENvbmZpZywgSGVhbHRoV2F0Y2hlciB9IGZyb20gJy4vY2xpZW50JztcblxuLy8gQ29uZmlndXJhdGlvblxuZXhwb3J0IHsgR3FsZGJDb25maWcsIENvbmZpZ0J1aWxkZXIsIGNyZWF0ZUNvbmZpZywgdmFsaWRhdGVDb25maWcsIERFRkFVTFRfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vLyBUeXBlc1xuZXhwb3J0IHtcbiAgUHJvcGVydHlUeXBlLFxuICBHcmFwaFR5cGUsXG4gIEhlYWx0aFN0YXR1cyxcbiAgQ2FjaGVUeXBlLFxuICBJbnNlcnRUeXBlLFxuICBUeXBlZFZhbHVlLFxuICBjcmVhdGVUeXBlZFZhbHVlLFxuICB0eXBlZFZhbHVlVG9KUyxcbiAgUGFyYW1ldGVyLFxuICBjcmVhdGVQYXJhbWV0ZXIsXG4gIFBvaW50LFxuICBQb2ludDNELFxuICBOb2RlRGF0YSxcbiAgRWRnZURhdGEsXG4gIEdyYXBoSW5mbyxcbiAgVHJhbnNhY3Rpb25JbmZvLFxuICBBU1RDYWNoZVN0YXRzLFxuICBQbGFuQ2FjaGVTdGF0cyxcbiAgQ2FjaGVTdGF0cyxcbiAgU3RhdGlzdGljcyxcbiAgU3lzdGVtTWV0cmljcyxcbiAgQ3B1TWV0cmljcyxcbiAgTWVtb3J5TWV0cmljcyxcbiAgRGlza0lPTWV0cmljcyxcbiAgU3RvcmFnZU1ldHJpY3MsXG4gIE5ldHdvcmtNZXRyaWNzLFxuICBFeHBvcnRlZE5vZGUsXG4gIEV4cG9ydGVkRWRnZSxcbiAgQnVsa0NyZWF0ZU5vZGVzT3B0aW9ucyxcbiAgQnVsa0NyZWF0ZUVkZ2VzT3B0aW9ucyxcbiAgQnVsa0ltcG9ydE9wdGlvbnMsXG4gIEJ1bGtJbXBvcnRTZXNzaW9uLFxuICBDaGVja3BvaW50UmVzdWx0LFxuICBFbmRCdWxrSW1wb3J0UmVzdWx0LFxuICBBYm9ydEJ1bGtJbXBvcnRSZXN1bHQsXG4gIEJ1bGtJbXBvcnRTdGF0dXMsXG4gIFNjaGVtYSxcbiAgUHJvcGVydHlEZWYsXG4gIEhlYWRlcixcbiAgVGFibGUsXG4gIEF0dHIsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBSZXNwb25zZVxuZXhwb3J0IHtcbiAgUmVzcG9uc2UsXG4gIFJvdyxcbiAgSW5zZXJ0Tm9kZXNSZXN1bHQsXG4gIEluc2VydEVkZ2VzUmVzdWx0LFxuICBEZWxldGVSZXN1bHQsXG4gIEV4cG9ydE5vZGVzUmVzdWx0LFxuICBFeHBvcnRFZGdlc1Jlc3VsdCxcbiAgTm9kZSxcbiAgRWRnZSxcbiAgUGF0aCxcbiAgTm9kZVJlc3VsdCxcbiAgRWRnZVJlc3VsdCxcbn0gZnJvbSAnLi9yZXNwb25zZSc7XG5cbi8vIFByaW50ZXJzXG5leHBvcnQge1xuICBwcmludE5vZGVzLFxuICBwcmludE5vZGVzV2l0aG91dFNjaGVtYSxcbiAgcHJpbnRFZGdlcyxcbiAgcHJpbnRFZGdlc1dpdGhvdXRTY2hlbWEsXG4gIHByaW50UGF0aHMsXG4gIHByaW50VGFibGUsXG4gIHByaW50QW55LFxufSBmcm9tICcuL3ByaW50ZXJzJztcblxuLy8gU2Vzc2lvblxuZXhwb3J0IHsgU2Vzc2lvbiwgU2Vzc2lvbk1hbmFnZXIgfSBmcm9tICcuL3Nlc3Npb24nO1xuXG4vLyBUcmFuc2FjdGlvblxuZXhwb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uTWFuYWdlciB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuXG4vLyBDb25uZWN0aW9uXG5leHBvcnQgeyBDb25uZWN0aW9uUG9vbCB9IGZyb20gJy4vY29ubmVjdGlvbic7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgeyBjcmVhdGVTZXJ2aWNlQ2xpZW50cywgU2VydmljZUNsaWVudHMsIHByb21pc2lmeUNhbGwsIHByb21pc2lmeUNhbGxXaXRoRGVhZGxpbmUgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuLy8gRXJyb3JzXG5leHBvcnQge1xuICBHcWxkYkVycm9yLFxuICBOb0hvc3RzRXJyb3IsXG4gIEludmFsaWRUaW1lb3V0RXJyb3IsXG4gIE5vQ29ubmVjdGlvbkVycm9yLFxuICBDb25uZWN0aW9uQ2xvc2VkRXJyb3IsXG4gIENvbm5lY3Rpb25GYWlsZWRFcnJvcixcbiAgQWxsSG9zdHNGYWlsZWRFcnJvcixcbiAgSGVhbHRoQ2hlY2tGYWlsZWRFcnJvcixcbiAgTm90TG9nZ2VkSW5FcnJvcixcbiAgTG9naW5GYWlsZWRFcnJvcixcbiAgTG9nb3V0RmFpbGVkRXJyb3IsXG4gIFNlc3Npb25FeHBpcmVkRXJyb3IsXG4gIEludmFsaWRTZXNzaW9uRXJyb3IsXG4gIE5vVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25GYWlsZWRFcnJvcixcbiAgVHJhbnNhY3Rpb25Ob3RGb3VuZEVycm9yLFxuICBUcmFuc2FjdGlvbkFscmVhZHlPcGVuRXJyb3IsXG4gIFF1ZXJ5RmFpbGVkRXJyb3IsXG4gIFF1ZXJ5VGltZW91dEVycm9yLFxuICBJbnZhbGlkUXVlcnlFcnJvcixcbiAgRW1wdHlRdWVyeUVycm9yLFxuICBHcmFwaE5vdEZvdW5kRXJyb3IsXG4gIEdyYXBoRXhpc3RzRXJyb3IsXG4gIENyZWF0ZUdyYXBoRmFpbGVkRXJyb3IsXG4gIERyb3BHcmFwaEZhaWxlZEVycm9yLFxuICBJbnNlcnRGYWlsZWRFcnJvcixcbiAgRGVsZXRlRmFpbGVkRXJyb3IsXG4gIEV4cG9ydEZhaWxlZEVycm9yLFxuICBJbnZhbGlkVHlwZUVycm9yLFxuICBUeXBlQ29udmVyc2lvbkVycm9yLFxuICBVbnN1cHBvcnRlZFR5cGVFcnJvcixcbn0gZnJvbSAnLi9lcnJvcnMnO1xuXG4vLyBWZXJzaW9uXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9ICcwLjEuMCc7XG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7O0FBRUgsY0FBYztBQUNkLG1DQUFpRjtBQUF4RSxxR0FBQSxXQUFXLE9BQUE7QUFFcEIsZ0JBQWdCO0FBQ2hCLG1DQUFvRztBQUE5RSx1R0FBQSxhQUFhLE9BQUE7QUFBRSxzR0FBQSxZQUFZLE9BQUE7QUFBRSx3R0FBQSxjQUFjLE9BQUE7QUFBRSx3R0FBQSxjQUFjLE9BQUE7QUFFakYsUUFBUTtBQUNSLGlDQTBDaUI7QUF6Q2YscUdBQUEsWUFBWSxPQUFBO0FBQ1osa0dBQUEsU0FBUyxPQUFBO0FBQ1QscUdBQUEsWUFBWSxPQUFBO0FBQ1osa0dBQUEsU0FBUyxPQUFBO0FBQ1QsbUdBQUEsVUFBVSxPQUFBO0FBRVYseUdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsdUdBQUEsY0FBYyxPQUFBO0FBRWQsd0dBQUEsZUFBZSxPQUFBO0FBQ2YsOEZBQUEsS0FBSyxPQUFBO0FBQ0wsZ0dBQUEsT0FBTyxPQUFBO0FBZ0NULFdBQVc7QUFDWCx1Q0Fhb0I7QUFabEIsb0dBQUEsUUFBUSxPQUFBO0FBQ1IsK0ZBQUEsR0FBRyxPQUFBO0FBYUwsV0FBVztBQUNYLHVDQVFvQjtBQVBsQixzR0FBQSxVQUFVLE9BQUE7QUFDVixtSEFBQSx1QkFBdUIsT0FBQTtBQUN2QixzR0FBQSxVQUFVLE9BQUE7QUFDVixtSEFBQSx1QkFBdUIsT0FBQTtBQUN2QixzR0FBQSxVQUFVLE9BQUE7QUFDVixzR0FBQSxVQUFVLE9BQUE7QUFDVixvR0FBQSxRQUFRLE9BQUE7QUFHVixVQUFVO0FBQ1YscUNBQW9EO0FBQWxDLHlHQUFBLGNBQWMsT0FBQTtBQUVoQyxjQUFjO0FBQ2QsNkNBQWdFO0FBQTFDLGlIQUFBLGtCQUFrQixPQUFBO0FBRXhDLGFBQWE7QUFDYiwyQ0FBOEM7QUFBckMsNEdBQUEsY0FBYyxPQUFBO0FBRXZCLFdBQVc7QUFDWCx1Q0FBNEc7QUFBbkcsZ0hBQUEsb0JBQW9CLE9BQUE7QUFBa0IseUdBQUEsYUFBYSxPQUFBO0FBQUUscUhBQUEseUJBQXlCLE9BQUE7QUFFdkYsU0FBUztBQUNULG1DQWdDa0I7QUEvQmhCLG9HQUFBLFVBQVUsT0FBQTtBQUNWLHNHQUFBLFlBQVksT0FBQTtBQUNaLDZHQUFBLG1CQUFtQixPQUFBO0FBQ25CLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLCtHQUFBLHFCQUFxQixPQUFBO0FBQ3JCLCtHQUFBLHFCQUFxQixPQUFBO0FBQ3JCLDZHQUFBLG1CQUFtQixPQUFBO0FBQ25CLGdIQUFBLHNCQUFzQixPQUFBO0FBQ3RCLDBHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDBHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDZHQUFBLG1CQUFtQixPQUFBO0FBQ25CLDZHQUFBLG1CQUFtQixPQUFBO0FBQ25CLDRHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLGdIQUFBLHNCQUFzQixPQUFBO0FBQ3RCLGtIQUFBLHdCQUF3QixPQUFBO0FBQ3hCLHFIQUFBLDJCQUEyQixPQUFBO0FBQzNCLDBHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLHlHQUFBLGVBQWUsT0FBQTtBQUNmLDRHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDBHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLGdIQUFBLHNCQUFzQixPQUFBO0FBQ3RCLDhHQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDBHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDZHQUFBLG1CQUFtQixPQUFBO0FBQ25CLDhHQUFBLG9CQUFvQixPQUFBO0FBR3RCLFVBQVU7QUFDRyxRQUFBLE9BQU8sR0FBRyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdRTERCIE5vZGUuanMgRHJpdmVyIC0gQSBnUlBDLWJhc2VkIGNsaWVudCBmb3IgR1FMREIgZ3JhcGggZGF0YWJhc2UuXG4gKi9cblxuLy8gTWFpbiBjbGllbnRcbmV4cG9ydCB7IEdxbGRiQ2xpZW50LCBRdWVyeUNvbmZpZywgSW5zZXJ0Q29uZmlnLCBIZWFsdGhXYXRjaGVyIH0gZnJvbSAnLi9jbGllbnQnO1xuXG4vLyBDb25maWd1cmF0aW9uXG5leHBvcnQgeyBHcWxkYkNvbmZpZywgQ29uZmlnQnVpbGRlciwgY3JlYXRlQ29uZmlnLCB2YWxpZGF0ZUNvbmZpZywgREVGQVVMVF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5cbi8vIFR5cGVzXG5leHBvcnQge1xuICBQcm9wZXJ0eVR5cGUsXG4gIEdyYXBoVHlwZSxcbiAgSGVhbHRoU3RhdHVzLFxuICBDYWNoZVR5cGUsXG4gIEluc2VydFR5cGUsXG4gIFR5cGVkVmFsdWUsXG4gIGNyZWF0ZVR5cGVkVmFsdWUsXG4gIHR5cGVkVmFsdWVUb0pTLFxuICBQYXJhbWV0ZXIsXG4gIGNyZWF0ZVBhcmFtZXRlcixcbiAgUG9pbnQsXG4gIFBvaW50M0QsXG4gIE5vZGVEYXRhLFxuICBFZGdlRGF0YSxcbiAgR3JhcGhJbmZvLFxuICBUcmFuc2FjdGlvbkluZm8sXG4gIEFTVENhY2hlU3RhdHMsXG4gIFBsYW5DYWNoZVN0YXRzLFxuICBDYWNoZVN0YXRzLFxuICBTdGF0aXN0aWNzLFxuICBTeXN0ZW1NZXRyaWNzLFxuICBDcHVNZXRyaWNzLFxuICBNZW1vcnlNZXRyaWNzLFxuICBEaXNrSU9NZXRyaWNzLFxuICBTdG9yYWdlTWV0cmljcyxcbiAgTmV0d29ya01ldHJpY3MsXG4gIEV4cG9ydGVkTm9kZSxcbiAgRXhwb3J0ZWRFZGdlLFxuICBCdWxrQ3JlYXRlTm9kZXNPcHRpb25zLFxuICBCdWxrQ3JlYXRlRWRnZXNPcHRpb25zLFxuICBCdWxrSW1wb3J0T3B0aW9ucyxcbiAgQnVsa0ltcG9ydFNlc3Npb24sXG4gIENoZWNrcG9pbnRSZXN1bHQsXG4gIEVuZEJ1bGtJbXBvcnRSZXN1bHQsXG4gIEFib3J0QnVsa0ltcG9ydFJlc3VsdCxcbiAgQnVsa0ltcG9ydFN0YXR1cyxcbiAgU2NoZW1hLFxuICBQcm9wZXJ0eURlZixcbiAgSGVhZGVyLFxuICBUYWJsZSxcbiAgQXR0cixcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIFJlc3BvbnNlXG5leHBvcnQge1xuICBSZXNwb25zZSxcbiAgUm93LFxuICBJbnNlcnROb2Rlc1Jlc3VsdCxcbiAgSW5zZXJ0RWRnZXNSZXN1bHQsXG4gIERlbGV0ZVJlc3VsdCxcbiAgRXhwb3J0Tm9kZXNSZXN1bHQsXG4gIEV4cG9ydEVkZ2VzUmVzdWx0LFxuICBOb2RlLFxuICBFZGdlLFxuICBQYXRoLFxuICBOb2RlUmVzdWx0LFxuICBFZGdlUmVzdWx0LFxufSBmcm9tICcuL3Jlc3BvbnNlJztcblxuLy8gUHJpbnRlcnNcbmV4cG9ydCB7XG4gIHByaW50Tm9kZXMsXG4gIHByaW50Tm9kZXNXaXRob3V0U2NoZW1hLFxuICBwcmludEVkZ2VzLFxuICBwcmludEVkZ2VzV2l0aG91dFNjaGVtYSxcbiAgcHJpbnRQYXRocyxcbiAgcHJpbnRUYWJsZSxcbiAgcHJpbnRBbnksXG59IGZyb20gJy4vcHJpbnRlcnMnO1xuXG4vLyBTZXNzaW9uXG5leHBvcnQgeyBTZXNzaW9uLCBTZXNzaW9uTWFuYWdlciB9IGZyb20gJy4vc2Vzc2lvbic7XG5cbi8vIFRyYW5zYWN0aW9uXG5leHBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25NYW5hZ2VyIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5cbi8vIENvbm5lY3Rpb25cbmV4cG9ydCB7IENvbm5lY3Rpb25Qb29sIH0gZnJvbSAnLi9jb25uZWN0aW9uJztcblxuLy8gU2VydmljZXNcbmV4cG9ydCB7IGNyZWF0ZVNlcnZpY2VDbGllbnRzLCBTZXJ2aWNlQ2xpZW50cywgcHJvbWlzaWZ5Q2FsbCwgcHJvbWlzaWZ5Q2FsbFdpdGhEZWFkbGluZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG4vLyBFcnJvcnNcbmV4cG9ydCB7XG4gIEdxbGRiRXJyb3IsXG4gIE5vSG9zdHNFcnJvcixcbiAgSW52YWxpZFRpbWVvdXRFcnJvcixcbiAgTm9Db25uZWN0aW9uRXJyb3IsXG4gIENvbm5lY3Rpb25DbG9zZWRFcnJvcixcbiAgQ29ubmVjdGlvbkZhaWxlZEVycm9yLFxuICBBbGxIb3N0c0ZhaWxlZEVycm9yLFxuICBIZWFsdGhDaGVja0ZhaWxlZEVycm9yLFxuICBOb3RMb2dnZWRJbkVycm9yLFxuICBMb2dpbkZhaWxlZEVycm9yLFxuICBMb2dvdXRGYWlsZWRFcnJvcixcbiAgU2Vzc2lvbkV4cGlyZWRFcnJvcixcbiAgSW52YWxpZFNlc3Npb25FcnJvcixcbiAgTm9UcmFuc2FjdGlvbkVycm9yLFxuICBUcmFuc2FjdGlvbkZhaWxlZEVycm9yLFxuICBUcmFuc2FjdGlvbk5vdEZvdW5kRXJyb3IsXG4gIFRyYW5zYWN0aW9uQWxyZWFkeU9wZW5FcnJvcixcbiAgUXVlcnlGYWlsZWRFcnJvcixcbiAgUXVlcnlUaW1lb3V0RXJyb3IsXG4gIEludmFsaWRRdWVyeUVycm9yLFxuICBFbXB0eVF1ZXJ5RXJyb3IsXG4gIEdyYXBoTm90Rm91bmRFcnJvcixcbiAgR3JhcGhFeGlzdHNFcnJvcixcbiAgQ3JlYXRlR3JhcGhGYWlsZWRFcnJvcixcbiAgRHJvcEdyYXBoRmFpbGVkRXJyb3IsXG4gIEluc2VydEZhaWxlZEVycm9yLFxuICBEZWxldGVGYWlsZWRFcnJvcixcbiAgRXhwb3J0RmFpbGVkRXJyb3IsXG4gIEludmFsaWRUeXBlRXJyb3IsXG4gIFR5cGVDb252ZXJzaW9uRXJyb3IsXG4gIFVuc3VwcG9ydGVkVHlwZUVycm9yLFxufSBmcm9tICcuL2Vycm9ycyc7XG5cbi8vIFZlcnNpb25cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzAuMS4wJztcbiJdfQ==
@@ -2,13 +2,55 @@
2
2
  * Response handling for GQLDB Node.js driver.
3
3
  */
4
4
  import { PropertyType, Schema, Table, Attr } from './types';
5
- /** Represents a single row in the query result */
6
- export declare class Row {
5
+ /**
6
+ * Represents a single row in the query result.
7
+ *
8
+ * Positional access via `row.get(i)` is always available. Name-based
9
+ * access via `row.getByName(name)` / `row.has(name)` requires the parent
10
+ * Response to have populated {@link Row.columnNames} (Response's
11
+ * constructor does this automatically).
12
+ *
13
+ * The row is iterable — `for (const v of row) ...` yields decoded
14
+ * column values (same as repeated `row.get(i)`).
15
+ */
16
+ export declare class Row implements Iterable<any> {
7
17
  readonly values: any[];
8
18
  readonly types: PropertyType[];
19
+ /**
20
+ * Column names for name-based access. Injected by the parent Response
21
+ * constructor so that `row.getByName('col')` works without going
22
+ * through Response.getByName(row, 'col').
23
+ */
24
+ columnNames: readonly string[];
9
25
  constructor(values: any[], types?: PropertyType[]);
10
26
  /** Get the value at the given column index */
11
27
  get(index: number): any;
28
+ /**
29
+ * Get the value for the given column name. Requires `columnNames` to
30
+ * have been populated by the parent Response.
31
+ */
32
+ getByName(name: string): any;
33
+ /** Returns true if this row knows the given column name. */
34
+ has(name: string): boolean;
35
+ /** Number of columns in this row. */
36
+ get length(): number;
37
+ /** Iterate over decoded column values. */
38
+ [Symbol.iterator](): IterableIterator<any>;
39
+ /**
40
+ * Formatted representation. When `columnNames` is populated:
41
+ * `Row(name1=value1, name2=value2)`
42
+ * Otherwise:
43
+ * `Row(value0, value1)`
44
+ * Mirrors the Python driver's `repr(row)` layout.
45
+ */
46
+ toString(): string;
47
+ /**
48
+ * Structural equality: same column names (or both empty) AND decoded
49
+ * column values compare equal pairwise. Mirrors Python `Row.__eq__`.
50
+ * Uses JSON.stringify for nested value comparison — adequate for the
51
+ * primitive/object types decoded from the wire.
52
+ */
53
+ equals(other: Row): boolean;
12
54
  /** Get the PropertyType at the given column index */
13
55
  getType(index: number): PropertyType;
14
56
  /** Get the value at the given column index as a string */