@ultimat3/realtime 19.3.3 → 20.0.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/package.json +3 -3
- package/src/sync-node.ts +3 -0
- package/src/sync-protocol.ts +6 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ultimat3/realtime",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
4
|
"description": "Three-tier realtime: channels, live queries, local-first sync — one protocol, one mutator shape",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"test": "bun test"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@ultimat3/core": "
|
|
40
|
-
"@ultimat3/query": "
|
|
39
|
+
"@ultimat3/core": "20.0.0",
|
|
40
|
+
"@ultimat3/query": "20.0.0",
|
|
41
41
|
"nats": "2.29.3"
|
|
42
42
|
}
|
|
43
43
|
}
|
package/src/sync-node.ts
CHANGED
|
@@ -99,6 +99,8 @@ export interface SyncNodeOptions {
|
|
|
99
99
|
export interface SyncNode {
|
|
100
100
|
readonly sockets: SocketRegistry;
|
|
101
101
|
readonly ready: boolean;
|
|
102
|
+
/** The one path it answers an upgrade on: a HOST has to route it, and must not restate it. */
|
|
103
|
+
readonly path: string;
|
|
102
104
|
start(): Promise<void>;
|
|
103
105
|
/**
|
|
104
106
|
* Refuse new connections, keep every one this node holds. The SIGTERM `accept` phase calls it —
|
|
@@ -280,6 +282,7 @@ export function createSyncNode(options: SyncNodeOptions): SyncNode {
|
|
|
280
282
|
|
|
281
283
|
return {
|
|
282
284
|
sockets,
|
|
285
|
+
path,
|
|
283
286
|
|
|
284
287
|
get ready(): boolean {
|
|
285
288
|
return ready;
|
package/src/sync-protocol.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// The wire. One protocol for all three tiers: a channel subscribe, a live-query subscribe, and an
|
|
2
|
-
// offline mutation drain are frames in the same union
|
|
3
|
-
//
|
|
2
|
+
// offline mutation drain are frames in the same union — so moving a route from tier 2 to tier 3
|
|
3
|
+
// needs no new protocol, and THAT is the half this file enforces.
|
|
4
|
+
// It is not a `persist: true` config flag: this header said so until 2026-09 and `query()` has
|
|
5
|
+
// never accepted the key (`local-store.ts` records the same). Tier 3 is reached by passing a
|
|
6
|
+
// `LocalStore` to the live client, which is a client-side wiring decision this file cannot see —
|
|
7
|
+
// claiming to enforce it here is the declared-and-never-wired shape the repo keeps re-shipping.
|
|
4
8
|
|
|
5
9
|
import { renderThrowable, stringField } from '@ultimat3/core';
|
|
6
10
|
import { CURSOR_ID_LIMIT, type LiveCursor } from './cursor';
|