@grafema/rfdb-client 0.2.0-beta → 0.2.5-beta
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.
- package/README.md +4 -2
- package/dist/client.d.ts +59 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +136 -6
- package/dist/client.js.map +1 -0
- package/dist/client.test.js +1 -0
- package/dist/client.test.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/protocol.js +1 -0
- package/dist/protocol.js.map +1 -0
- package/package.json +8 -5
- package/ts/client.ts +171 -7
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# @grafema/rfdb-client
|
|
2
2
|
|
|
3
|
-
> TypeScript client for RFDB
|
|
3
|
+
> TypeScript client for RFDB (Rega Flow Database)
|
|
4
|
+
|
|
5
|
+
*Named after the author's wife Regina (Rega for short). The Hebrew word רגע (rega, "moment") conveniently fits the concept — a flow of discrete moments captured in the graph.*
|
|
4
6
|
|
|
5
7
|
**Warning: This package is in early alpha stage and is not recommended for production use.**
|
|
6
8
|
|
|
@@ -12,7 +14,7 @@ npm install @grafema/rfdb-client
|
|
|
12
14
|
|
|
13
15
|
## Overview
|
|
14
16
|
|
|
15
|
-
High-performance TypeScript client for RFDB (
|
|
17
|
+
High-performance TypeScript client for RFDB (Rega Flow Database) — a graph database optimized for code analysis. Communicates with RFDB server via Unix socket using MessagePack protocol.
|
|
16
18
|
|
|
17
19
|
## Features
|
|
18
20
|
|
package/dist/client.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* with a separate rfdb-server process over Unix socket + MessagePack.
|
|
6
6
|
*/
|
|
7
7
|
import { EventEmitter } from 'events';
|
|
8
|
-
import type { WireNode, WireEdge, RFDBResponse, IRFDBClient, AttrQuery, DatalogResult, NodeType, EdgeType } from '@grafema/types';
|
|
8
|
+
import type { WireNode, WireEdge, RFDBResponse, IRFDBClient, AttrQuery, FieldDeclaration, DatalogResult, NodeType, EdgeType, HelloResponse, CreateDatabaseResponse, OpenDatabaseResponse, ListDatabasesResponse, CurrentDatabaseResponse } from '@grafema/types';
|
|
9
9
|
export declare class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
10
10
|
readonly socketPath: string;
|
|
11
11
|
private socket;
|
|
@@ -18,6 +18,10 @@ export declare class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
18
18
|
* Connect to RFDB server
|
|
19
19
|
*/
|
|
20
20
|
connect(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Enhance connection errors with helpful messages about --auto-start
|
|
23
|
+
*/
|
|
24
|
+
private _enhanceConnectionError;
|
|
21
25
|
/**
|
|
22
26
|
* Handle incoming data, parse framed messages
|
|
23
27
|
*/
|
|
@@ -27,7 +31,12 @@ export declare class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
27
31
|
*/
|
|
28
32
|
private _handleResponse;
|
|
29
33
|
/**
|
|
30
|
-
*
|
|
34
|
+
* Default timeout for operations (60 seconds)
|
|
35
|
+
* Flush/compact may take time for large graphs, but should not hang indefinitely
|
|
36
|
+
*/
|
|
37
|
+
private static readonly DEFAULT_TIMEOUT_MS;
|
|
38
|
+
/**
|
|
39
|
+
* Send a request and wait for response with timeout
|
|
31
40
|
*/
|
|
32
41
|
private _send;
|
|
33
42
|
/**
|
|
@@ -148,6 +157,12 @@ export declare class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
148
157
|
* Update node version
|
|
149
158
|
*/
|
|
150
159
|
updateNodeVersion(id: string, version: string): Promise<RFDBResponse>;
|
|
160
|
+
/**
|
|
161
|
+
* Declare metadata fields for server-side indexing.
|
|
162
|
+
* Call before adding nodes so the server builds indexes on flush.
|
|
163
|
+
* Returns the number of declared fields.
|
|
164
|
+
*/
|
|
165
|
+
declareFields(fields: FieldDeclaration[]): Promise<number>;
|
|
151
166
|
/**
|
|
152
167
|
* Load Datalog rules
|
|
153
168
|
*/
|
|
@@ -168,6 +183,48 @@ export declare class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
168
183
|
* Ping the server
|
|
169
184
|
*/
|
|
170
185
|
ping(): Promise<string | false>;
|
|
186
|
+
/**
|
|
187
|
+
* Negotiate protocol version with server
|
|
188
|
+
* @param protocolVersion - Protocol version to negotiate (default: 2)
|
|
189
|
+
* @returns Server capabilities including protocolVersion, serverVersion, features
|
|
190
|
+
*/
|
|
191
|
+
hello(protocolVersion?: number): Promise<HelloResponse>;
|
|
192
|
+
/**
|
|
193
|
+
* Create a new database
|
|
194
|
+
* @param name - Database name (alphanumeric, _, -)
|
|
195
|
+
* @param ephemeral - If true, database is in-memory and auto-cleaned on disconnect
|
|
196
|
+
*/
|
|
197
|
+
createDatabase(name: string, ephemeral?: boolean): Promise<CreateDatabaseResponse>;
|
|
198
|
+
/**
|
|
199
|
+
* Open a database and set as current for this session
|
|
200
|
+
* @param name - Database name
|
|
201
|
+
* @param mode - 'rw' (read-write) or 'ro' (read-only)
|
|
202
|
+
*/
|
|
203
|
+
openDatabase(name: string, mode?: 'rw' | 'ro'): Promise<OpenDatabaseResponse>;
|
|
204
|
+
/**
|
|
205
|
+
* Close current database
|
|
206
|
+
*/
|
|
207
|
+
closeDatabase(): Promise<RFDBResponse>;
|
|
208
|
+
/**
|
|
209
|
+
* Drop (delete) a database - must not be in use
|
|
210
|
+
* @param name - Database name
|
|
211
|
+
*/
|
|
212
|
+
dropDatabase(name: string): Promise<RFDBResponse>;
|
|
213
|
+
/**
|
|
214
|
+
* List all databases
|
|
215
|
+
*/
|
|
216
|
+
listDatabases(): Promise<ListDatabasesResponse>;
|
|
217
|
+
/**
|
|
218
|
+
* Get current database for this session
|
|
219
|
+
*/
|
|
220
|
+
currentDatabase(): Promise<CurrentDatabaseResponse>;
|
|
221
|
+
/**
|
|
222
|
+
* Unref the socket so it doesn't keep the process alive.
|
|
223
|
+
*
|
|
224
|
+
* Call this in test environments to allow process to exit
|
|
225
|
+
* even if connections remain open.
|
|
226
|
+
*/
|
|
227
|
+
unref(): void;
|
|
171
228
|
/**
|
|
172
229
|
* Close connection
|
|
173
230
|
*/
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAEV,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,QAAQ,EACR,QAAQ,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -37,11 +37,12 @@ export class RFDBClient extends EventEmitter {
|
|
|
37
37
|
resolve();
|
|
38
38
|
});
|
|
39
39
|
this.socket.on('error', (err) => {
|
|
40
|
+
const enhancedError = this._enhanceConnectionError(err);
|
|
40
41
|
if (!this.connected) {
|
|
41
|
-
reject(
|
|
42
|
+
reject(enhancedError);
|
|
42
43
|
}
|
|
43
44
|
else {
|
|
44
|
-
this.emit('error',
|
|
45
|
+
this.emit('error', enhancedError);
|
|
45
46
|
}
|
|
46
47
|
});
|
|
47
48
|
this.socket.on('close', () => {
|
|
@@ -58,6 +59,28 @@ export class RFDBClient extends EventEmitter {
|
|
|
58
59
|
});
|
|
59
60
|
});
|
|
60
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Enhance connection errors with helpful messages about --auto-start
|
|
64
|
+
*/
|
|
65
|
+
_enhanceConnectionError(err) {
|
|
66
|
+
const code = err.code;
|
|
67
|
+
if (code === 'EPIPE' || code === 'ECONNRESET') {
|
|
68
|
+
return new Error(`RFDB server connection lost (${code}). The server may have crashed or been stopped.\n` +
|
|
69
|
+
`Try running with --auto-start flag to automatically start the server, or manually start it with:\n` +
|
|
70
|
+
` rfdb-server start`);
|
|
71
|
+
}
|
|
72
|
+
if (code === 'ENOENT') {
|
|
73
|
+
return new Error(`RFDB server socket not found at ${this.socketPath}.\n` +
|
|
74
|
+
`The server is not running. Use --auto-start flag to automatically start it, or manually start with:\n` +
|
|
75
|
+
` rfdb-server start`);
|
|
76
|
+
}
|
|
77
|
+
if (code === 'ECONNREFUSED') {
|
|
78
|
+
return new Error(`Cannot connect to RFDB server at ${this.socketPath} (connection refused).\n` +
|
|
79
|
+
`The server may not be running. Use --auto-start flag to automatically start it, or manually start with:\n` +
|
|
80
|
+
` rfdb-server start`);
|
|
81
|
+
}
|
|
82
|
+
return err;
|
|
83
|
+
}
|
|
61
84
|
/**
|
|
62
85
|
* Handle incoming data, parse framed messages
|
|
63
86
|
*/
|
|
@@ -79,7 +102,8 @@ export class RFDBClient extends EventEmitter {
|
|
|
79
102
|
this._handleResponse(response);
|
|
80
103
|
}
|
|
81
104
|
catch (err) {
|
|
82
|
-
|
|
105
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
106
|
+
this.emit('error', new Error(`Failed to decode response: ${message}`));
|
|
83
107
|
}
|
|
84
108
|
}
|
|
85
109
|
}
|
|
@@ -102,9 +126,14 @@ export class RFDBClient extends EventEmitter {
|
|
|
102
126
|
}
|
|
103
127
|
}
|
|
104
128
|
/**
|
|
105
|
-
*
|
|
129
|
+
* Default timeout for operations (60 seconds)
|
|
130
|
+
* Flush/compact may take time for large graphs, but should not hang indefinitely
|
|
106
131
|
*/
|
|
107
|
-
|
|
132
|
+
static DEFAULT_TIMEOUT_MS = 60_000;
|
|
133
|
+
/**
|
|
134
|
+
* Send a request and wait for response with timeout
|
|
135
|
+
*/
|
|
136
|
+
async _send(cmd, payload = {}, timeoutMs = RFDBClient.DEFAULT_TIMEOUT_MS) {
|
|
108
137
|
if (!this.connected || !this.socket) {
|
|
109
138
|
throw new Error('Not connected to RFDB server');
|
|
110
139
|
}
|
|
@@ -112,7 +141,30 @@ export class RFDBClient extends EventEmitter {
|
|
|
112
141
|
const msgBytes = encode(request);
|
|
113
142
|
return new Promise((resolve, reject) => {
|
|
114
143
|
const id = this.reqId++;
|
|
115
|
-
|
|
144
|
+
// Setup timeout
|
|
145
|
+
const timer = setTimeout(() => {
|
|
146
|
+
this.pending.delete(id);
|
|
147
|
+
reject(new Error(`RFDB ${cmd} timed out after ${timeoutMs}ms. Server may be unresponsive or dbPath may be invalid.`));
|
|
148
|
+
}, timeoutMs);
|
|
149
|
+
// Handle socket errors during this request
|
|
150
|
+
const errorHandler = (err) => {
|
|
151
|
+
this.pending.delete(id);
|
|
152
|
+
clearTimeout(timer);
|
|
153
|
+
reject(this._enhanceConnectionError(err));
|
|
154
|
+
};
|
|
155
|
+
this.socket.once('error', errorHandler);
|
|
156
|
+
this.pending.set(id, {
|
|
157
|
+
resolve: (value) => {
|
|
158
|
+
clearTimeout(timer);
|
|
159
|
+
this.socket?.removeListener('error', errorHandler);
|
|
160
|
+
resolve(value);
|
|
161
|
+
},
|
|
162
|
+
reject: (error) => {
|
|
163
|
+
clearTimeout(timer);
|
|
164
|
+
this.socket?.removeListener('error', errorHandler);
|
|
165
|
+
reject(error);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
116
168
|
// Write length prefix + message
|
|
117
169
|
const header = Buffer.alloc(4);
|
|
118
170
|
header.writeUInt32BE(msgBytes.length);
|
|
@@ -434,6 +486,15 @@ export class RFDBClient extends EventEmitter {
|
|
|
434
486
|
async updateNodeVersion(id, version) {
|
|
435
487
|
return this._send('updateNodeVersion', { id: String(id), version });
|
|
436
488
|
}
|
|
489
|
+
/**
|
|
490
|
+
* Declare metadata fields for server-side indexing.
|
|
491
|
+
* Call before adding nodes so the server builds indexes on flush.
|
|
492
|
+
* Returns the number of declared fields.
|
|
493
|
+
*/
|
|
494
|
+
async declareFields(fields) {
|
|
495
|
+
const response = await this._send('declareFields', { fields });
|
|
496
|
+
return response.count || 0;
|
|
497
|
+
}
|
|
437
498
|
// ===========================================================================
|
|
438
499
|
// Datalog API
|
|
439
500
|
// ===========================================================================
|
|
@@ -471,6 +532,74 @@ export class RFDBClient extends EventEmitter {
|
|
|
471
532
|
const response = await this._send('ping');
|
|
472
533
|
return response.pong && response.version ? response.version : false;
|
|
473
534
|
}
|
|
535
|
+
// ===========================================================================
|
|
536
|
+
// Protocol v2 - Multi-Database Commands
|
|
537
|
+
// ===========================================================================
|
|
538
|
+
/**
|
|
539
|
+
* Negotiate protocol version with server
|
|
540
|
+
* @param protocolVersion - Protocol version to negotiate (default: 2)
|
|
541
|
+
* @returns Server capabilities including protocolVersion, serverVersion, features
|
|
542
|
+
*/
|
|
543
|
+
async hello(protocolVersion = 2) {
|
|
544
|
+
const response = await this._send('hello', { protocolVersion });
|
|
545
|
+
return response;
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* Create a new database
|
|
549
|
+
* @param name - Database name (alphanumeric, _, -)
|
|
550
|
+
* @param ephemeral - If true, database is in-memory and auto-cleaned on disconnect
|
|
551
|
+
*/
|
|
552
|
+
async createDatabase(name, ephemeral = false) {
|
|
553
|
+
const response = await this._send('createDatabase', { name, ephemeral });
|
|
554
|
+
return response;
|
|
555
|
+
}
|
|
556
|
+
/**
|
|
557
|
+
* Open a database and set as current for this session
|
|
558
|
+
* @param name - Database name
|
|
559
|
+
* @param mode - 'rw' (read-write) or 'ro' (read-only)
|
|
560
|
+
*/
|
|
561
|
+
async openDatabase(name, mode = 'rw') {
|
|
562
|
+
const response = await this._send('openDatabase', { name, mode });
|
|
563
|
+
return response;
|
|
564
|
+
}
|
|
565
|
+
/**
|
|
566
|
+
* Close current database
|
|
567
|
+
*/
|
|
568
|
+
async closeDatabase() {
|
|
569
|
+
return this._send('closeDatabase');
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Drop (delete) a database - must not be in use
|
|
573
|
+
* @param name - Database name
|
|
574
|
+
*/
|
|
575
|
+
async dropDatabase(name) {
|
|
576
|
+
return this._send('dropDatabase', { name });
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* List all databases
|
|
580
|
+
*/
|
|
581
|
+
async listDatabases() {
|
|
582
|
+
const response = await this._send('listDatabases');
|
|
583
|
+
return response;
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Get current database for this session
|
|
587
|
+
*/
|
|
588
|
+
async currentDatabase() {
|
|
589
|
+
const response = await this._send('currentDatabase');
|
|
590
|
+
return response;
|
|
591
|
+
}
|
|
592
|
+
/**
|
|
593
|
+
* Unref the socket so it doesn't keep the process alive.
|
|
594
|
+
*
|
|
595
|
+
* Call this in test environments to allow process to exit
|
|
596
|
+
* even if connections remain open.
|
|
597
|
+
*/
|
|
598
|
+
unref() {
|
|
599
|
+
if (this.socket) {
|
|
600
|
+
this.socket.unref();
|
|
601
|
+
}
|
|
602
|
+
}
|
|
474
603
|
/**
|
|
475
604
|
* Close connection
|
|
476
605
|
*/
|
|
@@ -495,3 +624,4 @@ export class RFDBClient extends EventEmitter {
|
|
|
495
624
|
}
|
|
496
625
|
}
|
|
497
626
|
export default RFDBClient;
|
|
627
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.test.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../ts/client.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/protocol.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../ts/protocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grafema/rfdb-client",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "TypeScript client for RFDB
|
|
3
|
+
"version": "0.2.5-beta",
|
|
4
|
+
"description": "TypeScript client for RFDB (Rega Flow Database)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -28,17 +28,20 @@
|
|
|
28
28
|
"graph",
|
|
29
29
|
"database",
|
|
30
30
|
"code-analysis",
|
|
31
|
-
"rust"
|
|
31
|
+
"rust",
|
|
32
|
+
"rega-flow",
|
|
33
|
+
"rfdb"
|
|
32
34
|
],
|
|
33
35
|
"license": "Apache-2.0",
|
|
34
36
|
"author": "Vadim Reshetnikov",
|
|
35
37
|
"repository": {
|
|
36
38
|
"type": "git",
|
|
37
|
-
"url": "https://github.com/Disentinel/
|
|
39
|
+
"url": "https://github.com/Disentinel/grafema.git",
|
|
40
|
+
"directory": "packages/rfdb"
|
|
38
41
|
},
|
|
39
42
|
"dependencies": {
|
|
40
43
|
"@msgpack/msgpack": "^3.1.3",
|
|
41
|
-
"@grafema/types": "0.2.
|
|
44
|
+
"@grafema/types": "0.2.5-beta"
|
|
42
45
|
},
|
|
43
46
|
"devDependencies": {
|
|
44
47
|
"@types/node": "^25.0.8",
|
package/ts/client.ts
CHANGED
|
@@ -16,9 +16,15 @@ import type {
|
|
|
16
16
|
RFDBResponse,
|
|
17
17
|
IRFDBClient,
|
|
18
18
|
AttrQuery,
|
|
19
|
+
FieldDeclaration,
|
|
19
20
|
DatalogResult,
|
|
20
21
|
NodeType,
|
|
21
22
|
EdgeType,
|
|
23
|
+
HelloResponse,
|
|
24
|
+
CreateDatabaseResponse,
|
|
25
|
+
OpenDatabaseResponse,
|
|
26
|
+
ListDatabasesResponse,
|
|
27
|
+
CurrentDatabaseResponse,
|
|
22
28
|
} from '@grafema/types';
|
|
23
29
|
|
|
24
30
|
interface PendingRequest {
|
|
@@ -59,11 +65,12 @@ export class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
59
65
|
resolve();
|
|
60
66
|
});
|
|
61
67
|
|
|
62
|
-
this.socket.on('error', (err:
|
|
68
|
+
this.socket.on('error', (err: NodeJS.ErrnoException) => {
|
|
69
|
+
const enhancedError = this._enhanceConnectionError(err);
|
|
63
70
|
if (!this.connected) {
|
|
64
|
-
reject(
|
|
71
|
+
reject(enhancedError);
|
|
65
72
|
} else {
|
|
66
|
-
this.emit('error',
|
|
73
|
+
this.emit('error', enhancedError);
|
|
67
74
|
}
|
|
68
75
|
});
|
|
69
76
|
|
|
@@ -83,6 +90,39 @@ export class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
83
90
|
});
|
|
84
91
|
}
|
|
85
92
|
|
|
93
|
+
/**
|
|
94
|
+
* Enhance connection errors with helpful messages about --auto-start
|
|
95
|
+
*/
|
|
96
|
+
private _enhanceConnectionError(err: NodeJS.ErrnoException): Error {
|
|
97
|
+
const code = err.code;
|
|
98
|
+
|
|
99
|
+
if (code === 'EPIPE' || code === 'ECONNRESET') {
|
|
100
|
+
return new Error(
|
|
101
|
+
`RFDB server connection lost (${code}). The server may have crashed or been stopped.\n` +
|
|
102
|
+
`Try running with --auto-start flag to automatically start the server, or manually start it with:\n` +
|
|
103
|
+
` rfdb-server start`
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (code === 'ENOENT') {
|
|
108
|
+
return new Error(
|
|
109
|
+
`RFDB server socket not found at ${this.socketPath}.\n` +
|
|
110
|
+
`The server is not running. Use --auto-start flag to automatically start it, or manually start with:\n` +
|
|
111
|
+
` rfdb-server start`
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (code === 'ECONNREFUSED') {
|
|
116
|
+
return new Error(
|
|
117
|
+
`Cannot connect to RFDB server at ${this.socketPath} (connection refused).\n` +
|
|
118
|
+
`The server may not be running. Use --auto-start flag to automatically start it, or manually start with:\n` +
|
|
119
|
+
` rfdb-server start`
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return err;
|
|
124
|
+
}
|
|
125
|
+
|
|
86
126
|
/**
|
|
87
127
|
* Handle incoming data, parse framed messages
|
|
88
128
|
*/
|
|
@@ -107,7 +147,8 @@ export class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
107
147
|
const response = decode(msgBytes) as RFDBResponse;
|
|
108
148
|
this._handleResponse(response);
|
|
109
149
|
} catch (err) {
|
|
110
|
-
|
|
150
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
151
|
+
this.emit('error', new Error(`Failed to decode response: ${message}`));
|
|
111
152
|
}
|
|
112
153
|
}
|
|
113
154
|
}
|
|
@@ -133,9 +174,19 @@ export class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
133
174
|
}
|
|
134
175
|
|
|
135
176
|
/**
|
|
136
|
-
*
|
|
177
|
+
* Default timeout for operations (60 seconds)
|
|
178
|
+
* Flush/compact may take time for large graphs, but should not hang indefinitely
|
|
137
179
|
*/
|
|
138
|
-
private
|
|
180
|
+
private static readonly DEFAULT_TIMEOUT_MS = 60_000;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Send a request and wait for response with timeout
|
|
184
|
+
*/
|
|
185
|
+
private async _send(
|
|
186
|
+
cmd: RFDBCommand,
|
|
187
|
+
payload: Record<string, unknown> = {},
|
|
188
|
+
timeoutMs: number = RFDBClient.DEFAULT_TIMEOUT_MS
|
|
189
|
+
): Promise<RFDBResponse> {
|
|
139
190
|
if (!this.connected || !this.socket) {
|
|
140
191
|
throw new Error('Not connected to RFDB server');
|
|
141
192
|
}
|
|
@@ -145,7 +196,33 @@ export class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
145
196
|
|
|
146
197
|
return new Promise((resolve, reject) => {
|
|
147
198
|
const id = this.reqId++;
|
|
148
|
-
|
|
199
|
+
|
|
200
|
+
// Setup timeout
|
|
201
|
+
const timer = setTimeout(() => {
|
|
202
|
+
this.pending.delete(id);
|
|
203
|
+
reject(new Error(`RFDB ${cmd} timed out after ${timeoutMs}ms. Server may be unresponsive or dbPath may be invalid.`));
|
|
204
|
+
}, timeoutMs);
|
|
205
|
+
|
|
206
|
+
// Handle socket errors during this request
|
|
207
|
+
const errorHandler = (err: NodeJS.ErrnoException) => {
|
|
208
|
+
this.pending.delete(id);
|
|
209
|
+
clearTimeout(timer);
|
|
210
|
+
reject(this._enhanceConnectionError(err));
|
|
211
|
+
};
|
|
212
|
+
this.socket!.once('error', errorHandler);
|
|
213
|
+
|
|
214
|
+
this.pending.set(id, {
|
|
215
|
+
resolve: (value) => {
|
|
216
|
+
clearTimeout(timer);
|
|
217
|
+
this.socket?.removeListener('error', errorHandler);
|
|
218
|
+
resolve(value);
|
|
219
|
+
},
|
|
220
|
+
reject: (error) => {
|
|
221
|
+
clearTimeout(timer);
|
|
222
|
+
this.socket?.removeListener('error', errorHandler);
|
|
223
|
+
reject(error);
|
|
224
|
+
}
|
|
225
|
+
});
|
|
149
226
|
|
|
150
227
|
// Write length prefix + message
|
|
151
228
|
const header = Buffer.alloc(4);
|
|
@@ -517,6 +594,16 @@ export class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
517
594
|
return this._send('updateNodeVersion', { id: String(id), version });
|
|
518
595
|
}
|
|
519
596
|
|
|
597
|
+
/**
|
|
598
|
+
* Declare metadata fields for server-side indexing.
|
|
599
|
+
* Call before adding nodes so the server builds indexes on flush.
|
|
600
|
+
* Returns the number of declared fields.
|
|
601
|
+
*/
|
|
602
|
+
async declareFields(fields: FieldDeclaration[]): Promise<number> {
|
|
603
|
+
const response = await this._send('declareFields', { fields });
|
|
604
|
+
return (response as { count?: number }).count || 0;
|
|
605
|
+
}
|
|
606
|
+
|
|
520
607
|
// ===========================================================================
|
|
521
608
|
// Datalog API
|
|
522
609
|
// ===========================================================================
|
|
@@ -560,6 +647,83 @@ export class RFDBClient extends EventEmitter implements IRFDBClient {
|
|
|
560
647
|
return response.pong && response.version ? response.version : false;
|
|
561
648
|
}
|
|
562
649
|
|
|
650
|
+
// ===========================================================================
|
|
651
|
+
// Protocol v2 - Multi-Database Commands
|
|
652
|
+
// ===========================================================================
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* Negotiate protocol version with server
|
|
656
|
+
* @param protocolVersion - Protocol version to negotiate (default: 2)
|
|
657
|
+
* @returns Server capabilities including protocolVersion, serverVersion, features
|
|
658
|
+
*/
|
|
659
|
+
async hello(protocolVersion: number = 2): Promise<HelloResponse> {
|
|
660
|
+
const response = await this._send('hello' as RFDBCommand, { protocolVersion });
|
|
661
|
+
return response as HelloResponse;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
/**
|
|
665
|
+
* Create a new database
|
|
666
|
+
* @param name - Database name (alphanumeric, _, -)
|
|
667
|
+
* @param ephemeral - If true, database is in-memory and auto-cleaned on disconnect
|
|
668
|
+
*/
|
|
669
|
+
async createDatabase(name: string, ephemeral: boolean = false): Promise<CreateDatabaseResponse> {
|
|
670
|
+
const response = await this._send('createDatabase' as RFDBCommand, { name, ephemeral });
|
|
671
|
+
return response as CreateDatabaseResponse;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
/**
|
|
675
|
+
* Open a database and set as current for this session
|
|
676
|
+
* @param name - Database name
|
|
677
|
+
* @param mode - 'rw' (read-write) or 'ro' (read-only)
|
|
678
|
+
*/
|
|
679
|
+
async openDatabase(name: string, mode: 'rw' | 'ro' = 'rw'): Promise<OpenDatabaseResponse> {
|
|
680
|
+
const response = await this._send('openDatabase' as RFDBCommand, { name, mode });
|
|
681
|
+
return response as OpenDatabaseResponse;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
/**
|
|
685
|
+
* Close current database
|
|
686
|
+
*/
|
|
687
|
+
async closeDatabase(): Promise<RFDBResponse> {
|
|
688
|
+
return this._send('closeDatabase' as RFDBCommand);
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Drop (delete) a database - must not be in use
|
|
693
|
+
* @param name - Database name
|
|
694
|
+
*/
|
|
695
|
+
async dropDatabase(name: string): Promise<RFDBResponse> {
|
|
696
|
+
return this._send('dropDatabase' as RFDBCommand, { name });
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
/**
|
|
700
|
+
* List all databases
|
|
701
|
+
*/
|
|
702
|
+
async listDatabases(): Promise<ListDatabasesResponse> {
|
|
703
|
+
const response = await this._send('listDatabases' as RFDBCommand);
|
|
704
|
+
return response as ListDatabasesResponse;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* Get current database for this session
|
|
709
|
+
*/
|
|
710
|
+
async currentDatabase(): Promise<CurrentDatabaseResponse> {
|
|
711
|
+
const response = await this._send('currentDatabase' as RFDBCommand);
|
|
712
|
+
return response as CurrentDatabaseResponse;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
/**
|
|
716
|
+
* Unref the socket so it doesn't keep the process alive.
|
|
717
|
+
*
|
|
718
|
+
* Call this in test environments to allow process to exit
|
|
719
|
+
* even if connections remain open.
|
|
720
|
+
*/
|
|
721
|
+
unref(): void {
|
|
722
|
+
if (this.socket) {
|
|
723
|
+
this.socket.unref();
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
|
|
563
727
|
/**
|
|
564
728
|
* Close connection
|
|
565
729
|
*/
|