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

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 (150) 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/ServerStorage.d.ts +35 -0
  22. package/dist/cjs/ServerStorage.js +60 -0
  23. package/dist/cjs/ServerStorage.js.map +1 -0
  24. package/dist/cjs/TokenProvider.d.ts +16 -16
  25. package/dist/cjs/TokenProvider.js +26 -26
  26. package/dist/cjs/TokenVerifier.d.ts +16 -16
  27. package/dist/cjs/TokenVerifier.js +28 -28
  28. package/dist/cjs/files/FileMetadata.d.ts +28 -28
  29. package/dist/cjs/files/FileMetadata.js +46 -46
  30. package/dist/cjs/files/FileStorage.d.ts +35 -35
  31. package/dist/cjs/files/FileStorage.js +71 -71
  32. package/dist/cjs/index.d.ts +9 -9
  33. package/dist/cjs/index.js +11 -11
  34. package/dist/cjs/migrations/v0.d.ts +1 -0
  35. package/dist/cjs/migrations/v0.js +30 -0
  36. package/dist/cjs/migrations/v0.js.map +1 -0
  37. package/dist/cjs/migrations/v0.sql.d.ts +2 -2
  38. package/dist/cjs/migrations/v0.sql.js +3 -3
  39. package/dist/cjs/migrations/v1.d.ts +1 -0
  40. package/dist/cjs/migrations/v1.js +32 -0
  41. package/dist/cjs/migrations/v1.js.map +1 -0
  42. package/dist/cjs/migrations/v1.sql.d.ts +2 -2
  43. package/dist/cjs/migrations/v1.sql.js +3 -3
  44. package/dist/cjs/migrations/v2.d.ts +1 -0
  45. package/dist/cjs/migrations/v2.js +29 -0
  46. package/dist/cjs/migrations/v2.js.map +1 -0
  47. package/dist/cjs/migrations/v2.sql.d.ts +2 -2
  48. package/dist/cjs/migrations/v2.sql.js +4 -4
  49. package/dist/cjs/migrations/v3.d.ts +1 -0
  50. package/dist/cjs/migrations/v3.js +15 -0
  51. package/dist/cjs/migrations/v3.js.map +1 -0
  52. package/dist/cjs/migrations/v3.sql.d.ts +2 -2
  53. package/dist/cjs/migrations/v3.sql.js +4 -4
  54. package/dist/cjs/migrations/v4.d.ts +1 -0
  55. package/dist/cjs/migrations/v4.js +9 -0
  56. package/dist/cjs/migrations/v4.js.map +1 -0
  57. package/dist/cjs/migrations/v4.sql.d.ts +2 -2
  58. package/dist/cjs/migrations/v4.sql.js +4 -4
  59. package/dist/cjs/migrations/v5.d.ts +2 -0
  60. package/dist/cjs/migrations/v5.js +35 -0
  61. package/dist/cjs/migrations/v5.js.map +1 -0
  62. package/dist/cjs/migrations.d.ts +6 -2
  63. package/dist/cjs/migrations.js +62 -32
  64. package/dist/cjs/migrations.js.map +1 -1
  65. package/dist/cjs/migrations.test.d.ts +1 -0
  66. package/dist/cjs/migrations.test.js +121 -0
  67. package/dist/cjs/migrations.test.js.map +1 -0
  68. package/dist/cjs/types.d.ts +22 -22
  69. package/dist/cjs/types.js +2 -2
  70. package/dist/esm/Baselines.d.ts +15 -15
  71. package/dist/esm/Baselines.js +79 -79
  72. package/dist/esm/ClientConnection.d.ts +18 -18
  73. package/dist/esm/ClientConnection.js +101 -101
  74. package/dist/esm/MessageSender.d.ts +5 -5
  75. package/dist/esm/MessageSender.js +1 -1
  76. package/dist/esm/OperationHistory.d.ts +36 -36
  77. package/dist/esm/OperationHistory.js +116 -116
  78. package/dist/esm/Presence.d.ts +15 -15
  79. package/dist/esm/Presence.js +52 -52
  80. package/dist/esm/Profiles.d.ts +10 -10
  81. package/dist/esm/Profiles.js +15 -15
  82. package/dist/esm/ReplicaKeepaliveTimers.d.ts +17 -17
  83. package/dist/esm/ReplicaKeepaliveTimers.js +26 -26
  84. package/dist/esm/Replicas.d.ts +24 -24
  85. package/dist/esm/Replicas.js +133 -133
  86. package/dist/esm/Server.d.ts +143 -143
  87. package/dist/esm/Server.js +389 -389
  88. package/dist/esm/ServerLibrary.d.ts +77 -77
  89. package/dist/esm/ServerLibrary.js +483 -483
  90. package/dist/esm/ServerStorage.d.ts +44 -0
  91. package/dist/esm/ServerStorage.js +58 -0
  92. package/dist/esm/ServerStorage.js.map +1 -0
  93. package/dist/esm/TokenProvider.d.ts +16 -16
  94. package/dist/esm/TokenProvider.js +19 -19
  95. package/dist/esm/TokenVerifier.d.ts +16 -16
  96. package/dist/esm/TokenVerifier.js +21 -21
  97. package/dist/esm/files/FileMetadata.d.ts +28 -28
  98. package/dist/esm/files/FileMetadata.js +42 -42
  99. package/dist/esm/files/FileStorage.d.ts +35 -35
  100. package/dist/esm/files/FileStorage.js +44 -44
  101. package/dist/esm/index.d.ts +9 -9
  102. package/dist/esm/index.js +4 -4
  103. package/dist/esm/migrations/v0.d.ts +1 -0
  104. package/dist/esm/migrations/v0.js +27 -0
  105. package/dist/esm/migrations/v0.js.map +1 -0
  106. package/dist/esm/migrations/v0.sql.d.ts +2 -2
  107. package/dist/esm/migrations/v0.sql.js +1 -1
  108. package/dist/esm/migrations/v1.d.ts +1 -0
  109. package/dist/esm/migrations/v1.js +29 -0
  110. package/dist/esm/migrations/v1.js.map +1 -0
  111. package/dist/esm/migrations/v1.sql.d.ts +2 -2
  112. package/dist/esm/migrations/v1.sql.js +1 -1
  113. package/dist/esm/migrations/v2.d.ts +1 -0
  114. package/dist/esm/migrations/v2.js +26 -0
  115. package/dist/esm/migrations/v2.js.map +1 -0
  116. package/dist/esm/migrations/v2.sql.d.ts +2 -2
  117. package/dist/esm/migrations/v2.sql.js +2 -2
  118. package/dist/esm/migrations/v3.d.ts +1 -0
  119. package/dist/esm/migrations/v3.js +12 -0
  120. package/dist/esm/migrations/v3.js.map +1 -0
  121. package/dist/esm/migrations/v3.sql.d.ts +2 -2
  122. package/dist/esm/migrations/v3.sql.js +2 -2
  123. package/dist/esm/migrations/v4.d.ts +1 -0
  124. package/dist/esm/migrations/v4.js +6 -0
  125. package/dist/esm/migrations/v4.js.map +1 -0
  126. package/dist/esm/migrations/v4.sql.d.ts +2 -2
  127. package/dist/esm/migrations/v4.sql.js +2 -2
  128. package/dist/esm/migrations/v5.d.ts +2 -0
  129. package/dist/esm/migrations/v5.js +31 -0
  130. package/dist/esm/migrations/v5.js.map +1 -0
  131. package/dist/esm/migrations.d.ts +6 -2
  132. package/dist/esm/migrations.js +35 -25
  133. package/dist/esm/migrations.js.map +1 -1
  134. package/dist/esm/migrations.test.d.ts +1 -0
  135. package/dist/esm/migrations.test.js +116 -0
  136. package/dist/esm/migrations.test.js.map +1 -0
  137. package/dist/esm/types.d.ts +22 -22
  138. package/dist/esm/types.js +1 -1
  139. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  140. package/dist/tsconfig.tsbuildinfo +1 -1
  141. package/package.json +6 -4
  142. package/src/__snapshots__/migrations.test.ts.snap +55 -0
  143. package/src/migrations/{v0.sql.ts → v0.ts} +1 -1
  144. package/src/migrations/{v1.sql.ts → v1.ts} +1 -1
  145. package/src/migrations/{v2.sql.ts → v2.ts} +1 -1
  146. package/src/migrations/{v3.sql.ts → v3.ts} +1 -1
  147. package/src/migrations/{v4.sql.ts → v4.ts} +1 -1
  148. package/src/migrations/v5.ts +47 -0
  149. package/src/migrations.test.ts +133 -0
  150. package/src/migrations.ts +28 -19
@@ -1,2 +1,2 @@
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
+ 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;
@@ -23,5 +23,5 @@ CREATE TABLE IF NOT EXISTS DocumentBaseline (
23
23
  timestamp TEXT NOT NULL,
24
24
  libraryId TEXT NOT NULL
25
25
  );
26
- `;
26
+ `;
27
27
  //# sourceMappingURL=v0.sql.js.map
@@ -0,0 +1 @@
1
+ export declare const sql = "\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";
@@ -0,0 +1,29 @@
1
+ export const sql = `
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.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.js","sourceRoot":"","sources":["../../../src/migrations/v1.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BlB,CAAC"}
@@ -1,2 +1,2 @@
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
+ 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;
@@ -25,5 +25,5 @@ FROM
25
25
  ReplicaInfoOld;
26
26
 
27
27
  DROP TABLE ReplicaInfoOld;
28
- `;
28
+ `;
29
29
  //# sourceMappingURL=v1.sql.js.map
@@ -0,0 +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";
@@ -0,0 +1,26 @@
1
+ // fixes primary key for document baselines to include libraryId
2
+ export const sql = `
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.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../../src/migrations/v2.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,MAAM,CAAC,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBlB,CAAC"}
@@ -1,2 +1,2 @@
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
+ 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,4 +1,4 @@
1
- // fixes primary key for document baselines to include libraryId
1
+ // fixes primary key for document baselines to include libraryId
2
2
  export default `
3
3
  ALTER TABLE
4
4
  DocumentBaseline RENAME TO DocumentBaselineOld;
@@ -22,5 +22,5 @@ export default `
22
22
  DocumentBaselineOld;
23
23
 
24
24
  DROP TABLE DocumentBaselineOld;
25
- `;
25
+ `;
26
26
  //# sourceMappingURL=v2.sql.js.map
@@ -0,0 +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";
@@ -0,0 +1,12 @@
1
+ // add the FileMetadata table
2
+ export const sql = `
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.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v3.js","sourceRoot":"","sources":["../../../src/migrations/v3.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,MAAM,CAAC,MAAM,GAAG,GAAG;;;;;;;;;CASlB,CAAC"}
@@ -1,2 +1,2 @@
1
- declare const _default: "\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";
2
- export default _default;
1
+ declare const _default: "\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";
2
+ export default _default;
@@ -1,4 +1,4 @@
1
- // add the FileMetadata table
1
+ // add the FileMetadata table
2
2
  export default `
3
3
  CREATE TABLE IF NOT EXISTS FileMetadata (
4
4
  libraryId TEXT NOT NULL,
@@ -8,5 +8,5 @@ export default `
8
8
  pendingDeleteAt INTEGER,
9
9
  PRIMARY KEY (libraryId, fileId)
10
10
  );
11
- `;
11
+ `;
12
12
  //# sourceMappingURL=v3.sql.js.map
@@ -0,0 +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";
@@ -0,0 +1,6 @@
1
+ // add server order to replicas and operations
2
+ export const sql = `
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.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4.js","sourceRoot":"","sources":["../../../src/migrations/v4.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAE9C,MAAM,CAAC,MAAM,GAAG,GAAG;;;CAGlB,CAAC"}
@@ -1,2 +1,2 @@
1
- declare const _default: "\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";
2
- export default _default;
1
+ declare const _default: "\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";
2
+ export default _default;
@@ -1,6 +1,6 @@
1
- // add server order to replicas and operations
1
+ // add server order to replicas and operations
2
2
  export default `
3
3
  ALTER TABLE ReplicaInfo ADD COLUMN ackedServerOrder INTEGER DEFAULT 0 NOT NULL;
4
4
  ALTER TABLE OperationHistory ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;
5
- `;
5
+ `;
6
6
  //# sourceMappingURL=v4.sql.js.map
@@ -0,0 +1,2 @@
1
+ import SQL from 'better-sqlite3';
2
+ export declare const procedure: (db: SQL.Database) => void;
@@ -0,0 +1,31 @@
1
+ import { convertLegacyOid, replaceLegacyOidsInJsonString, } from '@verdant-web/common';
2
+ // read all operations and write them back without legacy IDs.
3
+ export const procedure = (db) => {
4
+ const operations = db
5
+ .prepare(/* sql */ `SELECT * from OperationHistory;`)
6
+ .all();
7
+ for (const op of operations) {
8
+ db.prepare(
9
+ /* sql */ `
10
+ UPDATE OperationHistory
11
+ SET oid = ?,
12
+ data = ?
13
+ WHERE oid = ? AND timestamp = ? AND libraryId = ?;
14
+ `).run(convertLegacyOid(op.oid),
15
+ // data is already a string, so just leave it and do the conversion on the string
16
+ replaceLegacyOidsInJsonString(op.data), op.oid, op.timestamp, op.libraryId);
17
+ }
18
+ const baselines = db
19
+ .prepare(/* sql */ `SELECT * from DocumentBaseline;`)
20
+ .all();
21
+ for (const baseline of baselines) {
22
+ db.prepare(
23
+ /* sql */ `
24
+ UPDATE DocumentBaseline
25
+ SET oid = ?,
26
+ snapshot = ?
27
+ WHERE oid = ? AND libraryId = ?;
28
+ `).run(convertLegacyOid(baseline.oid), replaceLegacyOidsInJsonString(baseline.snapshot), baseline.oid, baseline.libraryId);
29
+ }
30
+ };
31
+ //# sourceMappingURL=v5.js.map
@@ -0,0 +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,EACtC,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,6BAA6B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAChD,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,SAAS,CAClB,CAAC;KACF;AACF,CAAC,CAAC"}
@@ -1,2 +1,6 @@
1
- import type { Database } from 'better-sqlite3';
2
- export declare function migrations(db: Database): 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,34 +1,44 @@
1
- import v0Sql from './migrations/v0.sql.js';
2
- import v1Sql from './migrations/v1.sql.js';
3
- import v2Sql from './migrations/v2.sql.js';
4
- import v3Sql from './migrations/v3.sql.js';
5
- import v4Sql from './migrations/v4.sql.js';
6
- const allMigrations = [v0Sql, v1Sql, v2Sql, v3Sql, v4Sql];
7
- export function migrations(db) {
8
- var _a;
9
- // 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
10
11
  db.prepare(`
11
12
  CREATE TABLE IF NOT EXISTS versions (
12
13
  version INTEGER NOT NULL PRIMARY KEY
13
14
  );
14
- `).run();
15
- // get the current version
16
- const versionResult = db
15
+ `).run();
16
+ // get the current version
17
+ const versionResult = db
17
18
  .prepare(`
18
19
  SELECT version FROM versions ORDER BY version DESC LIMIT 1;
19
- `)
20
- .get();
21
- const version = (_a = versionResult === null || versionResult === void 0 ? void 0 : versionResult.version) !== null && _a !== void 0 ? _a : 0;
22
- const sqlToRun = allMigrations.slice(version);
23
- if (sqlToRun.length === 0)
24
- return;
25
- console.info('Running migrations from ', version, 'to', allMigrations.length - 1);
26
- const run = db.transaction(() => {
27
- sqlToRun.forEach((sql) => db.exec(sql));
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
+ }
28
38
  db.prepare(`
29
39
  INSERT INTO versions (version) VALUES (?);
30
- `).run(allMigrations.length);
31
- });
32
- run();
33
- }
40
+ `).run(upTo);
41
+ });
42
+ run();
43
+ }
34
44
  //# sourceMappingURL=migrations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAC3C,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAC3C,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAC3C,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAC3C,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAE3C,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAE1D,MAAM,UAAU,UAAU,CAAC,EAAY;;IACtC,gDAAgD;IAChD,EAAE,CAAC,OAAO,CACT;;;;GAIC,CACD,CAAC,GAAG,EAAE,CAAC;IAER,0BAA0B;IAC1B,MAAM,aAAa,GAAG,EAAE;SACtB,OAAO,CACP;;GAEA,CACA;SACA,GAAG,EAAqC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,mCAAI,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,OAAO,CAAC,IAAI,CACX,0BAA0B,EAC1B,OAAO,EACP,IAAI,EACJ,aAAa,CAAC,MAAM,GAAG,CAAC,CACxB,CAAC;IAEF,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/B,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,EAAE,CAAC,OAAO,CACT;;GAEA,CACA,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,GAAG,EAAE,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GAGpB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAE/B,MAAM,UAAU,UAAU,CAAC,EAAY,EAAE,OAAe,aAAa,CAAC,MAAM;;IAC3E,gDAAgD;IAChD,EAAE,CAAC,OAAO,CACT;;;;GAIC,CACD,CAAC,GAAG,EAAE,CAAC;IAER,0BAA0B;IAC1B,MAAM,aAAa,GAAG,EAAE;SACtB,OAAO,CACP;;GAEA,CACA;SACA,GAAG,EAAqC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,mCAAI,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,OAAO;KACP;IAED,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/B,KAAK,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,KAAK,EAAE;YACvC,IAAI,GAAG,EAAE;gBACR,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;YACD,IAAI,SAAS,EAAE;gBACd,SAAS,CAAC,EAAE,CAAC,CAAC;aACd;SACD;QACD,EAAE,CAAC,OAAO,CACT;;GAEA,CACA,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,GAAG,EAAE,CAAC;AACP,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +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(
69
+ /* sql */ `
70
+ INSERT INTO OperationHistory (libraryId, replicaId, oid, data, timestamp, serverOrder)
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(
89
+ /* sql */ `
90
+ INSERT INTO DocumentBaseline (libraryId, oid, snapshot, timestamp)
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(
100
+ /* sql */ `
101
+ SELECT * from OperationHistory;
102
+ `)
103
+ .all();
104
+ expect(operations).toMatchSnapshot();
105
+ const baselines = db
106
+ .prepare(
107
+ /* sql */ `
108
+ SELECT * from DocumentBaseline;
109
+ `)
110
+ .all();
111
+ expect(baselines).toMatchSnapshot();
112
+ })();
113
+ db.close();
114
+ });
115
+ });
116
+ //# sourceMappingURL=migrations.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.test.js","sourceRoot":"","sources":["../../src/migrations.test.ts"],"names":[],"mappings":"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"}
@@ -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