@kerebron/extension-server-hono 0.4.7 → 0.4.9
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/esm/HonoYjsMemAdapter.d.ts +0 -1
- package/esm/HonoYjsMemAdapter.d.ts.map +1 -1
- package/esm/HonoYjsMemAdapter.js +31 -79
- package/esm/deps/jsr.io/@hono/hono/4.10.7/src/context.js +309 -412
- package/esm/deps/jsr.io/@hono/hono/4.10.7/src/helper/websocket/index.js +9 -42
- package/esm/deps/jsr.io/@hono/hono/4.10.7/src/hono-base.js +192 -299
- package/esm/deps/jsr.io/@hono/hono/4.10.7/src/http-exception.js +2 -12
- package/esm/deps/jsr.io/@hono/hono/4.10.7/src/request.js +82 -125
- package/esm/mod.d.ts +0 -1
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +1 -1
- package/package.json +1 -1
- package/esm/_dnt.polyfills.d.ts +0 -7
- package/esm/_dnt.polyfills.d.ts.map +0 -1
- package/esm/_dnt.polyfills.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HonoYjsMemAdapter.d.ts","sourceRoot":"","sources":["../src/HonoYjsMemAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"HonoYjsMemAdapter.d.ts","sourceRoot":"","sources":["../src/HonoYjsMemAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,+DAA+D,CAAC;AAEpG,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAI3D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAa,CAAC;AAIlD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,EAAE,YAAS,KAAG,CAAC,CAAC,GAWtD,CAAC;AAEF,qBAAa,aAAa;aAGI,IAAI,EAAE,IAAI;aAAkB,MAAM,EAAE,SAAS;IAFzE,SAAgB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;gBAE3B,IAAI,EAAE,IAAI,EAAkB,MAAM,EAAE,SAAS;CAE1E;AAED,qBAAa,IAAI;aAIa,QAAQ,EAAE,MAAM;aAAkB,GAAG,EAAE,CAAC,CAAC,GAAG;IAHxE,SAAgB,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAa;IAC1E,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;gBAEX,QAAQ,EAAE,MAAM,EAAkB,GAAG,EAAE,CAAC,CAAC,GAAG;CAuDzE;AAID,qBAAa,iBAAkB,YAAW,aAAa;;IACrD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAa;IAC5D,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;IAMlC,YAAY;IAIZ,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;IAsEvD,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU;IAUnC,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS;CA8DzD"}
|
package/esm/HonoYjsMemAdapter.js
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _HonoYjsMemAdapter_instances, _HonoYjsMemAdapter_terminate, _HonoYjsMemAdapter_removeSocket;
|
|
7
|
-
import "./_dnt.polyfills.js";
|
|
8
1
|
import * as Y from 'yjs';
|
|
9
2
|
import * as syncProtocol from 'y-protocols/sync';
|
|
10
3
|
import * as awarenessProtocol from 'y-protocols/awareness';
|
|
@@ -36,53 +29,22 @@ export const getYDoc = (docname, gc = true) => {
|
|
|
36
29
|
return ydoc;
|
|
37
30
|
};
|
|
38
31
|
export class SocketContext {
|
|
32
|
+
room;
|
|
33
|
+
socket;
|
|
34
|
+
controlledIds = new Set();
|
|
39
35
|
constructor(room, socket) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
configurable: true,
|
|
43
|
-
writable: true,
|
|
44
|
-
value: room
|
|
45
|
-
});
|
|
46
|
-
Object.defineProperty(this, "socket", {
|
|
47
|
-
enumerable: true,
|
|
48
|
-
configurable: true,
|
|
49
|
-
writable: true,
|
|
50
|
-
value: socket
|
|
51
|
-
});
|
|
52
|
-
Object.defineProperty(this, "controlledIds", {
|
|
53
|
-
enumerable: true,
|
|
54
|
-
configurable: true,
|
|
55
|
-
writable: true,
|
|
56
|
-
value: new Set()
|
|
57
|
-
});
|
|
36
|
+
this.room = room;
|
|
37
|
+
this.socket = socket;
|
|
58
38
|
}
|
|
59
39
|
}
|
|
60
40
|
export class Room {
|
|
41
|
+
roomName;
|
|
42
|
+
doc;
|
|
43
|
+
socketContexts = new Map();
|
|
44
|
+
awareness;
|
|
61
45
|
constructor(roomName, doc) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
configurable: true,
|
|
65
|
-
writable: true,
|
|
66
|
-
value: roomName
|
|
67
|
-
});
|
|
68
|
-
Object.defineProperty(this, "doc", {
|
|
69
|
-
enumerable: true,
|
|
70
|
-
configurable: true,
|
|
71
|
-
writable: true,
|
|
72
|
-
value: doc
|
|
73
|
-
});
|
|
74
|
-
Object.defineProperty(this, "socketContexts", {
|
|
75
|
-
enumerable: true,
|
|
76
|
-
configurable: true,
|
|
77
|
-
writable: true,
|
|
78
|
-
value: new Map()
|
|
79
|
-
});
|
|
80
|
-
Object.defineProperty(this, "awareness", {
|
|
81
|
-
enumerable: true,
|
|
82
|
-
configurable: true,
|
|
83
|
-
writable: true,
|
|
84
|
-
value: void 0
|
|
85
|
-
});
|
|
46
|
+
this.roomName = roomName;
|
|
47
|
+
this.doc = doc;
|
|
86
48
|
this.awareness = new awarenessProtocol.Awareness(doc);
|
|
87
49
|
this.awareness.setLocalState(null);
|
|
88
50
|
this.awareness.on('update', ({ added, updated, removed }, conn) => {
|
|
@@ -120,20 +82,9 @@ export class Room {
|
|
|
120
82
|
}
|
|
121
83
|
const rooms = new Map();
|
|
122
84
|
export class HonoYjsMemAdapter {
|
|
85
|
+
sockets = new Map();
|
|
86
|
+
rooms;
|
|
123
87
|
constructor() {
|
|
124
|
-
_HonoYjsMemAdapter_instances.add(this);
|
|
125
|
-
Object.defineProperty(this, "sockets", {
|
|
126
|
-
enumerable: true,
|
|
127
|
-
configurable: true,
|
|
128
|
-
writable: true,
|
|
129
|
-
value: new Map()
|
|
130
|
-
});
|
|
131
|
-
Object.defineProperty(this, "rooms", {
|
|
132
|
-
enumerable: true,
|
|
133
|
-
configurable: true,
|
|
134
|
-
writable: true,
|
|
135
|
-
value: void 0
|
|
136
|
-
});
|
|
137
88
|
this.rooms = rooms;
|
|
138
89
|
}
|
|
139
90
|
getRoomNames() {
|
|
@@ -189,14 +140,14 @@ export class HonoYjsMemAdapter {
|
|
|
189
140
|
if (!wsContext.raw) {
|
|
190
141
|
return;
|
|
191
142
|
}
|
|
192
|
-
|
|
143
|
+
this.#removeSocket(wsContext.raw);
|
|
193
144
|
},
|
|
194
145
|
};
|
|
195
146
|
}
|
|
196
147
|
send(conn, m) {
|
|
197
148
|
if (conn.readyState !== WebSocket.CONNECTING &&
|
|
198
149
|
conn.readyState !== WebSocket.OPEN) {
|
|
199
|
-
|
|
150
|
+
this.#terminate(conn);
|
|
200
151
|
}
|
|
201
152
|
conn.send(m);
|
|
202
153
|
}
|
|
@@ -232,20 +183,21 @@ export class HonoYjsMemAdapter {
|
|
|
232
183
|
// room.doc.emit('error', [err]);
|
|
233
184
|
}
|
|
234
185
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
186
|
+
#terminate(socket) {
|
|
187
|
+
this.#removeSocket(socket);
|
|
188
|
+
socket.close();
|
|
189
|
+
}
|
|
190
|
+
#removeSocket(conn) {
|
|
191
|
+
const socketContext = this.sockets.get(conn);
|
|
192
|
+
if (socketContext) {
|
|
193
|
+
const room = socketContext.room;
|
|
194
|
+
room.socketContexts.delete(socketContext.socket);
|
|
195
|
+
awarenessProtocol.removeAwarenessStates(room.awareness, Array.from(socketContext.controlledIds), null);
|
|
196
|
+
if (room.socketContexts.size === 0) {
|
|
197
|
+
// TODO save to persistence
|
|
198
|
+
// TODO Destroy room
|
|
199
|
+
}
|
|
200
|
+
this.sockets.delete(conn);
|
|
248
201
|
}
|
|
249
|
-
this.sockets.delete(conn);
|
|
250
202
|
}
|
|
251
|
-
}
|
|
203
|
+
}
|