@pluv/types 0.16.2 → 0.17.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 +6 -6
- package/CHANGELOG.md +52 -0
- package/dist/index.d.mts +11 -7
- package/dist/index.d.ts +11 -7
- package/package.json +3 -3
- package/src/pluv.ts +22 -12
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @pluv/types@0.
|
|
2
|
+
> @pluv/types@0.17.0 build /home/runner/work/pluv/pluv/packages/types
|
|
3
3
|
> tsup src/index.ts --format esm,cjs --dts
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
[34mESM[39m Build start
|
|
10
10
|
[34mCJS[39m Build start
|
|
11
11
|
[32mCJS[39m [1mdist/index.js [22m[32m754.00 B[39m
|
|
12
|
-
[32mCJS[39m ⚡️ Build success in
|
|
12
|
+
[32mCJS[39m ⚡️ Build success in 31ms
|
|
13
13
|
[32mESM[39m [1mdist/index.mjs [22m[32m0 B[39m
|
|
14
|
-
[32mESM[39m ⚡️ Build success in
|
|
14
|
+
[32mESM[39m ⚡️ Build success in 31ms
|
|
15
15
|
[34mDTS[39m Build start
|
|
16
|
-
[32mDTS[39m ⚡️ Build success in
|
|
17
|
-
[32mDTS[39m [1mdist/index.d.mts [22m[32m7.
|
|
18
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[32m7.
|
|
16
|
+
[32mDTS[39m ⚡️ Build success in 927ms
|
|
17
|
+
[32mDTS[39m [1mdist/index.d.mts [22m[32m7.36 KB[39m
|
|
18
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m7.36 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# @pluv/types
|
|
2
2
|
|
|
3
|
+
## 0.17.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 507bc00: _BREAKING_: The `authorize` config when calling `createIO` can now also be a function that exposes the platform context.
|
|
8
|
+
This allows accessing the `env` in Cloudflare workers.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
import { createIO } from "@pluv/io";
|
|
12
|
+
import { platformCloudflare } from "@pluv/platform-cloudflare";
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
|
|
15
|
+
const io = createIO({
|
|
16
|
+
authorize: ({ env }) => ({
|
|
17
|
+
required: true,
|
|
18
|
+
secret: env.PLUV_AUTHORIZE_SECRET,
|
|
19
|
+
user: z.object({
|
|
20
|
+
id: z.string(),
|
|
21
|
+
name: z.string(),
|
|
22
|
+
}),
|
|
23
|
+
}),
|
|
24
|
+
platform: platformCloudflare<{ PLUV_AUTHORIZE_SECRET: string }>(),
|
|
25
|
+
// ...
|
|
26
|
+
});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This also requires that the platform contexts are passed to `io.createToken`.
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
// If using `platformNode`
|
|
33
|
+
await io.createToken({
|
|
34
|
+
req, // This `IncomingMessage` is now required
|
|
35
|
+
room,
|
|
36
|
+
user: {
|
|
37
|
+
id: "user_123",
|
|
38
|
+
name: "john doe",
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// If using `platformCloudflare`
|
|
43
|
+
await io.createToken({
|
|
44
|
+
env, // This env is now required from the handler's fetch function
|
|
45
|
+
room,
|
|
46
|
+
user: {
|
|
47
|
+
id: "user_123",
|
|
48
|
+
name: "john doe",
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 0.16.3
|
|
54
|
+
|
|
3
55
|
## 0.16.2
|
|
4
56
|
|
|
5
57
|
## 0.16.1
|
package/dist/index.d.mts
CHANGED
|
@@ -60,7 +60,7 @@ interface BaseIOAuthorize {
|
|
|
60
60
|
secret: string;
|
|
61
61
|
user: InputZodLike<BaseUser>;
|
|
62
62
|
}
|
|
63
|
-
interface BaseIOAuthorizeEventRecord<TAuthorize extends IOAuthorize<any, any>> {
|
|
63
|
+
interface BaseIOAuthorizeEventRecord<TAuthorize extends IOAuthorize<any, any, any>> {
|
|
64
64
|
$OTHERS_RECEIVED: {
|
|
65
65
|
others: {
|
|
66
66
|
[connectionId: string]: {
|
|
@@ -77,7 +77,7 @@ interface BaseIOAuthorizeEventRecord<TAuthorize extends IOAuthorize<any, any>> {
|
|
|
77
77
|
presence: JsonObject;
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
type BaseIOEventRecord<TAuthorize extends IOAuthorize<any, any>> = BaseIOAuthorizeEventRecord<TAuthorize> & {
|
|
80
|
+
type BaseIOEventRecord<TAuthorize extends IOAuthorize<any, any, any>> = BaseIOAuthorizeEventRecord<TAuthorize> & {
|
|
81
81
|
$ERROR: {
|
|
82
82
|
message: string;
|
|
83
83
|
stack?: string | null;
|
|
@@ -111,8 +111,8 @@ type InferEventMessage<TEvents extends EventRecord<string, any> = EventRecord<st
|
|
|
111
111
|
[P in TEvent]: P extends string ? Id<EventMessage<P, TEvents[P]>> : never;
|
|
112
112
|
}[TEvent];
|
|
113
113
|
type InferIOAuthorize<TIO extends IOLike> = TIO extends IOLike<infer IAuthorize> ? IAuthorize : never;
|
|
114
|
-
type InferIOAuthorizeRequired<TAuthorize extends IOAuthorize<any, any>> = TAuthorize extends IOAuthorize<any, infer IRequired> ? IRequired : never;
|
|
115
|
-
type InferIOAuthorizeUser<TAuthorize extends IOAuthorize<any, any>> = TAuthorize extends IOAuthorize<infer IUser, infer IRequired> ? IRequired extends true ? IUser : IUser | null : never;
|
|
114
|
+
type InferIOAuthorizeRequired<TAuthorize extends IOAuthorize<any, any, any>> = TAuthorize extends IOAuthorize<any, infer IRequired> ? IRequired : never;
|
|
115
|
+
type InferIOAuthorizeUser<TAuthorize extends IOAuthorize<any, any, any>> = TAuthorize extends IOAuthorize<infer IUser, infer IRequired> ? IRequired extends true ? IUser : IUser | null : never;
|
|
116
116
|
type InferIOInput<TIO extends IOLike> = TIO extends IOLike<any, infer IInput> ? IInput : never;
|
|
117
117
|
type InferIOOutput<TIO extends IOLike> = TIO extends IOLike<any, any, infer IOutputBroadcast, infer IOutputSelf, infer IOutputSync> ? Spread<[IOutputBroadcast, IOutputSelf, IOutputSync]> : never;
|
|
118
118
|
type InferIOOutputBroadcast<TIO extends IOLike> = TIO extends IOLike<any, any, infer IOutput> ? IOutput : never;
|
|
@@ -122,11 +122,15 @@ type InputZodLike<TData extends JsonObject> = {
|
|
|
122
122
|
_input: TData;
|
|
123
123
|
parse: (data: unknown) => TData;
|
|
124
124
|
};
|
|
125
|
-
|
|
125
|
+
type IOAuthorize<TUser extends BaseUser = any, TRequired extends boolean = false, TContext extends Record<string, unknown> = {}> = {
|
|
126
126
|
required: TRequired;
|
|
127
127
|
secret: string;
|
|
128
128
|
user: InputZodLike<TUser>;
|
|
129
|
-
}
|
|
129
|
+
} | ((context: TContext) => {
|
|
130
|
+
required: TRequired;
|
|
131
|
+
secret: string;
|
|
132
|
+
user: InputZodLike<TUser>;
|
|
133
|
+
});
|
|
130
134
|
type IOAuthorizeEventMessage<TIO extends IOLike> = InferIOAuthorizeRequired<InferIOAuthorize<TIO>> extends false ? IOAuthorizeOptionalEventMessage<TIO> : IOAuthorizeRequiredEventMessage<TIO>;
|
|
131
135
|
interface IOAuthorizeOptionalEventMessage<TIO extends IOLike> {
|
|
132
136
|
connectionId: string | null;
|
|
@@ -136,7 +140,7 @@ type IOAuthorizeRequiredEventMessage<TIO extends IOLike> = NonNilProps<IOAuthori
|
|
|
136
140
|
type IOEventMessage<TIO extends IOLike, TEvent extends keyof InferIOOutput<TIO> = keyof InferIOOutput<TIO>> = Id<{
|
|
137
141
|
room: string;
|
|
138
142
|
} & InferEventMessage<InferIOOutput<TIO>, TEvent> & (InferEventMessage<InferIOOutput<TIO>, TEvent>["type"] extends "$ERROR" ? IOAuthorizeOptionalEventMessage<TIO> : IOAuthorizeEventMessage<TIO>)>;
|
|
139
|
-
interface IOLike<TAuthorize extends IOAuthorize<any, any> = IOAuthorize<any, any>, TInput extends EventRecord<string, any> = {}, TOutputBroadcast extends EventRecord<string, any> = {}, TOutputSelf extends EventRecord<string, any> = {}, TOutputSync extends EventRecord<string, any> = {}> {
|
|
143
|
+
interface IOLike<TAuthorize extends IOAuthorize<any, any, any> = IOAuthorize<any, any, any>, TInput extends EventRecord<string, any> = {}, TOutputBroadcast extends EventRecord<string, any> = {}, TOutputSelf extends EventRecord<string, any> = {}, TOutputSync extends EventRecord<string, any> = {}> {
|
|
140
144
|
_authorize: TAuthorize | null;
|
|
141
145
|
_events: {
|
|
142
146
|
[P in keyof TInput]: P extends string ? {
|
package/dist/index.d.ts
CHANGED
|
@@ -60,7 +60,7 @@ interface BaseIOAuthorize {
|
|
|
60
60
|
secret: string;
|
|
61
61
|
user: InputZodLike<BaseUser>;
|
|
62
62
|
}
|
|
63
|
-
interface BaseIOAuthorizeEventRecord<TAuthorize extends IOAuthorize<any, any>> {
|
|
63
|
+
interface BaseIOAuthorizeEventRecord<TAuthorize extends IOAuthorize<any, any, any>> {
|
|
64
64
|
$OTHERS_RECEIVED: {
|
|
65
65
|
others: {
|
|
66
66
|
[connectionId: string]: {
|
|
@@ -77,7 +77,7 @@ interface BaseIOAuthorizeEventRecord<TAuthorize extends IOAuthorize<any, any>> {
|
|
|
77
77
|
presence: JsonObject;
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
type BaseIOEventRecord<TAuthorize extends IOAuthorize<any, any>> = BaseIOAuthorizeEventRecord<TAuthorize> & {
|
|
80
|
+
type BaseIOEventRecord<TAuthorize extends IOAuthorize<any, any, any>> = BaseIOAuthorizeEventRecord<TAuthorize> & {
|
|
81
81
|
$ERROR: {
|
|
82
82
|
message: string;
|
|
83
83
|
stack?: string | null;
|
|
@@ -111,8 +111,8 @@ type InferEventMessage<TEvents extends EventRecord<string, any> = EventRecord<st
|
|
|
111
111
|
[P in TEvent]: P extends string ? Id<EventMessage<P, TEvents[P]>> : never;
|
|
112
112
|
}[TEvent];
|
|
113
113
|
type InferIOAuthorize<TIO extends IOLike> = TIO extends IOLike<infer IAuthorize> ? IAuthorize : never;
|
|
114
|
-
type InferIOAuthorizeRequired<TAuthorize extends IOAuthorize<any, any>> = TAuthorize extends IOAuthorize<any, infer IRequired> ? IRequired : never;
|
|
115
|
-
type InferIOAuthorizeUser<TAuthorize extends IOAuthorize<any, any>> = TAuthorize extends IOAuthorize<infer IUser, infer IRequired> ? IRequired extends true ? IUser : IUser | null : never;
|
|
114
|
+
type InferIOAuthorizeRequired<TAuthorize extends IOAuthorize<any, any, any>> = TAuthorize extends IOAuthorize<any, infer IRequired> ? IRequired : never;
|
|
115
|
+
type InferIOAuthorizeUser<TAuthorize extends IOAuthorize<any, any, any>> = TAuthorize extends IOAuthorize<infer IUser, infer IRequired> ? IRequired extends true ? IUser : IUser | null : never;
|
|
116
116
|
type InferIOInput<TIO extends IOLike> = TIO extends IOLike<any, infer IInput> ? IInput : never;
|
|
117
117
|
type InferIOOutput<TIO extends IOLike> = TIO extends IOLike<any, any, infer IOutputBroadcast, infer IOutputSelf, infer IOutputSync> ? Spread<[IOutputBroadcast, IOutputSelf, IOutputSync]> : never;
|
|
118
118
|
type InferIOOutputBroadcast<TIO extends IOLike> = TIO extends IOLike<any, any, infer IOutput> ? IOutput : never;
|
|
@@ -122,11 +122,15 @@ type InputZodLike<TData extends JsonObject> = {
|
|
|
122
122
|
_input: TData;
|
|
123
123
|
parse: (data: unknown) => TData;
|
|
124
124
|
};
|
|
125
|
-
|
|
125
|
+
type IOAuthorize<TUser extends BaseUser = any, TRequired extends boolean = false, TContext extends Record<string, unknown> = {}> = {
|
|
126
126
|
required: TRequired;
|
|
127
127
|
secret: string;
|
|
128
128
|
user: InputZodLike<TUser>;
|
|
129
|
-
}
|
|
129
|
+
} | ((context: TContext) => {
|
|
130
|
+
required: TRequired;
|
|
131
|
+
secret: string;
|
|
132
|
+
user: InputZodLike<TUser>;
|
|
133
|
+
});
|
|
130
134
|
type IOAuthorizeEventMessage<TIO extends IOLike> = InferIOAuthorizeRequired<InferIOAuthorize<TIO>> extends false ? IOAuthorizeOptionalEventMessage<TIO> : IOAuthorizeRequiredEventMessage<TIO>;
|
|
131
135
|
interface IOAuthorizeOptionalEventMessage<TIO extends IOLike> {
|
|
132
136
|
connectionId: string | null;
|
|
@@ -136,7 +140,7 @@ type IOAuthorizeRequiredEventMessage<TIO extends IOLike> = NonNilProps<IOAuthori
|
|
|
136
140
|
type IOEventMessage<TIO extends IOLike, TEvent extends keyof InferIOOutput<TIO> = keyof InferIOOutput<TIO>> = Id<{
|
|
137
141
|
room: string;
|
|
138
142
|
} & InferEventMessage<InferIOOutput<TIO>, TEvent> & (InferEventMessage<InferIOOutput<TIO>, TEvent>["type"] extends "$ERROR" ? IOAuthorizeOptionalEventMessage<TIO> : IOAuthorizeEventMessage<TIO>)>;
|
|
139
|
-
interface IOLike<TAuthorize extends IOAuthorize<any, any> = IOAuthorize<any, any>, TInput extends EventRecord<string, any> = {}, TOutputBroadcast extends EventRecord<string, any> = {}, TOutputSelf extends EventRecord<string, any> = {}, TOutputSync extends EventRecord<string, any> = {}> {
|
|
143
|
+
interface IOLike<TAuthorize extends IOAuthorize<any, any, any> = IOAuthorize<any, any, any>, TInput extends EventRecord<string, any> = {}, TOutputBroadcast extends EventRecord<string, any> = {}, TOutputSelf extends EventRecord<string, any> = {}, TOutputSync extends EventRecord<string, any> = {}> {
|
|
140
144
|
_authorize: TAuthorize | null;
|
|
141
145
|
_events: {
|
|
142
146
|
[P in keyof TInput]: P extends string ? {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pluv/types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "@pluv/io shared types",
|
|
5
5
|
"author": "leedavidcs",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"tsup": "^8.0.2",
|
|
20
20
|
"typescript": "^5.3.3",
|
|
21
|
-
"@pluv/tsconfig": "^0.
|
|
22
|
-
"eslint-config-pluv": "^0.
|
|
21
|
+
"@pluv/tsconfig": "^0.17.0",
|
|
22
|
+
"eslint-config-pluv": "^0.17.0"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsup src/index.ts --format esm,cjs --dts",
|
package/src/pluv.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface BaseIOAuthorize {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
export interface BaseIOAuthorizeEventRecord<
|
|
32
|
-
TAuthorize extends IOAuthorize<any, any>,
|
|
32
|
+
TAuthorize extends IOAuthorize<any, any, any>,
|
|
33
33
|
> {
|
|
34
34
|
$OTHERS_RECEIVED: {
|
|
35
35
|
others: {
|
|
@@ -48,7 +48,7 @@ export interface BaseIOAuthorizeEventRecord<
|
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
export type BaseIOEventRecord<TAuthorize extends IOAuthorize<any, any>> =
|
|
51
|
+
export type BaseIOEventRecord<TAuthorize extends IOAuthorize<any, any, any>> =
|
|
52
52
|
BaseIOAuthorizeEventRecord<TAuthorize> & {
|
|
53
53
|
$ERROR: {
|
|
54
54
|
message: string;
|
|
@@ -99,10 +99,13 @@ export type InferEventMessage<
|
|
|
99
99
|
export type InferIOAuthorize<TIO extends IOLike> =
|
|
100
100
|
TIO extends IOLike<infer IAuthorize> ? IAuthorize : never;
|
|
101
101
|
|
|
102
|
-
export type InferIOAuthorizeRequired<
|
|
103
|
-
TAuthorize extends IOAuthorize<any,
|
|
102
|
+
export type InferIOAuthorizeRequired<
|
|
103
|
+
TAuthorize extends IOAuthorize<any, any, any>,
|
|
104
|
+
> = TAuthorize extends IOAuthorize<any, infer IRequired> ? IRequired : never;
|
|
104
105
|
|
|
105
|
-
export type InferIOAuthorizeUser<
|
|
106
|
+
export type InferIOAuthorizeUser<
|
|
107
|
+
TAuthorize extends IOAuthorize<any, any, any>,
|
|
108
|
+
> =
|
|
106
109
|
TAuthorize extends IOAuthorize<infer IUser, infer IRequired>
|
|
107
110
|
? IRequired extends true
|
|
108
111
|
? IUser
|
|
@@ -137,14 +140,21 @@ export type InputZodLike<TData extends JsonObject> = {
|
|
|
137
140
|
parse: (data: unknown) => TData;
|
|
138
141
|
};
|
|
139
142
|
|
|
140
|
-
export
|
|
143
|
+
export type IOAuthorize<
|
|
141
144
|
TUser extends BaseUser = any,
|
|
142
145
|
TRequired extends boolean = false,
|
|
143
|
-
> {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
TContext extends Record<string, unknown> = {},
|
|
147
|
+
> =
|
|
148
|
+
| {
|
|
149
|
+
required: TRequired;
|
|
150
|
+
secret: string;
|
|
151
|
+
user: InputZodLike<TUser>;
|
|
152
|
+
}
|
|
153
|
+
| ((context: TContext) => {
|
|
154
|
+
required: TRequired;
|
|
155
|
+
secret: string;
|
|
156
|
+
user: InputZodLike<TUser>;
|
|
157
|
+
});
|
|
148
158
|
|
|
149
159
|
export type IOAuthorizeEventMessage<TIO extends IOLike> =
|
|
150
160
|
InferIOAuthorizeRequired<InferIOAuthorize<TIO>> extends false
|
|
@@ -172,7 +182,7 @@ export type IOEventMessage<
|
|
|
172
182
|
>;
|
|
173
183
|
|
|
174
184
|
export interface IOLike<
|
|
175
|
-
TAuthorize extends IOAuthorize<any, any> = IOAuthorize<any, any>,
|
|
185
|
+
TAuthorize extends IOAuthorize<any, any, any> = IOAuthorize<any, any, any>,
|
|
176
186
|
TInput extends EventRecord<string, any> = {},
|
|
177
187
|
TOutputBroadcast extends EventRecord<string, any> = {},
|
|
178
188
|
TOutputSelf extends EventRecord<string, any> = {},
|