You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@peerbit/indexer-sqlite3

Package Overview
Dependencies
Maintainers
1
Versions
341
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@peerbit/indexer-sqlite3 - npm Package Compare versions

Comparing version
3.0.0
to
3.0.1
+9
-3
dist/src/engine.d.ts

@@ -8,3 +8,3 @@ import { type AbstractType } from "@dao-xyz/borsh";

type FKMode = "strict" | "race-tolerant";
export declare class SQLLiteIndex<T extends Record<string, any>> implements Index<T, any> {
export declare class SQLiteIndex<T extends Record<string, any>> implements Index<T, any> {
readonly properties: {

@@ -14,2 +14,3 @@ scope: string[];

schema: AbstractType<any>;
persisted?: boolean;
start?: () => Promise<void> | void;

@@ -36,2 +37,3 @@ stop?: () => Promise<void> | void;

schema: AbstractType<any>;
persisted?: boolean;
start?: () => Promise<void> | void;

@@ -43,2 +45,3 @@ stop?: () => Promise<void> | void;

});
persisted(): boolean;
get tables(): Map<string, Table>;

@@ -59,3 +62,5 @@ get rootTables(): Table[];

}): Promise<IndexedResult<T> | undefined>;
put(value: T, _id?: any): Promise<void>;
put(value: T, _id?: any, options?: {
replace?: boolean;
}): Promise<void>;
iterate<S extends Shape | undefined>(request?: types.IterateOptions, options?: {

@@ -91,2 +96,3 @@ shape?: S;

scope(name: string): Promise<types.Indices>;
persisted(): boolean;
start(): Promise<void>;

@@ -96,3 +102,3 @@ stop(): Promise<void>;

}
export {};
export { SQLiteIndex as SQLLiteIndex };
//# sourceMappingURL=engine.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}

@@ -6,3 +6,3 @@ import { getSchema } from "@dao-xyz/borsh";

import { MissingFieldError, buildJoin, convertCountRequestToQuery, convertDeleteRequestToQuery, convertFromSQLType, convertSearchRequestToQuery, convertSumRequestToQuery, convertToSQLType, escapeColumnName, generateSelectQuery, getInlineTableFieldName, getSQLTable, getTablePrefixedField, insert, resolveInstanceFromValue, resolveTable, selectAllFieldsFromTable, selectChildren, } from "./schema.js";
import { isFKError } from "./utils.js";
import { isFKError, isUniqueConstraintError } from "./utils.js";
const escapePathToSQLName = (path) => {

@@ -12,2 +12,4 @@ return path.map((x) => x.replace(/[^a-zA-Z0-9]/g, "_"));

const putStatementKey = (table) => table.name + "_put";
const insertKnownIdStatementKey = (table) => table.name + "_insert_known_id";
const putStatementBatchNoReturnKey = (table, rows) => table.name + "_put_batch_noreturn_" + rows;
const replaceStatementKey = (table) => table.name + "_replicate";

@@ -58,3 +60,18 @@ const resolveChildrenStatement = (table) => table.name + "_resolve_children";

}
export class SQLLiteIndex {
const createBatchInsertSQL = (table, rows) => {
const columns = table.fields.map((field) => escapeColumnName(field.name)).join(", ");
const rowPlaceholder = `(${table.fields.map(() => "?").join(", ")})`;
return `insert into ${table.name} (${columns}) VALUES ${Array.from({
length: rows,
})
.map(() => rowPlaceholder)
.join(", ")};`;
};
const canUseWithoutRowId = (table) => {
if (table.inline || table.primary === false || !table.primaryField) {
return false;
}
return !/^INTEGER\b/i.test(table.primaryField.type);
};
export class SQLiteIndex {
properties;

@@ -114,2 +131,5 @@ // SQLite writes are inherently serialized per connection.

}
persisted() {
return this.properties.persisted ?? true;
}
get tables() {

@@ -176,3 +196,6 @@ if (this.closed) {

}
const sqlCreateTable = `create table if not exists ${table.name} (${[...table.fields, ...table.constraints].map((s) => s.definition).join(", ")}) strict`;
const tableOptions = canUseWithoutRowId(table)
? " strict, without rowid"
: " strict";
const sqlCreateTable = `create table if not exists ${table.name} (${[...table.fields, ...table.constraints].map((s) => s.definition).join(", ")})${tableOptions}`;
this.properties.db.exec(sqlCreateTable);

@@ -213,5 +236,8 @@ /* const fieldsToIndex = table.fields.filter(

let sqlPut = `insert into ${table.name} (${table.fields.map((field) => escapeColumnName(field.name)).join(", ")}) VALUES (${table.fields.map((_x) => "?").join(", ")}) RETURNING ${table.primary};`;
// insert without replace when the caller already knows the id is fresh
let sqlInsertKnownId = `insert into ${table.name} (${table.fields.map((field) => escapeColumnName(field.name)).join(", ")}) VALUES (${table.fields.map((_x) => "?").join(", ")});`;
// insert or replace with id already defined
let sqlReplace = `insert or replace into ${table.name} (${table.fields.map((field) => escapeColumnName(field.name)).join(", ")}) VALUES (${table.fields.map((_x) => "?").join(", ")});`;
await this.properties.db.prepare(sqlPut, putStatementKey(table));
await this.properties.db.prepare(sqlInsertKnownId, insertKnownIdStatementKey(table));
await this.properties.db.prepare(sqlReplace, replaceStatementKey(table));

@@ -310,3 +336,3 @@ if (table.parent) {

}
async put(value, _id) {
async put(value, _id, options) {
return this.withWriteBarrier(async () => {

@@ -319,6 +345,27 @@ const classOfValue = value.constructor;

if (preId != null) {
statement = this.properties.db.statements.get(replaceStatementKey(table));
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
const shouldReplace = options?.replace ?? true;
if (!shouldReplace) {
statement = this.properties.db.statements.get(insertKnownIdStatementKey(table));
try {
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
}
catch (error) {
if (!isUniqueConstraintError(error)) {
throw error;
}
await statement.reset?.();
statement = this.properties.db.statements.get(replaceStatementKey(table));
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
}
}
else {
statement = this.properties.db.statements.get(replaceStatementKey(table));
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
}
return preId;

@@ -343,2 +390,16 @@ }

throw new Error("Unexpected");
}, undefined, undefined, {
insertSimpleVecRows: async (rows, table) => {
if (rows.length === 0) {
return;
}
const key = putStatementBatchNoReturnKey(table, rows.length);
const sql = createBatchInsertSQL(table, rows.length);
const statement = this.properties.db.statements.get(key) ||
(await this.properties.db.prepare(sql, key));
const values = rows.flat();
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
},
});

@@ -594,6 +655,7 @@ });

}
const index = new SQLLiteIndex({
const index = new SQLiteIndex({
db: this.properties.db,
schema: properties.schema,
scope: this._scope,
persisted: await this.persisted(),
});

@@ -628,2 +690,5 @@ await index.init(properties);

}
persisted() {
return this.properties.directory != null;
}
async start() {

@@ -671,2 +736,3 @@ this.closed = false;

}
export { SQLiteIndex as SQLLiteIndex };
//# sourceMappingURL=engine.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}

@@ -1,5 +0,9 @@

import { SQLLiteIndex, SQLiteIndices } from "./engine.js";
import { SQLiteIndex, SQLiteIndices } from "./engine.js";
import type { SQLiteBrowserOptions, SQLiteProfileSample } from "./sqlite3.browser.js";
import type { SQLiteLockingMode, SQLitePragmaOptions, SQLiteSynchronousMode, SQLiteTempStoreMode, SqliteWorkerProtocol } from "./sqlite3-messages.worker.js";
export declare const encodeName: (name: string) => string;
declare const create: (directory?: string) => Promise<SQLiteIndices>;
export { create, SQLiteIndices, SQLLiteIndex };
declare const create: (directory?: string, options?: SQLiteBrowserOptions) => Promise<SQLiteIndices>;
declare const createDatabase: (directory?: string, options?: SQLiteBrowserOptions) => Promise<import("./types.ts").Database>;
export { create, createDatabase, SQLiteIndices, SQLiteIndex, SQLiteIndex as SQLLiteIndex, };
export type { SQLiteBrowserOptions, SQLiteLockingMode, SQLitePragmaOptions, SQLiteProfileSample, SQLiteSynchronousMode, SQLiteTempStoreMode, SqliteWorkerProtocol, };
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG1D,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAIzC,CAAC;AAEF,QAAA,MAAM,MAAM,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,aAAa,CAG/D,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACX,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAIzC,CAAC;AAEF,QAAA,MAAM,MAAM,GACX,YAAY,MAAM,EAClB,UAAU,oBAAoB,KAC5B,OAAO,CAAC,aAAa,CAGvB,CAAC;AAEF,QAAA,MAAM,cAAc,GACnB,YAAY,MAAM,EAClB,UAAU,oBAAoB,2CACC,CAAC;AAEjC,OAAO,EACN,MAAM,EACN,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,IAAI,YAAY,GAC3B,CAAC;AACF,YAAY,EACX,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACpB,CAAC"}
import { BinaryWriter } from "@dao-xyz/borsh";
import { sha256Sync, toBase58 } from "@peerbit/crypto";
import { SQLLiteIndex, SQLiteIndices } from "./engine.js";
import { SQLiteIndex, SQLiteIndices } from "./engine.js";
import { create as sqlite3 } from "./sqlite3.js";

@@ -10,7 +10,8 @@ export const encodeName = (name) => {

};
const create = async (directory) => {
const db = await sqlite3(directory);
const create = async (directory, options) => {
const db = await sqlite3(directory, options);
return new SQLiteIndices({ db, directory });
};
export { create, SQLiteIndices, SQLLiteIndex };
const createDatabase = (directory, options) => sqlite3(directory, options);
export { create, createDatabase, SQLiteIndices, SQLiteIndex, SQLiteIndex as SQLLiteIndex, };
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IAClD,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,EAAE,SAAkB,EAA0B,EAAE;IACnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAajD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IAClD,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,EACnB,SAAkB,EAClB,OAA8B,EACL,EAAE;IAC3B,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACtB,SAAkB,EAClB,OAA8B,EAC7B,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAEjC,OAAO,EACN,MAAM,EACN,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,IAAI,YAAY,GAC3B,CAAC"}

@@ -58,3 +58,7 @@ import { type AbstractType, type Constructor, type Field, type FieldType } from "@dao-xyz/borsh";

export declare const resolveTable: <B extends boolean, R = B extends true ? Table : Table | undefined>(key: string[], tables: Map<string, Table>, clazz: string | Constructor<any>, throwOnMissing: B) => R;
export declare const insert: (insertFn: (values: any[], table: Table) => Promise<any> | any, obj: Record<string, any>, tables: Map<string, Table>, table: Table, fields: Field[], handleNestedCallback?: (cb: (parentId: any) => Promise<void>) => Promise<void> | void | number, parentId?: any, index?: number) => Promise<void>;
export declare const insert: (insertFn: (values: any[], table: Table, options?: {
requireId?: boolean;
}) => Promise<any> | any, obj: Record<string, any>, tables: Map<string, Table>, table: Table, fields: Field[], handleNestedCallback?: (cb: (parentId: any) => Promise<void>) => Promise<void> | void | number, parentId?: any, index?: number, options?: {
insertSimpleVecRows?: (rows: any[][], table: Table) => Promise<void> | void;
}) => Promise<void>;
export declare const getTablePrefixedField: (table: Table, key: string, skipPrefix?: boolean) => string;

@@ -61,0 +65,0 @@ export declare const getTableNameFromPrefixedField: (prefixedField: string) => string;

@@ -1,1 +0,1 @@

{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,SAAS,EAWd,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AAqBxE,MAAM,MAAM,YAAY,GACrB,MAAM,GACN,MAAM,GACN,IAAI,GACJ,MAAM,GACN,UAAU,GACV,SAAS,GACT,WAAW,CAAC;AAEf,MAAM,MAAM,aAAa,GACtB,MAAM,GACN,MAAM,GACN,MAAM,GACN,UAAU,GACV,SAAS,GACT,WAAW,GACX,IAAI,CAAC;AAKR,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,GAAG,MAAM,WAE5C,CAAC;AACF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,GAAG,MAAM,WACwB,CAAC;AAEtE,eAAO,MAAM,gBAAgB,GAC5B,OAAO,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,OAAO,SAAS,KACd,aAcF,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,aAAU,WACjC,CAAC;AAEzB,qBAAa,iBAAkB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI3B;AAED,eAAO,MAAM,kBAAkB,GAC9B,OAAO,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,GAAG,SAAS,QA+B3B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,SAAS,EAAE,oBAAkB,WAmB5D,CAAC;AAEF,KAAK,QAAQ,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC;IACxB,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AACF,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AA8F1D,MAAM,WAAW,KAAK;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,GACvB,MAAM,YAAY,CAAC,GAAG,CAAC,EACvB,MAAM,MAAM,EAAE,EACd,SAAS,MAAM,GAAG,KAAK,EACvB,QAAQ,OAAO,EACf,cACG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC,GAC5D,SAAS,EACZ,oBAAmB,OAAe,KAGhC,KAAK,EA6CP,CAAC;AA0BF,eAAO,MAAM,YAAY,GACxB,MAAM,MAAM,EAAE,YAAK,EACnB,OAAO,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAuBhC,CAAC;AAEF,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAe7C,eAAO,MAAM,YAAY,GACxB,WAAW,MAAM,EACjB,MAAM,MAAM,EAAE,EACd,MAAM,WAAW,CAAC,GAAG,CAAC,EACtB,SAAS,MAAM,GAAG,KAAK,EACvB,yBAAyB,CACxB,MAAM,EAAE,QAAQ,EAAE,EAClB,WAAW,EAAE,aAAa,EAAE,KACxB,IAAI,EACT,SAAQ,KAAK,EAAO,EACpB,oBAAkB,KAChB;IACF,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,YAAY,EAAE,KAAK,EAAE,CAAC;CAmPtB,CAAC;AAEF,eAAO,MAAM,YAAY,GACxB,CAAC,SAAS,OAAO,EACjB,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,EAE9C,KAAK,MAAM,EAAE,EACb,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,OAAO,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EAChC,gBAAgB,CAAC,KACf,CAmBF,CAAC;AAkIF,eAAO,MAAM,MAAM,GAClB,UAAU,CACT,MAAM,EAAE,GAAG,EAAE,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,EACvB,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,OAAO,KAAK,EACZ,QAAQ,KAAK,EAAE,EACf,uBAAuB,CACtB,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,KAChC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,EAClC,WAAU,GAAe,EACzB,QAAQ,MAAM,EACd,UAAU;IACT,mBAAmB,CAAC,EAAE,CACrB,IAAI,EAAE,GAAG,EAAE,EAAE,EACb,KAAK,EAAE,KAAK,KACR,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1B,KACC,OAAO,CAAC,IAAI,CAuLd,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,OAAO,KAAK,EACZ,KAAK,MAAM,EACX,aAAY,OAAe,WAEgE,CAAC;AAC7F,eAAO,MAAM,6BAA6B,GAAI,eAAe,MAAM,WACvC,CAAC;AAE7B,eAAO,MAAM,uBAAuB,GACnC,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,EACnC,MAAM,MAAM,KACV,MAqBF,CAAC;AAmCF,eAAO,MAAM,cAAc,GAAI,eAAe,KAAK,WAC0B,CAAC;AAE9E,eAAO,MAAM,mBAAmB,GAC/B,OAAO,KAAK,EACZ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,WAGvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACrC,QAAQ,KAAK,EAAE,EACf,OAAO,KAAK,CAAC,KAAK,GAAG,SAAS;aAGpB;QACR,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;KACX,EAAE;WACI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;aAC1B,MAAM,GAAG,SAAS;GAsC5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACpC,OAAO,KAAK,EACZ,OAAO,KAAK,CAAC,KAAK,GAAG,SAAS;;;cAIA,MAAM;YAAM,MAAM;;;CA+GhD,CAAC;AAcF,eAAO,MAAM,wBAAwB,GACpC,CAAC,EACD,CAAC,SAAS,KAAK,CAAC,KAAK,GAAG,SAAS,EAEjC,yBAAyB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5C,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,OAAO,KAAK,EACZ,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,EAChE,eAAe,OAAO,EACtB,QAAQ,CAAC,KACP,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAmNzC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC,GAAG,CAAC,QAQ5D,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACvC,SAAS,KAAK,CAAC,aAAa,EAC5B,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,OAAO,KAAK,KACV;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAWhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACpC,SAAS,KAAK,CAAC,UAAU,EACzB,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,OAAO,KAAK,KACV;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAmBhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACtC,SAAS,KAAK,CAAC,YAAY,GAAG,SAAS,EACvC,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,OAAO,KAAK,KACV;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAWhC,CAAC;AA8DF,eAAO,MAAM,2BAA2B,GACvC,SACG;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAA;CAAE,GAC1D,SAAS,EACZ,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,YAAY,KAAK,EAAE,EACnB,UAAU;IACT,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC1B,KACC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CA+EhC,CAAC;AAgKF,eAAO,MAAM,SAAS,GACrB,aAAa,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,UAAU;IACT,OAAO,CAAC,EAAE,eAAe,CAAC;CAC1B,KACC;IAAE,IAAI,EAAE,MAAM,CAAA;CAqBhB,CAAC;AAgDF,eAAO,MAAM,sBAAsB,GAClC,OAAO,KAAK,CAAC,KAAK,EAClB,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,OAAO,KAAK,EACZ,aAAa,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,MAAM,MAAM,EAAE,EACd,YAAY,MAAM,GAAG,SAAS,EAC9B,UAAU,MAAM,KACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAqFlC,CAAC;AAMF,KAAK,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7C,KAAK,SAAS,GAAG;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,KAAK,SAAS,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}

@@ -0,4 +1,15 @@

export type SqliteWorkerProtocol = "legacy" | "clone";
export type SQLiteSynchronousMode = "FULL" | "NORMAL" | "OFF";
export type SQLiteLockingMode = "NORMAL" | "EXCLUSIVE";
export type SQLiteTempStoreMode = "DEFAULT" | "FILE" | "MEMORY";
export type SQLitePragmaOptions = {
synchronous?: SQLiteSynchronousMode;
lockingMode?: SQLiteLockingMode;
tempStore?: SQLiteTempStoreMode;
};
interface Message {
id: string;
databaseId: string;
profile?: boolean;
protocol?: SqliteWorkerProtocol;
}

@@ -8,2 +19,3 @@ interface CreateDatabase extends Message {

directory?: string;
pragmas?: SQLitePragmaOptions;
}

@@ -30,6 +42,12 @@ interface Exec extends Message {

}
type Uint8ArrayType = {
type Uint8ArrayBase64Type = {
type: "uint8array";
encoding: "base64";
base64: string;
};
type Uint8ArrayCloneType = {
type: "uint8array";
encoding: "clone";
value: Uint8Array;
};
type SimpleType = {

@@ -39,8 +57,27 @@ type: "simple";

};
export declare const resolveValue: (value: Uint8ArrayType | SimpleType) => any;
export declare const encodeValue: (value: any) => Uint8ArrayType | SimpleType;
export type EncodedValue = Uint8ArrayBase64Type | Uint8ArrayCloneType | SimpleType;
export type ClientEncodeMetrics = {
encodeMs: number;
valueCount: number;
blobValueCount: number;
blobBytes: number;
};
export type WorkerTiming = {
decodeMs: number;
execMs: number;
totalMs: number;
valueCount: number;
blobValueCount: number;
blobBytes: number;
};
export declare const resolveValue: (value: EncodedValue) => any;
export declare const encodeValue: (value: any, protocol?: SqliteWorkerProtocol) => EncodedValue;
export declare const encodeValues: (values: any[] | undefined, protocol?: SqliteWorkerProtocol) => {
values: EncodedValue[] | undefined;
metrics: ClientEncodeMetrics;
};
interface Run extends Statement {
type: "run";
sql: string;
values: (Uint8ArrayType | SimpleType)[];
values: EncodedValue[];
}

@@ -52,3 +89,3 @@ interface Statement extends Message {

type: "bind";
values: (Uint8ArrayType | SimpleType)[];
values: EncodedValue[];
}

@@ -60,3 +97,3 @@ interface Step extends Statement {

type: "get";
values?: any[];
values?: EncodedValue[];
}

@@ -68,7 +105,7 @@ interface Reset extends Statement {

type: "run-statement";
values: any[];
values: EncodedValue[];
}
interface All extends Statement {
type: "all";
values: (Uint8ArrayType | SimpleType)[];
values: EncodedValue[];
}

@@ -82,2 +119,3 @@ interface Finalize extends Statement {

message: string;
timing?: WorkerTiming;
}

@@ -88,2 +126,3 @@ interface Response {

result: any;
timing?: WorkerTiming;
}

@@ -90,0 +129,0 @@ export type DatabaseMessages = CreateDatabase | Exec | Prepare | Close | Drop | Open | Run | Status;

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3-messages.worker.d.ts","sourceRoot":"","sources":["../../src/sqlite3-messages.worker.ts"],"names":[],"mappings":"AAEA,UAAU,OAAO;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACnB;AAGD,UAAU,cAAe,SAAQ,OAAO;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,IAAK,SAAQ,OAAO;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,MAAO,SAAQ,OAAO;IAC/B,IAAI,EAAE,QAAQ,CAAC;CACf;AAED,UAAU,KAAM,SAAQ,OAAO;IAC9B,IAAI,EAAE,OAAO,CAAC;CACd;AAED,UAAU,IAAK,SAAQ,OAAO;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,UAAU,IAAK,SAAQ,OAAO;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,UAAU,OAAQ,SAAQ,OAAO;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC;AAEjD,eAAO,MAAM,YAAY,GAAI,OAAO,cAAc,GAAG,UAAU,QACE,CAAC;AAClE,eAAO,MAAM,WAAW,GAAI,OAAO,GAAG,KAAG,cAAc,GAAG,UAKzD,CAAC;AAEF,UAAU,GAAI,SAAQ,SAAS;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC;CACxC;AAGD,UAAU,SAAU,SAAQ,OAAO;IAClC,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,IAAK,SAAQ,SAAS;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC;CACxC;AAED,UAAU,IAAK,SAAQ,SAAS;IAC/B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,UAAU,GAAI,SAAQ,SAAS;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;CACf;AAED,UAAU,KAAM,SAAQ,SAAS;IAChC,IAAI,EAAE,OAAO,CAAC;CACd;AAED,UAAU,YAAa,SAAQ,SAAS;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC;CACd;AAED,UAAU,GAAI,SAAQ,SAAS;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC;CACxC;AAED,UAAU,QAAS,SAAQ,SAAS;IACnC,IAAI,EAAE,UAAU,CAAC;CACjB;AAGD,UAAU,aAAa;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,QAAQ;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,MAAM,gBAAgB,GACzB,cAAc,GACd,IAAI,GACJ,OAAO,GACP,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,MAAM,CAAC;AACV,MAAM,MAAM,iBAAiB,GAC1B,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,KAAK,GACL,GAAG,GACH,QAAQ,GACR,YAAY,CAAC;AAChB,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,QAAQ,CAAC;AAExD,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC"}
{"version":3,"file":"sqlite3-messages.worker.d.ts","sourceRoot":"","sources":["../../src/sqlite3-messages.worker.ts"],"names":[],"mappings":"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"}
import { fromBase64, toBase64 } from "@peerbit/crypto";
export const resolveValue = (value) => value.type === "simple" ? value.value : fromBase64(value.base64);
export const encodeValue = (value) => {
export const resolveValue = (value) => {
if (value.type === "simple") {
return value.value;
}
return value.encoding === "clone" ? value.value : fromBase64(value.base64);
};
export const encodeValue = (value, protocol = "legacy") => {
if (value instanceof Uint8Array) {
return { type: "uint8array", base64: toBase64(value) };
return protocol === "clone"
? { type: "uint8array", encoding: "clone", value }
: { type: "uint8array", encoding: "base64", base64: toBase64(value) };
}
return { type: "simple", value };
};
export const encodeValues = (values, protocol = "legacy") => {
if (!values || values.length === 0) {
return {
values,
metrics: {
encodeMs: 0,
valueCount: 0,
blobValueCount: 0,
blobBytes: 0,
},
};
}
let blobBytes = 0;
let blobValueCount = 0;
const startedAt = performance.now();
const encodedValues = values.map((value) => {
if (value instanceof Uint8Array) {
blobValueCount++;
blobBytes += value.byteLength;
}
return encodeValue(value, protocol);
});
return {
values: encodedValues,
metrics: {
encodeMs: performance.now() - startedAt,
valueCount: values.length,
blobValueCount,
blobBytes,
},
};
};
//# sourceMappingURL=sqlite3-messages.worker.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3-messages.worker.js","sourceRoot":"","sources":["../../src/sqlite3-messages.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AA2CvD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAkC,EAAE,EAAE,CAClE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAU,EAA+B,EAAE;IACtE,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC,CAAC"}
{"version":3,"file":"sqlite3-messages.worker.js","sourceRoot":"","sources":["../../src/sqlite3-messages.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAuFvD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAmB,EAAE,EAAE;IACnD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,KAAU,EACV,WAAiC,QAAQ,EAC1B,EAAE;IACjB,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACjC,OAAO,QAAQ,KAAK,OAAO;YAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;YAClD,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC3B,MAAyB,EACzB,WAAiC,QAAQ,EAC8B,EAAE;IACzE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACN,MAAM;YACN,OAAO,EAAE;gBACR,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,cAAc,EAAE,CAAC;gBACjB,SAAS,EAAE,CAAC;aACZ;SACD,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1C,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YACjC,cAAc,EAAE,CAAC;YACjB,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC;QAC/B,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE;YACR,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;YACvC,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,cAAc;YACd,SAAS;SACT;KACD,CAAC;AACH,CAAC,CAAC"}

@@ -0,4 +1,25 @@

import * as messages from "./sqlite3-messages.worker.js";
import { type Database as IDatabase } from "./types.js";
declare const create: (directory?: string) => Promise<IDatabase>;
type RequestType = messages.DatabaseMessages["type"] | messages.StatementMessages["type"];
export type SQLiteBrowserOptions = {
protocol?: messages.SqliteWorkerProtocol;
pragmas?: messages.SQLitePragmaOptions;
profile?: boolean;
onProfile?: (sample: SQLiteProfileSample) => void;
};
export type SQLiteProfileSample = {
requestType: RequestType;
protocol: messages.SqliteWorkerProtocol;
databaseId: string;
databaseDirectory?: string;
sql?: string;
clientEncodeMs: number;
clientRoundTripMs: number;
valueCount: number;
blobValueCount: number;
blobBytes: number;
worker?: messages.WorkerTiming;
};
declare const create: (directory?: string, options?: SQLiteBrowserOptions) => Promise<IDatabase>;
export { create };
//# sourceMappingURL=sqlite3.browser.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3.browser.d.ts","sourceRoot":"","sources":["../../src/sqlite3.browser.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,KAAK,QAAQ,IAAI,SAAS,EAG1B,MAAM,YAAY,CAAC;AA2PpB,QAAA,MAAM,MAAM,GAAI,YAAY,MAAM,KAAG,OAAO,CAAC,SAAS,CAOrD,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,CAAC"}
{"version":3,"file":"sqlite3.browser.d.ts","sourceRoot":"","sources":["../../src/sqlite3.browser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EACN,KAAK,QAAQ,IAAI,SAAS,EAG1B,MAAM,YAAY,CAAC;AAEpB,KAAK,WAAW,GACb,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,GACjC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC;IACzC,OAAO,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;CAC/B,CAAC;AA8XF,QAAA,MAAM,MAAM,GACX,YAAY,MAAM,EAClB,UAAU,oBAAoB,KAC5B,OAAO,CAAC,SAAS,CAMnB,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,CAAC"}

@@ -6,2 +6,10 @@ import pDefer from "p-defer";

import {} from "./types.js";
const DEFAULT_PROTOCOL = "clone";
const EMPTY_ENCODE_METRICS = {
encodeMs: 0,
valueCount: 0,
blobValueCount: 0,
blobBytes: 0,
};
const getProtocol = (options) => options?.protocol ?? DEFAULT_PROTOCOL;
class ProxyStatement {

@@ -11,18 +19,28 @@ send;

statementId;
sql;
options;
id;
resolvers = {};
constructor(send, databaseId, statementId) {
needsReset = false;
constructor(send, databaseId, statementId, sql, options) {
this.send = send;
this.databaseId = databaseId;
this.statementId = statementId;
this.sql = sql;
this.options = options;
this.id = statementId;
}
async bind(values) {
const encoded = messages.encodeValues(values, getProtocol(this.options));
await this.send({
type: "bind",
values: values.map(messages.encodeValue),
values: encoded.values ?? [],
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
}, {
requestType: "bind",
sql: this.sql,
...encoded.metrics,
});
this.needsReset = true;
return this;

@@ -36,23 +54,44 @@ }

statementId: this.statementId,
}, {
requestType: "finalize",
sql: this.sql,
...EMPTY_ENCODE_METRICS,
});
this.needsReset = false;
}
get(values) {
return this.send({
async get(values) {
const encoded = messages.encodeValues(values, getProtocol(this.options));
const result = await this.send({
type: "get",
values: values ? values.map(messages.encodeValue) : undefined,
values: encoded.values,
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
}, {
requestType: "get",
sql: this.sql,
...encoded.metrics,
});
this.needsReset = false;
return result;
}
async run(values) {
const encoded = messages.encodeValues(values, getProtocol(this.options));
await this.send({
type: "run-statement",
values: values.map(messages.encodeValue),
values: encoded.values ?? [],
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
}, {
requestType: "run-statement",
sql: this.sql,
...encoded.metrics,
});
this.needsReset = false;
}
async reset() {
if (!this.needsReset) {
return this;
}
await this.send({

@@ -63,30 +102,97 @@ type: "reset",

statementId: this.statementId,
}, {
requestType: "reset",
sql: this.sql,
...EMPTY_ENCODE_METRICS,
});
this.needsReset = false;
return this;
}
async all(values) {
let id = uuid();
const results = await this.send({
const encoded = messages.encodeValues(values, getProtocol(this.options));
const result = await this.send({
type: "all",
values: values.map(messages.encodeValue),
id,
values: encoded.values ?? [],
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
}, {
requestType: "all",
sql: this.sql,
...encoded.metrics,
});
return results;
this.needsReset = false;
return result;
}
}
class ProxyDatabase {
send;
postMessage;
options;
statements = new Map();
resolvers = {};
databaseId;
constructor(send) {
this.send = send;
directory;
constructor(postMessage, options) {
this.postMessage = postMessage;
this.options = options;
}
async send(message, metrics) {
const startedAt = performance.now();
const protocol = getProtocol(this.options);
const shouldProfile = Boolean(this.options?.profile || this.options?.onProfile);
const requestType = metrics?.requestType ?? message.type;
try {
const response = await this.postMessage({
...message,
protocol,
profile: shouldProfile,
});
this.options?.onProfile?.({
requestType,
protocol,
databaseId: this.databaseId,
databaseDirectory: this.directory,
sql: metrics?.sql ??
("sql" in message && typeof message.sql === "string"
? message.sql
: undefined),
clientEncodeMs: metrics?.encodeMs ?? 0,
clientRoundTripMs: performance.now() - startedAt,
valueCount: metrics?.valueCount ?? 0,
blobValueCount: metrics?.blobValueCount ?? 0,
blobBytes: metrics?.blobBytes ?? 0,
worker: response.timing,
});
return response.result;
}
catch (error) {
const responseError = error;
this.options?.onProfile?.({
requestType,
protocol,
databaseId: this.databaseId,
databaseDirectory: this.directory,
sql: metrics?.sql ??
("sql" in message && typeof message.sql === "string"
? message.sql
: undefined),
clientEncodeMs: metrics?.encodeMs ?? 0,
clientRoundTripMs: performance.now() - startedAt,
valueCount: metrics?.valueCount ?? 0,
blobValueCount: metrics?.blobValueCount ?? 0,
blobBytes: metrics?.blobBytes ?? 0,
worker: responseError?.timing,
});
if (responseError?.type === "error") {
throw new Error(responseError.message);
}
throw error;
}
}
async init(directory) {
this.databaseId = uuid();
this.directory = directory;
return this.send({
type: "create",
directory,
pragmas: this.options?.pragmas,
databaseId: this.databaseId,

@@ -118,3 +224,3 @@ id: uuid(),

});
const statement = new ProxyStatement(this.send, this.databaseId, statementId);
const statement = new ProxyStatement(this.send.bind(this), this.databaseId, statementId, sql, this.options);
this.statements.set(statementId, statement);

@@ -156,5 +262,5 @@ if (id != null) {

}
let worker = new Worker(new URL("/peerbit/sqlite3/sqlite3.worker.min.js", import.meta.url), { type: "module" });
let resolvers = {};
let send = (message) => {
const worker = new Worker(new URL("/peerbit/sqlite3/sqlite3.worker.min.js", import.meta.url), { type: "module" });
const resolvers = {};
const postMessage = (message) => {
const promise = new Promise((resolve, reject) => {

@@ -166,3 +272,3 @@ resolvers[message.id] = { resolve, reject };

};
let isReady = pDefer();
const isReady = pDefer();
worker.onmessage = async (ev) => {

@@ -175,11 +281,14 @@ const message = ev.data;

const resolver = resolvers[message.id];
if (!resolver) {
return;
}
if (message.type === "error") {
resolver.reject(new Error(message.message));
resolver.reject(message);
}
else if (message.type === "response") {
resolver.resolve(message.result);
else {
resolver.resolve(message);
}
};
const create = async (directory) => {
const db = new ProxyDatabase(send);
const create = async (directory, options) => {
const db = new ProxyDatabase(postMessage, options);
await isReady.promise;

@@ -198,12 +307,10 @@ await db.init(directory);

};
const create = (directory) => {
const create = (directory, options) => {
if (directory) {
// persist the database
return init().then((creator) => creator.create(directory));
return init().then((creator) => creator.create(directory, options));
}
else {
return createDatabase();
}
return createDatabase(directory, options);
};
export { create };
//# sourceMappingURL=sqlite3.browser.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3.browser.js","sourceRoot":"","sources":["../../src/sqlite3.browser.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"sqlite3.browser.js","sourceRoot":"","sources":["../../src/sqlite3.browser.ts"],"names":[],"mappings":"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"}

@@ -0,4 +1,7 @@

import type { SQLitePragmaOptions } from "./sqlite3-messages.worker.js";
import type { Database as IDatabase } from "./types.js";
declare let create: (directory?: string) => Promise<IDatabase>;
declare let create: (directory?: string, options?: {
pragmas?: SQLitePragmaOptions;
}) => Promise<IDatabase>;
export { create };
//# sourceMappingURL=sqlite3.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3.d.ts","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,IAAI,SAAS,EAErB,MAAM,YAAY,CAAC;AAEpB,QAAA,IAAI,MAAM,GAAU,YAAY,MAAM,uBA8ErC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
{"version":3,"file":"sqlite3.d.ts","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EACX,QAAQ,IAAI,SAAS,EAErB,MAAM,YAAY,CAAC;AAepB,QAAA,IAAI,MAAM,GACT,YAAY,MAAM,EAClB,UAAU;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE,uBA4E3C,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
import DB from "better-sqlite3";
import fs from "fs";
let create = async (directory) => {
const applyPragmas = (db, pragmas) => {
db.pragma("journal_mode = WAL");
db.pragma("foreign_keys = on");
db.pragma(`synchronous = ${(pragmas?.synchronous ?? "FULL").toUpperCase()}`);
if (pragmas?.lockingMode) {
db.pragma(`locking_mode = ${pragmas.lockingMode.toUpperCase()}`);
}
if (pragmas?.tempStore && pragmas.tempStore !== "DEFAULT") {
db.pragma(`temp_store = ${pragmas.tempStore.toUpperCase()}`);
}
db.defaultSafeIntegers(true);
};
let create = async (directory, options) => {
let db = undefined;

@@ -44,6 +56,3 @@ let statements = new Map();

}
// TODO this test makes things faster, but for benchmarking it might yield wierd results where some runs are faster than others
db.pragma("journal_mode = WAL");
db.pragma("foreign_keys = on");
db.defaultSafeIntegers(true);
applyPragmas(db, options?.pragmas);
};

@@ -50,0 +59,0 @@ return {

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3.js","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"sqlite3.js","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"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"}
import { type Database as SQLDatabase, type PreparedStatement as SQLStatement } from "@sqlite.org/sqlite-wasm";
import type { BindableValue } from "./schema.js";
import { type Statement as IStatement, type StatementGetResult } from "./types.js";
import type { SQLitePragmaOptions } from "./sqlite3-messages.worker.js";
export declare const encodeName: (name: string) => string;

@@ -20,3 +21,5 @@ export declare const decodeName: (name: string) => string;

}
declare const create: (directory?: string) => Promise<{
declare const create: (directory?: string, options?: {
pragmas?: SQLitePragmaOptions;
}) => Promise<{
close: () => Promise<any> | any;

@@ -23,0 +26,0 @@ exec: (sql: string) => SQLDatabase;

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3.wasm.d.ts","sourceRoot":"","sources":["../../src/sqlite3.wasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,KAAK,QAAQ,IAAI,WAAW,EAC5B,KAAK,iBAAiB,IAAI,YAAY,EACtC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACN,KAAK,SAAS,IAAI,UAAU,EAC5B,KAAK,kBAAkB,EACvB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAKzC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAIzC,CAAC;AAEF,cAAM,SAAU,YAAW,UAAU;IAEnC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM;gBADV,SAAS,EAAE,YAAY,EACvB,EAAE,EAAE,MAAM;IAGd,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;IAKlB,QAAQ;IAOd,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE;IAe5B,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE;IAKrB,KAAK;IA2BX,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE;;;IAa3B,IAAI;CAGJ;AA4ED,QAAA,MAAM,MAAM,GAAU,YAAY,MAAM;iBA+ErB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;gBA2CvB,MAAM;;;mBAKG,MAAM,OAAO,MAAM;aAe/B,MAAM;aAIN,MAAM,QAAQ,GAAG,EAAE;;;EAM7B,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
{"version":3,"file":"sqlite3.wasm.d.ts","sourceRoot":"","sources":["../../src/sqlite3.wasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,KAAK,QAAQ,IAAI,WAAW,EAC5B,KAAK,iBAAiB,IAAI,YAAY,EACtC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACN,KAAK,SAAS,IAAI,UAAU,EAC5B,KAAK,kBAAkB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAKzC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAIzC,CAAC;AAEF,cAAM,SAAU,YAAW,UAAU;IAEnC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM;gBADV,SAAS,EAAE,YAAY,EACvB,EAAE,EAAE,MAAM;IAGd,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;IAKlB,QAAQ;IAOd,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE;IAe5B,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE;IAKrB,KAAK;IA2BX,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE;;;IAa3B,IAAI;CAGJ;AA+FD,QAAA,MAAM,MAAM,GACX,YAAY,MAAM,EAClB,UAAU;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE;iBAgFzB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;gBA0CvB,MAAM;;;mBAKG,MAAM,OAAO,MAAM;aAe/B,MAAM;aAIN,MAAM,QAAQ,GAAG,EAAE;;;EAM7B,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}

@@ -144,3 +144,16 @@ import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";

};
const create = async (directory) => {
const applyPragmas = (db, pragmas) => {
db.exec("PRAGMA journal_mode = WAL");
db.exec("PRAGMA foreign_keys = on");
// Browser SQLite state is a rebuildable materialized view over the log, so
// NORMAL is a better default tradeoff than FULL for OPFS-backed write latency.
db.exec(`PRAGMA synchronous = ${(pragmas?.synchronous ?? "NORMAL").toUpperCase()}`);
if (pragmas?.lockingMode) {
db.exec(`PRAGMA locking_mode = ${pragmas.lockingMode.toUpperCase()}`);
}
if (pragmas?.tempStore && pragmas.tempStore !== "DEFAULT") {
db.exec(`PRAGMA temp_store = ${pragmas.tempStore.toUpperCase()}`);
}
};
const create = async (directory, options) => {
let statements = new Map();

@@ -253,4 +266,3 @@ const sqlite3 = await getSqlite3();

}
sqliteDb.exec("PRAGMA journal_mode = WAL");
sqliteDb.exec("PRAGMA foreign_keys = on");
applyPragmas(sqliteDb, options?.pragmas);
};

@@ -257,0 +269,0 @@ return {

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3.wasm.js","sourceRoot":"","sources":["../../src/sqlite3.wasm.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"sqlite3.wasm.js","sourceRoot":"","sources":["../../src/sqlite3.wasm.ts"],"names":[],"mappings":"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"}
import * as messages from "./sqlite3-messages.worker.js";
import { create } from "./sqlite3.wasm.js";
const resolveValues = (values, profile = false) => {
if (!values || values.length === 0) {
return {
values: undefined,
timing: profile
? {
decodeMs: 0,
valueCount: 0,
blobValueCount: 0,
blobBytes: 0,
}
: undefined,
};
}
let blobBytes = 0;
let blobValueCount = 0;
const startedAt = profile ? performance.now() : 0;
const resolvedValues = values.map((value) => {
const resolved = messages.resolveValue(value);
if (profile && resolved instanceof Uint8Array) {
blobValueCount++;
blobBytes += resolved.byteLength;
}
return resolved;
});
return {
values: resolvedValues,
timing: profile
? {
decodeMs: performance.now() - startedAt,
valueCount: values.length,
blobValueCount,
blobBytes,
}
: undefined,
};
};
class SqliteWorkerHandler {
databases = new Map();
async create(databaseId, directory) {
const db = await create(directory);
async create(databaseId, directory, options) {
const db = await create(directory, options);
this.databases.set(databaseId, db);

@@ -11,14 +48,20 @@ return db;

async onMessage(message) {
if (message.type === "create") {
await this.create(message.databaseId, message.directory);
}
else {
const profile = Boolean(message.profile);
const startedAt = profile ? performance.now() : 0;
let decodeMs = 0;
let valueCount = 0;
let blobValueCount = 0;
let blobBytes = 0;
const execute = async () => {
if (message.type === "create") {
await this.create(message.databaseId, message.directory, {
pragmas: message.pragmas,
});
return undefined;
}
const db = this.databases.get(message.databaseId);
if (!db) {
if (message.type === "close") {
return; // ignore close message if database is not found
if (message.type === "close" || message.type === "drop") {
return undefined;
}
if (message.type === "drop") {
return; // ignore close message if database is not found
}
if (message.type === "status") {

@@ -35,59 +78,96 @@ return "closed";

}
else if (message.type === "status") {
if (message.type === "status") {
return db.status();
}
else if (message.type === "prepare") {
if (message.type === "prepare") {
const statementId = message.id;
await db.prepare(message.sql, message.id);
// db.statements.get(statementId) -> statement, because sqlite3.wasm stores the statement in a map like this
return statementId;
}
else if (message.type === "close") {
if (message.type === "close") {
await db.close();
this.databases.delete(message.databaseId);
return undefined;
}
else if (message.type === "drop") {
if (message.type === "drop") {
await db.drop();
this.databases.delete(message.databaseId);
return undefined;
}
else if (message.type === "open") {
if (message.type === "open") {
await db.open();
this.databases.set(message.databaseId, db);
return undefined;
}
else if (message.type === "run") {
return db.run(message.sql, message.values.map(messages.resolveValue));
if (message.type === "run") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return db.run(message.sql, resolved.values ?? []);
}
else {
const statement = db.statements.get(message.statementId);
if (!statement) {
throw new Error("Statement not found with id: " + message.statementId);
const statement = db.statements.get(message.statementId);
if (!statement) {
throw new Error("Statement not found with id: " + message.statementId);
}
if (message.type === "bind") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return statement.bind(resolved.values ?? []);
}
if (message.type === "finalize") {
return statement.finalize();
}
if (message.type === "reset") {
return statement.reset();
}
if (message.type === "get") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return statement.get(resolved.values);
}
if (message.type === "step") {
return statement.step();
}
if (message.type === "run-statement") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return statement.run(resolved.values ?? []);
}
if (message.type === "all") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return statement.all(resolved.values ?? []);
}
throw new Error("Unknown statement message type: " + message["type"]);
};
const execStart = profile ? performance.now() : 0;
const result = await execute();
const execMs = profile ? performance.now() - execStart - decodeMs : 0;
return {
result,
timing: profile
? {
decodeMs,
execMs,
totalMs: performance.now() - startedAt,
valueCount,
blobValueCount,
blobBytes,
}
if (message.type === "bind") {
return statement.bind(message.values.map(messages.resolveValue));
}
else if (message.type === "finalize") {
return statement.finalize();
}
else if (message.type === "reset") {
return statement.reset();
}
else if (message.type === "get") {
return statement.get(message.values
? message.values.map(messages.resolveValue)
: undefined);
}
else if (message.type === "step") {
return statement.step();
}
else if (message.type === "run-statement") {
return statement.run(message.values.map(messages.resolveValue));
}
else if (message.type === "all") {
return statement.all(message.values.map(messages.resolveValue));
}
else {
throw new Error("Unknown statement message type: " + message["type"]);
}
}
}
: undefined,
};
}

@@ -97,8 +177,11 @@ }

self.onmessage = async (messageEvent) => {
const profile = Boolean(messageEvent.data.profile);
const startedAt = profile ? performance.now() : 0;
try {
const results = await worker.onMessage(messageEvent.data);
const response = await worker.onMessage(messageEvent.data);
self.postMessage({
type: "response",
id: messageEvent.data.id,
result: results,
result: response.result,
timing: response.timing,
});

@@ -111,2 +194,12 @@ }

message: error?.message,
timing: profile
? {
decodeMs: 0,
execMs: 0,
totalMs: performance.now() - startedAt,
valueCount: 0,
blobValueCount: 0,
blobBytes: 0,
}
: undefined,
});

@@ -113,0 +206,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"sqlite3.worker.js","sourceRoot":"","sources":["../../src/sqlite3.worker.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"sqlite3.worker.js","sourceRoot":"","sources":["../../src/sqlite3.worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,aAAa,GAAG,CACrB,MAA2C,EAC3C,OAAO,GAAG,KAAK,EACd,EAAE;IACH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACN,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,OAAO;gBACd,CAAC,CAAC;oBACA,QAAQ,EAAE,CAAC;oBACX,UAAU,EAAE,CAAC;oBACb,cAAc,EAAE,CAAC;oBACjB,SAAS,EAAE,CAAC;iBACZ;gBACF,CAAC,CAAC,SAAS;SACZ,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAO,IAAI,QAAQ,YAAY,UAAU,EAAE,CAAC;YAC/C,cAAc,EAAE,CAAC;YACjB,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC;QAClC,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,OAAO;YACd,CAAC,CAAC;gBACA,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;gBACvC,UAAU,EAAE,MAAM,CAAC,MAAM;gBACzB,cAAc;gBACd,SAAS;aACT;YACF,CAAC,CAAC,SAAS;KACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB;IACxB,SAAS,GAAoD,IAAI,GAAG,EAAE,CAAC;IAEvE,KAAK,CAAC,MAAM,CACX,UAAkB,EAClB,SAAkB,EAClB,OAAoD;QAEpD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,SAAS,CACd,OAA+D;QAE/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE;oBACxD,OAAO,EAAE,OAAO,CAAC,OAAO;iBACxB,CAAC,CAAC;gBACH,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACT,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzD,OAAO,SAAS,CAAC;gBAClB,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC/B,OAAO,QAAQ,CAAC;gBACjB,CAAC;gBAED,MAAM,IAAI,KAAK,CACd,8BAA8B;oBAC7B,OAAO,CAAC,UAAU;oBAClB,qBAAqB;oBACrB,OAAO,CAAC,IAAI,CACb,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC1C,OAAO,WAAW,CAAC;YACpB,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1C,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1C,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC3C,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxD,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;gBAC1C,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;gBAC9C,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,CAAC;gBACtD,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC;gBAC5C,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxD,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;gBAC1C,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;gBAC9C,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,CAAC;gBACtD,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC;gBAC5C,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjC,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxD,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;gBAC1C,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;gBAC9C,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,CAAC;gBACtD,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC;gBAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxD,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;gBAC1C,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;gBAC9C,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,CAAC;gBACtD,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC;gBAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxD,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;gBAC1C,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;gBAC9C,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,CAAC;gBACtD,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC;gBAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtE,OAAO;YACN,MAAM;YACN,MAAM,EAAE,OAAO;gBACd,CAAC,CAAC;oBACA,QAAQ;oBACR,MAAM;oBACN,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;oBACtC,UAAU;oBACV,cAAc;oBACd,SAAS;iBACT;gBACF,CAAC,CAAC,SAAS;SACZ,CAAC;IACH,CAAC;CACD;AACD,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAEzC,IAAI,CAAC,SAAS,GAAG,KAAK,EACrB,YAEC,EACA,EAAE;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC;YAChB,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE;YACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACvB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC;YAChB,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,EAAE,KAAK,EAAE,OAAO;YACvB,MAAM,EAAE,OAAO;gBACd,CAAC,CAAC;oBACA,QAAQ,EAAE,CAAC;oBACX,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;oBACtC,UAAU,EAAE,CAAC;oBACb,cAAc,EAAE,CAAC;oBACjB,SAAS,EAAE,CAAC;iBACZ;gBACF,CAAC,CAAC,SAAS;SACZ,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC;AAEF,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC"}
export declare const isFKError: (e: any) => any;
export declare const isUniqueConstraintError: (e: any) => any;
//# sourceMappingURL=utils.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,GAAG,GAAG,QAQ/B,CAAC"}
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,GAAG,GAAG,QAQ/B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,GAAG,GAAG,QAY7C,CAAC"}

@@ -8,2 +8,13 @@ export const isFKError = (e) => {

};
export const isUniqueConstraintError = (e) => {
return (e?.code === "SQLITE_CONSTRAINT_PRIMARYKEY" ||
e?.code === "SQLITE_CONSTRAINT_UNIQUE" ||
e?.rc === 1555 ||
e?.rc === 2067 ||
(e?.message &&
(e.message.includes("SQLITE_CONSTRAINT_PRIMARYKEY") ||
e.message.includes("SQLITE_CONSTRAINT_UNIQUE") ||
e.message.includes("UNIQUE constraint failed") ||
e.message.includes("PRIMARY KEY constraint failed"))));
};
//# sourceMappingURL=utils.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE;IACnC,OAAO,CACN,CAAC,EAAE,IAAI,KAAK,8BAA8B;QAC1C,CAAC,EAAE,EAAE,KAAK,GAAG;QACb,CAAC,CAAC,EAAE,OAAO;YACV,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC;gBAClD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC,CACvD,CAAC;AACH,CAAC,CAAC"}
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE;IACnC,OAAO,CACN,CAAC,EAAE,IAAI,KAAK,8BAA8B;QAC1C,CAAC,EAAE,EAAE,KAAK,GAAG;QACb,CAAC,CAAC,EAAE,OAAO;YACV,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC;gBAClD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC,CACvD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAM,EAAE,EAAE;IACjD,OAAO,CACN,CAAC,EAAE,IAAI,KAAK,8BAA8B;QAC1C,CAAC,EAAE,IAAI,KAAK,0BAA0B;QACtC,CAAC,EAAE,EAAE,KAAK,IAAI;QACd,CAAC,EAAE,EAAE,KAAK,IAAI;QACd,CAAC,CAAC,EAAE,OAAO;YACV,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC;gBAClD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;gBAC9C,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;gBAC9C,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC,CACvD,CAAC;AACH,CAAC,CAAC"}
{
"name": "@peerbit/indexer-sqlite3",
"version": "3.0.0",
"version": "3.0.1",
"description": "SQLite index for document store",

@@ -70,4 +70,4 @@ "type": "module",

"@peerbit/indexer-interface": "3.0.0",
"@peerbit/time": "3.0.0",
"@peerbit/crypto": "3.0.0"
"@peerbit/crypto": "3.0.0",
"@peerbit/time": "3.0.0"
},

@@ -77,4 +77,4 @@ "devDependencies": {

"esbuild": "0.27.0",
"@peerbit/build-assets": "1.1.0",
"@peerbit/indexer-tests": "3.0.0"
"@peerbit/indexer-tests": "3.0.0",
"@peerbit/build-assets": "1.1.0"
},

@@ -89,4 +89,5 @@ "scripts": {

"test:node": "aegir clean && aegir test -t node",
"lint": "aegir lint"
"lint": "aegir lint",
"test:cov": "aegir test -t node --cov"
}
}

@@ -33,3 +33,3 @@ import { type AbstractType, type Constructor, getSchema } from "@dao-xyz/borsh";

import type { Database, Statement } from "./types.js";
import { isFKError } from "./utils.js";
import { isFKError, isUniqueConstraintError } from "./utils.js";

@@ -41,2 +41,6 @@ const escapePathToSQLName = (path: string[]) => {

const putStatementKey = (table: Table) => table.name + "_put";
const insertKnownIdStatementKey = (table: Table) =>
table.name + "_insert_known_id";
const putStatementBatchNoReturnKey = (table: Table, rows: number) =>
table.name + "_put_batch_noreturn_" + rows;
const replaceStatementKey = (table: Table) => table.name + "_replicate";

@@ -89,3 +93,20 @@ const resolveChildrenStatement = (table: Table) =>

export class SQLLiteIndex<T extends Record<string, any>>
const createBatchInsertSQL = (table: Table, rows: number) => {
const columns = table.fields.map((field) => escapeColumnName(field.name)).join(", ");
const rowPlaceholder = `(${table.fields.map(() => "?").join(", ")})`;
return `insert into ${table.name} (${columns}) VALUES ${Array.from({
length: rows,
})
.map(() => rowPlaceholder)
.join(", ")};`;
};
const canUseWithoutRowId = (table: Table) => {
if (table.inline || table.primary === false || !table.primaryField) {
return false;
}
return !/^INTEGER\b/i.test(table.primaryField.type);
};
export class SQLiteIndex<T extends Record<string, any>>
implements Index<T, any>

@@ -151,2 +172,3 @@ {

schema: AbstractType<any>;
persisted?: boolean;
start?: () => Promise<void> | void;

@@ -170,2 +192,6 @@ stop?: () => Promise<void> | void;

persisted(): boolean {
return this.properties.persisted ?? true;
}
get tables() {

@@ -259,3 +285,6 @@ if (this.closed) {

const sqlCreateTable = `create table if not exists ${table.name} (${[...table.fields, ...table.constraints].map((s) => s.definition).join(", ")}) strict`;
const tableOptions = canUseWithoutRowId(table)
? " strict, without rowid"
: " strict";
const sqlCreateTable = `create table if not exists ${table.name} (${[...table.fields, ...table.constraints].map((s) => s.definition).join(", ")})${tableOptions}`;
this.properties.db.exec(sqlCreateTable);

@@ -299,2 +328,5 @@

// insert without replace when the caller already knows the id is fresh
let sqlInsertKnownId = `insert into ${table.name} (${table.fields.map((field) => escapeColumnName(field.name)).join(", ")}) VALUES (${table.fields.map((_x) => "?").join(", ")});`;
// insert or replace with id already defined

@@ -304,2 +336,6 @@ let sqlReplace = `insert or replace into ${table.name} (${table.fields.map((field) => escapeColumnName(field.name)).join(", ")}) VALUES (${table.fields.map((_x) => "?").join(", ")});`;

await this.properties.db.prepare(sqlPut, putStatementKey(table));
await this.properties.db.prepare(
sqlInsertKnownId,
insertKnownIdStatementKey(table),
);
await this.properties.db.prepare(sqlReplace, replaceStatementKey(table));

@@ -439,3 +475,7 @@

async put(value: T, _id?: any): Promise<void> {
async put(
value: T,
_id?: any,
options?: { replace?: boolean },
): Promise<void> {
return this.withWriteBarrier(async () => {

@@ -449,8 +489,31 @@ const classOfValue = value.constructor as Constructor<T>;

if (preId != null) {
statement = this.properties.db.statements.get(
replaceStatementKey(table),
)!;
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
const shouldReplace = options?.replace ?? true;
if (!shouldReplace) {
statement = this.properties.db.statements.get(
insertKnownIdStatementKey(table),
)!;
try {
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
} catch (error) {
if (!isUniqueConstraintError(error)) {
throw error;
}
await statement.reset?.();
statement = this.properties.db.statements.get(
replaceStatementKey(table),
)!;
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
}
} else {
statement = this.properties.db.statements.get(
replaceStatementKey(table),
)!;
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
}
return preId;

@@ -488,2 +551,20 @@ } else {

},
undefined,
undefined,
{
insertSimpleVecRows: async (rows, table) => {
if (rows.length === 0) {
return;
}
const key = putStatementBatchNoReturnKey(table, rows.length);
const sql = createBatchInsertSQL(table, rows.length);
const statement =
this.properties.db.statements.get(key) ||
(await this.properties.db.prepare(sql, key));
const values = rows.flat();
this.fkMode === "race-tolerant"
? await runIgnoreFK(statement, values)
: await statement.run(values);
},
},
);

@@ -835,6 +916,7 @@ });

const index: types.Index<T, any> = new SQLLiteIndex({
const index: types.Index<T, any> = new SQLiteIndex({
db: this.properties.db,
schema: properties.schema,
scope: this._scope,
persisted: await this.persisted(),
});

@@ -874,2 +956,6 @@ await index.init(properties);

persisted(): boolean {
return this.properties.directory != null;
}
async start(): Promise<void> {

@@ -924,1 +1010,3 @@ this.closed = false;

}
export { SQLiteIndex as SQLLiteIndex };
import { BinaryWriter } from "@dao-xyz/borsh";
import { sha256Sync, toBase58 } from "@peerbit/crypto";
import { SQLLiteIndex, SQLiteIndices } from "./engine.js";
import { SQLiteIndex, SQLiteIndices } from "./engine.js";
import { create as sqlite3 } from "./sqlite3.js";
import type {
SQLiteBrowserOptions,
SQLiteProfileSample,
} from "./sqlite3.browser.js";
import type {
SQLiteLockingMode,
SQLitePragmaOptions,
SQLiteSynchronousMode,
SQLiteTempStoreMode,
SqliteWorkerProtocol,
} from "./sqlite3-messages.worker.js";

@@ -12,6 +23,30 @@ export const encodeName = (name: string): string => {

const create = async (directory?: string): Promise<SQLiteIndices> => {
const db = await sqlite3(directory);
const create = async (
directory?: string,
options?: SQLiteBrowserOptions,
): Promise<SQLiteIndices> => {
const db = await sqlite3(directory, options);
return new SQLiteIndices({ db, directory });
};
export { create, SQLiteIndices, SQLLiteIndex };
const createDatabase = (
directory?: string,
options?: SQLiteBrowserOptions,
) => sqlite3(directory, options);
export {
create,
createDatabase,
SQLiteIndices,
SQLiteIndex,
SQLiteIndex as SQLLiteIndex,
};
export type {
SQLiteBrowserOptions,
SQLiteLockingMode,
SQLitePragmaOptions,
SQLiteProfileSample,
SQLiteSynchronousMode,
SQLiteTempStoreMode,
SqliteWorkerProtocol,
};

@@ -820,3 +820,7 @@ import {

export const insert = async (
insertFn: (values: any[], table: Table) => Promise<any> | any,
insertFn: (
values: any[],
table: Table,
options?: { requireId?: boolean },
) => Promise<any> | any,
obj: Record<string, any>,

@@ -831,2 +835,8 @@ tables: Map<string, Table>,

index?: number,
options?: {
insertSimpleVecRows?: (
rows: any[][],
table: Table,
) => Promise<void> | void;
},
): Promise<void> => {

@@ -841,2 +851,10 @@ const bindableValues: any[] = [];

const toInsertValue = (item: any, subTable: Table) =>
typeof item === "function" && item instanceof Uint8Array === false
? item
: subTable.isSimpleValue
? // eslint-disable-next-line new-cap
new subTable.ctor(item)
: Object.assign(Object.create(subTable.ctor.prototype), item);
const handleElement = async (

@@ -852,8 +870,3 @@ item: any,

insertFn,
typeof item === "function" && item instanceof Uint8Array === false
? item
: subTable.isSimpleValue
? // eslint-disable-next-line new-cap
new subTable.ctor(item)
: Object.assign(Object.create(subTable.ctor.prototype), item),
toInsertValue(item, subTable),
tables,

@@ -865,2 +878,3 @@ subTable,

index,
options,
);

@@ -876,2 +890,35 @@ };

const arr = obj[field.key];
const firstItem = arr.find((item: any) => item != null);
if (
parentId != null &&
arr.length > 1 &&
firstItem != null &&
options?.insertSimpleVecRows
) {
const subTable = getTableFromValue(table, tables, field, firstItem);
if (subTable.isSimpleValue) {
const rows: any[][] = [];
for (let i = 0; i < arr.length; i++) {
const item = arr[i];
await insert(
(values) => {
rows.push(values);
return undefined;
},
toInsertValue(item, subTable),
tables,
subTable,
getSchema(subTable.ctor).fields,
handleNestedCallback,
parentId,
i,
options,
);
}
if (rows.length > 0) {
await options.insertSimpleVecRows(rows, subTable);
}
return;
}
}
for (let i = 0; i < arr.length; i++) {

@@ -954,2 +1001,3 @@ const item = arr[i];

undefined, // index is not defined here, we are inserting a nested object inline
options,
);

@@ -973,3 +1021,5 @@ /* await insert(, obj[field.key], tables, subTable, getSchema(unwrappedType).fields, parentId, index); */

const thisId = await insertFn(bindableValues, table);
const thisId = await insertFn(bindableValues, table, {
requireId: nestedCallbacks.length > 0,
});
if (table.primary === false && nestedCallbacks.length > 0) {

@@ -1886,5 +1936,11 @@ throw new Error("Unexpected");

const usedColumns = removeDuplicatesOrdered(table!.columns);
indexedBy = options?.planner
? ` INDEXED BY ${options.planner.resolveIndex(table.table.name, usedColumns)} `
: "";
const usesImplicitPrimaryKeyIndex =
table.type === "root" &&
table.table.primary !== false &&
usedColumns.length === 1 &&
usedColumns[0] === table.table.primary;
indexedBy =
options?.planner && !usesImplicitPrimaryKeyIndex
? ` INDEXED BY ${options.planner.resolveIndex(table.table.name, usedColumns)} `
: "";
}

@@ -1891,0 +1947,0 @@

import { fromBase64, toBase64 } from "@peerbit/crypto";
export type SqliteWorkerProtocol = "legacy" | "clone";
export type SQLiteSynchronousMode = "FULL" | "NORMAL" | "OFF";
export type SQLiteLockingMode = "NORMAL" | "EXCLUSIVE";
export type SQLiteTempStoreMode = "DEFAULT" | "FILE" | "MEMORY";
export type SQLitePragmaOptions = {
synchronous?: SQLiteSynchronousMode;
lockingMode?: SQLiteLockingMode;
tempStore?: SQLiteTempStoreMode;
};
interface Message {
id: string;
databaseId: string;
profile?: boolean;
protocol?: SqliteWorkerProtocol;
}

@@ -12,2 +24,3 @@

directory?: string;
pragmas?: SQLitePragmaOptions;
}

@@ -41,11 +54,52 @@

type Uint8ArrayType = { type: "uint8array"; base64: string };
type Uint8ArrayBase64Type = {
type: "uint8array";
encoding: "base64";
base64: string;
};
type Uint8ArrayCloneType = {
type: "uint8array";
encoding: "clone";
value: Uint8Array;
};
type SimpleType = { type: "simple"; value: any };
export const resolveValue = (value: Uint8ArrayType | SimpleType) =>
value.type === "simple" ? value.value : fromBase64(value.base64);
export const encodeValue = (value: any): Uint8ArrayType | SimpleType => {
export type EncodedValue =
| Uint8ArrayBase64Type
| Uint8ArrayCloneType
| SimpleType;
export type ClientEncodeMetrics = {
encodeMs: number;
valueCount: number;
blobValueCount: number;
blobBytes: number;
};
export type WorkerTiming = {
decodeMs: number;
execMs: number;
totalMs: number;
valueCount: number;
blobValueCount: number;
blobBytes: number;
};
export const resolveValue = (value: EncodedValue) => {
if (value.type === "simple") {
return value.value;
}
return value.encoding === "clone" ? value.value : fromBase64(value.base64);
};
export const encodeValue = (
value: any,
protocol: SqliteWorkerProtocol = "legacy",
): EncodedValue => {
if (value instanceof Uint8Array) {
return { type: "uint8array", base64: toBase64(value) };
return protocol === "clone"
? { type: "uint8array", encoding: "clone", value }
: { type: "uint8array", encoding: "base64", base64: toBase64(value) };
}

@@ -55,6 +109,44 @@ return { type: "simple", value };

export const encodeValues = (
values: any[] | undefined,
protocol: SqliteWorkerProtocol = "legacy",
): { values: EncodedValue[] | undefined; metrics: ClientEncodeMetrics } => {
if (!values || values.length === 0) {
return {
values,
metrics: {
encodeMs: 0,
valueCount: 0,
blobValueCount: 0,
blobBytes: 0,
},
};
}
let blobBytes = 0;
let blobValueCount = 0;
const startedAt = performance.now();
const encodedValues = values.map((value) => {
if (value instanceof Uint8Array) {
blobValueCount++;
blobBytes += value.byteLength;
}
return encodeValue(value, protocol);
});
return {
values: encodedValues,
metrics: {
encodeMs: performance.now() - startedAt,
valueCount: values.length,
blobValueCount,
blobBytes,
},
};
};
interface Run extends Statement {
type: "run";
sql: string;
values: (Uint8ArrayType | SimpleType)[];
values: EncodedValue[];
}

@@ -69,3 +161,3 @@

type: "bind";
values: (Uint8ArrayType | SimpleType)[];
values: EncodedValue[];
}

@@ -79,3 +171,3 @@

type: "get";
values?: any[];
values?: EncodedValue[];
}

@@ -89,3 +181,3 @@

type: "run-statement";
values: any[];
values: EncodedValue[];
}

@@ -95,3 +187,3 @@

type: "all";
values: (Uint8ArrayType | SimpleType)[];
values: EncodedValue[];
}

@@ -108,2 +200,3 @@

message: string;
timing?: WorkerTiming;
}

@@ -115,2 +208,3 @@

result: any;
timing?: WorkerTiming;
}

@@ -117,0 +211,0 @@

@@ -12,10 +12,50 @@ import pDefer from "p-defer";

type RequestType =
| messages.DatabaseMessages["type"]
| messages.StatementMessages["type"];
export type SQLiteBrowserOptions = {
protocol?: messages.SqliteWorkerProtocol;
pragmas?: messages.SQLitePragmaOptions;
profile?: boolean;
onProfile?: (sample: SQLiteProfileSample) => void;
};
export type SQLiteProfileSample = {
requestType: RequestType;
protocol: messages.SqliteWorkerProtocol;
databaseId: string;
databaseDirectory?: string;
sql?: string;
clientEncodeMs: number;
clientRoundTripMs: number;
valueCount: number;
blobValueCount: number;
blobBytes: number;
worker?: messages.WorkerTiming;
};
type SendMetrics = messages.ClientEncodeMetrics & {
requestType: RequestType;
sql?: string;
};
type ResponseMessage = Extract<messages.ResponseMessages, { type: "response" }>;
type ErrorMessage = Extract<messages.ResponseMessages, { type: "error" }>;
const DEFAULT_PROTOCOL: messages.SqliteWorkerProtocol = "clone";
const EMPTY_ENCODE_METRICS: messages.ClientEncodeMetrics = {
encodeMs: 0,
valueCount: 0,
blobValueCount: 0,
blobBytes: 0,
};
const getProtocol = (
options?: SQLiteBrowserOptions,
): messages.SqliteWorkerProtocol => options?.protocol ?? DEFAULT_PROTOCOL;
class ProxyStatement implements IStatement {
id: string;
resolvers: {
[hash in string]: {
resolve: (...args: any) => void;
reject: (...args: any) => void;
};
} = {};
private needsReset = false;

@@ -25,5 +65,8 @@ constructor(

message: messages.DatabaseMessages | messages.StatementMessages,
metrics?: SendMetrics,
) => Promise<T>,
readonly databaseId: string,
readonly statementId: string,
readonly sql: string,
readonly options?: SQLiteBrowserOptions,
) {

@@ -34,9 +77,18 @@ this.id = statementId;

async bind(values: any[]) {
await this.send({
type: "bind",
values: values.map(messages.encodeValue),
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
});
const encoded = messages.encodeValues(values, getProtocol(this.options));
await this.send(
{
type: "bind",
values: encoded.values ?? [],
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
},
{
requestType: "bind",
sql: this.sql,
...encoded.metrics,
},
);
this.needsReset = true;
return this;

@@ -46,37 +98,75 @@ }

async finalize() {
await this.send({
type: "finalize",
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
});
await this.send(
{
type: "finalize",
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
},
{
requestType: "finalize",
sql: this.sql,
...EMPTY_ENCODE_METRICS,
},
);
this.needsReset = false;
}
get(values?: BindableValue[]) {
return this.send<StatementGetResult>({
type: "get",
values: values ? values.map(messages.encodeValue) : undefined,
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
});
async get(values?: BindableValue[]) {
const encoded = messages.encodeValues(values, getProtocol(this.options));
const result = await this.send<StatementGetResult>(
{
type: "get",
values: encoded.values,
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
},
{
requestType: "get",
sql: this.sql,
...encoded.metrics,
},
);
this.needsReset = false;
return result;
}
async run(values: BindableValue[]) {
await this.send({
type: "run-statement",
values: values.map(messages.encodeValue),
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
});
const encoded = messages.encodeValues(values, getProtocol(this.options));
await this.send(
{
type: "run-statement",
values: encoded.values ?? [],
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
},
{
requestType: "run-statement",
sql: this.sql,
...encoded.metrics,
},
);
this.needsReset = false;
}
async reset() {
await this.send({
type: "reset",
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
});
if (!this.needsReset) {
return this;
}
await this.send(
{
type: "reset",
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
},
{
requestType: "reset",
sql: this.sql,
...EMPTY_ENCODE_METRICS,
},
);
this.needsReset = false;
return this;

@@ -86,11 +176,19 @@ }

async all(values: BindableValue[]) {
let id = uuid();
const results = await this.send({
type: "all",
values: values.map(messages.encodeValue),
id,
databaseId: this.databaseId,
statementId: this.statementId,
});
return results;
const encoded = messages.encodeValues(values, getProtocol(this.options));
const result = await this.send(
{
type: "all",
values: encoded.values ?? [],
id: uuid(),
databaseId: this.databaseId,
statementId: this.statementId,
},
{
requestType: "all",
sql: this.sql,
...encoded.metrics,
},
);
this.needsReset = false;
return result;
}

@@ -101,21 +199,78 @@ }

statements: Map<string, ProxyStatement> = new Map();
databaseId!: string;
private directory?: string;
resolvers: {
[hash in string]: {
resolve: (...args: any) => void;
reject: (...args: any) => void;
};
} = {};
databaseId!: string;
constructor(
readonly send: <T>(
readonly postMessage: (
message: messages.DatabaseMessages | messages.StatementMessages,
) => Promise<T>,
) => Promise<ResponseMessage>,
readonly options?: SQLiteBrowserOptions,
) {}
private async send<T>(
message: messages.DatabaseMessages | messages.StatementMessages,
metrics?: SendMetrics,
): Promise<T> {
const startedAt = performance.now();
const protocol = getProtocol(this.options);
const shouldProfile = Boolean(this.options?.profile || this.options?.onProfile);
const requestType = metrics?.requestType ?? message.type;
try {
const response = await this.postMessage({
...message,
protocol,
profile: shouldProfile,
});
this.options?.onProfile?.({
requestType,
protocol,
databaseId: this.databaseId,
databaseDirectory: this.directory,
sql:
metrics?.sql ??
("sql" in message && typeof message.sql === "string"
? message.sql
: undefined),
clientEncodeMs: metrics?.encodeMs ?? 0,
clientRoundTripMs: performance.now() - startedAt,
valueCount: metrics?.valueCount ?? 0,
blobValueCount: metrics?.blobValueCount ?? 0,
blobBytes: metrics?.blobBytes ?? 0,
worker: response.timing,
});
return response.result as T;
} catch (error: any) {
const responseError = error as ErrorMessage | undefined;
this.options?.onProfile?.({
requestType,
protocol,
databaseId: this.databaseId,
databaseDirectory: this.directory,
sql:
metrics?.sql ??
("sql" in message && typeof message.sql === "string"
? message.sql
: undefined),
clientEncodeMs: metrics?.encodeMs ?? 0,
clientRoundTripMs: performance.now() - startedAt,
valueCount: metrics?.valueCount ?? 0,
blobValueCount: metrics?.blobValueCount ?? 0,
blobBytes: metrics?.blobBytes ?? 0,
worker: responseError?.timing,
});
if (responseError?.type === "error") {
throw new Error(responseError.message);
}
throw error;
}
}
async init(directory?: string) {
this.databaseId = uuid();
this.directory = directory;
return this.send({
type: "create",
directory,
pragmas: this.options?.pragmas,
databaseId: this.databaseId,

@@ -150,5 +305,7 @@ id: uuid(),

const statement = new ProxyStatement(
this.send,
this.send.bind(this),
this.databaseId,
statementId,
sql,
this.options,
);

@@ -191,14 +348,6 @@ this.statements.set(statementId, statement);

}
/* async get(sql: string) {
return this.send({ type: 'get', sql, id: uuid() });
}
async run(sql: string, bind: any[]) {
return this.send({ type: 'run', sql, bind, id: uuid() });
} */
}
interface DatabaseCreator {
create(directory?: string): Promise<ProxyDatabase>;
create(directory?: string, options?: SQLiteBrowserOptions): Promise<ProxyDatabase>;
close(): Promise<void> | void;

@@ -213,17 +362,18 @@ }

let worker = new Worker(
const worker = new Worker(
new URL("/peerbit/sqlite3/sqlite3.worker.min.js", import.meta.url),
{ type: "module" },
);
let resolvers: {
[hash in string]: {
resolve: (...args: any) => void;
reject: (...args: any) => void;
};
} = {};
const resolvers: Record<
string,
{
resolve: (message: ResponseMessage) => void;
reject: (message: ErrorMessage) => void;
}
> = {};
let send = <T>(
const postMessage = (
message: messages.DatabaseMessages | messages.StatementMessages,
) => {
const promise = new Promise<T>((resolve, reject) => {
const promise = new Promise<ResponseMessage>((resolve, reject) => {
resolvers[message.id] = { resolve, reject };

@@ -236,3 +386,3 @@ });

let isReady = pDefer();
const isReady = pDefer();

@@ -248,11 +398,17 @@ worker.onmessage = async (ev) => {

const resolver = resolvers[message.id];
if (!resolver) {
return;
}
if (message.type === "error") {
resolver.reject(new Error(message.message));
} else if (message.type === "response") {
resolver.resolve(message.result);
resolver.reject(message);
} else {
resolver.resolve(message);
}
};
const create = async (directory?: string) => {
const db = new ProxyDatabase(send);
const create = async (
directory?: string,
options?: SQLiteBrowserOptions,
) => {
const db = new ProxyDatabase(postMessage, options);
await isReady.promise;

@@ -272,10 +428,12 @@ await db.init(directory);

const create = (directory?: string): Promise<IDatabase> => {
const create = (
directory?: string,
options?: SQLiteBrowserOptions,
): Promise<IDatabase> => {
if (directory) {
// persist the database
return init().then((creator) => creator.create(directory));
} else {
return createDatabase();
return init().then((creator) => creator.create(directory, options));
}
return createDatabase(directory, options);
};
export { create };
import DB from "better-sqlite3";
import fs from "fs";
import type { SQLitePragmaOptions } from "./sqlite3-messages.worker.js";
import type {

@@ -8,3 +9,19 @@ Database as IDatabase,

let create = async (directory?: string) => {
const applyPragmas = (db: DB.Database, pragmas?: SQLitePragmaOptions) => {
db.pragma("journal_mode = WAL");
db.pragma("foreign_keys = on");
db.pragma(`synchronous = ${(pragmas?.synchronous ?? "FULL").toUpperCase()}`);
if (pragmas?.lockingMode) {
db.pragma(`locking_mode = ${pragmas.lockingMode.toUpperCase()}`);
}
if (pragmas?.tempStore && pragmas.tempStore !== "DEFAULT") {
db.pragma(`temp_store = ${pragmas.tempStore.toUpperCase()}`);
}
db.defaultSafeIntegers(true);
};
let create = async (
directory?: string,
options?: { pragmas?: SQLitePragmaOptions },
) => {
let db: DB.Database | undefined = undefined;

@@ -54,6 +71,3 @@ let statements: Map<string, IStatement> = new Map();

// TODO this test makes things faster, but for benchmarking it might yield wierd results where some runs are faster than others
db.pragma("journal_mode = WAL");
db.pragma("foreign_keys = on");
db.defaultSafeIntegers(true);
applyPragmas(db, options?.pragmas);
};

@@ -60,0 +74,0 @@

@@ -15,2 +15,3 @@ import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";

} from "./types.js";
import type { SQLitePragmaOptions } from "./sqlite3-messages.worker.js";

@@ -187,3 +188,25 @@ export const encodeName = (name: string): string => {

const create = async (directory?: string) => {
const applyPragmas = (
db: SQLDatabase | OpfsSAHPoolDatabase,
pragmas?: SQLitePragmaOptions,
) => {
db.exec("PRAGMA journal_mode = WAL");
db.exec("PRAGMA foreign_keys = on");
// Browser SQLite state is a rebuildable materialized view over the log, so
// NORMAL is a better default tradeoff than FULL for OPFS-backed write latency.
db.exec(
`PRAGMA synchronous = ${(pragmas?.synchronous ?? "NORMAL").toUpperCase()}`,
);
if (pragmas?.lockingMode) {
db.exec(`PRAGMA locking_mode = ${pragmas.lockingMode.toUpperCase()}`);
}
if (pragmas?.tempStore && pragmas.tempStore !== "DEFAULT") {
db.exec(`PRAGMA temp_store = ${pragmas.tempStore.toUpperCase()}`);
}
};
const create = async (
directory?: string,
options?: { pragmas?: SQLitePragmaOptions },
) => {
let statements: Map<string, Statement> = new Map();

@@ -304,4 +327,3 @@

}
sqliteDb.exec("PRAGMA journal_mode = WAL");
sqliteDb.exec("PRAGMA foreign_keys = on");
applyPragmas(sqliteDb, options?.pragmas);
};

@@ -308,0 +330,0 @@

import * as messages from "./sqlite3-messages.worker.js";
import { create } from "./sqlite3.wasm.js";
const resolveValues = (
values: messages.EncodedValue[] | undefined,
profile = false,
) => {
if (!values || values.length === 0) {
return {
values: undefined,
timing: profile
? {
decodeMs: 0,
valueCount: 0,
blobValueCount: 0,
blobBytes: 0,
}
: undefined,
};
}
let blobBytes = 0;
let blobValueCount = 0;
const startedAt = profile ? performance.now() : 0;
const resolvedValues = values.map((value) => {
const resolved = messages.resolveValue(value);
if (profile && resolved instanceof Uint8Array) {
blobValueCount++;
blobBytes += resolved.byteLength;
}
return resolved;
});
return {
values: resolvedValues,
timing: profile
? {
decodeMs: performance.now() - startedAt,
valueCount: values.length,
blobValueCount,
blobBytes,
}
: undefined,
};
};
class SqliteWorkerHandler {
databases: Map<string, Awaited<ReturnType<typeof create>>> = new Map();
async create(databaseId: string, directory?: string) {
const db = await create(directory);
async create(
databaseId: string,
directory?: string,
options?: { pragmas?: messages.SQLitePragmaOptions },
) {
const db = await create(directory, options);
this.databases.set(databaseId, db);

@@ -16,13 +63,22 @@ return db;

) {
if (message.type === "create") {
await this.create(message.databaseId, message.directory);
} else {
const profile = Boolean(message.profile);
const startedAt = profile ? performance.now() : 0;
let decodeMs = 0;
let valueCount = 0;
let blobValueCount = 0;
let blobBytes = 0;
const execute = async () => {
if (message.type === "create") {
await this.create(message.databaseId, message.directory, {
pragmas: message.pragmas,
});
return undefined;
}
const db = this.databases.get(message.databaseId);
if (!db) {
if (message.type === "close") {
return; // ignore close message if database is not found
if (message.type === "close" || message.type === "drop") {
return undefined;
}
if (message.type === "drop") {
return; // ignore close message if database is not found
}
if (message.type === "status") {

@@ -39,53 +95,105 @@ return "closed";

}
if (message.type === "exec") {
return db.exec(message.sql);
} else if (message.type === "status") {
}
if (message.type === "status") {
return db.status();
} else if (message.type === "prepare") {
}
if (message.type === "prepare") {
const statementId = message.id;
await db.prepare(message.sql, message.id);
// db.statements.get(statementId) -> statement, because sqlite3.wasm stores the statement in a map like this
return statementId;
} else if (message.type === "close") {
}
if (message.type === "close") {
await db.close();
this.databases.delete(message.databaseId);
} else if (message.type === "drop") {
return undefined;
}
if (message.type === "drop") {
await db.drop();
this.databases.delete(message.databaseId);
} else if (message.type === "open") {
return undefined;
}
if (message.type === "open") {
await db.open();
this.databases.set(message.databaseId, db);
} else if (message.type === "run") {
return db.run(message.sql, message.values.map(messages.resolveValue));
} else {
const statement = db.statements.get(message.statementId);
if (!statement) {
throw new Error(
"Statement not found with id: " + message.statementId,
);
}
return undefined;
}
if (message.type === "run") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return db.run(message.sql, resolved.values ?? []);
}
if (message.type === "bind") {
return statement.bind(message.values.map(messages.resolveValue));
} else if (message.type === "finalize") {
return statement.finalize();
} else if (message.type === "reset") {
return statement.reset();
} else if (message.type === "get") {
return statement.get(
message.values
? message.values.map(messages.resolveValue)
: undefined,
);
} else if (message.type === "step") {
return statement.step();
} else if (message.type === "run-statement") {
return statement.run(message.values.map(messages.resolveValue));
} else if (message.type === "all") {
return statement.all(message.values.map(messages.resolveValue));
} else {
throw new Error("Unknown statement message type: " + message["type"]);
}
const statement = db.statements.get(message.statementId);
if (!statement) {
throw new Error("Statement not found with id: " + message.statementId);
}
}
if (message.type === "bind") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return statement.bind(resolved.values ?? []);
}
if (message.type === "finalize") {
return statement.finalize();
}
if (message.type === "reset") {
return statement.reset();
}
if (message.type === "get") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return statement.get(resolved.values);
}
if (message.type === "step") {
return statement.step();
}
if (message.type === "run-statement") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return statement.run(resolved.values ?? []);
}
if (message.type === "all") {
const resolved = resolveValues(message.values, profile);
decodeMs = resolved.timing?.decodeMs ?? 0;
valueCount = resolved.timing?.valueCount ?? 0;
blobValueCount = resolved.timing?.blobValueCount ?? 0;
blobBytes = resolved.timing?.blobBytes ?? 0;
return statement.all(resolved.values ?? []);
}
throw new Error("Unknown statement message type: " + message["type"]);
};
const execStart = profile ? performance.now() : 0;
const result = await execute();
const execMs = profile ? performance.now() - execStart - decodeMs : 0;
return {
result,
timing: profile
? {
decodeMs,
execMs,
totalMs: performance.now() - startedAt,
valueCount,
blobValueCount,
blobBytes,
}
: undefined,
};
}

@@ -100,8 +208,11 @@ }

) => {
const profile = Boolean(messageEvent.data.profile);
const startedAt = profile ? performance.now() : 0;
try {
const results = await worker.onMessage(messageEvent.data);
const response = await worker.onMessage(messageEvent.data);
self.postMessage({
type: "response",
id: messageEvent.data.id,
result: results,
result: response.result,
timing: response.timing,
});

@@ -113,2 +224,12 @@ } catch (error: any) {

message: error?.message,
timing: profile
? {
decodeMs: 0,
execMs: 0,
totalMs: performance.now() - startedAt,
valueCount: 0,
blobValueCount: 0,
blobBytes: 0,
}
: undefined,
});

@@ -115,0 +236,0 @@ }

@@ -10,1 +10,15 @@ export const isFKError = (e: any) => {

};
export const isUniqueConstraintError = (e: any) => {
return (
e?.code === "SQLITE_CONSTRAINT_PRIMARYKEY" ||
e?.code === "SQLITE_CONSTRAINT_UNIQUE" ||
e?.rc === 1555 ||
e?.rc === 2067 ||
(e?.message &&
(e.message.includes("SQLITE_CONSTRAINT_PRIMARYKEY") ||
e.message.includes("SQLITE_CONSTRAINT_UNIQUE") ||
e.message.includes("UNIQUE constraint failed") ||
e.message.includes("PRIMARY KEY constraint failed")))
);
};

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display