lowlander 0.3.0 → 0.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/README.md +60 -27
- package/build/client/client.d.ts +5 -1
- package/build/client/client.js +10 -4
- package/build/client/client.js.map +1 -1
- package/build/examples/helloworld/server/api.d.ts +34 -25
- package/build/examples/helloworld/server/api.d.ts.map +1 -1
- package/build/examples/helloworld/server/api.js +19 -2
- package/build/examples/helloworld/server/api.js.map +1 -1
- package/build/server/protocol.d.ts +1 -0
- package/build/server/protocol.d.ts.map +1 -1
- package/build/server/protocol.js +1 -0
- package/build/server/protocol.js.map +1 -1
- package/build/server/server.d.ts +7 -9
- package/build/server/server.d.ts.map +1 -1
- package/build/server/server.js.map +1 -1
- package/build/server/wshandler.d.ts.map +1 -1
- package/build/server/wshandler.js +12 -4
- package/build/server/wshandler.js.map +1 -1
- package/build/tsconfig.client.tsbuildinfo +1 -1
- package/build/tsconfig.server.tsbuildinfo +1 -1
- package/client/client.ts +14 -5
- package/package.json +2 -2
- package/server/protocol.ts +1 -0
- package/server/server.ts +35 -15
- package/server/wshandler.ts +13 -4
- package/skill/SKILL.md +33 -0
- package/skill/createStreamType.md +1 -1
package/README.md
CHANGED
|
@@ -174,6 +174,20 @@ export async function authenticate(token: string) {
|
|
|
174
174
|
|
|
175
175
|
The client receives `'secret-value'` as `.value` and can call `UserAPI` methods via `.serverProxy`.
|
|
176
176
|
|
|
177
|
+
You can also pass a stream type instance as the value — the client's `.value` will then be reactive and update live whenever the model changes:
|
|
178
|
+
|
|
179
|
+
```ts
|
|
180
|
+
const PersonStream = createStreamType(Person, { name: true, age: true });
|
|
181
|
+
|
|
182
|
+
export async function authenticate(token: string) {
|
|
183
|
+
const user = Person.getBy('name', token);
|
|
184
|
+
if (!user) throw new Error('User not found');
|
|
185
|
+
return new ServerProxy(new UserAPI(token), new PersonStream(user));
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
The client gets both `.serverProxy` (for calling `UserAPI` methods) and a live-updating `.value`.
|
|
190
|
+
|
|
177
191
|
When a proxy is dropped, because the request's Aberdeen scope was destroyed or the WebSocket disconnected, Lowlander calls `onDrop()` on the API object if it exists, letting you clean up server-side state.
|
|
178
192
|
|
|
179
193
|
```ts
|
|
@@ -290,6 +304,25 @@ Reconnection is automatic with exponential backoff.
|
|
|
290
304
|
|
|
291
305
|
Aberdeen's `clean()` handles RPC lifecycle. When a reactive scope is destroyed, active requests and subscriptions are cancelled automatically.
|
|
292
306
|
|
|
307
|
+
|
|
308
|
+
#### Named Client-Side Types
|
|
309
|
+
|
|
310
|
+
Use `ClientProxyObject<T>` to get the fully-typed client API shape, which is useful for deriving types from stream methods without duplicating field selections:
|
|
311
|
+
|
|
312
|
+
```ts
|
|
313
|
+
import type { ClientProxyObject } from 'lowlander/client';
|
|
314
|
+
import type * as API from './server/api.js';
|
|
315
|
+
|
|
316
|
+
type APIClient = ClientProxyObject<typeof API>;
|
|
317
|
+
const api: APIClient = new Connection<typeof API>('ws://localhost:8080/').api;
|
|
318
|
+
|
|
319
|
+
type SomethingType = ReturnType<APIClient['streamSomething']>;
|
|
320
|
+
const something: SomethingType = api.streamSomething();
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
`ClientProxyObject` maps server return types to their client-side equivalents. Stream methods return `PromiseProxy<ProjectedData>`, plain values return `PromiseProxy<T>`, and `ServerProxy<API, R>` methods return a proxy with a `.serverProxy` of type `ClientProxyObject<SubAPI>`.
|
|
324
|
+
|
|
325
|
+
|
|
293
326
|
### Logging
|
|
294
327
|
|
|
295
328
|
Set the `LOWLANDER_LOG_LEVEL` environment variable to a number from 0 to 3:
|
|
@@ -305,14 +338,14 @@ Set `EDINBURGH_LOG_LEVEL` similarly for Edinburgh internals.
|
|
|
305
338
|
|
|
306
339
|
The following is auto-generated from `server/server.ts`:
|
|
307
340
|
|
|
308
|
-
### createStreamType · [function](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
341
|
+
### createStreamType · [function](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L181)
|
|
309
342
|
|
|
310
343
|
Creates a stream type for reactive model streaming to clients with automatic updates.
|
|
311
344
|
|
|
312
345
|
Specify which fields to include; when they change, updates are pushed to subscribed clients.
|
|
313
346
|
Supports nested linked models and type-safe field selection.
|
|
314
347
|
|
|
315
|
-
**Signature:** `<T, S extends FieldSelection<T>>(Model:
|
|
348
|
+
**Signature:** `<T, S extends FieldSelection<T>>(Model: object & ModelClassRuntime<any, readonly any[], any, any> & (new (initial?: Partial<any>, txn?: Transaction) => any) & (new (...args: any[]) => T), selection: S & ValidateSelection<...>, options?: { ...; }) => { ...; }`
|
|
316
349
|
|
|
317
350
|
**Type Parameters:**
|
|
318
351
|
|
|
@@ -350,7 +383,7 @@ export function streamPerson() {
|
|
|
350
383
|
}
|
|
351
384
|
```
|
|
352
385
|
|
|
353
|
-
### sendModel · [function](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
386
|
+
### sendModel · [function](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L282)
|
|
354
387
|
|
|
355
388
|
Sends (updated) data for `model` to `target`.
|
|
356
389
|
`target` is a virtual socket with a requestId+'d' user prefix, or a channel that subscribes such virtual sockets.
|
|
@@ -365,7 +398,7 @@ Sends (updated) data for `model` to `target`.
|
|
|
365
398
|
- `StreamType: typeof StreamTypeBase<any>`
|
|
366
399
|
- `changed?: E.Change`
|
|
367
400
|
|
|
368
|
-
### pushModel · [function](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
401
|
+
### pushModel · [function](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L338)
|
|
369
402
|
|
|
370
403
|
Subscribes `target` to this model, and sends initial data.
|
|
371
404
|
`target` is a virtual socket with a requestId+'d' user prefix, or a channel that subscribes such virtual sockets.
|
|
@@ -380,7 +413,7 @@ Subscribes `target` to this model, and sends initial data.
|
|
|
380
413
|
- `SubStreamType: typeof StreamTypeBase<any>`
|
|
381
414
|
- `delta: number`
|
|
382
415
|
|
|
383
|
-
### start · [function](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
416
|
+
### start · [function](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L453)
|
|
384
417
|
|
|
385
418
|
Starts the Lowlander WebSocket server.
|
|
386
419
|
|
|
@@ -434,7 +467,7 @@ start(API_FILE, { bind: '0.0.0.0:8080' });
|
|
|
434
467
|
|
|
435
468
|
**Signature:** `() => string`
|
|
436
469
|
|
|
437
|
-
### ServerProxy · [class](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
470
|
+
### ServerProxy · [class](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L374)
|
|
438
471
|
|
|
439
472
|
Wraps a server-side API object to create a stateful, type-safe proxy accessible from clients.
|
|
440
473
|
Use for authentication, sessions, or any stateful context that persists across RPC calls.
|
|
@@ -470,11 +503,11 @@ export async function authenticate(token: string) {
|
|
|
470
503
|
- `api`: - Server-side API object exposed to the client
|
|
471
504
|
- `value`: - Value returned immediately to the client
|
|
472
505
|
|
|
473
|
-
#### serverProxy.toString · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
506
|
+
#### serverProxy.toString · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L380)
|
|
474
507
|
|
|
475
508
|
**Signature:** `() => string`
|
|
476
509
|
|
|
477
|
-
### Socket · [class](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
510
|
+
### Socket · [class](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L404)
|
|
478
511
|
|
|
479
512
|
Server-side socket for pushing data to a client. Server functions with `Socket<T>` parameters
|
|
480
513
|
receive client callbacks on the client side.
|
|
@@ -497,7 +530,7 @@ export function streamNumbers(socket: Socket<number>) {
|
|
|
497
530
|
api.streamNumbers(num => console.log(num));
|
|
498
531
|
```
|
|
499
532
|
|
|
500
|
-
#### socket.send · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
533
|
+
#### socket.send · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L413)
|
|
501
534
|
|
|
502
535
|
Sends data to the client.
|
|
503
536
|
|
|
@@ -509,7 +542,7 @@ Sends data to the client.
|
|
|
509
542
|
|
|
510
543
|
**Returns:** `true` if sent, `false` if socket is closed
|
|
511
544
|
|
|
512
|
-
#### socket.subscribe · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
545
|
+
#### socket.subscribe · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L419)
|
|
513
546
|
|
|
514
547
|
**Signature:** `(channel: Uint8Array<ArrayBufferLike>, delta?: number) => void`
|
|
515
548
|
|
|
@@ -518,11 +551,11 @@ Sends data to the client.
|
|
|
518
551
|
- `channel: Uint8Array`
|
|
519
552
|
- `delta: any` (optional)
|
|
520
553
|
|
|
521
|
-
#### socket.toString · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
554
|
+
#### socket.toString · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L426)
|
|
522
555
|
|
|
523
556
|
**Signature:** `() => string`
|
|
524
557
|
|
|
525
|
-
#### socket.[Symbol.for('nodejs.util.inspect.custom')] · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#
|
|
558
|
+
#### socket.[Symbol.for('nodejs.util.inspect.custom')] · [method](https://github.com/vanviegen/lowlander/blob/main/server/server.ts#L430)
|
|
526
559
|
|
|
527
560
|
**Signature:** `() => string`
|
|
528
561
|
|
|
@@ -540,7 +573,7 @@ Set to 0-3 for increasing verbosity.
|
|
|
540
573
|
|
|
541
574
|
- `level: number`
|
|
542
575
|
|
|
543
|
-
### ClientProxyObject · [type](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
576
|
+
### ClientProxyObject · [type](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L162)
|
|
544
577
|
|
|
545
578
|
Transforms server-side API objects to client-side proxy objects with type-safe RPC methods.
|
|
546
579
|
|
|
@@ -548,7 +581,7 @@ Transforms server-side API objects to client-side proxy objects with type-safe R
|
|
|
548
581
|
[K in keyof T]: ClientProxyFunction<T[K]>
|
|
549
582
|
}`
|
|
550
583
|
|
|
551
|
-
### Connection · [class](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
584
|
+
### Connection · [class](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L195)
|
|
552
585
|
|
|
553
586
|
WebSocket connection to a Lowlander server with type-safe RPC, automatic reconnection,
|
|
554
587
|
and reactive updates.
|
|
@@ -584,31 +617,31 @@ $(() => {
|
|
|
584
617
|
|
|
585
618
|
- `url`: - WebSocket URL (e.g., 'ws://localhost:8080/'), or a fake WebSocket object for testing
|
|
586
619
|
|
|
587
|
-
#### connection.ws · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
620
|
+
#### connection.ws · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L197)
|
|
588
621
|
|
|
589
622
|
**Type:** `WebSocket`
|
|
590
623
|
|
|
591
|
-
#### connection.activeRequests · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
624
|
+
#### connection.activeRequests · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L198)
|
|
592
625
|
|
|
593
626
|
**Type:** `Map<number, ActiveRequest>`
|
|
594
627
|
|
|
595
|
-
#### connection.requestCounter · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
628
|
+
#### connection.requestCounter · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L199)
|
|
596
629
|
|
|
597
630
|
**Type:** `number`
|
|
598
631
|
|
|
599
|
-
#### connection.reconnectAttempts · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
632
|
+
#### connection.reconnectAttempts · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L200)
|
|
600
633
|
|
|
601
634
|
**Type:** `number`
|
|
602
635
|
|
|
603
|
-
#### connection.onlineProxy · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
636
|
+
#### connection.onlineProxy · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L203)
|
|
604
637
|
|
|
605
638
|
**Type:** `ValueRef<boolean>`
|
|
606
639
|
|
|
607
|
-
#### connection.streamCache · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
640
|
+
#### connection.streamCache · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L204)
|
|
608
641
|
|
|
609
642
|
**Type:** `Map<string, StreamCacheEntry>`
|
|
610
643
|
|
|
611
|
-
#### connection.api · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
644
|
+
#### connection.api · [property](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L211)
|
|
612
645
|
|
|
613
646
|
Type-safe proxy to the server-side API. Methods return `PromiseProxy` objects
|
|
614
647
|
that work reactively in Aberdeen scopes. `ServerProxy` returns include a
|
|
@@ -616,21 +649,21 @@ that work reactively in Aberdeen scopes. `ServerProxy` returns include a
|
|
|
616
649
|
|
|
617
650
|
**Type:** `ClientProxyObject<T>`
|
|
618
651
|
|
|
619
|
-
#### connection.isOnline · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
652
|
+
#### connection.isOnline · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L224)
|
|
620
653
|
|
|
621
654
|
Returns the current connection status. Reactive in Aberdeen scopes.
|
|
622
655
|
|
|
623
656
|
**Signature:** `() => boolean`
|
|
624
657
|
|
|
625
|
-
#### connection.connect · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
658
|
+
#### connection.connect · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L226)
|
|
626
659
|
|
|
627
660
|
**Signature:** `() => void`
|
|
628
661
|
|
|
629
|
-
#### connection.reconnect · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
662
|
+
#### connection.reconnect · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L392)
|
|
630
663
|
|
|
631
664
|
**Signature:** `() => void`
|
|
632
665
|
|
|
633
|
-
#### connection.pruneCommitIds · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
666
|
+
#### connection.pruneCommitIds · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L406)
|
|
634
667
|
|
|
635
668
|
**Signature:** `(request: ActiveRequest, maxCommitId: number) => void`
|
|
636
669
|
|
|
@@ -639,7 +672,7 @@ Returns the current connection status. Reactive in Aberdeen scopes.
|
|
|
639
672
|
- `request: ActiveRequest`
|
|
640
673
|
- `maxCommitId: number`
|
|
641
674
|
|
|
642
|
-
#### connection.cancelRequest · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
675
|
+
#### connection.cancelRequest · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L496)
|
|
643
676
|
|
|
644
677
|
**Signature:** `(request: ActiveRequest) => void`
|
|
645
678
|
|
|
@@ -647,7 +680,7 @@ Returns the current connection status. Reactive in Aberdeen scopes.
|
|
|
647
680
|
|
|
648
681
|
- `request: ActiveRequest`
|
|
649
682
|
|
|
650
|
-
#### connection.startLinger · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#
|
|
683
|
+
#### connection.startLinger · [method](https://github.com/vanviegen/lowlander/blob/main/client/client.ts#L510)
|
|
651
684
|
|
|
652
685
|
**Signature:** `(cached: StreamCacheEntry) => void`
|
|
653
686
|
|
package/build/client/client.d.ts
CHANGED
|
@@ -20,12 +20,16 @@ type ClientProxyArgs<Args extends any[]> = {
|
|
|
20
20
|
* Transforms server-side return types for client-side use.
|
|
21
21
|
*
|
|
22
22
|
* - Strips `Promise` wrappers
|
|
23
|
+
* - `ServerProxy<API, StreamTypeBase<T>>` → `PromiseProxy<T> & {serverProxy: ClientProxyObject<API>}`
|
|
23
24
|
* - `ServerProxy<API, RETURN>` → `PromiseProxy<RETURN> & {serverProxy: ClientProxyObject<API>}`
|
|
24
25
|
* - Other types → `PromiseProxy<R>`
|
|
25
26
|
*
|
|
26
27
|
* @typeParam R - The server-side return type
|
|
27
28
|
*/
|
|
28
|
-
type ClientProxyReturn<R> = R extends Promise<infer U> ? ClientProxyReturn<U> : R extends ServerProxy<infer API, infer RETURN> ? PromiseProxy<
|
|
29
|
+
type ClientProxyReturn<R> = R extends Promise<infer U> ? ClientProxyReturn<U> : R extends ServerProxy<infer API, infer RETURN> ? RETURN extends StreamTypeBase<infer T> ? PromiseProxy<T> & {
|
|
30
|
+
promise: Promise<T>;
|
|
31
|
+
serverProxy: ClientProxyObject<API>;
|
|
32
|
+
} : PromiseProxy<RETURN> & {
|
|
29
33
|
promise: Promise<RETURN>;
|
|
30
34
|
serverProxy: ClientProxyObject<API>;
|
|
31
35
|
} : R extends StreamTypeBase<infer T> ? PromiseProxy<T> & {
|
package/build/client/client.js
CHANGED
|
@@ -169,7 +169,12 @@ export class Connection {
|
|
|
169
169
|
// Create new object
|
|
170
170
|
if (prevCommitIds && commitId < (prevCommitIds.get(DEFAULT_COMMIT) ?? -1))
|
|
171
171
|
return; // Stale create
|
|
172
|
-
|
|
172
|
+
const entry = A.proxy(delta);
|
|
173
|
+
// OPAQUE=false: excluded from A.copy recursion (so this proxy is never
|
|
174
|
+
// corrupted by being overwritten with data from a different linked model
|
|
175
|
+
// at the same array index), but still wrapped in a proxy on read.
|
|
176
|
+
A.unproxy(entry)[A.OPAQUE] = false;
|
|
177
|
+
request.database.set(dbKeyHash, entry);
|
|
173
178
|
request.commitIds.set(dbKeyHash, new Map([[DEFAULT_COMMIT, commitId]]));
|
|
174
179
|
}
|
|
175
180
|
return;
|
|
@@ -188,13 +193,14 @@ export class Connection {
|
|
|
188
193
|
if (logLevel >= 2)
|
|
189
194
|
console.log(`[lowlander] incoming response requestId=${requestId} value=${result.value} virtualSocketIds=${request.virtualSocketIds} hasServerProxy=${request.hasServerProxy}`);
|
|
190
195
|
}
|
|
191
|
-
else if (type === SERVER_MESSAGES.response_model) {
|
|
192
|
-
request.virtualSocketIds = pack.read();
|
|
196
|
+
else if (type === SERVER_MESSAGES.response_model || type === SERVER_MESSAGES.response_proxy_model) {
|
|
197
|
+
request.virtualSocketIds = pack.read();
|
|
193
198
|
const dbKey = pack.readNumber();
|
|
194
199
|
const cacheMs = pack.read();
|
|
195
200
|
const obj = request.database?.get(dbKey);
|
|
201
|
+
request.hasServerProxy = type === SERVER_MESSAGES.response_proxy_model;
|
|
196
202
|
if (logLevel >= 2)
|
|
197
|
-
console.log(`[lowlander] incoming response_model requestId=${requestId} dbKey=${dbKey} cacheMs=${cacheMs} obj=${obj}`);
|
|
203
|
+
console.log(`[lowlander] incoming ${request.hasServerProxy ? 'response_proxy_model' : 'response_model'} requestId=${requestId} dbKey=${dbKey} cacheMs=${cacheMs} obj=${obj}`);
|
|
198
204
|
if (obj) {
|
|
199
205
|
request.resultProxy.value = A.proxy(obj);
|
|
200
206
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../client/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,44 +13,53 @@ export declare class UserAPI {
|
|
|
13
13
|
export declare function authenticate(auth: string): Promise<ServerProxy<UserAPI, string>>;
|
|
14
14
|
export declare function getOnlineUsers(): string[];
|
|
15
15
|
export declare function greet(name: string, greeting?: string): string;
|
|
16
|
-
declare const Person: E.ModelClass<{
|
|
17
|
-
|
|
16
|
+
declare const Person: E.ModelClass<{}, {
|
|
17
|
+
name: string;
|
|
18
|
+
age: number;
|
|
19
|
+
friends: (/*elided*/ any & E.ModelBase<E.ModelLookup<[string]>>)[];
|
|
20
|
+
password: string;
|
|
21
|
+
onlineCount: number;
|
|
22
|
+
}, [string], {
|
|
23
|
+
[x: string]: "name" | "age" | "friends" | "password" | "onlineCount" | readonly ("name" | "age" | "friends" | "password" | "onlineCount")[] | ((instance: {
|
|
18
24
|
name: string;
|
|
19
25
|
age: number;
|
|
20
|
-
friends:
|
|
26
|
+
friends: (/*elided*/ any & E.ModelBase<E.ModelLookup<[string]>>)[];
|
|
21
27
|
password: string;
|
|
22
28
|
onlineCount: number;
|
|
23
|
-
};
|
|
24
|
-
},
|
|
25
|
-
readonly online: (
|
|
29
|
+
} & E.ModelBase<E.ModelLookup<readonly any[]>>) => any);
|
|
30
|
+
}, {
|
|
31
|
+
readonly online: (instance: any) => boolean[];
|
|
26
32
|
}>;
|
|
27
33
|
type Person = InstanceType<typeof Person>;
|
|
34
|
+
export declare function authenticateWithStream(auth: string): Promise<ServerProxy<UserAPI, import("lowlander/server").StreamTypeBase<{
|
|
35
|
+
name: string;
|
|
36
|
+
age: number;
|
|
37
|
+
}>>>;
|
|
28
38
|
export declare function resetTestData(deleteEverything: boolean): Promise<void>;
|
|
29
|
-
export declare function streamModel(): {
|
|
30
|
-
|
|
39
|
+
export declare function streamModel(): import("lowlander/server").StreamTypeBase<{
|
|
40
|
+
name: string;
|
|
41
|
+
owner: {
|
|
31
42
|
name: string;
|
|
32
|
-
|
|
43
|
+
age: number;
|
|
44
|
+
friends: readonly {
|
|
33
45
|
name: string;
|
|
34
46
|
age: number;
|
|
35
|
-
|
|
36
|
-
name: string;
|
|
37
|
-
age: number;
|
|
38
|
-
}[];
|
|
39
|
-
};
|
|
40
|
-
createdAt: Date;
|
|
41
|
-
meta: Record<string | number, number>;
|
|
47
|
+
}[];
|
|
42
48
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
createdAt: Date;
|
|
50
|
+
meta: Record<string | number, number>;
|
|
51
|
+
}>;
|
|
52
|
+
export declare function streamModelCached(): import("lowlander/server").StreamTypeBase<{
|
|
53
|
+
name: string;
|
|
54
|
+
owner: {
|
|
47
55
|
name: string;
|
|
48
|
-
owner: {
|
|
49
|
-
name: string;
|
|
50
|
-
};
|
|
51
56
|
};
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
}>;
|
|
58
|
+
export declare function streamModelLinkedRecord(): import("lowlander/server").StreamTypeBase<{
|
|
59
|
+
owners: Record<string, {
|
|
60
|
+
name: string;
|
|
61
|
+
}>;
|
|
62
|
+
}>;
|
|
54
63
|
export declare function incrOwnerAge(delta: number): Promise<void>;
|
|
55
64
|
export declare function setOwnerAge(age: number): void;
|
|
56
65
|
export declare function setModelName(name: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../examples/helloworld/server/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAoB,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzE,eAAO,MAAM,aAAa,wDAA2B,CAAC;AAGtD,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAGD,qBAAa,OAAO;IACG,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;IAEnC,IAAI,IAAI,IAAI,MAAM,CAIjB;IAED,MAAM;IAIN,YAAY,CAAC,UAAU,EAAE,MAAM;IAa/B,MAAM;CAGT;AAGD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,yCAM9C;AAED,wBAAgB,cAAc,aAE7B;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAgB,UAE7D;AAID,QAAA,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../examples/helloworld/server/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAoB,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzE,eAAO,MAAM,aAAa,wDAA2B,CAAC;AAGtD,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAGD,qBAAa,OAAO;IACG,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;IAEnC,IAAI,IAAI,IAAI,MAAM,CAIjB;IAED,MAAM;IAIN,YAAY,CAAC,UAAU,EAAE,MAAM;IAa/B,MAAM;CAGT;AAGD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,yCAM9C;AAED,wBAAgB,cAAc,aAE7B;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAgB,UAE7D;AAID,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;EASV,CAAC;AACH,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAI1C,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM;;;KAMxD;AAgBD,wBAAsB,aAAa,CAAC,gBAAgB,EAAE,OAAO,iBAmB5D;AAqCD,wBAAgB,WAAW;;;;;;;;;;;;GAG1B;AAED,wBAAgB,iBAAiB;;;;;GAGhC;AAED,wBAAgB,uBAAuB;;;;GAGtC;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,iBAK/C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,QAGtC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,QAGxC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAGjD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,QAKrC;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QASrD"}
|
|
@@ -64,6 +64,15 @@ const Person = E.defineModel('Person', class {
|
|
|
64
64
|
pk: 'name',
|
|
65
65
|
index: { online: (p) => p.onlineCount > 0 ? [true] : [] },
|
|
66
66
|
});
|
|
67
|
+
const PersonStream = createStreamType(Person, { name: true, age: true });
|
|
68
|
+
export async function authenticateWithStream(auth) {
|
|
69
|
+
const user = Person.get(auth);
|
|
70
|
+
if (!user)
|
|
71
|
+
throw new Error('User not found');
|
|
72
|
+
user.onlineCount++;
|
|
73
|
+
// Client receives a live stream of {name, age} as .value, plus UserAPI via .serverProxy
|
|
74
|
+
return new ServerProxy(new UserAPI(auth), new PersonStream(user));
|
|
75
|
+
}
|
|
67
76
|
const MyModel = E.defineModel('MyModel', class {
|
|
68
77
|
id = E.field(E.identifier);
|
|
69
78
|
name = E.field(E.string);
|
|
@@ -71,6 +80,7 @@ const MyModel = E.defineModel('MyModel', class {
|
|
|
71
80
|
owner = E.field(E.link(Person));
|
|
72
81
|
createdAt = E.field(E.dateTime);
|
|
73
82
|
meta = E.field(E.record(E.number));
|
|
83
|
+
owners = E.field(E.record(E.link(() => Person)));
|
|
74
84
|
}, {
|
|
75
85
|
pk: 'id',
|
|
76
86
|
unique: { name: 'name' },
|
|
@@ -92,8 +102,8 @@ export async function resetTestData(deleteEverything) {
|
|
|
92
102
|
// Reset onlineCount on startup (no clients connected yet)
|
|
93
103
|
for (const p of [p1, p2, p3])
|
|
94
104
|
p.onlineCount = 0;
|
|
95
|
-
let m1 = MyModel.getBy('name', 'Test') || new MyModel({ name: 'Test', owner: p1, meta: { score: 42, level: 7 } });
|
|
96
|
-
let m2 = MyModel.getBy('name', 'Another') || new MyModel({ name: 'Another', owner: p2, next: m1, meta: {} });
|
|
105
|
+
let m1 = MyModel.getBy('name', 'Test') || new MyModel({ name: 'Test', owner: p1, meta: { score: 42, level: 7 }, owners: { [p1.name]: p1, [p2.name]: p2 } });
|
|
106
|
+
let m2 = MyModel.getBy('name', 'Another') || new MyModel({ name: 'Another', owner: p2, next: m1, meta: {}, owners: {} });
|
|
97
107
|
ids = { p1: p1.name, p2: p2.name, m1: m1.id, m2: m2.id };
|
|
98
108
|
});
|
|
99
109
|
}
|
|
@@ -124,6 +134,9 @@ const CachedStream = createStreamType(MyModel, {
|
|
|
124
134
|
name: true,
|
|
125
135
|
owner: { name: true },
|
|
126
136
|
}, { cache: 60 });
|
|
137
|
+
const LinkedRecordStream = createStreamType(MyModel, {
|
|
138
|
+
owners: { name: true },
|
|
139
|
+
});
|
|
127
140
|
// Example of model streaming - returns a reactive proxy that auto-updates on changes
|
|
128
141
|
export function streamModel() {
|
|
129
142
|
const m1 = MyModel.get(ids.m1);
|
|
@@ -133,6 +146,10 @@ export function streamModelCached() {
|
|
|
133
146
|
const m1 = MyModel.get(ids.m1);
|
|
134
147
|
return new CachedStream(m1);
|
|
135
148
|
}
|
|
149
|
+
export function streamModelLinkedRecord() {
|
|
150
|
+
const m1 = MyModel.get(ids.m1);
|
|
151
|
+
return new LinkedRecordStream(m1);
|
|
152
|
+
}
|
|
136
153
|
export async function incrOwnerAge(delta) {
|
|
137
154
|
const m1 = MyModel.get(ids.m1);
|
|
138
155
|
const current = m1.owner.age;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../examples/helloworld/server/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../examples/helloworld/server/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../server/protocol.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../server/protocol.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;CAO3B,CAAC;AAOF,eAAO,MAAM,eAAe;;;CAG3B,CAAC"}
|
package/build/server/protocol.js
CHANGED
|
@@ -6,6 +6,7 @@ export const SERVER_MESSAGES = {
|
|
|
6
6
|
response: 'r', // followed by result + virtualSocketIds
|
|
7
7
|
response_proxy: 'p', // followed by result + virtualSocketIds (like above, but indicate that a ServerProxy has been created for this request)
|
|
8
8
|
response_model: 'm', // followed by virtualSocketIds + dbKey + cacheMs (undefined = no caching/dedup)
|
|
9
|
+
response_proxy_model: 'q', // followed by virtualSocketIds + dbKey + cacheMs — like response_model but a ServerProxy was also registered
|
|
9
10
|
model_data: 'd', // followed by dbKey + commitId + delta
|
|
10
11
|
};
|
|
11
12
|
// The virtualSocketIds in a response or response_model is stored by the client and must
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../server/protocol.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,KAAK;AAEL,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,KAAK,EAAE,GAAG,EAAE,2BAA2B;IACvC,QAAQ,EAAE,GAAG,EAAE,wCAAwC;IACvD,cAAc,EAAE,GAAG,EAAE,wHAAwH;IAC7I,cAAc,EAAE,GAAG,EAAE,gFAAgF;IACrG,UAAU,EAAE,GAAG,EAAE,uCAAuC;CAC3D,CAAC;AAEF,wFAAwF;AACxF,2BAA2B;AAC3B,yHAAyH;AAEzH,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,IAAI,EAAE,CAAC,EAAE,4DAA4D;IACrE,MAAM,EAAE,CAAC,EAAE,2DAA2D;CACzE,CAAC"}
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../server/protocol.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,KAAK;AAEL,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,KAAK,EAAE,GAAG,EAAE,2BAA2B;IACvC,QAAQ,EAAE,GAAG,EAAE,wCAAwC;IACvD,cAAc,EAAE,GAAG,EAAE,wHAAwH;IAC7I,cAAc,EAAE,GAAG,EAAE,gFAAgF;IACrG,oBAAoB,EAAE,GAAG,EAAE,6GAA6G;IACxI,UAAU,EAAE,GAAG,EAAE,uCAAuC;CAC3D,CAAC;AAEF,wFAAwF;AACxF,2BAA2B;AAC3B,yHAAyH;AAEzH,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,IAAI,EAAE,CAAC,EAAE,4DAA4D;IACrE,MAAM,EAAE,CAAC,EAAE,2DAA2D;CACzE,CAAC"}
|
package/build/server/server.d.ts
CHANGED
|
@@ -24,24 +24,25 @@ export declare abstract class StreamTypeBase<T> {
|
|
|
24
24
|
/**
|
|
25
25
|
* Type-safe selector for specifying which model fields to stream to clients.
|
|
26
26
|
* Use `true` to include a field, or an object to select nested fields in linked models.
|
|
27
|
+
* Set<U> and Record<string, U> fields take a selection for U (applied to every element).
|
|
27
28
|
*
|
|
28
29
|
* @typeParam T - The model type
|
|
29
30
|
*/
|
|
30
|
-
type FieldSelection<T> = T extends ReadonlyArray<infer U> ? true | FieldSelection<U> : T extends Array<infer U> ? true | FieldSelection<U> : T extends object ? true | {
|
|
31
|
+
type FieldSelection<T> = T extends ReadonlyArray<infer U> ? true | FieldSelection<U> : T extends Array<infer U> ? true | FieldSelection<U> : T extends ReadonlySet<infer U> ? true | FieldSelection<U> : string extends keyof T ? T extends Record<string, infer U> ? true | FieldSelection<U> : true : T extends object ? true | {
|
|
31
32
|
[K in keyof T]?: FieldSelection<T[K]>;
|
|
32
33
|
} : true;
|
|
33
34
|
/**
|
|
34
35
|
* Validates field selection compatibility at compile time.
|
|
35
36
|
* @internal
|
|
36
37
|
*/
|
|
37
|
-
type ValidateSelection<T, S> = T extends ReadonlyArray<infer U> ? S extends true ? true : ValidateSelection<U, S> : T extends Array<infer U> ? S extends true ? true : ValidateSelection<U, S> : T extends object ? S extends true ? true : S extends object ? {
|
|
38
|
+
type ValidateSelection<T, S> = T extends ReadonlyArray<infer U> ? S extends true ? true : ValidateSelection<U, S> : T extends Array<infer U> ? S extends true ? true : ValidateSelection<U, S> : T extends ReadonlySet<infer U> ? S extends true ? true : ValidateSelection<U, S> : string extends keyof T ? T extends Record<string, infer U> ? S extends true ? true : ValidateSelection<U, S> : never : T extends object ? S extends true ? true : S extends object ? {
|
|
38
39
|
[K in keyof S]-?: K extends keyof T ? ValidateSelection<T[K], S[K]> : never;
|
|
39
40
|
} : never : S extends true ? true : never;
|
|
40
41
|
/**
|
|
41
42
|
* Computes the resulting type after applying a field selection.
|
|
42
43
|
* @internal
|
|
43
44
|
*/
|
|
44
|
-
type Project<T, S> = S extends true ? T : T extends ReadonlyArray<infer U> ? ReadonlyArray<Project<U, S>> : T extends Array<infer U> ? Array<Project<U, S>> : T extends object ? {
|
|
45
|
+
type Project<T, S> = S extends true ? T : T extends ReadonlyArray<infer U> ? ReadonlyArray<Project<U, S>> : T extends Array<infer U> ? Array<Project<U, S>> : T extends ReadonlySet<infer U> ? Project<U, S>[] : string extends keyof T ? T extends Record<string, infer U> ? Record<string, Project<U, S>> : T : T extends object ? {
|
|
45
46
|
[K in Extract<keyof S, keyof T>]: Project<T[K], S[K & keyof T]>;
|
|
46
47
|
} : T;
|
|
47
48
|
/**
|
|
@@ -84,13 +85,10 @@ type Project<T, S> = S extends true ? T : T extends ReadonlyArray<infer U> ? Rea
|
|
|
84
85
|
export declare function createStreamType<T, S extends FieldSelection<T>>(Model: E.AnyModelClass & (new (...args: any[]) => T), selection: S & ValidateSelection<T, S>, options?: {
|
|
85
86
|
cache?: number;
|
|
86
87
|
}): {
|
|
87
|
-
new (
|
|
88
|
-
_instance: E.ModelBase & Project<T, S>;
|
|
89
|
-
toString(): string;
|
|
90
|
-
};
|
|
91
|
-
fields: Record<string, number | true>;
|
|
88
|
+
new (instance: T): StreamTypeBase<Project<T, S>>;
|
|
92
89
|
id: number;
|
|
93
|
-
|
|
90
|
+
fields: Record<string, true | number>;
|
|
91
|
+
cache?: number;
|
|
94
92
|
};
|
|
95
93
|
/**
|
|
96
94
|
* Sends (updated) data for `model` to `target`.
|