@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.
- 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 -24
- package/dist/cjs/migrations/v5.js.map +1 -1
- 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 -20
- package/dist/esm/migrations/v5.js.map +1 -1
- 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/src/migrations/v5.ts +4 -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v5.js","sourceRoot":"","sources":["../../../src/migrations/v5.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,6BAA6B,GAC7B,MAAM,qBAAqB,CAAC;AAG7B,8DAA8D;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAgB,EAAE,EAAE;IAC7C,MAAM,UAAU,GAAG,EAAE;SACnB,OAAO,CAAC,SAAS,CAAC,iCAAiC,CAAC;SACpD,GAAG,EAAE,CAAC;IACR,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;QAC5B,EAAE,CAAC,OAAO;QACT,SAAS,CAAC;;;;;KAKR,CACF,CAAC,GAAG,CACJ,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC;QACxB,iFAAiF;QACjF,6BAA6B,CAAC,EAAE,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"v5.js","sourceRoot":"","sources":["../../../src/migrations/v5.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,6BAA6B,GAC7B,MAAM,qBAAqB,CAAC;AAG7B,8DAA8D;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAgB,EAAE,EAAE;IAC7C,MAAM,UAAU,GAAG,EAAE;SACnB,OAAO,CAAC,SAAS,CAAC,iCAAiC,CAAC;SACpD,GAAG,EAAE,CAAC;IACR,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;QAC5B,EAAE,CAAC,OAAO;QACT,SAAS,CAAC;;;;;KAKR,CACF,CAAC,GAAG,CACJ,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC;QACxB,iFAAiF;QACjF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAC1D,EAAE,CAAC,GAAG,EACN,EAAE,CAAC,SAAS,EACZ,EAAE,CAAC,SAAS,CACZ,CAAC;KACF;IACD,MAAM,SAAS,GAAG,EAAE;SAClB,OAAO,CAAC,SAAS,CAAC,iCAAiC,CAAC;SACpD,GAAG,EAAE,CAAC;IACR,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QACjC,EAAE,CAAC,OAAO;QACT,SAAS,CAAC;;;;;KAKR,CACF,CAAC,GAAG,CACJ,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9B,QAAQ,CAAC,QAAQ;YAChB,CAAC,CAAC,6BAA6B,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAClD,CAAC,CAAC,QAAQ,CAAC,QAAQ,EACpB,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,SAAS,CAClB,CAAC;KACF;AACF,CAAC,CAAC"}
|
package/dist/esm/migrations.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Database } from 'better-sqlite3';
|
|
2
|
-
export declare const allMigrations: {
|
|
3
|
-
sql?: string;
|
|
4
|
-
procedure?: (db: Database) => void;
|
|
5
|
-
}[];
|
|
6
|
-
export declare function migrations(db: Database, upTo?: number): void;
|
|
1
|
+
import type { Database } from 'better-sqlite3';
|
|
2
|
+
export declare const allMigrations: {
|
|
3
|
+
sql?: string;
|
|
4
|
+
procedure?: (db: Database) => void;
|
|
5
|
+
}[];
|
|
6
|
+
export declare function migrations(db: Database, upTo?: number): void;
|
package/dist/esm/migrations.js
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import * as v0 from './migrations/v0.js';
|
|
2
|
-
import * as v1 from './migrations/v1.js';
|
|
3
|
-
import * as v2 from './migrations/v2.js';
|
|
4
|
-
import * as v3 from './migrations/v3.js';
|
|
5
|
-
import * as v4 from './migrations/v4.js';
|
|
6
|
-
import * as v5 from './migrations/v5.js';
|
|
7
|
-
export const allMigrations = [v0, v1, v2, v3, v4, v5];
|
|
8
|
-
export function migrations(db, upTo = allMigrations.length) {
|
|
9
|
-
var _a;
|
|
10
|
-
// create the versions table if it doesn't exist
|
|
1
|
+
import * as v0 from './migrations/v0.js';
|
|
2
|
+
import * as v1 from './migrations/v1.js';
|
|
3
|
+
import * as v2 from './migrations/v2.js';
|
|
4
|
+
import * as v3 from './migrations/v3.js';
|
|
5
|
+
import * as v4 from './migrations/v4.js';
|
|
6
|
+
import * as v5 from './migrations/v5.js';
|
|
7
|
+
export const allMigrations = [v0, v1, v2, v3, v4, v5];
|
|
8
|
+
export function migrations(db, upTo = allMigrations.length) {
|
|
9
|
+
var _a;
|
|
10
|
+
// create the versions table if it doesn't exist
|
|
11
11
|
db.prepare(`
|
|
12
12
|
CREATE TABLE IF NOT EXISTS versions (
|
|
13
13
|
version INTEGER NOT NULL PRIMARY KEY
|
|
14
14
|
);
|
|
15
|
-
`).run();
|
|
16
|
-
// get the current version
|
|
17
|
-
const versionResult = db
|
|
15
|
+
`).run();
|
|
16
|
+
// get the current version
|
|
17
|
+
const versionResult = db
|
|
18
18
|
.prepare(`
|
|
19
19
|
SELECT version FROM versions ORDER BY version DESC LIMIT 1;
|
|
20
|
-
`)
|
|
21
|
-
.get();
|
|
22
|
-
const version = (_a = versionResult === null || versionResult === void 0 ? void 0 : versionResult.version) !== null && _a !== void 0 ? _a : 0;
|
|
23
|
-
const toRun = allMigrations.slice(version, upTo);
|
|
24
|
-
if (toRun.length === 0) {
|
|
25
|
-
console.info('No migrations to run');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
console.info('Running migrations from ', version, 'to', upTo);
|
|
29
|
-
const run = db.transaction(() => {
|
|
30
|
-
for (const { sql, procedure } of toRun) {
|
|
31
|
-
if (sql) {
|
|
32
|
-
db.exec(sql);
|
|
33
|
-
}
|
|
34
|
-
if (procedure) {
|
|
35
|
-
procedure(db);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
20
|
+
`)
|
|
21
|
+
.get();
|
|
22
|
+
const version = (_a = versionResult === null || versionResult === void 0 ? void 0 : versionResult.version) !== null && _a !== void 0 ? _a : 0;
|
|
23
|
+
const toRun = allMigrations.slice(version, upTo);
|
|
24
|
+
if (toRun.length === 0) {
|
|
25
|
+
console.info('No migrations to run');
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
console.info('Running migrations from ', version, 'to', upTo);
|
|
29
|
+
const run = db.transaction(() => {
|
|
30
|
+
for (const { sql, procedure } of toRun) {
|
|
31
|
+
if (sql) {
|
|
32
|
+
db.exec(sql);
|
|
33
|
+
}
|
|
34
|
+
if (procedure) {
|
|
35
|
+
procedure(db);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
38
|
db.prepare(`
|
|
39
39
|
INSERT INTO versions (version) VALUES (?);
|
|
40
|
-
`).run(upTo);
|
|
41
|
-
});
|
|
42
|
-
run();
|
|
43
|
-
}
|
|
40
|
+
`).run(upTo);
|
|
41
|
+
});
|
|
42
|
+
run();
|
|
43
|
+
}
|
|
44
44
|
//# sourceMappingURL=migrations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
import { describe, it, expect, afterAll, beforeAll } from 'vitest';
|
|
2
|
-
import create from 'better-sqlite3';
|
|
3
|
-
import { migrations } from './migrations.js';
|
|
4
|
-
import fs from 'fs';
|
|
5
|
-
describe('the v5->v6 migration', () => {
|
|
6
|
-
let dbFile;
|
|
7
|
-
let db;
|
|
8
|
-
beforeAll(() => {
|
|
9
|
-
dbFile = `v5-migration-test-${Math.random()}.sqlite`;
|
|
10
|
-
db = create(dbFile);
|
|
11
|
-
});
|
|
12
|
-
afterAll(() => {
|
|
13
|
-
db.close();
|
|
14
|
-
fs.rmSync(dbFile);
|
|
15
|
-
});
|
|
16
|
-
it('rewrites legacy oids in all ops and baselines', () => {
|
|
17
|
-
// manually migrate to v4 before starting and seed the database with some
|
|
18
|
-
// operations and baselines.
|
|
19
|
-
migrations(db, 5);
|
|
20
|
-
// manually insert some operations and baselines
|
|
21
|
-
db.transaction(() => {
|
|
22
|
-
[
|
|
23
|
-
{
|
|
24
|
-
libraryId: 'test-1',
|
|
25
|
-
replicaId: 'foo',
|
|
26
|
-
oid: 'weirds/b',
|
|
27
|
-
data: {
|
|
28
|
-
op: 'set',
|
|
29
|
-
value: { '@@type': 'ref', id: 'weirds/b.objectMap.one:ghi' },
|
|
30
|
-
},
|
|
31
|
-
timestamp: '1',
|
|
32
|
-
serverOrder: 1,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
libraryId: 'test-1',
|
|
36
|
-
replicaId: 'foo',
|
|
37
|
-
oid: 'weirds/b.list:ghi',
|
|
38
|
-
data: {
|
|
39
|
-
op: 'list-push',
|
|
40
|
-
value: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
|
|
41
|
-
},
|
|
42
|
-
timestamp: '1',
|
|
43
|
-
serverOrder: 2,
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
libraryId: 'test-1',
|
|
47
|
-
replicaId: 'foo',
|
|
48
|
-
oid: 'weirds/b.list:ghi',
|
|
49
|
-
data: {
|
|
50
|
-
op: 'list-remove',
|
|
51
|
-
value: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
|
|
52
|
-
},
|
|
53
|
-
timestamp: '2',
|
|
54
|
-
serverOrder: 3,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
libraryId: 'test-2',
|
|
58
|
-
replicaId: 'bar',
|
|
59
|
-
oid: 'weirds/b',
|
|
60
|
-
data: {
|
|
61
|
-
op: 'set',
|
|
62
|
-
value: { '@@type': 'ref', id: 'weirds/b.objectMap.one:ghi' },
|
|
63
|
-
},
|
|
64
|
-
timestamp: '1a',
|
|
65
|
-
serverOrder: 1,
|
|
66
|
-
},
|
|
67
|
-
].forEach(({ libraryId, replicaId, oid, data, timestamp, serverOrder }) => {
|
|
68
|
-
db.prepare(
|
|
1
|
+
import { describe, it, expect, afterAll, beforeAll } from 'vitest';
|
|
2
|
+
import create from 'better-sqlite3';
|
|
3
|
+
import { migrations } from './migrations.js';
|
|
4
|
+
import fs from 'fs';
|
|
5
|
+
describe('the v5->v6 migration', () => {
|
|
6
|
+
let dbFile;
|
|
7
|
+
let db;
|
|
8
|
+
beforeAll(() => {
|
|
9
|
+
dbFile = `v5-migration-test-${Math.random()}.sqlite`;
|
|
10
|
+
db = create(dbFile);
|
|
11
|
+
});
|
|
12
|
+
afterAll(() => {
|
|
13
|
+
db.close();
|
|
14
|
+
fs.rmSync(dbFile);
|
|
15
|
+
});
|
|
16
|
+
it('rewrites legacy oids in all ops and baselines', () => {
|
|
17
|
+
// manually migrate to v4 before starting and seed the database with some
|
|
18
|
+
// operations and baselines.
|
|
19
|
+
migrations(db, 5);
|
|
20
|
+
// manually insert some operations and baselines
|
|
21
|
+
db.transaction(() => {
|
|
22
|
+
[
|
|
23
|
+
{
|
|
24
|
+
libraryId: 'test-1',
|
|
25
|
+
replicaId: 'foo',
|
|
26
|
+
oid: 'weirds/b',
|
|
27
|
+
data: {
|
|
28
|
+
op: 'set',
|
|
29
|
+
value: { '@@type': 'ref', id: 'weirds/b.objectMap.one:ghi' },
|
|
30
|
+
},
|
|
31
|
+
timestamp: '1',
|
|
32
|
+
serverOrder: 1,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
libraryId: 'test-1',
|
|
36
|
+
replicaId: 'foo',
|
|
37
|
+
oid: 'weirds/b.list:ghi',
|
|
38
|
+
data: {
|
|
39
|
+
op: 'list-push',
|
|
40
|
+
value: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
|
|
41
|
+
},
|
|
42
|
+
timestamp: '1',
|
|
43
|
+
serverOrder: 2,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
libraryId: 'test-1',
|
|
47
|
+
replicaId: 'foo',
|
|
48
|
+
oid: 'weirds/b.list:ghi',
|
|
49
|
+
data: {
|
|
50
|
+
op: 'list-remove',
|
|
51
|
+
value: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
|
|
52
|
+
},
|
|
53
|
+
timestamp: '2',
|
|
54
|
+
serverOrder: 3,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
libraryId: 'test-2',
|
|
58
|
+
replicaId: 'bar',
|
|
59
|
+
oid: 'weirds/b',
|
|
60
|
+
data: {
|
|
61
|
+
op: 'set',
|
|
62
|
+
value: { '@@type': 'ref', id: 'weirds/b.objectMap.one:ghi' },
|
|
63
|
+
},
|
|
64
|
+
timestamp: '1a',
|
|
65
|
+
serverOrder: 1,
|
|
66
|
+
},
|
|
67
|
+
].forEach(({ libraryId, replicaId, oid, data, timestamp, serverOrder }) => {
|
|
68
|
+
db.prepare(
|
|
69
69
|
/* sql */ `
|
|
70
70
|
INSERT INTO OperationHistory (libraryId, replicaId, oid, data, timestamp, serverOrder)
|
|
71
71
|
VALUES (?, ?, ?, ?, ?, ?);
|
|
72
|
-
`).run(libraryId, replicaId, oid, JSON.stringify(data), timestamp, serverOrder);
|
|
73
|
-
});
|
|
74
|
-
[
|
|
75
|
-
{
|
|
76
|
-
libraryId: 'test-1',
|
|
77
|
-
oid: 'weirds/b.objectMap.one:ghi',
|
|
78
|
-
snapshot: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
|
|
79
|
-
timestamp: '1',
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
libraryId: 'test-2',
|
|
83
|
-
oid: 'weirds/b.objectMap.one:ghi',
|
|
84
|
-
snapshot: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
|
|
85
|
-
timestamp: '1a',
|
|
86
|
-
},
|
|
87
|
-
].forEach(({ libraryId, oid, snapshot, timestamp }) => {
|
|
88
|
-
db.prepare(
|
|
72
|
+
`).run(libraryId, replicaId, oid, JSON.stringify(data), timestamp, serverOrder);
|
|
73
|
+
});
|
|
74
|
+
[
|
|
75
|
+
{
|
|
76
|
+
libraryId: 'test-1',
|
|
77
|
+
oid: 'weirds/b.objectMap.one:ghi',
|
|
78
|
+
snapshot: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
|
|
79
|
+
timestamp: '1',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
libraryId: 'test-2',
|
|
83
|
+
oid: 'weirds/b.objectMap.one:ghi',
|
|
84
|
+
snapshot: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
|
|
85
|
+
timestamp: '1a',
|
|
86
|
+
},
|
|
87
|
+
].forEach(({ libraryId, oid, snapshot, timestamp }) => {
|
|
88
|
+
db.prepare(
|
|
89
89
|
/* sql */ `
|
|
90
90
|
INSERT INTO DocumentBaseline (libraryId, oid, snapshot, timestamp)
|
|
91
91
|
VALUES (?, ?, ?, ?);
|
|
92
|
-
`).run(libraryId, oid, JSON.stringify(snapshot), timestamp);
|
|
93
|
-
});
|
|
94
|
-
})();
|
|
95
|
-
migrations(db);
|
|
96
|
-
// check that the operations and baselines have been rewritten
|
|
97
|
-
db.transaction(() => {
|
|
98
|
-
const operations = db
|
|
99
|
-
.prepare(
|
|
92
|
+
`).run(libraryId, oid, JSON.stringify(snapshot), timestamp);
|
|
93
|
+
});
|
|
94
|
+
})();
|
|
95
|
+
migrations(db);
|
|
96
|
+
// check that the operations and baselines have been rewritten
|
|
97
|
+
db.transaction(() => {
|
|
98
|
+
const operations = db
|
|
99
|
+
.prepare(
|
|
100
100
|
/* sql */ `
|
|
101
101
|
SELECT * from OperationHistory;
|
|
102
|
-
`)
|
|
103
|
-
.all();
|
|
104
|
-
expect(operations).toMatchSnapshot();
|
|
105
|
-
const baselines = db
|
|
106
|
-
.prepare(
|
|
102
|
+
`)
|
|
103
|
+
.all();
|
|
104
|
+
expect(operations).toMatchSnapshot();
|
|
105
|
+
const baselines = db
|
|
106
|
+
.prepare(
|
|
107
107
|
/* sql */ `
|
|
108
108
|
SELECT * from DocumentBaseline;
|
|
109
|
-
`)
|
|
110
|
-
.all();
|
|
111
|
-
expect(baselines).toMatchSnapshot();
|
|
112
|
-
})();
|
|
113
|
-
db.close();
|
|
114
|
-
});
|
|
115
|
-
});
|
|
109
|
+
`)
|
|
110
|
+
.all();
|
|
111
|
+
expect(baselines).toMatchSnapshot();
|
|
112
|
+
})();
|
|
113
|
+
db.close();
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
116
|
//# sourceMappingURL=migrations.test.js.map
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { DocumentBaseline, Operation, ReplicaInfo, ReplicaType } from '@verdant-web/common';
|
|
2
|
-
export interface OperationSpec extends Operation {
|
|
3
|
-
serverOrder: number;
|
|
4
|
-
replicaId: string;
|
|
5
|
-
}
|
|
6
|
-
export interface DocumentBaselineSpec extends Omit<DocumentBaseline<any>, 'snapshot'> {
|
|
7
|
-
snapshot: string;
|
|
8
|
-
libraryId: string;
|
|
9
|
-
}
|
|
10
|
-
export interface ReplicaInfoSpec extends ReplicaInfo {
|
|
11
|
-
libraryId: string;
|
|
12
|
-
clientId: string;
|
|
13
|
-
lastSeenWallClockTime: number | null;
|
|
14
|
-
type: ReplicaType;
|
|
15
|
-
ackedServerOrder: number;
|
|
16
|
-
}
|
|
17
|
-
declare global {
|
|
18
|
-
interface File {
|
|
19
|
-
readonly lastModified: number;
|
|
20
|
-
readonly name: string;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
1
|
+
import { DocumentBaseline, Operation, ReplicaInfo, ReplicaType } from '@verdant-web/common';
|
|
2
|
+
export interface OperationSpec extends Operation {
|
|
3
|
+
serverOrder: number;
|
|
4
|
+
replicaId: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DocumentBaselineSpec extends Omit<DocumentBaseline<any>, 'snapshot'> {
|
|
7
|
+
snapshot: string;
|
|
8
|
+
libraryId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ReplicaInfoSpec extends ReplicaInfo {
|
|
11
|
+
libraryId: string;
|
|
12
|
+
clientId: string;
|
|
13
|
+
lastSeenWallClockTime: number | null;
|
|
14
|
+
type: ReplicaType;
|
|
15
|
+
ackedServerOrder: number;
|
|
16
|
+
}
|
|
17
|
+
declare global {
|
|
18
|
+
interface File {
|
|
19
|
+
readonly lastModified: number;
|
|
20
|
+
readonly name: string;
|
|
21
|
+
}
|
|
22
|
+
}
|
package/dist/esm/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=types.js.map
|