@pluv/io 0.21.0 → 0.22.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 +9 -9
- package/CHANGELOG.md +19 -0
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +8 -3
- package/dist/index.mjs +8 -3
- package/package.json +5 -5
- package/src/AbstractPlatform.ts +1 -1
- package/src/AbstractWebSocket.ts +1 -0
- package/src/PluvIO.ts +9 -2
- package/src/PluvServer.ts +1 -1
- package/src/version.generated.ts +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> @pluv/io@0.
|
|
2
|
+
> @pluv/io@0.22.0 build /home/runner/work/pluv/pluv/packages/io
|
|
3
3
|
> pnpm run version && tsup src/index.ts --format esm,cjs --dts
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @pluv/io@0.
|
|
6
|
+
> @pluv/io@0.22.0 version /home/runner/work/pluv/pluv/packages/io
|
|
7
7
|
> genversion ./src/version.generated.ts --esm
|
|
8
8
|
|
|
9
9
|
[34mCLI[39m Building entry: src/index.ts
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
[34mCLI[39m Target: es6
|
|
13
13
|
[34mESM[39m Build start
|
|
14
14
|
[34mCJS[39m Build start
|
|
15
|
-
[32mESM[39m [1mdist/index.mjs [22m[32m37.
|
|
16
|
-
[32mESM[39m ⚡️ Build success in
|
|
17
|
-
[32mCJS[39m [1mdist/index.js [22m[32m39.
|
|
18
|
-
[32mCJS[39m ⚡️ Build success in
|
|
15
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m37.62 KB[39m
|
|
16
|
+
[32mESM[39m ⚡️ Build success in 125ms
|
|
17
|
+
[32mCJS[39m [1mdist/index.js [22m[32m39.79 KB[39m
|
|
18
|
+
[32mCJS[39m ⚡️ Build success in 126ms
|
|
19
19
|
[34mDTS[39m Build start
|
|
20
|
-
[32mDTS[39m ⚡️ Build success in
|
|
21
|
-
[32mDTS[39m [1mdist/index.d.mts [22m[32m23.
|
|
22
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[32m23.
|
|
20
|
+
[32mDTS[39m ⚡️ Build success in 2342ms
|
|
21
|
+
[32mDTS[39m [1mdist/index.d.mts [22m[32m23.57 KB[39m
|
|
22
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m23.57 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @pluv/io
|
|
2
2
|
|
|
3
|
+
## 0.22.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 650e577: \* Fix `@pluv/platform-cloudflare` causing frequent disconnects due to incorrect heartbeat handling.
|
|
8
|
+
- Updated default `mode` of `@pluv/platform-cloudflare` back to `"detached"` (i.e. use Cloudflare Worker Hibernation API by default).
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- @pluv/crdt@0.22.0
|
|
13
|
+
- @pluv/types@0.22.0
|
|
14
|
+
|
|
15
|
+
## 0.21.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- @pluv/crdt@0.21.1
|
|
20
|
+
- @pluv/types@0.21.1
|
|
21
|
+
|
|
3
22
|
## 0.21.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -61,6 +61,7 @@ declare abstract class AbstractWebSocket<TWebSocket = any> {
|
|
|
61
61
|
abstract get readyState(): 0 | 1 | 2 | 3;
|
|
62
62
|
abstract get sessionId(): string;
|
|
63
63
|
abstract get state(): WebSocketSerializedState;
|
|
64
|
+
abstract set state(state: WebSocketSerializedState);
|
|
64
65
|
constructor(webSocket: TWebSocket, config: AbstractWebSocketConfig);
|
|
65
66
|
/**
|
|
66
67
|
* TODO
|
|
@@ -181,7 +182,7 @@ declare abstract class AbstractPlatform<TWebSocket extends AbstractWebSocket = A
|
|
|
181
182
|
abstract acceptWebSocket(webSocket: AbstractWebSocket): Promise<void>;
|
|
182
183
|
abstract convertWebSocket(webSocket: InferWebSocketSource<TWebSocket>, config: ConvertWebSocketConfig): AbstractWebSocket;
|
|
183
184
|
abstract getLastPing(webSocket: AbstractWebSocket): number | null;
|
|
184
|
-
abstract getSerializedState(webSocket:
|
|
185
|
+
abstract getSerializedState(webSocket: InferWebSocketSource<TWebSocket>): WebSocketSerializedState | null;
|
|
185
186
|
abstract getSessionId(webSocket: InferWebSocketSource<TWebSocket>): string | null;
|
|
186
187
|
abstract getWebSockets(): readonly InferWebSocketSource<TWebSocket>[];
|
|
187
188
|
abstract initialize(config: AbstractPlatformConfig<TPlatformContext, TRoomContext>): this;
|
package/dist/index.d.ts
CHANGED
|
@@ -61,6 +61,7 @@ declare abstract class AbstractWebSocket<TWebSocket = any> {
|
|
|
61
61
|
abstract get readyState(): 0 | 1 | 2 | 3;
|
|
62
62
|
abstract get sessionId(): string;
|
|
63
63
|
abstract get state(): WebSocketSerializedState;
|
|
64
|
+
abstract set state(state: WebSocketSerializedState);
|
|
64
65
|
constructor(webSocket: TWebSocket, config: AbstractWebSocketConfig);
|
|
65
66
|
/**
|
|
66
67
|
* TODO
|
|
@@ -181,7 +182,7 @@ declare abstract class AbstractPlatform<TWebSocket extends AbstractWebSocket = A
|
|
|
181
182
|
abstract acceptWebSocket(webSocket: AbstractWebSocket): Promise<void>;
|
|
182
183
|
abstract convertWebSocket(webSocket: InferWebSocketSource<TWebSocket>, config: ConvertWebSocketConfig): AbstractWebSocket;
|
|
183
184
|
abstract getLastPing(webSocket: AbstractWebSocket): number | null;
|
|
184
|
-
abstract getSerializedState(webSocket:
|
|
185
|
+
abstract getSerializedState(webSocket: InferWebSocketSource<TWebSocket>): WebSocketSerializedState | null;
|
|
185
186
|
abstract getSessionId(webSocket: InferWebSocketSource<TWebSocket>): string | null;
|
|
186
187
|
abstract getWebSockets(): readonly InferWebSocketSource<TWebSocket>[];
|
|
187
188
|
abstract initialize(config: AbstractPlatformConfig<TPlatformContext, TRoomContext>): this;
|
package/dist/index.js
CHANGED
|
@@ -848,7 +848,7 @@ var IORoom = class {
|
|
|
848
848
|
};
|
|
849
849
|
|
|
850
850
|
// src/version.generated.ts
|
|
851
|
-
var version = "0.
|
|
851
|
+
var version = "0.22.0";
|
|
852
852
|
|
|
853
853
|
// src/PluvServer.ts
|
|
854
854
|
var PluvServer = class {
|
|
@@ -945,7 +945,7 @@ var PluvServer = class {
|
|
|
945
945
|
_purgeEmptyRooms() {
|
|
946
946
|
const rooms = Array.from(this._rooms.entries());
|
|
947
947
|
rooms.forEach(([id, room]) => {
|
|
948
|
-
if (room.getSize()) return;
|
|
948
|
+
if (!!(room == null ? void 0 : room.getSize())) return;
|
|
949
949
|
this._rooms.delete(id);
|
|
950
950
|
});
|
|
951
951
|
}
|
|
@@ -1007,7 +1007,12 @@ var PluvIO = class {
|
|
|
1007
1007
|
$PING: this.procedure.self((data, { session }) => {
|
|
1008
1008
|
if (!session) return {};
|
|
1009
1009
|
const currentTime = (/* @__PURE__ */ new Date()).getTime();
|
|
1010
|
-
session.
|
|
1010
|
+
const prevState = session.webSocket.state;
|
|
1011
|
+
session.webSocket.state = __spreadProps(__spreadValues({}, prevState), {
|
|
1012
|
+
timers: __spreadProps(__spreadValues({}, prevState.timers), {
|
|
1013
|
+
ping: currentTime
|
|
1014
|
+
})
|
|
1015
|
+
});
|
|
1011
1016
|
return { $PONG: {} };
|
|
1012
1017
|
}),
|
|
1013
1018
|
$UPDATE_PRESENCE: this.procedure.broadcast((data, { session }) => {
|
package/dist/index.mjs
CHANGED
|
@@ -807,7 +807,7 @@ var IORoom = class {
|
|
|
807
807
|
};
|
|
808
808
|
|
|
809
809
|
// src/version.generated.ts
|
|
810
|
-
var version = "0.
|
|
810
|
+
var version = "0.22.0";
|
|
811
811
|
|
|
812
812
|
// src/PluvServer.ts
|
|
813
813
|
var PluvServer = class {
|
|
@@ -904,7 +904,7 @@ var PluvServer = class {
|
|
|
904
904
|
_purgeEmptyRooms() {
|
|
905
905
|
const rooms = Array.from(this._rooms.entries());
|
|
906
906
|
rooms.forEach(([id, room]) => {
|
|
907
|
-
if (room.getSize()) return;
|
|
907
|
+
if (!!(room == null ? void 0 : room.getSize())) return;
|
|
908
908
|
this._rooms.delete(id);
|
|
909
909
|
});
|
|
910
910
|
}
|
|
@@ -966,7 +966,12 @@ var PluvIO = class {
|
|
|
966
966
|
$PING: this.procedure.self((data, { session }) => {
|
|
967
967
|
if (!session) return {};
|
|
968
968
|
const currentTime = (/* @__PURE__ */ new Date()).getTime();
|
|
969
|
-
session.
|
|
969
|
+
const prevState = session.webSocket.state;
|
|
970
|
+
session.webSocket.state = __spreadProps(__spreadValues({}, prevState), {
|
|
971
|
+
timers: __spreadProps(__spreadValues({}, prevState.timers), {
|
|
972
|
+
ping: currentTime
|
|
973
|
+
})
|
|
974
|
+
});
|
|
970
975
|
return { $PONG: {} };
|
|
971
976
|
}),
|
|
972
977
|
$UPDATE_PRESENCE: this.procedure.broadcast((data, { session }) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pluv/io",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "@pluv/io server-side websocket manager",
|
|
5
5
|
"author": "leedavidcs",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,16 +21,16 @@
|
|
|
21
21
|
"jose": "^5.6.3",
|
|
22
22
|
"kleur": "^4.1.5",
|
|
23
23
|
"wonka": "^6.3.4",
|
|
24
|
-
"@pluv/crdt": "^0.
|
|
25
|
-
"@pluv/types": "^0.
|
|
24
|
+
"@pluv/crdt": "^0.22.0",
|
|
25
|
+
"@pluv/types": "^0.22.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"eslint": "^8.57.0",
|
|
29
29
|
"genversion": "^3.2.0",
|
|
30
30
|
"tsup": "^8.2.4",
|
|
31
31
|
"typescript": "^5.5.4",
|
|
32
|
-
"@pluv/tsconfig": "^0.
|
|
33
|
-
"eslint-config-pluv": "^0.
|
|
32
|
+
"@pluv/tsconfig": "^0.22.0",
|
|
33
|
+
"eslint-config-pluv": "^0.22.0"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "pnpm run version && tsup src/index.ts --format esm,cjs --dts",
|
package/src/AbstractPlatform.ts
CHANGED
|
@@ -68,7 +68,7 @@ export abstract class AbstractPlatform<
|
|
|
68
68
|
|
|
69
69
|
public abstract getLastPing(webSocket: AbstractWebSocket): number | null;
|
|
70
70
|
|
|
71
|
-
public abstract getSerializedState(webSocket:
|
|
71
|
+
public abstract getSerializedState(webSocket: InferWebSocketSource<TWebSocket>): WebSocketSerializedState | null;
|
|
72
72
|
|
|
73
73
|
public abstract getSessionId(webSocket: InferWebSocketSource<TWebSocket>): string | null;
|
|
74
74
|
|
package/src/AbstractWebSocket.ts
CHANGED
|
@@ -72,6 +72,7 @@ export abstract class AbstractWebSocket<TWebSocket = any> {
|
|
|
72
72
|
public abstract get readyState(): 0 | 1 | 2 | 3;
|
|
73
73
|
public abstract get sessionId(): string;
|
|
74
74
|
public abstract get state(): WebSocketSerializedState;
|
|
75
|
+
public abstract set state(state: WebSocketSerializedState);
|
|
75
76
|
|
|
76
77
|
constructor(webSocket: TWebSocket, config: AbstractWebSocketConfig) {
|
|
77
78
|
const { persistance, room } = config;
|
package/src/PluvIO.ts
CHANGED
|
@@ -127,8 +127,15 @@ export class PluvIO<
|
|
|
127
127
|
if (!session) return {};
|
|
128
128
|
|
|
129
129
|
const currentTime = new Date().getTime();
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
const prevState = session.webSocket.state;
|
|
131
|
+
|
|
132
|
+
session.webSocket.state = {
|
|
133
|
+
...prevState,
|
|
134
|
+
timers: {
|
|
135
|
+
...prevState.timers,
|
|
136
|
+
ping: currentTime,
|
|
137
|
+
},
|
|
138
|
+
};
|
|
132
139
|
|
|
133
140
|
return { $PONG: {} };
|
|
134
141
|
}),
|
package/src/PluvServer.ts
CHANGED
package/src/version.generated.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Generated by genversion.
|
|
2
|
-
export const version = '0.
|
|
2
|
+
export const version = '0.22.0'
|