@syncular/relay 0.0.1-98 → 0.0.2-126
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 +41 -0
- package/dist/client-role/pull-engine.d.ts +2 -2
- package/dist/client-role/pull-engine.d.ts.map +1 -1
- package/dist/client-role/pull-engine.js +5 -5
- package/dist/client-role/pull-engine.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/relay.d.ts +4 -4
- package/dist/relay.d.ts.map +1 -1
- package/dist/relay.js +5 -5
- package/dist/relay.js.map +1 -1
- package/dist/server-role/index.d.ts +1 -1
- package/dist/server-role/index.d.ts.map +1 -1
- package/dist/server-role/index.js +6 -6
- package/dist/server-role/index.js.map +1 -1
- package/dist/server-role/pull.d.ts +1 -1
- package/dist/server-role/pull.d.ts.map +1 -1
- package/dist/server-role/pull.js +2 -2
- package/dist/server-role/pull.js.map +1 -1
- package/dist/server-role/push.d.ts +1 -1
- package/dist/server-role/push.d.ts.map +1 -1
- package/dist/server-role/push.js +2 -2
- package/dist/server-role/push.js.map +1 -1
- package/package.json +4 -4
- package/src/__tests__/relay.test.ts +7 -7
- package/src/client-role/pull-engine.ts +6 -6
- package/src/index.ts +1 -1
- package/src/relay.ts +7 -7
- package/src/server-role/index.ts +7 -7
- package/src/server-role/pull.ts +3 -3
- package/src/server-role/push.ts +3 -3
package/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# @syncular/relay
|
|
2
|
+
|
|
3
|
+
Edge relay server for Syncular.
|
|
4
|
+
|
|
5
|
+
A relay acts as a local sync server for nearby clients and forwards commits to a main server when online. Useful for intermittent connectivity (branch offices, field devices, edge deployments).
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @syncular/relay
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { createRelayServer } from '@syncular/relay';
|
|
17
|
+
|
|
18
|
+
const relay = createRelayServer({
|
|
19
|
+
db,
|
|
20
|
+
dialect,
|
|
21
|
+
mainServerTransport,
|
|
22
|
+
mainServerClientId: 'relay-1',
|
|
23
|
+
mainServerActorId: 'relay-service',
|
|
24
|
+
tables: ['tasks'],
|
|
25
|
+
scopes: { project_id: 'acme' },
|
|
26
|
+
handlers,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
await relay.start();
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Documentation
|
|
33
|
+
|
|
34
|
+
- Relay guide: https://syncular.dev/docs/build/relay
|
|
35
|
+
|
|
36
|
+
## Links
|
|
37
|
+
|
|
38
|
+
- GitHub: https://github.com/syncular/syncular
|
|
39
|
+
- Issues: https://github.com/syncular/syncular/issues
|
|
40
|
+
|
|
41
|
+
> Status: Alpha. APIs and storage layouts may change between releases.
|
|
@@ -22,7 +22,7 @@ export interface PullEngineOptions<DB extends RelayDatabase = RelayDatabase> {
|
|
|
22
22
|
tables: string[];
|
|
23
23
|
/** Scope values for subscriptions */
|
|
24
24
|
scopes: ScopeValues;
|
|
25
|
-
|
|
25
|
+
handlers: TableRegistry<DB>;
|
|
26
26
|
sequenceMapper: SequenceMapper<DB>;
|
|
27
27
|
realtime: RelayRealtime;
|
|
28
28
|
intervalMs?: number;
|
|
@@ -39,7 +39,7 @@ export declare class PullEngine<DB extends RelayDatabase = RelayDatabase> {
|
|
|
39
39
|
private readonly clientId;
|
|
40
40
|
private readonly tables;
|
|
41
41
|
private readonly scopes;
|
|
42
|
-
private readonly
|
|
42
|
+
private readonly handlers;
|
|
43
43
|
private readonly sequenceMapper;
|
|
44
44
|
private readonly realtime;
|
|
45
45
|
private readonly intervalMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-engine.d.ts","sourceRoot":"","sources":["../../src/client-role/pull-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EAIX,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,KAAK,MAAM,EAAO,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,EAAE,SAAS,aAAa,GAAG,aAAa;IACzE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"pull-engine.d.ts","sourceRoot":"","sources":["../../src/client-role/pull-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EAIX,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,KAAK,MAAM,EAAO,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,EAAE,SAAS,aAAa,GAAG,aAAa;IACzE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IACnC,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,UAAU,CAAC,EAAE,SAAS,aAAa,GAAG,aAAa;IAC9D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAsB;IAEtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAA6B;IAE5C,YAAY,OAAO,EAAE,iBAAiB,CAAC,EAAE,CAAC,EAazC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAcZ;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAMX;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAEjC;YAEa,WAAW;YA0BX,WAAW;IAezB,OAAO,CAAC,YAAY;YAmBN,UAAU;YAqFV,kBAAkB;CA6DjC"}
|
|
@@ -16,7 +16,7 @@ export class PullEngine {
|
|
|
16
16
|
clientId;
|
|
17
17
|
tables;
|
|
18
18
|
scopes;
|
|
19
|
-
|
|
19
|
+
handlers;
|
|
20
20
|
sequenceMapper;
|
|
21
21
|
realtime;
|
|
22
22
|
intervalMs;
|
|
@@ -32,7 +32,7 @@ export class PullEngine {
|
|
|
32
32
|
this.clientId = options.clientId;
|
|
33
33
|
this.tables = options.tables;
|
|
34
34
|
this.scopes = options.scopes;
|
|
35
|
-
this.
|
|
35
|
+
this.handlers = options.handlers;
|
|
36
36
|
this.sequenceMapper = options.sequenceMapper;
|
|
37
37
|
this.realtime = options.realtime;
|
|
38
38
|
this.intervalMs = options.intervalMs ?? 10000;
|
|
@@ -133,7 +133,7 @@ export class PullEngine {
|
|
|
133
133
|
// Build subscriptions for each table
|
|
134
134
|
const subscriptionRequests = this.tables.map((table) => ({
|
|
135
135
|
id: table,
|
|
136
|
-
|
|
136
|
+
table,
|
|
137
137
|
scopes: this.scopes,
|
|
138
138
|
cursor: this.cursors.get(table) ?? -1,
|
|
139
139
|
}));
|
|
@@ -197,7 +197,7 @@ export class PullEngine {
|
|
|
197
197
|
/**
|
|
198
198
|
* Apply a commit from main server locally.
|
|
199
199
|
*
|
|
200
|
-
* This re-applies the commit through the local
|
|
200
|
+
* This re-applies the commit through the local table handlers
|
|
201
201
|
* to ensure proper indexing and scope assignment.
|
|
202
202
|
*/
|
|
203
203
|
async applyCommitLocally(commit, table) {
|
|
@@ -216,7 +216,7 @@ export class PullEngine {
|
|
|
216
216
|
const result = await pushCommit({
|
|
217
217
|
db: this.db,
|
|
218
218
|
dialect: this.dialect,
|
|
219
|
-
|
|
219
|
+
handlers: this.handlers,
|
|
220
220
|
actorId: commit.actorId,
|
|
221
221
|
request: {
|
|
222
222
|
clientId: `relay:${this.clientId}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-engine.js","sourceRoot":"","sources":["../../src/client-role/pull-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAe,GAAG,EAAE,MAAM,QAAQ,CAAC;AAyB1C;;GAEG;AACH,MAAM,OAAO,UAAU;IACJ,EAAE,CAAa;IACf,OAAO,CAAoB;IAC3B,SAAS,CAAgB;IACzB,QAAQ,CAAS;IACjB,MAAM,CAAW;IACjB,MAAM,CAAc;IACpB,
|
|
1
|
+
{"version":3,"file":"pull-engine.js","sourceRoot":"","sources":["../../src/client-role/pull-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/relay.d.ts
CHANGED
|
@@ -40,8 +40,8 @@ export interface RelayServerOptions<DB extends RelayDatabase = RelayDatabase> {
|
|
|
40
40
|
tables: string[];
|
|
41
41
|
/** Scope values for subscriptions to the main server */
|
|
42
42
|
scopes: ScopeValues;
|
|
43
|
-
/**
|
|
44
|
-
|
|
43
|
+
/** Handler registry for handling operations */
|
|
44
|
+
handlers: TableRegistry<DB>;
|
|
45
45
|
/** Optional: WebSocket heartbeat interval in milliseconds (default: 30000) */
|
|
46
46
|
heartbeatIntervalMs?: number;
|
|
47
47
|
/** Optional: Forward engine retry interval in milliseconds (default: 5000) */
|
|
@@ -80,7 +80,7 @@ type EventHandler<K extends keyof RelayEvents> = RelayEvents[K];
|
|
|
80
80
|
* mainServerActorId: 'relay-service',
|
|
81
81
|
* tables: ['tasks', 'projects'],
|
|
82
82
|
* scopes: { project_id: 'acme' },
|
|
83
|
-
*
|
|
83
|
+
* handlers: shapeRegistry,
|
|
84
84
|
* });
|
|
85
85
|
*
|
|
86
86
|
* // Mount routes for local clients
|
|
@@ -102,7 +102,7 @@ export declare class RelayServer<DB extends RelayDatabase = RelayDatabase> {
|
|
|
102
102
|
private readonly mainServerActorId;
|
|
103
103
|
private readonly tables;
|
|
104
104
|
private readonly scopes;
|
|
105
|
-
private readonly
|
|
105
|
+
private readonly handlers;
|
|
106
106
|
private readonly modeManager;
|
|
107
107
|
private readonly sequenceMapper;
|
|
108
108
|
private readonly forwardEngine;
|
package/dist/relay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMrC,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,EAAE,SAAS,aAAa,GAAG,aAAa;IAC1E,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,qDAAqD;IACrD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,uDAAuD;IACvD,mBAAmB,EAAE,aAAa,CAAC;IACnC,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,wDAAwD;IACxD,MAAM,EAAE,WAAW,CAAC;IACpB
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
|
package/dist/relay.js
CHANGED
|
@@ -30,7 +30,7 @@ import { RelayRealtime } from './realtime.js';
|
|
|
30
30
|
* mainServerActorId: 'relay-service',
|
|
31
31
|
* tables: ['tasks', 'projects'],
|
|
32
32
|
* scopes: { project_id: 'acme' },
|
|
33
|
-
*
|
|
33
|
+
* handlers: shapeRegistry,
|
|
34
34
|
* });
|
|
35
35
|
*
|
|
36
36
|
* // Mount routes for local clients
|
|
@@ -52,7 +52,7 @@ export class RelayServer {
|
|
|
52
52
|
mainServerActorId;
|
|
53
53
|
tables;
|
|
54
54
|
scopes;
|
|
55
|
-
|
|
55
|
+
handlers;
|
|
56
56
|
modeManager;
|
|
57
57
|
sequenceMapper;
|
|
58
58
|
forwardEngine;
|
|
@@ -75,7 +75,7 @@ export class RelayServer {
|
|
|
75
75
|
this.mainServerActorId = options.mainServerActorId;
|
|
76
76
|
this.tables = options.tables;
|
|
77
77
|
this.scopes = options.scopes;
|
|
78
|
-
this.
|
|
78
|
+
this.handlers = options.handlers;
|
|
79
79
|
this.pruneIntervalMs = options.pruneIntervalMs ?? 3600000;
|
|
80
80
|
this.pruneMaxAgeMs = options.pruneMaxAgeMs ?? 7 * 24 * 60 * 60 * 1000;
|
|
81
81
|
// Initialize mode manager
|
|
@@ -109,7 +109,7 @@ export class RelayServer {
|
|
|
109
109
|
clientId: this.mainServerClientId,
|
|
110
110
|
tables: this.tables,
|
|
111
111
|
scopes: this.scopes,
|
|
112
|
-
|
|
112
|
+
handlers: this.handlers,
|
|
113
113
|
sequenceMapper: this.sequenceMapper,
|
|
114
114
|
realtime: this.realtime,
|
|
115
115
|
intervalMs: options.pullIntervalMs ?? 10000,
|
|
@@ -283,7 +283,7 @@ export class RelayServer {
|
|
|
283
283
|
const routes = createRelayRoutes({
|
|
284
284
|
db: this.db,
|
|
285
285
|
dialect: this.dialect,
|
|
286
|
-
|
|
286
|
+
handlers: this.handlers,
|
|
287
287
|
realtime: this.realtime,
|
|
288
288
|
onCommit: async (localCommitSeq, affectedTables) => {
|
|
289
289
|
this.realtime.notifyScopeKeys(affectedTables, localCommitSeq);
|
package/dist/relay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyD3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,WAAW;IACL,EAAE,CAAa;IACf,OAAO,CAAoB;IAC3B,mBAAmB,CAAgB;IACnC,kBAAkB,CAAS;IAC3B,iBAAiB,CAAS;IAC1B,MAAM,CAAW;IACjB,MAAM,CAAc;IACpB,
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyD3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,WAAW;IACL,EAAE,CAAa;IACf,OAAO,CAAoB;IAC3B,mBAAmB,CAAgB;IACnC,kBAAkB,CAAS;IAC3B,iBAAiB,CAAS;IAC1B,MAAM,CAAW;IACjB,MAAM,CAAc;IACpB,QAAQ,CAAoB;IAE5B,WAAW,CAAc;IACzB,cAAc,CAAqB;IACnC,aAAa,CAAoB;IACjC,UAAU,CAAiB;IAC3B,QAAQ,CAAgB;IAExB,aAAa,GAAG,IAAI,GAAG,EAGrC,CAAC;IAEa,eAAe,CAAS;IACxB,aAAa,CAAS;IAC/B,aAAa,GAAG,CAAC,CAAC;IAClB,aAAa,GAAqC,IAAI,CAAC;IAEvD,OAAO,GAAG,KAAK,CAAC;IAChB,iBAAiB,GAAG,KAAK,CAAC;IAC1B,MAAM,GAAgB,IAAI,CAAC;IAC3B,aAAa,GAAyB,IAAI,CAAC;IAEnD,YAAY,OAA+B,EAAE;QAC3C,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEtE,0BAA0B;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;YACjC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,IAAI,KAAK;YAC7D,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;SACtD,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CAAC;QAEH,gDAAgD;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC;YAChC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,KAAK;SAC1D,CAAC,CAAC;QAEH,6DAA6D;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,mBAAmB;YACnC,QAAQ,EAAE,IAAI,CAAC,kBAAkB;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,OAAO,CAAC,sBAAsB,IAAI,IAAI;YACvD,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;YAChE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;SAC9C,CAAC,CAAC;QAEH,mDAAmD;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,mBAAmB;YACnC,QAAQ,EAAE,IAAI,CAAC,kBAAkB;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;YAC3C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;YAC7C,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAAA,CAC9B;SACF,CAAC,CAAC;IAAA,CACJ;IAED;;OAEG;IACH,EAAE,CACA,KAAQ,EACR,OAAwB,EACZ;QACZ,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEtB,OAAO,GAAG,EAAE,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAAA,CAC3B,CAAC;IAAA,CACH;IAED;;OAEG;IACH,OAAO,GAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAAA,CACnC;IAED;;OAEG;IACH,SAAS,GAAsB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC;IAAA,CACpB;IAED;;OAEG;IACH,SAAS,GAAgB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC;IAAA,CACpB;IAED;;OAEG;IACH,WAAW,GAAkB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACtB;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,GAAkB;QAC3B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,6BAA6B;QAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,kCAAkC;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAClC,QAAQ,EAAE,IAAI,CAAC,kBAAkB;oBACjC,IAAI,EAAE;wBACJ,aAAa,EAAE,EAAE;wBACjB,YAAY,EAAE,CAAC;qBAChB;iBACF,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QAAA,CACF,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAAA,CACzB;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,GAAkB;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAAA,CAC1B;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,GAAqB;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;IAAA,CACzC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,GAAqB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAAA,CACnC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAA+B,EAA6B;QAC3E,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;QAExC,MAAM,eAAe,GACnB,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAA;oBACd,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC;;yBAE5B,SAAS;KAC7B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;QAEhE,MAAM,eAAe,GAAG,MAAM,GAAG,CAAA;oBACjB,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC;;0BAE9B,SAAS;KAC9B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;QAEtE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAAA,CAC7D;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,GAA8B;QACjD,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACpD,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAED,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAElD,IAAI,CAAC,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChC,OAAO,MAAM,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QAAA,CACF,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,aAAa,CAAC;IAAA,CAC3B;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,GAAkB;QAC/B,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAElD,IAAI,CAAC,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAE5D,MAAM,MAAM,GAAG,iBAAiB,CAAC;gBAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,KAAK,EAAE,cAAsB,EAAE,cAAwB,EAAE,EAAE,CAAC;oBACpE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;oBAC9D,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAAA,CAC7B;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,MAAM,CAAC;QAAA,CACf,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,aAAa,CAAC;IAAA,CAC3B;IAEO,IAAI,CACV,KAAQ,EACR,GAAG,IAAgC,EAC7B;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACF,OAA2C,CAAC,GAAG,IAAI,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IAAA,CACF;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B,EAAe;IAC1E,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAAA,CACjC"}
|
|
@@ -15,7 +15,7 @@ import type { RelayDatabase } from '../schema';
|
|
|
15
15
|
export interface CreateRelayRoutesOptions<DB extends RelayDatabase = RelayDatabase> {
|
|
16
16
|
db: Kysely<DB>;
|
|
17
17
|
dialect: ServerSyncDialect;
|
|
18
|
-
|
|
18
|
+
handlers: TableRegistry<DB>;
|
|
19
19
|
realtime: RelayRealtime;
|
|
20
20
|
/**
|
|
21
21
|
* Called after a commit is successfully applied locally.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server-role/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/C;;GAEG;AACH,MAAM,WAAW,wBAAwB,CACvC,EAAE,SAAS,aAAa,GAAG,aAAa;IAExC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server-role/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/C;;GAEG;AACH,MAAM,WAAW,wBAAwB,CACvC,EAAE,SAAS,aAAa,GAAG,aAAa;IAExC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CACT,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EAAE,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACnE;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,aAAa,GAAG,aAAa,EACxE,OAAO,EAAE,wBAAwB,CAAC,EAAE,CAAC,GACpC,IAAI,CAqQN"}
|
|
@@ -56,11 +56,11 @@ export function createRelayRoutes(options) {
|
|
|
56
56
|
return c.json({ error: 'INVALID_REQUEST', message: 'Invalid subscription entry' }, 400);
|
|
57
57
|
}
|
|
58
58
|
const id = typeof subValue.id === 'string' ? subValue.id : null;
|
|
59
|
-
const
|
|
60
|
-
if (!id || !
|
|
59
|
+
const table = typeof subValue.table === 'string' ? subValue.table : null;
|
|
60
|
+
if (!id || !table) {
|
|
61
61
|
return c.json({
|
|
62
62
|
error: 'INVALID_REQUEST',
|
|
63
|
-
message: 'Subscription id/
|
|
63
|
+
message: 'Subscription id/table required',
|
|
64
64
|
}, 400);
|
|
65
65
|
}
|
|
66
66
|
const scopesParsed = ScopeValuesSchema.safeParse(subValue.scopes);
|
|
@@ -93,7 +93,7 @@ export function createRelayRoutes(options) {
|
|
|
93
93
|
}
|
|
94
94
|
subscriptions.push({
|
|
95
95
|
id,
|
|
96
|
-
|
|
96
|
+
table,
|
|
97
97
|
scopes: scopesParsed.data,
|
|
98
98
|
params: rawParams,
|
|
99
99
|
cursor,
|
|
@@ -126,7 +126,7 @@ export function createRelayRoutes(options) {
|
|
|
126
126
|
const pullResult = await relayPull({
|
|
127
127
|
db: options.db,
|
|
128
128
|
dialect: options.dialect,
|
|
129
|
-
|
|
129
|
+
handlers: options.handlers,
|
|
130
130
|
actorId: auth.actorId,
|
|
131
131
|
request: validatedRequest.data,
|
|
132
132
|
});
|
|
@@ -169,7 +169,7 @@ export function createRelayRoutes(options) {
|
|
|
169
169
|
const pushed = await relayPushCommit({
|
|
170
170
|
db: options.db,
|
|
171
171
|
dialect: options.dialect,
|
|
172
|
-
|
|
172
|
+
handlers: options.handlers,
|
|
173
173
|
actorId: auth.actorId,
|
|
174
174
|
request: body,
|
|
175
175
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server-role/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAuCzC,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAU;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAAA,CAC5C;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAqC,EAC/B;IACN,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,GAAG,CAAC;IACjE,MAAM,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,GAAG,CAAC;IACvE,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,GAAG,CAAC;IAE/D,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAEnE,aAAa;IACb,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;QAE5D,MAAM,OAAO,GAAY,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAEhC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAC1D,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9D,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAC7D,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,iCAAiC;aAC3C,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;YAC3D,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,+BAA+B,uBAAuB,GAAG;aACnE,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAqC,EAAE,CAAC;QAC3D,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,4BAA4B,EAAE,EACnE,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,GAAG,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,KAAK,GAAG,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACzE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO,CAAC,CAAC,IAAI,CACX;oBACE,KAAK,EAAE,iBAAiB;oBACxB,OAAO,EAAE,gCAAgC;iBAC1C,EACD,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,6BAA6B,EAAE,EACpE,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;YAClC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,6BAA6B,EAAE,EACpE,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GACV,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACtE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAC/B,CAAC,CAAC,CAAC,CAAC,CAAC;YAET,MAAM,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC;YAClD,MAAM,cAAc,GAClB,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,IAAI;gBAC3D,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACL,MAAM,MAAM,GACV,wBAAwB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;oBACxD,IAAI,CAAC,MAAM,CAAC,OAAO;wBAAE,OAAO,IAAI,CAAC;oBACjC,OAAO,MAAM,CAAC,IAAI,CAAC;gBAAA,CACpB,CAAC,EAAE,CAAC;YAEX,IACE,iBAAiB,KAAK,SAAS;gBAC/B,iBAAiB,KAAK,IAAI;gBAC1B,cAAc,KAAK,IAAI,EACvB,CAAC;gBACD,OAAO,CAAC,CAAC,IAAI,CACX;oBACE,KAAK,EAAE,iBAAiB;oBACxB,OAAO,EAAE,qCAAqC;iBAC/C,EACD,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,aAAa,CAAC,IAAI,CAAC;gBACjB,EAAE;gBACF,KAAK;gBACL,MAAM,EAAE,YAAY,CAAC,IAAI;gBACzB,MAAM,EAAE,SAAS;gBACjB,MAAM;gBACN,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAoB;YAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,QAAQ,CACpB,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;gBACtC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;gBACtC,CAAC,CAAC,OAAO,CAAC,YAAY;gBACtB,CAAC,CAAC,EAAE,EACN,CAAC,EACD,mBAAmB,CACpB;YACD,iBAAiB,EAAE,QAAQ,CACzB,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ;gBAC3C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBAC3C,CAAC,CAAC,OAAO,CAAC,iBAAiB;gBAC3B,CAAC,CAAC,IAAI,EACR,CAAC,EACD,IAAI,CACL;YACD,gBAAgB,EAAE,QAAQ,CACxB,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ;gBAC1C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAC1C,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBAC1B,CAAC,CAAC,CAAC,EACL,CAAC,EACD,EAAE,CACH;YACD,UAAU,EACR,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS;gBACrC,CAAC,CAAC,OAAO,CAAC,UAAU;gBACpB,CAAC,CAAC,SAAS;YACf,aAAa;SACd,CAAC;QAEF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAC7D,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC;YACjC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server-role/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ import type { RelayDatabase } from '../schema';
|
|
|
18
18
|
export declare function relayPull<DB extends RelayDatabase = RelayDatabase>(args: {
|
|
19
19
|
db: Kysely<DB>;
|
|
20
20
|
dialect: ServerSyncDialect;
|
|
21
|
-
|
|
21
|
+
handlers: TableRegistry<DB>;
|
|
22
22
|
actorId: string;
|
|
23
23
|
request: SyncPullRequest;
|
|
24
24
|
}): Promise<PullResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/server-role/pull.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,EAAE,SAAS,aAAa,GAAG,aAAa,EACxC,IAAI,EAAE;IACN,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/server-role/pull.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,EAAE,SAAS,aAAa,GAAG,aAAa,EACxC,IAAI,EAAE;IACN,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG,OAAO,CAAC,UAAU,CAAC,CAStB"}
|
package/dist/server-role/pull.js
CHANGED
|
@@ -12,11 +12,11 @@ import { pull } from '@syncular/server';
|
|
|
12
12
|
* - Restricts scopes to those the relay subscribes to
|
|
13
13
|
*/
|
|
14
14
|
export async function relayPull(args) {
|
|
15
|
-
// Use the standard pull - scope authorization is handled by
|
|
15
|
+
// Use the standard pull - scope authorization is handled by handlers
|
|
16
16
|
return pull({
|
|
17
17
|
db: args.db,
|
|
18
18
|
dialect: args.dialect,
|
|
19
|
-
|
|
19
|
+
handlers: args.handlers,
|
|
20
20
|
actorId: args.actorId,
|
|
21
21
|
request: args.request,
|
|
22
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/server-role/pull.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAmB,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAE7B,IAMD,EAAuB;IACtB,
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/server-role/pull.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAmB,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAE7B,IAMD,EAAuB;IACtB,qEAAqE;IACrE,OAAO,IAAI,CAAC;QACV,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AAAA,CACJ"}
|
|
@@ -20,7 +20,7 @@ import type { RelayDatabase } from '../schema';
|
|
|
20
20
|
export declare function relayPushCommit<DB extends RelayDatabase = RelayDatabase>(args: {
|
|
21
21
|
db: Kysely<DB>;
|
|
22
22
|
dialect: ServerSyncDialect;
|
|
23
|
-
|
|
23
|
+
handlers: TableRegistry<DB>;
|
|
24
24
|
actorId: string;
|
|
25
25
|
request: SyncPushRequest;
|
|
26
26
|
}): Promise<PushCommitResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/server-role/push.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,KAAK,MAAM,EAAO,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,EAAE,SAAS,aAAa,GAAG,aAAa,EACxC,IAAI,EAAE;IACN,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/server-role/push.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,KAAK,MAAM,EAAO,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,EAAE,SAAS,aAAa,GAAG,aAAa,EACxC,IAAI,EAAE;IACN,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8B5B"}
|
package/dist/server-role/push.js
CHANGED
|
@@ -18,11 +18,11 @@ import { sql } from 'kysely';
|
|
|
18
18
|
export async function relayPushCommit(args) {
|
|
19
19
|
const { request } = args;
|
|
20
20
|
return args.db.transaction().execute(async (trx) => {
|
|
21
|
-
// Use the standard pushCommit - scope authorization is handled by
|
|
21
|
+
// Use the standard pushCommit - scope authorization is handled by handlers
|
|
22
22
|
const result = await pushCommit({
|
|
23
23
|
db: trx,
|
|
24
24
|
dialect: args.dialect,
|
|
25
|
-
|
|
25
|
+
handlers: args.handlers,
|
|
26
26
|
actorId: args.actorId,
|
|
27
27
|
request,
|
|
28
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/server-role/push.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAyB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAe,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG1C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAEnC,IAMD,EAA6B;IAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;QAClD,
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/server-role/push.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAyB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAe,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG1C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAEnC,IAMD,EAA6B;IAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;QAClD,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,EAAE,EAAE,GAAG;YACP,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;SACR,CAAC,CAAC;QAEH,sEAAsE;QACtE,IACE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI;YAC3B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;YACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAC7C,CAAC;YACD,MAAM,oBAAoB,CAAC,GAAG,EAAE;gBAC9B,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;gBACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAAA,CACf,CAAC,CAAC;AAAA,CACJ;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,EAAc,EACd,IAMC,EACc;IACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,MAAM,GAAG,CAAA;kBACO,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC;;;;;;;;;;;;;;;;QAgB3C,QAAQ,EAAE;QACV,IAAI,CAAC,cAAc;QACnB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,cAAc;QACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,aAAa;;QAElB,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,CAAC;;GAEN,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEd,mDAAmD;IACnD,MAAM,GAAG,CAAA;kBACO,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC;;;;;;;cAOnC,IAAI,CAAC,cAAc,KAAK,IAAI,gBAAgB,GAAG,KAAK,GAAG;;GAElE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAAA,CACf"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syncular/relay",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2-126",
|
|
4
4
|
"description": "Edge relay for Syncular distributed sync",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Benjamin Kniffler",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"release": "bunx syncular-publish"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@syncular/core": "0.0.
|
|
46
|
-
"@syncular/server": "0.0.
|
|
45
|
+
"@syncular/core": "0.0.2-126",
|
|
46
|
+
"@syncular/server": "0.0.2-126"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"hono": "^4.0.0",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@syncular/config": "0.0.0",
|
|
54
|
-
"@syncular/server-dialect-sqlite": "0.0.
|
|
54
|
+
"@syncular/server-dialect-sqlite": "0.0.2-126",
|
|
55
55
|
"kysely": "*"
|
|
56
56
|
},
|
|
57
57
|
"files": [
|
|
@@ -189,7 +189,7 @@ describe('RelayServer health check', () => {
|
|
|
189
189
|
mainServerActorId: 'relay-main-actor',
|
|
190
190
|
tables: [],
|
|
191
191
|
scopes: {},
|
|
192
|
-
|
|
192
|
+
handlers: new TableRegistry<RelayDatabase>(),
|
|
193
193
|
healthCheckIntervalMs: 50,
|
|
194
194
|
pullIntervalMs: 10_000,
|
|
195
195
|
forwardRetryIntervalMs: 10_000,
|
|
@@ -261,8 +261,8 @@ describe('relayPushCommit atomic enqueue', () => {
|
|
|
261
261
|
)
|
|
262
262
|
`.execute(db);
|
|
263
263
|
|
|
264
|
-
const
|
|
265
|
-
|
|
264
|
+
const handlers = new TableRegistry<RelayDatabase>();
|
|
265
|
+
handlers.register({
|
|
266
266
|
table: 'tasks',
|
|
267
267
|
scopePatterns: ['user:{user_id}'],
|
|
268
268
|
resolveScopes: async () => ({ user_id: ['u1'] }),
|
|
@@ -295,7 +295,7 @@ describe('relayPushCommit atomic enqueue', () => {
|
|
|
295
295
|
relayPushCommit({
|
|
296
296
|
db,
|
|
297
297
|
dialect: createSqliteServerDialect(),
|
|
298
|
-
|
|
298
|
+
handlers,
|
|
299
299
|
actorId: 'u1',
|
|
300
300
|
request: {
|
|
301
301
|
clientId: 'relay-client-1',
|
|
@@ -385,8 +385,8 @@ describe('PullEngine cursor safety', () => {
|
|
|
385
385
|
},
|
|
386
386
|
};
|
|
387
387
|
|
|
388
|
-
const
|
|
389
|
-
|
|
388
|
+
const handlers = new TableRegistry<RelayDatabase>();
|
|
389
|
+
handlers.register({
|
|
390
390
|
table: 'tasks',
|
|
391
391
|
scopePatterns: ['user:{user_id}'],
|
|
392
392
|
resolveScopes: async () => ({}),
|
|
@@ -414,7 +414,7 @@ describe('PullEngine cursor safety', () => {
|
|
|
414
414
|
clientId: 'relay-client',
|
|
415
415
|
tables: ['tasks'],
|
|
416
416
|
scopes: {},
|
|
417
|
-
|
|
417
|
+
handlers,
|
|
418
418
|
sequenceMapper: new SequenceMapper({ db }),
|
|
419
419
|
realtime: new RelayRealtime({ heartbeatIntervalMs: 0 }),
|
|
420
420
|
onError: (error) => pullErrors.push(error),
|
|
@@ -31,7 +31,7 @@ export interface PullEngineOptions<DB extends RelayDatabase = RelayDatabase> {
|
|
|
31
31
|
tables: string[];
|
|
32
32
|
/** Scope values for subscriptions */
|
|
33
33
|
scopes: ScopeValues;
|
|
34
|
-
|
|
34
|
+
handlers: TableRegistry<DB>;
|
|
35
35
|
sequenceMapper: SequenceMapper<DB>;
|
|
36
36
|
realtime: RelayRealtime;
|
|
37
37
|
intervalMs?: number;
|
|
@@ -49,7 +49,7 @@ export class PullEngine<DB extends RelayDatabase = RelayDatabase> {
|
|
|
49
49
|
private readonly clientId: string;
|
|
50
50
|
private readonly tables: string[];
|
|
51
51
|
private readonly scopes: ScopeValues;
|
|
52
|
-
private readonly
|
|
52
|
+
private readonly handlers: TableRegistry<DB>;
|
|
53
53
|
private readonly sequenceMapper: SequenceMapper<DB>;
|
|
54
54
|
private readonly realtime: RelayRealtime;
|
|
55
55
|
private readonly intervalMs: number;
|
|
@@ -67,7 +67,7 @@ export class PullEngine<DB extends RelayDatabase = RelayDatabase> {
|
|
|
67
67
|
this.clientId = options.clientId;
|
|
68
68
|
this.tables = options.tables;
|
|
69
69
|
this.scopes = options.scopes;
|
|
70
|
-
this.
|
|
70
|
+
this.handlers = options.handlers;
|
|
71
71
|
this.sequenceMapper = options.sequenceMapper;
|
|
72
72
|
this.realtime = options.realtime;
|
|
73
73
|
this.intervalMs = options.intervalMs ?? 10000;
|
|
@@ -177,7 +177,7 @@ export class PullEngine<DB extends RelayDatabase = RelayDatabase> {
|
|
|
177
177
|
const subscriptionRequests: SyncSubscriptionRequest[] = this.tables.map(
|
|
178
178
|
(table) => ({
|
|
179
179
|
id: table,
|
|
180
|
-
|
|
180
|
+
table,
|
|
181
181
|
scopes: this.scopes,
|
|
182
182
|
cursor: this.cursors.get(table) ?? -1,
|
|
183
183
|
})
|
|
@@ -254,7 +254,7 @@ export class PullEngine<DB extends RelayDatabase = RelayDatabase> {
|
|
|
254
254
|
/**
|
|
255
255
|
* Apply a commit from main server locally.
|
|
256
256
|
*
|
|
257
|
-
* This re-applies the commit through the local
|
|
257
|
+
* This re-applies the commit through the local table handlers
|
|
258
258
|
* to ensure proper indexing and scope assignment.
|
|
259
259
|
*/
|
|
260
260
|
private async applyCommitLocally(
|
|
@@ -278,7 +278,7 @@ export class PullEngine<DB extends RelayDatabase = RelayDatabase> {
|
|
|
278
278
|
const result = await pushCommit({
|
|
279
279
|
db: this.db,
|
|
280
280
|
dialect: this.dialect,
|
|
281
|
-
|
|
281
|
+
handlers: this.handlers,
|
|
282
282
|
actorId: commit.actorId,
|
|
283
283
|
request: {
|
|
284
284
|
clientId: `relay:${this.clientId}`,
|
package/src/index.ts
CHANGED
package/src/relay.ts
CHANGED
|
@@ -48,8 +48,8 @@ export interface RelayServerOptions<DB extends RelayDatabase = RelayDatabase> {
|
|
|
48
48
|
tables: string[];
|
|
49
49
|
/** Scope values for subscriptions to the main server */
|
|
50
50
|
scopes: ScopeValues;
|
|
51
|
-
/**
|
|
52
|
-
|
|
51
|
+
/** Handler registry for handling operations */
|
|
52
|
+
handlers: TableRegistry<DB>;
|
|
53
53
|
/** Optional: WebSocket heartbeat interval in milliseconds (default: 30000) */
|
|
54
54
|
heartbeatIntervalMs?: number;
|
|
55
55
|
/** Optional: Forward engine retry interval in milliseconds (default: 5000) */
|
|
@@ -91,7 +91,7 @@ type EventHandler<K extends keyof RelayEvents> = RelayEvents[K];
|
|
|
91
91
|
* mainServerActorId: 'relay-service',
|
|
92
92
|
* tables: ['tasks', 'projects'],
|
|
93
93
|
* scopes: { project_id: 'acme' },
|
|
94
|
-
*
|
|
94
|
+
* handlers: shapeRegistry,
|
|
95
95
|
* });
|
|
96
96
|
*
|
|
97
97
|
* // Mount routes for local clients
|
|
@@ -113,7 +113,7 @@ export class RelayServer<DB extends RelayDatabase = RelayDatabase> {
|
|
|
113
113
|
private readonly mainServerActorId: string;
|
|
114
114
|
private readonly tables: string[];
|
|
115
115
|
private readonly scopes: ScopeValues;
|
|
116
|
-
private readonly
|
|
116
|
+
private readonly handlers: TableRegistry<DB>;
|
|
117
117
|
|
|
118
118
|
private readonly modeManager: ModeManager;
|
|
119
119
|
private readonly sequenceMapper: SequenceMapper<DB>;
|
|
@@ -144,7 +144,7 @@ export class RelayServer<DB extends RelayDatabase = RelayDatabase> {
|
|
|
144
144
|
this.mainServerActorId = options.mainServerActorId;
|
|
145
145
|
this.tables = options.tables;
|
|
146
146
|
this.scopes = options.scopes;
|
|
147
|
-
this.
|
|
147
|
+
this.handlers = options.handlers;
|
|
148
148
|
|
|
149
149
|
this.pruneIntervalMs = options.pruneIntervalMs ?? 3600000;
|
|
150
150
|
this.pruneMaxAgeMs = options.pruneMaxAgeMs ?? 7 * 24 * 60 * 60 * 1000;
|
|
@@ -184,7 +184,7 @@ export class RelayServer<DB extends RelayDatabase = RelayDatabase> {
|
|
|
184
184
|
clientId: this.mainServerClientId,
|
|
185
185
|
tables: this.tables,
|
|
186
186
|
scopes: this.scopes,
|
|
187
|
-
|
|
187
|
+
handlers: this.handlers,
|
|
188
188
|
sequenceMapper: this.sequenceMapper,
|
|
189
189
|
realtime: this.realtime,
|
|
190
190
|
intervalMs: options.pullIntervalMs ?? 10000,
|
|
@@ -383,7 +383,7 @@ export class RelayServer<DB extends RelayDatabase = RelayDatabase> {
|
|
|
383
383
|
const routes = createRelayRoutes({
|
|
384
384
|
db: this.db,
|
|
385
385
|
dialect: this.dialect,
|
|
386
|
-
|
|
386
|
+
handlers: this.handlers,
|
|
387
387
|
realtime: this.realtime,
|
|
388
388
|
onCommit: async (localCommitSeq: number, affectedTables: string[]) => {
|
|
389
389
|
this.realtime.notifyScopeKeys(affectedTables, localCommitSeq);
|
package/src/server-role/index.ts
CHANGED
|
@@ -32,7 +32,7 @@ export interface CreateRelayRoutesOptions<
|
|
|
32
32
|
> {
|
|
33
33
|
db: Kysely<DB>;
|
|
34
34
|
dialect: ServerSyncDialect;
|
|
35
|
-
|
|
35
|
+
handlers: TableRegistry<DB>;
|
|
36
36
|
realtime: RelayRealtime;
|
|
37
37
|
/**
|
|
38
38
|
* Called after a commit is successfully applied locally.
|
|
@@ -136,12 +136,12 @@ export function createRelayRoutes<DB extends RelayDatabase = RelayDatabase>(
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
const id = typeof subValue.id === 'string' ? subValue.id : null;
|
|
139
|
-
const
|
|
140
|
-
if (!id || !
|
|
139
|
+
const table = typeof subValue.table === 'string' ? subValue.table : null;
|
|
140
|
+
if (!id || !table) {
|
|
141
141
|
return c.json(
|
|
142
142
|
{
|
|
143
143
|
error: 'INVALID_REQUEST',
|
|
144
|
-
message: 'Subscription id/
|
|
144
|
+
message: 'Subscription id/table required',
|
|
145
145
|
},
|
|
146
146
|
400
|
|
147
147
|
);
|
|
@@ -195,7 +195,7 @@ export function createRelayRoutes<DB extends RelayDatabase = RelayDatabase>(
|
|
|
195
195
|
|
|
196
196
|
subscriptions.push({
|
|
197
197
|
id,
|
|
198
|
-
|
|
198
|
+
table,
|
|
199
199
|
scopes: scopesParsed.data,
|
|
200
200
|
params: rawParams,
|
|
201
201
|
cursor,
|
|
@@ -247,7 +247,7 @@ export function createRelayRoutes<DB extends RelayDatabase = RelayDatabase>(
|
|
|
247
247
|
const pullResult = await relayPull({
|
|
248
248
|
db: options.db,
|
|
249
249
|
dialect: options.dialect,
|
|
250
|
-
|
|
250
|
+
handlers: options.handlers,
|
|
251
251
|
actorId: auth.actorId,
|
|
252
252
|
request: validatedRequest.data,
|
|
253
253
|
});
|
|
@@ -305,7 +305,7 @@ export function createRelayRoutes<DB extends RelayDatabase = RelayDatabase>(
|
|
|
305
305
|
const pushed = await relayPushCommit({
|
|
306
306
|
db: options.db,
|
|
307
307
|
dialect: options.dialect,
|
|
308
|
-
|
|
308
|
+
handlers: options.handlers,
|
|
309
309
|
actorId: auth.actorId,
|
|
310
310
|
request: body,
|
|
311
311
|
});
|
package/src/server-role/pull.ts
CHANGED
|
@@ -22,15 +22,15 @@ export async function relayPull<
|
|
|
22
22
|
>(args: {
|
|
23
23
|
db: Kysely<DB>;
|
|
24
24
|
dialect: ServerSyncDialect;
|
|
25
|
-
|
|
25
|
+
handlers: TableRegistry<DB>;
|
|
26
26
|
actorId: string;
|
|
27
27
|
request: SyncPullRequest;
|
|
28
28
|
}): Promise<PullResult> {
|
|
29
|
-
// Use the standard pull - scope authorization is handled by
|
|
29
|
+
// Use the standard pull - scope authorization is handled by handlers
|
|
30
30
|
return pull({
|
|
31
31
|
db: args.db,
|
|
32
32
|
dialect: args.dialect,
|
|
33
|
-
|
|
33
|
+
handlers: args.handlers,
|
|
34
34
|
actorId: args.actorId,
|
|
35
35
|
request: args.request,
|
|
36
36
|
});
|
package/src/server-role/push.ts
CHANGED
|
@@ -25,18 +25,18 @@ export async function relayPushCommit<
|
|
|
25
25
|
>(args: {
|
|
26
26
|
db: Kysely<DB>;
|
|
27
27
|
dialect: ServerSyncDialect;
|
|
28
|
-
|
|
28
|
+
handlers: TableRegistry<DB>;
|
|
29
29
|
actorId: string;
|
|
30
30
|
request: SyncPushRequest;
|
|
31
31
|
}): Promise<PushCommitResult> {
|
|
32
32
|
const { request } = args;
|
|
33
33
|
|
|
34
34
|
return args.db.transaction().execute(async (trx) => {
|
|
35
|
-
// Use the standard pushCommit - scope authorization is handled by
|
|
35
|
+
// Use the standard pushCommit - scope authorization is handled by handlers
|
|
36
36
|
const result = await pushCommit({
|
|
37
37
|
db: trx,
|
|
38
38
|
dialect: args.dialect,
|
|
39
|
-
|
|
39
|
+
handlers: args.handlers,
|
|
40
40
|
actorId: args.actorId,
|
|
41
41
|
request,
|
|
42
42
|
});
|