@verdant-web/server 1.8.14-next.0 → 1.8.14

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 (138) hide show
  1. package/dist/cjs/Baselines.d.ts +15 -15
  2. package/dist/cjs/Baselines.js +83 -83
  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 +36 -36
  8. package/dist/cjs/OperationHistory.js +120 -120
  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 +24 -24
  16. package/dist/cjs/Replicas.js +137 -137
  17. package/dist/cjs/Server.d.ts +143 -143
  18. package/dist/cjs/Server.js +396 -396
  19. package/dist/cjs/ServerLibrary.d.ts +77 -77
  20. package/dist/cjs/ServerLibrary.js +487 -487
  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.d.ts +1 -1
  32. package/dist/cjs/migrations/v0.js +4 -4
  33. package/dist/cjs/migrations/v1.d.ts +1 -1
  34. package/dist/cjs/migrations/v1.js +4 -4
  35. package/dist/cjs/migrations/v2.d.ts +1 -1
  36. package/dist/cjs/migrations/v2.js +5 -5
  37. package/dist/cjs/migrations/v3.d.ts +1 -1
  38. package/dist/cjs/migrations/v3.js +5 -5
  39. package/dist/cjs/migrations/v4.d.ts +1 -1
  40. package/dist/cjs/migrations/v4.js +5 -5
  41. package/dist/cjs/migrations/v5.d.ts +2 -2
  42. package/dist/cjs/migrations/v5.js +26 -24
  43. package/dist/cjs/migrations/v5.js.map +1 -1
  44. package/dist/cjs/migrations.d.ts +6 -6
  45. package/dist/cjs/migrations.js +62 -62
  46. package/dist/cjs/migrations.test.d.ts +1 -1
  47. package/dist/cjs/migrations.test.js +110 -110
  48. package/dist/cjs/types.d.ts +22 -22
  49. package/dist/cjs/types.js +2 -2
  50. package/dist/esm/Baselines.d.ts +15 -15
  51. package/dist/esm/Baselines.js +79 -79
  52. package/dist/esm/ClientConnection.d.ts +18 -18
  53. package/dist/esm/ClientConnection.js +101 -101
  54. package/dist/esm/MessageSender.d.ts +5 -5
  55. package/dist/esm/MessageSender.js +1 -1
  56. package/dist/esm/OperationHistory.d.ts +36 -36
  57. package/dist/esm/OperationHistory.js +116 -116
  58. package/dist/esm/Presence.d.ts +15 -15
  59. package/dist/esm/Presence.js +52 -52
  60. package/dist/esm/Profiles.d.ts +10 -10
  61. package/dist/esm/Profiles.js +15 -15
  62. package/dist/esm/ReplicaKeepaliveTimers.d.ts +17 -17
  63. package/dist/esm/ReplicaKeepaliveTimers.js +26 -26
  64. package/dist/esm/Replicas.d.ts +24 -24
  65. package/dist/esm/Replicas.js +133 -133
  66. package/dist/esm/Server.d.ts +143 -143
  67. package/dist/esm/Server.js +389 -389
  68. package/dist/esm/ServerLibrary.d.ts +77 -77
  69. package/dist/esm/ServerLibrary.js +483 -483
  70. package/dist/esm/TokenProvider.d.ts +16 -16
  71. package/dist/esm/TokenProvider.js +19 -19
  72. package/dist/esm/TokenVerifier.d.ts +16 -16
  73. package/dist/esm/TokenVerifier.js +21 -21
  74. package/dist/esm/files/FileMetadata.d.ts +28 -28
  75. package/dist/esm/files/FileMetadata.js +42 -42
  76. package/dist/esm/files/FileStorage.d.ts +35 -35
  77. package/dist/esm/files/FileStorage.js +44 -44
  78. package/dist/esm/index.d.ts +9 -9
  79. package/dist/esm/index.js +4 -4
  80. package/dist/esm/migrations/v0.d.ts +1 -1
  81. package/dist/esm/migrations/v0.js +1 -1
  82. package/dist/esm/migrations/v1.d.ts +1 -1
  83. package/dist/esm/migrations/v1.js +1 -1
  84. package/dist/esm/migrations/v2.d.ts +1 -1
  85. package/dist/esm/migrations/v2.js +2 -2
  86. package/dist/esm/migrations/v3.d.ts +1 -1
  87. package/dist/esm/migrations/v3.js +2 -2
  88. package/dist/esm/migrations/v4.d.ts +1 -1
  89. package/dist/esm/migrations/v4.js +2 -2
  90. package/dist/esm/migrations/v5.d.ts +2 -2
  91. package/dist/esm/migrations/v5.js +22 -20
  92. package/dist/esm/migrations/v5.js.map +1 -1
  93. package/dist/esm/migrations.d.ts +6 -6
  94. package/dist/esm/migrations.js +35 -35
  95. package/dist/esm/migrations.test.d.ts +1 -1
  96. package/dist/esm/migrations.test.js +105 -105
  97. package/dist/esm/types.d.ts +22 -22
  98. package/dist/esm/types.js +1 -1
  99. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  100. package/dist/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +2 -2
  102. package/src/migrations/v5.ts +4 -2
  103. package/dist/cjs/ServerStorage.d.ts +0 -35
  104. package/dist/cjs/ServerStorage.js +0 -60
  105. package/dist/cjs/ServerStorage.js.map +0 -1
  106. package/dist/cjs/migrations/v0.sql.d.ts +0 -2
  107. package/dist/cjs/migrations/v0.sql.js +0 -29
  108. package/dist/cjs/migrations/v0.sql.js.map +0 -1
  109. package/dist/cjs/migrations/v1.sql.d.ts +0 -2
  110. package/dist/cjs/migrations/v1.sql.js +0 -31
  111. package/dist/cjs/migrations/v1.sql.js.map +0 -1
  112. package/dist/cjs/migrations/v2.sql.d.ts +0 -2
  113. package/dist/cjs/migrations/v2.sql.js +0 -28
  114. package/dist/cjs/migrations/v2.sql.js.map +0 -1
  115. package/dist/cjs/migrations/v3.sql.d.ts +0 -2
  116. package/dist/cjs/migrations/v3.sql.js +0 -14
  117. package/dist/cjs/migrations/v3.sql.js.map +0 -1
  118. package/dist/cjs/migrations/v4.sql.d.ts +0 -2
  119. package/dist/cjs/migrations/v4.sql.js +0 -8
  120. package/dist/cjs/migrations/v4.sql.js.map +0 -1
  121. package/dist/esm/ServerStorage.d.ts +0 -44
  122. package/dist/esm/ServerStorage.js +0 -58
  123. package/dist/esm/ServerStorage.js.map +0 -1
  124. package/dist/esm/migrations/v0.sql.d.ts +0 -2
  125. package/dist/esm/migrations/v0.sql.js +0 -27
  126. package/dist/esm/migrations/v0.sql.js.map +0 -1
  127. package/dist/esm/migrations/v1.sql.d.ts +0 -2
  128. package/dist/esm/migrations/v1.sql.js +0 -29
  129. package/dist/esm/migrations/v1.sql.js.map +0 -1
  130. package/dist/esm/migrations/v2.sql.d.ts +0 -2
  131. package/dist/esm/migrations/v2.sql.js +0 -26
  132. package/dist/esm/migrations/v2.sql.js.map +0 -1
  133. package/dist/esm/migrations/v3.sql.d.ts +0 -2
  134. package/dist/esm/migrations/v3.sql.js +0 -12
  135. package/dist/esm/migrations/v3.sql.js.map +0 -1
  136. package/dist/esm/migrations/v4.sql.d.ts +0 -2
  137. package/dist/esm/migrations/v4.sql.js +0 -6
  138. package/dist/esm/migrations/v4.sql.js.map +0 -1
@@ -1,77 +1,77 @@
1
- import { ClientMessage, DocumentBaseline, Operation, ReplicaType, 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
- getInfo: (libraryId: string) => Promise<{
58
- replicas: {
59
- id: string;
60
- ackedLogicalTime: string | null;
61
- ackedServerOrder: number;
62
- type: ReplicaType;
63
- truant: boolean | 0 | null;
64
- profile: any;
65
- }[];
66
- latestServerOrder: number;
67
- operationsCount: number;
68
- baselinesCount: number;
69
- globalAck: string | undefined;
70
- }>;
71
- evictUser: (libraryId: string, userId: string) => void;
72
- getDocumentSnapshot: (libraryId: string, oid: string) => any;
73
- private getObjectSnapshot;
74
- private hydrateObject;
75
- private hydrateFile;
76
- close: () => void;
77
- }
1
+ import { ClientMessage, DocumentBaseline, Operation, ReplicaType, 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
+ getInfo: (libraryId: string) => Promise<{
58
+ replicas: {
59
+ id: string;
60
+ ackedLogicalTime: string | null;
61
+ ackedServerOrder: number;
62
+ type: ReplicaType;
63
+ truant: boolean | 0 | null;
64
+ profile: any;
65
+ }[];
66
+ latestServerOrder: number;
67
+ operationsCount: number;
68
+ baselinesCount: number;
69
+ globalAck: string | undefined;
70
+ }>;
71
+ evictUser: (libraryId: string, userId: string) => void;
72
+ getDocumentSnapshot: (libraryId: string, oid: string) => any;
73
+ private getObjectSnapshot;
74
+ private hydrateObject;
75
+ private hydrateFile;
76
+ close: () => void;
77
+ }