@verdant-web/server 1.8.14-next.1 → 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.
- package/dist/cjs/Baselines.d.ts +15 -15
- package/dist/cjs/Baselines.js +83 -83
- package/dist/cjs/ClientConnection.d.ts +18 -18
- package/dist/cjs/ClientConnection.js +105 -105
- package/dist/cjs/MessageSender.d.ts +5 -5
- package/dist/cjs/MessageSender.js +2 -2
- package/dist/cjs/OperationHistory.d.ts +36 -36
- package/dist/cjs/OperationHistory.js +120 -120
- package/dist/cjs/Presence.d.ts +15 -15
- package/dist/cjs/Presence.js +59 -59
- package/dist/cjs/Profiles.d.ts +10 -10
- package/dist/cjs/Profiles.js +19 -19
- package/dist/cjs/ReplicaKeepaliveTimers.d.ts +17 -17
- package/dist/cjs/ReplicaKeepaliveTimers.js +30 -30
- package/dist/cjs/Replicas.d.ts +24 -24
- package/dist/cjs/Replicas.js +137 -137
- package/dist/cjs/Server.d.ts +143 -143
- package/dist/cjs/Server.js +396 -396
- package/dist/cjs/ServerLibrary.d.ts +77 -77
- package/dist/cjs/ServerLibrary.js +487 -487
- package/dist/cjs/TokenProvider.d.ts +16 -16
- package/dist/cjs/TokenProvider.js +26 -26
- package/dist/cjs/TokenVerifier.d.ts +16 -16
- package/dist/cjs/TokenVerifier.js +28 -28
- package/dist/cjs/files/FileMetadata.d.ts +28 -28
- package/dist/cjs/files/FileMetadata.js +46 -46
- package/dist/cjs/files/FileStorage.d.ts +35 -35
- package/dist/cjs/files/FileStorage.js +71 -71
- package/dist/cjs/index.d.ts +9 -9
- package/dist/cjs/index.js +11 -11
- package/dist/cjs/migrations/v0.d.ts +1 -1
- package/dist/cjs/migrations/v0.js +4 -4
- package/dist/cjs/migrations/v1.d.ts +1 -1
- package/dist/cjs/migrations/v1.js +4 -4
- package/dist/cjs/migrations/v2.d.ts +1 -1
- package/dist/cjs/migrations/v2.js +5 -5
- package/dist/cjs/migrations/v3.d.ts +1 -1
- package/dist/cjs/migrations/v3.js +5 -5
- package/dist/cjs/migrations/v4.d.ts +1 -1
- package/dist/cjs/migrations/v4.js +5 -5
- package/dist/cjs/migrations/v5.d.ts +2 -2
- package/dist/cjs/migrations/v5.js +26 -26
- package/dist/cjs/migrations.d.ts +6 -6
- package/dist/cjs/migrations.js +62 -62
- package/dist/cjs/migrations.test.d.ts +1 -1
- package/dist/cjs/migrations.test.js +110 -110
- package/dist/cjs/types.d.ts +22 -22
- package/dist/cjs/types.js +2 -2
- package/dist/esm/Baselines.d.ts +15 -15
- package/dist/esm/Baselines.js +79 -79
- package/dist/esm/ClientConnection.d.ts +18 -18
- package/dist/esm/ClientConnection.js +101 -101
- package/dist/esm/MessageSender.d.ts +5 -5
- package/dist/esm/MessageSender.js +1 -1
- package/dist/esm/OperationHistory.d.ts +36 -36
- package/dist/esm/OperationHistory.js +116 -116
- package/dist/esm/Presence.d.ts +15 -15
- package/dist/esm/Presence.js +52 -52
- package/dist/esm/Profiles.d.ts +10 -10
- package/dist/esm/Profiles.js +15 -15
- package/dist/esm/ReplicaKeepaliveTimers.d.ts +17 -17
- package/dist/esm/ReplicaKeepaliveTimers.js +26 -26
- package/dist/esm/Replicas.d.ts +24 -24
- package/dist/esm/Replicas.js +133 -133
- package/dist/esm/Server.d.ts +143 -143
- package/dist/esm/Server.js +389 -389
- package/dist/esm/ServerLibrary.d.ts +77 -77
- package/dist/esm/ServerLibrary.js +483 -483
- package/dist/esm/TokenProvider.d.ts +16 -16
- package/dist/esm/TokenProvider.js +19 -19
- package/dist/esm/TokenVerifier.d.ts +16 -16
- package/dist/esm/TokenVerifier.js +21 -21
- package/dist/esm/files/FileMetadata.d.ts +28 -28
- package/dist/esm/files/FileMetadata.js +42 -42
- package/dist/esm/files/FileStorage.d.ts +35 -35
- package/dist/esm/files/FileStorage.js +44 -44
- package/dist/esm/index.d.ts +9 -9
- package/dist/esm/index.js +4 -4
- package/dist/esm/migrations/v0.d.ts +1 -1
- package/dist/esm/migrations/v0.js +1 -1
- package/dist/esm/migrations/v1.d.ts +1 -1
- package/dist/esm/migrations/v1.js +1 -1
- package/dist/esm/migrations/v2.d.ts +1 -1
- package/dist/esm/migrations/v2.js +2 -2
- package/dist/esm/migrations/v3.d.ts +1 -1
- package/dist/esm/migrations/v3.js +2 -2
- package/dist/esm/migrations/v4.d.ts +1 -1
- package/dist/esm/migrations/v4.js +2 -2
- package/dist/esm/migrations/v5.d.ts +2 -2
- package/dist/esm/migrations/v5.js +22 -22
- package/dist/esm/migrations.d.ts +6 -6
- package/dist/esm/migrations.js +35 -35
- package/dist/esm/migrations.test.d.ts +1 -1
- package/dist/esm/migrations.test.js +105 -105
- package/dist/esm/types.d.ts +22 -22
- package/dist/esm/types.js +1 -1
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/cjs/ServerStorage.d.ts +0 -35
- package/dist/cjs/ServerStorage.js +0 -60
- package/dist/cjs/ServerStorage.js.map +0 -1
- package/dist/cjs/migrations/v0.sql.d.ts +0 -2
- package/dist/cjs/migrations/v0.sql.js +0 -29
- package/dist/cjs/migrations/v0.sql.js.map +0 -1
- package/dist/cjs/migrations/v1.sql.d.ts +0 -2
- package/dist/cjs/migrations/v1.sql.js +0 -31
- package/dist/cjs/migrations/v1.sql.js.map +0 -1
- package/dist/cjs/migrations/v2.sql.d.ts +0 -2
- package/dist/cjs/migrations/v2.sql.js +0 -28
- package/dist/cjs/migrations/v2.sql.js.map +0 -1
- package/dist/cjs/migrations/v3.sql.d.ts +0 -2
- package/dist/cjs/migrations/v3.sql.js +0 -14
- package/dist/cjs/migrations/v3.sql.js.map +0 -1
- package/dist/cjs/migrations/v4.sql.d.ts +0 -2
- package/dist/cjs/migrations/v4.sql.js +0 -8
- package/dist/cjs/migrations/v4.sql.js.map +0 -1
- package/dist/esm/ServerStorage.d.ts +0 -44
- package/dist/esm/ServerStorage.js +0 -58
- package/dist/esm/ServerStorage.js.map +0 -1
- package/dist/esm/migrations/v0.sql.d.ts +0 -2
- package/dist/esm/migrations/v0.sql.js +0 -27
- package/dist/esm/migrations/v0.sql.js.map +0 -1
- package/dist/esm/migrations/v1.sql.d.ts +0 -2
- package/dist/esm/migrations/v1.sql.js +0 -29
- package/dist/esm/migrations/v1.sql.js.map +0 -1
- package/dist/esm/migrations/v2.sql.d.ts +0 -2
- package/dist/esm/migrations/v2.sql.js +0 -26
- package/dist/esm/migrations/v2.sql.js.map +0 -1
- package/dist/esm/migrations/v3.sql.d.ts +0 -2
- package/dist/esm/migrations/v3.sql.js +0 -12
- package/dist/esm/migrations/v3.sql.js.map +0 -1
- package/dist/esm/migrations/v4.sql.d.ts +0 -2
- package/dist/esm/migrations/v4.sql.js +0 -6
- package/dist/esm/migrations/v4.sql.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,2 +0,0 @@
|
|
|
1
|
-
declare const _default: "\nCREATE TABLE IF NOT EXISTS ReplicaInfo (\n id TEXT PRIMARY KEY NOT NULL,\n libraryId TEXT NOT NULL,\n clientId TEXT NOT NULL,\n lastSeenWallClockTime INTEGER,\n ackedLogicalTime TEXT,\n type INTEGER NOT NULL DEFAULT 0\n);\n\nCREATE TABLE IF NOT EXISTS OperationHistory (\n libraryId TEXT NOT NULL,\n replicaId TEXT NOT NULL,\n oid TEXT NOT NULL,\n data TEXT NOT NULL,\n timestamp INTEGER NOT NULL,\n PRIMARY KEY (libraryId, replicaId, oid, timestamp)\n);\n\nCREATE TABLE IF NOT EXISTS DocumentBaseline (\n oid TEXT PRIMARY KEY NOT NULL,\n snapshot TEXT,\n timestamp TEXT NOT NULL,\n libraryId TEXT NOT NULL\n);\n";
|
|
2
|
-
export default _default;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = `
|
|
4
|
-
CREATE TABLE IF NOT EXISTS ReplicaInfo (
|
|
5
|
-
id TEXT PRIMARY KEY NOT NULL,
|
|
6
|
-
libraryId TEXT NOT NULL,
|
|
7
|
-
clientId TEXT NOT NULL,
|
|
8
|
-
lastSeenWallClockTime INTEGER,
|
|
9
|
-
ackedLogicalTime TEXT,
|
|
10
|
-
type INTEGER NOT NULL DEFAULT 0
|
|
11
|
-
);
|
|
12
|
-
|
|
13
|
-
CREATE TABLE IF NOT EXISTS OperationHistory (
|
|
14
|
-
libraryId TEXT NOT NULL,
|
|
15
|
-
replicaId TEXT NOT NULL,
|
|
16
|
-
oid TEXT NOT NULL,
|
|
17
|
-
data TEXT NOT NULL,
|
|
18
|
-
timestamp INTEGER NOT NULL,
|
|
19
|
-
PRIMARY KEY (libraryId, replicaId, oid, timestamp)
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
CREATE TABLE IF NOT EXISTS DocumentBaseline (
|
|
23
|
-
oid TEXT PRIMARY KEY NOT NULL,
|
|
24
|
-
snapshot TEXT,
|
|
25
|
-
timestamp TEXT NOT NULL,
|
|
26
|
-
libraryId TEXT NOT NULL
|
|
27
|
-
);
|
|
28
|
-
`;
|
|
29
|
-
//# sourceMappingURL=v0.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v0.sql.js","sourceRoot":"","sources":["../../../src/migrations/v0.sql.ts"],"names":[],"mappings":";;AAAA,kBAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAyBd,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
declare const _default: "\nALTER TABLE\n ReplicaInfo RENAME TO ReplicaInfoOld;\n\nCREATE TABLE ReplicaInfo (\n id TEXT NOT NULL,\n libraryId TEXT NOT NULL,\n clientId TEXT NOT NULL,\n lastSeenWallClockTime INTEGER,\n ackedLogicalTime TEXT,\n type INTEGER NOT NULL DEFAULT 0,\n PRIMARY KEY (id, libraryId)\n);\n\nINSERT INTO\n ReplicaInfo\nSELECT\n id,\n libraryId,\n clientId,\n lastSeenWallClockTime,\n ackedLogicalTime,\n type\nFROM\n ReplicaInfoOld;\n\nDROP TABLE ReplicaInfoOld;\n";
|
|
2
|
-
export default _default;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = `
|
|
4
|
-
ALTER TABLE
|
|
5
|
-
ReplicaInfo RENAME TO ReplicaInfoOld;
|
|
6
|
-
|
|
7
|
-
CREATE TABLE ReplicaInfo (
|
|
8
|
-
id TEXT NOT NULL,
|
|
9
|
-
libraryId TEXT NOT NULL,
|
|
10
|
-
clientId TEXT NOT NULL,
|
|
11
|
-
lastSeenWallClockTime INTEGER,
|
|
12
|
-
ackedLogicalTime TEXT,
|
|
13
|
-
type INTEGER NOT NULL DEFAULT 0,
|
|
14
|
-
PRIMARY KEY (id, libraryId)
|
|
15
|
-
);
|
|
16
|
-
|
|
17
|
-
INSERT INTO
|
|
18
|
-
ReplicaInfo
|
|
19
|
-
SELECT
|
|
20
|
-
id,
|
|
21
|
-
libraryId,
|
|
22
|
-
clientId,
|
|
23
|
-
lastSeenWallClockTime,
|
|
24
|
-
ackedLogicalTime,
|
|
25
|
-
type
|
|
26
|
-
FROM
|
|
27
|
-
ReplicaInfoOld;
|
|
28
|
-
|
|
29
|
-
DROP TABLE ReplicaInfoOld;
|
|
30
|
-
`;
|
|
31
|
-
//# sourceMappingURL=v1.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v1.sql.js","sourceRoot":"","sources":["../../../src/migrations/v1.sql.ts"],"names":[],"mappings":";;AAAA,kBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bd,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
declare const _default: "\n ALTER TABLE\n DocumentBaseline RENAME TO DocumentBaselineOld;\n\n CREATE TABLE DocumentBaseline (\n oid TEXT NOT NULL,\n snapshot TEXT,\n timestamp TEXT NOT NULL,\n libraryId TEXT NOT NULL,\n PRIMARY KEY (libraryId, oid)\n );\n\n INSERT INTO\n DocumentBaseline\n SELECT\n oid,\n snapshot,\n timestamp,\n libraryId\n FROM\n DocumentBaselineOld;\n\n DROP TABLE DocumentBaselineOld;\n";
|
|
2
|
-
export default _default;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// fixes primary key for document baselines to include libraryId
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.default = `
|
|
5
|
-
ALTER TABLE
|
|
6
|
-
DocumentBaseline RENAME TO DocumentBaselineOld;
|
|
7
|
-
|
|
8
|
-
CREATE TABLE DocumentBaseline (
|
|
9
|
-
oid TEXT NOT NULL,
|
|
10
|
-
snapshot TEXT,
|
|
11
|
-
timestamp TEXT NOT NULL,
|
|
12
|
-
libraryId TEXT NOT NULL,
|
|
13
|
-
PRIMARY KEY (libraryId, oid)
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
INSERT INTO
|
|
17
|
-
DocumentBaseline
|
|
18
|
-
SELECT
|
|
19
|
-
oid,
|
|
20
|
-
snapshot,
|
|
21
|
-
timestamp,
|
|
22
|
-
libraryId
|
|
23
|
-
FROM
|
|
24
|
-
DocumentBaselineOld;
|
|
25
|
-
|
|
26
|
-
DROP TABLE DocumentBaselineOld;
|
|
27
|
-
`;
|
|
28
|
-
//# sourceMappingURL=v2.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v2.sql.js","sourceRoot":"","sources":["../../../src/migrations/v2.sql.ts"],"names":[],"mappings":";AAAA,gEAAgE;;AAEhE,kBAAe;;;;;;;;;;;;;;;;;;;;;;;CAuBd,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// add the FileMetadata table
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.default = `
|
|
5
|
-
CREATE TABLE IF NOT EXISTS FileMetadata (
|
|
6
|
-
libraryId TEXT NOT NULL,
|
|
7
|
-
fileId TEXT NOT NULL,
|
|
8
|
-
name TEXT NOT NULL,
|
|
9
|
-
type TEXT NOT NULL,
|
|
10
|
-
pendingDeleteAt INTEGER,
|
|
11
|
-
PRIMARY KEY (libraryId, fileId)
|
|
12
|
-
);
|
|
13
|
-
`;
|
|
14
|
-
//# sourceMappingURL=v3.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v3.sql.js","sourceRoot":"","sources":["../../../src/migrations/v3.sql.ts"],"names":[],"mappings":";AAAA,6BAA6B;;AAE7B,kBAAe;;;;;;;;;CASd,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// add server order to replicas and operations
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.default = `
|
|
5
|
-
ALTER TABLE ReplicaInfo ADD COLUMN ackedServerOrder INTEGER DEFAULT 0 NOT NULL;
|
|
6
|
-
ALTER TABLE OperationHistory ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;
|
|
7
|
-
`;
|
|
8
|
-
//# sourceMappingURL=v4.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v4.sql.js","sourceRoot":"","sources":["../../../src/migrations/v4.sql.ts"],"names":[],"mappings":";AAAA,8CAA8C;;AAE9C,kBAAe;;;CAGd,CAAC"}
|
|
@@ -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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
declare const _default: "\nCREATE TABLE IF NOT EXISTS ReplicaInfo (\n id TEXT PRIMARY KEY NOT NULL,\n libraryId TEXT NOT NULL,\n clientId TEXT NOT NULL,\n lastSeenWallClockTime INTEGER,\n ackedLogicalTime TEXT,\n type INTEGER NOT NULL DEFAULT 0\n);\n\nCREATE TABLE IF NOT EXISTS OperationHistory (\n libraryId TEXT NOT NULL,\n replicaId TEXT NOT NULL,\n oid TEXT NOT NULL,\n data TEXT NOT NULL,\n timestamp INTEGER NOT NULL,\n PRIMARY KEY (libraryId, replicaId, oid, timestamp)\n);\n\nCREATE TABLE IF NOT EXISTS DocumentBaseline (\n oid TEXT PRIMARY KEY NOT NULL,\n snapshot TEXT,\n timestamp TEXT NOT NULL,\n libraryId TEXT NOT NULL\n);\n";
|
|
2
|
-
export default _default;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export default `
|
|
2
|
-
CREATE TABLE IF NOT EXISTS ReplicaInfo (
|
|
3
|
-
id TEXT PRIMARY KEY NOT NULL,
|
|
4
|
-
libraryId TEXT NOT NULL,
|
|
5
|
-
clientId TEXT NOT NULL,
|
|
6
|
-
lastSeenWallClockTime INTEGER,
|
|
7
|
-
ackedLogicalTime TEXT,
|
|
8
|
-
type INTEGER NOT NULL DEFAULT 0
|
|
9
|
-
);
|
|
10
|
-
|
|
11
|
-
CREATE TABLE IF NOT EXISTS OperationHistory (
|
|
12
|
-
libraryId TEXT NOT NULL,
|
|
13
|
-
replicaId TEXT NOT NULL,
|
|
14
|
-
oid TEXT NOT NULL,
|
|
15
|
-
data TEXT NOT NULL,
|
|
16
|
-
timestamp INTEGER NOT NULL,
|
|
17
|
-
PRIMARY KEY (libraryId, replicaId, oid, timestamp)
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
CREATE TABLE IF NOT EXISTS DocumentBaseline (
|
|
21
|
-
oid TEXT PRIMARY KEY NOT NULL,
|
|
22
|
-
snapshot TEXT,
|
|
23
|
-
timestamp TEXT NOT NULL,
|
|
24
|
-
libraryId TEXT NOT NULL
|
|
25
|
-
);
|
|
26
|
-
`;
|
|
27
|
-
//# sourceMappingURL=v0.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v0.sql.js","sourceRoot":"","sources":["../../../src/migrations/v0.sql.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAyBd,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
declare const _default: "\nALTER TABLE\n ReplicaInfo RENAME TO ReplicaInfoOld;\n\nCREATE TABLE ReplicaInfo (\n id TEXT NOT NULL,\n libraryId TEXT NOT NULL,\n clientId TEXT NOT NULL,\n lastSeenWallClockTime INTEGER,\n ackedLogicalTime TEXT,\n type INTEGER NOT NULL DEFAULT 0,\n PRIMARY KEY (id, libraryId)\n);\n\nINSERT INTO\n ReplicaInfo\nSELECT\n id,\n libraryId,\n clientId,\n lastSeenWallClockTime,\n ackedLogicalTime,\n type\nFROM\n ReplicaInfoOld;\n\nDROP TABLE ReplicaInfoOld;\n";
|
|
2
|
-
export default _default;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export default `
|
|
2
|
-
ALTER TABLE
|
|
3
|
-
ReplicaInfo RENAME TO ReplicaInfoOld;
|
|
4
|
-
|
|
5
|
-
CREATE TABLE ReplicaInfo (
|
|
6
|
-
id TEXT NOT NULL,
|
|
7
|
-
libraryId TEXT NOT NULL,
|
|
8
|
-
clientId TEXT NOT NULL,
|
|
9
|
-
lastSeenWallClockTime INTEGER,
|
|
10
|
-
ackedLogicalTime TEXT,
|
|
11
|
-
type INTEGER NOT NULL DEFAULT 0,
|
|
12
|
-
PRIMARY KEY (id, libraryId)
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
INSERT INTO
|
|
16
|
-
ReplicaInfo
|
|
17
|
-
SELECT
|
|
18
|
-
id,
|
|
19
|
-
libraryId,
|
|
20
|
-
clientId,
|
|
21
|
-
lastSeenWallClockTime,
|
|
22
|
-
ackedLogicalTime,
|
|
23
|
-
type
|
|
24
|
-
FROM
|
|
25
|
-
ReplicaInfoOld;
|
|
26
|
-
|
|
27
|
-
DROP TABLE ReplicaInfoOld;
|
|
28
|
-
`;
|
|
29
|
-
//# sourceMappingURL=v1.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v1.sql.js","sourceRoot":"","sources":["../../../src/migrations/v1.sql.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bd,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
declare const _default: "\n ALTER TABLE\n DocumentBaseline RENAME TO DocumentBaselineOld;\n\n CREATE TABLE DocumentBaseline (\n oid TEXT NOT NULL,\n snapshot TEXT,\n timestamp TEXT NOT NULL,\n libraryId TEXT NOT NULL,\n PRIMARY KEY (libraryId, oid)\n );\n\n INSERT INTO\n DocumentBaseline\n SELECT\n oid,\n snapshot,\n timestamp,\n libraryId\n FROM\n DocumentBaselineOld;\n\n DROP TABLE DocumentBaselineOld;\n";
|
|
2
|
-
export default _default;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// fixes primary key for document baselines to include libraryId
|
|
2
|
-
export default `
|
|
3
|
-
ALTER TABLE
|
|
4
|
-
DocumentBaseline RENAME TO DocumentBaselineOld;
|
|
5
|
-
|
|
6
|
-
CREATE TABLE DocumentBaseline (
|
|
7
|
-
oid TEXT NOT NULL,
|
|
8
|
-
snapshot TEXT,
|
|
9
|
-
timestamp TEXT NOT NULL,
|
|
10
|
-
libraryId TEXT NOT NULL,
|
|
11
|
-
PRIMARY KEY (libraryId, oid)
|
|
12
|
-
);
|
|
13
|
-
|
|
14
|
-
INSERT INTO
|
|
15
|
-
DocumentBaseline
|
|
16
|
-
SELECT
|
|
17
|
-
oid,
|
|
18
|
-
snapshot,
|
|
19
|
-
timestamp,
|
|
20
|
-
libraryId
|
|
21
|
-
FROM
|
|
22
|
-
DocumentBaselineOld;
|
|
23
|
-
|
|
24
|
-
DROP TABLE DocumentBaselineOld;
|
|
25
|
-
`;
|
|
26
|
-
//# sourceMappingURL=v2.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v2.sql.js","sourceRoot":"","sources":["../../../src/migrations/v2.sql.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,eAAe;;;;;;;;;;;;;;;;;;;;;;;CAuBd,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// add the FileMetadata table
|
|
2
|
-
export default `
|
|
3
|
-
CREATE TABLE IF NOT EXISTS FileMetadata (
|
|
4
|
-
libraryId TEXT NOT NULL,
|
|
5
|
-
fileId TEXT NOT NULL,
|
|
6
|
-
name TEXT NOT NULL,
|
|
7
|
-
type TEXT NOT NULL,
|
|
8
|
-
pendingDeleteAt INTEGER,
|
|
9
|
-
PRIMARY KEY (libraryId, fileId)
|
|
10
|
-
);
|
|
11
|
-
`;
|
|
12
|
-
//# sourceMappingURL=v3.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v3.sql.js","sourceRoot":"","sources":["../../../src/migrations/v3.sql.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,eAAe;;;;;;;;;CASd,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// add server order to replicas and operations
|
|
2
|
-
export default `
|
|
3
|
-
ALTER TABLE ReplicaInfo ADD COLUMN ackedServerOrder INTEGER DEFAULT 0 NOT NULL;
|
|
4
|
-
ALTER TABLE OperationHistory ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;
|
|
5
|
-
`;
|
|
6
|
-
//# sourceMappingURL=v4.sql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v4.sql.js","sourceRoot":"","sources":["../../../src/migrations/v4.sql.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAE9C,eAAe;;;CAGd,CAAC"}
|