cojson-storage-sqlite 0.9.9 → 0.9.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/sqliteClient.js +3 -2
- package/dist/sqliteClient.js.map +1 -1
- package/dist/sqliteNode.js +4 -11
- package/dist/sqliteNode.js.map +1 -1
- package/package.json +3 -3
- package/src/sqliteClient.ts +8 -3
- package/src/sqliteNode.ts +14 -29
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# cojson-storage-sqlite
|
|
2
2
|
|
|
3
|
+
## 0.9.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 5863bad: Wrap all the console logs with a logger class to make possible to customize the logger
|
|
8
|
+
- Updated dependencies [efbf3d8]
|
|
9
|
+
- Updated dependencies [5863bad]
|
|
10
|
+
- cojson@0.9.11
|
|
11
|
+
- cojson-storage@0.9.11
|
|
12
|
+
|
|
13
|
+
## 0.9.10
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [4aa377d]
|
|
18
|
+
- cojson@0.9.10
|
|
19
|
+
- cojson-storage@0.9.10
|
|
20
|
+
|
|
3
21
|
## 0.9.9
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/sqliteClient.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { logger, } from "cojson";
|
|
1
2
|
export class SQLiteClient {
|
|
2
3
|
constructor(db, toLocalNode) {
|
|
3
4
|
this.db = db;
|
|
@@ -18,7 +19,7 @@ export class SQLiteClient {
|
|
|
18
19
|
};
|
|
19
20
|
}
|
|
20
21
|
catch (e) {
|
|
21
|
-
|
|
22
|
+
logger.warn(coValueId, "Invalid JSON in header", e, coValueRow?.header);
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
24
25
|
}
|
|
@@ -38,7 +39,7 @@ export class SQLiteClient {
|
|
|
38
39
|
}));
|
|
39
40
|
}
|
|
40
41
|
catch (e) {
|
|
41
|
-
|
|
42
|
+
logger.warn("Invalid JSON in transaction", e);
|
|
42
43
|
return [];
|
|
43
44
|
}
|
|
44
45
|
}
|
package/dist/sqliteClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqliteClient.js","sourceRoot":"","sources":["../src/sqliteClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqliteClient.js","sourceRoot":"","sources":["../src/sqliteClient.ts"],"names":[],"mappings":"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"}
|
package/dist/sqliteNode.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Database from "better-sqlite3";
|
|
2
|
-
import { cojsonInternals, } from "cojson";
|
|
2
|
+
import { cojsonInternals, logger, } from "cojson";
|
|
3
3
|
import { SyncManager } from "cojson-storage";
|
|
4
4
|
import { SQLiteClient } from "./sqliteClient.js";
|
|
5
5
|
export class SQLiteNode {
|
|
@@ -24,13 +24,13 @@ export class SQLiteNode {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
catch (e) {
|
|
27
|
-
|
|
27
|
+
logger.error(`Error reading from localNode, handling msg\n\n${JSON.stringify(msg, (k, v) => k === "changes" || k === "encryptedChanges"
|
|
28
28
|
? v.slice(0, 20) + "..."
|
|
29
|
-
: v)}`,
|
|
29
|
+
: v)}`, e);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
processMessages().catch((e) => logger.error("Error in processMessages in sqlite", e));
|
|
32
33
|
};
|
|
33
|
-
processMessages().catch((e) => console.error("Error in processMessages in sqlite", e));
|
|
34
34
|
}
|
|
35
35
|
static async asPeer({ filename, trace, localNodeName = "local", }) {
|
|
36
36
|
const [localNodeAsPeer, storageAsPeer] = cojsonInternals.connectedPeers(localNodeName, "storage", { peer1role: "client", peer2role: "storage", trace, crashOnClose: true });
|
|
@@ -41,9 +41,7 @@ export class SQLiteNode {
|
|
|
41
41
|
const db = Database(filename);
|
|
42
42
|
db.pragma("journal_mode = WAL");
|
|
43
43
|
const oldVersion = db.pragma("user_version")[0].user_version;
|
|
44
|
-
console.log("DB version", oldVersion);
|
|
45
44
|
if (oldVersion === 0) {
|
|
46
|
-
console.log("Migration 0 -> 1: Basic schema");
|
|
47
45
|
db.prepare(`CREATE TABLE IF NOT EXISTS transactions (
|
|
48
46
|
ses INTEGER,
|
|
49
47
|
idx INTEGER,
|
|
@@ -66,11 +64,9 @@ export class SQLiteNode {
|
|
|
66
64
|
);`).run();
|
|
67
65
|
db.prepare(`CREATE INDEX IF NOT EXISTS coValuesByID ON coValues (id);`).run();
|
|
68
66
|
db.pragma("user_version = 1");
|
|
69
|
-
console.log("Migration 0 -> 1: Basic schema - done");
|
|
70
67
|
}
|
|
71
68
|
if (oldVersion <= 1) {
|
|
72
69
|
// fix embarrassing off-by-one error for transaction indices
|
|
73
|
-
console.log("Migration 1 -> 2: Fix off-by-one error for transaction indices");
|
|
74
70
|
const txs = db
|
|
75
71
|
.prepare(`SELECT * FROM transactions`)
|
|
76
72
|
.all();
|
|
@@ -80,10 +76,8 @@ export class SQLiteNode {
|
|
|
80
76
|
db.prepare(`INSERT INTO transactions (ses, idx, tx) VALUES (?, ?, ?)`).run(tx.ses, tx.idx, tx.tx);
|
|
81
77
|
}
|
|
82
78
|
db.pragma("user_version = 2");
|
|
83
|
-
console.log("Migration 1 -> 2: Fix off-by-one error for transaction indices - done");
|
|
84
79
|
}
|
|
85
80
|
if (oldVersion <= 2) {
|
|
86
|
-
console.log("Migration 2 -> 3: Add signatureAfter");
|
|
87
81
|
db.prepare(`CREATE TABLE IF NOT EXISTS signatureAfter (
|
|
88
82
|
ses INTEGER,
|
|
89
83
|
idx INTEGER,
|
|
@@ -92,7 +86,6 @@ export class SQLiteNode {
|
|
|
92
86
|
) WITHOUT ROWID;`).run();
|
|
93
87
|
db.prepare(`ALTER TABLE sessions ADD COLUMN bytesSinceLastSignature INTEGER;`).run();
|
|
94
88
|
db.pragma("user_version = 3");
|
|
95
|
-
console.log("Migration 2 -> 3: Add signatureAfter - done!!");
|
|
96
89
|
}
|
|
97
90
|
return new SQLiteNode(db, fromLocalNode, toLocalNode);
|
|
98
91
|
}
|
package/dist/sqliteNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqliteNode.js","sourceRoot":"","sources":["../src/sqliteNode.ts"],"names":[],"mappings":"AAAA,OAAO,QAAmC,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAIL,eAAe,
|
|
1
|
+
{"version":3,"file":"sqliteNode.js","sourceRoot":"","sources":["../src/sqliteNode.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cojson-storage-sqlite",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.11",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "src/index.ts",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"better-sqlite3": "^11.7.0",
|
|
10
|
-
"cojson": "0.9.
|
|
11
|
-
"cojson-storage": "0.9.
|
|
10
|
+
"cojson": "0.9.11",
|
|
11
|
+
"cojson-storage": "0.9.11"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
14
|
"@types/better-sqlite3": "^7.6.12",
|
package/src/sqliteClient.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { Database as DatabaseT } from "better-sqlite3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
CojsonInternalTypes,
|
|
4
|
+
OutgoingSyncQueue,
|
|
5
|
+
SessionID,
|
|
6
|
+
logger,
|
|
7
|
+
} from "cojson";
|
|
3
8
|
import RawCoID = CojsonInternalTypes.RawCoID;
|
|
4
9
|
import Signature = CojsonInternalTypes.Signature;
|
|
5
10
|
import Transaction = CojsonInternalTypes.Transaction;
|
|
@@ -48,7 +53,7 @@ export class SQLiteClient implements DBClientInterface {
|
|
|
48
53
|
header: parsedHeader,
|
|
49
54
|
};
|
|
50
55
|
} catch (e) {
|
|
51
|
-
|
|
56
|
+
logger.warn(coValueId, "Invalid JSON in header", e, coValueRow?.header);
|
|
52
57
|
return;
|
|
53
58
|
}
|
|
54
59
|
}
|
|
@@ -75,7 +80,7 @@ export class SQLiteClient implements DBClientInterface {
|
|
|
75
80
|
tx: JSON.parse(transactionRow.tx) as Transaction,
|
|
76
81
|
}));
|
|
77
82
|
} catch (e) {
|
|
78
|
-
|
|
83
|
+
logger.warn("Invalid JSON in transaction", e);
|
|
79
84
|
return [];
|
|
80
85
|
}
|
|
81
86
|
}
|
package/src/sqliteNode.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
OutgoingSyncQueue,
|
|
5
5
|
Peer,
|
|
6
6
|
cojsonInternals,
|
|
7
|
+
logger,
|
|
7
8
|
} from "cojson";
|
|
8
9
|
import { SyncManager, TransactionRow } from "cojson-storage";
|
|
9
10
|
import { SQLiteClient } from "./sqliteClient.js";
|
|
@@ -40,25 +41,23 @@ export class SQLiteNode {
|
|
|
40
41
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
41
42
|
}
|
|
42
43
|
} catch (e) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
{ cause: e },
|
|
53
|
-
),
|
|
44
|
+
logger.error(
|
|
45
|
+
`Error reading from localNode, handling msg\n\n${JSON.stringify(
|
|
46
|
+
msg,
|
|
47
|
+
(k, v) =>
|
|
48
|
+
k === "changes" || k === "encryptedChanges"
|
|
49
|
+
? v.slice(0, 20) + "..."
|
|
50
|
+
: v,
|
|
51
|
+
)}`,
|
|
52
|
+
e,
|
|
54
53
|
);
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
|
-
};
|
|
58
56
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
processMessages().catch((e) =>
|
|
58
|
+
logger.error("Error in processMessages in sqlite", e),
|
|
59
|
+
);
|
|
60
|
+
};
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
static async asPeer({
|
|
@@ -97,10 +96,7 @@ export class SQLiteNode {
|
|
|
97
96
|
db.pragma("user_version") as [{ user_version: number }]
|
|
98
97
|
)[0].user_version as number;
|
|
99
98
|
|
|
100
|
-
console.log("DB version", oldVersion);
|
|
101
|
-
|
|
102
99
|
if (oldVersion === 0) {
|
|
103
|
-
console.log("Migration 0 -> 1: Basic schema");
|
|
104
100
|
db.prepare(
|
|
105
101
|
`CREATE TABLE IF NOT EXISTS transactions (
|
|
106
102
|
ses INTEGER,
|
|
@@ -138,15 +134,10 @@ export class SQLiteNode {
|
|
|
138
134
|
).run();
|
|
139
135
|
|
|
140
136
|
db.pragma("user_version = 1");
|
|
141
|
-
console.log("Migration 0 -> 1: Basic schema - done");
|
|
142
137
|
}
|
|
143
138
|
|
|
144
139
|
if (oldVersion <= 1) {
|
|
145
140
|
// fix embarrassing off-by-one error for transaction indices
|
|
146
|
-
console.log(
|
|
147
|
-
"Migration 1 -> 2: Fix off-by-one error for transaction indices",
|
|
148
|
-
);
|
|
149
|
-
|
|
150
141
|
const txs = db
|
|
151
142
|
.prepare(`SELECT * FROM transactions`)
|
|
152
143
|
.all() as TransactionRow[];
|
|
@@ -163,14 +154,9 @@ export class SQLiteNode {
|
|
|
163
154
|
}
|
|
164
155
|
|
|
165
156
|
db.pragma("user_version = 2");
|
|
166
|
-
console.log(
|
|
167
|
-
"Migration 1 -> 2: Fix off-by-one error for transaction indices - done",
|
|
168
|
-
);
|
|
169
157
|
}
|
|
170
158
|
|
|
171
159
|
if (oldVersion <= 2) {
|
|
172
|
-
console.log("Migration 2 -> 3: Add signatureAfter");
|
|
173
|
-
|
|
174
160
|
db.prepare(
|
|
175
161
|
`CREATE TABLE IF NOT EXISTS signatureAfter (
|
|
176
162
|
ses INTEGER,
|
|
@@ -185,7 +171,6 @@ export class SQLiteNode {
|
|
|
185
171
|
).run();
|
|
186
172
|
|
|
187
173
|
db.pragma("user_version = 3");
|
|
188
|
-
console.log("Migration 2 -> 3: Add signatureAfter - done!!");
|
|
189
174
|
}
|
|
190
175
|
|
|
191
176
|
return new SQLiteNode(db, fromLocalNode, toLocalNode);
|