@pairlobby/local-server 0.32.0 → 0.33.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/README.md +1 -1
- package/dist/schema.d.ts +1 -2
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -114
- package/dist/schema.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +62 -16
- package/dist/server.js.map +1 -1
- package/dist/settings.d.ts +4 -9
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +3 -53
- package/dist/settings.js.map +1 -1
- package/dist/sqlite-store.d.ts +6 -55
- package/dist/sqlite-store.d.ts.map +1 -1
- package/dist/sqlite-store.js +42 -352
- package/dist/sqlite-store.js.map +1 -1
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# @pairlobby/local-server
|
|
2
2
|
|
|
3
|
-
Part of [PairLobby](https://github.com/PairLobby/app), built from `packages/local-server` at version 0.
|
|
3
|
+
Part of [PairLobby](https://github.com/PairLobby/app), built from `packages/local-server` at version 0.33.0. See that repository for documentation.
|
|
4
4
|
|
|
5
5
|
Licensed under the [Elastic License 2.0](LICENSE): you may use, copy, modify and distribute it, but may not offer it to others as a hosted or managed service.
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export declare const SCHEMA = "\nCREATE TABLE IF NOT EXISTS meta (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n) STRICT;\n\nCREATE TABLE IF NOT EXISTS rooms (\n room_id TEXT PRIMARY KEY,\n earliest_seq INTEGER NOT NULL DEFAULT 1,\n body TEXT NOT NULL\n) STRICT;\nCREATE INDEX IF NOT EXISTS rooms_by_auto_close ON rooms (json_extract(body, '$.autoCloseAt')) WHERE json_extract(body, '$.lifecycle') = 'open' AND json_extract(body, '$.autoCloseAt') IS NOT NULL;\n\nCREATE TABLE IF NOT EXISTS participants (\n participant_id TEXT PRIMARY KEY,\n room_id TEXT NOT NULL,\n credential_hash TEXT NOT NULL,\n body TEXT NOT NULL\n) STRICT;\nCREATE INDEX IF NOT EXISTS participants_by_room ON participants (room_id);\nCREATE UNIQUE INDEX IF NOT EXISTS participants_by_credential ON participants (room_id, credential_hash);\n\nCREATE TABLE IF NOT EXISTS events (\n room_id TEXT NOT NULL,\n seq INTEGER NOT NULL,\n body TEXT NOT NULL,\n PRIMARY KEY (room_id, seq)\n) STRICT;\n\nCREATE TABLE IF NOT EXISTS idempotency (\n room_id TEXT NOT NULL,\n key TEXT NOT NULL,\n request_digest TEXT NOT NULL,\n seq INTEGER NOT NULL,\n PRIMARY KEY (room_id, key)\n) STRICT;\n\nCREATE TABLE IF NOT EXISTS handovers (\n handover_id TEXT PRIMARY KEY,\n room_id TEXT NOT NULL,\n body TEXT NOT NULL\n) STRICT;\nCREATE INDEX IF NOT EXISTS handovers_by_room ON handovers (room_id);\n\nCREATE TABLE IF NOT EXISTS controls (\n room_id TEXT NOT NULL,\n target_participant_id TEXT NOT NULL,\n body TEXT NOT NULL,\n PRIMARY KEY (room_id, target_participant_id)\n) STRICT;\n\nCREATE TABLE IF NOT EXISTS invites (\n digest TEXT PRIMARY KEY,\n room_id TEXT NOT NULL,\n state TEXT NOT NULL,\n bound_attempt_id TEXT,\n body TEXT NOT NULL\n) STRICT;\nCREATE INDEX IF NOT EXISTS invites_by_room ON invites (room_id);\n\nCREATE TABLE IF NOT EXISTS message_requests (\n event_id TEXT PRIMARY KEY,\n room_id TEXT NOT NULL,\n seq INTEGER NOT NULL,\n received_at INTEGER,\n response_event_id TEXT,\n requires_reply INTEGER NOT NULL,\n body TEXT NOT NULL\n) STRICT;\nCREATE INDEX IF NOT EXISTS message_requests_pending ON message_requests(room_id,seq) WHERE requires_reply=1 AND response_event_id IS NULL;\nCREATE INDEX IF NOT EXISTS message_requests_group ON message_requests(room_id,json_extract(body,'$.conversationId'));\nCREATE INDEX IF NOT EXISTS message_requests_unreceived ON message_requests(room_id,seq) WHERE received_at IS NULL;\n\nCREATE TABLE IF NOT EXISTS files (\n file_id TEXT PRIMARY KEY,\n room_id TEXT NOT NULL,\n size INTEGER NOT NULL,\n created_at INTEGER NOT NULL,\n event_id TEXT,\n body TEXT NOT NULL\n) STRICT;\nCREATE INDEX IF NOT EXISTS files_by_room ON files (room_id, created_at);\n\nCREATE TABLE IF NOT EXISTS file_chunks (\n file_id TEXT NOT NULL,\n idx INTEGER NOT NULL,\n bytes BLOB NOT NULL,\n PRIMARY KEY (file_id, idx)\n) STRICT;\n\nCREATE INDEX IF NOT EXISTS events_message_id ON events(room_id,json_extract(body,'$.eventId'));\nCREATE INDEX IF NOT EXISTS events_reply_to ON events(room_id,json_extract(body,'$.replyTo')) WHERE json_extract(body,'$.type')='message';\nCREATE INDEX IF NOT EXISTS events_receipt_to ON events(room_id,json_extract(body,'$.payload.eventId')) WHERE json_extract(body,'$.type')='message.received';\nCREATE INDEX IF NOT EXISTS events_by_sender ON events(room_id,json_extract(body,'$.senderId'),seq) WHERE json_extract(body,'$.type')='message';\n\nCREATE TABLE IF NOT EXISTS listings (\n listing_id TEXT PRIMARY KEY,\n room_id TEXT NOT NULL,\n participant_id TEXT NOT NULL,\n owner TEXT NOT NULL,\n body TEXT NOT NULL\n) STRICT;\nCREATE UNIQUE INDEX IF NOT EXISTS listings_by_participant ON listings (room_id, participant_id);\nCREATE INDEX IF NOT EXISTS listings_by_owner ON listings (owner);\n\nCREATE TABLE IF NOT EXISTS member_defaults (\n handle TEXT PRIMARY KEY,\n body TEXT NOT NULL\n) STRICT;\n";
|
|
1
|
+
export { SCHEMA, SCHEMA_VERSION } from '@pairlobby/sqlite';
|
|
3
2
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC"}
|
package/dist/schema.js
CHANGED
|
@@ -1,115 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//! indexed, so a protocol field added later is an additive change rather than a
|
|
3
|
-
//! migration of every row.
|
|
4
|
-
export const SCHEMA_VERSION = 1;
|
|
5
|
-
export const SCHEMA = `
|
|
6
|
-
CREATE TABLE IF NOT EXISTS meta (
|
|
7
|
-
key TEXT PRIMARY KEY,
|
|
8
|
-
value TEXT NOT NULL
|
|
9
|
-
) STRICT;
|
|
10
|
-
|
|
11
|
-
CREATE TABLE IF NOT EXISTS rooms (
|
|
12
|
-
room_id TEXT PRIMARY KEY,
|
|
13
|
-
earliest_seq INTEGER NOT NULL DEFAULT 1,
|
|
14
|
-
body TEXT NOT NULL
|
|
15
|
-
) STRICT;
|
|
16
|
-
CREATE INDEX IF NOT EXISTS rooms_by_auto_close ON rooms (json_extract(body, '$.autoCloseAt')) WHERE json_extract(body, '$.lifecycle') = 'open' AND json_extract(body, '$.autoCloseAt') IS NOT NULL;
|
|
17
|
-
|
|
18
|
-
CREATE TABLE IF NOT EXISTS participants (
|
|
19
|
-
participant_id TEXT PRIMARY KEY,
|
|
20
|
-
room_id TEXT NOT NULL,
|
|
21
|
-
credential_hash TEXT NOT NULL,
|
|
22
|
-
body TEXT NOT NULL
|
|
23
|
-
) STRICT;
|
|
24
|
-
CREATE INDEX IF NOT EXISTS participants_by_room ON participants (room_id);
|
|
25
|
-
CREATE UNIQUE INDEX IF NOT EXISTS participants_by_credential ON participants (room_id, credential_hash);
|
|
26
|
-
|
|
27
|
-
CREATE TABLE IF NOT EXISTS events (
|
|
28
|
-
room_id TEXT NOT NULL,
|
|
29
|
-
seq INTEGER NOT NULL,
|
|
30
|
-
body TEXT NOT NULL,
|
|
31
|
-
PRIMARY KEY (room_id, seq)
|
|
32
|
-
) STRICT;
|
|
33
|
-
|
|
34
|
-
CREATE TABLE IF NOT EXISTS idempotency (
|
|
35
|
-
room_id TEXT NOT NULL,
|
|
36
|
-
key TEXT NOT NULL,
|
|
37
|
-
request_digest TEXT NOT NULL,
|
|
38
|
-
seq INTEGER NOT NULL,
|
|
39
|
-
PRIMARY KEY (room_id, key)
|
|
40
|
-
) STRICT;
|
|
41
|
-
|
|
42
|
-
CREATE TABLE IF NOT EXISTS handovers (
|
|
43
|
-
handover_id TEXT PRIMARY KEY,
|
|
44
|
-
room_id TEXT NOT NULL,
|
|
45
|
-
body TEXT NOT NULL
|
|
46
|
-
) STRICT;
|
|
47
|
-
CREATE INDEX IF NOT EXISTS handovers_by_room ON handovers (room_id);
|
|
48
|
-
|
|
49
|
-
CREATE TABLE IF NOT EXISTS controls (
|
|
50
|
-
room_id TEXT NOT NULL,
|
|
51
|
-
target_participant_id TEXT NOT NULL,
|
|
52
|
-
body TEXT NOT NULL,
|
|
53
|
-
PRIMARY KEY (room_id, target_participant_id)
|
|
54
|
-
) STRICT;
|
|
55
|
-
|
|
56
|
-
CREATE TABLE IF NOT EXISTS invites (
|
|
57
|
-
digest TEXT PRIMARY KEY,
|
|
58
|
-
room_id TEXT NOT NULL,
|
|
59
|
-
state TEXT NOT NULL,
|
|
60
|
-
bound_attempt_id TEXT,
|
|
61
|
-
body TEXT NOT NULL
|
|
62
|
-
) STRICT;
|
|
63
|
-
CREATE INDEX IF NOT EXISTS invites_by_room ON invites (room_id);
|
|
64
|
-
|
|
65
|
-
CREATE TABLE IF NOT EXISTS message_requests (
|
|
66
|
-
event_id TEXT PRIMARY KEY,
|
|
67
|
-
room_id TEXT NOT NULL,
|
|
68
|
-
seq INTEGER NOT NULL,
|
|
69
|
-
received_at INTEGER,
|
|
70
|
-
response_event_id TEXT,
|
|
71
|
-
requires_reply INTEGER NOT NULL,
|
|
72
|
-
body TEXT NOT NULL
|
|
73
|
-
) STRICT;
|
|
74
|
-
CREATE INDEX IF NOT EXISTS message_requests_pending ON message_requests(room_id,seq) WHERE requires_reply=1 AND response_event_id IS NULL;
|
|
75
|
-
CREATE INDEX IF NOT EXISTS message_requests_group ON message_requests(room_id,json_extract(body,'$.conversationId'));
|
|
76
|
-
CREATE INDEX IF NOT EXISTS message_requests_unreceived ON message_requests(room_id,seq) WHERE received_at IS NULL;
|
|
77
|
-
|
|
78
|
-
CREATE TABLE IF NOT EXISTS files (
|
|
79
|
-
file_id TEXT PRIMARY KEY,
|
|
80
|
-
room_id TEXT NOT NULL,
|
|
81
|
-
size INTEGER NOT NULL,
|
|
82
|
-
created_at INTEGER NOT NULL,
|
|
83
|
-
event_id TEXT,
|
|
84
|
-
body TEXT NOT NULL
|
|
85
|
-
) STRICT;
|
|
86
|
-
CREATE INDEX IF NOT EXISTS files_by_room ON files (room_id, created_at);
|
|
87
|
-
|
|
88
|
-
CREATE TABLE IF NOT EXISTS file_chunks (
|
|
89
|
-
file_id TEXT NOT NULL,
|
|
90
|
-
idx INTEGER NOT NULL,
|
|
91
|
-
bytes BLOB NOT NULL,
|
|
92
|
-
PRIMARY KEY (file_id, idx)
|
|
93
|
-
) STRICT;
|
|
94
|
-
|
|
95
|
-
CREATE INDEX IF NOT EXISTS events_message_id ON events(room_id,json_extract(body,'$.eventId'));
|
|
96
|
-
CREATE INDEX IF NOT EXISTS events_reply_to ON events(room_id,json_extract(body,'$.replyTo')) WHERE json_extract(body,'$.type')='message';
|
|
97
|
-
CREATE INDEX IF NOT EXISTS events_receipt_to ON events(room_id,json_extract(body,'$.payload.eventId')) WHERE json_extract(body,'$.type')='message.received';
|
|
98
|
-
CREATE INDEX IF NOT EXISTS events_by_sender ON events(room_id,json_extract(body,'$.senderId'),seq) WHERE json_extract(body,'$.type')='message';
|
|
99
|
-
|
|
100
|
-
CREATE TABLE IF NOT EXISTS listings (
|
|
101
|
-
listing_id TEXT PRIMARY KEY,
|
|
102
|
-
room_id TEXT NOT NULL,
|
|
103
|
-
participant_id TEXT NOT NULL,
|
|
104
|
-
owner TEXT NOT NULL,
|
|
105
|
-
body TEXT NOT NULL
|
|
106
|
-
) STRICT;
|
|
107
|
-
CREATE UNIQUE INDEX IF NOT EXISTS listings_by_participant ON listings (room_id, participant_id);
|
|
108
|
-
CREATE INDEX IF NOT EXISTS listings_by_owner ON listings (owner);
|
|
109
|
-
|
|
110
|
-
CREATE TABLE IF NOT EXISTS member_defaults (
|
|
111
|
-
handle TEXT PRIMARY KEY,
|
|
112
|
-
body TEXT NOT NULL
|
|
113
|
-
) STRICT;
|
|
114
|
-
`;
|
|
1
|
+
export { SCHEMA, SCHEMA_VERSION } from '@pairlobby/sqlite';
|
|
115
2
|
//# sourceMappingURL=schema.js.map
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,eAAe,EAAsE,MAAM,wBAAwB,CAAC;AAEjI,OAAO,KAAK,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAKjE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AACtF,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAIlD,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kGAAkG;IAClG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gHAAgH;IAChH,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;IAC5B,iHAAiH;IACjH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8GAA8G;IAC9G,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wGAAwG;IACxG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yIAAyI;IACzI,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAC1E,oFAAoF;IACpF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iIAAiI;IACjI,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,4GAA4G;IAC5G,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,kHAAkH;IAClH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,yJAAyJ;IACzJ,MAAM,CAAC,EAAE,qBAAqB,GAAG;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAC,CAAC;CACxD;AAED,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,mGAAmG;IACnG,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,+FAA+F;IAC/F,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,gFAAgF;IAChF,aAAa,IAAI,IAAI,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAgCD,iHAAiH;AACjH,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAQ/E;AAgJD,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhF"}
|
package/dist/server.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
//! The Node relay: an adapter between `node:http` and the shared kernel (`createRelay`).
|
|
2
|
-
//! It supplies
|
|
2
|
+
//! It supplies short per-room queues for its one store, a timer for auto-close, and what the
|
|
3
3
|
//! socket says about each caller; every protocol rule stays in the kernel.
|
|
4
4
|
import { createServer as createHttpServer } from 'node:http';
|
|
5
5
|
import { mkdirSync } from 'node:fs';
|
|
6
6
|
import { hostname, networkInterfaces } from 'node:os';
|
|
7
7
|
import { dirname } from 'node:path';
|
|
8
|
+
import { Readable } from 'node:stream';
|
|
9
|
+
import { pipeline } from 'node:stream/promises';
|
|
8
10
|
import { ChangeNotifier, NotifyingStore, RoomService, createAdmission, createRelay, memoryRateLimiter, queueExecutor, timerScheduler } from '@pairlobby/server-core';
|
|
9
|
-
import { ABSOLUTE_MAX_FILE_BYTES, DEFAULT_ROOM_POLICY } from '@pairlobby/protocol';
|
|
11
|
+
import { ABSOLUTE_MAX_FILE_BYTES, DEFAULT_ROOM_POLICY, ProtocolError } from '@pairlobby/protocol';
|
|
10
12
|
import { advertiseRelay, isLocalNetworkAddress, isLoopbackAddress, isTailscaleAddress } from './network.js';
|
|
11
13
|
import { REQUEST_ID_HEADER, requestIdFor, requestLogLine, shouldLog } from './request-log.js';
|
|
12
14
|
import { restoreLatest, startBackups } from './backup.js';
|
|
@@ -14,7 +16,10 @@ import { MembersFile } from './members.js';
|
|
|
14
16
|
import { SqliteRoomStore } from './sqlite-store.js';
|
|
15
17
|
/** Non-file endpoints retain the smaller bound; the file-upload route may use the explicit file ceiling. */
|
|
16
18
|
const DEFAULT_MAX_REQUEST_BYTES = 32 * 1024 * 1024;
|
|
17
|
-
class RequestBodyTooLarge extends
|
|
19
|
+
class RequestBodyTooLarge extends ProtocolError {
|
|
20
|
+
constructor() {
|
|
21
|
+
super('payload_too_large', 'this request is larger than the relay accepts');
|
|
22
|
+
}
|
|
18
23
|
}
|
|
19
24
|
function requestBodyLimit(incoming) {
|
|
20
25
|
const path = (incoming.url ?? '').split('?', 1)[0];
|
|
@@ -99,7 +104,7 @@ function listen(options, restore) {
|
|
|
99
104
|
const account = { email: null, name: options.discovery?.name ?? null, server: options.publicUrl ?? new URL(request.url).origin };
|
|
100
105
|
return member ? { ...account, userId: `member:${member.handle}`, handle: member.handle } : { ...account, userId: 'team', handle: null };
|
|
101
106
|
} : undefined;
|
|
102
|
-
//
|
|
107
|
+
// Short per-room queues preserve local order; atomic state revisions guard independent writers as well.
|
|
103
108
|
const executor = queueExecutor();
|
|
104
109
|
// One timer for the whole relay, aimed at the earliest auto-close deadline; every write plans it again.
|
|
105
110
|
const scheduler = timerScheduler(() => void relay.tick('auto-close'));
|
|
@@ -219,6 +224,13 @@ async function respond(relay, incoming, outgoing, origin, log) {
|
|
|
219
224
|
const started = Date.now();
|
|
220
225
|
const requestId = requestIdFor(typeof incoming.headers[REQUEST_ID_HEADER] === 'string' ? incoming.headers[REQUEST_ID_HEADER] : null);
|
|
221
226
|
const bodyLimit = requestBodyLimit(incoming);
|
|
227
|
+
const disconnected = new AbortController();
|
|
228
|
+
incoming.once('aborted', () => disconnected.abort());
|
|
229
|
+
outgoing.once('close', () => {
|
|
230
|
+
if (!outgoing.writableEnded) {
|
|
231
|
+
disconnected.abort();
|
|
232
|
+
}
|
|
233
|
+
});
|
|
222
234
|
const finish = (status, headers, body) => {
|
|
223
235
|
outgoing.writeHead(status, { ...headers, [REQUEST_ID_HEADER]: requestId });
|
|
224
236
|
outgoing.end(body);
|
|
@@ -233,12 +245,32 @@ async function respond(relay, incoming, outgoing, origin, log) {
|
|
|
233
245
|
tooLarge();
|
|
234
246
|
return;
|
|
235
247
|
}
|
|
236
|
-
const request = await toRequest(incoming, origin, bodyLimit);
|
|
248
|
+
const request = await toRequest(incoming, origin, bodyLimit, disconnected.signal);
|
|
237
249
|
// Read off the socket: no header can claim where the connection came from.
|
|
238
250
|
const response = await relay.handle(request, { peerAddress: incoming.socket.remoteAddress ?? '' });
|
|
239
|
-
|
|
251
|
+
if (disconnected.signal.aborted) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
outgoing.writeHead(response.status, { ...Object.fromEntries(response.headers), [REQUEST_ID_HEADER]: requestId });
|
|
255
|
+
if (response.body) {
|
|
256
|
+
await pipeline(Readable.fromWeb(response.body), outgoing, { signal: disconnected.signal });
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
outgoing.end();
|
|
260
|
+
}
|
|
261
|
+
const method = incoming.method ?? 'GET';
|
|
262
|
+
if (log && shouldLog(log.mode, method, response.status)) {
|
|
263
|
+
log.write(requestLogLine({ requestId, method, path: (incoming.url ?? '/').split('?', 1)[0], status: response.status, ms: Date.now() - started, at: new Date(started) }));
|
|
264
|
+
}
|
|
240
265
|
}
|
|
241
266
|
catch (error) {
|
|
267
|
+
if (disconnected.signal.aborted) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
if (outgoing.headersSent) {
|
|
271
|
+
outgoing.destroy(error instanceof Error ? error : undefined);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
242
274
|
if (error instanceof RequestBodyTooLarge) {
|
|
243
275
|
tooLarge();
|
|
244
276
|
return;
|
|
@@ -246,7 +278,29 @@ async function respond(relay, incoming, outgoing, origin, log) {
|
|
|
246
278
|
finish(503, { 'content-type': 'application/json' }, JSON.stringify({ error: { code: 'server_unavailable', message: 'the server could not complete this request' } }));
|
|
247
279
|
}
|
|
248
280
|
}
|
|
249
|
-
async function toRequest(incoming, origin, bodyLimit) {
|
|
281
|
+
async function toRequest(incoming, origin, bodyLimit, signal) {
|
|
282
|
+
const method = incoming.method ?? 'GET';
|
|
283
|
+
const headers = new Headers();
|
|
284
|
+
for (const [name, value] of Object.entries(incoming.headers)) {
|
|
285
|
+
if (value !== undefined) {
|
|
286
|
+
headers.set(name, Array.isArray(value) ? value.join(', ') : value);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (method === 'POST' && new URL(incoming.url ?? '/', origin).pathname.endsWith('/files')) {
|
|
290
|
+
let received = 0;
|
|
291
|
+
const source = Readable.toWeb(incoming);
|
|
292
|
+
const body = source.pipeThrough(new TransformStream({
|
|
293
|
+
transform(chunk, controller) {
|
|
294
|
+
received += chunk.byteLength;
|
|
295
|
+
if (received > bodyLimit) {
|
|
296
|
+
throw new RequestBodyTooLarge();
|
|
297
|
+
}
|
|
298
|
+
controller.enqueue(chunk);
|
|
299
|
+
}
|
|
300
|
+
}));
|
|
301
|
+
const init = { method, headers, signal, body, duplex: 'half' };
|
|
302
|
+
return new Request(new URL(incoming.url ?? '/', origin), init);
|
|
303
|
+
}
|
|
250
304
|
const chunks = [];
|
|
251
305
|
let received = 0;
|
|
252
306
|
for await (const chunk of incoming) {
|
|
@@ -256,16 +310,8 @@ async function toRequest(incoming, origin, bodyLimit) {
|
|
|
256
310
|
}
|
|
257
311
|
chunks.push(chunk);
|
|
258
312
|
}
|
|
259
|
-
const method = incoming.method ?? 'GET';
|
|
260
|
-
const headers = new Headers();
|
|
261
|
-
for (const [name, value] of Object.entries(incoming.headers)) {
|
|
262
|
-
if (value === undefined) {
|
|
263
|
-
continue;
|
|
264
|
-
}
|
|
265
|
-
headers.set(name, Array.isArray(value) ? value.join(', ') : value);
|
|
266
|
-
}
|
|
267
313
|
const hasBody = method !== 'GET' && method !== 'HEAD' && chunks.length > 0;
|
|
268
|
-
return new Request(new URL(incoming.url ?? '/', origin), { method, headers, ...(hasBody ? { body: Buffer.concat(chunks) } : {}) });
|
|
314
|
+
return new Request(new URL(incoming.url ?? '/', origin), { method, headers, signal, ...(hasBody ? { body: Buffer.concat(chunks) } : {}) });
|
|
269
315
|
}
|
|
270
316
|
/** Stops taking requests, takes the last backup, then closes the database. */
|
|
271
317
|
function shutdown(server, store, backups) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/settings.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import type { ReceiptMode
|
|
2
|
-
import type { AdmissionLimits } from '@pairlobby/server-core';
|
|
1
|
+
import type { ReceiptMode } from '@pairlobby/protocol';
|
|
2
|
+
import type { AdmissionLimits, RoomLimits } from '@pairlobby/server-core';
|
|
3
3
|
import type { RequestLogMode } from './request-log.js';
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
constructor(message: string);
|
|
7
|
-
}
|
|
4
|
+
export { RelaySettingsError } from '@pairlobby/server-core';
|
|
5
|
+
export type { RoomLimits } from '@pairlobby/server-core';
|
|
8
6
|
export type RelayFlags = {
|
|
9
7
|
host?: string;
|
|
10
8
|
port?: string;
|
|
@@ -62,8 +60,6 @@ export type BackupLocation = {
|
|
|
62
60
|
bucket: string;
|
|
63
61
|
prefix: string;
|
|
64
62
|
};
|
|
65
|
-
/** The per-room caps a relay operator may set. */
|
|
66
|
-
export type RoomLimits = Pick<RoomPolicy, 'maxParticipants' | 'maxRetainedEvents' | 'maxRetainedEventBytes' | 'maxEventPayloadBytes' | 'maxFileBytes' | 'maxRetainedFileBytes'>;
|
|
67
63
|
type Source = {
|
|
68
64
|
flag?: string;
|
|
69
65
|
variable: string;
|
|
@@ -74,5 +70,4 @@ export declare function parsePublicUrl(value: string, source?: Source): string;
|
|
|
74
70
|
export declare function relaySettings(flags: RelayFlags, environment: RelayEnvironment): RelaySettings;
|
|
75
71
|
/** `s3://bucket/prefix` or an absolute folder path (`file://` allowed); null for anything else. */
|
|
76
72
|
export declare function parseBackupLocation(value: string): BackupLocation | null;
|
|
77
|
-
export {};
|
|
78
73
|
//# sourceMappingURL=settings.d.ts.map
|
package/dist/settings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/settings.js
CHANGED
|
@@ -3,34 +3,8 @@
|
|
|
3
3
|
//! PAIRLOBBY_* variables; a flag wins over its variable. Nothing here opens a database,
|
|
4
4
|
//! so a command can check its settings without loading the relay.
|
|
5
5
|
import { readFileSync, statSync } from 'node:fs';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
export class RelaySettingsError extends Error {
|
|
9
|
-
constructor(message) {
|
|
10
|
-
super(message);
|
|
11
|
-
this.name = 'RelaySettingsError';
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
const KIB = 1024;
|
|
15
|
-
const MIB = 1024 * KIB;
|
|
16
|
-
/** Sizes are whole KiB or MiB so a typo cannot turn into a byte count. */
|
|
17
|
-
const ROOM_LIMIT_VARIABLES = [
|
|
18
|
-
{ key: 'maxParticipants', variable: 'PAIRLOBBY_ROOM_MAX_PARTICIPANTS', minimum: 2, maximum: 1000, unitBytes: 1 },
|
|
19
|
-
{ key: 'maxRetainedEvents', variable: 'PAIRLOBBY_ROOM_MAX_EVENTS', minimum: 100, maximum: 10_000_000, unitBytes: 1 },
|
|
20
|
-
{ key: 'maxRetainedEventBytes', variable: 'PAIRLOBBY_ROOM_MAX_HISTORY_MB', minimum: 1, maximum: 10_240, unitBytes: MIB },
|
|
21
|
-
{ key: 'maxEventPayloadBytes', variable: 'PAIRLOBBY_ROOM_MAX_MESSAGE_KB', minimum: 1, maximum: 4096, unitBytes: KIB },
|
|
22
|
-
{ key: 'maxFileBytes', variable: 'PAIRLOBBY_ROOM_MAX_FILE_MB', minimum: 0, maximum: ABSOLUTE_MAX_FILE_BYTES / MIB, unitBytes: MIB },
|
|
23
|
-
{ key: 'maxRetainedFileBytes', variable: 'PAIRLOBBY_ROOM_MAX_FILES_MB', minimum: 0, maximum: 102_400, unitBytes: MIB }
|
|
24
|
-
];
|
|
25
|
-
const LIMIT_VARIABLES = {
|
|
26
|
-
createPerMinutePerAddress: 'PAIRLOBBY_LIMIT_CREATE_PER_MIN_IP',
|
|
27
|
-
redeemPerMinutePerAddress: 'PAIRLOBBY_LIMIT_REDEEM_PER_MIN_IP',
|
|
28
|
-
redeemPerMinuteGlobal: 'PAIRLOBBY_LIMIT_REDEEM_PER_MIN_GLOBAL',
|
|
29
|
-
accountCheckPerMinutePerAddress: 'PAIRLOBBY_LIMIT_ACCOUNT_CHECK_PER_MIN_IP',
|
|
30
|
-
directoryPerMinutePerMember: 'PAIRLOBBY_LIMIT_DIRECTORY_PER_MIN_MEMBER',
|
|
31
|
-
contactPerMinutePerMember: 'PAIRLOBBY_LIMIT_CONTACT_PER_MIN_MEMBER',
|
|
32
|
-
contactPerHourPerListing: 'PAIRLOBBY_LIMIT_CONTACT_PER_HOUR_LISTING'
|
|
33
|
-
};
|
|
6
|
+
import { LIMIT_VARIABLES, ROOM_LIMIT_VARIABLES, RelaySettingsError, relayPolicySettings, wholeSettingNumber as wholeNumber } from '@pairlobby/server-core';
|
|
7
|
+
export { RelaySettingsError } from '@pairlobby/server-core';
|
|
34
8
|
const DISCOVERY_VARIABLES = ['PAIRLOBBY_DISCOVERY_NAME', 'PAIRLOBBY_LOGIN_MODE', 'PAIRLOBBY_LOGIN_HELP', 'PAIRLOBBY_SUPPORT_URL', 'PAIRLOBBY_MEMBERS_FILE', 'PAIRLOBBY_TEAM_TOKEN_LOGIN'];
|
|
35
9
|
/** Every variable `serve` reads, for help text and documentation. */
|
|
36
10
|
export const RELAY_VARIABLES = ['PAIRLOBBY_HOST', 'PAIRLOBBY_PORT', 'PAIRLOBBY_DATA_DIR', 'PAIRLOBBY_PUBLIC_URL', 'PAIRLOBBY_TRUSTED_PROXY_HEADER', 'PAIRLOBBY_PROXY_IS_ACCESS_GATE', 'PAIRLOBBY_ALLOWED_HOSTS', 'PAIRLOBBY_CREATE_TOKEN', 'PAIRLOBBY_CREATE_TOKEN_FILE', 'PAIRLOBBY_REQUEST_LOG', 'PAIRLOBBY_RECEIPT_MODE', 'PAIRLOBBY_BACKUP', 'PAIRLOBBY_BACKUP_INTERVAL', 'PAIRLOBBY_BACKUP_KEEP', 'PAIRLOBBY_BACKUP_S3_ENDPOINT', 'PAIRLOBBY_NO_RESTORE', ...DISCOVERY_VARIABLES, ...Object.values(LIMIT_VARIABLES), ...ROOM_LIMIT_VARIABLES.map(({ variable }) => variable)];
|
|
@@ -54,13 +28,6 @@ export function parsePublicUrl(value, source = { flag: 'public-url', variable: '
|
|
|
54
28
|
}
|
|
55
29
|
return url.origin;
|
|
56
30
|
}
|
|
57
|
-
function wholeNumber(value, source, minimum, maximum) {
|
|
58
|
-
const parsed = Number(value);
|
|
59
|
-
if (!/^\d+$/.test(value) || parsed < minimum || parsed > maximum) {
|
|
60
|
-
throw new RelaySettingsError(`${described(source)} must be a whole number from ${minimum} to ${maximum}, not "${value}"`);
|
|
61
|
-
}
|
|
62
|
-
return parsed;
|
|
63
|
-
}
|
|
64
31
|
/** The token from the variable, or from a file only its owner can read; never both, never from a flag. */
|
|
65
32
|
function createToken(environment) {
|
|
66
33
|
const inline = environment['PAIRLOBBY_CREATE_TOKEN'] || undefined;
|
|
@@ -101,28 +68,11 @@ export function relaySettings(flags, environment) {
|
|
|
101
68
|
throw new RelaySettingsError(`PAIRLOBBY_ALLOWED_HOSTS takes Host values such as relay.internal or relay.internal:8790, not "${value}"`);
|
|
102
69
|
}
|
|
103
70
|
}
|
|
104
|
-
const limits =
|
|
105
|
-
for (const [key, variable] of Object.entries(LIMIT_VARIABLES)) {
|
|
106
|
-
const value = environment[variable]?.trim();
|
|
107
|
-
if (value) {
|
|
108
|
-
limits[key] = wholeNumber(value, { variable }, 1, 1_000_000);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
const roomLimits = {};
|
|
112
|
-
for (const { key, variable, minimum, maximum, unitBytes } of ROOM_LIMIT_VARIABLES) {
|
|
113
|
-
const value = environment[variable]?.trim();
|
|
114
|
-
if (value) {
|
|
115
|
-
roomLimits[key] = wholeNumber(value, { variable }, minimum, maximum) * unitBytes;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
71
|
+
const { limits, roomLimits, receiptMode } = relayPolicySettings(environment);
|
|
118
72
|
const requestLog = pick(flags.requestLog, environment, 'PAIRLOBBY_REQUEST_LOG');
|
|
119
73
|
if (requestLog !== undefined && !['all', 'writes', 'off'].includes(requestLog)) {
|
|
120
74
|
throw new RelaySettingsError(`${described({ flag: 'request-log', variable: 'PAIRLOBBY_REQUEST_LOG' })} must be all, writes or off, not "${requestLog}"`);
|
|
121
75
|
}
|
|
122
|
-
const receiptMode = environment['PAIRLOBBY_RECEIPT_MODE']?.trim() || undefined;
|
|
123
|
-
if (receiptMode !== undefined && !RECEIPT_MODES.includes(receiptMode)) {
|
|
124
|
-
throw new RelaySettingsError(`PAIRLOBBY_RECEIPT_MODE must be events, both or watermark, not "${receiptMode}"`);
|
|
125
|
-
}
|
|
126
76
|
const token = createToken(environment);
|
|
127
77
|
const backup = backupSettings(flags, environment);
|
|
128
78
|
const membersFile = environment['PAIRLOBBY_MEMBERS_FILE']?.trim() || undefined;
|
package/dist/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/sqlite-store.d.ts
CHANGED
|
@@ -1,60 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} | null;
|
|
8
|
-
export declare class SqliteRoomStore implements RoomStore {
|
|
9
|
-
private readonly db;
|
|
10
|
-
readonly files: FileStore;
|
|
11
|
-
/** The agent directory, in the same database as the rooms its listings point into. */
|
|
12
|
-
readonly directory: DirectoryStore;
|
|
13
|
-
constructor(location: string);
|
|
1
|
+
import { SqliteStore } from '@pairlobby/sqlite';
|
|
2
|
+
import type { SqliteStoreOptions } from '@pairlobby/sqlite';
|
|
3
|
+
/** The Node adapter owns its connection, transaction lifetime and online backup. SQL behavior is shared with Durable Objects. */
|
|
4
|
+
export declare class SqliteRoomStore extends SqliteStore {
|
|
5
|
+
private readonly database;
|
|
6
|
+
constructor(location: string, options?: SqliteStoreOptions);
|
|
14
7
|
close(): void;
|
|
15
|
-
/** Rows this store has changed since it opened, so a backup can tell nothing happened. */
|
|
16
8
|
changeCount(): number;
|
|
17
|
-
/** A consistent copy at `destination`, taken a few pages at a time so requests keep being served. */
|
|
18
9
|
snapshot(destination: string): Promise<void>;
|
|
19
|
-
private transaction;
|
|
20
|
-
createRoom(room: RoomRecord, participant: ParticipantRecord, event: RoomEvent): Promise<void>;
|
|
21
|
-
loadRoom(roomId: string): Promise<RoomView | null>;
|
|
22
|
-
apply(mutation: Mutation, idempotency: IdempotencyKey): Promise<void>;
|
|
23
|
-
readEvents(roomId: string, after: number, limit: number): Promise<EventPage>;
|
|
24
|
-
eventBySeq(roomId: string, seq: number): Promise<RoomEvent | null>;
|
|
25
|
-
eventById(roomId: string, eventId: string): Promise<RoomEvent | null>;
|
|
26
|
-
idempotencyRecord(roomId: string, key: string): Promise<IdempotencyRecord | null>;
|
|
27
|
-
putInvite(invite: InviteRecord): Promise<void>;
|
|
28
|
-
inviteByDigest(digest: string): Promise<InviteRecord | null>;
|
|
29
|
-
/** Open, unexpired rooms that can be joined by name, public or protected: those named `name`, ignoring case, or without a name the newest 50. */
|
|
30
|
-
localJoinRooms(name?: string, now?: number): LocalRoom[];
|
|
31
|
-
/** Whether any invite digest starts with this lowercase hex prefix; a range over the primary key, not a scan. */
|
|
32
|
-
hasInviteDigestPrefix(prefix: string): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* The conditional UPDATE is the whole point: a second attempt matches no row
|
|
35
|
-
* and gets null, rather than racing the first into membership creation.
|
|
36
|
-
*/
|
|
37
|
-
reserveInvite(digest: string, attemptId: string, credentialHash: string, expectedOccupantId: string | null): Promise<InviteRecord | null>;
|
|
38
|
-
completeInvite(digest: string, participantId: string): Promise<void>;
|
|
39
|
-
participantByCredential(roomId: string, credentialHash: string): Promise<ParticipantRecord | null>;
|
|
40
|
-
handovers(roomId: string): Promise<HandoverRecord[]>;
|
|
41
|
-
messageRequest(roomId: string, eventId: string): Promise<MessageRequest | null>;
|
|
42
|
-
groupRequests(roomId: string, conversationId: string): Promise<MessageRequest[]>;
|
|
43
|
-
private checkTurnRevision;
|
|
44
|
-
updateTurns(room: RoomRecord, requests: MessageRequest[], expectedRevision: number): Promise<void>;
|
|
45
|
-
messageRequests(roomId: string, after: number, limit: number, recipientId?: string): Promise<RequestPage>;
|
|
46
|
-
unreceivedRequests(roomId: string, recipientId: string, after: number, limit: number): Promise<RequestPage>;
|
|
47
|
-
private writeRequest;
|
|
48
|
-
setLifecycle(roomId: string, lifecycle: RoomRecord['lifecycle']): Promise<void>;
|
|
49
|
-
/** Physical cleanup. Access was already denied by the lifecycle change. */
|
|
50
|
-
deleteRoom(roomId: string): Promise<void>;
|
|
51
|
-
dueAutoCloses(now: number, limit: number): Promise<string[]>;
|
|
52
|
-
nextAutoCloseAt(): Promise<number | null>;
|
|
53
|
-
/** Simulates retention dropping the front of the log without touching room state. */
|
|
54
|
-
dropHistoryBefore(roomId: string, seq: number): void;
|
|
55
|
-
private writeParticipant;
|
|
56
|
-
private writeEvent;
|
|
57
|
-
private rows;
|
|
58
10
|
}
|
|
59
|
-
export {};
|
|
60
11
|
//# sourceMappingURL=sqlite-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../src/sqlite-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../src/sqlite-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAwB,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAqBjF,iIAAiI;AACjI,qBAAa,eAAgB,SAAQ,WAAW;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAE5B,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IAmB9D,KAAK,IAAI,IAAI;IAIb,WAAW,IAAI,MAAM;IAIf,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOrD"}
|
package/dist/sqlite-store.js
CHANGED
|
@@ -1,367 +1,57 @@
|
|
|
1
|
-
//! A `RoomStore` on `node:sqlite`. Every mutation lands inside one immediate
|
|
2
|
-
//! transaction: the JavaScript event loop is not a substitute for SQL isolation
|
|
3
|
-
//! once two requests interleave around an await.
|
|
4
|
-
import { ProtocolError, mergeMessageRequest } from '@pairlobby/protocol';
|
|
5
1
|
import * as sqlite from 'node:sqlite';
|
|
6
2
|
import { DatabaseSync } from 'node:sqlite';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
insert.run(file.fileId, index, bytes.subarray(offset, offset + FILE_CHUNK_BYTES));
|
|
23
|
-
}
|
|
24
|
-
return true;
|
|
25
|
-
}),
|
|
26
|
-
file: async (roomId, fileId) => {
|
|
27
|
-
const row = this.db.prepare('SELECT body FROM files WHERE room_id = ? AND file_id = ?').get(roomId, fileId);
|
|
28
|
-
return row ? JSON.parse(row.body) : null;
|
|
29
|
-
},
|
|
30
|
-
fileBytes: async (roomId, fileId) => {
|
|
31
|
-
const file = this.db.prepare('SELECT size FROM files WHERE room_id = ? AND file_id = ?').get(roomId, fileId);
|
|
32
|
-
if (!file) {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
const bytes = new Uint8Array(Number(file.size));
|
|
36
|
-
let offset = 0;
|
|
37
|
-
for (const chunk of this.db.prepare('SELECT bytes FROM file_chunks WHERE file_id = ? ORDER BY idx').all(fileId)) {
|
|
38
|
-
bytes.set(chunk.bytes, offset);
|
|
39
|
-
offset += chunk.bytes.byteLength;
|
|
40
|
-
}
|
|
41
|
-
return offset === bytes.byteLength ? bytes : null;
|
|
42
|
-
},
|
|
43
|
-
attachedFiles: async (roomId) => this.db.prepare('SELECT body FROM files WHERE room_id = ? AND event_id IS NOT NULL ORDER BY created_at, file_id').all(roomId).map((row) => JSON.parse(row.body)),
|
|
44
|
-
usedBytes: async (roomId) => Number(this.db.prepare('SELECT coalesce(sum(size), 0) AS total FROM files WHERE room_id = ?').get(roomId).total),
|
|
45
|
-
deleteUnattachedFiles: async (roomId, before) => this.transaction(() => {
|
|
46
|
-
this.db.prepare('DELETE FROM file_chunks WHERE file_id IN (SELECT file_id FROM files WHERE room_id = ? AND event_id IS NULL AND created_at < ?)').run(roomId, before);
|
|
47
|
-
this.db.prepare('DELETE FROM files WHERE room_id = ? AND event_id IS NULL AND created_at < ?').run(roomId, before);
|
|
48
|
-
}),
|
|
49
|
-
};
|
|
50
|
-
/** The agent directory, in the same database as the rooms its listings point into. */
|
|
51
|
-
directory = {
|
|
52
|
-
putListing: async (listing) => {
|
|
53
|
-
this.db.prepare('INSERT INTO listings (listing_id, room_id, participant_id, owner, body) VALUES (?, ?, ?, ?, ?) ON CONFLICT (listing_id) DO UPDATE SET owner = excluded.owner, body = excluded.body').run(listing.listingId, listing.roomId, listing.participantId, listing.owner, JSON.stringify(listing));
|
|
54
|
-
},
|
|
55
|
-
listing: async (listingId) => {
|
|
56
|
-
const row = this.db.prepare('SELECT body FROM listings WHERE listing_id = ?').get(listingId);
|
|
57
|
-
return row ? JSON.parse(row.body) : null;
|
|
58
|
-
},
|
|
59
|
-
listingFor: async (roomId, participantId) => {
|
|
60
|
-
const row = this.db.prepare('SELECT body FROM listings WHERE room_id = ? AND participant_id = ?').get(roomId, participantId);
|
|
61
|
-
return row ? JSON.parse(row.body) : null;
|
|
62
|
-
},
|
|
63
|
-
deleteListing: async (listingId) => {
|
|
64
|
-
this.db.prepare('DELETE FROM listings WHERE listing_id = ?').run(listingId);
|
|
65
|
-
},
|
|
66
|
-
ownerListings: async (owner) => this.db.prepare('SELECT body FROM listings WHERE owner = ? ORDER BY listing_id').all(owner).map((row) => JSON.parse(row.body)),
|
|
67
|
-
listings: async (after, limit) => this.db.prepare('SELECT body FROM listings WHERE listing_id > ? ORDER BY listing_id LIMIT ?').all(after, limit).map((row) => JSON.parse(row.body)),
|
|
68
|
-
lastMessageAt: async (roomId, participantId) => {
|
|
69
|
-
const row = this.db.prepare("SELECT json_extract(body, '$.at') AS at FROM events WHERE room_id = ? AND json_extract(body, '$.senderId') = ? AND json_extract(body, '$.type') = 'message' ORDER BY seq DESC LIMIT 1").get(roomId, participantId);
|
|
70
|
-
return row ? Number(row.at) : null;
|
|
71
|
-
},
|
|
72
|
-
memberDefault: async (handle) => {
|
|
73
|
-
const row = this.db.prepare('SELECT body FROM member_defaults WHERE handle = ?').get(handle);
|
|
74
|
-
return row ? JSON.parse(row.body) : null;
|
|
75
|
-
},
|
|
76
|
-
setMemberDefault: async (handle, visibility) => {
|
|
77
|
-
this.db.prepare('INSERT INTO member_defaults (handle, body) VALUES (?, ?) ON CONFLICT (handle) DO UPDATE SET body = excluded.body').run(handle, JSON.stringify(visibility));
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
constructor(location) {
|
|
81
|
-
this.db = new DatabaseSync(location);
|
|
82
|
-
this.db.exec('PRAGMA journal_mode = WAL');
|
|
83
|
-
this.db.exec('PRAGMA foreign_keys = ON');
|
|
84
|
-
this.db.exec('PRAGMA busy_timeout = 5000');
|
|
85
|
-
this.db.exec(SCHEMA);
|
|
86
|
-
if (!this.db.prepare("SELECT value FROM meta WHERE key='message_requests_v1'").get()) {
|
|
87
|
-
this.transaction(() => this.db.exec(REQUEST_BACKFILL_SQL));
|
|
3
|
+
import { SqliteStore } from '@pairlobby/sqlite';
|
|
4
|
+
function bind(value) {
|
|
5
|
+
return value instanceof ArrayBuffer ? new Uint8Array(value) : value;
|
|
6
|
+
}
|
|
7
|
+
function driver(database) {
|
|
8
|
+
return {
|
|
9
|
+
exec: (query) => database.exec(query),
|
|
10
|
+
prepare(query) {
|
|
11
|
+
const statement = database.prepare(query);
|
|
12
|
+
return {
|
|
13
|
+
run: (...values) => statement.run(...values.map(bind)),
|
|
14
|
+
get: (...values) => statement.get(...values.map(bind)),
|
|
15
|
+
all: (...values) => statement.all(...values.map(bind)),
|
|
16
|
+
iterate: (...values) => statement.iterate(...values.map(bind))
|
|
17
|
+
};
|
|
88
18
|
}
|
|
89
|
-
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** The Node adapter owns its connection, transaction lifetime and online backup. SQL behavior is shared with Durable Objects. */
|
|
22
|
+
export class SqliteRoomStore extends SqliteStore {
|
|
23
|
+
database;
|
|
24
|
+
constructor(location, options = {}) {
|
|
25
|
+
const database = new DatabaseSync(location);
|
|
26
|
+
database.exec('PRAGMA journal_mode = WAL');
|
|
27
|
+
database.exec('PRAGMA foreign_keys = ON');
|
|
28
|
+
database.exec('PRAGMA busy_timeout = 5000');
|
|
29
|
+
super(driver(database), (action) => {
|
|
30
|
+
database.exec('BEGIN IMMEDIATE');
|
|
31
|
+
try {
|
|
32
|
+
const result = action();
|
|
33
|
+
database.exec('COMMIT');
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
database.exec('ROLLBACK');
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
}, options);
|
|
41
|
+
this.database = database;
|
|
90
42
|
}
|
|
91
43
|
close() {
|
|
92
|
-
this.
|
|
44
|
+
this.database.close();
|
|
93
45
|
}
|
|
94
|
-
/** Rows this store has changed since it opened, so a backup can tell nothing happened. */
|
|
95
46
|
changeCount() {
|
|
96
|
-
return Number(this.
|
|
47
|
+
return Number(this.database.prepare('SELECT total_changes() AS changes').get()['changes']);
|
|
97
48
|
}
|
|
98
|
-
/** A consistent copy at `destination`, taken a few pages at a time so requests keep being served. */
|
|
99
49
|
async snapshot(destination) {
|
|
100
|
-
// `backup` arrived in Node 22.16; older 22s block for the whole copy instead.
|
|
101
50
|
if (typeof sqlite.backup === 'function') {
|
|
102
|
-
await sqlite.backup(this.
|
|
51
|
+
await sqlite.backup(this.database, destination, { rate: 100 });
|
|
103
52
|
return;
|
|
104
53
|
}
|
|
105
|
-
this.
|
|
106
|
-
}
|
|
107
|
-
transaction(run) {
|
|
108
|
-
this.db.exec('BEGIN IMMEDIATE');
|
|
109
|
-
try {
|
|
110
|
-
const result = run();
|
|
111
|
-
this.db.exec('COMMIT');
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
catch (error) {
|
|
115
|
-
this.db.exec('ROLLBACK');
|
|
116
|
-
throw error;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
async createRoom(room, participant, event) {
|
|
120
|
-
this.transaction(() => {
|
|
121
|
-
this.db.prepare('INSERT INTO rooms (room_id, earliest_seq, body) VALUES (?, 1, ?)').run(room.roomId, JSON.stringify(room));
|
|
122
|
-
this.writeParticipant(participant);
|
|
123
|
-
this.writeEvent(event);
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
async loadRoom(roomId) {
|
|
127
|
-
const row = this.db.prepare('SELECT earliest_seq, body FROM rooms WHERE room_id = ?').get(roomId);
|
|
128
|
-
if (!row) {
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
131
|
-
return {
|
|
132
|
-
room: JSON.parse(row.body),
|
|
133
|
-
participants: this.rows('SELECT body FROM participants WHERE room_id = ? ORDER BY participant_id', roomId),
|
|
134
|
-
handovers: this.rows('SELECT body FROM handovers WHERE room_id = ? ORDER BY handover_id', roomId),
|
|
135
|
-
controls: this.rows('SELECT body FROM controls WHERE room_id = ? ORDER BY target_participant_id', roomId),
|
|
136
|
-
earliestSeq: row.earliest_seq
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
async apply(mutation, idempotency) {
|
|
140
|
-
this.transaction(() => {
|
|
141
|
-
if (mutation.expectedTurnRevision !== undefined) {
|
|
142
|
-
this.checkTurnRevision(mutation.room, mutation.expectedTurnRevision);
|
|
143
|
-
}
|
|
144
|
-
const current = this.db.prepare('SELECT body FROM rooms WHERE room_id=?').get(mutation.room.roomId);
|
|
145
|
-
if (!current || JSON.parse(current.body).nextSeq !== mutation.appendEvent.seq) {
|
|
146
|
-
throw new ProtocolError(mutation.expectedTurnRevision === undefined ? 'server_unavailable' : 'turn_conflict', 'concurrent room mutation; retry with the same idempotency key');
|
|
147
|
-
}
|
|
148
|
-
this.db.prepare('UPDATE rooms SET body = ? WHERE room_id = ?').run(JSON.stringify(mutation.room), mutation.room.roomId);
|
|
149
|
-
for (const participant of mutation.upsertParticipants)
|
|
150
|
-
this.writeParticipant(participant);
|
|
151
|
-
for (const handover of mutation.upsertHandovers) {
|
|
152
|
-
this.db
|
|
153
|
-
.prepare('INSERT INTO handovers (handover_id, room_id, body) VALUES (?, ?, ?) ON CONFLICT (handover_id) DO UPDATE SET body = excluded.body')
|
|
154
|
-
.run(handover.handoverId, handover.roomId, JSON.stringify(handover));
|
|
155
|
-
}
|
|
156
|
-
for (const control of mutation.upsertControls) {
|
|
157
|
-
this.db
|
|
158
|
-
.prepare('INSERT INTO controls (room_id, target_participant_id, body) VALUES (?, ?, ?) ON CONFLICT (room_id, target_participant_id) DO UPDATE SET body = excluded.body')
|
|
159
|
-
.run(control.roomId, control.targetParticipantId, JSON.stringify(control));
|
|
160
|
-
}
|
|
161
|
-
for (const request of mutation.upsertRequests ?? [])
|
|
162
|
-
this.writeRequest(request);
|
|
163
|
-
for (const fileId of mutation.attachFiles ?? []) {
|
|
164
|
-
const row = this.db.prepare('SELECT body FROM files WHERE room_id = ? AND file_id = ? AND event_id IS NULL').get(mutation.room.roomId, fileId);
|
|
165
|
-
if (!row) {
|
|
166
|
-
throw new ProtocolError('invalid_request', 'an attached file is no longer available; upload it again');
|
|
167
|
-
}
|
|
168
|
-
const file = { ...JSON.parse(row.body), eventId: mutation.appendEvent.eventId };
|
|
169
|
-
this.db.prepare('UPDATE files SET event_id = ?, body = ? WHERE file_id = ?').run(file.eventId, JSON.stringify(file), fileId);
|
|
170
|
-
}
|
|
171
|
-
this.writeEvent(mutation.appendEvent);
|
|
172
|
-
if (idempotency) {
|
|
173
|
-
this.db
|
|
174
|
-
.prepare('INSERT INTO idempotency (room_id, key, request_digest, seq) VALUES (?, ?, ?, ?)')
|
|
175
|
-
.run(mutation.room.roomId, idempotency.key, idempotency.requestDigest, mutation.appendEvent.seq);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
async readEvents(roomId, after, limit) {
|
|
180
|
-
const rows = this.db.prepare('SELECT body FROM events WHERE room_id = ? AND seq > ? ORDER BY seq LIMIT ?').all(roomId, after, limit + 1);
|
|
181
|
-
const events = rows.slice(0, limit).map((row) => JSON.parse(row.body));
|
|
182
|
-
return { events, hasMore: rows.length > limit };
|
|
183
|
-
}
|
|
184
|
-
async eventBySeq(roomId, seq) {
|
|
185
|
-
const row = this.db.prepare('SELECT body FROM events WHERE room_id = ? AND seq = ?').get(roomId, seq);
|
|
186
|
-
return row ? JSON.parse(row.body) : null;
|
|
187
|
-
}
|
|
188
|
-
async eventById(roomId, eventId) {
|
|
189
|
-
const row = this.db.prepare("SELECT body FROM events WHERE room_id = ? AND json_extract(body, '$.eventId') = ?").get(roomId, eventId);
|
|
190
|
-
return row ? JSON.parse(row.body) : null;
|
|
191
|
-
}
|
|
192
|
-
async idempotencyRecord(roomId, key) {
|
|
193
|
-
const row = this.db.prepare('SELECT request_digest, seq FROM idempotency WHERE room_id = ? AND key = ?').get(roomId, key);
|
|
194
|
-
return row ? { requestDigest: row.request_digest, seq: row.seq } : null;
|
|
195
|
-
}
|
|
196
|
-
async putInvite(invite) {
|
|
197
|
-
this.db
|
|
198
|
-
.prepare('INSERT INTO invites (digest, room_id, state, bound_attempt_id, body) VALUES (?, ?, ?, ?, ?)')
|
|
199
|
-
.run(invite.digest, invite.roomId, invite.state, invite.boundAttemptId, JSON.stringify(invite));
|
|
200
|
-
}
|
|
201
|
-
async inviteByDigest(digest) {
|
|
202
|
-
const row = this.db.prepare('SELECT body FROM invites WHERE digest = ?').get(digest);
|
|
203
|
-
return row ? JSON.parse(row.body) : null;
|
|
204
|
-
}
|
|
205
|
-
/** Open, unexpired rooms that can be joined by name, public or protected: those named `name`, ignoring case, or without a name the newest 50. */
|
|
206
|
-
localJoinRooms(name, now = Date.now()) {
|
|
207
|
-
const open = "SELECT room_id, body FROM rooms WHERE (json_extract(body, '$.policy.localJoin') = 1 OR json_extract(body, '$.policy.type') = 'protected') AND json_extract(body, '$.lifecycle') = 'open'";
|
|
208
|
-
const rows = (name === undefined
|
|
209
|
-
? this.db.prepare(`${open} ORDER BY json_extract(body, '$.createdAt') DESC LIMIT 50`).all()
|
|
210
|
-
: this.db.prepare(`${open} AND lower(json_extract(body, '$.name')) = lower(?)`).all(name));
|
|
211
|
-
const count = this.db.prepare("SELECT count(*) AS active FROM participants WHERE room_id = ? AND json_extract(body, '$.revokedAt') IS NULL AND json_extract(body, '$.leftAt') IS NULL");
|
|
212
|
-
return rows.map((row) => JSON.parse(row.body)).filter((room) => room.expiresAt === null || room.expiresAt > now).map((room) => ({ roomId: room.roomId, name: room.name, createdAt: room.createdAt, participantCount: Number(count.get(room.roomId).active), type: room.policy.localJoin ? 'public' : 'protected' }));
|
|
213
|
-
}
|
|
214
|
-
/** Whether any invite digest starts with this lowercase hex prefix; a range over the primary key, not a scan. */
|
|
215
|
-
hasInviteDigestPrefix(prefix) {
|
|
216
|
-
return this.db.prepare('SELECT 1 FROM invites WHERE digest >= ? AND digest < ? LIMIT 1').get(prefix, `${prefix}g`) !== undefined;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* The conditional UPDATE is the whole point: a second attempt matches no row
|
|
220
|
-
* and gets null, rather than racing the first into membership creation.
|
|
221
|
-
*/
|
|
222
|
-
async reserveInvite(digest, attemptId, credentialHash, expectedOccupantId) {
|
|
223
|
-
return this.transaction(() => {
|
|
224
|
-
const row = this.db.prepare('SELECT body FROM invites WHERE digest = ?').get(digest);
|
|
225
|
-
if (!row) {
|
|
226
|
-
return null;
|
|
227
|
-
}
|
|
228
|
-
const invite = JSON.parse(row.body);
|
|
229
|
-
if (invite.boundAttemptId === attemptId) {
|
|
230
|
-
return invite;
|
|
231
|
-
}
|
|
232
|
-
if (invite.state === 'reserved') {
|
|
233
|
-
return null;
|
|
234
|
-
}
|
|
235
|
-
if (invite.state === 'redeemed') {
|
|
236
|
-
if (!invite.reusable) {
|
|
237
|
-
return null;
|
|
238
|
-
}
|
|
239
|
-
if (invite.redeemedParticipantId !== expectedOccupantId) {
|
|
240
|
-
return null;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
else if (expectedOccupantId !== null) {
|
|
244
|
-
return null;
|
|
245
|
-
}
|
|
246
|
-
const reserved = { ...invite, state: 'reserved', boundAttemptId: attemptId, boundCredentialHash: credentialHash };
|
|
247
|
-
// The WHERE clause repeats the precondition so a concurrent writer that
|
|
248
|
-
// slipped in between the read and this update loses rather than overwrites.
|
|
249
|
-
const previous = invite.state === 'redeemed' ? invite.redeemedParticipantId : null;
|
|
250
|
-
const result = previous === null ? this.db.prepare("UPDATE invites SET state = 'reserved', bound_attempt_id = ?, body = ? WHERE digest = ? AND state = 'unused'").run(attemptId, JSON.stringify(reserved), digest) : this.db.prepare("UPDATE invites SET state = 'reserved', bound_attempt_id = ?, body = ? WHERE digest = ? AND state = 'redeemed' AND json_extract(body, '$.redeemedParticipantId') = ?").run(attemptId, JSON.stringify(reserved), digest, previous);
|
|
251
|
-
return result.changes === 1 ? reserved : null;
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
async completeInvite(digest, participantId) {
|
|
255
|
-
this.transaction(() => {
|
|
256
|
-
const row = this.db.prepare('SELECT body FROM invites WHERE digest = ?').get(digest);
|
|
257
|
-
if (!row) {
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
const invite = { ...JSON.parse(row.body), state: 'redeemed', redeemedParticipantId: participantId };
|
|
261
|
-
this.db.prepare("UPDATE invites SET state = 'redeemed', body = ? WHERE digest = ?").run(JSON.stringify(invite), digest);
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
async participantByCredential(roomId, credentialHash) {
|
|
265
|
-
const row = this.db.prepare('SELECT body FROM participants WHERE room_id = ? AND credential_hash = ?').get(roomId, credentialHash);
|
|
266
|
-
return row ? JSON.parse(row.body) : null;
|
|
267
|
-
}
|
|
268
|
-
async handovers(roomId) {
|
|
269
|
-
return this.rows('SELECT body FROM handovers WHERE room_id = ? ORDER BY handover_id', roomId);
|
|
270
|
-
}
|
|
271
|
-
async messageRequest(roomId, eventId) {
|
|
272
|
-
const row = this.db.prepare('SELECT body FROM message_requests WHERE room_id=? AND event_id=?').get(roomId, eventId);
|
|
273
|
-
return row ? JSON.parse(row.body) : null;
|
|
274
|
-
}
|
|
275
|
-
async groupRequests(roomId, conversationId) {
|
|
276
|
-
const rows = this.db.prepare("SELECT body FROM message_requests WHERE room_id=? AND json_extract(body,'$.conversationId')=? ORDER BY seq").all(roomId, conversationId);
|
|
277
|
-
return rows.map((row) => JSON.parse(row.body));
|
|
278
|
-
}
|
|
279
|
-
checkTurnRevision(room, expected) {
|
|
280
|
-
const row = this.db.prepare('SELECT body FROM rooms WHERE room_id=?').get(room.roomId);
|
|
281
|
-
if (!row || (JSON.parse(row.body).turnRevision ?? 0) !== expected) {
|
|
282
|
-
throw new ProtocolError('turn_conflict', 'the room turn changed; retry');
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
async updateTurns(room, requests, expectedRevision) {
|
|
286
|
-
this.transaction(() => {
|
|
287
|
-
this.checkTurnRevision(room, expectedRevision);
|
|
288
|
-
const current = this.db.prepare('SELECT body FROM rooms WHERE room_id=?').get(room.roomId);
|
|
289
|
-
if (!current || JSON.parse(current.body).nextSeq !== room.nextSeq) {
|
|
290
|
-
throw new ProtocolError('turn_conflict', 'the room changed while renewing the turn');
|
|
291
|
-
}
|
|
292
|
-
this.db.prepare('UPDATE rooms SET body=? WHERE room_id=?').run(JSON.stringify(room), room.roomId);
|
|
293
|
-
for (const request of requests) {
|
|
294
|
-
this.writeRequest(request);
|
|
295
|
-
}
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
async messageRequests(roomId, after, limit, recipientId) {
|
|
299
|
-
const rows = this.db
|
|
300
|
-
.prepare("SELECT body FROM message_requests WHERE room_id=? AND seq>? AND requires_reply=1 AND response_event_id IS NULL AND (? IS NULL OR json_extract(body,'$.to')=?) ORDER BY seq LIMIT ?")
|
|
301
|
-
.all(roomId, after, recipientId ?? null, recipientId ?? null, limit + 1);
|
|
302
|
-
return { requests: rows.slice(0, limit).map((row) => JSON.parse(row.body)), hasMore: rows.length > limit };
|
|
303
|
-
}
|
|
304
|
-
async unreceivedRequests(roomId, recipientId, after, limit) {
|
|
305
|
-
const rows = this.db
|
|
306
|
-
.prepare("SELECT body FROM message_requests WHERE room_id=? AND seq>? AND received_at IS NULL AND json_extract(body,'$.to')=? ORDER BY seq LIMIT ?")
|
|
307
|
-
.all(roomId, after, recipientId, limit + 1);
|
|
308
|
-
return { requests: rows.slice(0, limit).map((row) => JSON.parse(row.body)), hasMore: rows.length > limit };
|
|
309
|
-
}
|
|
310
|
-
writeRequest(request) {
|
|
311
|
-
// Keep concurrent receipt/progress writes from erasing an accepted reply.
|
|
312
|
-
const old = this.db.prepare('SELECT body FROM message_requests WHERE event_id=?').get(request.eventId);
|
|
313
|
-
const previous = old ? JSON.parse(old.body) : null;
|
|
314
|
-
const merged = mergeMessageRequest(previous, request);
|
|
315
|
-
this.db
|
|
316
|
-
.prepare('INSERT INTO message_requests(event_id,room_id,seq,received_at,response_event_id,requires_reply,body) VALUES(?,?,?,?,?,?,?) ON CONFLICT(event_id) DO UPDATE SET received_at=excluded.received_at,response_event_id=excluded.response_event_id,requires_reply=excluded.requires_reply,body=excluded.body')
|
|
317
|
-
.run(merged.eventId, merged.roomId, merged.seq, merged.receivedAt, merged.responseEventId, merged.requiresReply ? 1 : 0, JSON.stringify(merged));
|
|
318
|
-
}
|
|
319
|
-
async setLifecycle(roomId, lifecycle) {
|
|
320
|
-
this.transaction(() => {
|
|
321
|
-
const row = this.db.prepare('SELECT body FROM rooms WHERE room_id = ?').get(roomId);
|
|
322
|
-
if (!row) {
|
|
323
|
-
return;
|
|
324
|
-
}
|
|
325
|
-
const room = { ...JSON.parse(row.body), lifecycle };
|
|
326
|
-
this.db.prepare('UPDATE rooms SET body = ? WHERE room_id = ?').run(JSON.stringify(room), roomId);
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
/** Physical cleanup. Access was already denied by the lifecycle change. */
|
|
330
|
-
async deleteRoom(roomId) {
|
|
331
|
-
this.transaction(() => {
|
|
332
|
-
this.db.prepare('DELETE FROM file_chunks WHERE file_id IN (SELECT file_id FROM files WHERE room_id = ?)').run(roomId);
|
|
333
|
-
for (const table of ['files', 'message_requests', 'events', 'idempotency', 'handovers', 'controls', 'invites', 'participants', 'listings']) {
|
|
334
|
-
this.db.prepare(`DELETE FROM ${table} WHERE room_id = ?`).run(roomId);
|
|
335
|
-
}
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
async dueAutoCloses(now, limit) {
|
|
339
|
-
const rows = this.db
|
|
340
|
-
.prepare("SELECT room_id FROM rooms WHERE json_extract(body, '$.lifecycle') = 'open' AND json_extract(body, '$.autoCloseAt') IS NOT NULL AND json_extract(body, '$.autoCloseAt') <= ? ORDER BY json_extract(body, '$.autoCloseAt') LIMIT ?")
|
|
341
|
-
.all(now, limit);
|
|
342
|
-
return rows.map((row) => row.room_id);
|
|
343
|
-
}
|
|
344
|
-
async nextAutoCloseAt() {
|
|
345
|
-
const row = this.db.prepare("SELECT min(json_extract(body, '$.autoCloseAt')) AS at FROM rooms WHERE json_extract(body, '$.lifecycle') = 'open' AND json_extract(body, '$.autoCloseAt') IS NOT NULL").get();
|
|
346
|
-
return row.at;
|
|
347
|
-
}
|
|
348
|
-
/** Simulates retention dropping the front of the log without touching room state. */
|
|
349
|
-
dropHistoryBefore(roomId, seq) {
|
|
350
|
-
this.transaction(() => {
|
|
351
|
-
this.db.prepare('DELETE FROM events WHERE room_id = ? AND seq < ?').run(roomId, seq);
|
|
352
|
-
this.db.prepare('UPDATE rooms SET earliest_seq = ? WHERE room_id = ?').run(seq, roomId);
|
|
353
|
-
});
|
|
354
|
-
}
|
|
355
|
-
writeParticipant(participant) {
|
|
356
|
-
this.db
|
|
357
|
-
.prepare('INSERT INTO participants (participant_id, room_id, credential_hash, body) VALUES (?, ?, ?, ?) ON CONFLICT (participant_id) DO UPDATE SET body = excluded.body')
|
|
358
|
-
.run(participant.participantId, participant.roomId, participant.credentialHash, JSON.stringify(participant));
|
|
359
|
-
}
|
|
360
|
-
writeEvent(event) {
|
|
361
|
-
this.db.prepare('INSERT INTO events (room_id, seq, body) VALUES (?, ?, ?)').run(event.roomId, event.seq, JSON.stringify(event));
|
|
362
|
-
}
|
|
363
|
-
rows(sql, roomId) {
|
|
364
|
-
return this.db.prepare(sql).all(roomId).map((row) => JSON.parse(row.body));
|
|
54
|
+
this.database.prepare('VACUUM INTO ?').run(destination);
|
|
365
55
|
}
|
|
366
56
|
}
|
|
367
57
|
//# sourceMappingURL=sqlite-store.js.map
|
package/dist/sqlite-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-store.js","sourceRoot":"","sources":["../src/sqlite-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqlite-store.js","sourceRoot":"","sources":["../src/sqlite-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pairlobby/local-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "PairLobby local-server: part of the PairLobby room protocol and relay",
|
|
5
5
|
"license": "Elastic-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -37,9 +37,10 @@
|
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@pairlobby/protocol": "0.
|
|
41
|
-
"@pairlobby/room-core": "0.
|
|
42
|
-
"@pairlobby/server-core": "0.
|
|
43
|
-
"multicast-dns": "7.2.5"
|
|
40
|
+
"@pairlobby/protocol": "0.33.0",
|
|
41
|
+
"@pairlobby/room-core": "0.33.0",
|
|
42
|
+
"@pairlobby/server-core": "0.33.0",
|
|
43
|
+
"multicast-dns": "7.2.5",
|
|
44
|
+
"@pairlobby/sqlite": "0.33.0"
|
|
44
45
|
}
|
|
45
46
|
}
|