@pluv/types 3.2.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +14 -16
- package/CHANGELOG.md +20 -0
- package/dist/index.d.mts +240 -269
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +16 -16
- package/dist/index.mjs.map +1 -0
- package/package.json +15 -10
- package/src/general.ts +12 -0
- package/src/index.ts +5 -0
- package/src/pluv/shared.ts +28 -5
- package/tsdown.config.ts +14 -0
- package/dist/index.d.ts +0 -379
- package/dist/index.js +0 -46
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/general.ts","../src/pluv/crdt.ts","../src/pluv/enums.ts","../src/pluv/shared.ts","../src/pluv/room.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
//#region src/pluv/enums.ts
|
|
2
|
+
const ConnectionState = {
|
|
3
|
+
Closed: "closed",
|
|
4
|
+
Connecting: "connecting",
|
|
5
|
+
Open: "open",
|
|
6
|
+
Unavailable: "unavailable",
|
|
7
|
+
Untouched: "untouched"
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
15
|
-
export {
|
|
16
|
-
ConnectionState,
|
|
17
|
-
StorageState
|
|
9
|
+
const StorageState = {
|
|
10
|
+
Loading: "loading",
|
|
11
|
+
Offline: "offline",
|
|
12
|
+
Synced: "synced",
|
|
13
|
+
Unavailable: "unavailable"
|
|
18
14
|
};
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { ConnectionState, StorageState };
|
|
18
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/pluv/enums.ts"],"sourcesContent":["export const ConnectionState = {\n Closed: \"closed\",\n Connecting: \"connecting\",\n Open: \"open\",\n Unavailable: \"unavailable\",\n Untouched: \"untouched\",\n} as const;\n\nexport type ConnectionState = (typeof ConnectionState)[keyof typeof ConnectionState];\n\nexport const StorageState = {\n Loading: \"loading\",\n Offline: \"offline\",\n Synced: \"synced\",\n Unavailable: \"unavailable\",\n};\n\nexport type StorageState = (typeof StorageState)[keyof typeof StorageState];\n"],"mappings":";AAAA,MAAa,kBAAkB;CAC3B,QAAQ;CACR,YAAY;CACZ,MAAM;CACN,aAAa;CACb,WAAW;CACd;AAID,MAAa,eAAe;CACxB,SAAS;CACT,SAAS;CACT,QAAQ;CACR,aAAa;CAChB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pluv/types",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "@pluv/io shared types",
|
|
5
5
|
"author": {
|
|
6
6
|
"email": "david@pluv.io",
|
|
@@ -14,25 +14,30 @@
|
|
|
14
14
|
"url": "git+https://github.com/pluv-io/pluv.git",
|
|
15
15
|
"directory": "packages/types"
|
|
16
16
|
},
|
|
17
|
-
"
|
|
18
|
-
"types": "./dist/index.d.
|
|
17
|
+
"type": "module",
|
|
18
|
+
"types": "./dist/index.d.mts",
|
|
19
19
|
"publishConfig": {
|
|
20
20
|
"access": "public"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"eslint": "^9.
|
|
24
|
-
"
|
|
25
|
-
"typescript": "^5.
|
|
26
|
-
"@pluv/tsconfig": "^
|
|
27
|
-
"eslint-config-pluv": "^
|
|
23
|
+
"eslint": "^9.39.2",
|
|
24
|
+
"tsdown": "0.20.0-beta.4",
|
|
25
|
+
"typescript": "^5.9.3",
|
|
26
|
+
"@pluv/tsconfig": "^4.0.0",
|
|
27
|
+
"eslint-config-pluv": "^4.0.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"wonka": "^6.3.5"
|
|
31
31
|
},
|
|
32
|
+
"exports": {
|
|
33
|
+
".": "./dist/index.mjs",
|
|
34
|
+
"./*": "./*"
|
|
35
|
+
},
|
|
32
36
|
"scripts": {
|
|
33
|
-
"build": "
|
|
34
|
-
"dev": "
|
|
37
|
+
"build": "tsdown",
|
|
38
|
+
"dev": "tsdown --watch",
|
|
35
39
|
"lint": "eslint \"src/**/*.ts*\" --fix --max-warnings 0",
|
|
40
|
+
"typecheck": "tsc --noEmit",
|
|
36
41
|
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
37
42
|
}
|
|
38
43
|
}
|
package/src/general.ts
CHANGED
|
@@ -76,3 +76,15 @@ export type UnionToIntersection<U> = (U extends any ? (arg: U) => any : never) e
|
|
|
76
76
|
) => void
|
|
77
77
|
? I
|
|
78
78
|
: never;
|
|
79
|
+
|
|
80
|
+
// Check if all properties in T are optional
|
|
81
|
+
// - If T is {} (no keys), all properties are optional (none exist)
|
|
82
|
+
// - Use HasRequiredProperty which properly handles intersection types
|
|
83
|
+
// - If HasRequiredProperty<T> is false, then all properties are optional
|
|
84
|
+
export type AreAllOptional<T> = [T] extends [{}]
|
|
85
|
+
? keyof T extends never
|
|
86
|
+
? true // T is {} - no properties, so all are "optional" (none exist)
|
|
87
|
+
: HasRequiredProperty<T> extends true
|
|
88
|
+
? false // T has at least one required property
|
|
89
|
+
: true // T has no required properties, so all are optional
|
|
90
|
+
: false;
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type {
|
|
2
|
+
AreAllOptional,
|
|
2
3
|
Constructable,
|
|
3
4
|
DeepPartial,
|
|
4
5
|
DeepWriteable,
|
|
@@ -41,9 +42,13 @@ export type {
|
|
|
41
42
|
InferEventsOutput,
|
|
42
43
|
InferIOAuthorize,
|
|
43
44
|
InferIOAuthorizeUser,
|
|
45
|
+
InferIOCrdt,
|
|
44
46
|
InferIOCrdtKind,
|
|
47
|
+
InferIOEvents,
|
|
45
48
|
InferIOInput,
|
|
46
49
|
InferIOOutput,
|
|
50
|
+
InferIOProcedureInput,
|
|
51
|
+
InferIOProcedureOutput,
|
|
47
52
|
InputZodLike,
|
|
48
53
|
IOAuthorize,
|
|
49
54
|
IOAuthorizeEventMessage,
|
package/src/pluv/shared.ts
CHANGED
|
@@ -86,7 +86,11 @@ export type GetEventMessage<
|
|
|
86
86
|
> = TEvent extends string ? EventMessage<TEvent, T[TEvent]> : never;
|
|
87
87
|
|
|
88
88
|
export type InferIOAuthorize<TIO extends IOLike<any, any, any>> =
|
|
89
|
-
TIO extends IOLike<infer IAuthorize, any, any>
|
|
89
|
+
TIO extends IOLike<infer IAuthorize, any, any>
|
|
90
|
+
? InferIOAuthorizeUser<IAuthorize> extends BaseUser
|
|
91
|
+
? { user: InputZodLike<InferIOAuthorizeUser<IAuthorize>> }
|
|
92
|
+
: null
|
|
93
|
+
: never;
|
|
90
94
|
|
|
91
95
|
export type InferIOAuthorizeUser<TAuthorize extends IOAuthorize<any, any> | null> =
|
|
92
96
|
TAuthorize extends IOAuthorize<infer IUser, any> ? IUser : null;
|
|
@@ -108,7 +112,7 @@ export type IOAuthorize<
|
|
|
108
112
|
| ((context: TContext) => TUser extends BaseUser
|
|
109
113
|
? {
|
|
110
114
|
secret?: string;
|
|
111
|
-
user:
|
|
115
|
+
user: InputZodLike<TUser>;
|
|
112
116
|
}
|
|
113
117
|
: null);
|
|
114
118
|
|
|
@@ -118,7 +122,7 @@ export type IOAuthorizeEventMessage<TIO extends IOLike> = {
|
|
|
118
122
|
};
|
|
119
123
|
|
|
120
124
|
export type ProcedureLike<
|
|
121
|
-
TInput extends
|
|
125
|
+
TInput extends Record<string, any> = {},
|
|
122
126
|
TOutput extends EventRecord<string, any> = {},
|
|
123
127
|
> = {
|
|
124
128
|
config: {
|
|
@@ -157,15 +161,34 @@ export type InferIOCrdtKind<TIO extends IOLike<any, any, any>> =
|
|
|
157
161
|
: never
|
|
158
162
|
: never;
|
|
159
163
|
|
|
164
|
+
export type InferIOCrdt<TIO extends IOLike<any, any, any>> =
|
|
165
|
+
TIO extends IOLike<any, infer ICrdt, any> ? ICrdt : never;
|
|
166
|
+
|
|
167
|
+
export type InferIOEvents<TIO extends IOLike<any, any, any>> =
|
|
168
|
+
TIO extends IOLike<any, any, infer IEvents>
|
|
169
|
+
? {
|
|
170
|
+
[P in keyof IEvents]: ProcedureLike<
|
|
171
|
+
InferIOProcedureInput<IEvents[P]>,
|
|
172
|
+
InferIOProcedureOutput<IEvents[P]>
|
|
173
|
+
>;
|
|
174
|
+
}
|
|
175
|
+
: never;
|
|
176
|
+
|
|
177
|
+
export type InferIOProcedureInput<TProcedure extends ProcedureLike<any, any>> =
|
|
178
|
+
TProcedure extends ProcedureLike<infer IInput, any> ? Id<IInput> : never;
|
|
179
|
+
|
|
180
|
+
export type InferIOProcedureOutput<TProcedure extends ProcedureLike<any, any>> =
|
|
181
|
+
TProcedure extends ProcedureLike<any, infer IOutput> ? Id<IOutput> : never;
|
|
182
|
+
|
|
160
183
|
export type InferEventsInput<TEvents extends Record<string, ProcedureLike<any, any>>> = {
|
|
161
|
-
[P in keyof TEvents]: TEvents[P] extends ProcedureLike<infer IInput, any> ? IInput : never;
|
|
184
|
+
[P in keyof TEvents]: TEvents[P] extends ProcedureLike<infer IInput, any> ? Id<IInput> : never;
|
|
162
185
|
};
|
|
163
186
|
|
|
164
187
|
export type InferEventsOutput<TEvents extends Record<string, ProcedureLike<any, any>>> =
|
|
165
188
|
UnionToIntersection<
|
|
166
189
|
{
|
|
167
190
|
[P in keyof TEvents]: TEvents[P] extends ProcedureLike<any, infer IOutput>
|
|
168
|
-
? IOutput
|
|
191
|
+
? Id<IOutput>
|
|
169
192
|
: never;
|
|
170
193
|
}[keyof TEvents]
|
|
171
194
|
>;
|
package/tsdown.config.ts
ADDED
package/dist/index.d.ts
DELETED
|
@@ -1,379 +0,0 @@
|
|
|
1
|
-
import { Subject } from 'wonka';
|
|
2
|
-
|
|
3
|
-
type Constructable = {
|
|
4
|
-
new (...args: any[]): any;
|
|
5
|
-
};
|
|
6
|
-
type HasRequiredProperty<T> = {
|
|
7
|
-
[K in keyof T]-?: {} extends Pick<T, K> ? never : K;
|
|
8
|
-
}[keyof T] extends never ? false : true;
|
|
9
|
-
type Maybe<T> = T | Nil;
|
|
10
|
-
type MaybePromise<T> = Promise<T> | T;
|
|
11
|
-
type MaybeReadonlyArray<T> = T[] | readonly T[];
|
|
12
|
-
type Nil = null | undefined;
|
|
13
|
-
type OptionalPropertyNames<T> = {
|
|
14
|
-
[K in keyof T]-?: {} extends {
|
|
15
|
-
[P in K]: T[K];
|
|
16
|
-
} ? K : never;
|
|
17
|
-
}[keyof T];
|
|
18
|
-
type SpreadProperties<L, R, K extends keyof L & keyof R> = {
|
|
19
|
-
[P in K]: L[P] | Exclude<R[P], undefined>;
|
|
20
|
-
};
|
|
21
|
-
type Id<T> = T extends Nil ? T : T extends infer U ? U extends Constructable ? U : {
|
|
22
|
-
[K in keyof U]: U[K];
|
|
23
|
-
} : never;
|
|
24
|
-
type SpreadTwo<L, R> = Id<Pick<L, Exclude<keyof L, keyof R>> & Pick<R, Exclude<keyof R, OptionalPropertyNames<R>>> & Pick<R, Exclude<OptionalPropertyNames<R>, keyof L>> & SpreadProperties<L, R, OptionalPropertyNames<R> & keyof L>>;
|
|
25
|
-
type Spread<A extends readonly [...any]> = A extends [infer L, ...infer R] ? SpreadTwo<L, Spread<R>> : unknown;
|
|
26
|
-
type DeepPartial<T> = {
|
|
27
|
-
[P in keyof T]?: T[P] extends Array<infer U> ? Array<DeepPartial<U>> : T[P] extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : DeepPartial<T[P]>;
|
|
28
|
-
};
|
|
29
|
-
type DeepWriteable<T> = {
|
|
30
|
-
-readonly [P in keyof T]: DeepWriteable<T[P]>;
|
|
31
|
-
};
|
|
32
|
-
type UndefinedProps<T extends Record<string, any>, K extends keyof T = keyof T> = Id<{
|
|
33
|
-
[P in K]?: undefined;
|
|
34
|
-
} & {
|
|
35
|
-
[P in Exclude<keyof T, K>]: T[P];
|
|
36
|
-
}>;
|
|
37
|
-
type OptionalProps<T extends Record<string, any>, K extends keyof T = keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
38
|
-
type NonNilProps<T extends Record<string, any>, K extends keyof T = keyof T> = Omit<T, K> & {
|
|
39
|
-
[P in K]-?: NonNullable<T[P]>;
|
|
40
|
-
};
|
|
41
|
-
type JsonPrimitive = string | number | boolean | null;
|
|
42
|
-
type Json = JsonPrimitive | Json[] | readonly Json[] | {
|
|
43
|
-
[key: string]: Json;
|
|
44
|
-
};
|
|
45
|
-
type JsonObject = Record<string, Json>;
|
|
46
|
-
type UnionToIntersection<U> = (U extends any ? (arg: U) => any : never) extends (arg: infer I) => void ? I : never;
|
|
47
|
-
|
|
48
|
-
interface CrdtDocFactory<TDoc extends any, TStorage extends Record<string, CrdtType<any, any>>> {
|
|
49
|
-
_initialStorage: (builder: any) => TStorage;
|
|
50
|
-
getEmpty(): CrdtDocLike<TDoc, TStorage>;
|
|
51
|
-
getFactory(initialStorage?: (builder: any) => TStorage): CrdtDocFactory<TDoc, TStorage>;
|
|
52
|
-
getInitialized(initialStorage?: (builder: any) => TStorage): CrdtDocLike<TDoc, TStorage>;
|
|
53
|
-
isEmpty(initialStorage: Maybe<string>): boolean;
|
|
54
|
-
}
|
|
55
|
-
interface CrdtLibraryType<TDoc extends CrdtDocFactory<any, any> = CrdtDocFactory<any, any>> {
|
|
56
|
-
doc: (value: any) => TDoc;
|
|
57
|
-
kind: "loro" | "yjs";
|
|
58
|
-
}
|
|
59
|
-
type CrdtType<TValue extends unknown, TJson extends unknown = any> = Omit<TValue, "__pluvType"> & {
|
|
60
|
-
__pluvType: () => TJson;
|
|
61
|
-
};
|
|
62
|
-
type InferCrdtJson<T extends unknown> = T extends CrdtType<any, infer IJson> ? InferCrdtJson<IJson> : T extends Record<string, any> ? {
|
|
63
|
-
[P in keyof T]: InferCrdtJson<T[P]>;
|
|
64
|
-
} : T extends (infer IJson)[] ? InferCrdtJson<IJson>[] : T extends readonly (infer IJson)[] ? readonly InferCrdtJson<IJson>[] : T extends Json ? T : string;
|
|
65
|
-
interface DocApplyEncodedStateParams {
|
|
66
|
-
origin?: string;
|
|
67
|
-
update?: Maybe<string | Uint8Array>;
|
|
68
|
-
}
|
|
69
|
-
interface DocBatchApplyEncodedStateParams {
|
|
70
|
-
origin?: string;
|
|
71
|
-
updates?: Maybe<readonly Maybe<string | Uint8Array>[]>;
|
|
72
|
-
}
|
|
73
|
-
interface DocSubscribeCallbackParams<TDoc extends any, TStorage extends Record<string, CrdtType<any, any>>> {
|
|
74
|
-
doc: CrdtDocLike<TDoc, TStorage>;
|
|
75
|
-
local: boolean;
|
|
76
|
-
origin?: string | null;
|
|
77
|
-
update: string;
|
|
78
|
-
}
|
|
79
|
-
interface CrdtDocLike<TDoc extends any, TStorage extends Record<string, CrdtType<any, any>>> {
|
|
80
|
-
value: TDoc;
|
|
81
|
-
applyEncodedState(params: DocApplyEncodedStateParams): this;
|
|
82
|
-
batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this;
|
|
83
|
-
canRedo(): boolean;
|
|
84
|
-
canUndo(): boolean;
|
|
85
|
-
destroy(): void;
|
|
86
|
-
get(key?: undefined): TStorage;
|
|
87
|
-
get<TKey extends keyof TStorage>(key: TKey): TStorage[TKey];
|
|
88
|
-
getEncodedState(): string;
|
|
89
|
-
isEmpty(): boolean;
|
|
90
|
-
rebuildStorage(reference: TStorage): this;
|
|
91
|
-
redo(): this;
|
|
92
|
-
subscribe(listener: (params: DocSubscribeCallbackParams<TDoc, TStorage>) => void): () => void;
|
|
93
|
-
toJson(): InferCrdtJson<TStorage>;
|
|
94
|
-
toJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]>;
|
|
95
|
-
track(): this;
|
|
96
|
-
transact(fn: () => void, origin?: string): this;
|
|
97
|
-
undo(): this;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
declare const ConnectionState: {
|
|
101
|
-
readonly Closed: "closed";
|
|
102
|
-
readonly Connecting: "connecting";
|
|
103
|
-
readonly Open: "open";
|
|
104
|
-
readonly Unavailable: "unavailable";
|
|
105
|
-
readonly Untouched: "untouched";
|
|
106
|
-
};
|
|
107
|
-
type ConnectionState = (typeof ConnectionState)[keyof typeof ConnectionState];
|
|
108
|
-
declare const StorageState: {
|
|
109
|
-
Loading: string;
|
|
110
|
-
Offline: string;
|
|
111
|
-
Synced: string;
|
|
112
|
-
Unavailable: string;
|
|
113
|
-
};
|
|
114
|
-
type StorageState = (typeof StorageState)[keyof typeof StorageState];
|
|
115
|
-
|
|
116
|
-
type BaseUser = {
|
|
117
|
-
id: string;
|
|
118
|
-
};
|
|
119
|
-
interface BaseClientEventRecord {
|
|
120
|
-
$getOthers: {};
|
|
121
|
-
$initializeSession: {
|
|
122
|
-
presence: JsonObject;
|
|
123
|
-
update: string | null;
|
|
124
|
-
};
|
|
125
|
-
$ping: {};
|
|
126
|
-
$updatePresence: {
|
|
127
|
-
presence: JsonObject;
|
|
128
|
-
};
|
|
129
|
-
$updateStorage: {
|
|
130
|
-
origin: string | null;
|
|
131
|
-
update: string;
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
type BaseClientMessage = InferEventMessage<BaseClientEventRecord>;
|
|
135
|
-
type BaseIOEventRecord<TAuthorize extends IOAuthorize<any, any>> = {
|
|
136
|
-
$error: {
|
|
137
|
-
message: string;
|
|
138
|
-
stack?: string | null;
|
|
139
|
-
};
|
|
140
|
-
$exit: {
|
|
141
|
-
sessionId: string;
|
|
142
|
-
};
|
|
143
|
-
$othersReceived: {
|
|
144
|
-
others: {
|
|
145
|
-
[connectionId: string]: {
|
|
146
|
-
connectionId: string;
|
|
147
|
-
presence: JsonObject | null;
|
|
148
|
-
room: string | null;
|
|
149
|
-
timers: {
|
|
150
|
-
presence: number | null;
|
|
151
|
-
};
|
|
152
|
-
user: Id<InferIOAuthorizeUser<TAuthorize>>;
|
|
153
|
-
};
|
|
154
|
-
};
|
|
155
|
-
};
|
|
156
|
-
$pong: {};
|
|
157
|
-
$presenceUpdated: {
|
|
158
|
-
presence: JsonObject;
|
|
159
|
-
timers: {
|
|
160
|
-
presence: number | null;
|
|
161
|
-
};
|
|
162
|
-
};
|
|
163
|
-
$registered: {
|
|
164
|
-
presence: JsonObject | null;
|
|
165
|
-
sessionId: string;
|
|
166
|
-
state: string | null;
|
|
167
|
-
timers: {
|
|
168
|
-
presence: number | null;
|
|
169
|
-
};
|
|
170
|
-
};
|
|
171
|
-
$storageReceived: {
|
|
172
|
-
changeKind: "empty" | "initialized" | "unchanged";
|
|
173
|
-
state: string;
|
|
174
|
-
};
|
|
175
|
-
$storageUpdated: {
|
|
176
|
-
state: string;
|
|
177
|
-
};
|
|
178
|
-
$syncStateReceived: {
|
|
179
|
-
connectionIds: readonly string[];
|
|
180
|
-
};
|
|
181
|
-
$userJoined: {
|
|
182
|
-
connectionId: string;
|
|
183
|
-
presence: JsonObject;
|
|
184
|
-
timers: {
|
|
185
|
-
presence: number | null;
|
|
186
|
-
};
|
|
187
|
-
user: NonNullable<Id<InferIOAuthorizeUser<TAuthorize>>>;
|
|
188
|
-
};
|
|
189
|
-
};
|
|
190
|
-
interface EventMessage<TEvent extends string, TData extends JsonObject = {}> {
|
|
191
|
-
data: TData;
|
|
192
|
-
type: TEvent;
|
|
193
|
-
}
|
|
194
|
-
type EventRecord<TEvent extends string, TData extends JsonObject> = {
|
|
195
|
-
[key in `${TEvent}`]: TData;
|
|
196
|
-
};
|
|
197
|
-
type GetEventMessage<T extends EventRecord<string, any>, TEvent extends keyof T> = TEvent extends string ? EventMessage<TEvent, T[TEvent]> : never;
|
|
198
|
-
type InferIOAuthorize<TIO extends IOLike<any, any, any>> = TIO extends IOLike<infer IAuthorize, any, any> ? IAuthorize : never;
|
|
199
|
-
type InferIOAuthorizeUser<TAuthorize extends IOAuthorize<any, any> | null> = TAuthorize extends IOAuthorize<infer IUser, any> ? IUser : null;
|
|
200
|
-
type InputZodLike<TData extends JsonObject> = {
|
|
201
|
-
parse: (data: unknown) => TData;
|
|
202
|
-
} & ({
|
|
203
|
-
_input: TData;
|
|
204
|
-
} | {
|
|
205
|
-
_zod: {
|
|
206
|
-
input: TData;
|
|
207
|
-
};
|
|
208
|
-
});
|
|
209
|
-
type IOAuthorize<TUser extends BaseUser | null = any, TContext extends Record<string, unknown> = {}> = (TUser extends BaseUser ? {
|
|
210
|
-
secret?: string;
|
|
211
|
-
user: InputZodLike<TUser>;
|
|
212
|
-
} : null) | ((context: TContext) => TUser extends BaseUser ? {
|
|
213
|
-
secret?: string;
|
|
214
|
-
user: TUser extends BaseUser ? InputZodLike<TUser> : null;
|
|
215
|
-
} : null);
|
|
216
|
-
type IOAuthorizeEventMessage<TIO extends IOLike> = {
|
|
217
|
-
connectionId: string;
|
|
218
|
-
user: InferIOAuthorizeUser<InferIOAuthorize<TIO>>;
|
|
219
|
-
};
|
|
220
|
-
type ProcedureLike<TInput extends JsonObject = {}, TOutput extends EventRecord<string, any> = {}> = {
|
|
221
|
-
config: {
|
|
222
|
-
broadcast?: ((data: TInput, ...args: any[]) => MaybePromise<Partial<TOutput> | void>) | null;
|
|
223
|
-
input?: InputZodLike<TInput> | null;
|
|
224
|
-
resolver: (data: TInput, ...args: any[]) => MaybePromise<TOutput>;
|
|
225
|
-
self?: ((data: TInput, ...args: any[]) => MaybePromise<Partial<TOutput> | void>) | null;
|
|
226
|
-
sync?: ((data: TInput, ...args: any[]) => MaybePromise<Partial<TOutput> | void>) | null;
|
|
227
|
-
};
|
|
228
|
-
};
|
|
229
|
-
interface IORouterLike<TEvents extends Record<string, ProcedureLike<any, any>> = {}> {
|
|
230
|
-
_defs: {
|
|
231
|
-
events: TEvents;
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
interface IOLike<TAuthorize extends IOAuthorize<any, any> | null = null, TCrdt extends CrdtLibraryType<any> = CrdtLibraryType<any>, TEvents extends Record<string, ProcedureLike<any, any>> = {}> extends IORouterLike<TEvents> {
|
|
235
|
-
_defs: {
|
|
236
|
-
authorize: TAuthorize;
|
|
237
|
-
crdt: TCrdt;
|
|
238
|
-
events: TEvents;
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
type InferIOCrdtKind<TIO extends IOLike<any, any, any>> = TIO extends IOLike<any, infer ICrdt, any> ? ICrdt extends CrdtLibraryType<infer IDoc> ? IDoc : never : never;
|
|
242
|
-
type InferEventsInput<TEvents extends Record<string, ProcedureLike<any, any>>> = {
|
|
243
|
-
[P in keyof TEvents]: TEvents[P] extends ProcedureLike<infer IInput, any> ? IInput : never;
|
|
244
|
-
};
|
|
245
|
-
type InferEventsOutput<TEvents extends Record<string, ProcedureLike<any, any>>> = UnionToIntersection<{
|
|
246
|
-
[P in keyof TEvents]: TEvents[P] extends ProcedureLike<any, infer IOutput> ? IOutput : never;
|
|
247
|
-
}[keyof TEvents]>;
|
|
248
|
-
type InferIOInput<TRouter extends IORouterLike<any>> = TRouter extends IORouterLike<infer IEvents> ? InferEventsInput<IEvents> : never;
|
|
249
|
-
type InferIOOutput<TRouter extends IORouterLike<any>> = TRouter extends IORouterLike<infer IEvents> ? InferEventsOutput<IEvents> : never;
|
|
250
|
-
type InferEventMessage<TEvents = EventRecord<string, any>, TEvent extends keyof TEvents = keyof TEvents> = TEvents extends EventRecord<string, any> ? {
|
|
251
|
-
[P in TEvent]: P extends string ? Id<EventMessage<P, TEvents[P]>> : never;
|
|
252
|
-
}[TEvent] : never;
|
|
253
|
-
type IOEventMessage<TIO extends IOLike<any, any, any>, TEvent extends keyof InferIOOutput<TIO> = keyof InferIOOutput<TIO>> = Id<{
|
|
254
|
-
room: string;
|
|
255
|
-
} & InferEventMessage<InferIOOutput<TIO>, TEvent> & (InferEventMessage<InferIOOutput<TIO>, TEvent>["type"] extends "$error" ? Partial<IOAuthorizeEventMessage<TIO>> : IOAuthorizeEventMessage<TIO>)>;
|
|
256
|
-
type PluvRouterEventConfig = {
|
|
257
|
-
[P: string]: Pick<ProcedureLike<any, any>, "config">;
|
|
258
|
-
};
|
|
259
|
-
type MergeEvents<TClientEvents extends PluvRouterEventConfig, TServerIO extends IOLike<any, any, any>> = TServerIO extends IOLike<infer IAuthorize, infer ICrdt, infer IServerEvents> ? IOLike<IAuthorize, ICrdt, {
|
|
260
|
-
[P in keyof TClientEvents]: TClientEvents[P] extends ProcedureLike<infer IClientInput, infer IClientOutput> ? {
|
|
261
|
-
[K in keyof IClientOutput]: K extends keyof IServerEvents ? IServerEvents[K] : ProcedureLike<IClientInput, Id<Pick<IClientOutput, K>>>;
|
|
262
|
-
}[keyof IClientOutput] : never;
|
|
263
|
-
} & IServerEvents> : never;
|
|
264
|
-
|
|
265
|
-
interface AuthorizationState<TIO extends IOLike> {
|
|
266
|
-
token: string | null;
|
|
267
|
-
user: Id<InferIOAuthorizeUser<InferIOAuthorize<TIO>>> | null;
|
|
268
|
-
}
|
|
269
|
-
type OtherSubscriptionCallback<TIO extends IOLike, TPresence extends Record<string, any>> = (value: Id<UserInfo<TIO, TPresence>> | null) => void;
|
|
270
|
-
type OtherSubscriptionFn<TIO extends IOLike, TPresence extends Record<string, any>> = (connectionId: string, callback: OtherSubscriptionCallback<TIO, TPresence>) => () => void;
|
|
271
|
-
type OthersSubscriptionEvent<TIO extends IOLike, TPresence extends Record<string, any>> = {
|
|
272
|
-
kind: "clear";
|
|
273
|
-
} | {
|
|
274
|
-
kind: "enter";
|
|
275
|
-
user: Id<UserInfo<TIO, TPresence>>;
|
|
276
|
-
} | {
|
|
277
|
-
kind: "leave";
|
|
278
|
-
user: Id<UserInfo<TIO, TPresence>>;
|
|
279
|
-
} | {
|
|
280
|
-
kind: "sync";
|
|
281
|
-
users: readonly Id<UserInfo<TIO, TPresence>>[];
|
|
282
|
-
} | {
|
|
283
|
-
kind: "update";
|
|
284
|
-
user: Id<UserInfo<TIO, TPresence>>;
|
|
285
|
-
};
|
|
286
|
-
type OthersSubscriptionCallback<TIO extends IOLike, TPresence extends Record<string, any>> = (value: readonly Id<UserInfo<TIO, TPresence>>[], event: OthersSubscriptionEvent<TIO, TPresence>) => void;
|
|
287
|
-
type OthersSubscriptionFn<TIO extends IOLike, TPresence extends Record<string, any>> = (callback: OthersSubscriptionCallback<TIO, TPresence>) => () => void;
|
|
288
|
-
interface StateNotifierSubjects<TIO extends IOLike, TPresence extends Record<string, any>> {
|
|
289
|
-
connection: Subject<Id<WebSocketState<TIO>>>;
|
|
290
|
-
"my-presence": Subject<TPresence | null>;
|
|
291
|
-
myself: Subject<Readonly<Id<UserInfo<TIO, TPresence>>> | null>;
|
|
292
|
-
others: Subject<readonly Id<UserInfo<TIO, TPresence>>[]>;
|
|
293
|
-
"storage-loaded": Subject<boolean>;
|
|
294
|
-
}
|
|
295
|
-
type InferSubjectValue<TIO extends IOLike, TPresence extends Record<string, any>, TSubject extends keyof StateNotifierSubjects<TIO, TPresence>> = StateNotifierSubjects<TIO, TPresence>[TSubject] extends Subject<infer IValue> ? Id<IValue> : never;
|
|
296
|
-
type SubscriptionCallback<TIO extends IOLike, TPresence extends Record<string, any>, TSubject extends keyof StateNotifierSubjects<TIO, TPresence>> = (value: InferSubjectValue<TIO, TPresence, TSubject>) => void;
|
|
297
|
-
type UpdateMyPresenceAction<TPresence extends Record<string, any>> = Partial<TPresence> | ((oldPresence: TPresence | null) => Partial<TPresence>);
|
|
298
|
-
interface UserInfo<TIO extends IOLike, TPresence extends Record<string, any> = {}> {
|
|
299
|
-
connectionId: string;
|
|
300
|
-
presence: TPresence;
|
|
301
|
-
user: Id<InferIOAuthorizeUser<InferIOAuthorize<TIO>>>;
|
|
302
|
-
}
|
|
303
|
-
interface WebSocketConnection {
|
|
304
|
-
/**
|
|
305
|
-
* @description How many times a connection attempt was made. This will increment upon each
|
|
306
|
-
* unsuccessful attempt, and will reset upon a successful connection.
|
|
307
|
-
* @date April 13, 2025
|
|
308
|
-
*/
|
|
309
|
-
attempts: number;
|
|
310
|
-
id: string | null;
|
|
311
|
-
state: ConnectionState;
|
|
312
|
-
}
|
|
313
|
-
interface StorageInfo {
|
|
314
|
-
state: StorageState;
|
|
315
|
-
}
|
|
316
|
-
interface WebSocketState<TIO extends IOLike> {
|
|
317
|
-
authorization: AuthorizationState<TIO>;
|
|
318
|
-
connection: WebSocketConnection;
|
|
319
|
-
storage: StorageInfo;
|
|
320
|
-
webSocket: WebSocket | null;
|
|
321
|
-
}
|
|
322
|
-
type BroadcastProxy<TIO extends IOLike, TEvents extends PluvRouterEventConfig> = (<TEvent extends keyof InferIOInput<MergeEvents<TEvents, TIO>>>(event: TEvent, data: Id<InferIOInput<MergeEvents<TEvents, TIO>>[TEvent]>) => Promise<void>) & {
|
|
323
|
-
[PEvent in keyof InferIOInput<MergeEvents<TEvents, TIO>>]: (data: Id<InferIOInput<MergeEvents<TEvents, TIO>>[PEvent]>) => Promise<void>;
|
|
324
|
-
};
|
|
325
|
-
type EventNotifierSubscriptionCallback<TIO extends IOLike<any, any, any>, TEvent extends keyof InferIOOutput<TIO>> = (value: Id<IOEventMessage<TIO, TEvent>>) => void;
|
|
326
|
-
type EventSubscriptionFn<TIO extends IOLike, TEvents extends PluvRouterEventConfig> = <TEvent extends keyof InferIOOutput<MergeEvents<TEvents, TIO>>>(event: TEvent, callback: EventNotifierSubscriptionCallback<MergeEvents<TEvents, TIO>, TEvent>) => () => void;
|
|
327
|
-
type EventProxy<TIO extends IOLike, TEvents extends PluvRouterEventConfig> = EventSubscriptionFn<TIO, TEvents> & {
|
|
328
|
-
[PEvent in keyof InferIOOutput<MergeEvents<TEvents, TIO>>]: (callback: EventNotifierSubscriptionCallback<MergeEvents<TEvents, TIO>, PEvent>) => () => void;
|
|
329
|
-
};
|
|
330
|
-
type StorageSubscriptionCallback<TStorage extends Record<string, CrdtType<any, any>>, TKey extends keyof TStorage> = (value: InferCrdtJson<TStorage[TKey]>) => void;
|
|
331
|
-
type StorageSubscriptionFn<TStorage extends Record<string, CrdtType<any, any>>> = <TKey extends keyof TStorage>(key: TKey, fn: StorageSubscriptionCallback<TStorage, TKey>) => () => void;
|
|
332
|
-
type StorageRootSubscriptionCallback<TStorage extends Record<string, CrdtType<any, any>>> = (value: {
|
|
333
|
-
[P in keyof TStorage]: InferCrdtJson<TStorage[P]>;
|
|
334
|
-
}) => void;
|
|
335
|
-
type StorageRootSubscriptionFn<TStorage extends Record<string, CrdtType<any, any>>> = (callback: StorageRootSubscriptionCallback<TStorage>) => () => void;
|
|
336
|
-
type StorageProxy<TStorage extends Record<string, CrdtType<any, any>>> = StorageSubscriptionFn<TStorage> & StorageRootSubscriptionFn<TStorage> & {
|
|
337
|
-
[PKey in keyof TStorage]: (callback: StorageSubscriptionCallback<TStorage, PKey>) => () => void;
|
|
338
|
-
};
|
|
339
|
-
type SubscribeFn<TValue extends unknown> = (callback: (value: TValue) => void) => () => void;
|
|
340
|
-
type SubscribeProxy<TIO extends IOLike, TPresence extends Record<string, any>, TStorage extends Record<string, CrdtType<any, any>>, TEvents extends PluvRouterEventConfig> = (<TSubject extends keyof StateNotifierSubjects<TIO, TPresence>>(name: TSubject, callback: SubscriptionCallback<TIO, TPresence, TSubject>) => () => void) & {
|
|
341
|
-
connection: SubscribeFn<Id<WebSocketState<TIO>>>;
|
|
342
|
-
event: EventProxy<TIO, TEvents>;
|
|
343
|
-
myPresence: SubscribeFn<TPresence | null>;
|
|
344
|
-
myself: SubscribeFn<Id<UserInfo<TIO>> | null>;
|
|
345
|
-
other: OtherSubscriptionFn<TIO, TPresence>;
|
|
346
|
-
others: OthersSubscriptionFn<TIO, TPresence>;
|
|
347
|
-
storage: StorageProxy<TStorage>;
|
|
348
|
-
storageLoaded: SubscribeFn<boolean>;
|
|
349
|
-
};
|
|
350
|
-
interface RoomEventListenerMap {
|
|
351
|
-
close: (event: CloseEvent | null) => void;
|
|
352
|
-
error: (event: Event) => void;
|
|
353
|
-
message: (event: MessageEvent<any>) => void;
|
|
354
|
-
open: (event: Event) => void;
|
|
355
|
-
}
|
|
356
|
-
interface RoomLike<TIO extends IOLike, TDoc extends any, TPresence extends Record<string, any> = {}, TStorage extends Record<string, CrdtType<any, any>> = {}, TEvents extends PluvRouterEventConfig = {}> {
|
|
357
|
-
id: string;
|
|
358
|
-
broadcast: BroadcastProxy<TIO, TEvents>;
|
|
359
|
-
addEventListener<TKind extends keyof RoomEventListenerMap>(kind: TKind, handler: RoomEventListenerMap[TKind]): () => void;
|
|
360
|
-
canRedo(): boolean;
|
|
361
|
-
canUndo(): boolean;
|
|
362
|
-
getDoc(): CrdtDocLike<TDoc, TStorage>;
|
|
363
|
-
getConnection(): WebSocketConnection;
|
|
364
|
-
getMyPresence(): TPresence;
|
|
365
|
-
getMyself(): Id<UserInfo<TIO, TPresence>> | null;
|
|
366
|
-
getOther(connectionId: string): Id<UserInfo<TIO, TPresence>> | null;
|
|
367
|
-
getOthers(): readonly Id<UserInfo<TIO, TPresence>>[];
|
|
368
|
-
getStorage<TKey extends keyof TStorage>(type: TKey): TStorage[TKey] | null;
|
|
369
|
-
getStorageJson(): InferCrdtJson<TStorage> | null;
|
|
370
|
-
getStorageJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]> | null;
|
|
371
|
-
getStorageLoaded: () => boolean;
|
|
372
|
-
redo(): void;
|
|
373
|
-
subscribe: SubscribeProxy<TIO, TPresence, TStorage, TEvents>;
|
|
374
|
-
transact(fn: (storage: TStorage) => void, origin?: string): void;
|
|
375
|
-
undo(): void;
|
|
376
|
-
updateMyPresence(presence: UpdateMyPresenceAction<TPresence>): void;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
export { type BaseClientEventRecord, type BaseClientMessage, type BaseIOEventRecord, type BaseUser, type BroadcastProxy, ConnectionState, type Constructable, type CrdtDocFactory, type CrdtDocLike, type CrdtLibraryType, type CrdtType, type DeepPartial, type DeepWriteable, type DocApplyEncodedStateParams, type DocBatchApplyEncodedStateParams, type DocSubscribeCallbackParams, type EventMessage, type EventNotifierSubscriptionCallback, type EventProxy, type EventRecord, type GetEventMessage, type HasRequiredProperty, type IOAuthorize, type IOAuthorizeEventMessage, type IOEventMessage, type IOLike, type IORouterLike, type Id, type InferCrdtJson, type InferEventMessage, type InferEventsInput, type InferEventsOutput, type InferIOAuthorize, type InferIOAuthorizeUser, type InferIOCrdtKind, type InferIOInput, type InferIOOutput, type InputZodLike, type Json, type JsonObject, type JsonPrimitive, type Maybe, type MaybePromise, type MaybeReadonlyArray, type MergeEvents, type NonNilProps, type OptionalProps, type OtherSubscriptionCallback, type OtherSubscriptionFn, type OthersSubscriptionCallback, type OthersSubscriptionEvent, type OthersSubscriptionFn, type PluvRouterEventConfig, type ProcedureLike, type RoomEventListenerMap, type RoomLike, type Spread, type SpreadProperties, type StateNotifierSubjects, type StorageInfo, type StorageProxy, type StorageRootSubscriptionCallback, type StorageRootSubscriptionFn, StorageState, type StorageSubscriptionCallback, type StorageSubscriptionFn, type SubscribeFn, type SubscribeProxy, type SubscriptionCallback, type UndefinedProps, type UpdateMyPresenceAction, type UserInfo, type WebSocketConnection, type WebSocketState };
|
package/dist/index.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/index.ts
|
|
21
|
-
var index_exports = {};
|
|
22
|
-
__export(index_exports, {
|
|
23
|
-
ConnectionState: () => ConnectionState,
|
|
24
|
-
StorageState: () => StorageState
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(index_exports);
|
|
27
|
-
|
|
28
|
-
// src/pluv/enums.ts
|
|
29
|
-
var ConnectionState = {
|
|
30
|
-
Closed: "closed",
|
|
31
|
-
Connecting: "connecting",
|
|
32
|
-
Open: "open",
|
|
33
|
-
Unavailable: "unavailable",
|
|
34
|
-
Untouched: "untouched"
|
|
35
|
-
};
|
|
36
|
-
var StorageState = {
|
|
37
|
-
Loading: "loading",
|
|
38
|
-
Offline: "offline",
|
|
39
|
-
Synced: "synced",
|
|
40
|
-
Unavailable: "unavailable"
|
|
41
|
-
};
|
|
42
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
-
0 && (module.exports = {
|
|
44
|
-
ConnectionState,
|
|
45
|
-
StorageState
|
|
46
|
-
});
|