@pluv/io 5.0.2 → 5.0.4
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 +38 -42
- package/dist/index.d.mts +34 -34
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +45 -42
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -10
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<a href="https://pluv.io/docs/introduction">
|
|
3
|
-
<img src="https://github.com/pluv-io/pluv/blob/
|
|
3
|
+
<img src="https://github.com/pluv-io/pluv/blob/main/assets/pluv-icon-192x192.png?raw=true" alt="Pluv.IO" width="156" style="border-radius:16px" />
|
|
4
4
|
</a>
|
|
5
5
|
</div>
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<a href="https://www.npmjs.com/package/@pluv/io">
|
|
12
12
|
<img src="https://img.shields.io/npm/v/@pluv/io" alt="npm @pluv/io" />
|
|
13
13
|
</a>
|
|
14
|
-
<a href="https://github.com/pluv-io/pluv/blob/
|
|
14
|
+
<a href="https://github.com/pluv-io/pluv/blob/main/LICENSE">
|
|
15
15
|
<img alt="GitHub" src="https://img.shields.io/github/license/pluv-io/pluv" alt="License MIT" />
|
|
16
16
|
</a>
|
|
17
17
|
<a href="https://commitizen.github.io/cz-cli/">
|
|
@@ -39,25 +39,25 @@ Create your pluv.io backend
|
|
|
39
39
|
```ts
|
|
40
40
|
// backend
|
|
41
41
|
const io = createIO(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
platformNode({
|
|
43
|
+
context: () => ({ db }),
|
|
44
|
+
crdt: yjs,
|
|
45
|
+
}),
|
|
46
46
|
);
|
|
47
47
|
|
|
48
48
|
export const ioServer = io.server({
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
49
|
+
getInitialStorage: async ({ context: { db }, room }) => {
|
|
50
|
+
return await db.room
|
|
51
|
+
.findUnique({ where: { id: room } })
|
|
52
|
+
.then((result) => result?.encodedState ?? null);
|
|
53
|
+
},
|
|
54
|
+
router: io.router({
|
|
55
|
+
sendGreeting: io.procedure
|
|
56
|
+
.input(z.object({ message: z.string() }))
|
|
57
|
+
.broadcast(({ message }) => ({
|
|
58
|
+
receiveGreeting: { message },
|
|
59
|
+
})),
|
|
60
|
+
}),
|
|
61
61
|
});
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -67,29 +67,25 @@ Create your frontend client with your backend types
|
|
|
67
67
|
// frontend
|
|
68
68
|
const types = infer((i) => ({ io: i<typeof ioServer> }));
|
|
69
69
|
const io = createClient({
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
types,
|
|
71
|
+
initialStorage: yjs.doc((t) => ({
|
|
72
|
+
messages: t.array<string>("messages"),
|
|
73
|
+
})),
|
|
74
|
+
presence: z.object({
|
|
75
|
+
selectionId: z.string().nullable(),
|
|
76
|
+
}),
|
|
77
77
|
});
|
|
78
78
|
|
|
79
|
-
const {
|
|
80
|
-
event,
|
|
81
|
-
useBroadcast,
|
|
82
|
-
useMyPresence,
|
|
83
|
-
useOthers,
|
|
84
|
-
useStorage
|
|
85
|
-
} = createBundle(io);
|
|
79
|
+
const { event, useBroadcast, useMyPresence, useOthers, useStorage } = createBundle(io);
|
|
86
80
|
```
|
|
87
81
|
|
|
88
82
|
Use powerful primitives to build realtime features
|
|
89
83
|
|
|
90
84
|
```tsx
|
|
91
85
|
// react
|
|
92
|
-
event.receiveGreeting.useEvent(({ data }) => {
|
|
86
|
+
event.receiveGreeting.useEvent(({ data }) => {
|
|
87
|
+
/* ... */
|
|
88
|
+
});
|
|
93
89
|
// ^? const data: { message: string }
|
|
94
90
|
|
|
95
91
|
const broadcast = useBroadcast();
|
|
@@ -98,20 +94,20 @@ broadcast.sendGreeting({ message: "hello world" });
|
|
|
98
94
|
// ^? const sendGreeting: (data: { message: string }) => void
|
|
99
95
|
|
|
100
96
|
const [mySelection, update] = useMyPresence((presence) => {
|
|
101
|
-
// ^? const mySelection: string | null
|
|
102
|
-
|
|
97
|
+
// ^? const mySelection: string | null
|
|
98
|
+
return presence.selectionId;
|
|
103
99
|
});
|
|
104
100
|
|
|
105
101
|
const others = useOthers((others) => {
|
|
106
|
-
// ^? const others = string[]
|
|
107
|
-
|
|
102
|
+
// ^? const others = string[]
|
|
103
|
+
return others.map((other) => other.presence.selectionId);
|
|
108
104
|
});
|
|
109
105
|
|
|
110
106
|
const [
|
|
111
|
-
|
|
112
|
-
// ^? const messages: string[] | null
|
|
113
|
-
|
|
114
|
-
// ^? YArray<string> | null
|
|
107
|
+
messages,
|
|
108
|
+
// ^? const messages: string[] | null
|
|
109
|
+
sharedType,
|
|
110
|
+
// ^? YArray<string> | null
|
|
115
111
|
] = useStorage("messages");
|
|
116
112
|
```
|
|
117
113
|
|
|
@@ -196,4 +192,4 @@ This software uses the following open source tooling and libraries:
|
|
|
196
192
|
|
|
197
193
|
## License
|
|
198
194
|
|
|
199
|
-
[MIT](https://github.com/pluv-io/pluv/blob/
|
|
195
|
+
[MIT](https://github.com/pluv-io/pluv/blob/main/LICENSE)
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AbstractCrdtDocFactory, CrdtLibraryType, CrdtLibraryType as CrdtLibraryType$1, NoopCrdtDocFactory } from "@pluv/crdt";
|
|
2
|
-
import { BaseUser, BaseUser as BaseUser$1, CrdtDocLike, CrdtLibraryType as CrdtLibraryType$2, EventMessage, EventRecord, EventRecord as EventRecord$1, HasRequiredProperty, IOAuthorize, IOEventMessage, IOEventMessage as IOEventMessage$1, IOLike, IORouterLike, Id, InferEventMessage, InferEventsOutput, InferIOAuthorize, InferIOAuthorizeUser, InferIOInput, InferIOOutput, InputZodLike, JsonObject, Maybe, MaybePromise, ProcedureLike, UndefinedProps } from "@pluv/types";
|
|
2
|
+
import { BaseUser, BaseUser as BaseUser$1, CrdtDocFactory, CrdtDocLike, CrdtDocLike as CrdtDocLike$1, CrdtLibraryType as CrdtLibraryType$2, EventMessage, EventRecord, EventRecord as EventRecord$1, HasRequiredProperty, IOAuthorize, IOAuthorize as IOAuthorize$1, IOEventMessage, IOEventMessage as IOEventMessage$1, IOLike, IORouterLike, Id, InferEventMessage, InferEventsOutput, InferIOAuthorize, InferIOAuthorize as InferIOAuthorize$1, InferIOAuthorizeUser, InferIOAuthorizeUser as InferIOAuthorizeUser$1, InferIOInput, InferIOOutput, InputZodLike, InputZodLike as InputZodLike$1, JsonObject, Maybe, MaybePromise, ProcedureLike, ProcedureLike as ProcedureLike$1, UndefinedProps } from "@pluv/types";
|
|
3
3
|
//#region src/AbstractPersistence.d.ts
|
|
4
|
-
declare abstract class AbstractPersistence {
|
|
4
|
+
export declare abstract class AbstractPersistence {
|
|
5
5
|
abstract addUser(room: string, connectionId: string, user: JsonObject | null): Promise<void>;
|
|
6
6
|
abstract deleteStorageState(room: string): Promise<void>;
|
|
7
7
|
abstract deleteUser(room: string, connectionId: string): Promise<void>;
|
|
@@ -46,7 +46,7 @@ interface AbstractWebSocketConfig {
|
|
|
46
46
|
platform: AbstractPlatform<any>;
|
|
47
47
|
room: string;
|
|
48
48
|
}
|
|
49
|
-
declare abstract class AbstractWebSocket<TWebSocket = any, TAuthorize extends IOAuthorize<any, any> | null = null> {
|
|
49
|
+
export declare abstract class AbstractWebSocket<TWebSocket = any, TAuthorize extends IOAuthorize$1<any, any> | null = null> {
|
|
50
50
|
/** The connection is not yet open. */
|
|
51
51
|
readonly CONNECTING = 0;
|
|
52
52
|
/** The connection is open and ready to communicate. */
|
|
@@ -65,7 +65,7 @@ declare abstract class AbstractWebSocket<TWebSocket = any, TAuthorize extends IO
|
|
|
65
65
|
abstract get sessionId(): string;
|
|
66
66
|
abstract get state(): WebSocketSerializedState;
|
|
67
67
|
abstract set state(state: WebSocketSerializedState);
|
|
68
|
-
abstract set user(user: InferIOAuthorizeUser<TAuthorize>);
|
|
68
|
+
abstract set user(user: InferIOAuthorizeUser$1<TAuthorize>);
|
|
69
69
|
constructor(webSocket: TWebSocket, config: AbstractWebSocketConfig);
|
|
70
70
|
/**
|
|
71
71
|
* TODO
|
|
@@ -77,7 +77,7 @@ declare abstract class AbstractWebSocket<TWebSocket = any, TAuthorize extends IO
|
|
|
77
77
|
* @date August 28, 2022
|
|
78
78
|
*/
|
|
79
79
|
abstract addEventListener<TType extends EventType>(type: TType, handler: AbstractListener<TType>): void;
|
|
80
|
-
abstract close(code?: number
|
|
80
|
+
abstract close(code?: number, reason?: string): void;
|
|
81
81
|
abstract send(message: ArrayBuffer | ArrayBufferView | string): void;
|
|
82
82
|
abstract terminate(): void;
|
|
83
83
|
handleError(params: AbstractWebSocketHandleErrorParams): void;
|
|
@@ -85,21 +85,21 @@ declare abstract class AbstractWebSocket<TWebSocket = any, TAuthorize extends IO
|
|
|
85
85
|
}
|
|
86
86
|
//#endregion
|
|
87
87
|
//#region src/PluvProcedure.d.ts
|
|
88
|
-
interface PluvProcedureConfig<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>, TInput extends JsonObject = {}, TOutput extends EventRecord$1<string, any> = {}> {
|
|
88
|
+
interface PluvProcedureConfig<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize$1<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>, TInput extends JsonObject = {}, TOutput extends EventRecord$1<string, any> = {}> {
|
|
89
89
|
broadcast?: EventResolver<"broadcast", TPlatform, TAuthorize, TContext, TInput, Partial<TOutput>> | null;
|
|
90
|
-
input?: InputZodLike<TInput>;
|
|
90
|
+
input?: InputZodLike$1<TInput>;
|
|
91
91
|
self?: EventResolver<"self", TPlatform, TAuthorize, TContext, TInput, Partial<TOutput>> | null;
|
|
92
92
|
sync?: EventResolver<"sync", TPlatform, TAuthorize, TContext, TInput, Partial<TOutput>> | null;
|
|
93
93
|
}
|
|
94
|
-
declare class PluvProcedure<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>, TInput extends JsonObject = {}, TOutput extends EventRecord$1<string, any> = {}, TFilled extends "input" | "broadcast" | "self" | "sync" | "" = ""> {
|
|
94
|
+
export declare class PluvProcedure<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize$1<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>, TInput extends JsonObject = {}, TOutput extends EventRecord$1<string, any> = {}, TFilled extends "input" | "broadcast" | "self" | "sync" | "" = ""> {
|
|
95
95
|
private _broadcast;
|
|
96
96
|
private _input;
|
|
97
97
|
private _self;
|
|
98
98
|
private _sync;
|
|
99
|
-
get config(): ProcedureLike<TInput, TOutput>["config"];
|
|
99
|
+
get config(): ProcedureLike$1<TInput, TOutput>["config"];
|
|
100
100
|
constructor(config?: PluvProcedureConfig<TPlatform, TAuthorize, TContext, TInput, TOutput>);
|
|
101
101
|
broadcast<TResult extends EventRecord$1<string, any> = {}>(resolver: EventResolver<"broadcast", TPlatform, TAuthorize, TContext, TInput, TResult>): Omit<PluvProcedure<TPlatform, TAuthorize, TContext, TInput, MergeEventRecords<[TOutput, TResult]>, TFilled | "input" | "broadcast">, TFilled | "input" | "broadcast">;
|
|
102
|
-
input<TData extends JsonObject>(input: InputZodLike<TData>): Omit<PluvProcedure<TPlatform, TAuthorize, TContext, TData, {}, TFilled | "input">, TFilled | "input">;
|
|
102
|
+
input<TData extends JsonObject>(input: InputZodLike$1<TData>): Omit<PluvProcedure<TPlatform, TAuthorize, TContext, TData, {}, TFilled | "input">, TFilled | "input">;
|
|
103
103
|
self<TResult extends EventRecord$1<string, any> = {}>(resolver: EventResolver<"self", TPlatform, TAuthorize, TContext, TInput, TResult>): Omit<PluvProcedure<TPlatform, TAuthorize, TContext, TInput, MergeEventRecords<[TOutput, TResult]>, TFilled | "input" | "self">, TFilled | "input" | "self">;
|
|
104
104
|
sync<TResult extends EventRecord$1<string, any> = {}>(resolver: EventResolver<"sync", TPlatform, TAuthorize, TContext, TInput, TResult>): Omit<PluvProcedure<TPlatform, TAuthorize, TContext, TInput, MergeEventRecords<[TOutput, TResult]>, TFilled | "input" | "sync">, TFilled | "input" | "sync">;
|
|
105
105
|
private _resolver;
|
|
@@ -110,7 +110,7 @@ type PluvRouterEventConfig<TPlatform extends AbstractPlatform<any> = AbstractPla
|
|
|
110
110
|
[P: string]: Pick<PluvProcedure<TPlatform, TAuthorize, TContext, any, any>, "config">;
|
|
111
111
|
};
|
|
112
112
|
type MergedRouter<TRouters extends PluvRouter<TPlatform, TAuthorize, TContext, any>[] = [], TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> = any, TContext extends Record<string, any> = {}, TRoot extends TRouters[0]["_defs"]["events"] = {}> = TRouters extends [infer IHead extends PluvRouter<TPlatform, TAuthorize, TContext, any>, ...infer ITail extends PluvRouter<TPlatform, TAuthorize, TContext, any>[]] ? MergedRouter<ITail, TPlatform, TAuthorize, TContext, TRoot & IHead["_defs"]["events"]> : PluvRouter<TPlatform, TAuthorize, TContext, TRoot>;
|
|
113
|
-
declare class PluvRouter<TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null = any, TContext extends Record<string, any> = {}, TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext> = {}> implements IORouterLike<TEvents> {
|
|
113
|
+
export declare class PluvRouter<TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null = any, TContext extends Record<string, any> = {}, TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext> = {}> implements IORouterLike<TEvents> {
|
|
114
114
|
readonly _defs: {
|
|
115
115
|
events: TEvents;
|
|
116
116
|
};
|
|
@@ -122,10 +122,10 @@ declare class PluvRouter<TPlatform extends AbstractPlatform<any> = AbstractPlatf
|
|
|
122
122
|
//#region src/types.d.ts
|
|
123
123
|
type PluvContext<TPlatform extends AbstractPlatform, TContext extends Record<string, any>> = MaybePromise<TContext> | ((params: InferRoomContextType<TPlatform>) => MaybePromise<TContext>);
|
|
124
124
|
type EventResolverKind = "broadcast" | "self" | "sync";
|
|
125
|
-
type EventResolver<TKind extends EventResolverKind = EventResolverKind, TPlatform extends AbstractPlatform = AbstractPlatform, TAuthorize extends IOAuthorize<any, InferInitContextType<TPlatform>> | null = null, TContext extends Record<string, any> = {}, TInput extends JsonObject = {}, TOutput extends EventRecord$1<string, any> = {}> = (data: TInput, context: EventResolverContext<TKind, TPlatform, TAuthorize, TContext>) => MaybePromise<TOutput | void>;
|
|
126
|
-
interface EventResolverContext<TKind extends EventResolverKind = EventResolverKind, TPlatform extends AbstractPlatform = AbstractPlatform, TAuthorize extends IOAuthorize<any, InferInitContextType<TPlatform>> | null = null, TContext extends Record<string, any> = {}> {
|
|
125
|
+
type EventResolver<TKind extends EventResolverKind = EventResolverKind, TPlatform extends AbstractPlatform = AbstractPlatform, TAuthorize extends IOAuthorize$1<any, InferInitContextType<TPlatform>> | null = null, TContext extends Record<string, any> = {}, TInput extends JsonObject = {}, TOutput extends EventRecord$1<string, any> = {}> = (data: TInput, context: EventResolverContext<TKind, TPlatform, TAuthorize, TContext>) => MaybePromise<TOutput | void>;
|
|
126
|
+
interface EventResolverContext<TKind extends EventResolverKind = EventResolverKind, TPlatform extends AbstractPlatform = AbstractPlatform, TAuthorize extends IOAuthorize$1<any, InferInitContextType<TPlatform>> | null = null, TContext extends Record<string, any> = {}> {
|
|
127
127
|
context: TContext;
|
|
128
|
-
doc: CrdtDocLike<any, any>;
|
|
128
|
+
doc: CrdtDocLike$1<any, any>;
|
|
129
129
|
garbageCollect: () => Promise<void>;
|
|
130
130
|
platform: TPlatform;
|
|
131
131
|
presence: JsonObject | null;
|
|
@@ -152,9 +152,9 @@ interface WebSocketSerializedState {
|
|
|
152
152
|
room: string;
|
|
153
153
|
timers: WebSocketSessionTimers;
|
|
154
154
|
}
|
|
155
|
-
type WebSocketSession<TAuthorize extends IOAuthorize<any, any> | null = null> = WebSocketSerializedState & {
|
|
155
|
+
type WebSocketSession<TAuthorize extends IOAuthorize$1<any, any> | null = null> = WebSocketSerializedState & {
|
|
156
156
|
id: string;
|
|
157
|
-
user: InferIOAuthorizeUser<TAuthorize>;
|
|
157
|
+
user: InferIOAuthorizeUser$1<TAuthorize>;
|
|
158
158
|
webSocket: AbstractWebSocket;
|
|
159
159
|
};
|
|
160
160
|
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>;
|
|
@@ -183,7 +183,7 @@ interface PlatformConfig {
|
|
|
183
183
|
router?: boolean;
|
|
184
184
|
}
|
|
185
185
|
type ResolvedPluvIOAuthorize<TPlatform extends AbstractPlatform<any, any, any, any>, TUser extends BaseUser$1 = any> = {
|
|
186
|
-
user: InputZodLike<TUser>;
|
|
186
|
+
user: InputZodLike$1<TUser>;
|
|
187
187
|
} & UndefinedProps<{
|
|
188
188
|
secret?: string;
|
|
189
189
|
}, Exclude<"secret", InferPlatformAuthorizeProperties<TPlatform>>>;
|
|
@@ -237,19 +237,19 @@ type IORoomDestroyedEvent<TPlatform extends AbstractPlatform<any, any, any, any>
|
|
|
237
237
|
};
|
|
238
238
|
type IORoomMessageEvent<TPlatform extends AbstractPlatform<any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>, TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext>> = IORoomListenerEvent<TPlatform, TContext> & {
|
|
239
239
|
message: InferEventMessage<InferEventsOutput<TEvents>, keyof InferEventsOutput<TEvents>>;
|
|
240
|
-
user?: InferIOAuthorizeUser<TAuthorize>;
|
|
240
|
+
user?: InferIOAuthorizeUser$1<TAuthorize>;
|
|
241
241
|
webSocket?: InferPlatformWebSocketSource<TPlatform>;
|
|
242
242
|
};
|
|
243
|
-
type IOStorageUpdatedEvent<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>> = IORoomListenerEvent<TPlatform, TContext> & {
|
|
244
|
-
user?: InferIOAuthorizeUser<TAuthorize>;
|
|
243
|
+
type IOStorageUpdatedEvent<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize$1<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>> = IORoomListenerEvent<TPlatform, TContext> & {
|
|
244
|
+
user?: InferIOAuthorizeUser$1<TAuthorize>;
|
|
245
245
|
webSocket?: InferPlatformWebSocketSource<TPlatform>;
|
|
246
246
|
};
|
|
247
|
-
type IOUserConnectedEvent<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>> = IORoomListenerEvent<TPlatform, TContext> & {
|
|
248
|
-
user?: InferIOAuthorizeUser<TAuthorize>;
|
|
247
|
+
type IOUserConnectedEvent<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize$1<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>> = IORoomListenerEvent<TPlatform, TContext> & {
|
|
248
|
+
user?: InferIOAuthorizeUser$1<TAuthorize>;
|
|
249
249
|
webSocket?: InferPlatformWebSocketSource<TPlatform>;
|
|
250
250
|
};
|
|
251
|
-
type IOUserDisconnectedEvent<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>> = IORoomListenerEvent<TPlatform, TContext> & {
|
|
252
|
-
user?: InferIOAuthorizeUser<TAuthorize>;
|
|
251
|
+
type IOUserDisconnectedEvent<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize$1<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>> = IORoomListenerEvent<TPlatform, TContext> & {
|
|
252
|
+
user?: InferIOAuthorizeUser$1<TAuthorize>;
|
|
253
253
|
};
|
|
254
254
|
type WebSocketType<TPlatform extends AbstractPlatform> = InferPlatformWebSocketType<TPlatform> | InferPlatformWebSocketSource<TPlatform>;
|
|
255
255
|
//#endregion
|
|
@@ -257,7 +257,7 @@ type WebSocketType<TPlatform extends AbstractPlatform> = InferPlatformWebSocketT
|
|
|
257
257
|
type IOPubSubEventMessage<TIO extends IOLike, TEvent extends keyof InferIOOutput<TIO> = keyof InferIOOutput<TIO>> = IOEventMessage$1<TIO, TEvent> & {
|
|
258
258
|
options?: SendMessageOptions;
|
|
259
259
|
};
|
|
260
|
-
declare abstract class AbstractPubSub {
|
|
260
|
+
export declare abstract class AbstractPubSub {
|
|
261
261
|
abstract publish(roomName: string, payload: IOPubSubEventMessage<any>): Promise<void>;
|
|
262
262
|
abstract subscribe(roomName: string, onMessage: (message: IOPubSubEventMessage<any>) => void): Promise<number>;
|
|
263
263
|
abstract unsubscribe(subscriptionId: number): void;
|
|
@@ -282,7 +282,7 @@ interface AuthorizeModule {
|
|
|
282
282
|
decode: <TUser extends BaseUser$1>(jwt: string) => Promise<TUser | null>;
|
|
283
283
|
encode: <TUser extends BaseUser$1, TPlatform extends AbstractPlatform<any, any>>(params: JWTEncodeParams<TUser, TPlatform>) => Promise<string>;
|
|
284
284
|
}
|
|
285
|
-
declare const authorize: (params: AuthorizeParams) => {
|
|
285
|
+
export declare const authorize: (params: AuthorizeParams) => {
|
|
286
286
|
decode: <TUser extends BaseUser$1>(jwt: string) => Promise<JWT<TUser> | null>;
|
|
287
287
|
encode: <TUser extends BaseUser$1, TPlatform extends AbstractPlatform<any, any>>(encodeParams: JWTEncodeParams<TUser, TPlatform>) => Promise<string>;
|
|
288
288
|
};
|
|
@@ -300,7 +300,7 @@ type AbstractPlatformConfig<TRoomContext extends Record<string, any> = {}> = {
|
|
|
300
300
|
interface ConvertWebSocketConfig {
|
|
301
301
|
room: string;
|
|
302
302
|
}
|
|
303
|
-
declare abstract class AbstractPlatform<TWebSocket extends AbstractWebSocket<any, any> = AbstractWebSocket<any, any>, TInitContext extends Record<string, any> = {}, TRoomContext extends Record<string, any> = {}, TConfig extends PlatformConfig = PlatformConfig> {
|
|
303
|
+
export declare abstract class AbstractPlatform<TWebSocket extends AbstractWebSocket<any, any> = AbstractWebSocket<any, any>, TInitContext extends Record<string, any> = {}, TRoomContext extends Record<string, any> = {}, TConfig extends PlatformConfig = PlatformConfig> {
|
|
304
304
|
protected readonly _initContext: TInitContext | undefined;
|
|
305
305
|
protected readonly _roomContext: TRoomContext | undefined;
|
|
306
306
|
private _initialized;
|
|
@@ -466,7 +466,7 @@ type BaseCreateRoomOptions<TPlatform extends AbstractPlatform<any, any>, TAuthor
|
|
|
466
466
|
debug?: boolean;
|
|
467
467
|
};
|
|
468
468
|
type CreateRoomOptions<TPlatform extends AbstractPlatform<any, any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>, TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext>> = keyof Omit<InferRoomContextType<TPlatform>, "meta"> extends never ? [BaseCreateRoomOptions<TPlatform, TAuthorize, TContext, TEvents>] | [] : [Id<BaseCreateRoomOptions<TPlatform, TAuthorize, TContext, TEvents> & InferRoomContextType<TPlatform>>];
|
|
469
|
-
declare class PluvServer<TPlatform extends AbstractPlatform<any, any> = AbstractPlatform<any, any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null = any, TContext extends Record<string, any> = {}, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<any>, TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext> = {}> implements IOLike<TAuthorize, TCrdt, TEvents> {
|
|
469
|
+
export declare class PluvServer<TPlatform extends AbstractPlatform<any, any> = AbstractPlatform<any, any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null = any, TContext extends Record<string, any> = {}, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<any>, TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext> = {}> implements IOLike<TAuthorize, TCrdt, TEvents> {
|
|
470
470
|
readonly version: string;
|
|
471
471
|
private readonly _config;
|
|
472
472
|
private readonly _docFactory;
|
|
@@ -488,14 +488,14 @@ declare class PluvServer<TPlatform extends AbstractPlatform<any, any> = Abstract
|
|
|
488
488
|
private get _router();
|
|
489
489
|
constructor(options: PluvServerConfig<TPlatform, TAuthorize, TContext, TCrdt, TEvents>);
|
|
490
490
|
createRoom(room: string, ...options: CreateRoomOptions<TPlatform, TAuthorize, TContext, TEvents>): IORoom<TPlatform, TAuthorize, TContext, TCrdt, TEvents>;
|
|
491
|
-
createToken(params: JWTEncodeParams<InferIOAuthorizeUser<InferIOAuthorize<this>>, TPlatform>): Promise<string>;
|
|
491
|
+
createToken(params: JWTEncodeParams<InferIOAuthorizeUser$1<InferIOAuthorize$1<this>>, TPlatform>): Promise<string>;
|
|
492
492
|
private _getInitialStorage;
|
|
493
493
|
private _getListeners;
|
|
494
494
|
private _logDebug;
|
|
495
495
|
}
|
|
496
496
|
//#endregion
|
|
497
497
|
//#region src/PluvIO.d.ts
|
|
498
|
-
type PluvIOConfig<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<any>> = {
|
|
498
|
+
type PluvIOConfig<TPlatform extends AbstractPlatform<any>, TAuthorize extends IOAuthorize$1<any, InferInitContextType<TPlatform>> | null, TContext extends Record<string, any>, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<any>> = {
|
|
499
499
|
authorize?: TAuthorize;
|
|
500
500
|
context?: PluvContext<TPlatform, TContext>;
|
|
501
501
|
crdt?: TCrdt;
|
|
@@ -510,7 +510,7 @@ type ResolvedServerConfig<TPlatform extends AbstractPlatform<any> = AbstractPlat
|
|
|
510
510
|
});
|
|
511
511
|
type BaseServerConfig<TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null = any, TContext extends Record<string, any> = {}, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<NoopCrdtDocFactory>, TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext> = {}> = { [P in keyof ResolvedServerConfig<TPlatform, TAuthorize, TContext, TCrdt, TEvents> as ResolvedServerConfig<TPlatform, TAuthorize, TContext, TCrdt, TEvents>[P] extends undefined ? never : P]: ResolvedServerConfig<TPlatform, TAuthorize, TContext, TCrdt, TEvents>[P]; };
|
|
512
512
|
type ServerConfig<TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null = any, TContext extends Record<string, any> = {}, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<NoopCrdtDocFactory>, TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext> = {}> = HasRequiredProperty<BaseServerConfig<TPlatform, TAuthorize, TContext, TCrdt, TEvents>> extends true ? [BaseServerConfig<TPlatform, TAuthorize, TContext, TCrdt, TEvents>] : [BaseServerConfig<TPlatform, TAuthorize, TContext, TCrdt, TEvents>?];
|
|
513
|
-
declare class PluvIO<TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null = any, TContext extends Record<string, any> = {}, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<any>> {
|
|
513
|
+
export declare class PluvIO<TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TAuthorize extends PluvIOAuthorize<TPlatform, any, InferInitContextType<TPlatform>> | null = any, TContext extends Record<string, any> = {}, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<any>> {
|
|
514
514
|
readonly version: string;
|
|
515
515
|
private readonly _authorize;
|
|
516
516
|
private readonly _context;
|
|
@@ -520,7 +520,7 @@ declare class PluvIO<TPlatform extends AbstractPlatform<any> = AbstractPlatform<
|
|
|
520
520
|
private readonly _platform;
|
|
521
521
|
get procedure(): PluvProcedure<TPlatform, TAuthorize, TContext, {}, {}>;
|
|
522
522
|
constructor(options: PluvIOConfig<TPlatform, TAuthorize, TContext, TCrdt>);
|
|
523
|
-
createToken(params: JWTEncodeParams<InferIOAuthorizeUser<TAuthorize>, TPlatform>): Promise<string>;
|
|
523
|
+
createToken(params: JWTEncodeParams<InferIOAuthorizeUser$1<TAuthorize>, TPlatform>): Promise<string>;
|
|
524
524
|
mergeRouters<TRouters extends PluvRouter<TPlatform, TAuthorize, TContext, any>[]>(...routers: TRouters): MergedRouter<TRouters>;
|
|
525
525
|
router<TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext>>(events: TEvents): PluvRouter<TPlatform, TAuthorize, TContext, TEvents>;
|
|
526
526
|
server<TEvents extends PluvRouterEventConfig<TPlatform, TAuthorize, TContext> = {}>(...config: ServerConfig<TPlatform, TAuthorize, TContext, TCrdt, TEvents>): PluvServer<TPlatform, TAuthorize, TContext, TCrdt, TEvents>;
|
|
@@ -536,7 +536,7 @@ type CreateIOParams<TPlatform extends AbstractPlatform<any> = AbstractPlatform<a
|
|
|
536
536
|
limits?: PluvIOLimits;
|
|
537
537
|
platform: () => TPlatform;
|
|
538
538
|
};
|
|
539
|
-
declare const createIO: <TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TContext extends Record<string, any> = {}, TUser extends BaseUser$1 | null = null, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<NoopCrdtDocFactory>>(params: CreateIOParams<TPlatform, TContext, TUser, TCrdt>) => PluvIO<TPlatform, PluvIOAuthorize<TPlatform, TUser, InferInitContextType<TPlatform>>, TContext, TCrdt>;
|
|
539
|
+
export declare const createIO: <TPlatform extends AbstractPlatform<any> = AbstractPlatform<any>, TContext extends Record<string, any> = {}, TUser extends BaseUser$1 | null = null, TCrdt extends CrdtLibraryType$1<any> = CrdtLibraryType$1<NoopCrdtDocFactory>>(params: CreateIOParams<TPlatform, TContext, TUser, TCrdt>) => PluvIO<TPlatform, PluvIOAuthorize<TPlatform, TUser, InferInitContextType<TPlatform>>, TContext, TCrdt>;
|
|
540
540
|
//#endregion
|
|
541
|
-
export {
|
|
541
|
+
export type { AbstractCloseEvent, AbstractErrorEvent, AbstractEvent, AbstractEventMap, AbstractListener, AbstractMessageEvent, AbstractPlatformConfig, AbstractWebSocketConfig, AbstractWebSocketHandleErrorParams, AuthorizeModule, AuthorizeParams, BaseUser, ConvertWebSocketConfig, CrdtDocFactory, CrdtDocLike, CrdtLibraryType, CreateIOParams, CreateRoomOptions, EventMessage, EventRecord, GetInitialStorageFn, HandleMode, IOAuthorize, IOEventMessage, IOPubSubEventMessage, IORoom, IORoomDestroyedEvent, IORoomListenerEvent, IORoomMessageEvent, IOStorageUpdatedEvent, IOUserConnectedEvent, IOUserDisconnectedEvent, InferIOAuthorize, InferIOAuthorizeUser, InferIORoom, InferInitContextType, InferPlatformWebSocketType, InferRoomContextType, InputZodLike, JWT, JWTEncodeParams, MergedRouter, PlatformConfig, PluvContext, PluvIOAuthorize, PluvIOConfig, PluvIOLimits, PluvIOListeners, PluvProcedureConfig, PluvRouterEventConfig, PluvServerConfig, ProcedureLike, ServerConfig, WebSocketRegistrationMode, WebSocketSerializedState, WebSocketSession };
|
|
542
542
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/AbstractPersistence.ts","../src/AbstractWebSocket.ts","../src/PluvProcedure.ts","../src/PluvRouter.ts","../src/types.ts","../src/AbstractPubSub.ts","../src/authorize.ts","../src/AbstractPlatform.ts","../src/IORoom.ts","../src/PluvServer.ts","../src/PluvIO.ts","../src/createIO.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/AbstractPersistence.ts","../src/AbstractWebSocket.ts","../src/PluvProcedure.ts","../src/PluvRouter.ts","../src/types.ts","../src/AbstractPubSub.ts","../src/authorize.ts","../src/AbstractPlatform.ts","../src/IORoom.ts","../src/PluvServer.ts","../src/PluvIO.ts","../src/createIO.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { makeSubject, subscribe } from "wonka";
|
|
2
|
-
import hkdf from "@panva/hkdf";
|
|
2
|
+
import { hkdf } from "@panva/hkdf";
|
|
3
3
|
import { EncryptJWT, jwtDecrypt } from "jose";
|
|
4
4
|
import { noop } from "@pluv/crdt";
|
|
5
5
|
import colors from "kleur";
|
|
@@ -181,14 +181,14 @@ const authorize = (params) => {
|
|
|
181
181
|
const encode = async (encodeParams) => {
|
|
182
182
|
const { maxAge = DEFAULT_MAX_AGE_MS, room, user } = encodeParams;
|
|
183
183
|
const encryptionSecret = await getEncryptionKey(secret);
|
|
184
|
-
return
|
|
184
|
+
return await new EncryptJWT({
|
|
185
185
|
room,
|
|
186
186
|
sub: room ? `${room}|${user.id}` : user.id,
|
|
187
187
|
user
|
|
188
188
|
}).setProtectedHeader({
|
|
189
189
|
alg: "dir",
|
|
190
190
|
enc: "A256GCM"
|
|
191
|
-
}).setIssuedAt().setExpirationTime(now() + maxAge).setJti(platform.randomUUID()).encrypt(encryptionSecret)
|
|
191
|
+
}).setIssuedAt().setExpirationTime(now() + maxAge).setJti(platform.randomUUID()).encrypt(encryptionSecret);
|
|
192
192
|
};
|
|
193
193
|
const decode = async (jwt) => {
|
|
194
194
|
const encryptionSecret = await getEncryptionKey(secret);
|
|
@@ -346,7 +346,7 @@ var IORoom = class {
|
|
|
346
346
|
return Promise.resolve(!!this._uninitialize?.then((result) => !!result));
|
|
347
347
|
}
|
|
348
348
|
constructor(id, config) {
|
|
349
|
-
const { _meta, authorize, context, crdt = noop, debug, getInitialStorage, onRoomDestroyed, onStorageDestroyed, onMessage, onUserConnected, onUserDisconnected, platform, roomContext, router } = config;
|
|
349
|
+
const { _meta, authorize: authorizeConfig, context, crdt = noop, debug, getInitialStorage, onRoomDestroyed, onStorageDestroyed, onMessage, onUserConnected, onUserDisconnected, platform, roomContext, router } = config;
|
|
350
350
|
this.id = id;
|
|
351
351
|
this._context = context;
|
|
352
352
|
this._crdt = crdt;
|
|
@@ -366,7 +366,7 @@ var IORoom = class {
|
|
|
366
366
|
onUserConnected: (event) => onUserConnected?.(event),
|
|
367
367
|
onUserDisconnected: (event) => onUserDisconnected?.(event)
|
|
368
368
|
};
|
|
369
|
-
if (
|
|
369
|
+
if (authorizeConfig) this._authorize = authorizeConfig;
|
|
370
370
|
this._platform.getWebSockets().forEach((webSocket) => {
|
|
371
371
|
const deserialized = this._platform.getSerializedState(webSocket);
|
|
372
372
|
const sessionId = this._platform.getSessionId(webSocket);
|
|
@@ -406,8 +406,7 @@ var IORoom = class {
|
|
|
406
406
|
*/
|
|
407
407
|
async garbageCollect() {
|
|
408
408
|
this._lastGarbageCollectMs = Date.now();
|
|
409
|
-
this._emitQuitters();
|
|
410
|
-
this._emitSyncState();
|
|
409
|
+
await Promise.all([this._emitQuitters(), this._emitSyncState()]);
|
|
411
410
|
}
|
|
412
411
|
getSize() {
|
|
413
412
|
const currentTime = (/* @__PURE__ */ new Date()).getTime();
|
|
@@ -459,7 +458,7 @@ var IORoom = class {
|
|
|
459
458
|
const isUnauthorized = !!this._getIOAuthorize(_options) && !user;
|
|
460
459
|
const pluvWs = this._platform.convertWebSocket(webSocket, { room: this.id });
|
|
461
460
|
if (isUnauthorized) {
|
|
462
|
-
this._logDebug(
|
|
461
|
+
this._logDebug(colors.blue("Authorization failed for connection"));
|
|
463
462
|
pluvWs.handleError({
|
|
464
463
|
error: /* @__PURE__ */ new Error("Not authorized"),
|
|
465
464
|
room: this.id
|
|
@@ -509,7 +508,7 @@ var IORoom = class {
|
|
|
509
508
|
const { message, senderId } = params;
|
|
510
509
|
const user = ((senderId ? this._sessions.get(senderId) ?? null : null)?.session ?? null)?.user ?? null;
|
|
511
510
|
if (typeof senderId !== "string") return;
|
|
512
|
-
this._platform.pubSub.publish(this.id, {
|
|
511
|
+
await this._platform.pubSub.publish(this.id, {
|
|
513
512
|
connectionId: senderId ?? null,
|
|
514
513
|
room: this.id,
|
|
515
514
|
user,
|
|
@@ -565,7 +564,7 @@ var IORoom = class {
|
|
|
565
564
|
const quitters = Array.from(this._sessions.values()).filter((pluvWs) => {
|
|
566
565
|
return pluvWs.state.quit || currentTime - pluvWs.state.timers.ping > 3e4;
|
|
567
566
|
});
|
|
568
|
-
this._closeWebSockets(quitters);
|
|
567
|
+
await this._closeWebSockets(quitters);
|
|
569
568
|
}
|
|
570
569
|
async _emitRegistered(pluvWs) {
|
|
571
570
|
const session = pluvWs.session;
|
|
@@ -723,7 +722,7 @@ var IORoom = class {
|
|
|
723
722
|
}
|
|
724
723
|
_initialize() {
|
|
725
724
|
const promise = (async () => {
|
|
726
|
-
this._logDebug(
|
|
725
|
+
this._logDebug(colors.blue(`Initializing room: ${this.id}`));
|
|
727
726
|
if (!!this._uninitialize) {
|
|
728
727
|
await (await this._uninitialize).bind(this)();
|
|
729
728
|
this._uninitialize = null;
|
|
@@ -751,9 +750,9 @@ var IORoom = class {
|
|
|
751
750
|
this._wasDocEmptyOnInit = doc.isEmpty();
|
|
752
751
|
const uninitialize = async () => {
|
|
753
752
|
this._platform.pubSub.unsubscribe(pubSubId);
|
|
754
|
-
const [
|
|
755
|
-
const encodedState =
|
|
756
|
-
|
|
753
|
+
const [resolvedDoc, context] = await Promise.all([this._doc, this._getContext()]);
|
|
754
|
+
const encodedState = resolvedDoc.getEncodedState();
|
|
755
|
+
resolvedDoc.destroy();
|
|
757
756
|
this._doc = Promise.resolve(this._docFactory.getEmpty());
|
|
758
757
|
await Promise.resolve(this._listeners.onRoomDestroyed({
|
|
759
758
|
..."_meta" in this._platform && !!this._platform._meta ? { _meta: this._platform._meta } : {},
|
|
@@ -1002,6 +1001,13 @@ var IORoom = class {
|
|
|
1002
1001
|
if (typeof senderId !== "string") return;
|
|
1003
1002
|
const pluvWs = this._sessions.get(senderId);
|
|
1004
1003
|
if (!pluvWs) return;
|
|
1004
|
+
const user = pluvWs.session.user ?? null;
|
|
1005
|
+
await this._sendMessage(pluvWs, {
|
|
1006
|
+
connectionId: senderId,
|
|
1007
|
+
room: this.id,
|
|
1008
|
+
user,
|
|
1009
|
+
...message
|
|
1010
|
+
});
|
|
1005
1011
|
/**
|
|
1006
1012
|
* @description Note that this will not fire for Cloudflare's hibernatable websockets
|
|
1007
1013
|
* because the server will auto-respond with the $pong event without calling any
|
|
@@ -1009,15 +1015,13 @@ var IORoom = class {
|
|
|
1009
1015
|
* @date April 18, 2025
|
|
1010
1016
|
*/
|
|
1011
1017
|
if (message.type === "$pong") {
|
|
1018
|
+
/**
|
|
1019
|
+
* @description Garbage collection is awaited after responding, since it can close
|
|
1020
|
+
* websockets and flush persistence. Blocking the $pong response on it risks
|
|
1021
|
+
* exceeding the client's pong timeout and triggering a spurious reconnect.
|
|
1022
|
+
*/
|
|
1012
1023
|
if (Date.now() - this._lastGarbageCollectMs > 6e4) await this.garbageCollect();
|
|
1013
1024
|
}
|
|
1014
|
-
const user = pluvWs.session.user ?? null;
|
|
1015
|
-
this._sendMessage(pluvWs, {
|
|
1016
|
-
connectionId: senderId,
|
|
1017
|
-
room: this.id,
|
|
1018
|
-
user,
|
|
1019
|
-
...message
|
|
1020
|
-
});
|
|
1021
1025
|
}
|
|
1022
1026
|
async _sendSyncMessage(message, sender) {
|
|
1023
1027
|
if (!sender) return;
|
|
@@ -1048,25 +1052,24 @@ var IORoom = class {
|
|
|
1048
1052
|
} catch {
|
|
1049
1053
|
return;
|
|
1050
1054
|
}
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
});
|
|
1055
|
+
const output = await resolver(inputs, resolverCtx);
|
|
1056
|
+
if (!output) return;
|
|
1057
|
+
await Promise.all(Object.keys(output).map((type) => {
|
|
1058
|
+
const data = output[type] ?? {};
|
|
1059
|
+
return this._platform.pubSub.publish(this.id, {
|
|
1060
|
+
connectionId,
|
|
1061
|
+
data,
|
|
1062
|
+
options: { type: "self" },
|
|
1063
|
+
room: this.id,
|
|
1064
|
+
type,
|
|
1065
|
+
user: sender.user ?? null
|
|
1063
1066
|
});
|
|
1064
|
-
});
|
|
1067
|
+
}));
|
|
1065
1068
|
}
|
|
1066
1069
|
};
|
|
1067
1070
|
//#endregion
|
|
1068
1071
|
//#region src/version.generated.ts
|
|
1069
|
-
const version = "5.0.
|
|
1072
|
+
const version = "5.0.4";
|
|
1070
1073
|
//#endregion
|
|
1071
1074
|
//#region src/PluvServer.ts
|
|
1072
1075
|
var PluvServer = class {
|
|
@@ -1105,16 +1108,16 @@ var PluvServer = class {
|
|
|
1105
1108
|
if (wsSession.quit) return false;
|
|
1106
1109
|
if (currentTime - wsSession.timers.ping > 3e4) return false;
|
|
1107
1110
|
return true;
|
|
1108
|
-
}).reduce((acc, { id, presence, timers, user }) =>
|
|
1109
|
-
|
|
1110
|
-
[id]: {
|
|
1111
|
+
}).reduce((acc, { id, presence, timers, user }) => {
|
|
1112
|
+
acc[id] = {
|
|
1111
1113
|
connectionId: id,
|
|
1112
1114
|
presence,
|
|
1113
1115
|
room,
|
|
1114
1116
|
timers: { presence: timers.presence },
|
|
1115
1117
|
user
|
|
1116
|
-
}
|
|
1117
|
-
|
|
1118
|
+
};
|
|
1119
|
+
return acc;
|
|
1120
|
+
}, {}) } };
|
|
1118
1121
|
}),
|
|
1119
1122
|
$initializeSession: this._procedure.broadcast((data, { session }) => {
|
|
1120
1123
|
const presence = data?.presence;
|
|
@@ -1332,7 +1335,7 @@ var PluvIO = class {
|
|
|
1332
1335
|
return new PluvProcedure();
|
|
1333
1336
|
}
|
|
1334
1337
|
constructor(options) {
|
|
1335
|
-
const { authorize, context, crdt = noop, debug = false, limits, platform } = options;
|
|
1338
|
+
const { authorize: authorizeConfig, context, crdt = noop, debug = false, limits, platform } = options;
|
|
1336
1339
|
this._crdt = crdt;
|
|
1337
1340
|
this._debug = debug;
|
|
1338
1341
|
this._limits = {
|
|
@@ -1343,7 +1346,7 @@ var PluvIO = class {
|
|
|
1343
1346
|
...limits
|
|
1344
1347
|
};
|
|
1345
1348
|
this._platform = platform;
|
|
1346
|
-
if (
|
|
1349
|
+
if (authorizeConfig) this._authorize = authorizeConfig;
|
|
1347
1350
|
if (context) this._context = context;
|
|
1348
1351
|
}
|
|
1349
1352
|
async createToken(params) {
|