@verdant-web/server 3.3.11 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/server.mjs +110 -107
- package/dist/esm/TokenVerifier.d.ts +1 -0
- package/dist/esm/TokenVerifier.js +3 -0
- package/dist/esm/TokenVerifier.js.map +1 -1
- package/dist/esm/adapters/node/errorHandler.d.ts +2 -0
- package/dist/esm/adapters/node/errorHandler.js +12 -0
- package/dist/esm/adapters/node/errorHandler.js.map +1 -0
- package/dist/esm/adapters/node/getRequestToken.d.ts +1 -0
- package/dist/esm/adapters/node/getRequestToken.js +25 -0
- package/dist/esm/adapters/node/getRequestToken.js.map +1 -0
- package/dist/esm/adapters/node/httpRouter.d.ts +47 -0
- package/dist/esm/adapters/node/httpRouter.js +88 -0
- package/dist/esm/adapters/node/httpRouter.js.map +1 -0
- package/dist/esm/adapters/node/index.d.ts +5 -0
- package/dist/esm/adapters/node/index.js +6 -0
- package/dist/esm/adapters/node/index.js.map +1 -0
- package/dist/esm/adapters/node/tokenMiddleware.d.ts +7 -0
- package/dist/esm/adapters/node/tokenMiddleware.js +22 -0
- package/dist/esm/adapters/node/tokenMiddleware.js.map +1 -0
- package/dist/esm/adapters/node/websocketHandler.d.ts +4 -0
- package/dist/esm/adapters/node/websocketHandler.js +54 -0
- package/dist/esm/adapters/node/websocketHandler.js.map +1 -0
- package/dist/esm/connections/ClientConnection.d.ts +25 -0
- package/dist/esm/{ClientConnection.js → connections/ClientConnection.js} +47 -38
- package/dist/esm/connections/ClientConnection.js.map +1 -0
- package/dist/esm/connections/MessageSender.d.ts +5 -0
- package/dist/esm/connections/MessageSender.js.map +1 -0
- package/dist/esm/connections/Presence.d.ts +23 -0
- package/dist/esm/connections/Presence.js +65 -0
- package/dist/esm/connections/Presence.js.map +1 -0
- package/dist/esm/core.d.ts +15 -0
- package/dist/esm/core.js +15 -0
- package/dist/esm/core.js.map +1 -0
- package/dist/esm/defaults.d.ts +2 -0
- package/dist/esm/defaults.js +3 -0
- package/dist/esm/defaults.js.map +1 -0
- package/dist/esm/files/FileStorage.d.ts +12 -3
- package/dist/esm/files/FileStorage.js +20 -0
- package/dist/esm/files/FileStorage.js.map +1 -1
- package/dist/esm/index.d.ts +7 -7
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internals.d.ts +14 -0
- package/dist/esm/internals.js +12 -0
- package/dist/esm/internals.js.map +1 -0
- package/dist/esm/libraries/Library.d.ts +78 -0
- package/dist/esm/{ServerLibrary.js → libraries/Library.js} +153 -144
- package/dist/esm/libraries/Library.js.map +1 -0
- package/dist/esm/{ServerLibrary.test.js → libraries/Library.test.js} +42 -33
- package/dist/esm/libraries/Library.test.js.map +1 -0
- package/dist/esm/libraries/generic.d.ts +8 -0
- package/dist/esm/libraries/generic.js +2 -0
- package/dist/esm/libraries/generic.js.map +1 -0
- package/dist/esm/libraries/singleNode.d.ts +53 -0
- package/dist/esm/libraries/singleNode.js +88 -0
- package/dist/esm/libraries/singleNode.js.map +1 -0
- package/dist/esm/logger.d.ts +1 -0
- package/dist/esm/logger.js +2 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/storage/Storage.d.ts +39 -38
- package/dist/esm/storage/StorageManager.d.ts +11 -0
- package/dist/esm/storage/StorageManager.js +32 -0
- package/dist/esm/storage/StorageManager.js.map +1 -0
- package/dist/esm/storage/index.d.ts +1 -2
- package/dist/esm/storage/index.js +1 -2
- package/dist/esm/storage/index.js.map +1 -1
- package/dist/esm/storage/sqlShard/Databases.d.ts +5 -3
- package/dist/esm/storage/sqlShard/Databases.js +11 -7
- package/dist/esm/storage/sqlShard/Databases.js.map +1 -1
- package/dist/esm/storage/sqlShard/SqlBaselines.d.ts +16 -17
- package/dist/esm/storage/sqlShard/SqlBaselines.js +55 -59
- package/dist/esm/storage/sqlShard/SqlBaselines.js.map +1 -1
- package/dist/esm/storage/sqlShard/SqlFileMetadata.d.ts +13 -13
- package/dist/esm/storage/sqlShard/SqlFileMetadata.js +44 -57
- package/dist/esm/storage/sqlShard/SqlFileMetadata.js.map +1 -1
- package/dist/esm/storage/sqlShard/SqlOperations.d.ts +12 -12
- package/dist/esm/storage/sqlShard/SqlOperations.js +38 -73
- package/dist/esm/storage/sqlShard/SqlOperations.js.map +1 -1
- package/dist/esm/storage/sqlShard/SqlReplicas.d.ts +18 -17
- package/dist/esm/storage/sqlShard/SqlReplicas.js +63 -100
- package/dist/esm/storage/sqlShard/SqlReplicas.js.map +1 -1
- package/dist/esm/storage/sqlShard/database.d.ts +25 -5
- package/dist/esm/storage/sqlShard/database.js +47 -15
- package/dist/esm/storage/sqlShard/database.js.map +1 -1
- package/dist/esm/storage/sqlShard/migrations/v1.d.ts +2 -3
- package/dist/esm/storage/sqlShard/migrations/v1.js +42 -47
- package/dist/esm/storage/sqlShard/migrations/v1.js.map +1 -1
- package/dist/esm/storage/sqlShard/migrations/v2.d.ts +2 -3
- package/dist/esm/storage/sqlShard/migrations/v2.js +5 -15
- package/dist/esm/storage/sqlShard/migrations/v2.js.map +1 -1
- package/dist/esm/storage/sqlShard/migrations.d.ts +5 -7
- package/dist/esm/storage/sqlShard/migrations.js +48 -1
- package/dist/esm/storage/sqlShard/migrations.js.map +1 -1
- package/dist/esm/storage/sqlShard/sqlShardStorage.d.ts +25 -4
- package/dist/esm/storage/sqlShard/sqlShardStorage.js +43 -40
- package/dist/esm/storage/sqlShard/sqlShardStorage.js.map +1 -1
- package/dist/esm/storage/sqlShard/tables.d.ts +9 -6
- package/dist/esm/types.d.ts +1 -2
- package/package.json +24 -13
- package/src/TokenVerifier.ts +4 -0
- package/src/adapters/node/errorHandler.ts +18 -0
- package/src/adapters/node/getRequestToken.ts +34 -0
- package/src/adapters/node/httpRouter.ts +139 -0
- package/src/adapters/node/index.ts +5 -0
- package/src/adapters/node/tokenMiddleware.ts +32 -0
- package/src/adapters/node/websocketHandler.ts +79 -0
- package/src/{ClientConnection.ts → connections/ClientConnection.ts} +64 -57
- package/src/connections/MessageSender.ts +6 -0
- package/src/connections/Presence.ts +95 -0
- package/src/core.ts +36 -0
- package/src/defaults.ts +2 -0
- package/src/files/FileStorage.ts +36 -3
- package/src/index.ts +7 -7
- package/src/internals.ts +14 -0
- package/src/{ServerLibrary.test.ts → libraries/Library.test.ts} +51 -49
- package/src/{ServerLibrary.ts → libraries/Library.ts} +203 -206
- package/src/libraries/generic.ts +9 -0
- package/src/libraries/singleNode.ts +145 -0
- package/src/logger.ts +4 -0
- package/src/storage/Storage.ts +37 -66
- package/src/storage/StorageManager.ts +39 -0
- package/src/storage/index.ts +1 -2
- package/src/storage/sqlShard/Databases.ts +26 -13
- package/src/storage/sqlShard/SqlBaselines.ts +58 -67
- package/src/storage/sqlShard/SqlFileMetadata.ts +51 -72
- package/src/storage/sqlShard/SqlOperations.ts +57 -81
- package/src/storage/sqlShard/SqlReplicas.ts +80 -121
- package/src/storage/sqlShard/database.ts +82 -18
- package/src/storage/sqlShard/migrations/v1.ts +42 -52
- package/src/storage/sqlShard/migrations/v2.ts +5 -19
- package/src/storage/sqlShard/migrations.ts +66 -1
- package/src/storage/sqlShard/sqlShardStorage.ts +56 -55
- package/src/storage/sqlShard/tables.ts +6 -6
- package/src/types.ts +1 -2
- package/dist/esm/ClientConnection.d.ts +0 -19
- package/dist/esm/ClientConnection.js.map +0 -1
- package/dist/esm/MessageSender.d.ts +0 -5
- package/dist/esm/MessageSender.js.map +0 -1
- package/dist/esm/Presence.d.ts +0 -18
- package/dist/esm/Presence.js +0 -65
- package/dist/esm/Presence.js.map +0 -1
- package/dist/esm/ReplicaKeepaliveTimers.d.ts +0 -17
- package/dist/esm/ReplicaKeepaliveTimers.js +0 -27
- package/dist/esm/ReplicaKeepaliveTimers.js.map +0 -1
- package/dist/esm/Server.d.ts +0 -166
- package/dist/esm/Server.js +0 -572
- package/dist/esm/Server.js.map +0 -1
- package/dist/esm/ServerLibrary.d.ts +0 -64
- package/dist/esm/ServerLibrary.js.map +0 -1
- package/dist/esm/ServerLibrary.test.js.map +0 -1
- package/dist/esm/storage/sql/SqlBaselines.d.ts +0 -22
- package/dist/esm/storage/sql/SqlBaselines.js +0 -107
- package/dist/esm/storage/sql/SqlBaselines.js.map +0 -1
- package/dist/esm/storage/sql/SqlFileMetadata.d.ts +0 -18
- package/dist/esm/storage/sql/SqlFileMetadata.js +0 -69
- package/dist/esm/storage/sql/SqlFileMetadata.js.map +0 -1
- package/dist/esm/storage/sql/SqlOperations.d.ts +0 -19
- package/dist/esm/storage/sql/SqlOperations.js +0 -122
- package/dist/esm/storage/sql/SqlOperations.js.map +0 -1
- package/dist/esm/storage/sql/SqlReplicas.d.ts +0 -32
- package/dist/esm/storage/sql/SqlReplicas.js +0 -163
- package/dist/esm/storage/sql/SqlReplicas.js.map +0 -1
- package/dist/esm/storage/sql/database.d.ts +0 -9
- package/dist/esm/storage/sql/database.js +0 -24
- package/dist/esm/storage/sql/database.js.map +0 -1
- package/dist/esm/storage/sql/migrations/v1.d.ts +0 -3
- package/dist/esm/storage/sql/migrations/v1.js +0 -59
- package/dist/esm/storage/sql/migrations/v1.js.map +0 -1
- package/dist/esm/storage/sql/migrations/v2.d.ts +0 -3
- package/dist/esm/storage/sql/migrations/v2.js +0 -16
- package/dist/esm/storage/sql/migrations/v2.js.map +0 -1
- package/dist/esm/storage/sql/migrations.d.ts +0 -7
- package/dist/esm/storage/sql/migrations.js +0 -4
- package/dist/esm/storage/sql/migrations.js.map +0 -1
- package/dist/esm/storage/sql/sqlStorage.d.ts +0 -6
- package/dist/esm/storage/sql/sqlStorage.js +0 -35
- package/dist/esm/storage/sql/sqlStorage.js.map +0 -1
- package/dist/esm/storage/sql/tables.d.ts +0 -44
- package/dist/esm/storage/sql/tables.js +0 -2
- package/dist/esm/storage/sql/tables.js.map +0 -1
- package/dist/esm/storage/sqlShard/transfer.d.ts +0 -7
- package/dist/esm/storage/sqlShard/transfer.js +0 -90
- package/dist/esm/storage/sqlShard/transfer.js.map +0 -1
- package/dist/esm/storage/sqlShard/transfer.test.d.ts +0 -1
- package/dist/esm/storage/sqlShard/transfer.test.js +0 -109
- package/dist/esm/storage/sqlShard/transfer.test.js.map +0 -1
- package/src/MessageSender.ts +0 -10
- package/src/Presence.ts +0 -86
- package/src/ReplicaKeepaliveTimers.ts +0 -34
- package/src/Server.ts +0 -859
- package/src/storage/sql/SqlBaselines.ts +0 -147
- package/src/storage/sql/SqlFileMetadata.ts +0 -94
- package/src/storage/sql/SqlOperations.ts +0 -160
- package/src/storage/sql/SqlReplicas.ts +0 -234
- package/src/storage/sql/database.ts +0 -32
- package/src/storage/sql/migrations/v1.ts +0 -64
- package/src/storage/sql/migrations/v2.ts +0 -20
- package/src/storage/sql/migrations.ts +0 -4
- package/src/storage/sql/sqlStorage.ts +0 -57
- package/src/storage/sql/tables.ts +0 -51
- package/src/storage/sqlShard/transfer.test.ts +0 -149
- package/src/storage/sqlShard/transfer.ts +0 -123
- /package/dist/esm/{MessageSender.js → connections/MessageSender.js} +0 -0
- /package/dist/esm/{ServerLibrary.test.d.ts → libraries/Library.test.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Library.js","sourceRoot":"","sources":["../../../src/libraries/Library.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { UserProfileLoader } from './Profiles.js';
|
|
3
|
-
import { sqlStorage } from './storage/index.js';
|
|
4
|
-
import { ServerLibrary } from './ServerLibrary.js';
|
|
5
1
|
import { ReplicaType, } from '@verdant-web/common';
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
3
|
+
import { Presence } from '../connections/Presence.js';
|
|
4
|
+
import { UserProfileLoader } from '../Profiles.js';
|
|
5
|
+
import { sqlShardStorage } from '../storage/index.js';
|
|
6
|
+
import { Library } from './Library.js';
|
|
6
7
|
const profiles = new UserProfileLoader({
|
|
7
8
|
get: async (userId) => {
|
|
8
9
|
return {
|
|
@@ -11,13 +12,21 @@ const profiles = new UserProfileLoader({
|
|
|
11
12
|
};
|
|
12
13
|
},
|
|
13
14
|
});
|
|
14
|
-
const baseOptions = () => ({
|
|
15
|
+
const baseOptions = async () => ({
|
|
16
|
+
id: 'library-1',
|
|
15
17
|
profiles,
|
|
16
|
-
storage:
|
|
17
|
-
|
|
18
|
-
})({
|
|
18
|
+
storage: await sqlShardStorage({
|
|
19
|
+
databasesDirectory: ':memory:',
|
|
19
20
|
fileDeleteExpirationDays: 7,
|
|
20
21
|
replicaTruancyMinutes: 60 * 24,
|
|
22
|
+
})('library-1'),
|
|
23
|
+
presence: new Presence({
|
|
24
|
+
get: async (userId) => {
|
|
25
|
+
return {
|
|
26
|
+
id: userId,
|
|
27
|
+
name: 'Alice',
|
|
28
|
+
};
|
|
29
|
+
},
|
|
21
30
|
}),
|
|
22
31
|
});
|
|
23
32
|
let time = 0;
|
|
@@ -49,12 +58,12 @@ function getAllReceivedReplicaOperations(replica) {
|
|
|
49
58
|
}
|
|
50
59
|
return operations;
|
|
51
60
|
}
|
|
52
|
-
describe('
|
|
61
|
+
describe('Library', () => {
|
|
53
62
|
describe('sync handling', () => {
|
|
54
63
|
it('should initialize a new library from a replica', async () => {
|
|
55
64
|
const sender = {
|
|
56
65
|
broadcast: vi.fn(),
|
|
57
|
-
|
|
66
|
+
respond: vi.fn((_, message) => { }),
|
|
58
67
|
};
|
|
59
68
|
const tokenInfo = {
|
|
60
69
|
libraryId: 'library-1',
|
|
@@ -63,7 +72,7 @@ describe('ServerLibrary', () => {
|
|
|
63
72
|
type: ReplicaType.Realtime,
|
|
64
73
|
userId: 'user-1',
|
|
65
74
|
};
|
|
66
|
-
const library = new
|
|
75
|
+
const library = new Library(Object.assign(Object.assign({}, (await baseOptions())), { sender }));
|
|
67
76
|
const messages = [
|
|
68
77
|
{
|
|
69
78
|
type: 'sync',
|
|
@@ -106,9 +115,9 @@ describe('ServerLibrary', () => {
|
|
|
106
115
|
},
|
|
107
116
|
];
|
|
108
117
|
// purposefully do not await in order - these all come at the same time
|
|
109
|
-
await Promise.all(messages.map((m) => library.
|
|
118
|
+
await Promise.all(messages.map((m) => library.handleMessage(m, 'clientKey-1', tokenInfo)));
|
|
110
119
|
// expect sender.broadcast for the operations, and a reply with sync response
|
|
111
|
-
expect(sender.broadcast).toHaveBeenCalledWith(
|
|
120
|
+
expect(sender.broadcast).toHaveBeenCalledWith({
|
|
112
121
|
type: 'op-re',
|
|
113
122
|
baselines: [
|
|
114
123
|
{
|
|
@@ -145,7 +154,7 @@ describe('ServerLibrary', () => {
|
|
|
145
154
|
replicaId: 'replica-1',
|
|
146
155
|
globalAckTimestamp: undefined,
|
|
147
156
|
}, ['clientKey-1']);
|
|
148
|
-
expect(sender.
|
|
157
|
+
expect(sender.respond).toHaveBeenCalledWith('clientKey-1', {
|
|
149
158
|
type: 'sync-resp',
|
|
150
159
|
operations: [],
|
|
151
160
|
baselines: [],
|
|
@@ -163,21 +172,21 @@ describe('ServerLibrary', () => {
|
|
|
163
172
|
const replicaB = createTestReplica('b');
|
|
164
173
|
const replicas = [replicaA, replicaB];
|
|
165
174
|
const sender = {
|
|
166
|
-
broadcast: (
|
|
175
|
+
broadcast: (message, omitKeys) => {
|
|
167
176
|
replicas.forEach((replica) => {
|
|
168
177
|
if (!(omitKeys === null || omitKeys === void 0 ? void 0 : omitKeys.includes(replica.key))) {
|
|
169
178
|
replica.messages.push(message);
|
|
170
179
|
}
|
|
171
180
|
});
|
|
172
181
|
},
|
|
173
|
-
|
|
182
|
+
respond: (clientKey, message) => {
|
|
174
183
|
const replica = replicas.find((r) => r.key === clientKey);
|
|
175
184
|
if (replica) {
|
|
176
185
|
replica.messages.push(message);
|
|
177
186
|
}
|
|
178
187
|
},
|
|
179
188
|
};
|
|
180
|
-
const library = new
|
|
189
|
+
const library = new Library(Object.assign(Object.assign({}, (await baseOptions())), { sender }));
|
|
181
190
|
// replica A sends a sync message to initialize library
|
|
182
191
|
const syncMessageA = {
|
|
183
192
|
type: 'sync',
|
|
@@ -207,7 +216,7 @@ describe('ServerLibrary', () => {
|
|
|
207
216
|
since: null,
|
|
208
217
|
timestamp: now(),
|
|
209
218
|
};
|
|
210
|
-
await library.
|
|
219
|
+
await library.handleMessage(syncMessageA, replicaA.key, replicaA.tokenInfo);
|
|
211
220
|
// concurrently, replica B syncs, and A sends more operations
|
|
212
221
|
const syncMessageB = {
|
|
213
222
|
type: 'sync',
|
|
@@ -236,8 +245,8 @@ describe('ServerLibrary', () => {
|
|
|
236
245
|
timestamp: now(),
|
|
237
246
|
};
|
|
238
247
|
await Promise.all([
|
|
239
|
-
library.
|
|
240
|
-
library.
|
|
248
|
+
library.handleMessage(syncMessageB, replicaB.key, replicaB.tokenInfo),
|
|
249
|
+
library.handleMessage(opMessageA, replicaA.key, replicaA.tokenInfo),
|
|
241
250
|
]);
|
|
242
251
|
// there are two valid scenario outcomes here:
|
|
243
252
|
// 1. A's operation is resolved before B's sync reads operations, and so it's
|
|
@@ -269,7 +278,7 @@ describe('ServerLibrary', () => {
|
|
|
269
278
|
it('should reject syncs with data from read replicas', async () => {
|
|
270
279
|
const sender = {
|
|
271
280
|
broadcast: vi.fn(),
|
|
272
|
-
|
|
281
|
+
respond: vi.fn(),
|
|
273
282
|
};
|
|
274
283
|
const tokenInfo = {
|
|
275
284
|
libraryId: 'library-1',
|
|
@@ -278,7 +287,7 @@ describe('ServerLibrary', () => {
|
|
|
278
287
|
type: ReplicaType.ReadOnlyPull,
|
|
279
288
|
userId: 'user-1',
|
|
280
289
|
};
|
|
281
|
-
const library = new
|
|
290
|
+
const library = new Library(Object.assign(Object.assign({}, (await baseOptions())), { sender }));
|
|
282
291
|
const messages = [
|
|
283
292
|
{
|
|
284
293
|
type: 'sync',
|
|
@@ -321,16 +330,16 @@ describe('ServerLibrary', () => {
|
|
|
321
330
|
},
|
|
322
331
|
];
|
|
323
332
|
// purposefully do not await in order - these all come at the same time
|
|
324
|
-
await Promise.all(messages.map((m) => library.
|
|
325
|
-
expect(sender.
|
|
326
|
-
expect(sender.
|
|
333
|
+
await Promise.all(messages.map((m) => library.handleMessage(m, 'clientKey-1', tokenInfo)));
|
|
334
|
+
expect(sender.respond).toHaveBeenCalledOnce();
|
|
335
|
+
expect(sender.respond).toHaveBeenCalledWith('clientKey-1', {
|
|
327
336
|
type: 'forbidden',
|
|
328
337
|
});
|
|
329
338
|
});
|
|
330
339
|
it('should reject messages from a replica claimed by a user other than the one recorded on the server', async () => {
|
|
331
340
|
const sender = {
|
|
332
341
|
broadcast: vi.fn(),
|
|
333
|
-
|
|
342
|
+
respond: vi.fn((_, message) => { }),
|
|
334
343
|
};
|
|
335
344
|
const tokenInfo = {
|
|
336
345
|
libraryId: 'library-1',
|
|
@@ -339,9 +348,9 @@ describe('ServerLibrary', () => {
|
|
|
339
348
|
type: ReplicaType.Realtime,
|
|
340
349
|
userId: 'user-1',
|
|
341
350
|
};
|
|
342
|
-
const library = new
|
|
351
|
+
const library = new Library(Object.assign(Object.assign({}, (await baseOptions())), { sender }));
|
|
343
352
|
// purposefully do not await in order - these all come at the same time
|
|
344
|
-
await library.
|
|
353
|
+
await library.handleMessage({
|
|
345
354
|
type: 'sync',
|
|
346
355
|
baselines: [],
|
|
347
356
|
operations: [],
|
|
@@ -350,7 +359,7 @@ describe('ServerLibrary', () => {
|
|
|
350
359
|
since: null,
|
|
351
360
|
timestamp: now(),
|
|
352
361
|
}, 'clientKey-1', tokenInfo);
|
|
353
|
-
sender.
|
|
362
|
+
sender.respond.mockReset();
|
|
354
363
|
// now try to send a message from a different user with the same replica
|
|
355
364
|
const tokenInfo2 = {
|
|
356
365
|
libraryId: 'library-1',
|
|
@@ -368,12 +377,12 @@ describe('ServerLibrary', () => {
|
|
|
368
377
|
since: null,
|
|
369
378
|
timestamp: now(),
|
|
370
379
|
};
|
|
371
|
-
await library.
|
|
372
|
-
expect(sender.
|
|
373
|
-
expect(sender.
|
|
380
|
+
await library.handleMessage(message, 'clientKey-1', tokenInfo2);
|
|
381
|
+
expect(sender.respond).toHaveBeenCalledOnce();
|
|
382
|
+
expect(sender.respond).toHaveBeenCalledWith('clientKey-1', {
|
|
374
383
|
type: 'forbidden',
|
|
375
384
|
});
|
|
376
385
|
});
|
|
377
386
|
});
|
|
378
387
|
});
|
|
379
|
-
//# sourceMappingURL=
|
|
388
|
+
//# sourceMappingURL=Library.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Library.test.js","sourceRoot":"","sources":["../../../src/libraries/Library.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,WAAW,GAEX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAA+B;IACpE,GAAG,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7B,OAAO;YACN,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,OAAO;SACb,CAAC;IACH,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;IAChC,EAAE,EAAE,WAAW;IACf,QAAQ;IACR,OAAO,EAAE,MAAM,eAAe,CAAC;QAC9B,kBAAkB,EAAE,UAAU;QAC9B,wBAAwB,EAAE,CAAC;QAC3B,qBAAqB,EAAE,EAAE,GAAG,EAAE;KAC9B,CAAC,CAAC,WAAW,CAAC;IACf,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACtB,GAAG,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;YAC7B,OAAO;gBACN,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,OAAO;aACb,CAAC;QACH,CAAC;KACD,CAAC;CACF,CAAC,CAAC;AAEH,IAAI,IAAI,GAAG,CAAC,CAAC;AACb,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;AAQvC,SAAS,iBAAiB,CAAC,EAAU;IACpC,OAAO;QACN,GAAG,EAAE,aAAa,EAAE,EAAE;QACtB,SAAS,EAAE,WAAW,EAAE,EAAE;QAC1B,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACV,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,4BAA4B;YAC1C,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,MAAM,EAAE,QAAQ,EAAE,EAAE;SACpB;KACD,CAAC;AACH,CAAC;AAED,iDAAiD;AACjD,SAAS,+BAA+B,CAAC,OAAoB;IAC5D,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,OAAO,CAAC;YACb,KAAK,WAAW;gBACf,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM;QACR,CAAC;IACF,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACxB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,MAAM,GAAkB;gBAC7B,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;gBAClB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAS,EAAE,OAAsB,EAAE,EAAE,GAAE,CAAC,CAAC;aACzD,CAAC;YAEF,MAAM,SAAS,GAAc;gBAC5B,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,4BAA4B;gBAC1C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW,CAAC,QAAQ;gBAC1B,MAAM,EAAE,QAAQ;aAChB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;YAEH,MAAM,QAAQ,GAAoB;gBACjC;oBACC,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE;wBACV;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,QAAQ,EAAE;gCACT,KAAK,EAAE,SAAS;gCAChB,OAAO,EAAE,kBAAkB;6BAC3B;yBACD;qBACD;oBACD,UAAU,EAAE;wBACX;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,IAAI,EAAE;gCACL,EAAE,EAAE,KAAK;gCACT,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,UAAU;6BACjB;yBACD;wBACD;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,IAAI,EAAE;gCACL,EAAE,EAAE,YAAY;gCAChB,KAAK,EAAE;oCACN,KAAK,EAAE,cAAc;oCACrB,OAAO,EAAE,uBAAuB;iCAChC;6BACD;yBACD;qBACD;oBACD,SAAS,EAAE,WAAW;oBACtB,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,GAAG,EAAE;iBAChB;aACD,CAAC;YAEF,uEAAuE;YACvE,MAAM,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CACvE,CAAC;YAEF,6EAA6E;YAC7E,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC5C;gBACC,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE;oBACV;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,YAAY;wBACvB,QAAQ,EAAE;4BACT,KAAK,EAAE,SAAS;4BAChB,OAAO,EAAE,kBAAkB;yBAC3B;qBACD;iBACD;gBACD,UAAU,EAAE;oBACX;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,YAAY;wBACvB,IAAI,EAAE;4BACL,EAAE,EAAE,KAAK;4BACT,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,UAAU;yBACjB;qBACD;oBACD;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,YAAY;wBACvB,IAAI,EAAE;4BACL,EAAE,EAAE,YAAY;4BAChB,KAAK,EAAE;gCACN,KAAK,EAAE,cAAc;gCACrB,OAAO,EAAE,uBAAuB;6BAChC;yBACD;qBACD;iBACD;gBACD,SAAS,EAAE,WAAW;gBACtB,kBAAkB,EAAE,SAAS;aAC7B,EACD,CAAC,aAAa,CAAC,CACf,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBAC1D,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,SAAS;gBACvB,cAAc,EAAE,YAAY;gBAC5B,kBAAkB,EAAE,SAAS;gBAC7B,kBAAkB,EAAE,KAAK;gBACzB,YAAY,EAAE,EAAE;aAChB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YACnG,mFAAmF;YACnF,kFAAkF;YAClF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAkB;gBAC7B,SAAS,EAAE,CAAC,OAAsB,EAAE,QAAmB,EAAE,EAAE;oBAC1D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC5B,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,EAAE,CAAC;4BACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAChC,CAAC;oBACF,CAAC,CAAC,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,CAAC,SAAiB,EAAE,OAAsB,EAAE,EAAE;oBACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;oBAC1D,IAAI,OAAO,EAAE,CAAC;wBACb,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAChC,CAAC;gBACF,CAAC;aACD,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;YAEH,uDAAuD;YACvD,MAAM,YAAY,GAAkB;gBACnC,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE;oBACV;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,GAAG,EAAE;wBAChB,QAAQ,EAAE;4BACT,KAAK,EAAE,SAAS;4BAChB,OAAO,EAAE,kBAAkB;yBAC3B;qBACD;iBACD;gBACD,UAAU,EAAE;oBACX;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,GAAG,EAAE;wBAChB,IAAI,EAAE;4BACL,EAAE,EAAE,KAAK;4BACT,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,UAAU;yBACjB;qBACD;iBACD;gBACD,SAAS,EAAE,WAAW;gBACtB,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,EAAE;aAChB,CAAC;YACF,MAAM,OAAO,CAAC,aAAa,CAC1B,YAAY,EACZ,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,SAAS,CAClB,CAAC;YAEF,6DAA6D;YAC7D,MAAM,YAAY,GAAkB;gBACnC,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,WAAW;gBACtB,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,EAAE;gBAChB,SAAS,EAAE,IAAI;aACf,CAAC;YACF,MAAM,UAAU,GAAkB;gBACjC,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE;oBACX;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,GAAG,EAAE;wBAChB,IAAI,EAAE;4BACL,EAAE,EAAE,KAAK;4BACT,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,kBAAkB;yBACzB;qBACD;iBACD;gBACD,SAAS,EAAE,GAAG,EAAE;aAChB,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjB,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC;gBACrE,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC;aACnE,CAAC,CAAC;YAEH,8CAA8C;YAC9C,6EAA6E;YAC7E,mCAAmC;YACnC,6EAA6E;YAC7E,6DAA6D;YAC7D,EAAE;YACF,wDAAwD;YACxD,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC;gBACxC,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,UAAU;iBACjB;aACD,CAAC,CAAC;YACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC;gBACxC,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,kBAAkB;iBACzB;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,MAAM,GAAG;gBACd,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;gBAClB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;aAChB,CAAC;YAEF,MAAM,SAAS,GAAc;gBAC5B,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,4BAA4B;gBAC1C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW,CAAC,YAAY;gBAC9B,MAAM,EAAE,QAAQ;aAChB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;YAEH,MAAM,QAAQ,GAAoB;gBACjC;oBACC,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE;wBACV;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,QAAQ,EAAE;gCACT,KAAK,EAAE,SAAS;gCAChB,OAAO,EAAE,kBAAkB;6BAC3B;yBACD;qBACD;oBACD,UAAU,EAAE;wBACX;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,IAAI,EAAE;gCACL,EAAE,EAAE,KAAK;gCACT,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,UAAU;6BACjB;yBACD;wBACD;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,IAAI,EAAE;gCACL,EAAE,EAAE,YAAY;gCAChB,KAAK,EAAE;oCACN,KAAK,EAAE,cAAc;oCACrB,OAAO,EAAE,uBAAuB;iCAChC;6BACD;yBACD;qBACD;oBACD,SAAS,EAAE,WAAW;oBACtB,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,GAAG,EAAE;iBAChB;aACD,CAAC;YAEF,uEAAuE;YACvE,MAAM,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CACvE,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBAC1D,IAAI,EAAE,WAAW;aACjB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mGAAmG,EAAE,KAAK,IAAI,EAAE;YAClH,MAAM,MAAM,GAAG;gBACd,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;gBAClB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAS,EAAE,OAAsB,EAAE,EAAE,GAAE,CAAC,CAAC;aACzD,CAAC;YAEF,MAAM,SAAS,GAAc;gBAC5B,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,4BAA4B;gBAC1C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW,CAAC,QAAQ;gBAC1B,MAAM,EAAE,QAAQ;aAChB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;YAEH,uEAAuE;YACvE,MAAM,OAAO,CAAC,aAAa,CAC1B;gBACC,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,WAAW;gBACtB,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,EAAE;aAChB,EACD,aAAa,EACb,SAAS,CACT,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAE3B,wEAAwE;YACxE,MAAM,UAAU,GAAc;gBAC7B,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,4BAA4B;gBAC1C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW,CAAC,QAAQ;gBAC1B,MAAM,EAAE,QAAQ;aAChB,CAAC;YAEF,MAAM,OAAO,GAAkB;gBAC9B,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,WAAW;gBACtB,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,EAAE;aAChB,CAAC;YAEF,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;YAEhE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBAC1D,IAAI,EAAE,WAAW;aACjB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LibraryInfo } from '../types.js';
|
|
2
|
+
import { LibraryFileInfo } from './Library.js';
|
|
3
|
+
export interface LibraryApi {
|
|
4
|
+
getFileInfo(fileId: string): Promise<LibraryFileInfo | null>;
|
|
5
|
+
forceTruant: (replicaId: string) => Promise<void>;
|
|
6
|
+
getInfo: () => Promise<LibraryInfo | null>;
|
|
7
|
+
getDocumentSnapshot: (collection: string, id: string) => any;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../src/libraries/generic.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ClientMessage, EventSubscriber } from '@verdant-web/common';
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
import { ReadableStream } from 'stream/web';
|
|
4
|
+
import { UserProfileLoader } from '../Profiles.js';
|
|
5
|
+
import { TokenInfo, TokenVerifier } from '../TokenVerifier.js';
|
|
6
|
+
import { ClientConnectionManager } from '../connections/ClientConnection.js';
|
|
7
|
+
import { FileInfo, FileStorage } from '../files/FileStorage.js';
|
|
8
|
+
import { Library } from '../internals.js';
|
|
9
|
+
import { Logger } from '../logger.js';
|
|
10
|
+
import { StorageFactory } from '../storage/Storage.js';
|
|
11
|
+
import { LibraryEvents } from './Library.js';
|
|
12
|
+
import { LibraryApi } from './generic.js';
|
|
13
|
+
export interface SingleNodeMicroserverConfig {
|
|
14
|
+
storage: StorageFactory;
|
|
15
|
+
fileStorage?: FileStorage;
|
|
16
|
+
disableRebasing?: boolean;
|
|
17
|
+
profiles: UserProfileLoader<any>;
|
|
18
|
+
tokenSecret: string;
|
|
19
|
+
log?: Logger;
|
|
20
|
+
__testMode?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare class SingleNodeLibraryManager {
|
|
23
|
+
private ctx;
|
|
24
|
+
readonly events: EventSubscriber<LibraryEvents>;
|
|
25
|
+
private microserverPromises;
|
|
26
|
+
readonly tokenVerifier: TokenVerifier;
|
|
27
|
+
constructor(ctx: SingleNodeMicroserverConfig);
|
|
28
|
+
get log(): Logger;
|
|
29
|
+
get __testMode(): boolean;
|
|
30
|
+
get: (libraryId: string) => Promise<SingleNodeMicroserver>;
|
|
31
|
+
evict: (libraryId: string) => Promise<void>;
|
|
32
|
+
private constructMicroserver;
|
|
33
|
+
}
|
|
34
|
+
export declare class SingleNodeMicroserver implements LibraryApi {
|
|
35
|
+
private library;
|
|
36
|
+
readonly clientConnections: ClientConnectionManager;
|
|
37
|
+
private ctx;
|
|
38
|
+
constructor(library: Library, clientConnections: ClientConnectionManager, ctx: SingleNodeMicroserverConfig);
|
|
39
|
+
handleMessage: (key: string, info: TokenInfo, message: ClientMessage) => Promise<void>;
|
|
40
|
+
uploadFile: (fileStream: Readable | ReadableStream | any, info: FileInfo) => Promise<void>;
|
|
41
|
+
getFileInfo: (fileId: string) => Promise<{
|
|
42
|
+
libraryId: string;
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
type: string;
|
|
46
|
+
url: string | null;
|
|
47
|
+
} | null>;
|
|
48
|
+
onRequest: (key: string, req: Request, info: TokenInfo) => (() => Response);
|
|
49
|
+
getDocumentSnapshot: (collection: string, documentId: string) => Promise<any | null>;
|
|
50
|
+
destroy: () => Promise<void>;
|
|
51
|
+
getInfo: () => Promise<import("../types.js").LibraryInfo | null>;
|
|
52
|
+
forceTruant: (replicaId: string) => Promise<void>;
|
|
53
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { createOid, EventSubscriber, VerdantError, } from '@verdant-web/common';
|
|
2
|
+
import { TokenVerifier } from '../TokenVerifier.js';
|
|
3
|
+
import { ClientConnectionManager } from '../connections/ClientConnection.js';
|
|
4
|
+
import { FileStorageLibraryDelegate, } from '../files/FileStorage.js';
|
|
5
|
+
import { Library } from '../internals.js';
|
|
6
|
+
const noop = () => { };
|
|
7
|
+
export class SingleNodeLibraryManager {
|
|
8
|
+
constructor(ctx) {
|
|
9
|
+
this.ctx = ctx;
|
|
10
|
+
this.events = new EventSubscriber();
|
|
11
|
+
this.microserverPromises = new Map();
|
|
12
|
+
this.get = async (libraryId) => {
|
|
13
|
+
let microserverPromise = this.microserverPromises.get(libraryId);
|
|
14
|
+
if (!microserverPromise) {
|
|
15
|
+
microserverPromise = this.constructMicroserver(libraryId);
|
|
16
|
+
this.microserverPromises.set(libraryId, microserverPromise);
|
|
17
|
+
}
|
|
18
|
+
return microserverPromise;
|
|
19
|
+
};
|
|
20
|
+
this.evict = async (libraryId) => {
|
|
21
|
+
const lib = await this.get(libraryId);
|
|
22
|
+
await lib.destroy();
|
|
23
|
+
this.microserverPromises.delete(libraryId);
|
|
24
|
+
};
|
|
25
|
+
this.constructMicroserver = async (libraryId) => {
|
|
26
|
+
const clientConnections = new ClientConnectionManager({
|
|
27
|
+
profiles: this.ctx.profiles,
|
|
28
|
+
});
|
|
29
|
+
const storage = await this.ctx.storage(libraryId);
|
|
30
|
+
const library = new Library({
|
|
31
|
+
storage,
|
|
32
|
+
id: libraryId,
|
|
33
|
+
events: this.events,
|
|
34
|
+
sender: clientConnections,
|
|
35
|
+
presence: clientConnections.presence,
|
|
36
|
+
log: (level, ...args) => { var _a, _b; return (_b = (_a = this.ctx).log) === null || _b === void 0 ? void 0 : _b.call(_a, level, `[Library ${libraryId}]`, ...args); },
|
|
37
|
+
fileStorage: this.ctx.fileStorage
|
|
38
|
+
? new FileStorageLibraryDelegate(libraryId, this.ctx.fileStorage)
|
|
39
|
+
: undefined,
|
|
40
|
+
disableRebasing: this.ctx.disableRebasing || false,
|
|
41
|
+
});
|
|
42
|
+
return new SingleNodeMicroserver(library, clientConnections, this.ctx);
|
|
43
|
+
};
|
|
44
|
+
this.tokenVerifier = new TokenVerifier({ secret: ctx.tokenSecret });
|
|
45
|
+
}
|
|
46
|
+
get log() {
|
|
47
|
+
var _a;
|
|
48
|
+
return (_a = this.ctx.log) !== null && _a !== void 0 ? _a : noop;
|
|
49
|
+
}
|
|
50
|
+
get __testMode() {
|
|
51
|
+
return this.ctx.__testMode === true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class SingleNodeMicroserver {
|
|
55
|
+
constructor(library, clientConnections, ctx) {
|
|
56
|
+
this.library = library;
|
|
57
|
+
this.clientConnections = clientConnections;
|
|
58
|
+
this.ctx = ctx;
|
|
59
|
+
this.handleMessage = async (key, info, message) => {
|
|
60
|
+
return this.library.handleMessage(message, key, info);
|
|
61
|
+
};
|
|
62
|
+
this.uploadFile = async (fileStream, info) => {
|
|
63
|
+
if (!this.ctx.fileStorage) {
|
|
64
|
+
throw new VerdantError(VerdantError.Code.ConfigurationError, undefined, 'File storage not configured');
|
|
65
|
+
}
|
|
66
|
+
await this.library.putFileInfo(info);
|
|
67
|
+
await this.ctx.fileStorage.put(fileStream, info);
|
|
68
|
+
};
|
|
69
|
+
this.getFileInfo = async (fileId) => {
|
|
70
|
+
return this.library.getFileInfo(fileId);
|
|
71
|
+
};
|
|
72
|
+
this.onRequest = this.clientConnections.addFetch.bind(this.clientConnections);
|
|
73
|
+
this.getDocumentSnapshot = async (collection, documentId) => {
|
|
74
|
+
return this.library.getDocumentSnapshot(createOid(collection, documentId));
|
|
75
|
+
};
|
|
76
|
+
this.destroy = async () => {
|
|
77
|
+
this.clientConnections.disconnectAll();
|
|
78
|
+
await this.library.destroy();
|
|
79
|
+
};
|
|
80
|
+
this.getInfo = async () => {
|
|
81
|
+
return this.library.getInfo();
|
|
82
|
+
};
|
|
83
|
+
this.forceTruant = async (replicaId) => {
|
|
84
|
+
await this.library.forceTruant(replicaId);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=singleNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singleNode.js","sourceRoot":"","sources":["../../../src/libraries/singleNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Logger = (level: 'info' | 'warn' | 'error' | 'debug', ...args: any[]) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":""}
|
|
@@ -1,59 +1,60 @@
|
|
|
1
1
|
import { DocumentBaseline, Operation, Ref, ReplicaType } from '@verdant-web/common';
|
|
2
|
-
import { HydratedDocumentBaseline, StoredOperation, StoredReplicaInfo, FileMetadata } from '../types.js';
|
|
3
2
|
import { FileInfo } from '../files/FileStorage.js';
|
|
3
|
+
import { FileMetadata, HydratedDocumentBaseline, StoredOperation, StoredReplicaInfo } from '../types.js';
|
|
4
4
|
export interface ReplicaStorage {
|
|
5
5
|
readonly truantCutoff: number;
|
|
6
|
-
get(
|
|
7
|
-
getOrCreate(
|
|
6
|
+
get(replicaId: string): Promise<StoredReplicaInfo | null>;
|
|
7
|
+
getOrCreate(replicaId: string, info: {
|
|
8
8
|
userId: string;
|
|
9
9
|
type: ReplicaType;
|
|
10
10
|
}): Promise<{
|
|
11
11
|
status: 'new' | 'existing' | 'truant';
|
|
12
12
|
replicaInfo: StoredReplicaInfo;
|
|
13
13
|
}>;
|
|
14
|
-
getAll(
|
|
14
|
+
getAll(options?: {
|
|
15
15
|
omitTruant: boolean;
|
|
16
16
|
}): Promise<StoredReplicaInfo[]>;
|
|
17
|
-
updateLastSeen(
|
|
18
|
-
updateAckedServerOrder(
|
|
19
|
-
updateAcknowledgedLogicalTime(
|
|
20
|
-
getEarliestAckedServerOrder(
|
|
21
|
-
acknowledgeOperation(
|
|
22
|
-
getGlobalAck(
|
|
23
|
-
delete(
|
|
24
|
-
deleteAll(
|
|
25
|
-
deleteAllForUser(
|
|
17
|
+
updateLastSeen(replicaId: string): Promise<void>;
|
|
18
|
+
updateAckedServerOrder(replicaId: string, serverOrder: number): Promise<void>;
|
|
19
|
+
updateAcknowledgedLogicalTime(replicaId: string, timestamp: string): Promise<void>;
|
|
20
|
+
getEarliestAckedServerOrder(): Promise<number>;
|
|
21
|
+
acknowledgeOperation(replicaId: string, timestamp: string): Promise<void>;
|
|
22
|
+
getGlobalAck(onlineReplicaIds?: string[]): Promise<string | null>;
|
|
23
|
+
delete(replicaId: string): Promise<void>;
|
|
24
|
+
deleteAll(): Promise<void>;
|
|
25
|
+
deleteAllForUser(userId: string): Promise<void>;
|
|
26
|
+
forceTruant(replicaId: string): Promise<void>;
|
|
26
27
|
}
|
|
27
28
|
export interface OperationStorage {
|
|
28
|
-
getAll(
|
|
29
|
-
getBeforeServerOrder(
|
|
30
|
-
getAfterServerOrder(
|
|
31
|
-
getLatestServerOrder(
|
|
32
|
-
getCount(
|
|
33
|
-
insertAll(
|
|
34
|
-
deleteAll(
|
|
35
|
-
delete(
|
|
29
|
+
getAll(oid: string): Promise<StoredOperation[]>;
|
|
30
|
+
getBeforeServerOrder(beforeServerOrder: number): Promise<StoredOperation[]>;
|
|
31
|
+
getAfterServerOrder(afterServerOrder: number): Promise<StoredOperation[]>;
|
|
32
|
+
getLatestServerOrder(): Promise<number>;
|
|
33
|
+
getCount(): Promise<number>;
|
|
34
|
+
insertAll(replicaId: string, operations: Operation[]): Promise<number>;
|
|
35
|
+
deleteAll(): Promise<void>;
|
|
36
|
+
delete(operations: Operation[]): Promise<void>;
|
|
36
37
|
}
|
|
37
38
|
export interface BaselineStorage {
|
|
38
|
-
get(
|
|
39
|
-
getAll(
|
|
40
|
-
insertAll(
|
|
41
|
-
deleteAll(
|
|
42
|
-
getCount(
|
|
43
|
-
applyOperations(
|
|
39
|
+
get(oid: string): Promise<HydratedDocumentBaseline | null>;
|
|
40
|
+
getAll(): Promise<HydratedDocumentBaseline[]>;
|
|
41
|
+
insertAll(baselines: DocumentBaseline<any>[]): Promise<void>;
|
|
42
|
+
deleteAll(): Promise<void>;
|
|
43
|
+
getCount(): Promise<number>;
|
|
44
|
+
applyOperations(oid: string, operations: StoredOperation[], deletedRefs?: Ref[]): Promise<void>;
|
|
44
45
|
}
|
|
45
46
|
export interface FileMetadataStorage {
|
|
46
|
-
get(
|
|
47
|
-
getAll(
|
|
48
|
-
deleteAll(
|
|
49
|
-
put(
|
|
50
|
-
markPendingDelete(
|
|
51
|
-
delete(
|
|
52
|
-
getPendingDelete(
|
|
47
|
+
get(fileId: string): Promise<FileMetadata | null>;
|
|
48
|
+
getAll(): Promise<FileMetadata[]>;
|
|
49
|
+
deleteAll(): Promise<void>;
|
|
50
|
+
put(fileInfo: FileInfo): Promise<void>;
|
|
51
|
+
markPendingDelete(fileId: string): Promise<void>;
|
|
52
|
+
delete(fileId: string): Promise<void>;
|
|
53
|
+
getPendingDelete(): Promise<FileMetadata[]>;
|
|
53
54
|
}
|
|
54
55
|
export interface StorageOptions {
|
|
55
|
-
replicaTruancyMinutes
|
|
56
|
-
fileDeleteExpirationDays
|
|
56
|
+
replicaTruancyMinutes?: number;
|
|
57
|
+
fileDeleteExpirationDays?: number;
|
|
57
58
|
}
|
|
58
59
|
export interface Storage {
|
|
59
60
|
replicas: ReplicaStorage;
|
|
@@ -62,6 +63,6 @@ export interface Storage {
|
|
|
62
63
|
fileMetadata: FileMetadataStorage;
|
|
63
64
|
close(): Promise<void>;
|
|
64
65
|
readonly open: boolean;
|
|
65
|
-
readonly ready: Promise<void>;
|
|
66
66
|
}
|
|
67
|
-
export type StorageFactory = (
|
|
67
|
+
export type StorageFactory = (libraryId: string) => Promise<Storage>;
|
|
68
|
+
export type StorageFactoryFactory = (options: StorageOptions) => StorageFactory;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Storage, StorageFactory } from './Storage.js';
|
|
2
|
+
export declare class StorageManager {
|
|
3
|
+
private _factory;
|
|
4
|
+
private _cache;
|
|
5
|
+
private _evicts;
|
|
6
|
+
constructor(_factory: StorageFactory);
|
|
7
|
+
open: (libraryId: string) => Promise<Storage>;
|
|
8
|
+
closeAll: () => Promise<void>;
|
|
9
|
+
private refresh;
|
|
10
|
+
private evict;
|
|
11
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export class StorageManager {
|
|
2
|
+
constructor(_factory) {
|
|
3
|
+
this._factory = _factory;
|
|
4
|
+
this._cache = new Map();
|
|
5
|
+
this._evicts = new Map();
|
|
6
|
+
this.open = async (libraryId) => {
|
|
7
|
+
let storage = this._cache.get(libraryId);
|
|
8
|
+
if (!storage) {
|
|
9
|
+
storage = this._factory(libraryId);
|
|
10
|
+
this._cache.set(libraryId, storage);
|
|
11
|
+
}
|
|
12
|
+
this.refresh(libraryId);
|
|
13
|
+
await storage;
|
|
14
|
+
return storage;
|
|
15
|
+
};
|
|
16
|
+
this.closeAll = async () => {
|
|
17
|
+
for (const [libraryId, storage] of this._cache) {
|
|
18
|
+
await (await storage).close();
|
|
19
|
+
this.evict(libraryId);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
this.refresh = (libraryId) => {
|
|
23
|
+
clearTimeout(this._evicts.get(libraryId));
|
|
24
|
+
this._evicts.set(libraryId, setTimeout(this.evict, 1000 * 60 * 60, libraryId));
|
|
25
|
+
};
|
|
26
|
+
this.evict = (libraryId) => {
|
|
27
|
+
this._cache.delete(libraryId);
|
|
28
|
+
this._evicts.delete(libraryId);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=StorageManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../../src/storage/StorageManager.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IAI1B,YAAoB,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;QAHpC,WAAM,GAAkC,IAAI,GAAG,EAAE,CAAC;QAClD,YAAO,GAAgC,IAAI,GAAG,EAAE,CAAC;QAIzD,SAAI,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;YAClC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,OAAO,CAAC;YACd,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC;QAEF,aAAQ,GAAG,KAAK,IAAI,EAAE;YACrB,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChD,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC;QACF,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,SAAiB,EAAE,EAAE;YACvC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CACf,SAAS,EACT,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,CACjD,CAAC;QACH,CAAC,CAAC;QAEM,UAAK,GAAG,CAAC,SAAiB,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC,CAAC;IA/B6C,CAAC;CAgChD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC"}
|