@pluv/client 5.0.0 → 5.0.1
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/CHANGELOG.md +16 -27
- package/package.json +9 -9
- package/src/PluvClient.ts +1 -2
- package/src/PluvRoom.ts +2 -5
- package/src/types.ts +1 -2
- package/.turbo/turbo-build.log +0 -13
- package/dist/index.d.mts +0 -356
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs +0 -1771
- package/dist/index.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @pluv/client
|
|
2
2
|
|
|
3
|
+
## 5.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- @pluv/crdt@5.0.1
|
|
8
|
+
- @pluv/types@5.0.1
|
|
9
|
+
|
|
3
10
|
## 5.0.0
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
|
@@ -137,9 +144,7 @@
|
|
|
137
144
|
|
|
138
145
|
const io = createIO(
|
|
139
146
|
// Assume no crdt was provided here
|
|
140
|
-
platformCloudflare({
|
|
141
|
-
/* ... */
|
|
142
|
-
}),
|
|
147
|
+
platformCloudflare({/* ... */}),
|
|
143
148
|
);
|
|
144
149
|
|
|
145
150
|
const ioServer = io.server();
|
|
@@ -1158,9 +1163,7 @@
|
|
|
1158
1163
|
// Backend Server
|
|
1159
1164
|
import { createIO } from "@pluv/io";
|
|
1160
1165
|
|
|
1161
|
-
const io = createIO({
|
|
1162
|
-
/* ... */
|
|
1163
|
-
});
|
|
1166
|
+
const io = createIO({/* ... */});
|
|
1164
1167
|
const ioServer = io.server({
|
|
1165
1168
|
router: io.router({
|
|
1166
1169
|
multiply2: io.procedure
|
|
@@ -1174,9 +1177,7 @@
|
|
|
1174
1177
|
// Frontend Client
|
|
1175
1178
|
import { createClient } from "@pluv/client";
|
|
1176
1179
|
|
|
1177
|
-
const io = createClient({
|
|
1178
|
-
/* ... */
|
|
1179
|
-
});
|
|
1180
|
+
const io = createClient({/* ... */});
|
|
1180
1181
|
|
|
1181
1182
|
const room = io.createRoom("my-example-room", {
|
|
1182
1183
|
// ...
|
|
@@ -1483,9 +1484,7 @@
|
|
|
1483
1484
|
import { createClient } from "@pluv/react";
|
|
1484
1485
|
import type { io } from "../backend/io";
|
|
1485
1486
|
|
|
1486
|
-
const client = createClient<typeof io>({
|
|
1487
|
-
/* ... */
|
|
1488
|
-
});
|
|
1487
|
+
const client = createClient<typeof io>({/* ... */});
|
|
1489
1488
|
```
|
|
1490
1489
|
|
|
1491
1490
|
### Now:
|
|
@@ -1527,9 +1526,7 @@
|
|
|
1527
1526
|
import type { ioServer } from "../backend/io";
|
|
1528
1527
|
|
|
1529
1528
|
// This users the PluvServer type now
|
|
1530
|
-
const client = createClient<typeof ioServer>({
|
|
1531
|
-
/* ... */
|
|
1532
|
-
});
|
|
1529
|
+
const client = createClient<typeof ioServer>({/* ... */});
|
|
1533
1530
|
```
|
|
1534
1531
|
|
|
1535
1532
|
- `PluvRouter` instances can also be merged via the `mergeRouters` method, which effectively performs an `Object.assign` of the events object and returns a new `PluvRouter` with the correct types:
|
|
@@ -1707,9 +1704,7 @@
|
|
|
1707
1704
|
// Before:
|
|
1708
1705
|
import { createClient, y } from "@pluv/client";
|
|
1709
1706
|
|
|
1710
|
-
const client = createClient({
|
|
1711
|
-
/* ... */
|
|
1712
|
-
});
|
|
1707
|
+
const client = createClient({/* ... */});
|
|
1713
1708
|
|
|
1714
1709
|
client.createRoom({
|
|
1715
1710
|
// ...
|
|
@@ -1723,9 +1718,7 @@
|
|
|
1723
1718
|
// This is now imported separately
|
|
1724
1719
|
import { yjs } from "@pluv/crdt-yjs";
|
|
1725
1720
|
|
|
1726
|
-
const client = createClient({
|
|
1727
|
-
/* ... */
|
|
1728
|
-
});
|
|
1721
|
+
const client = createClient({/* ... */});
|
|
1729
1722
|
|
|
1730
1723
|
client.createRoom({
|
|
1731
1724
|
// ...
|
|
@@ -1761,9 +1754,7 @@
|
|
|
1761
1754
|
// Before:
|
|
1762
1755
|
import { Doc as YDoc } from "yjs";
|
|
1763
1756
|
|
|
1764
|
-
const room: PluvRoom = client.createRoom({
|
|
1765
|
-
/* ... */
|
|
1766
|
-
});
|
|
1757
|
+
const room: PluvRoom = client.createRoom({/* ... */});
|
|
1767
1758
|
|
|
1768
1759
|
const doc: YDoc = room.getDoc();
|
|
1769
1760
|
|
|
@@ -1771,9 +1762,7 @@
|
|
|
1771
1762
|
import { CrdtYjsDoc } from "@pluv/crdt-yjs";
|
|
1772
1763
|
import { Doc as YDoc } from "yjs";
|
|
1773
1764
|
|
|
1774
|
-
const room: PluvRoom = client.createRoom({
|
|
1775
|
-
/* ... */
|
|
1776
|
-
});
|
|
1765
|
+
const room: PluvRoom = client.createRoom({/* ... */});
|
|
1777
1766
|
|
|
1778
1767
|
const doc: CrdtYjsDoc<any> = room.getDoc();
|
|
1779
1768
|
const ydoc: YDoc = doc.value;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pluv/client",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"description": "@pluv/io frontend client",
|
|
5
5
|
"author": {
|
|
6
6
|
"email": "david@pluv.io",
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
"access": "public"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"
|
|
24
|
-
"@pluv/
|
|
25
|
-
"
|
|
23
|
+
"@pluv/crdt": "^5.0.1",
|
|
24
|
+
"@pluv/types": "^5.0.1",
|
|
25
|
+
"wonka": "^6.3.6"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
28
|
+
"@pluv/tsconfig": "^5.0.1",
|
|
29
|
+
"eslint": "^10.9.0",
|
|
30
|
+
"eslint-config-pluv": "^5.0.1",
|
|
31
|
+
"tsdown": "0.22.14",
|
|
32
|
+
"typescript": "^5.9.3"
|
|
33
33
|
},
|
|
34
34
|
"exports": {
|
|
35
35
|
".": "./dist/index.mjs",
|
package/src/PluvClient.ts
CHANGED
|
@@ -162,8 +162,7 @@ export class PluvClient<
|
|
|
162
162
|
|
|
163
163
|
public getRoom = (room: string): PluvRoom<TIO, TMetadata, TPresence, TCrdt, any> | null => {
|
|
164
164
|
const found = this._rooms.get(room) as
|
|
165
|
-
|
|
166
|
-
| undefined;
|
|
165
|
+
PluvRoom<TIO, TMetadata, TPresence, TCrdt, any> | undefined;
|
|
167
166
|
|
|
168
167
|
return found ?? null;
|
|
169
168
|
};
|
package/src/PluvRoom.ts
CHANGED
|
@@ -124,12 +124,9 @@ export interface EndpointParams<TMetadata extends JsonObject> {
|
|
|
124
124
|
room: string;
|
|
125
125
|
}
|
|
126
126
|
export type AuthEndpoint<TMetadata extends JsonObject> =
|
|
127
|
-
| string
|
|
128
|
-
| ((params: EndpointParams<TMetadata>) => string | FetchOptions)
|
|
129
|
-
| true;
|
|
127
|
+
string | ((params: EndpointParams<TMetadata>) => string | FetchOptions) | true;
|
|
130
128
|
export type WsEndpoint<TMetadata extends JsonObject> =
|
|
131
|
-
| string
|
|
132
|
-
| ((params: EndpointParams<TMetadata>) => string);
|
|
129
|
+
string | ((params: EndpointParams<TMetadata>) => string);
|
|
133
130
|
|
|
134
131
|
type FetchOptions = { url: string; options?: RequestInit };
|
|
135
132
|
|
package/src/types.ts
CHANGED
|
@@ -71,8 +71,7 @@ export interface PublicKeyParams<TMetadata extends JsonObject> {
|
|
|
71
71
|
metadata: TMetadata;
|
|
72
72
|
}
|
|
73
73
|
export type PublicKey<TMetadata extends JsonObject> =
|
|
74
|
-
| string
|
|
75
|
-
| ((params: PublicKeyParams<TMetadata>) => string);
|
|
74
|
+
string | ((params: PublicKeyParams<TMetadata>) => string);
|
|
76
75
|
|
|
77
76
|
export type WithMetadata<TMetadata extends JsonObject = {}> = keyof TMetadata extends never
|
|
78
77
|
? { metadata?: undefined }
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
$ tsdown
|
|
2
|
-
[34mℹ[39m [34mtsdown v0.22.3[39m powered by [38;2;255;126;23mrolldown v1.1.2[39m
|
|
3
|
-
[34mℹ[39m config file: [4m/home/runner/work/pluv/pluv/packages/client/tsdown.config.ts[24m
|
|
4
|
-
[34mℹ[39m entry: [34msrc/index.ts[39m
|
|
5
|
-
[34mℹ[39m target: [34mesnext[39m
|
|
6
|
-
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
7
|
-
[34mℹ[39m Build start
|
|
8
|
-
[34mℹ[39m [2mdist/[22m[1mindex.mjs[22m [2m 57.06 kB[22m [2m│ gzip: 12.19 kB[22m
|
|
9
|
-
[34mℹ[39m [2mdist/[22mindex.mjs.map [2m147.96 kB[22m [2m│ gzip: 29.07 kB[22m
|
|
10
|
-
[34mℹ[39m [2mdist/[22mindex.d.mts.map [2m 11.58 kB[22m [2m│ gzip: 2.77 kB[22m
|
|
11
|
-
[34mℹ[39m [2mdist/[22m[32m[1mindex.d.mts[22m[39m [2m 20.13 kB[22m [2m│ gzip: 4.02 kB[22m
|
|
12
|
-
[34mℹ[39m 4 files, total: 236.72 kB
|
|
13
|
-
[32m✔[39m Build complete in [32m2679ms[39m
|
package/dist/index.d.mts
DELETED
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import { BaseUser, BaseUser as BaseUser$1, BroadcastProxy, ConnectionState, CrdtDocLike, EventMessage, EventNotifierSubscriptionCallback, EventRecord, EventRecord as EventRecord$1, IOEventMessage, IOLike, IORouterLike, Id, InferIOAuthorize, InferIOAuthorizeUser, InferIOCrdt, InferIOCrdtKind, InferIOEvents, InferIOInput, InferIOOutput, InputZodLike, JsonObject, MaybePromise, MergeEvents, MergeEvents as MergeEvents$1, ProcedureLike, RoomEventListenerMap, RoomLike, RoomLike as RoomLike$1, SubscribeProxy, UpdateMyPresenceAction, UserInfo, UserInfo as UserInfo$1, WebSocketConnection, WebSocketConnection as WebSocketConnection$1, WebSocketState } from "@pluv/types";
|
|
2
|
-
import { AbstractCrdtDocFactory, CrdtType, InferCrdtJson, InferCrdtJson as InferCrdtJson$1, InferDoc, InferDocLike, InferStorage, NoopCrdtDocFactory } from "@pluv/crdt";
|
|
3
|
-
|
|
4
|
-
//#region src/AbstractStorageStore.d.ts
|
|
5
|
-
declare abstract class AbstractStorageStore {
|
|
6
|
-
room: string;
|
|
7
|
-
constructor(room: string);
|
|
8
|
-
abstract addUpdate(update: string): Promise<void>;
|
|
9
|
-
abstract destroy(): Promise<void>;
|
|
10
|
-
abstract flatten(encodedState: string): Promise<void>;
|
|
11
|
-
abstract getShouldFlatten(): Promise<boolean>;
|
|
12
|
-
abstract getUpdates(start?: number): Promise<readonly string[]>;
|
|
13
|
-
abstract initialize(): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
//#region src/utils/identity.d.ts
|
|
17
|
-
declare const identity: <T extends unknown>(x: T) => T;
|
|
18
|
-
//#endregion
|
|
19
|
-
//#region src/infer.d.ts
|
|
20
|
-
type InferCallback<TIO extends IOLike<any, any, any>> = (i: typeof identity) => {
|
|
21
|
-
io: (io: TIO) => TIO;
|
|
22
|
-
};
|
|
23
|
-
declare const infer: <TIO extends IOLike<any, any, any>>(callback: InferCallback<TIO>) => InferCallback<IOLike<InferIOAuthorize<TIO>, InferIOCrdt<TIO>, InferIOEvents<TIO>>>;
|
|
24
|
-
//#endregion
|
|
25
|
-
//#region src/types.d.ts
|
|
26
|
-
type EventResolver<TIO extends IOLike, TInput extends JsonObject, TOutput extends EventRecord$1<string, any>, TPresence extends Record<string, any>, TDocLike extends CrdtDocLike<any, any>> = (data: TInput, context: EventResolverContext<TIO, TPresence, TDocLike>) => MaybePromise<TOutput | void>;
|
|
27
|
-
interface EventResolverContext<TIO extends IOLike, TPresence extends Record<string, any>, TDocLike extends CrdtDocLike<any, any>> {
|
|
28
|
-
doc: TDocLike;
|
|
29
|
-
others: readonly UserInfo$1<TIO, TPresence>[];
|
|
30
|
-
room: string;
|
|
31
|
-
user: UserInfo$1<TIO, TPresence>;
|
|
32
|
-
}
|
|
33
|
-
type InferMetadata<TClient extends PluvClient<any, any, any, any>> = TClient extends PluvClient<any, any, any, infer IMetadata> ? IMetadata : never;
|
|
34
|
-
type MergeEventRecords<TEventRecords extends EventRecord$1<string, any>[], TRoot extends EventRecord$1<string, any> = {}> = TEventRecords extends [infer IHead extends EventRecord$1<string, any>, ...infer ITail extends EventRecord$1<string, any>[]] ? MergeEventRecords<ITail, Omit<TRoot, keyof IHead> & { [P in keyof IHead]: TRoot extends Record<P, any> ? TRoot[P] | IHead[P] : IHead[P] }> : Id<TRoot>;
|
|
35
|
-
interface PluvClientLimits {
|
|
36
|
-
/**
|
|
37
|
-
* @description Maximum size of presence object in bytes
|
|
38
|
-
*/
|
|
39
|
-
presenceMaxSize?: number | null;
|
|
40
|
-
}
|
|
41
|
-
interface PublicKeyParams<TMetadata extends JsonObject> {
|
|
42
|
-
metadata: TMetadata;
|
|
43
|
-
}
|
|
44
|
-
type PublicKey<TMetadata extends JsonObject> = string | ((params: PublicKeyParams<TMetadata>) => string);
|
|
45
|
-
type WithMetadata<TMetadata extends JsonObject = {}> = keyof TMetadata extends never ? {
|
|
46
|
-
metadata?: undefined;
|
|
47
|
-
} : {
|
|
48
|
-
metadata: TMetadata;
|
|
49
|
-
};
|
|
50
|
-
//#endregion
|
|
51
|
-
//#region src/PluvProcedure.d.ts
|
|
52
|
-
interface PluvProcedureConfig<TIO extends IOLike, TInput extends JsonObject, TOutput extends EventRecord$1<string, any>, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>> {
|
|
53
|
-
broadcast?: EventResolver<TIO, TInput, TOutput, TPresence, InferDocLike<TCrdt>> | null;
|
|
54
|
-
input?: InputZodLike<TInput>;
|
|
55
|
-
}
|
|
56
|
-
declare class PluvProcedure<TIO extends IOLike, TInput extends JsonObject, TOutput extends EventRecord$1<string, any>, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>, TFilled extends "input" | "broadcast" | ""> implements ProcedureLike<TInput, TOutput> {
|
|
57
|
-
private _broadcast;
|
|
58
|
-
private _input;
|
|
59
|
-
get config(): ProcedureLike<TInput, TOutput>["config"];
|
|
60
|
-
constructor(config?: PluvProcedureConfig<TIO, TInput, TOutput, TPresence, TCrdt>);
|
|
61
|
-
broadcast<TResult extends EventRecord$1<string, any> = {}>(resolver: EventResolver<TIO, TInput, TResult, TPresence, InferDocLike<TCrdt>>): Omit<PluvProcedure<TIO, TInput, MergeEventRecords<[TOutput, TResult]>, TPresence, TCrdt, TFilled | "input" | "broadcast">, TFilled | "input" | "broadcast">;
|
|
62
|
-
input<TData extends JsonObject>(input: InputZodLike<TData>): Omit<PluvProcedure<TIO, TData, {}, TPresence, TCrdt, TFilled | "input">, TFilled | "input">;
|
|
63
|
-
private _resolver;
|
|
64
|
-
}
|
|
65
|
-
//#endregion
|
|
66
|
-
//#region src/CrdtManager.d.ts
|
|
67
|
-
type CrdtManagerOptions<TCrdt extends AbstractCrdtDocFactory<any, any>> = {
|
|
68
|
-
initialStorage?: TCrdt;
|
|
69
|
-
};
|
|
70
|
-
//#endregion
|
|
71
|
-
//#region src/PluvRouter.d.ts
|
|
72
|
-
type PluvRouterEventConfig<TIO extends IOLike, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>> = {
|
|
73
|
-
[P: string]: Pick<PluvProcedure<TIO, any, any, TPresence, TCrdt, "">, "config">;
|
|
74
|
-
};
|
|
75
|
-
type MergedRouter<TRouters extends PluvRouter<TIO, TPresence, TCrdt, any>[], TIO extends IOLike, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>, TRoot extends TRouters[0]["_defs"]["events"]> = TRouters extends [infer IHead extends PluvRouter<TIO, TPresence, TCrdt, any>, ...infer ITail extends PluvRouter<TIO, TPresence, TCrdt, any>[]] ? MergedRouter<ITail, TIO, TPresence, TCrdt, TRoot & IHead["_defs"]["events"]> : PluvRouter<TIO, TPresence, TCrdt, TRoot>;
|
|
76
|
-
declare class PluvRouter<TIO extends IOLike, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>, TEvents extends PluvRouterEventConfig<TIO, TPresence, TCrdt> = {}> implements IORouterLike<TEvents> {
|
|
77
|
-
readonly _defs: {
|
|
78
|
-
events: TEvents;
|
|
79
|
-
};
|
|
80
|
-
constructor(events: TEvents);
|
|
81
|
-
static merge<TRouters extends PluvRouter<TIO, TPresence, TCrdt, any>[], TIO extends IOLike, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>>(...routers: TRouters): MergedRouter<TRouters, TIO, TPresence, TCrdt, {}>;
|
|
82
|
-
private _isValidEventName;
|
|
83
|
-
}
|
|
84
|
-
//#endregion
|
|
85
|
-
//#region src/UsersManager.d.ts
|
|
86
|
-
type UsersManagerConfig<TPresence extends Record<string, any> = {}> = {
|
|
87
|
-
initialPresence?: TPresence;
|
|
88
|
-
limits: PluvClientLimits;
|
|
89
|
-
presence?: InputZodLike<TPresence>;
|
|
90
|
-
};
|
|
91
|
-
//#endregion
|
|
92
|
-
//#region src/PluvRoom.d.ts
|
|
93
|
-
declare global {
|
|
94
|
-
var process: {
|
|
95
|
-
env: {
|
|
96
|
-
[key: string]: string | undefined;
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
interface EndpointParams<TMetadata extends JsonObject> {
|
|
101
|
-
metadata: TMetadata;
|
|
102
|
-
room: string;
|
|
103
|
-
}
|
|
104
|
-
type AuthEndpoint<TMetadata extends JsonObject> = string | ((params: EndpointParams<TMetadata>) => string | FetchOptions) | true;
|
|
105
|
-
type WsEndpoint<TMetadata extends JsonObject> = string | ((params: EndpointParams<TMetadata>) => string);
|
|
106
|
-
type FetchOptions = {
|
|
107
|
-
url: string;
|
|
108
|
-
options?: RequestInit;
|
|
109
|
-
};
|
|
110
|
-
type RoomEndpoints<TIO extends IOLike<any, any, any>, TMetadata extends JsonObject> = {
|
|
111
|
-
wsEndpoint?: WsEndpoint<TMetadata>;
|
|
112
|
-
} & (InferIOAuthorizeUser<InferIOAuthorize<TIO>> extends BaseUser$1 ? {
|
|
113
|
-
authEndpoint: AuthEndpoint<TMetadata>;
|
|
114
|
-
} : {
|
|
115
|
-
authEndpoint?: undefined;
|
|
116
|
-
});
|
|
117
|
-
type PluvRoomAddon<TIO extends IOLike, TMetadata extends JsonObject, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>> = (input: PluvRoomAddonInput<TIO, TMetadata, TPresence, TCrdt>) => Partial<PluvRoomAddonResult>;
|
|
118
|
-
interface PluvRoomAddonInput<TIO extends IOLike, TMetadata extends JsonObject, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>> {
|
|
119
|
-
room: PluvRoom<TIO, TMetadata, TPresence, TCrdt>;
|
|
120
|
-
}
|
|
121
|
-
interface PluvRoomAddonResult {
|
|
122
|
-
storage: AbstractStorageStore;
|
|
123
|
-
}
|
|
124
|
-
type PluvRoomDebug<TIO extends IOLike> = Id<{
|
|
125
|
-
output: readonly (keyof InferIOOutput<TIO>)[];
|
|
126
|
-
input: readonly (keyof InferIOInput<TIO>)[];
|
|
127
|
-
}>;
|
|
128
|
-
type RoomConnectParams<TMetadata extends JsonObject = {}> = keyof TMetadata extends never ? [] : [WithMetadata<TMetadata>];
|
|
129
|
-
interface ReconnectTimeoutMsParams {
|
|
130
|
-
attempts: number;
|
|
131
|
-
}
|
|
132
|
-
type ReconnectTimeoutMs = number | ((params: ReconnectTimeoutMsParams) => number);
|
|
133
|
-
type RoomConfig<TIO extends IOLike, TMetadata extends JsonObject, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>, TEvents extends PluvRouterEventConfig<TIO, TPresence, InferStorage<TCrdt>>> = Id<{
|
|
134
|
-
addons?: readonly PluvRoomAddon<TIO, TMetadata, TPresence, TCrdt>[];
|
|
135
|
-
debug?: boolean | PluvRoomDebug<TIO>;
|
|
136
|
-
limits: PluvClientLimits;
|
|
137
|
-
onAuthorizationFail?: (error: Error) => void;
|
|
138
|
-
metadata?: InputZodLike<TMetadata>;
|
|
139
|
-
publicKey?: PublicKey<TMetadata>;
|
|
140
|
-
reconnectTimeoutMs?: ReconnectTimeoutMs;
|
|
141
|
-
router?: PluvRouter<TIO, TPresence, InferStorage<TCrdt>, TEvents>;
|
|
142
|
-
} & RoomEndpoints<TIO, TMetadata> & Pick<CrdtManagerOptions<TCrdt>, "initialStorage"> & UsersManagerConfig<TPresence>>;
|
|
143
|
-
declare class PluvRoom<TIO extends IOLike<any, any, any>, TMetadata extends JsonObject = {}, TPresence extends Record<string, any> = {}, TCrdt extends AbstractCrdtDocFactory<any, any> = NoopCrdtDocFactory, TEvents extends PluvRouterEventConfig<TIO, TPresence, InferStorage<TCrdt>> = {}> implements RoomLike$1<TIO, InferDoc<TCrdt>, TPresence, InferStorage<TCrdt>> {
|
|
144
|
-
#private;
|
|
145
|
-
readonly _endpoints: RoomEndpoints<TIO, TMetadata>;
|
|
146
|
-
readonly id: string;
|
|
147
|
-
readonly metadata?: InputZodLike<TMetadata>;
|
|
148
|
-
private readonly _crdtManager;
|
|
149
|
-
private readonly _crdtNotifier;
|
|
150
|
-
private readonly _debug;
|
|
151
|
-
private readonly _eventNotifier;
|
|
152
|
-
private readonly _intervals;
|
|
153
|
-
private readonly _limits;
|
|
154
|
-
private readonly _listenerManager;
|
|
155
|
-
private readonly _listeners;
|
|
156
|
-
private readonly _publicKey;
|
|
157
|
-
private readonly _reconnectTimeoutMs;
|
|
158
|
-
private readonly _router;
|
|
159
|
-
private readonly _stateNotifier;
|
|
160
|
-
private readonly _storageStore;
|
|
161
|
-
private readonly _subscriptions;
|
|
162
|
-
private readonly _timeouts;
|
|
163
|
-
private readonly _usersManager;
|
|
164
|
-
private readonly _usersNotifier;
|
|
165
|
-
private _lastMetadata;
|
|
166
|
-
private _state;
|
|
167
|
-
private _windowListeners;
|
|
168
|
-
private _wsListeners;
|
|
169
|
-
constructor(room: string, options: RoomConfig<TIO, TMetadata, TPresence, TCrdt, TEvents>);
|
|
170
|
-
get webSocket(): WebSocket | null;
|
|
171
|
-
addEventListener<TKind extends keyof RoomEventListenerMap>(kind: TKind, handler: RoomEventListenerMap[TKind]): () => void;
|
|
172
|
-
broadcast: BroadcastProxy<TIO, TEvents>;
|
|
173
|
-
canRedo: () => boolean;
|
|
174
|
-
canUndo: () => boolean;
|
|
175
|
-
connect(...args: RoomConnectParams<TMetadata>): Promise<void>;
|
|
176
|
-
disconnect(): Promise<void>;
|
|
177
|
-
getConnection: () => WebSocketConnection$1;
|
|
178
|
-
getDoc: () => CrdtDocLike<InferDoc<TCrdt>, InferStorage<TCrdt>>;
|
|
179
|
-
getMyPresence: () => TPresence;
|
|
180
|
-
getMyself: () => Id<UserInfo$1<TIO, TPresence>> | null;
|
|
181
|
-
getOther: (connectionId: string) => Id<UserInfo$1<TIO, TPresence>> | null;
|
|
182
|
-
getOthers: () => readonly Id<UserInfo$1<TIO, TPresence>>[];
|
|
183
|
-
getStorage: <TKey extends keyof InferStorage<TCrdt>>(type: TKey) => InferStorage<TCrdt>[TKey] | null;
|
|
184
|
-
getStorageJson(): InferCrdtJson$1<InferStorage<TCrdt>> | null;
|
|
185
|
-
getStorageJson<TKey extends keyof InferStorage<TCrdt>>(type: TKey): InferCrdtJson$1<InferStorage<TCrdt>[TKey]> | null;
|
|
186
|
-
getStorageLoaded: () => boolean;
|
|
187
|
-
redo: () => void;
|
|
188
|
-
subscribe: SubscribeProxy<TIO, TPresence, InferStorage<TCrdt>, TEvents>;
|
|
189
|
-
transact: (fn: (storage: InferStorage<TCrdt>) => void, origin?: string) => void;
|
|
190
|
-
undo: () => void;
|
|
191
|
-
updateMyPresence: (presence: UpdateMyPresenceAction<TPresence>) => void;
|
|
192
|
-
private _addToStorageStore;
|
|
193
|
-
private _attachWindowListeners;
|
|
194
|
-
private _attachWsListeners;
|
|
195
|
-
private _clearInterval;
|
|
196
|
-
private _clearTimeout;
|
|
197
|
-
private _closeWs;
|
|
198
|
-
private _detachWindowListeners;
|
|
199
|
-
private _detachWsListeners;
|
|
200
|
-
private _emitSharedTypes;
|
|
201
|
-
private _event;
|
|
202
|
-
private _flattenStorageStore;
|
|
203
|
-
private _getAddon;
|
|
204
|
-
private _getAuthFetchOptions;
|
|
205
|
-
private _getAuthorization;
|
|
206
|
-
private _getPublicKey;
|
|
207
|
-
private _getWsEndpoint;
|
|
208
|
-
private _handleExit;
|
|
209
|
-
private _handlePresenceUpdatedMessage;
|
|
210
|
-
private _handleReceiveOthers;
|
|
211
|
-
private _handleRegisteredMessage;
|
|
212
|
-
private _handleStorageReceivedMessage;
|
|
213
|
-
private _handleStorageUpdatedMessage;
|
|
214
|
-
private _handleSyncStateReceived;
|
|
215
|
-
private _handleUserJoinedMessage;
|
|
216
|
-
private _heartbeat;
|
|
217
|
-
private _logDebug;
|
|
218
|
-
private _observeCrdt;
|
|
219
|
-
private _onAuthorizationFail;
|
|
220
|
-
private _onClose;
|
|
221
|
-
/**
|
|
222
|
-
* TODO
|
|
223
|
-
* @description Handle websocket errors in a meaningful way, should they occur
|
|
224
|
-
* @date August 19, 2022
|
|
225
|
-
*/
|
|
226
|
-
private _onError;
|
|
227
|
-
private _onMessage;
|
|
228
|
-
private _onOpen;
|
|
229
|
-
private _onNavigatorOffline;
|
|
230
|
-
private _onNavigatorOnline;
|
|
231
|
-
private _onVisibilityChange;
|
|
232
|
-
private _onWindowFocus;
|
|
233
|
-
private _other;
|
|
234
|
-
private _parseMessage;
|
|
235
|
-
private _pollReconnect;
|
|
236
|
-
private _reconnect;
|
|
237
|
-
private _sendMessage;
|
|
238
|
-
private _setMetadata;
|
|
239
|
-
private _updateState;
|
|
240
|
-
}
|
|
241
|
-
//#endregion
|
|
242
|
-
//#region src/PluvClient.d.ts
|
|
243
|
-
type PluvClientOptions<TIO extends IOLike<any, any, any>, TPresence extends Record<string, any>, TCrdt extends InferIOCrdtKind<TIO>, TMetadata extends JsonObject> = RoomEndpoints<TIO, TMetadata> & {
|
|
244
|
-
debug?: boolean;
|
|
245
|
-
/**
|
|
246
|
-
* @description Configurable limits defined for client-side validation. You should only set
|
|
247
|
-
* this if you control the server and have changed the limits there.
|
|
248
|
-
*/
|
|
249
|
-
limits?: PluvClientLimits;
|
|
250
|
-
metadata?: InputZodLike<TMetadata>;
|
|
251
|
-
presence?: InputZodLike<TPresence>;
|
|
252
|
-
publicKey?: PublicKey<TMetadata>;
|
|
253
|
-
types: InferCallback<TIO>;
|
|
254
|
-
} & (InferIOCrdtKind<TIO> extends NoopCrdtDocFactory ? {
|
|
255
|
-
initialStorage?: "[ERROR]: Must provide crdt to createIO to use storage";
|
|
256
|
-
} : {
|
|
257
|
-
initialStorage?: TCrdt;
|
|
258
|
-
});
|
|
259
|
-
type CreateRoomOptions<TIO extends IOLike<any, any, any>, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>, TMetadata extends JsonObject, TEvents extends PluvRouterEventConfig<TIO, TPresence, InferStorage<TCrdt>> = {}> = {
|
|
260
|
-
addons?: readonly PluvRoomAddon<TIO, TMetadata, TPresence, InferStorage<TCrdt>>[];
|
|
261
|
-
debug?: boolean | PluvRoomDebug<TIO>;
|
|
262
|
-
initialPresence?: TPresence;
|
|
263
|
-
initialStorage?: TCrdt;
|
|
264
|
-
onAuthorizationFail?: (error: Error) => void;
|
|
265
|
-
reconnectTimeoutMs?: ReconnectTimeoutMs;
|
|
266
|
-
router?: PluvRouter<TIO, TPresence, InferStorage<TCrdt>, TEvents>;
|
|
267
|
-
};
|
|
268
|
-
type EnterRoomParams<TMetadata extends JsonObject = {}> = keyof TMetadata extends never ? [] : [WithMetadata<TMetadata>];
|
|
269
|
-
declare class PluvClient<TIO extends IOLike<any, any, any>, TPresence extends Record<string, any> = {}, TCrdt extends InferIOCrdtKind<TIO> = InferIOCrdtKind<TIO>, TMetadata extends JsonObject = {}> {
|
|
270
|
-
readonly metadata?: InputZodLike<TMetadata>;
|
|
271
|
-
private readonly _authEndpoint;
|
|
272
|
-
private readonly _debug;
|
|
273
|
-
private readonly _initialStorage?;
|
|
274
|
-
private readonly _limits;
|
|
275
|
-
private readonly _presence?;
|
|
276
|
-
private readonly _publicKey;
|
|
277
|
-
private readonly _rooms;
|
|
278
|
-
private readonly _wsEndpoint;
|
|
279
|
-
get _defs(): {
|
|
280
|
-
initialStorage: TCrdt | undefined;
|
|
281
|
-
};
|
|
282
|
-
get procedure(): PluvProcedure<TIO, {}, {}, TPresence, TCrdt, "">;
|
|
283
|
-
constructor(options: PluvClientOptions<TIO, TPresence, TCrdt, TMetadata>);
|
|
284
|
-
createRoom: <TEvents extends PluvRouterEventConfig<TIO, TPresence, InferStorage<TCrdt>> = {}>(room: string, options?: CreateRoomOptions<TIO, TPresence, TCrdt, TMetadata, TEvents>) => PluvRoom<TIO, TMetadata, TPresence, TCrdt, TEvents>;
|
|
285
|
-
enter: (room: string | PluvRoom<TIO, TMetadata, any, any, any>, ...args: EnterRoomParams<TMetadata>) => Promise<PluvRoom<TIO, TMetadata, TPresence, TCrdt, any>>;
|
|
286
|
-
getRoom: (room: string) => PluvRoom<TIO, TMetadata, TPresence, TCrdt, any> | null;
|
|
287
|
-
getRooms: () => readonly PluvRoom<TIO, TMetadata, TPresence, TCrdt, any>[];
|
|
288
|
-
leave: (room: string | PluvRoom<TIO, any, any, any>) => Promise<void>;
|
|
289
|
-
router<TEvents extends PluvRouterEventConfig<TIO, TPresence, InferStorage<TCrdt>> = {}>(events: TEvents): PluvRouter<TIO, TPresence, InferStorage<TCrdt>, TEvents>;
|
|
290
|
-
private _logDebug;
|
|
291
|
-
}
|
|
292
|
-
//#endregion
|
|
293
|
-
//#region src/createClient.d.ts
|
|
294
|
-
declare const createClient: <TIO extends IOLike<any, any, any>, TPresence extends Record<string, any> = {}, TCrdt extends InferIOCrdtKind<TIO> = InferIOCrdtKind<TIO>, TMetadata extends JsonObject = {}>(options: PluvClientOptions<TIO, TPresence, TCrdt, TMetadata>) => PluvClient<TIO, TPresence, TCrdt, TMetadata>;
|
|
295
|
-
//#endregion
|
|
296
|
-
//#region src/MockedRoom.d.ts
|
|
297
|
-
type MockedRoomEvents<TIO extends IOLike> = Partial<{ [P in keyof InferIOInput<TIO>]: (data: Id<InferIOInput<TIO>[P]>) => Partial<InferIOOutput<TIO>> }>;
|
|
298
|
-
type MockedRoomConfig<TIO extends IOLike, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>, TEvents extends PluvRouterEventConfig<TIO, TPresence, InferStorage<TCrdt>>> = {
|
|
299
|
-
events?: MockedRoomEvents<MergeEvents$1<TEvents, TIO>>;
|
|
300
|
-
limits?: PluvClientLimits;
|
|
301
|
-
router?: PluvRouter<TIO, TPresence, InferStorage<TCrdt>, TEvents>;
|
|
302
|
-
} & Pick<CrdtManagerOptions<TCrdt>, "initialStorage"> & Omit<UsersManagerConfig<TPresence>, "limits">;
|
|
303
|
-
declare class MockedRoom<TIO extends IOLike, TPresence extends Record<string, any>, TCrdt extends AbstractCrdtDocFactory<any, any>, TEvents extends PluvRouterEventConfig<TIO, TPresence, InferStorage<TCrdt>>> implements RoomLike$1<TIO, InferDoc<TCrdt>, TPresence, InferStorage<TCrdt>> {
|
|
304
|
-
#private;
|
|
305
|
-
readonly id: string;
|
|
306
|
-
private readonly _crdtManager;
|
|
307
|
-
private readonly _crdtNotifier;
|
|
308
|
-
private readonly _eventNotifier;
|
|
309
|
-
private readonly _events?;
|
|
310
|
-
private readonly _limits;
|
|
311
|
-
private readonly _usersNotifier;
|
|
312
|
-
private readonly _router;
|
|
313
|
-
private _state;
|
|
314
|
-
private readonly _stateNotifier;
|
|
315
|
-
private readonly _subscriptions;
|
|
316
|
-
private readonly _usersManager;
|
|
317
|
-
constructor(room: string, options: MockedRoomConfig<TIO, TPresence, TCrdt, TEvents>);
|
|
318
|
-
addEventListener<TKind extends keyof RoomEventListenerMap>(kind: TKind, handler: RoomEventListenerMap[TKind]): () => void;
|
|
319
|
-
broadcast: BroadcastProxy<TIO, TEvents>;
|
|
320
|
-
canRedo: () => boolean;
|
|
321
|
-
canUndo: () => boolean;
|
|
322
|
-
getConnection: () => WebSocketConnection$1;
|
|
323
|
-
getDoc(): CrdtDocLike<InferDoc<TCrdt>, InferStorage<TCrdt>>;
|
|
324
|
-
getMyPresence: () => TPresence;
|
|
325
|
-
getMyself: () => Id<UserInfo$1<TIO, TPresence>> | null;
|
|
326
|
-
getOther: (connectionId: string) => Id<UserInfo$1<TIO, TPresence>> | null;
|
|
327
|
-
getOthers: () => readonly Id<UserInfo$1<TIO, TPresence>>[];
|
|
328
|
-
getStorage: <TKey extends keyof InferStorage<TCrdt>>(type: TKey) => InferStorage<TCrdt>[TKey] | null;
|
|
329
|
-
getStorageJson(): InferCrdtJson$1<InferStorage<TCrdt>> | null;
|
|
330
|
-
getStorageJson<TKey extends keyof InferStorage<TCrdt>>(type: TKey): InferCrdtJson$1<InferStorage<TCrdt>[TKey]> | null;
|
|
331
|
-
getStorageLoaded(): boolean;
|
|
332
|
-
redo: () => void;
|
|
333
|
-
storageRoot: (fn: (value: { [P in keyof InferStorage<TCrdt>]: InferCrdtJson$1<InferStorage<TCrdt>[P]> }) => void) => (() => void);
|
|
334
|
-
subscribe: SubscribeProxy<TIO, TPresence, InferStorage<TCrdt>, TEvents>;
|
|
335
|
-
transact: (fn: (storage: InferStorage<TCrdt>) => void, origin?: string) => void;
|
|
336
|
-
undo: () => void;
|
|
337
|
-
updateMyPresence: (presence: UpdateMyPresenceAction<TPresence>) => void;
|
|
338
|
-
private _event;
|
|
339
|
-
private _observeCrdt;
|
|
340
|
-
private _other;
|
|
341
|
-
private _simulateEvent;
|
|
342
|
-
}
|
|
343
|
-
//#endregion
|
|
344
|
-
//#region src/register.d.ts
|
|
345
|
-
interface RegisterParams<TMetadata extends JsonObject> {
|
|
346
|
-
authEndpoint: AuthEndpoint<TMetadata>;
|
|
347
|
-
publicKey: string;
|
|
348
|
-
}
|
|
349
|
-
declare const register: <TMetadata extends JsonObject>(params: RegisterParams<TMetadata>) => {
|
|
350
|
-
authEndpoint: AuthEndpoint<TMetadata>;
|
|
351
|
-
publicKey: string;
|
|
352
|
-
wsEndpoint: (params: EndpointParams<TMetadata>) => string;
|
|
353
|
-
};
|
|
354
|
-
//#endregion
|
|
355
|
-
export { AbstractStorageStore, type BaseUser, ConnectionState, type CrdtType, type CreateRoomOptions, type EnterRoomParams, type EventMessage, type EventNotifierSubscriptionCallback, type EventRecord, type IOEventMessage, type InferCallback, type InferCrdtJson, type InferMetadata, type MergeEvents, MockedRoom, type MockedRoomConfig, type MockedRoomEvents, PluvClient, type PluvClientOptions, type PluvProcedureConfig, PluvRoom, type PluvRoomAddon, type PluvRoomAddonInput, type PluvRoomAddonResult, type PluvRoomDebug, type PluvRouter, type PluvRouterEventConfig, type PublicKey, type PublicKeyParams, type RegisterParams, type RoomConnectParams, type RoomEndpoints, type RoomLike, type UserInfo, type WebSocketConnection, type WebSocketState, createClient, infer, register };
|
|
356
|
-
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/AbstractStorageStore.ts","../src/utils/identity.ts","../src/infer.ts","../src/types.ts","../src/PluvProcedure.ts","../src/CrdtManager.ts","../src/PluvRouter.ts","../src/UsersManager.ts","../src/PluvRoom.ts","../src/PluvClient.ts","../src/createClient.ts","../src/MockedRoom.ts","../src/register.ts"],"mappings":"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"}
|