@monoes/memory 2.24.0 → 2.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sql-backend.d.ts.map +1 -1
- package/dist/sql-backend.js +31 -7
- package/dist/sql-backend.js.map +1 -1
- package/dist/sql-driver.d.ts +3 -1
- package/dist/sql-driver.d.ts.map +1 -1
- package/dist/sql-driver.js +20 -2
- package/dist/sql-driver.js.map +1 -1
- package/dist/sqlite-backend.d.ts.map +1 -1
- package/dist/sqlite-backend.js +31 -6
- package/dist/sqlite-backend.js.map +1 -1
- package/dist/sqljs-backend.d.ts.map +1 -1
- package/dist/sqljs-backend.js +61 -8
- package/dist/sqljs-backend.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-backend.d.ts","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAkC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,WAAW,EAEX,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAQD,qBAAa,UAAW,SAAQ,YAAa,YAAW,cAAc;IACpE,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;IACnC,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAC1C,SAAS,CAAC,WAAW,UAAS;IAC9B,+DAA+D;IAC/D,eAAe,EAAE,eAAe,GAAG,IAAI,CAAQ;IAC/C,iEAAiE;IACjE,SAAS,CAAC,cAAc,UAAS;IAEjC,SAAS,CAAC,KAAK;QAAK,UAAU;QAAK,cAAc;QAAK,UAAU;QAAK,cAAc;MAAM;IACzF,gFAAgF;IAChF,SAAS,CAAC,UAAU,SAAK;IAUzB,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAC7C,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IAC5D,SAAS,CAAC,cAAc,SAAK;IAC7B,SAAS,CAAC,iBAAiB,SAAM;IACjC,SAAS,CAAC,wBAAwB,SAAM;IAExC,MAAM,CAAC,QAAQ,CAAC,aAAa,SAOxB;IAEL;;;uEAGmE;IACnE,SAAS,CAAC,cAAc,IAAI,MAAM,GAAG,IAAI,CAExC;IAID,SAAS,CAAC,YAAY,IAAI,MAAM,GAAG,IAAI,CAEtC;IAED,SAAS,CAAC,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAE9E;IAED,UAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,KAAK,UAAQ,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC,CAEzE;IAED;;;OAGG;IACH,YAAY,IAAI;QACd,gBAAgB,EAAE,MAAM,CAAC;QACzB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,KAAK,EAAE,OAAO,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CASA;IAED;;;;;OAKG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAQ/E;IAED,YAAY,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM,EAGjD;IAED,yCAAyC;IACzC,UAAgB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAE/C;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sql-backend.d.ts","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"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"}
|
package/dist/sql-backend.js
CHANGED
|
@@ -129,15 +129,29 @@ export class SqlBackend extends EventEmitter {
|
|
|
129
129
|
if (this.initialized)
|
|
130
130
|
return;
|
|
131
131
|
this.driver = await this.openDriver();
|
|
132
|
-
// Enable FK enforcement — required for ON DELETE CASCADE to fire.
|
|
133
132
|
try {
|
|
134
|
-
|
|
133
|
+
// Enable FK enforcement — required for ON DELETE CASCADE to fire.
|
|
134
|
+
try {
|
|
135
|
+
this.driver.exec('PRAGMA foreign_keys = ON');
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
/* unsupported on this driver */
|
|
139
|
+
}
|
|
140
|
+
this.migrationReport = initializeSchema(this.driver);
|
|
141
|
+
this._fts5Available = hasFTS5Table(this.driver);
|
|
135
142
|
}
|
|
136
|
-
catch {
|
|
137
|
-
|
|
143
|
+
catch (error) {
|
|
144
|
+
// A failed initialize must not leave the connection open, and must not
|
|
145
|
+
// persist a half-initialised database.
|
|
146
|
+
try {
|
|
147
|
+
this.driver.close();
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
/* already closed */
|
|
151
|
+
}
|
|
152
|
+
this.driver = null;
|
|
153
|
+
throw error;
|
|
138
154
|
}
|
|
139
|
-
this.migrationReport = initializeSchema(this.driver);
|
|
140
|
-
this._fts5Available = hasFTS5Table(this.driver);
|
|
141
155
|
if (this.config.verbose && this.migrationReport.legacyColumnFound) {
|
|
142
156
|
console.log(`[SqlBackend] migrated ${this.migrationReport.migrated} inline embedding(s); ` +
|
|
143
157
|
`${this.migrationReport.skipped} already present`);
|
|
@@ -148,7 +162,15 @@ export class SqlBackend extends EventEmitter {
|
|
|
148
162
|
async shutdown() {
|
|
149
163
|
if (!this.initialized || !this.driver)
|
|
150
164
|
return;
|
|
151
|
-
|
|
165
|
+
// A refused persist (e.g. the file changed underneath a sql.js snapshot) must
|
|
166
|
+
// still release the connection; the error is rethrown afterwards.
|
|
167
|
+
let persistError;
|
|
168
|
+
try {
|
|
169
|
+
await this.driver.persist();
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
persistError = error;
|
|
173
|
+
}
|
|
152
174
|
try {
|
|
153
175
|
this.driver.pragma('optimize');
|
|
154
176
|
}
|
|
@@ -159,6 +181,8 @@ export class SqlBackend extends EventEmitter {
|
|
|
159
181
|
this.driver = null;
|
|
160
182
|
this.initialized = false;
|
|
161
183
|
this.emit('shutdown');
|
|
184
|
+
if (persistError)
|
|
185
|
+
throw persistError;
|
|
162
186
|
}
|
|
163
187
|
// ===== Writes =============================================================
|
|
164
188
|
// Bodies live in sql-backend-writes.ts (file-size sweep).
|
package/dist/sql-backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-backend.js","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sql-backend.js","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"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"}
|
package/dist/sql-driver.d.ts
CHANGED
|
@@ -120,7 +120,9 @@ export declare class SqlJsDriver implements SqlDriver {
|
|
|
120
120
|
* @param flush writes the exported bytes to durable storage; omitted for
|
|
121
121
|
* :memory: databases, where persistence is meaningless
|
|
122
122
|
*/
|
|
123
|
-
constructor(db: SqlJsDb, flush?: ((bytes: Uint8Array) => Promise<void>) | undefined);
|
|
123
|
+
constructor(db: SqlJsDb, flush?: ((bytes: Uint8Array) => Promise<void>) | undefined, cleanAtOpen?: boolean);
|
|
124
|
+
private persistedChanges;
|
|
125
|
+
private totalChanges;
|
|
124
126
|
run(sql: string, params?: SqlParam[]): number;
|
|
125
127
|
get(sql: string, params?: SqlParam[]): SqlRow | null;
|
|
126
128
|
all(sql: string, params?: SqlParam[]): SqlRow[];
|
package/dist/sql-driver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-driver.d.ts","sourceRoot":"","sources":["../src/sql-driver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sql-driver.d.ts","sourceRoot":"","sources":["../src/sql-driver.ts"],"names":[],"mappings":"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"}
|
package/dist/sql-driver.js
CHANGED
|
@@ -90,9 +90,17 @@ export class SqlJsDriver {
|
|
|
90
90
|
* @param flush writes the exported bytes to durable storage; omitted for
|
|
91
91
|
* :memory: databases, where persistence is meaningless
|
|
92
92
|
*/
|
|
93
|
-
constructor(db, flush) {
|
|
93
|
+
constructor(db, flush, cleanAtOpen = false) {
|
|
94
94
|
this.db = db;
|
|
95
95
|
this.flush = flush;
|
|
96
|
+
// Row changes seen at the last export (or at open, for an existing file that
|
|
97
|
+
// has not been touched yet). -1 forces the first persist, e.g. a new database.
|
|
98
|
+
this.persistedChanges = cleanAtOpen ? this.totalChanges() : -1;
|
|
99
|
+
}
|
|
100
|
+
persistedChanges;
|
|
101
|
+
totalChanges() {
|
|
102
|
+
const result = this.db.exec('SELECT total_changes()');
|
|
103
|
+
return Number(result[0]?.values[0]?.[0] ?? 0);
|
|
96
104
|
}
|
|
97
105
|
run(sql, params = []) {
|
|
98
106
|
this.db.run(sql, params);
|
|
@@ -178,7 +186,17 @@ export class SqlJsDriver {
|
|
|
178
186
|
async persist() {
|
|
179
187
|
if (!this.flush)
|
|
180
188
|
return; // :memory: — nothing durable to write
|
|
181
|
-
|
|
189
|
+
// Exporting writes the whole in-memory snapshot over the file, so an unchanged
|
|
190
|
+
// snapshot must not be exported: it would erase whatever other processes wrote
|
|
191
|
+
// since this one loaded it.
|
|
192
|
+
if (this.totalChanges() === this.persistedChanges)
|
|
193
|
+
return;
|
|
194
|
+
const bytes = this.db.export();
|
|
195
|
+
// export() reopens the database, which restarts the change counter. Record it
|
|
196
|
+
// before awaiting the write so changes made during the write stay dirty.
|
|
197
|
+
const changesAtExport = this.totalChanges();
|
|
198
|
+
await this.flush(bytes);
|
|
199
|
+
this.persistedChanges = changesAtExport;
|
|
182
200
|
}
|
|
183
201
|
close() {
|
|
184
202
|
this.db.close();
|
package/dist/sql-driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-driver.js","sourceRoot":"","sources":["../src/sql-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAmDH,MAAM,OAAO,kBAAkB;IAcT,EAAE;IAbb,IAAI,GAAG,gBAAyB,CAAC;IAE1C;;;;;;;;OAQG;IACK,SAAS,GAAG,IAAI,GAAG,EAAiD,CAAC;IAE7E,YAAoB,EAAkB;kBAAlB,EAAE;IAAmB,CAAC;IAElC,IAAI,CAAC,GAAW;QACtB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,MAAM,GAAe,EAAE;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,MAAM,GAAe,EAAE;QACtC,OAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAwB,IAAI,IAAI,CAAC;IACvE,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,MAAM,GAAe,EAAE;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAa,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,MAAM,GAAe,EAAE;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAqB,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,GAAW;QACd,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,WAAW,CAAI,EAAW;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAA4B,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,+DAA+D;IACjE,CAAC;IAED,KAAK;QACH,wEAAwE;QACxE,sEAAsE;QACtE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AA2BD,MAAM,OAAO,WAAW;IASZ,EAAE;IACF,KAAK;IATN,IAAI,GAAG,QAAiB,CAAC;IAElC;;;;OAIG;IACH,YACU,EAAW,EACX,KAA4C;
|
|
1
|
+
{"version":3,"file":"sql-driver.js","sourceRoot":"","sources":["../src/sql-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-backend.d.ts","sourceRoot":"","sources":["../src/sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IAEjB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;uCAImC;IACnC,aAAa,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"sqlite-backend.d.ts","sourceRoot":"","sources":["../src/sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IAEjB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;uCAImC;IACnC,aAAa,EAAE,MAAM,CAAC;CACvB;AAsCD;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,YAAY,CAAsB;IAE1C,YAAY,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM,EASpD;IAED,UAAgB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAyC/C;IAED,SAAS,CAAC,cAAc,IAAI,MAAM,GAAG,IAAI,CAIxC;CACF;eAEc,aAAa"}
|
package/dist/sqlite-backend.js
CHANGED
|
@@ -31,6 +31,21 @@ const DEFAULT_CONFIG = {
|
|
|
31
31
|
verbose: false,
|
|
32
32
|
busyTimeoutMs: 0,
|
|
33
33
|
};
|
|
34
|
+
/** Code on the error SQLiteBackend throws when better-sqlite3 itself cannot be loaded. */
|
|
35
|
+
const NATIVE_SQLITE_UNAVAILABLE = 'MEMORY_NATIVE_UNAVAILABLE';
|
|
36
|
+
function nativeUnavailable(cause) {
|
|
37
|
+
return Object.assign(new Error('SQLiteBackend requires the optional dependency better-sqlite3, which is not installed ' +
|
|
38
|
+
`(${cause.message}). Use SqlJsBackend, or select the 'sql.js' provider, ` +
|
|
39
|
+
'for environments where the native module cannot be built.'), { code: NATIVE_SQLITE_UNAVAILABLE });
|
|
40
|
+
}
|
|
41
|
+
function isBindingLoadError(error) {
|
|
42
|
+
const { code, message } = error;
|
|
43
|
+
if (typeof code === 'string' && code.startsWith('SQLITE_'))
|
|
44
|
+
return false;
|
|
45
|
+
return (code === 'ERR_DLOPEN_FAILED' ||
|
|
46
|
+
code === 'MODULE_NOT_FOUND' ||
|
|
47
|
+
/could not locate the bindings file|NODE_MODULE_VERSION|better_sqlite3\.node/i.test(message ?? ''));
|
|
48
|
+
}
|
|
34
49
|
/**
|
|
35
50
|
* SQLite backend for structured memory storage.
|
|
36
51
|
*
|
|
@@ -59,13 +74,23 @@ export class SQLiteBackend extends SqlBackend {
|
|
|
59
74
|
// Reaching here means this backend was chosen explicitly while the native
|
|
60
75
|
// module is unavailable. Say so, instead of surfacing a bare
|
|
61
76
|
// ERR_MODULE_NOT_FOUND from deep inside the driver.
|
|
62
|
-
throw
|
|
63
|
-
|
|
64
|
-
|
|
77
|
+
throw nativeUnavailable(error);
|
|
78
|
+
}
|
|
79
|
+
let db;
|
|
80
|
+
try {
|
|
81
|
+
db = new Database(this.sqliteConfig.databasePath, {
|
|
82
|
+
verbose: this.sqliteConfig.verbose ? console.log : undefined,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
// The native binding is loaded lazily by the first constructor call, so a
|
|
87
|
+
// missing or ABI-mismatched build surfaces here rather than at import. Any
|
|
88
|
+
// other failure (locked, corrupt, unwritable) is about the database, and
|
|
89
|
+
// falling back to another engine would not fix it.
|
|
90
|
+
if (isBindingLoadError(error))
|
|
91
|
+
throw nativeUnavailable(error);
|
|
92
|
+
throw error;
|
|
65
93
|
}
|
|
66
|
-
const db = new Database(this.sqliteConfig.databasePath, {
|
|
67
|
-
verbose: this.sqliteConfig.verbose ? console.log : undefined,
|
|
68
|
-
});
|
|
69
94
|
if (this.sqliteConfig.busyTimeoutMs > 0)
|
|
70
95
|
db.pragma(`busy_timeout = ${this.sqliteConfig.busyTimeoutMs}`);
|
|
71
96
|
if (this.sqliteConfig.walMode)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-backend.js","sourceRoot":"","sources":["../src/sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+EAA+E;AAC/E,4FAA4F;AAC5F,EAAE;AACF,2EAA2E;AAC3E,2DAA2D;AAC3D,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,2CAA2C;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAkB,MAAM,iBAAiB,CAAC;AAoCrE,MAAM,cAAc,GAAwB;IAC1C,YAAY,EAAE,UAAU;IACxB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,gBAAgB,EAAE,SAAS;IAC3B,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,UAAU;IACnC,YAAY,CAAsB;IAE1C,YAAY,MAAM,GAAiC,EAAE;QACnD,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAChD,KAAK,CAAC;YACJ,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,UAAU;QAMxB,IAAI,QAA2E,CAAC;QAChF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC3C,QAAQ,GAAI,GAA+C,CAAC,OAAO,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0EAA0E;YAC1E,6DAA6D;YAC7D,oDAAoD;YACpD,MAAM,
|
|
1
|
+
{"version":3,"file":"sqlite-backend.js","sourceRoot":"","sources":["../src/sqlite-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqljs-backend.d.ts","sourceRoot":"","sources":["../src/sqljs-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IAErB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IAEjB,8DAA8D;IAC9D,mBAAmB,EAAE,MAAM,CAAC;IAE5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;4EAEwE;IACxE,aAAa,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"sqljs-backend.d.ts","sourceRoot":"","sources":["../src/sqljs-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IAErB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IAEjB,8DAA8D;IAC9D,mBAAmB,EAAE,MAAM,CAAC;IAE5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;4EAEwE;IACxE,aAAa,EAAE,MAAM,CAAC;CACvB;AA+ED,qBAAa,YAAa,SAAQ,UAAU;IAC1C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAA+B;IAEnD;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAQ9B,YAAY,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,EASnD;IAED,UAAgB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAmD/C;IAED,SAAS,CAAC,cAAc,IAAI,MAAM,GAAG,IAAI,CAIxC;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAUhC;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAO9B;CACF;eAEc,YAAY"}
|
package/dist/sqljs-backend.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
*
|
|
21
21
|
* @module v1/memory/sqljs-backend
|
|
22
22
|
*/
|
|
23
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
23
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
24
24
|
import { createRequire } from 'node:module';
|
|
25
25
|
import { dirname } from 'node:path';
|
|
26
26
|
import initSqlJs from 'sql.js';
|
|
@@ -45,6 +45,45 @@ function resolveLocalWasmPath() {
|
|
|
45
45
|
return null;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
+
/** Identity of the file's current contents (inode changes on every atomic rename). */
|
|
49
|
+
function fileSignature(path) {
|
|
50
|
+
try {
|
|
51
|
+
const st = statSync(path);
|
|
52
|
+
return `${st.ino}:${st.size}:${st.mtimeMs}`;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function unsafeDatabase(path, reason) {
|
|
59
|
+
return Object.assign(new Error(`SqlJsBackend cannot safely open ${path}: ${reason}. Opening it with sql.js would lose ` +
|
|
60
|
+
'data written by the native backend; install better-sqlite3 (or rebuild it) instead.'), { code: 'SQLJS_UNSAFE_DATABASE' });
|
|
61
|
+
}
|
|
62
|
+
/** sql.js ignores the write-ahead log, so frames still in it would be lost or overwritten. */
|
|
63
|
+
function assertNoWalSidecar(path) {
|
|
64
|
+
try {
|
|
65
|
+
if (statSync(`${path}-wal`).size > 0)
|
|
66
|
+
throw unsafeDatabase(path, 'a non-empty -wal file exists');
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (error.code === 'SQLJS_UNSAFE_DATABASE')
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Header bytes 18-19 (file format write/read version) are 2 for a WAL-mode database. */
|
|
74
|
+
function assertHeaderNotWal(path, bytes) {
|
|
75
|
+
if (bytes.length > 19 && (bytes[18] === 2 || bytes[19] === 2)) {
|
|
76
|
+
throw unsafeDatabase(path, 'it is in WAL journal mode');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** The sql.js build has no FTS5, so writes to a database with an FTS5 index fail midway. */
|
|
80
|
+
function assertNoFts5Index(path, db) {
|
|
81
|
+
const found = db.exec("SELECT 1 FROM sqlite_master WHERE name = 'memory_entries_fts'");
|
|
82
|
+
if (found.length > 0) {
|
|
83
|
+
db.close();
|
|
84
|
+
throw unsafeDatabase(path, 'it has an FTS5 index that sql.js cannot maintain');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
48
87
|
const DEFAULT_CONFIG = {
|
|
49
88
|
databasePath: ':memory:',
|
|
50
89
|
optimize: true,
|
|
@@ -89,26 +128,40 @@ export class SqlJsBackend extends SqlBackend {
|
|
|
89
128
|
});
|
|
90
129
|
const path = this.sqlJsConfig.databasePath;
|
|
91
130
|
const isMemory = path === ':memory:';
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
131
|
+
const existed = !isMemory && existsSync(path);
|
|
132
|
+
// Signature of the file as loaded; the flush below refuses to overwrite a file
|
|
133
|
+
// that no longer matches it. Taken before the read so a change in between shows.
|
|
134
|
+
let loadedSignature = existed ? fileSignature(path) : null;
|
|
135
|
+
if (existed)
|
|
136
|
+
assertNoWalSidecar(path);
|
|
137
|
+
const bytes = existed ? new Uint8Array(readFileSync(path)) : null;
|
|
138
|
+
if (bytes)
|
|
139
|
+
assertHeaderNotWal(path, bytes);
|
|
140
|
+
const db = bytes ? new SQL.Database(bytes) : new SQL.Database();
|
|
141
|
+
if (bytes)
|
|
142
|
+
assertNoFts5Index(path, db);
|
|
95
143
|
if (this.sqlJsConfig.verbose) {
|
|
96
|
-
console.log(
|
|
144
|
+
console.log(existed
|
|
97
145
|
? `[SqlJsBackend] Loaded database from ${path}`
|
|
98
146
|
: '[SqlJsBackend] Created new in-memory database');
|
|
99
147
|
}
|
|
100
148
|
// Only give the driver a flush function when there is somewhere to flush to.
|
|
101
149
|
const flush = isMemory
|
|
102
150
|
? undefined
|
|
103
|
-
: async (
|
|
104
|
-
|
|
151
|
+
: async (out) => {
|
|
152
|
+
if (fileSignature(path) !== loadedSignature) {
|
|
153
|
+
throw Object.assign(new Error(`${path} changed on disk since this process loaded it; refusing to overwrite ` +
|
|
154
|
+
"another process's writes with a stale snapshot"), { code: 'SQLJS_STALE_SNAPSHOT' });
|
|
155
|
+
}
|
|
156
|
+
const buffer = Buffer.from(out);
|
|
105
157
|
writeFileAtomicSync(path, buffer);
|
|
158
|
+
loadedSignature = fileSignature(path);
|
|
106
159
|
if (this.sqlJsConfig.verbose) {
|
|
107
160
|
console.log(`[SqlJsBackend] Persisted ${buffer.length} bytes to ${path}`);
|
|
108
161
|
}
|
|
109
162
|
this.emit('persisted', { size: buffer.length, path });
|
|
110
163
|
};
|
|
111
|
-
return new SqlJsDriver(db, flush);
|
|
164
|
+
return new SqlJsDriver(db, flush, existed);
|
|
112
165
|
}
|
|
113
166
|
getAnnCacheDir() {
|
|
114
167
|
return this.sqlJsConfig.databasePath === ':memory:'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqljs-backend.js","sourceRoot":"","sources":["../src/sqljs-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"sqljs-backend.js","sourceRoot":"","sources":["../src/sqljs-backend.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED