@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.
Files changed (135) 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 -26
  43. package/dist/cjs/migrations.d.ts +6 -6
  44. package/dist/cjs/migrations.js +62 -62
  45. package/dist/cjs/migrations.test.d.ts +1 -1
  46. package/dist/cjs/migrations.test.js +110 -110
  47. package/dist/cjs/types.d.ts +22 -22
  48. package/dist/cjs/types.js +2 -2
  49. package/dist/esm/Baselines.d.ts +15 -15
  50. package/dist/esm/Baselines.js +79 -79
  51. package/dist/esm/ClientConnection.d.ts +18 -18
  52. package/dist/esm/ClientConnection.js +101 -101
  53. package/dist/esm/MessageSender.d.ts +5 -5
  54. package/dist/esm/MessageSender.js +1 -1
  55. package/dist/esm/OperationHistory.d.ts +36 -36
  56. package/dist/esm/OperationHistory.js +116 -116
  57. package/dist/esm/Presence.d.ts +15 -15
  58. package/dist/esm/Presence.js +52 -52
  59. package/dist/esm/Profiles.d.ts +10 -10
  60. package/dist/esm/Profiles.js +15 -15
  61. package/dist/esm/ReplicaKeepaliveTimers.d.ts +17 -17
  62. package/dist/esm/ReplicaKeepaliveTimers.js +26 -26
  63. package/dist/esm/Replicas.d.ts +24 -24
  64. package/dist/esm/Replicas.js +133 -133
  65. package/dist/esm/Server.d.ts +143 -143
  66. package/dist/esm/Server.js +389 -389
  67. package/dist/esm/ServerLibrary.d.ts +77 -77
  68. package/dist/esm/ServerLibrary.js +483 -483
  69. package/dist/esm/TokenProvider.d.ts +16 -16
  70. package/dist/esm/TokenProvider.js +19 -19
  71. package/dist/esm/TokenVerifier.d.ts +16 -16
  72. package/dist/esm/TokenVerifier.js +21 -21
  73. package/dist/esm/files/FileMetadata.d.ts +28 -28
  74. package/dist/esm/files/FileMetadata.js +42 -42
  75. package/dist/esm/files/FileStorage.d.ts +35 -35
  76. package/dist/esm/files/FileStorage.js +44 -44
  77. package/dist/esm/index.d.ts +9 -9
  78. package/dist/esm/index.js +4 -4
  79. package/dist/esm/migrations/v0.d.ts +1 -1
  80. package/dist/esm/migrations/v0.js +1 -1
  81. package/dist/esm/migrations/v1.d.ts +1 -1
  82. package/dist/esm/migrations/v1.js +1 -1
  83. package/dist/esm/migrations/v2.d.ts +1 -1
  84. package/dist/esm/migrations/v2.js +2 -2
  85. package/dist/esm/migrations/v3.d.ts +1 -1
  86. package/dist/esm/migrations/v3.js +2 -2
  87. package/dist/esm/migrations/v4.d.ts +1 -1
  88. package/dist/esm/migrations/v4.js +2 -2
  89. package/dist/esm/migrations/v5.d.ts +2 -2
  90. package/dist/esm/migrations/v5.js +22 -22
  91. package/dist/esm/migrations.d.ts +6 -6
  92. package/dist/esm/migrations.js +35 -35
  93. package/dist/esm/migrations.test.d.ts +1 -1
  94. package/dist/esm/migrations.test.js +105 -105
  95. package/dist/esm/types.d.ts +22 -22
  96. package/dist/esm/types.js +1 -1
  97. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  98. package/dist/tsconfig.tsbuildinfo +1 -1
  99. package/package.json +2 -2
  100. package/dist/cjs/ServerStorage.d.ts +0 -35
  101. package/dist/cjs/ServerStorage.js +0 -60
  102. package/dist/cjs/ServerStorage.js.map +0 -1
  103. package/dist/cjs/migrations/v0.sql.d.ts +0 -2
  104. package/dist/cjs/migrations/v0.sql.js +0 -29
  105. package/dist/cjs/migrations/v0.sql.js.map +0 -1
  106. package/dist/cjs/migrations/v1.sql.d.ts +0 -2
  107. package/dist/cjs/migrations/v1.sql.js +0 -31
  108. package/dist/cjs/migrations/v1.sql.js.map +0 -1
  109. package/dist/cjs/migrations/v2.sql.d.ts +0 -2
  110. package/dist/cjs/migrations/v2.sql.js +0 -28
  111. package/dist/cjs/migrations/v2.sql.js.map +0 -1
  112. package/dist/cjs/migrations/v3.sql.d.ts +0 -2
  113. package/dist/cjs/migrations/v3.sql.js +0 -14
  114. package/dist/cjs/migrations/v3.sql.js.map +0 -1
  115. package/dist/cjs/migrations/v4.sql.d.ts +0 -2
  116. package/dist/cjs/migrations/v4.sql.js +0 -8
  117. package/dist/cjs/migrations/v4.sql.js.map +0 -1
  118. package/dist/esm/ServerStorage.d.ts +0 -44
  119. package/dist/esm/ServerStorage.js +0 -58
  120. package/dist/esm/ServerStorage.js.map +0 -1
  121. package/dist/esm/migrations/v0.sql.d.ts +0 -2
  122. package/dist/esm/migrations/v0.sql.js +0 -27
  123. package/dist/esm/migrations/v0.sql.js.map +0 -1
  124. package/dist/esm/migrations/v1.sql.d.ts +0 -2
  125. package/dist/esm/migrations/v1.sql.js +0 -29
  126. package/dist/esm/migrations/v1.sql.js.map +0 -1
  127. package/dist/esm/migrations/v2.sql.d.ts +0 -2
  128. package/dist/esm/migrations/v2.sql.js +0 -26
  129. package/dist/esm/migrations/v2.sql.js.map +0 -1
  130. package/dist/esm/migrations/v3.sql.d.ts +0 -2
  131. package/dist/esm/migrations/v3.sql.js +0 -12
  132. package/dist/esm/migrations/v3.sql.js.map +0 -1
  133. package/dist/esm/migrations/v4.sql.d.ts +0 -2
  134. package/dist/esm/migrations/v4.sql.js +0 -6
  135. package/dist/esm/migrations/v4.sql.js.map +0 -1
@@ -1,6 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sql = void 0;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sql = void 0;
4
4
  exports.sql = `
5
5
  ALTER TABLE
6
6
  ReplicaInfo RENAME TO ReplicaInfoOld;
@@ -28,5 +28,5 @@ FROM
28
28
  ReplicaInfoOld;
29
29
 
30
30
  DROP TABLE ReplicaInfoOld;
31
- `;
31
+ `;
32
32
  //# sourceMappingURL=v1.js.map
@@ -1 +1 @@
1
- export declare const sql = "\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";
1
+ export declare const sql = "\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";
@@ -1,7 +1,7 @@
1
- "use strict";
2
- // fixes primary key for document baselines to include libraryId
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.sql = void 0;
1
+ "use strict";
2
+ // fixes primary key for document baselines to include libraryId
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.sql = void 0;
5
5
  exports.sql = `
6
6
  ALTER TABLE
7
7
  DocumentBaseline RENAME TO DocumentBaselineOld;
@@ -25,5 +25,5 @@ exports.sql = `
25
25
  DocumentBaselineOld;
26
26
 
27
27
  DROP TABLE DocumentBaselineOld;
28
- `;
28
+ `;
29
29
  //# sourceMappingURL=v2.js.map
@@ -1 +1 @@
1
- export declare const sql = "\n CREATE TABLE IF NOT EXISTS FileMetadata (\n libraryId TEXT NOT NULL,\n fileId TEXT NOT NULL,\n name TEXT NOT NULL,\n type TEXT NOT NULL,\n pendingDeleteAt INTEGER,\n PRIMARY KEY (libraryId, fileId)\n );\n";
1
+ export declare const sql = "\n CREATE TABLE IF NOT EXISTS FileMetadata (\n libraryId TEXT NOT NULL,\n fileId TEXT NOT NULL,\n name TEXT NOT NULL,\n type TEXT NOT NULL,\n pendingDeleteAt INTEGER,\n PRIMARY KEY (libraryId, fileId)\n );\n";
@@ -1,7 +1,7 @@
1
- "use strict";
2
- // add the FileMetadata table
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.sql = void 0;
1
+ "use strict";
2
+ // add the FileMetadata table
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.sql = void 0;
5
5
  exports.sql = `
6
6
  CREATE TABLE IF NOT EXISTS FileMetadata (
7
7
  libraryId TEXT NOT NULL,
@@ -11,5 +11,5 @@ exports.sql = `
11
11
  pendingDeleteAt INTEGER,
12
12
  PRIMARY KEY (libraryId, fileId)
13
13
  );
14
- `;
14
+ `;
15
15
  //# sourceMappingURL=v3.js.map
@@ -1 +1 @@
1
- export declare const sql = "\n ALTER TABLE ReplicaInfo ADD COLUMN ackedServerOrder INTEGER DEFAULT 0 NOT NULL;\n ALTER TABLE OperationHistory ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;\n";
1
+ export declare const sql = "\n ALTER TABLE ReplicaInfo ADD COLUMN ackedServerOrder INTEGER DEFAULT 0 NOT NULL;\n ALTER TABLE OperationHistory ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;\n";
@@ -1,9 +1,9 @@
1
- "use strict";
2
- // add server order to replicas and operations
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.sql = void 0;
1
+ "use strict";
2
+ // add server order to replicas and operations
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.sql = void 0;
5
5
  exports.sql = `
6
6
  ALTER TABLE ReplicaInfo ADD COLUMN ackedServerOrder INTEGER DEFAULT 0 NOT NULL;
7
7
  ALTER TABLE OperationHistory ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;
8
- `;
8
+ `;
9
9
  //# sourceMappingURL=v4.js.map
@@ -1,2 +1,2 @@
1
- import SQL from 'better-sqlite3';
2
- export declare const procedure: (db: SQL.Database) => void;
1
+ import SQL from 'better-sqlite3';
2
+ export declare const procedure: (db: SQL.Database) => void;
@@ -1,37 +1,37 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.procedure = void 0;
4
- const common_1 = require("@verdant-web/common");
5
- // read all operations and write them back without legacy IDs.
6
- const procedure = (db) => {
7
- const operations = db
8
- .prepare(/* sql */ `SELECT * from OperationHistory;`)
9
- .all();
10
- for (const op of operations) {
11
- db.prepare(
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.procedure = void 0;
4
+ const common_1 = require("@verdant-web/common");
5
+ // read all operations and write them back without legacy IDs.
6
+ const procedure = (db) => {
7
+ const operations = db
8
+ .prepare(/* sql */ `SELECT * from OperationHistory;`)
9
+ .all();
10
+ for (const op of operations) {
11
+ db.prepare(
12
12
  /* sql */ `
13
13
  UPDATE OperationHistory
14
14
  SET oid = ?,
15
15
  data = ?
16
16
  WHERE oid = ? AND timestamp = ? AND libraryId = ?;
17
- `).run((0, common_1.convertLegacyOid)(op.oid),
18
- // data is already a string, so just leave it and do the conversion on the string
19
- op.data ? (0, common_1.replaceLegacyOidsInJsonString)(op.data) : op.data, op.oid, op.timestamp, op.libraryId);
20
- }
21
- const baselines = db
22
- .prepare(/* sql */ `SELECT * from DocumentBaseline;`)
23
- .all();
24
- for (const baseline of baselines) {
25
- db.prepare(
17
+ `).run((0, common_1.convertLegacyOid)(op.oid),
18
+ // data is already a string, so just leave it and do the conversion on the string
19
+ op.data ? (0, common_1.replaceLegacyOidsInJsonString)(op.data) : op.data, op.oid, op.timestamp, op.libraryId);
20
+ }
21
+ const baselines = db
22
+ .prepare(/* sql */ `SELECT * from DocumentBaseline;`)
23
+ .all();
24
+ for (const baseline of baselines) {
25
+ db.prepare(
26
26
  /* sql */ `
27
27
  UPDATE DocumentBaseline
28
28
  SET oid = ?,
29
29
  snapshot = ?
30
30
  WHERE oid = ? AND libraryId = ?;
31
- `).run((0, common_1.convertLegacyOid)(baseline.oid), baseline.snapshot
32
- ? (0, common_1.replaceLegacyOidsInJsonString)(baseline.snapshot)
33
- : baseline.snapshot, baseline.oid, baseline.libraryId);
34
- }
35
- };
36
- exports.procedure = procedure;
31
+ `).run((0, common_1.convertLegacyOid)(baseline.oid), baseline.snapshot
32
+ ? (0, common_1.replaceLegacyOidsInJsonString)(baseline.snapshot)
33
+ : baseline.snapshot, baseline.oid, baseline.libraryId);
34
+ }
35
+ };
36
+ exports.procedure = procedure;
37
37
  //# sourceMappingURL=v5.js.map
@@ -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;
@@ -1,71 +1,71 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.migrations = exports.allMigrations = void 0;
27
- const v0 = __importStar(require("./migrations/v0.js"));
28
- const v1 = __importStar(require("./migrations/v1.js"));
29
- const v2 = __importStar(require("./migrations/v2.js"));
30
- const v3 = __importStar(require("./migrations/v3.js"));
31
- const v4 = __importStar(require("./migrations/v4.js"));
32
- const v5 = __importStar(require("./migrations/v5.js"));
33
- exports.allMigrations = [v0, v1, v2, v3, v4, v5];
34
- function migrations(db, upTo = exports.allMigrations.length) {
35
- var _a;
36
- // create the versions table if it doesn't exist
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.migrations = exports.allMigrations = void 0;
27
+ const v0 = __importStar(require("./migrations/v0.js"));
28
+ const v1 = __importStar(require("./migrations/v1.js"));
29
+ const v2 = __importStar(require("./migrations/v2.js"));
30
+ const v3 = __importStar(require("./migrations/v3.js"));
31
+ const v4 = __importStar(require("./migrations/v4.js"));
32
+ const v5 = __importStar(require("./migrations/v5.js"));
33
+ exports.allMigrations = [v0, v1, v2, v3, v4, v5];
34
+ function migrations(db, upTo = exports.allMigrations.length) {
35
+ var _a;
36
+ // create the versions table if it doesn't exist
37
37
  db.prepare(`
38
38
  CREATE TABLE IF NOT EXISTS versions (
39
39
  version INTEGER NOT NULL PRIMARY KEY
40
40
  );
41
- `).run();
42
- // get the current version
43
- const versionResult = db
41
+ `).run();
42
+ // get the current version
43
+ const versionResult = db
44
44
  .prepare(`
45
45
  SELECT version FROM versions ORDER BY version DESC LIMIT 1;
46
- `)
47
- .get();
48
- const version = (_a = versionResult === null || versionResult === void 0 ? void 0 : versionResult.version) !== null && _a !== void 0 ? _a : 0;
49
- const toRun = exports.allMigrations.slice(version, upTo);
50
- if (toRun.length === 0) {
51
- console.info('No migrations to run');
52
- return;
53
- }
54
- console.info('Running migrations from ', version, 'to', upTo);
55
- const run = db.transaction(() => {
56
- for (const { sql, procedure } of toRun) {
57
- if (sql) {
58
- db.exec(sql);
59
- }
60
- if (procedure) {
61
- procedure(db);
62
- }
63
- }
46
+ `)
47
+ .get();
48
+ const version = (_a = versionResult === null || versionResult === void 0 ? void 0 : versionResult.version) !== null && _a !== void 0 ? _a : 0;
49
+ const toRun = exports.allMigrations.slice(version, upTo);
50
+ if (toRun.length === 0) {
51
+ console.info('No migrations to run');
52
+ return;
53
+ }
54
+ console.info('Running migrations from ', version, 'to', upTo);
55
+ const run = db.transaction(() => {
56
+ for (const { sql, procedure } of toRun) {
57
+ if (sql) {
58
+ db.exec(sql);
59
+ }
60
+ if (procedure) {
61
+ procedure(db);
62
+ }
63
+ }
64
64
  db.prepare(`
65
65
  INSERT INTO versions (version) VALUES (?);
66
- `).run(upTo);
67
- });
68
- run();
69
- }
70
- exports.migrations = migrations;
66
+ `).run(upTo);
67
+ });
68
+ run();
69
+ }
70
+ exports.migrations = migrations;
71
71
  //# sourceMappingURL=migrations.js.map
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,121 +1,121 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const vitest_1 = require("vitest");
7
- const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
8
- const migrations_js_1 = require("./migrations.js");
9
- const fs_1 = __importDefault(require("fs"));
10
- (0, vitest_1.describe)('the v5->v6 migration', () => {
11
- let dbFile;
12
- let db;
13
- (0, vitest_1.beforeAll)(() => {
14
- dbFile = `v5-migration-test-${Math.random()}.sqlite`;
15
- db = (0, better_sqlite3_1.default)(dbFile);
16
- });
17
- (0, vitest_1.afterAll)(() => {
18
- db.close();
19
- fs_1.default.rmSync(dbFile);
20
- });
21
- (0, vitest_1.it)('rewrites legacy oids in all ops and baselines', () => {
22
- // manually migrate to v4 before starting and seed the database with some
23
- // operations and baselines.
24
- (0, migrations_js_1.migrations)(db, 5);
25
- // manually insert some operations and baselines
26
- db.transaction(() => {
27
- [
28
- {
29
- libraryId: 'test-1',
30
- replicaId: 'foo',
31
- oid: 'weirds/b',
32
- data: {
33
- op: 'set',
34
- value: { '@@type': 'ref', id: 'weirds/b.objectMap.one:ghi' },
35
- },
36
- timestamp: '1',
37
- serverOrder: 1,
38
- },
39
- {
40
- libraryId: 'test-1',
41
- replicaId: 'foo',
42
- oid: 'weirds/b.list:ghi',
43
- data: {
44
- op: 'list-push',
45
- value: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
46
- },
47
- timestamp: '1',
48
- serverOrder: 2,
49
- },
50
- {
51
- libraryId: 'test-1',
52
- replicaId: 'foo',
53
- oid: 'weirds/b.list:ghi',
54
- data: {
55
- op: 'list-remove',
56
- value: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
57
- },
58
- timestamp: '2',
59
- serverOrder: 3,
60
- },
61
- {
62
- libraryId: 'test-2',
63
- replicaId: 'bar',
64
- oid: 'weirds/b',
65
- data: {
66
- op: 'set',
67
- value: { '@@type': 'ref', id: 'weirds/b.objectMap.one:ghi' },
68
- },
69
- timestamp: '1a',
70
- serverOrder: 1,
71
- },
72
- ].forEach(({ libraryId, replicaId, oid, data, timestamp, serverOrder }) => {
73
- db.prepare(
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
8
+ const migrations_js_1 = require("./migrations.js");
9
+ const fs_1 = __importDefault(require("fs"));
10
+ (0, vitest_1.describe)('the v5->v6 migration', () => {
11
+ let dbFile;
12
+ let db;
13
+ (0, vitest_1.beforeAll)(() => {
14
+ dbFile = `v5-migration-test-${Math.random()}.sqlite`;
15
+ db = (0, better_sqlite3_1.default)(dbFile);
16
+ });
17
+ (0, vitest_1.afterAll)(() => {
18
+ db.close();
19
+ fs_1.default.rmSync(dbFile);
20
+ });
21
+ (0, vitest_1.it)('rewrites legacy oids in all ops and baselines', () => {
22
+ // manually migrate to v4 before starting and seed the database with some
23
+ // operations and baselines.
24
+ (0, migrations_js_1.migrations)(db, 5);
25
+ // manually insert some operations and baselines
26
+ db.transaction(() => {
27
+ [
28
+ {
29
+ libraryId: 'test-1',
30
+ replicaId: 'foo',
31
+ oid: 'weirds/b',
32
+ data: {
33
+ op: 'set',
34
+ value: { '@@type': 'ref', id: 'weirds/b.objectMap.one:ghi' },
35
+ },
36
+ timestamp: '1',
37
+ serverOrder: 1,
38
+ },
39
+ {
40
+ libraryId: 'test-1',
41
+ replicaId: 'foo',
42
+ oid: 'weirds/b.list:ghi',
43
+ data: {
44
+ op: 'list-push',
45
+ value: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
46
+ },
47
+ timestamp: '1',
48
+ serverOrder: 2,
49
+ },
50
+ {
51
+ libraryId: 'test-1',
52
+ replicaId: 'foo',
53
+ oid: 'weirds/b.list:ghi',
54
+ data: {
55
+ op: 'list-remove',
56
+ value: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
57
+ },
58
+ timestamp: '2',
59
+ serverOrder: 3,
60
+ },
61
+ {
62
+ libraryId: 'test-2',
63
+ replicaId: 'bar',
64
+ oid: 'weirds/b',
65
+ data: {
66
+ op: 'set',
67
+ value: { '@@type': 'ref', id: 'weirds/b.objectMap.one:ghi' },
68
+ },
69
+ timestamp: '1a',
70
+ serverOrder: 1,
71
+ },
72
+ ].forEach(({ libraryId, replicaId, oid, data, timestamp, serverOrder }) => {
73
+ db.prepare(
74
74
  /* sql */ `
75
75
  INSERT INTO OperationHistory (libraryId, replicaId, oid, data, timestamp, serverOrder)
76
76
  VALUES (?, ?, ?, ?, ?, ?);
77
- `).run(libraryId, replicaId, oid, JSON.stringify(data), timestamp, serverOrder);
78
- });
79
- [
80
- {
81
- libraryId: 'test-1',
82
- oid: 'weirds/b.objectMap.one:ghi',
83
- snapshot: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
84
- timestamp: '1',
85
- },
86
- {
87
- libraryId: 'test-2',
88
- oid: 'weirds/b.objectMap.one:ghi',
89
- snapshot: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
90
- timestamp: '1a',
91
- },
92
- ].forEach(({ libraryId, oid, snapshot, timestamp }) => {
93
- db.prepare(
77
+ `).run(libraryId, replicaId, oid, JSON.stringify(data), timestamp, serverOrder);
78
+ });
79
+ [
80
+ {
81
+ libraryId: 'test-1',
82
+ oid: 'weirds/b.objectMap.one:ghi',
83
+ snapshot: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
84
+ timestamp: '1',
85
+ },
86
+ {
87
+ libraryId: 'test-2',
88
+ oid: 'weirds/b.objectMap.one:ghi',
89
+ snapshot: { '@@type': 'ref', id: 'weirds/b.list.#:abc' },
90
+ timestamp: '1a',
91
+ },
92
+ ].forEach(({ libraryId, oid, snapshot, timestamp }) => {
93
+ db.prepare(
94
94
  /* sql */ `
95
95
  INSERT INTO DocumentBaseline (libraryId, oid, snapshot, timestamp)
96
96
  VALUES (?, ?, ?, ?);
97
- `).run(libraryId, oid, JSON.stringify(snapshot), timestamp);
98
- });
99
- })();
100
- (0, migrations_js_1.migrations)(db);
101
- // check that the operations and baselines have been rewritten
102
- db.transaction(() => {
103
- const operations = db
104
- .prepare(
97
+ `).run(libraryId, oid, JSON.stringify(snapshot), timestamp);
98
+ });
99
+ })();
100
+ (0, migrations_js_1.migrations)(db);
101
+ // check that the operations and baselines have been rewritten
102
+ db.transaction(() => {
103
+ const operations = db
104
+ .prepare(
105
105
  /* sql */ `
106
106
  SELECT * from OperationHistory;
107
- `)
108
- .all();
109
- (0, vitest_1.expect)(operations).toMatchSnapshot();
110
- const baselines = db
111
- .prepare(
107
+ `)
108
+ .all();
109
+ (0, vitest_1.expect)(operations).toMatchSnapshot();
110
+ const baselines = db
111
+ .prepare(
112
112
  /* sql */ `
113
113
  SELECT * from DocumentBaseline;
114
- `)
115
- .all();
116
- (0, vitest_1.expect)(baselines).toMatchSnapshot();
117
- })();
118
- db.close();
119
- });
120
- });
114
+ `)
115
+ .all();
116
+ (0, vitest_1.expect)(baselines).toMatchSnapshot();
117
+ })();
118
+ db.close();
119
+ });
120
+ });
121
121
  //# sourceMappingURL=migrations.test.js.map
@@ -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/cjs/types.js CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=types.js.map
@@ -1,15 +1,15 @@
1
- import { DocumentBaseline, Operation, Ref } from '@verdant-web/common';
2
- import { Database } from 'better-sqlite3';
3
- export declare class Baselines {
4
- private db;
5
- constructor(db: Database);
6
- get: (libraryId: string, oid: string) => DocumentBaseline<any> | null;
7
- getAllWithSubObjects: (libraryId: string, oid: string) => DocumentBaseline<any>[];
8
- set: (libraryId: string, baseline: DocumentBaseline) => import("better-sqlite3").RunResult;
9
- insertAll: (libraryId: string, baselines: DocumentBaseline[]) => void;
10
- private hydrateSnapshot;
11
- getAllAfter: (libraryId: string, timestamp: string | null) => DocumentBaseline<any>[];
12
- applyOperations: (libraryId: string, oid: string, operations: Operation[], deletedRefs?: Ref[]) => never[] | undefined;
13
- deleteAll: (libraryId: string) => void;
14
- getCount: (libraryId: string) => number;
15
- }
1
+ import { DocumentBaseline, Operation, Ref } from '@verdant-web/common';
2
+ import { Database } from 'better-sqlite3';
3
+ export declare class Baselines {
4
+ private db;
5
+ constructor(db: Database);
6
+ get: (libraryId: string, oid: string) => DocumentBaseline<any> | null;
7
+ getAllWithSubObjects: (libraryId: string, oid: string) => DocumentBaseline<any>[];
8
+ set: (libraryId: string, baseline: DocumentBaseline) => import("better-sqlite3").RunResult;
9
+ insertAll: (libraryId: string, baselines: DocumentBaseline[]) => void;
10
+ private hydrateSnapshot;
11
+ getAllAfter: (libraryId: string, timestamp: string | null) => DocumentBaseline<any>[];
12
+ applyOperations: (libraryId: string, oid: string, operations: Operation[], deletedRefs?: Ref[]) => never[] | undefined;
13
+ deleteAll: (libraryId: string) => void;
14
+ getCount: (libraryId: string) => number;
15
+ }