@verdant-web/server 2.1.3 → 3.0.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 (198) hide show
  1. package/dist/esm/ClientConnection.d.ts +1 -0
  2. package/dist/esm/ClientConnection.js.map +1 -1
  3. package/dist/esm/Presence.js.map +1 -1
  4. package/dist/esm/Profiles.js.map +1 -1
  5. package/dist/esm/ReplicaKeepaliveTimers.js.map +1 -1
  6. package/dist/esm/Server.d.ts +15 -11
  7. package/dist/esm/Server.js +29 -30
  8. package/dist/esm/Server.js.map +1 -1
  9. package/dist/esm/ServerLibrary.d.ts +10 -17
  10. package/dist/esm/ServerLibrary.js +151 -127
  11. package/dist/esm/ServerLibrary.js.map +1 -1
  12. package/dist/esm/ServerLibrary.test.js +369 -0
  13. package/dist/esm/ServerLibrary.test.js.map +1 -0
  14. package/dist/esm/TokenVerifier.js.map +1 -1
  15. package/dist/esm/files/FileStorage.js.map +1 -1
  16. package/dist/esm/storage/Storage.d.ts +67 -0
  17. package/dist/esm/storage/Storage.js +2 -0
  18. package/dist/esm/storage/Storage.js.map +1 -0
  19. package/dist/esm/storage/index.d.ts +2 -0
  20. package/dist/esm/storage/index.js +3 -0
  21. package/dist/esm/storage/index.js.map +1 -0
  22. package/dist/esm/storage/sql/SqlBaselines.d.ts +22 -0
  23. package/dist/esm/storage/sql/SqlBaselines.js +101 -0
  24. package/dist/esm/storage/sql/SqlBaselines.js.map +1 -0
  25. package/dist/esm/storage/sql/SqlFileMetadata.d.ts +18 -0
  26. package/dist/esm/storage/sql/SqlFileMetadata.js +69 -0
  27. package/dist/esm/storage/sql/SqlFileMetadata.js.map +1 -0
  28. package/dist/esm/storage/sql/SqlOperations.d.ts +19 -0
  29. package/dist/esm/storage/sql/SqlOperations.js +104 -0
  30. package/dist/esm/storage/sql/SqlOperations.js.map +1 -0
  31. package/dist/esm/storage/sql/SqlReplicas.d.ts +32 -0
  32. package/dist/esm/storage/sql/SqlReplicas.js +163 -0
  33. package/dist/esm/storage/sql/SqlReplicas.js.map +1 -0
  34. package/dist/esm/storage/sql/migrations/v1.d.ts +3 -0
  35. package/dist/esm/storage/sql/migrations/v1.js +59 -0
  36. package/dist/esm/storage/sql/migrations/v1.js.map +1 -0
  37. package/dist/esm/storage/sql/migrations.d.ts +5 -0
  38. package/dist/esm/storage/sql/migrations.js +3 -0
  39. package/dist/esm/storage/sql/migrations.js.map +1 -0
  40. package/dist/esm/storage/sql/sqlStorage.d.ts +5 -0
  41. package/dist/esm/storage/sql/sqlStorage.js +43 -0
  42. package/dist/esm/storage/sql/sqlStorage.js.map +1 -0
  43. package/dist/esm/storage/sql/tables.d.ts +40 -0
  44. package/dist/esm/storage/sql/tables.js +2 -0
  45. package/dist/esm/storage/sql/tables.js.map +1 -0
  46. package/dist/esm/types.d.ts +14 -5
  47. package/package.json +20 -14
  48. package/src/Server.ts +37 -43
  49. package/src/ServerLibrary.test.ts +447 -0
  50. package/src/ServerLibrary.ts +239 -163
  51. package/src/storage/Storage.ts +118 -0
  52. package/src/storage/index.ts +2 -0
  53. package/src/storage/sql/SqlBaselines.ts +141 -0
  54. package/src/storage/sql/SqlFileMetadata.ts +94 -0
  55. package/src/storage/sql/SqlOperations.ts +149 -0
  56. package/src/storage/sql/SqlReplicas.ts +234 -0
  57. package/src/storage/sql/migrations/v1.ts +64 -0
  58. package/src/storage/sql/migrations.ts +3 -0
  59. package/src/storage/sql/sqlStorage.ts +59 -0
  60. package/src/storage/sql/tables.ts +45 -0
  61. package/src/types.ts +15 -4
  62. package/bin/server.mjs +0 -115
  63. package/dist/cjs/Baselines.d.ts +0 -16
  64. package/dist/cjs/Baselines.js +0 -128
  65. package/dist/cjs/Baselines.js.map +0 -1
  66. package/dist/cjs/ClientConnection.d.ts +0 -20
  67. package/dist/cjs/ClientConnection.js +0 -139
  68. package/dist/cjs/ClientConnection.js.map +0 -1
  69. package/dist/cjs/MessageSender.d.ts +0 -5
  70. package/dist/cjs/MessageSender.js +0 -3
  71. package/dist/cjs/MessageSender.js.map +0 -1
  72. package/dist/cjs/OperationHistory.d.ts +0 -36
  73. package/dist/cjs/OperationHistory.js +0 -165
  74. package/dist/cjs/OperationHistory.js.map +0 -1
  75. package/dist/cjs/Presence.d.ts +0 -15
  76. package/dist/cjs/Presence.js +0 -60
  77. package/dist/cjs/Presence.js.map +0 -1
  78. package/dist/cjs/Profiles.d.ts +0 -10
  79. package/dist/cjs/Profiles.js +0 -20
  80. package/dist/cjs/Profiles.js.map +0 -1
  81. package/dist/cjs/ReplicaKeepaliveTimers.d.ts +0 -17
  82. package/dist/cjs/ReplicaKeepaliveTimers.js +0 -31
  83. package/dist/cjs/ReplicaKeepaliveTimers.js.map +0 -1
  84. package/dist/cjs/Replicas.d.ts +0 -25
  85. package/dist/cjs/Replicas.js +0 -196
  86. package/dist/cjs/Replicas.js.map +0 -1
  87. package/dist/cjs/Server.d.ts +0 -167
  88. package/dist/cjs/Server.js +0 -552
  89. package/dist/cjs/Server.js.map +0 -1
  90. package/dist/cjs/ServerLibrary.d.ts +0 -65
  91. package/dist/cjs/ServerLibrary.js +0 -505
  92. package/dist/cjs/ServerLibrary.js.map +0 -1
  93. package/dist/cjs/TokenProvider.d.ts +0 -19
  94. package/dist/cjs/TokenProvider.js +0 -27
  95. package/dist/cjs/TokenProvider.js.map +0 -1
  96. package/dist/cjs/TokenVerifier.d.ts +0 -16
  97. package/dist/cjs/TokenVerifier.js +0 -40
  98. package/dist/cjs/TokenVerifier.js.map +0 -1
  99. package/dist/cjs/files/FileMetadata.d.ts +0 -28
  100. package/dist/cjs/files/FileMetadata.js +0 -69
  101. package/dist/cjs/files/FileMetadata.js.map +0 -1
  102. package/dist/cjs/files/FileStorage.d.ts +0 -35
  103. package/dist/cjs/files/FileStorage.js +0 -72
  104. package/dist/cjs/files/FileStorage.js.map +0 -1
  105. package/dist/cjs/index.d.ts +0 -10
  106. package/dist/cjs/index.js +0 -12
  107. package/dist/cjs/index.js.map +0 -1
  108. package/dist/cjs/migrations/v0.d.ts +0 -1
  109. package/dist/cjs/migrations/v0.js +0 -30
  110. package/dist/cjs/migrations/v0.js.map +0 -1
  111. package/dist/cjs/migrations/v1.d.ts +0 -1
  112. package/dist/cjs/migrations/v1.js +0 -32
  113. package/dist/cjs/migrations/v1.js.map +0 -1
  114. package/dist/cjs/migrations/v2.d.ts +0 -1
  115. package/dist/cjs/migrations/v2.js +0 -29
  116. package/dist/cjs/migrations/v2.js.map +0 -1
  117. package/dist/cjs/migrations/v3.d.ts +0 -1
  118. package/dist/cjs/migrations/v3.js +0 -15
  119. package/dist/cjs/migrations/v3.js.map +0 -1
  120. package/dist/cjs/migrations/v4.d.ts +0 -1
  121. package/dist/cjs/migrations/v4.js +0 -9
  122. package/dist/cjs/migrations/v4.js.map +0 -1
  123. package/dist/cjs/migrations/v5.d.ts +0 -2
  124. package/dist/cjs/migrations/v5.js +0 -37
  125. package/dist/cjs/migrations/v5.js.map +0 -1
  126. package/dist/cjs/migrations/v6.d.ts +0 -1
  127. package/dist/cjs/migrations/v6.js +0 -8
  128. package/dist/cjs/migrations/v6.js.map +0 -1
  129. package/dist/cjs/migrations/v7.d.ts +0 -1
  130. package/dist/cjs/migrations/v7.js +0 -10
  131. package/dist/cjs/migrations/v7.js.map +0 -1
  132. package/dist/cjs/migrations.d.ts +0 -6
  133. package/dist/cjs/migrations.js +0 -72
  134. package/dist/cjs/migrations.js.map +0 -1
  135. package/dist/cjs/migrations.test.js +0 -121
  136. package/dist/cjs/migrations.test.js.map +0 -1
  137. package/dist/cjs/types.d.ts +0 -38
  138. package/dist/cjs/types.js +0 -3
  139. package/dist/cjs/types.js.map +0 -1
  140. package/dist/esm/Baselines.d.ts +0 -16
  141. package/dist/esm/Baselines.js +0 -124
  142. package/dist/esm/Baselines.js.map +0 -1
  143. package/dist/esm/OperationHistory.d.ts +0 -36
  144. package/dist/esm/OperationHistory.js +0 -161
  145. package/dist/esm/OperationHistory.js.map +0 -1
  146. package/dist/esm/Replicas.d.ts +0 -25
  147. package/dist/esm/Replicas.js +0 -192
  148. package/dist/esm/Replicas.js.map +0 -1
  149. package/dist/esm/files/FileMetadata.d.ts +0 -28
  150. package/dist/esm/files/FileMetadata.js +0 -65
  151. package/dist/esm/files/FileMetadata.js.map +0 -1
  152. package/dist/esm/migrations/v0.d.ts +0 -1
  153. package/dist/esm/migrations/v0.js +0 -27
  154. package/dist/esm/migrations/v0.js.map +0 -1
  155. package/dist/esm/migrations/v1.d.ts +0 -1
  156. package/dist/esm/migrations/v1.js +0 -29
  157. package/dist/esm/migrations/v1.js.map +0 -1
  158. package/dist/esm/migrations/v2.d.ts +0 -1
  159. package/dist/esm/migrations/v2.js +0 -26
  160. package/dist/esm/migrations/v2.js.map +0 -1
  161. package/dist/esm/migrations/v3.d.ts +0 -1
  162. package/dist/esm/migrations/v3.js +0 -12
  163. package/dist/esm/migrations/v3.js.map +0 -1
  164. package/dist/esm/migrations/v4.d.ts +0 -1
  165. package/dist/esm/migrations/v4.js +0 -6
  166. package/dist/esm/migrations/v4.js.map +0 -1
  167. package/dist/esm/migrations/v5.d.ts +0 -2
  168. package/dist/esm/migrations/v5.js +0 -33
  169. package/dist/esm/migrations/v5.js.map +0 -1
  170. package/dist/esm/migrations/v6.d.ts +0 -1
  171. package/dist/esm/migrations/v6.js +0 -5
  172. package/dist/esm/migrations/v6.js.map +0 -1
  173. package/dist/esm/migrations/v7.d.ts +0 -1
  174. package/dist/esm/migrations/v7.js +0 -7
  175. package/dist/esm/migrations/v7.js.map +0 -1
  176. package/dist/esm/migrations.d.ts +0 -6
  177. package/dist/esm/migrations.js +0 -45
  178. package/dist/esm/migrations.js.map +0 -1
  179. package/dist/esm/migrations.test.d.ts +0 -1
  180. package/dist/esm/migrations.test.js +0 -116
  181. package/dist/esm/migrations.test.js.map +0 -1
  182. package/dist/tsconfig-cjs.tsbuildinfo +0 -1
  183. package/dist/tsconfig.tsbuildinfo +0 -1
  184. package/src/Baselines.ts +0 -198
  185. package/src/OperationHistory.ts +0 -232
  186. package/src/Replicas.ts +0 -274
  187. package/src/files/FileMetadata.ts +0 -112
  188. package/src/migrations/v0.ts +0 -26
  189. package/src/migrations/v1.ts +0 -28
  190. package/src/migrations/v2.ts +0 -26
  191. package/src/migrations/v3.ts +0 -12
  192. package/src/migrations/v4.ts +0 -6
  193. package/src/migrations/v5.ts +0 -49
  194. package/src/migrations/v6.ts +0 -4
  195. package/src/migrations/v7.ts +0 -6
  196. package/src/migrations.test.ts +0 -133
  197. package/src/migrations.ts +0 -61
  198. /package/dist/{cjs/migrations.test.d.ts → esm/ServerLibrary.test.d.ts} +0 -0
@@ -1,28 +0,0 @@
1
- import { Database } from 'better-sqlite3';
2
- import { FileInfo } from './FileStorage.js';
3
- export interface FileMetadataConfig {
4
- deleteExpirationDays?: number;
5
- }
6
- export declare class FileMetadata {
7
- private db;
8
- private deleteExpirationDays;
9
- constructor(db: Database, { deleteExpirationDays }?: FileMetadataConfig);
10
- get: (libraryId: string, fileId: string) => {
11
- libraryId: string;
12
- fileId: string;
13
- name: string;
14
- type: string;
15
- };
16
- getAll: (libraryId: string) => any[];
17
- deleteAll: (libraryId: string) => import("better-sqlite3").RunResult;
18
- put: (libraryId: string, fileInfo: FileInfo) => import("better-sqlite3").RunResult;
19
- markPendingDelete: (libraryId: string, fileId: string) => import("better-sqlite3").RunResult;
20
- delete: (libraryId: string, fileId: string) => import("better-sqlite3").RunResult;
21
- getPendingDeletes: (libraryId: string) => {
22
- libraryId: string;
23
- fileId: string;
24
- name: string;
25
- type: string;
26
- pendingDeleteAt: number;
27
- }[];
28
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileMetadata = void 0;
4
- class FileMetadata {
5
- constructor(db, { deleteExpirationDays = 1 } = {}) {
6
- this.db = db;
7
- this.deleteExpirationDays = 1;
8
- this.get = (libraryId, fileId) => {
9
- return this.db
10
- .prepare(`
11
- SELECT * FROM FileMetadata
12
- WHERE libraryId = ? AND fileId = ?
13
- `)
14
- .get(libraryId, fileId);
15
- };
16
- this.getAll = (libraryId) => {
17
- return this.db
18
- .prepare(`
19
- SELECT * FROM FileMetadata
20
- WHERE libraryId = ?
21
- `)
22
- .all(libraryId);
23
- };
24
- this.deleteAll = (libraryId) => {
25
- return this.db
26
- .prepare(`
27
- DELETE FROM FileMetadata
28
- WHERE libraryId = ?
29
- `)
30
- .run(libraryId);
31
- };
32
- this.put = (libraryId, fileInfo) => {
33
- return this.db
34
- .prepare(`
35
- INSERT OR REPLACE INTO FileMetadata (libraryId, fileId, name, type)
36
- VALUES (?, ?, ?, ?)
37
- `)
38
- .run(libraryId, fileInfo.id, fileInfo.fileName, fileInfo.type);
39
- };
40
- this.markPendingDelete = (libraryId, fileId) => {
41
- return this.db
42
- .prepare(`
43
- UPDATE FileMetadata
44
- SET pendingDeleteAt = ?
45
- WHERE libraryId = ? AND fileId = ?
46
- `)
47
- .run(Date.now(), libraryId, fileId);
48
- };
49
- this.delete = (libraryId, fileId) => {
50
- return this.db
51
- .prepare(`
52
- DELETE FROM FileMetadata
53
- WHERE libraryId = ? AND fileId = ?
54
- `)
55
- .run(libraryId, fileId);
56
- };
57
- this.getPendingDeletes = (libraryId) => {
58
- return this.db
59
- .prepare(`
60
- SELECT * FROM FileMetadata
61
- WHERE libraryId = ? AND pendingDeleteAt < ?
62
- `)
63
- .all(libraryId, Date.now() - 1000 * 60 * 60 * 24 * this.deleteExpirationDays);
64
- };
65
- this.deleteExpirationDays = deleteExpirationDays;
66
- }
67
- }
68
- exports.FileMetadata = FileMetadata;
69
- //# sourceMappingURL=FileMetadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileMetadata.js","sourceRoot":"","sources":["../../../src/files/FileMetadata.ts"],"names":[],"mappings":";;;AAOA,MAAa,YAAY;IAGxB,YACS,EAAY,EACpB,EAAE,oBAAoB,GAAG,CAAC,KAAyB,EAAE;QAD7C,OAAE,GAAF,EAAE,CAAU;QAHb,yBAAoB,GAAG,CAAC,CAAC;QASjC,QAAG,GAAG,CACL,SAAiB,EACjB,MAAc,EAMb,EAAE;YACH,OAAO,IAAI,CAAC,EAAE;iBACZ,OAAO,CACP;;;KAGC,CACD;iBACA,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,SAAiB,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC,EAAE;iBACZ,OAAO,CACP;;;GAGD,CACC;iBACA,GAAG,CAAC,SAAS,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,cAAS,GAAG,CAAC,SAAiB,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,EAAE;iBACZ,OAAO,CACP;;;GAGD,CACC;iBACA,GAAG,CAAC,SAAS,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,QAAG,GAAG,CAAC,SAAiB,EAAE,QAAkB,EAAE,EAAE;YAC/C,OAAO,IAAI,CAAC,EAAE;iBACZ,OAAO,CACP;;;KAGC,CACD;iBACA,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,sBAAiB,GAAG,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE;YACzD,OAAO,IAAI,CAAC,EAAE;iBACZ,OAAO,CACP;;;;KAIC,CACD;iBACA,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE;YAC9C,OAAO,IAAI,CAAC,EAAE;iBACZ,OAAO,CACP;;;KAGC,CACD;iBACA,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,sBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE;YACzC,OAAO,IAAI,CAAC,EAAE;iBACZ,OAAO,CACP;;;KAGC,CACD;iBACA,GAAG,CACH,SAAS,EACT,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAO3D,CAAC;QACL,CAAC,CAAC;QAhGD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IAClD,CAAC;CAgGD;AAxGD,oCAwGC"}
@@ -1,35 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { Readable } from 'stream';
3
- export interface FileInfo {
4
- fileName: string;
5
- id: string;
6
- libraryId: string;
7
- type: string;
8
- }
9
- /**
10
- * The interface for implementing a file storage backend.
11
- * verdant will supply file Blobs and metadata, and the storage backend
12
- * must store them somewhere.
13
- *
14
- * The storage backend must also provide a way to get a URL for the file,
15
- * even if the file is not yet uploaded, based on its metadata.
16
- */
17
- export interface FileStorage {
18
- put(fileStream: Readable, data: FileInfo): Promise<void>;
19
- getUrl(data: FileInfo): string | Promise<string>;
20
- delete(data: FileInfo): Promise<void>;
21
- }
22
- export declare class LocalFileStorage implements FileStorage {
23
- private readonly host;
24
- private readonly rootDirectory;
25
- constructor({ rootDirectory, host, }: {
26
- rootDirectory: string;
27
- host: string;
28
- });
29
- private prepareHost;
30
- put(fileStream: Readable, data: FileInfo): Promise<void>;
31
- getUrl(data: FileInfo): string;
32
- delete(data: FileInfo): Promise<void>;
33
- private getPath;
34
- private getStorageLocation;
35
- }
@@ -1,72 +0,0 @@
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.LocalFileStorage = void 0;
27
- const fs = __importStar(require("fs"));
28
- const path = __importStar(require("path"));
29
- class LocalFileStorage {
30
- constructor({ rootDirectory, host, }) {
31
- this.prepareHost = (host) => {
32
- if (host.endsWith('/')) {
33
- return host.slice(0, -1);
34
- }
35
- return host;
36
- };
37
- this.host = this.prepareHost(host);
38
- this.rootDirectory = rootDirectory;
39
- }
40
- async put(fileStream, data) {
41
- const filePath = this.getPath(data);
42
- const containingDirectory = path.dirname(path.join(this.rootDirectory, filePath));
43
- await fs.promises.mkdir(containingDirectory, {
44
- recursive: true,
45
- });
46
- const dest = fs.createWriteStream(this.getStorageLocation(data));
47
- fileStream.pipe(dest);
48
- }
49
- getUrl(data) {
50
- return `${this.host}/${this.getPath(data)}`;
51
- }
52
- async delete(data) {
53
- await fs.promises.unlink(this.getStorageLocation(data));
54
- const containingDirectory = path.dirname(path.join(this.rootDirectory, this.getPath(data)));
55
- // delete the containing folder if it's empty
56
- try {
57
- await fs.promises.rmdir(containingDirectory);
58
- }
59
- catch (e) {
60
- // ignore
61
- }
62
- }
63
- getPath(data) {
64
- // retain the file extension
65
- return `${data.libraryId}/${data.id}/${data.fileName}`;
66
- }
67
- getStorageLocation(data) {
68
- return path.join(this.rootDirectory, this.getPath(data));
69
- }
70
- }
71
- exports.LocalFileStorage = LocalFileStorage;
72
- //# sourceMappingURL=FileStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileStorage.js","sourceRoot":"","sources":["../../../src/files/FileStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAwB7B,MAAa,gBAAgB;IAI5B,YAAY,EACX,aAAa,EACb,IAAI,GAIJ;QAKO,gBAAW,GAAG,CAAC,IAAY,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACzB;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QATD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACpC,CAAC;IASD,KAAK,CAAC,GAAG,CAAC,UAAoB,EAAE,IAAc;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CACvC,CAAC;QACF,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,EAAE;YAC5C,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,IAAc;QACpB,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAc;QAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAExD,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACjD,CAAC;QAEF,6CAA6C;QAC7C,IAAI;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;SAC7C;QAAC,OAAO,CAAC,EAAE;YACX,SAAS;SACT;IACF,CAAC;IAEO,OAAO,CAAC,IAAc;QAC7B,4BAA4B;QAC5B,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;IAEO,kBAAkB,CAAC,IAAc;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;CACD;AA7DD,4CA6DC"}
@@ -1,10 +0,0 @@
1
- export type { MessageSender } from './MessageSender.js';
2
- export type { UserProfiles } from './Profiles.js';
3
- export type { ClientMessage, ServerMessage } from '@verdant-web/common';
4
- export { ReplicaType } from '@verdant-web/common';
5
- export { Server } from './Server.js';
6
- export { TokenProvider } from './TokenProvider.js';
7
- export { LocalFileStorage } from './files/FileStorage.js';
8
- export type { FileStorage, FileInfo } from './files/FileStorage.js';
9
- export type { TokenInfo } from './TokenVerifier.js';
10
- export type { LibraryInfo } from './types.js';
package/dist/cjs/index.js DELETED
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LocalFileStorage = exports.TokenProvider = exports.Server = exports.ReplicaType = void 0;
4
- var common_1 = require("@verdant-web/common");
5
- Object.defineProperty(exports, "ReplicaType", { enumerable: true, get: function () { return common_1.ReplicaType; } });
6
- var Server_js_1 = require("./Server.js");
7
- Object.defineProperty(exports, "Server", { enumerable: true, get: function () { return Server_js_1.Server; } });
8
- var TokenProvider_js_1 = require("./TokenProvider.js");
9
- Object.defineProperty(exports, "TokenProvider", { enumerable: true, get: function () { return TokenProvider_js_1.TokenProvider; } });
10
- var FileStorage_js_1 = require("./files/FileStorage.js");
11
- Object.defineProperty(exports, "LocalFileStorage", { enumerable: true, get: function () { return FileStorage_js_1.LocalFileStorage; } });
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAGA,8CAAkD;AAAzC,qGAAA,WAAW,OAAA;AACpB,yCAAqC;AAA5B,mGAAA,MAAM,OAAA;AACf,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,yDAA0D;AAAjD,kHAAA,gBAAgB,OAAA"}
@@ -1 +0,0 @@
1
- export declare const sql = "\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";
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sql = void 0;
4
- exports.sql = `
5
- CREATE TABLE IF NOT EXISTS ReplicaInfo (
6
- id TEXT PRIMARY KEY 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
- );
13
-
14
- CREATE TABLE IF NOT EXISTS OperationHistory (
15
- libraryId TEXT NOT NULL,
16
- replicaId TEXT NOT NULL,
17
- oid TEXT NOT NULL,
18
- data TEXT NOT NULL,
19
- timestamp INTEGER NOT NULL,
20
- PRIMARY KEY (libraryId, replicaId, oid, timestamp)
21
- );
22
-
23
- CREATE TABLE IF NOT EXISTS DocumentBaseline (
24
- oid TEXT PRIMARY KEY NOT NULL,
25
- snapshot TEXT,
26
- timestamp TEXT NOT NULL,
27
- libraryId TEXT NOT NULL
28
- );
29
- `;
30
- //# sourceMappingURL=v0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v0.js","sourceRoot":"","sources":["../../../src/migrations/v0.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC"}
@@ -1 +0,0 @@
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";
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sql = void 0;
4
- exports.sql = `
5
- ALTER TABLE
6
- ReplicaInfo RENAME TO ReplicaInfoOld;
7
-
8
- CREATE TABLE ReplicaInfo (
9
- id TEXT NOT NULL,
10
- libraryId TEXT NOT NULL,
11
- clientId TEXT NOT NULL,
12
- lastSeenWallClockTime INTEGER,
13
- ackedLogicalTime TEXT,
14
- type INTEGER NOT NULL DEFAULT 0,
15
- PRIMARY KEY (id, libraryId)
16
- );
17
-
18
- INSERT INTO
19
- ReplicaInfo
20
- SELECT
21
- id,
22
- libraryId,
23
- clientId,
24
- lastSeenWallClockTime,
25
- ackedLogicalTime,
26
- type
27
- FROM
28
- ReplicaInfoOld;
29
-
30
- DROP TABLE ReplicaInfoOld;
31
- `;
32
- //# sourceMappingURL=v1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v1.js","sourceRoot":"","sources":["../../../src/migrations/v1.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BlB,CAAC"}
@@ -1 +0,0 @@
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,29 +0,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
- exports.sql = `
6
- ALTER TABLE
7
- DocumentBaseline RENAME TO DocumentBaselineOld;
8
-
9
- CREATE TABLE DocumentBaseline (
10
- oid TEXT NOT NULL,
11
- snapshot TEXT,
12
- timestamp TEXT NOT NULL,
13
- libraryId TEXT NOT NULL,
14
- PRIMARY KEY (libraryId, oid)
15
- );
16
-
17
- INSERT INTO
18
- DocumentBaseline
19
- SELECT
20
- oid,
21
- snapshot,
22
- timestamp,
23
- libraryId
24
- FROM
25
- DocumentBaselineOld;
26
-
27
- DROP TABLE DocumentBaselineOld;
28
- `;
29
- //# sourceMappingURL=v2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../../src/migrations/v2.ts"],"names":[],"mappings":";AAAA,gEAAgE;;;AAEnD,QAAA,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBlB,CAAC"}
@@ -1 +0,0 @@
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,15 +0,0 @@
1
- "use strict";
2
- // add the FileMetadata table
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.sql = void 0;
5
- exports.sql = `
6
- CREATE TABLE IF NOT EXISTS FileMetadata (
7
- libraryId TEXT NOT NULL,
8
- fileId TEXT NOT NULL,
9
- name TEXT NOT NULL,
10
- type TEXT NOT NULL,
11
- pendingDeleteAt INTEGER,
12
- PRIMARY KEY (libraryId, fileId)
13
- );
14
- `;
15
- //# sourceMappingURL=v3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v3.js","sourceRoot":"","sources":["../../../src/migrations/v3.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;AAEhB,QAAA,GAAG,GAAG;;;;;;;;;CASlB,CAAC"}
@@ -1 +0,0 @@
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 +0,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
- exports.sql = `
6
- ALTER TABLE ReplicaInfo ADD COLUMN ackedServerOrder INTEGER DEFAULT 0 NOT NULL;
7
- ALTER TABLE OperationHistory ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;
8
- `;
9
- //# sourceMappingURL=v4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v4.js","sourceRoot":"","sources":["../../../src/migrations/v4.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAEjC,QAAA,GAAG,GAAG;;;CAGlB,CAAC"}
@@ -1,2 +0,0 @@
1
- import SQL from 'better-sqlite3';
2
- export declare const procedure: (db: SQL.Database) => void;
@@ -1,37 +0,0 @@
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
- /* sql */ `
13
- UPDATE OperationHistory
14
- SET oid = ?,
15
- data = ?
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(
26
- /* sql */ `
27
- UPDATE DocumentBaseline
28
- SET oid = ?,
29
- snapshot = ?
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;
37
- //# sourceMappingURL=v5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v5.js","sourceRoot":"","sources":["../../../src/migrations/v5.ts"],"names":[],"mappings":";;;AAAA,gDAG6B;AAG7B,8DAA8D;AACvD,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,IAAA,yBAAgB,EAAC,EAAE,CAAC,GAAG,CAAC;QACxB,iFAAiF;QACjF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,sCAA6B,EAAC,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,IAAA,yBAAgB,EAAC,QAAQ,CAAC,GAAG,CAAC,EAC9B,QAAQ,CAAC,QAAQ;YAChB,CAAC,CAAC,IAAA,sCAA6B,EAAC,QAAQ,CAAC,QAAQ,CAAC;YAClD,CAAC,CAAC,QAAQ,CAAC,QAAQ,EACpB,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,SAAS,CAClB,CAAC;KACF;AACF,CAAC,CAAC;AAzCW,QAAA,SAAS,aAyCpB"}
@@ -1 +0,0 @@
1
- export declare const sql = "\n DELETE FROM DocumentBaseline WHERE snapshot IS NULL;\n";
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sql = void 0;
4
- // delete all DocumentBaselines where snapshot = NULL
5
- exports.sql = `
6
- DELETE FROM DocumentBaseline WHERE snapshot IS NULL;
7
- `;
8
- //# sourceMappingURL=v6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v6.js","sourceRoot":"","sources":["../../../src/migrations/v6.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACxC,QAAA,GAAG,GAAG;;CAElB,CAAA"}
@@ -1 +0,0 @@
1
- export declare const sql = "\n ALTER TABLE\n DocumentBaseline\n ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;\n";
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sql = void 0;
4
- // delete all DocumentBaselines where snapshot = NULL
5
- exports.sql = `
6
- ALTER TABLE
7
- DocumentBaseline
8
- ADD COLUMN serverOrder INTEGER DEFAULT 0 NOT NULL;
9
- `;
10
- //# sourceMappingURL=v7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v7.js","sourceRoot":"","sources":["../../../src/migrations/v7.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACxC,QAAA,GAAG,GAAG;;;;CAIlB,CAAC"}
@@ -1,6 +0,0 @@
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,72 +0,0 @@
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
- const v6 = __importStar(require("./migrations/v6.js"));
34
- exports.allMigrations = [v0, v1, v2, v3, v4, v5, v6];
35
- function migrations(db, upTo = exports.allMigrations.length) {
36
- var _a;
37
- // create the versions table if it doesn't exist
38
- db.prepare(`
39
- CREATE TABLE IF NOT EXISTS versions (
40
- version INTEGER NOT NULL PRIMARY KEY
41
- );
42
- `).run();
43
- // get the current version
44
- const versionResult = db
45
- .prepare(`
46
- SELECT version FROM versions ORDER BY version DESC LIMIT 1;
47
- `)
48
- .get();
49
- const version = (_a = versionResult === null || versionResult === void 0 ? void 0 : versionResult.version) !== null && _a !== void 0 ? _a : 0;
50
- const toRun = exports.allMigrations.slice(version, upTo);
51
- if (toRun.length === 0) {
52
- console.info('No migrations to run');
53
- return;
54
- }
55
- console.info('Running migrations from ', version, 'to', upTo);
56
- const run = db.transaction(() => {
57
- for (const { sql, procedure } of toRun) {
58
- if (sql) {
59
- db.exec(sql);
60
- }
61
- if (procedure) {
62
- procedure(db);
63
- }
64
- }
65
- db.prepare(`
66
- INSERT INTO versions (version) VALUES (?);
67
- `).run(upTo);
68
- });
69
- run();
70
- }
71
- exports.migrations = migrations;
72
- //# sourceMappingURL=migrations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uDAAyC;AACzC,uDAAyC;AACzC,uDAAyC;AACzC,uDAAyC;AACzC,uDAAyC;AACzC,uDAAyC;AACzC,uDAAyC;AAE5B,QAAA,aAAa,GAGpB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEnC,SAAgB,UAAU,CAAC,EAAY,EAAE,OAAe,qBAAa,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,qBAAa,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;AA9CD,gCA8CC"}