@pineliner/odb-client 1.1.5 → 1.4.0
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/dist/database/adapters/odblite-socket.d.ts +65 -0
- package/dist/database/adapters/odblite-socket.d.ts.map +1 -0
- package/dist/database/adapters/socket/client.d.ts +41 -0
- package/dist/database/adapters/socket/client.d.ts.map +1 -0
- package/dist/database/adapters/socket/protocol.d.ts +132 -0
- package/dist/database/adapters/socket/protocol.d.ts.map +1 -0
- package/dist/database/manager.d.ts.map +1 -1
- package/dist/database/types.d.ts +6 -1
- package/dist/database/types.d.ts.map +1 -1
- package/dist/index.cjs +522 -1
- package/dist/index.js +522 -1
- package/package.json +1 -1
- package/src/database/adapters/odblite-socket.ts +335 -0
- package/src/database/adapters/socket/client.ts +134 -0
- package/src/database/adapters/socket/protocol.ts +157 -0
- package/src/database/manager.ts +19 -1
- package/src/database/types.ts +8 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { BackendType, Connection, DatabaseAdapter } from '../types';
|
|
2
|
+
import { type SocketTarget } from './socket/client';
|
|
3
|
+
export interface OdbliteSocketConfig extends SocketTarget {
|
|
4
|
+
}
|
|
5
|
+
export declare class OdbliteSocketAdapter implements DatabaseAdapter {
|
|
6
|
+
readonly type: BackendType;
|
|
7
|
+
private readonly client;
|
|
8
|
+
constructor(config: OdbliteSocketConfig);
|
|
9
|
+
connect(config: any): Promise<Connection>;
|
|
10
|
+
disconnect(): Promise<void>;
|
|
11
|
+
isHealthy(): Promise<boolean>;
|
|
12
|
+
}
|
|
13
|
+
/** Socket wire-protocol version this client speaks. The connect-time handshake (isHealthy → get_version)
|
|
14
|
+
* requires the server to match; on mismatch the auto-adapter falls back to HTTP. Keep in lockstep with
|
|
15
|
+
* router_v2's SOCKET_PROTOCOL. */
|
|
16
|
+
export declare const CLIENT_SOCKET_PROTOCOL = 2;
|
|
17
|
+
/** Default same-host unix socket (free — v1 only uses /tmp/odblite-internal.sock). */
|
|
18
|
+
export declare const DEFAULT_UNIX_SOCKET = "/tmp/odblite.sock";
|
|
19
|
+
/**
|
|
20
|
+
* Resolve the odblite-socket target from a string. `ODB_SOCKET` may be:
|
|
21
|
+
* - a UNIX path (`/tmp/odblite.sock`) — same host, or a SHARED VOLUME mount
|
|
22
|
+
* - `host:port` (`odblite:8787`) — TCP, the CROSS-CONTAINER Docker case
|
|
23
|
+
* - `:port` / `port` — TCP on localhost
|
|
24
|
+
* A /tmp unix socket does NOT cross Docker containers, so container-to-container
|
|
25
|
+
* deployments set `ODB_SOCKET=odblite:8787` (TCP over the Docker network).
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseSocketTarget(s?: string): SocketTarget;
|
|
28
|
+
/**
|
|
29
|
+
* OdbliteAutoAdapter — the default for the `odblite` backend: ZERO config change,
|
|
30
|
+
* autodetected as a cascade unix socket → TCP socket → HTTP. At startup it probes
|
|
31
|
+
* each in order and uses the FIRST that answers:
|
|
32
|
+
* 1. unix socket /tmp/odblite.sock — same host (fastest)
|
|
33
|
+
* 2. TCP socket <ODB_LITE_URL host>:8787 — cross-container Docker; host is
|
|
34
|
+
* DERIVED from the existing ODB_LITE_URL, so Docker needs no new config
|
|
35
|
+
* 3. HTTP ODB_LITE_URL — the universal fallback
|
|
36
|
+
* Explicit `ODB_SOCKET` (unix path or host:port) or an `odbliteSocket` config
|
|
37
|
+
* pins a single socket target instead of the cascade. So same-host dev and
|
|
38
|
+
* cross-container prod both "just work", and a missing/down socket → HTTP.
|
|
39
|
+
* (Browser / non-Bun → straight to HTTP.)
|
|
40
|
+
*/
|
|
41
|
+
export declare class OdbliteAutoAdapter implements DatabaseAdapter {
|
|
42
|
+
readonly type: BackendType;
|
|
43
|
+
private readonly opts;
|
|
44
|
+
private chosen;
|
|
45
|
+
private onHttp;
|
|
46
|
+
private nextRetryAt;
|
|
47
|
+
constructor(opts: {
|
|
48
|
+
socket?: OdbliteSocketConfig;
|
|
49
|
+
http: any;
|
|
50
|
+
});
|
|
51
|
+
private pick;
|
|
52
|
+
/** Probe the cascade once; return a live socket adapter or null. */
|
|
53
|
+
private trySocket;
|
|
54
|
+
/** When we fell back to HTTP, re-probe the socket on a cooldown so a socket that
|
|
55
|
+
* comes up LATER (server started after the app) is picked up without a restart —
|
|
56
|
+
* subsequent connections then use it. */
|
|
57
|
+
private maybeUpgrade;
|
|
58
|
+
/** Ordered socket targets to probe. Explicit override → a single target; else the
|
|
59
|
+
* zero-config cascade unix (same host) → TCP (host derived from ODB_LITE_URL). */
|
|
60
|
+
private candidates;
|
|
61
|
+
connect(config: any): Promise<Connection>;
|
|
62
|
+
disconnect(tenantId?: string): Promise<void>;
|
|
63
|
+
isHealthy(): Promise<boolean>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=odblite-socket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"odblite-socket.d.ts","sourceRoot":"","sources":["../../../src/database/adapters/odblite-socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAkC,MAAM,UAAU,CAAA;AAExG,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AA0KjE,MAAM,WAAW,mBAAoB,SAAQ,YAAY;CAAG;AAE5D,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,mBAAmB;IAIjC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAMzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CAmBpC;AAED;;mCAEmC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,sBAAsB,CAAA;AAEtD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAO1D;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6C;IAClE,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAI;gBAEX,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;YAK/C,IAAI;IAWlB,oEAAoE;YACtD,SAAS;IAgBvB;;8CAE0C;YAC5B,YAAY;IAY1B;uFACmF;IACnF,OAAO,CAAC,UAAU;IAgBZ,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAIzC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5C,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CAGpC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type StreamRequest, type StreamResult } from './protocol';
|
|
2
|
+
/**
|
|
3
|
+
* Persistent socket client for the odblite-socket transport. One connection,
|
|
4
|
+
* length-prefixed frames, replies correlated by id. Batch many statements into
|
|
5
|
+
* one `requests[]` so N statements cost one round-trip.
|
|
6
|
+
*
|
|
7
|
+
* Bun-only (uses `Bun.connect`). app-router runs on Bun; the HTTP `odblite`
|
|
8
|
+
* backend remains the universal fallback for non-Bun environments.
|
|
9
|
+
*
|
|
10
|
+
* Liveness invariant: an in-flight request must ALWAYS terminate. If the
|
|
11
|
+
* connection drops (close/error) or a reply never arrives, the pending promise
|
|
12
|
+
* is REJECTED — never left hanging. A hung pending request would wedge the
|
|
13
|
+
* caller's transaction, hold its write lane, and cascade into a 30s timeout.
|
|
14
|
+
*/
|
|
15
|
+
export interface SocketTarget {
|
|
16
|
+
unix?: string;
|
|
17
|
+
hostname?: string;
|
|
18
|
+
port?: number;
|
|
19
|
+
}
|
|
20
|
+
export declare class SocketClient {
|
|
21
|
+
private readonly target;
|
|
22
|
+
private socket;
|
|
23
|
+
private reader;
|
|
24
|
+
private writer;
|
|
25
|
+
private readonly pending;
|
|
26
|
+
private nextId;
|
|
27
|
+
private nextStreamId;
|
|
28
|
+
private ready;
|
|
29
|
+
constructor(target: SocketTarget);
|
|
30
|
+
/** Reject + clear every in-flight request — called on disconnect/error/close so a
|
|
31
|
+
* dropped connection FAILS its requests (the caller retries) instead of hanging. */
|
|
32
|
+
private failPending;
|
|
33
|
+
private connect;
|
|
34
|
+
/** Allocate a fresh stream id for an interactive transaction (unique per connection). The server
|
|
35
|
+
* pins one SQLite connection per stream id, so all of a tx's statements run on it (read-your-own-
|
|
36
|
+
* writes). The id is carried in every frame of that tx via pipeline()'s `stream` arg. */
|
|
37
|
+
allocStream(): number;
|
|
38
|
+
pipeline(tenant: string, requests: StreamRequest[], stream?: number): Promise<StreamResult[]>;
|
|
39
|
+
close(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/database/adapters/socket/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5F;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAaD,qBAAa,YAAY;IASX,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,KAAK,CAAe;gBAEC,MAAM,EAAE,YAAY;IAOjD;yFACqF;IACrF,OAAO,CAAC,WAAW;YAQL,OAAO;IAuCrB;;8FAE0F;IAC1F,WAAW,IAAI,MAAM;IAIf,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAwBnG,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* odblite-socket wire protocol (CLIENT side).
|
|
3
|
+
*
|
|
4
|
+
* ⚠️ COUPLING: this must stay byte-compatible with the SERVER in
|
|
5
|
+
* `packages/odb-lite/router_v2/protocol/{hrana,framing}.ts`. They are deliberately
|
|
6
|
+
* separate copies (the client lib must not import the server engine) — same rule
|
|
7
|
+
* as the /ext test-service mirror: change one wire shape, change the other.
|
|
8
|
+
*
|
|
9
|
+
* Transport: `[u32 LE length][utf8 JSON]` frames over a unix socket / TCP. Each
|
|
10
|
+
* request is `{ id, tenant, requests }`; the reply is `{ id, results }`. The
|
|
11
|
+
* payload stays JSON on purpose (native JSON.parse beats a hand-rolled JS codec;
|
|
12
|
+
* a binary payload only pays off remote, via a native codec).
|
|
13
|
+
*/
|
|
14
|
+
export type HranaValue = {
|
|
15
|
+
type: 'null';
|
|
16
|
+
} | {
|
|
17
|
+
type: 'integer';
|
|
18
|
+
value: string;
|
|
19
|
+
} | {
|
|
20
|
+
type: 'float';
|
|
21
|
+
value: number;
|
|
22
|
+
} | {
|
|
23
|
+
type: 'text';
|
|
24
|
+
value: string;
|
|
25
|
+
} | {
|
|
26
|
+
type: 'blob';
|
|
27
|
+
base64: string;
|
|
28
|
+
};
|
|
29
|
+
export declare function toHrana(v: any): HranaValue;
|
|
30
|
+
export declare function fromHrana(v: HranaValue): any;
|
|
31
|
+
export interface Stmt {
|
|
32
|
+
sql?: string;
|
|
33
|
+
args?: HranaValue[];
|
|
34
|
+
named_args?: {
|
|
35
|
+
name: string;
|
|
36
|
+
value: HranaValue;
|
|
37
|
+
}[];
|
|
38
|
+
want_rows?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export type BatchCond = {
|
|
41
|
+
type: 'ok';
|
|
42
|
+
step: number;
|
|
43
|
+
} | {
|
|
44
|
+
type: 'error';
|
|
45
|
+
step: number;
|
|
46
|
+
} | {
|
|
47
|
+
type: 'not';
|
|
48
|
+
cond: BatchCond;
|
|
49
|
+
} | {
|
|
50
|
+
type: 'and';
|
|
51
|
+
conds: BatchCond[];
|
|
52
|
+
} | {
|
|
53
|
+
type: 'or';
|
|
54
|
+
conds: BatchCond[];
|
|
55
|
+
} | {
|
|
56
|
+
type: 'is_autocommit';
|
|
57
|
+
};
|
|
58
|
+
export interface BatchStep {
|
|
59
|
+
condition?: BatchCond | null;
|
|
60
|
+
stmt: Stmt;
|
|
61
|
+
expect?: {
|
|
62
|
+
affected: 'one' | 'atLeastOne' | number;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface Batch {
|
|
66
|
+
steps: BatchStep[];
|
|
67
|
+
}
|
|
68
|
+
export interface StmtResult {
|
|
69
|
+
cols: {
|
|
70
|
+
name: string | null;
|
|
71
|
+
}[];
|
|
72
|
+
rows: HranaValue[][];
|
|
73
|
+
affected_row_count: number;
|
|
74
|
+
last_insert_rowid: string | null;
|
|
75
|
+
}
|
|
76
|
+
export interface BatchResult {
|
|
77
|
+
step_results: (StmtResult | null)[];
|
|
78
|
+
step_errors: ({
|
|
79
|
+
message: string;
|
|
80
|
+
code?: string;
|
|
81
|
+
} | null)[];
|
|
82
|
+
}
|
|
83
|
+
export interface HranaError {
|
|
84
|
+
message: string;
|
|
85
|
+
code?: string;
|
|
86
|
+
}
|
|
87
|
+
export type StreamRequest = {
|
|
88
|
+
type: 'execute';
|
|
89
|
+
stmt: Stmt;
|
|
90
|
+
} | {
|
|
91
|
+
type: 'batch';
|
|
92
|
+
batch: Batch;
|
|
93
|
+
} | {
|
|
94
|
+
type: 'sequence';
|
|
95
|
+
sql: string;
|
|
96
|
+
} | {
|
|
97
|
+
type: 'get_autocommit';
|
|
98
|
+
} | {
|
|
99
|
+
type: 'get_version';
|
|
100
|
+
} | {
|
|
101
|
+
type: 'close';
|
|
102
|
+
};
|
|
103
|
+
export type StreamResult = {
|
|
104
|
+
type: 'ok';
|
|
105
|
+
response: any;
|
|
106
|
+
} | {
|
|
107
|
+
type: 'error';
|
|
108
|
+
error: HranaError;
|
|
109
|
+
};
|
|
110
|
+
export interface AtomicStep {
|
|
111
|
+
sql: string;
|
|
112
|
+
params?: any[];
|
|
113
|
+
expect?: 'one' | 'atLeastOne' | number;
|
|
114
|
+
}
|
|
115
|
+
export declare function toBatch(steps: AtomicStep[]): Batch;
|
|
116
|
+
export declare function mightReturnRows(sql: string): boolean;
|
|
117
|
+
interface Writable {
|
|
118
|
+
write(data: Uint8Array): number;
|
|
119
|
+
}
|
|
120
|
+
export declare class FrameWriter {
|
|
121
|
+
private readonly socket;
|
|
122
|
+
private pending;
|
|
123
|
+
constructor(socket: Writable);
|
|
124
|
+
send(payload: Buffer): void;
|
|
125
|
+
flush(): void;
|
|
126
|
+
}
|
|
127
|
+
export declare class FrameReader {
|
|
128
|
+
private buf;
|
|
129
|
+
push(chunk: Buffer): Buffer[];
|
|
130
|
+
}
|
|
131
|
+
export {};
|
|
132
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../src/database/adapters/socket/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/database/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,UAAU,EAIX,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/database/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,UAAU,EAIX,MAAM,SAAS,CAAA;AAQhB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAqC;IAGxD,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,cAAc,CAAQ;gBAElB,MAAM,EAAE,qBAAqB;IAuCzC;;;;;OAKG;IACG,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,OAAO,CAAC,UAAU,CAAC;IA6BtB;;;;;;;OAOG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BpD;;;;;;OAMG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAkCtD;;;OAGG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD;;;;;OAKG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;YACW,aAAa;IAoC3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;OAEG;YACW,QAAQ;CAqBvB"}
|
package/dist/database/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type TenancyMode = 'single-db' | 'multi-tenant' | 'metastore' | 'dual-mod
|
|
|
5
5
|
/**
|
|
6
6
|
* Backend database types
|
|
7
7
|
*/
|
|
8
|
-
export type BackendType = 'bun-sqlite' | 'libsql' | 'odblite';
|
|
8
|
+
export type BackendType = 'bun-sqlite' | 'libsql' | 'odblite' | 'odblite-socket';
|
|
9
9
|
/**
|
|
10
10
|
* Query result from any backend
|
|
11
11
|
*/
|
|
@@ -116,6 +116,11 @@ export interface DatabaseManagerConfig {
|
|
|
116
116
|
apiKey: string;
|
|
117
117
|
nodeId?: string;
|
|
118
118
|
};
|
|
119
|
+
odbliteSocket?: {
|
|
120
|
+
unix?: string;
|
|
121
|
+
hostname?: string;
|
|
122
|
+
port?: number;
|
|
123
|
+
};
|
|
119
124
|
connectionPoolSize?: number;
|
|
120
125
|
}
|
|
121
126
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,cAAc,GACd,WAAW,GACX,WAAW,CAAA;AAEf;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
|