@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,35 +0,0 @@
1
- import { Database } from 'better-sqlite3';
2
- import { ClientMessage } from '@lo-fi/common';
3
- import { MessageSender } from './MessageSender.js';
4
- import { UserProfiles } from './Profiles.js';
5
- import { TokenInfo } from './TokenVerifier.js';
6
- interface ServerStorageOptions {
7
- db: Database;
8
- sender: MessageSender;
9
- profiles: UserProfiles<any>;
10
- replicaTruancyMinutes: number;
11
- log?: (...args: any[]) => void;
12
- disableRebasing?: boolean;
13
- }
14
- export declare class ServerStorage {
15
- private profileLoader;
16
- private libraries;
17
- private db;
18
- private sender;
19
- constructor({ db, sender, profiles, replicaTruancyMinutes, disableRebasing, log, }: ServerStorageOptions);
20
- /**
21
- * Call with any message from any replica
22
- */
23
- receive: (libraryId: string, clientKey: string, message: ClientMessage, info: TokenInfo) => Promise<void>;
24
- /**
25
- * Call when a replica disconnects from the server
26
- */
27
- remove: (libraryId: string, replicaId: string) => void;
28
- evictLibrary: (libraryId: string) => void;
29
- evictUser: (libraryId: string, userId: string) => void;
30
- private createSchema;
31
- close: () => Promise<void>;
32
- getLibraryPresence: (libraryId: string) => Record<string, import("@lo-fi/common").UserInfo<any, any>>;
33
- getDocumentSnapshot: (libraryId: string, documentId: string) => any;
34
- }
35
- export {};
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ServerStorage = void 0;
4
- const ServerLibrary_js_1 = require("./ServerLibrary.js");
5
- const Profiles_js_1 = require("./Profiles.js");
6
- const migrations_js_1 = require("./migrations.js");
7
- class ServerStorage {
8
- constructor({ db, sender, profiles, replicaTruancyMinutes, disableRebasing = false, log = () => { }, }) {
9
- /**
10
- * Call with any message from any replica
11
- */
12
- this.receive = (libraryId, clientKey, message, info) => {
13
- const library = this.libraries.open(libraryId);
14
- return library.receive(message, clientKey, info);
15
- };
16
- /**
17
- * Call when a replica disconnects from the server
18
- */
19
- this.remove = (libraryId, replicaId) => {
20
- const library = this.libraries.open(libraryId);
21
- library.remove(replicaId);
22
- };
23
- this.evictLibrary = (libraryId) => {
24
- const library = this.libraries.open(libraryId);
25
- library.destroy();
26
- };
27
- this.evictUser = (libraryId, userId) => {
28
- const library = this.libraries.open(libraryId);
29
- library.evictUser(userId);
30
- };
31
- this.createSchema = () => {
32
- (0, migrations_js_1.migrations)(this.db);
33
- };
34
- this.close = async () => {
35
- this.db.close();
36
- };
37
- this.getLibraryPresence = (libraryId) => {
38
- const library = this.libraries.open(libraryId);
39
- return library.getPresence();
40
- };
41
- this.getDocumentSnapshot = (libraryId, documentId) => {
42
- const library = this.libraries.open(libraryId);
43
- return library.getDocumentSnapshot(documentId);
44
- };
45
- this.db = db;
46
- this.sender = sender;
47
- this.createSchema();
48
- this.profileLoader = new Profiles_js_1.UserProfileLoader(profiles);
49
- this.libraries = new ServerLibrary_js_1.ServerLibraryManager({
50
- db: this.db,
51
- sender: this.sender,
52
- profileLoader: this.profileLoader,
53
- replicaTruancyMinutes,
54
- log,
55
- disableRebasing,
56
- });
57
- }
58
- }
59
- exports.ServerStorage = ServerStorage;
60
- //# sourceMappingURL=ServerStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServerStorage.js","sourceRoot":"","sources":["../../src/ServerStorage.ts"],"names":[],"mappings":";;;AAEA,yDAA0D;AAE1D,+CAAgE;AAEhE,mDAA6C;AAW7C,MAAa,aAAa;IAMzB,YAAY,EACX,EAAE,EACF,MAAM,EACN,QAAQ,EACR,qBAAqB,EACrB,eAAe,GAAG,KAAK,EACvB,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,GACQ;QAevB;;WAEG;QACH,YAAO,GAAG,CACT,SAAiB,EACjB,SAAiB,EACjB,OAAsB,EACtB,IAAe,EACd,EAAE;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF;;WAEG;QACH,WAAM,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,cAAS,GAAG,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC3B,IAAA,0BAAU,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,UAAK,GAAG,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC;QAEF,uBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC,CAAC;QAEF,wBAAmB,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAE,EAAE;YAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC,CAAC;QA7DD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,+BAAiB,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAoB,CAAC;YACzC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,qBAAqB;YACrB,GAAG;YACH,eAAe;SACf,CAAC,CAAC;IACJ,CAAC;CAkDD;AA5ED,sCA4EC"}
@@ -1,44 +0,0 @@
1
- import { Database } from 'better-sqlite3';
2
- import { ClientMessage } from '@lo-fi/common';
3
- import { MessageSender } from './MessageSender.js';
4
- import { UserProfiles } from './Profiles.js';
5
- import { TokenInfo } from './TokenVerifier.js';
6
- import { FileInfo } from './files/FileStorage.js';
7
- interface ServerStorageOptions {
8
- db: Database;
9
- sender: MessageSender;
10
- profiles: UserProfiles<any>;
11
- replicaTruancyMinutes: number;
12
- log?: (...args: any[]) => void;
13
- disableRebasing?: boolean;
14
- }
15
- export declare class ServerStorage {
16
- private profileLoader;
17
- private library;
18
- private db;
19
- private sender;
20
- private fileMetadata;
21
- constructor({ db, sender, profiles, replicaTruancyMinutes, disableRebasing, log, }: ServerStorageOptions);
22
- /**
23
- * Call with any message from any replica
24
- */
25
- receive: (libraryId: string, clientKey: string, message: ClientMessage, info: TokenInfo) => Promise<void>;
26
- /**
27
- * Call when a replica disconnects from the server
28
- */
29
- remove: (libraryId: string, replicaId: string) => void;
30
- evictLibrary: (libraryId: string) => void;
31
- evictUser: (libraryId: string, userId: string) => void;
32
- private createSchema;
33
- close: () => Promise<void>;
34
- getLibraryPresence: (libraryId: string) => Record<string, import("@lo-fi/common").UserInfo<any, any>>;
35
- getDocumentSnapshot: (libraryId: string, oid: string) => any;
36
- putFileInfo: (libraryId: string, fileInfo: FileInfo) => void;
37
- getFileInfo: (libraryId: string, fileId: string) => {
38
- libraryId: string;
39
- fileId: string;
40
- name: string;
41
- type: string;
42
- };
43
- }
44
- export {};
@@ -1,58 +0,0 @@
1
- import { ServerLibrary } from './ServerLibrary.js';
2
- import { UserProfileLoader } from './Profiles.js';
3
- import { migrations } from './migrations.js';
4
- import { FileMetadata } from './files/FileMetadata.js';
5
- export class ServerStorage {
6
- constructor({ db, sender, profiles, replicaTruancyMinutes, disableRebasing = false, log = () => { }, }) {
7
- /**
8
- * Call with any message from any replica
9
- */
10
- this.receive = (libraryId, clientKey, message, info) => {
11
- return this.library.receive(message, clientKey, info);
12
- };
13
- /**
14
- * Call when a replica disconnects from the server
15
- */
16
- this.remove = (libraryId, replicaId) => {
17
- this.library.remove(libraryId, replicaId);
18
- };
19
- this.evictLibrary = (libraryId) => {
20
- this.library.destroy(libraryId);
21
- };
22
- this.evictUser = (libraryId, userId) => {
23
- this.library.evictUser(libraryId, userId);
24
- };
25
- this.createSchema = () => {
26
- migrations(this.db);
27
- };
28
- this.close = async () => {
29
- this.db.close();
30
- };
31
- this.getLibraryPresence = (libraryId) => {
32
- return this.library.getPresence(libraryId);
33
- };
34
- this.getDocumentSnapshot = (libraryId, oid) => {
35
- return this.library.getDocumentSnapshot(libraryId, oid);
36
- };
37
- this.putFileInfo = (libraryId, fileInfo) => {
38
- this.fileMetadata.put(libraryId, fileInfo);
39
- };
40
- this.getFileInfo = (libraryId, fileId) => {
41
- return this.fileMetadata.get(libraryId, fileId);
42
- };
43
- this.db = db;
44
- this.sender = sender;
45
- this.createSchema();
46
- this.profileLoader = new UserProfileLoader(profiles);
47
- this.library = new ServerLibrary({
48
- db: this.db,
49
- sender: this.sender,
50
- profiles: this.profileLoader,
51
- replicaTruancyMinutes,
52
- log,
53
- disableRebasing,
54
- });
55
- this.fileMetadata = new FileMetadata(this.db);
56
- }
57
- }
58
- //# sourceMappingURL=ServerStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServerStorage.js","sourceRoot":"","sources":["../../src/ServerStorage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAWvD,MAAM,OAAO,aAAa;IAOzB,YAAY,EACX,EAAE,EACF,MAAM,EACN,QAAQ,EACR,qBAAqB,EACrB,eAAe,GAAG,KAAK,EACvB,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,GACQ;QAgBvB;;WAEG;QACH,YAAO,GAAG,CACT,SAAiB,EACjB,SAAiB,EACjB,OAAsB,EACtB,IAAe,EACd,EAAE;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF;;WAEG;QACH,WAAM,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,EAAE;YACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;YACpC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,cAAS,GAAG,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE;YACjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,UAAK,GAAG,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC;QAEF,uBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,wBAAmB,GAAG,CAAC,SAAiB,EAAE,GAAW,EAAE,EAAE;YACxD,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,SAAiB,EAAE,QAAkB,EAAE,EAAE;YACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE;YACnD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC;QAhED,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,qBAAqB;YACrB,GAAG;YACH,eAAe;SACf,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;CAoDD"}