@verdant-web/server 1.7.8 → 1.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/cjs/Baselines.d.ts +14 -14
  2. package/dist/cjs/Baselines.js +77 -77
  3. package/dist/cjs/ClientConnection.d.ts +18 -18
  4. package/dist/cjs/ClientConnection.js +105 -105
  5. package/dist/cjs/MessageSender.d.ts +5 -5
  6. package/dist/cjs/MessageSender.js +2 -2
  7. package/dist/cjs/OperationHistory.d.ts +34 -34
  8. package/dist/cjs/OperationHistory.js +108 -108
  9. package/dist/cjs/Presence.d.ts +15 -15
  10. package/dist/cjs/Presence.js +59 -59
  11. package/dist/cjs/Profiles.d.ts +10 -10
  12. package/dist/cjs/Profiles.js +19 -19
  13. package/dist/cjs/ReplicaKeepaliveTimers.d.ts +17 -17
  14. package/dist/cjs/ReplicaKeepaliveTimers.js +30 -30
  15. package/dist/cjs/Replicas.d.ts +23 -23
  16. package/dist/cjs/Replicas.js +132 -132
  17. package/dist/cjs/Server.d.ts +121 -121
  18. package/dist/cjs/Server.js +377 -377
  19. package/dist/cjs/ServerLibrary.d.ts +63 -63
  20. package/dist/cjs/ServerLibrary.js +467 -467
  21. package/dist/cjs/TokenProvider.d.ts +16 -16
  22. package/dist/cjs/TokenProvider.js +26 -26
  23. package/dist/cjs/TokenVerifier.d.ts +16 -16
  24. package/dist/cjs/TokenVerifier.js +28 -28
  25. package/dist/cjs/files/FileMetadata.d.ts +28 -28
  26. package/dist/cjs/files/FileMetadata.js +46 -46
  27. package/dist/cjs/files/FileStorage.d.ts +35 -35
  28. package/dist/cjs/files/FileStorage.js +71 -71
  29. package/dist/cjs/index.d.ts +9 -9
  30. package/dist/cjs/index.js +11 -11
  31. package/dist/cjs/migrations/v0.sql.d.ts +2 -2
  32. package/dist/cjs/migrations/v0.sql.js +3 -3
  33. package/dist/cjs/migrations/v1.sql.d.ts +2 -2
  34. package/dist/cjs/migrations/v1.sql.js +3 -3
  35. package/dist/cjs/migrations/v2.sql.d.ts +2 -2
  36. package/dist/cjs/migrations/v2.sql.js +4 -4
  37. package/dist/cjs/migrations/v3.sql.d.ts +2 -2
  38. package/dist/cjs/migrations/v3.sql.js +4 -4
  39. package/dist/cjs/migrations/v4.sql.d.ts +2 -2
  40. package/dist/cjs/migrations/v4.sql.js +4 -4
  41. package/dist/cjs/migrations.d.ts +2 -2
  42. package/dist/cjs/migrations.js +32 -32
  43. package/dist/cjs/types.d.ts +22 -22
  44. package/dist/cjs/types.js +2 -2
  45. package/dist/esm/Baselines.d.ts +14 -14
  46. package/dist/esm/Baselines.js +73 -73
  47. package/dist/esm/ClientConnection.d.ts +18 -18
  48. package/dist/esm/ClientConnection.js +101 -101
  49. package/dist/esm/MessageSender.d.ts +5 -5
  50. package/dist/esm/MessageSender.js +1 -1
  51. package/dist/esm/OperationHistory.d.ts +34 -34
  52. package/dist/esm/OperationHistory.js +104 -104
  53. package/dist/esm/Presence.d.ts +15 -15
  54. package/dist/esm/Presence.js +52 -52
  55. package/dist/esm/Profiles.d.ts +10 -10
  56. package/dist/esm/Profiles.js +15 -15
  57. package/dist/esm/ReplicaKeepaliveTimers.d.ts +17 -17
  58. package/dist/esm/ReplicaKeepaliveTimers.js +26 -26
  59. package/dist/esm/Replicas.d.ts +23 -23
  60. package/dist/esm/Replicas.js +128 -128
  61. package/dist/esm/Server.d.ts +121 -121
  62. package/dist/esm/Server.js +370 -370
  63. package/dist/esm/ServerLibrary.d.ts +63 -63
  64. package/dist/esm/ServerLibrary.js +463 -463
  65. package/dist/esm/TokenProvider.d.ts +16 -16
  66. package/dist/esm/TokenProvider.js +19 -19
  67. package/dist/esm/TokenVerifier.d.ts +16 -16
  68. package/dist/esm/TokenVerifier.js +21 -21
  69. package/dist/esm/files/FileMetadata.d.ts +28 -28
  70. package/dist/esm/files/FileMetadata.js +42 -42
  71. package/dist/esm/files/FileStorage.d.ts +35 -35
  72. package/dist/esm/files/FileStorage.js +44 -44
  73. package/dist/esm/index.d.ts +9 -9
  74. package/dist/esm/index.js +4 -4
  75. package/dist/esm/migrations/v0.sql.d.ts +2 -2
  76. package/dist/esm/migrations/v0.sql.js +1 -1
  77. package/dist/esm/migrations/v1.sql.d.ts +2 -2
  78. package/dist/esm/migrations/v1.sql.js +1 -1
  79. package/dist/esm/migrations/v2.sql.d.ts +2 -2
  80. package/dist/esm/migrations/v2.sql.js +2 -2
  81. package/dist/esm/migrations/v3.sql.d.ts +2 -2
  82. package/dist/esm/migrations/v3.sql.js +2 -2
  83. package/dist/esm/migrations/v4.sql.d.ts +2 -2
  84. package/dist/esm/migrations/v4.sql.js +2 -2
  85. package/dist/esm/migrations.d.ts +2 -2
  86. package/dist/esm/migrations.js +25 -25
  87. package/dist/esm/types.d.ts +22 -22
  88. package/dist/esm/types.js +1 -1
  89. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  90. package/dist/tsconfig.tsbuildinfo +1 -1
  91. package/package.json +2 -2
  92. package/dist/cjs/ServerStorage.d.ts +0 -35
  93. package/dist/cjs/ServerStorage.js +0 -60
  94. package/dist/cjs/ServerStorage.js.map +0 -1
  95. package/dist/esm/ServerStorage.d.ts +0 -44
  96. package/dist/esm/ServerStorage.js +0 -58
  97. package/dist/esm/ServerStorage.js.map +0 -1
@@ -1,63 +1,63 @@
1
- import { ClientMessage, DocumentBaseline, Operation, EventSubscriber } from '@verdant-web/common';
2
- import { Database } from 'better-sqlite3';
3
- import { MessageSender } from './MessageSender.js';
4
- import { UserProfileLoader } from './Profiles.js';
5
- import { TokenInfo } from './TokenVerifier.js';
6
- import { FileMetadata } from './files/FileMetadata.js';
7
- import { FileStorage } from './files/FileStorage.js';
8
- export declare type ServerLibraryEvents = {
9
- changes: (info: TokenInfo, operations: Operation[], baselines: DocumentBaseline[]) => void;
10
- };
11
- export declare class ServerLibrary extends EventSubscriber<ServerLibraryEvents> {
12
- private db;
13
- private sender;
14
- private profiles;
15
- private replicas;
16
- private operations;
17
- private baselines;
18
- private presences;
19
- private disableRebasing;
20
- private files;
21
- private fileStorage;
22
- private log;
23
- constructor({ db, sender, profiles, replicaTruancyMinutes, log, disableRebasing, fileMetadata, fileStorage, }: {
24
- db: Database;
25
- sender: MessageSender;
26
- profiles: UserProfileLoader<any>;
27
- replicaTruancyMinutes: number;
28
- log?: (...args: any[]) => void;
29
- disableRebasing?: boolean;
30
- fileMetadata: FileMetadata;
31
- fileStorage?: FileStorage;
32
- });
33
- /**
34
- * Validates a user's access to a replica. If the replica does not
35
- * exist, a user may create it. But if it does exist, its user (clientId)
36
- * must match the user making the request.
37
- */
38
- private validateReplicaAccess;
39
- private hasWriteAccess;
40
- receive: (message: ClientMessage, clientKey: string, info: TokenInfo) => Promise<void>;
41
- remove: (libraryId: string, replicaId: string) => void;
42
- private handleOperation;
43
- private removeExtraOperationData;
44
- private rebroadcastOperations;
45
- private handleSync;
46
- private createAckNonce;
47
- private handleAck;
48
- private updateHighwater;
49
- private pendingRebaseTimeout;
50
- private enqueueRebase;
51
- private rebase;
52
- private handleHeartbeat;
53
- private handlePresenceUpdate;
54
- private onPresenceLost;
55
- destroy: (libraryId: string) => Promise<void>;
56
- getPresence: (libraryId: string) => Record<string, import("@verdant-web/common").UserInfo<any, any>>;
57
- evictUser: (libraryId: string, userId: string) => void;
58
- getDocumentSnapshot: (libraryId: string, oid: string) => any;
59
- private getObjectSnapshot;
60
- private hydrateObject;
61
- private hydrateFile;
62
- close: () => void;
63
- }
1
+ import { ClientMessage, DocumentBaseline, Operation, EventSubscriber } from '@verdant-web/common';
2
+ import { Database } from 'better-sqlite3';
3
+ import { MessageSender } from './MessageSender.js';
4
+ import { UserProfileLoader } from './Profiles.js';
5
+ import { TokenInfo } from './TokenVerifier.js';
6
+ import { FileMetadata } from './files/FileMetadata.js';
7
+ import { FileStorage } from './files/FileStorage.js';
8
+ export declare type ServerLibraryEvents = {
9
+ changes: (info: TokenInfo, operations: Operation[], baselines: DocumentBaseline[]) => void;
10
+ };
11
+ export declare class ServerLibrary extends EventSubscriber<ServerLibraryEvents> {
12
+ private db;
13
+ private sender;
14
+ private profiles;
15
+ private replicas;
16
+ private operations;
17
+ private baselines;
18
+ private presences;
19
+ private disableRebasing;
20
+ private files;
21
+ private fileStorage;
22
+ private log;
23
+ constructor({ db, sender, profiles, replicaTruancyMinutes, log, disableRebasing, fileMetadata, fileStorage, }: {
24
+ db: Database;
25
+ sender: MessageSender;
26
+ profiles: UserProfileLoader<any>;
27
+ replicaTruancyMinutes: number;
28
+ log?: (...args: any[]) => void;
29
+ disableRebasing?: boolean;
30
+ fileMetadata: FileMetadata;
31
+ fileStorage?: FileStorage;
32
+ });
33
+ /**
34
+ * Validates a user's access to a replica. If the replica does not
35
+ * exist, a user may create it. But if it does exist, its user (clientId)
36
+ * must match the user making the request.
37
+ */
38
+ private validateReplicaAccess;
39
+ private hasWriteAccess;
40
+ receive: (message: ClientMessage, clientKey: string, info: TokenInfo) => Promise<void>;
41
+ remove: (libraryId: string, replicaId: string) => void;
42
+ private handleOperation;
43
+ private removeExtraOperationData;
44
+ private rebroadcastOperations;
45
+ private handleSync;
46
+ private createAckNonce;
47
+ private handleAck;
48
+ private updateHighwater;
49
+ private pendingRebaseTimeout;
50
+ private enqueueRebase;
51
+ private rebase;
52
+ private handleHeartbeat;
53
+ private handlePresenceUpdate;
54
+ private onPresenceLost;
55
+ destroy: (libraryId: string) => Promise<void>;
56
+ getPresence: (libraryId: string) => Record<string, import("@verdant-web/common").UserInfo<any, any>>;
57
+ evictUser: (libraryId: string, userId: string) => void;
58
+ getDocumentSnapshot: (libraryId: string, oid: string) => any;
59
+ private getObjectSnapshot;
60
+ private hydrateObject;
61
+ private hydrateFile;
62
+ close: () => void;
63
+ }