@enbox/dwn-sql-store 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -53
- package/dist/esm/src/data-store-sql.js +5 -5
- package/dist/esm/src/data-store-sql.js.map +1 -1
- package/dist/esm/src/dialect/bun-sqlite-adapter.js +46 -0
- package/dist/esm/src/dialect/bun-sqlite-adapter.js.map +1 -0
- package/dist/esm/src/dialect/mysql-dialect.js +1 -1
- package/dist/esm/src/dialect/mysql-dialect.js.map +1 -1
- package/dist/esm/src/dialect/postgres-dialect.js +1 -1
- package/dist/esm/src/dialect/postgres-dialect.js.map +1 -1
- package/dist/esm/src/dialect/sqlite-dialect.js +1 -1
- package/dist/esm/src/dialect/sqlite-dialect.js.map +1 -1
- package/dist/esm/src/main.js +3 -1
- package/dist/esm/src/main.js.map +1 -1
- package/dist/esm/src/message-store-sql.js +54 -25
- package/dist/esm/src/message-store-sql.js.map +1 -1
- package/dist/esm/src/resumable-task-store-sql.js +5 -6
- package/dist/esm/src/resumable-task-store-sql.js.map +1 -1
- package/dist/esm/src/smt-store-sql.js +151 -0
- package/dist/esm/src/smt-store-sql.js.map +1 -0
- package/dist/esm/src/state-index-sql.js +234 -0
- package/dist/esm/src/state-index-sql.js.map +1 -0
- package/dist/esm/src/utils/filter.js +3 -3
- package/dist/esm/src/utils/filter.js.map +1 -1
- package/dist/esm/src/utils/sanitize.js +7 -8
- package/dist/esm/src/utils/sanitize.js.map +1 -1
- package/dist/esm/src/utils/tags.js +3 -6
- package/dist/esm/src/utils/tags.js.map +1 -1
- package/dist/esm/src/utils/transaction.js +3 -21
- package/dist/esm/src/utils/transaction.js.map +1 -1
- package/dist/types/src/data-store-sql.d.ts +3 -4
- package/dist/types/src/data-store-sql.d.ts.map +1 -1
- package/dist/types/src/dialect/bun-sqlite-adapter.d.ts +33 -0
- package/dist/types/src/dialect/bun-sqlite-adapter.d.ts.map +1 -0
- package/dist/types/src/dialect/dialect.d.ts +1 -2
- package/dist/types/src/dialect/dialect.d.ts.map +1 -1
- package/dist/types/src/dialect/mysql-dialect.d.ts +3 -2
- package/dist/types/src/dialect/mysql-dialect.d.ts.map +1 -1
- package/dist/types/src/dialect/postgres-dialect.d.ts +3 -2
- package/dist/types/src/dialect/postgres-dialect.d.ts.map +1 -1
- package/dist/types/src/dialect/sqlite-dialect.d.ts +3 -2
- package/dist/types/src/dialect/sqlite-dialect.d.ts.map +1 -1
- package/dist/types/src/main.d.ts +3 -1
- package/dist/types/src/main.d.ts.map +1 -1
- package/dist/types/src/message-store-sql.d.ts +4 -3
- package/dist/types/src/message-store-sql.d.ts.map +1 -1
- package/dist/types/src/resumable-task-store-sql.d.ts +2 -2
- package/dist/types/src/resumable-task-store-sql.d.ts.map +1 -1
- package/dist/types/src/smt-store-sql.d.ts +37 -0
- package/dist/types/src/smt-store-sql.d.ts.map +1 -0
- package/dist/types/src/state-index-sql.d.ts +44 -0
- package/dist/types/src/state-index-sql.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +24 -42
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/utils/filter.d.ts +3 -3
- package/dist/types/src/utils/filter.d.ts.map +1 -1
- package/dist/types/src/utils/sanitize.d.ts +2 -2
- package/dist/types/src/utils/sanitize.d.ts.map +1 -1
- package/dist/types/src/utils/tags.d.ts +3 -5
- package/dist/types/src/utils/tags.d.ts.map +1 -1
- package/dist/types/src/utils/transaction.d.ts +4 -4
- package/dist/types/src/utils/transaction.d.ts.map +1 -1
- package/package.json +19 -31
- package/src/data-store-sql.ts +11 -9
- package/src/dialect/bun-sqlite-adapter.ts +82 -0
- package/src/dialect/dialect.ts +4 -5
- package/src/dialect/mysql-dialect.ts +8 -6
- package/src/dialect/postgres-dialect.ts +11 -6
- package/src/dialect/sqlite-dialect.ts +11 -6
- package/src/main.ts +4 -2
- package/src/message-store-sql.ts +90 -45
- package/src/resumable-task-store-sql.ts +9 -7
- package/src/smt-store-sql.ts +206 -0
- package/src/state-index-sql.ts +283 -0
- package/src/types.ts +32 -47
- package/src/utils/filter.ts +8 -6
- package/src/utils/sanitize.ts +19 -20
- package/src/utils/tags.ts +6 -7
- package/src/utils/transaction.ts +7 -23
- package/dist/cjs/main.js +0 -3784
- package/dist/cjs/package.json +0 -1
- package/dist/esm/src/event-log-sql.js +0 -169
- package/dist/esm/src/event-log-sql.js.map +0 -1
- package/dist/types/src/event-log-sql.d.ts +0 -24
- package/dist/types/src/event-log-sql.d.ts.map +0 -1
- package/src/event-log-sql.ts +0 -227
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matches Kysely's SqliteStatement interface.
|
|
3
|
+
*/
|
|
4
|
+
interface KyselySqliteStatement {
|
|
5
|
+
readonly reader: boolean;
|
|
6
|
+
all(parameters: ReadonlyArray<unknown>): unknown[];
|
|
7
|
+
run(parameters: ReadonlyArray<unknown>): {
|
|
8
|
+
changes: number | bigint;
|
|
9
|
+
lastInsertRowid: number | bigint;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Matches Kysely's SqliteDatabase interface.
|
|
14
|
+
*/
|
|
15
|
+
interface KyselySqliteDatabase {
|
|
16
|
+
close(): void;
|
|
17
|
+
prepare(sql: string): KyselySqliteStatement;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a Kysely-compatible SQLite database backed by `bun:sqlite`.
|
|
21
|
+
*
|
|
22
|
+
* @param path - File path or `":memory:"` for in-memory database.
|
|
23
|
+
* @param options - Options forwarded to `bun:sqlite`'s Database constructor.
|
|
24
|
+
* - `readonly`: Open in read-only mode.
|
|
25
|
+
* - `create`: Create the file if it doesn't exist (default: true).
|
|
26
|
+
* @returns An object implementing Kysely's `SqliteDatabase` interface.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createBunSqliteDatabase(path: string, options?: {
|
|
29
|
+
readonly?: boolean;
|
|
30
|
+
create?: boolean;
|
|
31
|
+
}): KyselySqliteDatabase;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=bun-sqlite-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun-sqlite-adapter.d.ts","sourceRoot":"","sources":["../../../../src/dialect/bun-sqlite-adapter.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;IACnD,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG;QACvC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;CAC7C;AAWD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACjD,oBAAoB,CAiCtB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ColumnBuilderCallback, ColumnDataType, CreateTableBuilder,
|
|
1
|
+
import type { ColumnBuilderCallback, ColumnDataType, CreateTableBuilder, InsertObject, InsertQueryBuilder, Kysely, Dialect as KyselyDialect, SelectExpression, Selection, Transaction } from 'kysely';
|
|
2
2
|
export interface Dialect extends KyselyDialect {
|
|
3
3
|
readonly name: string;
|
|
4
4
|
readonly isStreamingSupported: boolean;
|
|
@@ -31,7 +31,6 @@ export interface Dialect extends KyselyDialect {
|
|
|
31
31
|
*
|
|
32
32
|
* NOTE: the `returning` value must be formatted to return an insertId value.
|
|
33
33
|
* ex. if the generated key is `id` the string should be `id as insertId`.
|
|
34
|
-
* if the generated key is `watermark` the string should be `watermark as insertId`.
|
|
35
34
|
*
|
|
36
35
|
* @returns {InsertQueryBuilder} object to further modify the query or execute it.
|
|
37
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../../src/dialect/dialect.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../../src/dialect/dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,OAAO,IAAI,aAAa,EACxB,gBAAgB,EAChB,SAAS,EACT,WAAW,EACZ,MAAM,QAAQ,CAAC;AAEhB,MAAM,WAAW,OAAQ,SAAQ,aAAa;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IAEvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/D,yBAAyB,CAAC,EAAE,SAAS,MAAM,EACzC,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAE1B,aAAa,CAAC,EAAE,SAAS,MAAM,EAC7B,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAE1B;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EACnC,OAAO,EAAE,kBAAkB,CAAC,EAAE,GAAG,MAAM,CAAC,EACxC,SAAS,EAAE,EAAE,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,EAC1B,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAChF,kBAAkB,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IAEnC;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,EACvG,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAChC,KAAK,EAAE,EAAE,GAAG,MAAM,EAClB,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EACrC,SAAS,EAAE,EAAE,GAAG,GAAG,MAAM,cAAc,GACtC,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,cAAc,CAAC,CAAC,CAAC;CAClG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Dialect } from './dialect.js';
|
|
2
|
-
import { AnyColumn, ColumnDataType, CreateTableBuilder,
|
|
1
|
+
import type { Dialect } from './dialect.js';
|
|
2
|
+
import type { AnyColumn, ColumnBuilderCallback, ColumnDataType, CreateTableBuilder, InsertObject, InsertQueryBuilder, Kysely, SelectExpression, Selection, Transaction } from 'kysely';
|
|
3
|
+
import { MysqlDialect as KyselyMysqlDialect } from 'kysely';
|
|
3
4
|
export declare class MysqlDialect extends KyselyMysqlDialect implements Dialect {
|
|
4
5
|
name: string;
|
|
5
6
|
isStreamingSupported: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql-dialect.d.ts","sourceRoot":"","sources":["../../../../src/dialect/mysql-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"mysql-dialect.d.ts","sourceRoot":"","sources":["../../../../src/dialect/mysql-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EACL,YAAY,IAAI,kBAAkB,EACnC,MAAM,QAAQ,CAAC;AAEhB,qBAAa,YAAa,SAAQ,kBAAmB,YAAW,OAAO;IACrE,IAAI,SAAW;IACf,oBAAoB,UAAQ;IAEtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpE,yBAAyB,CAAC,EAAE,SAAS,MAAM,EACzC,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,kBAAkB,CAAC,EAAE,CAAC;IAUzB,aAAa,CAAC,EAAE,SAAS,MAAM,EAC7B,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,kBAAkB,CAAC,EAAE,CAAC;IAIzB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EACnC,OAAO,EAAE,kBAAkB,CAAC,EAAE,GAAG,MAAM,CAAC,EACxC,SAAS,EAAE,EAAE,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,EAC1B,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAChF,kBAAkB,CAAC,EAAE,GAAG,MAAM,CAAC;IAYlC,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EACrH,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAChC,KAAK,EAAE,EAAE,GAAG,MAAM,EAClB,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EACrC,UAAU,EAAE,EAAE,GAAG,GAAG,MAAM,cAAc,GACvC,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,cAAc,CAAC,CAAC;CAGjG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Dialect } from './dialect.js';
|
|
2
|
-
import {
|
|
1
|
+
import type { Dialect } from './dialect.js';
|
|
2
|
+
import type { ColumnBuilderCallback, ColumnDataType, CreateTableBuilder, InsertObject, InsertQueryBuilder, Kysely, SelectExpression, Selection, Transaction } from 'kysely';
|
|
3
|
+
import { PostgresDialect as KyselyPostgresDialect } from 'kysely';
|
|
3
4
|
export declare class PostgresDialect extends KyselyPostgresDialect implements Dialect {
|
|
4
5
|
name: string;
|
|
5
6
|
isStreamingSupported: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-dialect.d.ts","sourceRoot":"","sources":["../../../../src/dialect/postgres-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres-dialect.d.ts","sourceRoot":"","sources":["../../../../src/dialect/postgres-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EACL,eAAe,IAAI,qBAAqB,EACzC,MAAM,QAAQ,CAAC;AAEhB,qBAAa,eAAgB,SAAQ,qBAAsB,YAAW,OAAO;IAC3E,IAAI,SAAgB;IACpB,oBAAoB,UAAQ;IAEtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpE,yBAAyB,CAAC,EAAE,SAAS,MAAM,EACzC,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,kBAAkB,CAAC,EAAE,CAAC;IAIzB,aAAa,CAAC,EAAE,SAAS,MAAM,EAC7B,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,kBAAkB,CAAC,EAAE,CAAC;IAIzB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EACnC,OAAO,EAAE,kBAAkB,CAAC,EAAE,GAAG,MAAM,CAAC,EACxC,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,EAC1B,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAChF,kBAAkB,CAAC,EAAE,GAAG,MAAM,CAAC;IAOlC,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,EACvG,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAChC,KAAK,EAAE,EAAE,GAAG,MAAM,EAClB,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EACrC,SAAS,EAAE,EAAE,GAAG,GAAG,MAAM,cAAc,GACtC,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,cAAc,CAAC,CAAC;CAIjG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Dialect } from './dialect.js';
|
|
2
|
-
import { ColumnBuilderCallback, ColumnDataType, CreateTableBuilder,
|
|
1
|
+
import type { Dialect } from './dialect.js';
|
|
2
|
+
import type { ColumnBuilderCallback, ColumnDataType, CreateTableBuilder, InsertObject, InsertQueryBuilder, Kysely, SelectExpression, Selection, Transaction } from 'kysely';
|
|
3
|
+
import { SqliteDialect as KyselySqliteDialect } from 'kysely';
|
|
3
4
|
export declare class SqliteDialect extends KyselySqliteDialect implements Dialect {
|
|
4
5
|
name: string;
|
|
5
6
|
isStreamingSupported: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-dialect.d.ts","sourceRoot":"","sources":["../../../../src/dialect/sqlite-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-dialect.d.ts","sourceRoot":"","sources":["../../../../src/dialect/sqlite-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EACL,aAAa,IAAI,mBAAmB,EACrC,MAAM,QAAQ,CAAC;AAEhB,qBAAa,aAAc,SAAQ,mBAAoB,YAAW,OAAO;IACvE,IAAI,SAAY;IAChB,oBAAoB,UAAS;IAEvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWpE,yBAAyB,CAAC,EAAE,SAAS,MAAM,EACzC,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,kBAAkB,CAAC,EAAE,CAAC;IAUzB,aAAa,CAAC,EAAE,SAAS,MAAM,EAC7B,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,kBAAkB,CAAC,EAAE,CAAC;IAIzB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EACnC,OAAO,EAAE,kBAAkB,CAAC,EAAE,GAAG,MAAM,CAAC,EACxC,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,EAC1B,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAChF,kBAAkB,CAAC,EAAE,GAAG,MAAM,CAAC;IAOlC,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,EACvG,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAChC,KAAK,EAAE,EAAE,GAAG,MAAM,EAClB,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EACrC,SAAS,EAAE,EAAE,GAAG,GAAG,MAAM,cAAc,GACtC,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,cAAc,CAAC,CAAC;CAGjG"}
|
package/dist/types/src/main.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export * from './dialect/dialect.js';
|
|
2
|
+
export * from './dialect/bun-sqlite-adapter.js';
|
|
2
3
|
export * from './dialect/mysql-dialect.js';
|
|
3
4
|
export * from './dialect/postgres-dialect.js';
|
|
4
5
|
export * from './dialect/sqlite-dialect.js';
|
|
5
6
|
export * from './data-store-sql.js';
|
|
6
|
-
export * from './
|
|
7
|
+
export * from './state-index-sql.js';
|
|
7
8
|
export * from './message-store-sql.js';
|
|
8
9
|
export * from './resumable-task-store-sql.js';
|
|
10
|
+
export * from './smt-store-sql.js';
|
|
9
11
|
//# sourceMappingURL=main.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Dialect } from './dialect/dialect.js';
|
|
2
|
+
import type { KeyValues } from './types.js';
|
|
3
|
+
import type { Filter, GenericMessage, MessageSort, MessageStore, MessageStoreOptions, Pagination, PaginationCursor } from '@enbox/dwn-sdk-js';
|
|
2
4
|
import { Kysely } from 'kysely';
|
|
3
|
-
import { KeyValues } from './types.js';
|
|
4
|
-
import { Dialect } from './dialect/dialect.js';
|
|
5
5
|
export declare class MessageStoreSql implements MessageStore {
|
|
6
6
|
#private;
|
|
7
7
|
constructor(dialect: Dialect);
|
|
@@ -24,6 +24,7 @@ export declare class MessageStoreSql implements MessageStore {
|
|
|
24
24
|
messages: GenericMessage[];
|
|
25
25
|
cursor?: PaginationCursor;
|
|
26
26
|
}>;
|
|
27
|
+
count(tenant: string, filters: Filter[], messageSort?: MessageSort, options?: MessageStoreOptions): Promise<number>;
|
|
27
28
|
delete(tenant: string, cid: string, options?: MessageStoreOptions): Promise<void>;
|
|
28
29
|
clear(): Promise<void>;
|
|
29
30
|
private parseEncodedMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-store-sql.d.ts","sourceRoot":"","sources":["../../../src/message-store-sql.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"message-store-sql.d.ts","sourceRoot":"","sources":["../../../src/message-store-sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,MAAM,EACN,cAAc,EACd,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAe9C,OAAO,EAAE,MAAM,EAAO,MAAM,QAAQ,CAAC;AAGrC,qBAAa,eAAgB,YAAW,YAAY;;gBAKtC,OAAO,EAAE,OAAO;IAKtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4G3B;;;;;OAKG;IACG,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,GAAG,CACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAyChB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAoC9B,GAAG,CACP,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IA0BhC,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAC,CAAC;IA6D9D,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAsBZ,MAAM,CACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAmBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAYd,mBAAmB;IAuBjC;;;;;;;;;OASG;YACW,wBAAwB;IAsBtC;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAa9B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Dialect } from './dialect/dialect.js';
|
|
2
|
-
import { ManagedResumableTask, ResumableTaskStore } from '@enbox/dwn-sdk-js';
|
|
1
|
+
import type { Dialect } from './dialect/dialect.js';
|
|
2
|
+
import type { ManagedResumableTask, ResumableTaskStore } from '@enbox/dwn-sdk-js';
|
|
3
3
|
export declare class ResumableTaskStoreSql implements ResumableTaskStore {
|
|
4
4
|
#private;
|
|
5
5
|
private static readonly taskTimeoutInSeconds;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resumable-task-store-sql.d.ts","sourceRoot":"","sources":["../../../src/resumable-task-store-sql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resumable-task-store-sql.d.ts","sourceRoot":"","sources":["../../../src/resumable-task-store-sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAMlF,qBAAa,qBAAsB,YAAW,kBAAkB;;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAM;gBAKtC,OAAO,EAAE,OAAO;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoB5E,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA0CpD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAsB/D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQL-backed implementation of SMTNodeStore.
|
|
3
|
+
*
|
|
4
|
+
* Storage layout:
|
|
5
|
+
* - Nodes are stored in the `stateIndexNodes` table, keyed by hex-encoded hash
|
|
6
|
+
* - The root hash is stored in the `stateIndexRoots` table
|
|
7
|
+
* - Node values are serialized with Uint8Array fields encoded as hex strings
|
|
8
|
+
*
|
|
9
|
+
* Each SMTStoreSql instance represents a single tree (identified by a tenant + scope key).
|
|
10
|
+
* Multiple instances share the same underlying Kysely database connection.
|
|
11
|
+
*/
|
|
12
|
+
import type { DwnDatabaseType } from './types.js';
|
|
13
|
+
import type { Kysely } from 'kysely';
|
|
14
|
+
import type { Hash, SMTNode, SMTNodeStore } from '@enbox/dwn-sdk-js';
|
|
15
|
+
export type SMTStoreSqlParams = {
|
|
16
|
+
/** The shared Kysely database instance. */
|
|
17
|
+
db: Kysely<DwnDatabaseType>;
|
|
18
|
+
/** The tenant DID that owns this tree. */
|
|
19
|
+
tenant: string;
|
|
20
|
+
/** The scope key for this tree (e.g. '' for global, protocol URI for protocol-scoped). */
|
|
21
|
+
scope: string;
|
|
22
|
+
};
|
|
23
|
+
export declare class SMTStoreSql implements SMTNodeStore {
|
|
24
|
+
#private;
|
|
25
|
+
constructor({ db, tenant, scope }: SMTStoreSqlParams);
|
|
26
|
+
open(): Promise<void>;
|
|
27
|
+
close(): Promise<void>;
|
|
28
|
+
clear(): Promise<void>;
|
|
29
|
+
getNode(hash: Hash): Promise<SMTNode | undefined>;
|
|
30
|
+
putNode(hash: Hash, node: SMTNode): Promise<void>;
|
|
31
|
+
deleteNode(hash: Hash): Promise<void>;
|
|
32
|
+
getRoot(): Promise<Hash | undefined>;
|
|
33
|
+
setRoot(hash: Hash): Promise<void>;
|
|
34
|
+
private serializeNodeToRow;
|
|
35
|
+
private deserializeNode;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=smt-store-sql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smt-store-sql.d.ts","sourceRoot":"","sources":["../../../src/smt-store-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,IAAI,EAAgC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInG,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5B,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,WAAY,YAAW,YAAY;;gBAKlC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,iBAAiB;IAM9C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAkBjD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAepC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxC,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,eAAe;CAuBxB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQL-backed implementation of the StateIndex interface.
|
|
3
|
+
*
|
|
4
|
+
* Manages per-tenant Sparse Merkle Trees (global + per-protocol sub-trees) backed by SQL tables.
|
|
5
|
+
*
|
|
6
|
+
* Tables:
|
|
7
|
+
* - `stateIndexNodes`: stores SMT nodes (internal + leaf), keyed by (tenant, scope, nodeHash)
|
|
8
|
+
* - `stateIndexRoots`: stores the current root hash per (tenant, scope)
|
|
9
|
+
* - `stateIndexMeta`: reverse lookup from messageCid → protocol (for deletion)
|
|
10
|
+
*/
|
|
11
|
+
import type { Dialect } from './dialect/dialect.js';
|
|
12
|
+
import type { Hash } from '@enbox/dwn-sdk-js';
|
|
13
|
+
import type { KeyValues } from '@enbox/dwn-sdk-js';
|
|
14
|
+
import type { StateIndex } from '@enbox/dwn-sdk-js';
|
|
15
|
+
export declare class StateIndexSql implements StateIndex {
|
|
16
|
+
#private;
|
|
17
|
+
constructor(dialect: Dialect);
|
|
18
|
+
open(): Promise<void>;
|
|
19
|
+
close(): Promise<void>;
|
|
20
|
+
clear(): Promise<void>;
|
|
21
|
+
insert(tenant: string, messageCid: string, indexes: KeyValues): Promise<void>;
|
|
22
|
+
delete(tenant: string, messageCids: string[]): Promise<void>;
|
|
23
|
+
getRoot(tenant: string): Promise<Hash>;
|
|
24
|
+
getProtocolRoot(tenant: string, protocol: string): Promise<Hash>;
|
|
25
|
+
getSubtreeHash(tenant: string, prefix: boolean[]): Promise<Hash>;
|
|
26
|
+
getProtocolSubtreeHash(tenant: string, protocol: string, prefix: boolean[]): Promise<Hash>;
|
|
27
|
+
getLeaves(tenant: string, prefix: boolean[]): Promise<string[]>;
|
|
28
|
+
getProtocolLeaves(tenant: string, protocol: string, prefix: boolean[]): Promise<string[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Get or create the global SMT for a tenant.
|
|
31
|
+
* Uses a promise-based cache to prevent concurrent callers from racing.
|
|
32
|
+
*/
|
|
33
|
+
private getGlobalTree;
|
|
34
|
+
/**
|
|
35
|
+
* Get or create a protocol-scoped SMT for a tenant.
|
|
36
|
+
* Uses a promise-based cache to prevent concurrent callers from racing.
|
|
37
|
+
*/
|
|
38
|
+
private getProtocolTree;
|
|
39
|
+
/**
|
|
40
|
+
* Create and initialize a new SparseMerkleTree backed by SQL via SMTStoreSql.
|
|
41
|
+
*/
|
|
42
|
+
private createTree;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=state-index-sql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-index-sql.d.ts","sourceRoot":"","sources":["../../../src/state-index-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD,qBAAa,aAAc,YAAW,UAAU;;gBAiBlC,OAAO,EAAE,OAAO;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2ErB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC5D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1F,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK/D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAO/F;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;YACW,UAAU;CAWzB"}
|
|
@@ -1,36 +1,6 @@
|
|
|
1
1
|
import type { Generated } from 'kysely';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
type EventLogTable = {
|
|
6
|
-
watermark: Generated<number>;
|
|
7
|
-
tenant: string;
|
|
8
|
-
messageCid: string;
|
|
9
|
-
interface: string | null;
|
|
10
|
-
method: string | null;
|
|
11
|
-
schema: string | null;
|
|
12
|
-
dataCid: string | null;
|
|
13
|
-
dataSize: number | null;
|
|
14
|
-
dateCreated: string | null;
|
|
15
|
-
messageTimestamp: string | null;
|
|
16
|
-
dataFormat: string | null;
|
|
17
|
-
isLatestBaseState: boolean | null;
|
|
18
|
-
published: boolean | null;
|
|
19
|
-
author: string | null;
|
|
20
|
-
recordId: string | null;
|
|
21
|
-
entryId: string | null;
|
|
22
|
-
datePublished: string | null;
|
|
23
|
-
latest: string | null;
|
|
24
|
-
protocol: string | null;
|
|
25
|
-
permissionsRequestId: string | null;
|
|
26
|
-
attester: string | null;
|
|
27
|
-
protocolPath: string | null;
|
|
28
|
-
recipient: string | null;
|
|
29
|
-
contextId: string | null;
|
|
30
|
-
parentId: string | null;
|
|
31
|
-
permissionGrantId: string | null;
|
|
32
|
-
prune: boolean | null;
|
|
33
|
-
};
|
|
2
|
+
import type { KeyValues } from '@enbox/dwn-sdk-js';
|
|
3
|
+
export type { KeyValues };
|
|
34
4
|
type MessageStoreTable = {
|
|
35
5
|
id: Generated<number>;
|
|
36
6
|
tenant: string;
|
|
@@ -52,7 +22,6 @@ type MessageStoreTable = {
|
|
|
52
22
|
entryId: string | null;
|
|
53
23
|
datePublished: string | null;
|
|
54
24
|
protocol: string | null;
|
|
55
|
-
permissionsRequestId: string | null;
|
|
56
25
|
attester: string | null;
|
|
57
26
|
protocolPath: string | null;
|
|
58
27
|
recipient: string | null;
|
|
@@ -68,12 +37,25 @@ type MessageStoreRecordsTagsTable = {
|
|
|
68
37
|
valueString: string | null;
|
|
69
38
|
valueNumber: number | null;
|
|
70
39
|
};
|
|
71
|
-
type
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
40
|
+
type StateIndexNodeTable = {
|
|
41
|
+
tenant: string;
|
|
42
|
+
scope: string;
|
|
43
|
+
nodeHash: string;
|
|
44
|
+
nodeType: string;
|
|
45
|
+
leftHash: string | null;
|
|
46
|
+
rightHash: string | null;
|
|
47
|
+
leafKeyHash: string | null;
|
|
48
|
+
leafValueCid: string | null;
|
|
49
|
+
};
|
|
50
|
+
type StateIndexRootTable = {
|
|
51
|
+
tenant: string;
|
|
52
|
+
scope: string;
|
|
53
|
+
rootHash: string;
|
|
54
|
+
};
|
|
55
|
+
type StateIndexMetaTable = {
|
|
56
|
+
tenant: string;
|
|
57
|
+
messageCid: string;
|
|
58
|
+
protocol: string | null;
|
|
77
59
|
};
|
|
78
60
|
type DataStoreTable = {
|
|
79
61
|
id: Generated<number>;
|
|
@@ -89,12 +71,12 @@ type ResumableTaskTable = {
|
|
|
89
71
|
retryCount: number;
|
|
90
72
|
};
|
|
91
73
|
export type DwnDatabaseType = {
|
|
92
|
-
eventLogMessages: EventLogTable;
|
|
93
|
-
eventLogRecordsTags: EventLogRecordsTagsTable;
|
|
94
74
|
messageStoreMessages: MessageStoreTable;
|
|
95
75
|
messageStoreRecordsTags: MessageStoreRecordsTagsTable;
|
|
96
76
|
dataStore: DataStoreTable;
|
|
97
77
|
resumableTasks: ResumableTaskTable;
|
|
78
|
+
stateIndexNodes: StateIndexNodeTable;
|
|
79
|
+
stateIndexRoots: StateIndexRootTable;
|
|
80
|
+
stateIndexMeta: StateIndexMetaTable;
|
|
98
81
|
};
|
|
99
|
-
export {};
|
|
100
82
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { DwnDatabaseType } from '../types.js';
|
|
2
|
+
import type { Filter } from '@enbox/dwn-sdk-js';
|
|
3
|
+
import type { SelectQueryBuilder } from 'kysely';
|
|
4
4
|
/**
|
|
5
5
|
* Takes multiple Filters and returns a single query.
|
|
6
6
|
* Each filter is evaluated as an OR operation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/utils/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/utils/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAwC,kBAAkB,EAAW,MAAM,QAAQ,CAAC;AAKhG;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,GAAG,eAAe,EAAE,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,GAAG,OAAO,EACjG,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACnC,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAe/B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '@enbox/dwn-sdk-js';
|
|
2
|
-
import { KeyValues } from '../types.js';
|
|
1
|
+
import type { Filter } from '@enbox/dwn-sdk-js';
|
|
2
|
+
import type { KeyValues } from '../types.js';
|
|
3
3
|
export declare function extractTagsAndSanitizeIndexes(records: KeyValues): {
|
|
4
4
|
tags: KeyValues;
|
|
5
5
|
indexes: KeyValues;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,SAAS,GAAG;IACjE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,SAAS,CAAC;CACpB,CAkBA;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAcxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAOhF;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,EAAE,CA0BF;AAID;;;;EAIE;AACF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAOnD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAEvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrD"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { Transaction } from 'kysely';
|
|
1
|
+
import type { Transaction } from 'kysely';
|
|
2
2
|
import type { DwnDatabaseType, KeyValues } from '../types.js';
|
|
3
|
-
import { Dialect } from '../dialect/dialect.js';
|
|
3
|
+
import type { Dialect } from '../dialect/dialect.js';
|
|
4
4
|
/**
|
|
5
5
|
* Helper class to manage adding indexes for `RecordsWrite` messages which contain `tags`.
|
|
6
6
|
*/
|
|
7
7
|
export declare class TagTables {
|
|
8
8
|
private dialect;
|
|
9
|
-
private table;
|
|
10
9
|
/**
|
|
11
10
|
* @param dialect the target dialect, necessary for returning the `insertId`
|
|
12
|
-
* @param table the DB Table in order to index the tags and values in the correct tables. Choice between `messageStoreMessages` and `eventLogMessages`
|
|
13
11
|
*/
|
|
14
|
-
constructor(dialect: Dialect
|
|
12
|
+
constructor(dialect: Dialect);
|
|
15
13
|
/**
|
|
16
14
|
* Inserts the given tags associated with the given foreign `insertId`.
|
|
17
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../../src/utils/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../../src/utils/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;GAEG;AACH,qBAAa,SAAS;IAKR,OAAO,CAAC,OAAO;IAH3B;;OAEG;gBACiB,OAAO,EAAE,OAAO;IAEpC;;OAEG;IACG,iBAAiB,CACrB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;CAoBhB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DwnDatabaseType } from '../types.js';
|
|
2
|
-
import { Kysely, Transaction } from 'kysely';
|
|
1
|
+
import type { DwnDatabaseType } from '../types.js';
|
|
2
|
+
import type { Kysely, Transaction } from 'kysely';
|
|
3
3
|
/**
|
|
4
|
-
* Executes the provided
|
|
4
|
+
* Executes the provided operation atomically within a database transaction.
|
|
5
5
|
*/
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function executeWithTransaction(database: Kysely<DwnDatabaseType>, operation: (transaction: Transaction<DwnDatabaseType>) => Promise<void>): Promise<void>;
|
|
7
7
|
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAElD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,EACjC,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GACtE,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enbox/dwn-sql-store",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "SQL backed implementations of DWN MessageStore, DataStore, and
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "SQL backed implementations of DWN MessageStore, DataStore, and StateIndex",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"homepage": "https://github.com/enboxorg/enbox/tree/main/packages/dwn-sql-store#readme",
|
|
@@ -14,65 +14,53 @@
|
|
|
14
14
|
"publishConfig": {
|
|
15
15
|
"access": "public"
|
|
16
16
|
},
|
|
17
|
-
"main": "./dist/
|
|
17
|
+
"main": "./dist/esm/src/main.js",
|
|
18
18
|
"module": "./dist/esm/src/main.js",
|
|
19
19
|
"types": "./dist/types/src/main.d.ts",
|
|
20
20
|
"exports": {
|
|
21
21
|
"import": "./dist/esm/src/main.js",
|
|
22
|
-
"require": "./dist/cjs/main.js",
|
|
23
22
|
"types": "./dist/types/src/main.d.ts"
|
|
24
23
|
},
|
|
25
24
|
"react-native": "./dist/esm/src/main.js",
|
|
26
25
|
"dependencies": {
|
|
27
|
-
"@enbox/dwn-sdk-js": "
|
|
26
|
+
"@enbox/dwn-sdk-js": "0.0.3",
|
|
28
27
|
"@ipld/dag-cbor": "9.0.5",
|
|
29
28
|
"kysely": "0.26.3",
|
|
30
|
-
"multiformats": "12.0.1"
|
|
31
|
-
"readable-stream": "4.4.2"
|
|
29
|
+
"multiformats": "12.0.1"
|
|
32
30
|
},
|
|
33
31
|
"devDependencies": {
|
|
34
|
-
"@types/
|
|
35
|
-
"@types/chai": "4.3.4",
|
|
36
|
-
"@types/chai-as-promised": "7.1.5",
|
|
32
|
+
"@types/bun": "latest",
|
|
37
33
|
"@types/express": "4.17.17",
|
|
38
|
-
"@types/
|
|
39
|
-
"@types/node": "20.3.1",
|
|
34
|
+
"@types/node": "20.14.8",
|
|
40
35
|
"@types/pg": "8.10.2",
|
|
41
36
|
"@types/pg-cursor": "2.7.0",
|
|
42
|
-
"@types/readable-stream": "4.0.6",
|
|
43
37
|
"@types/supertest": "2.0.12",
|
|
44
|
-
"@typescript-eslint/eslint-plugin": "
|
|
45
|
-
"@typescript-eslint/parser": "
|
|
46
|
-
"
|
|
47
|
-
"c8": "8.0.0",
|
|
48
|
-
"chai": "4.3.6",
|
|
49
|
-
"chai-as-promised": "7.1.1",
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "8.32.1",
|
|
39
|
+
"@typescript-eslint/parser": "8.32.1",
|
|
40
|
+
"bun-types": "latest",
|
|
50
41
|
"esbuild": "^0.19.3",
|
|
51
|
-
"eslint": "
|
|
52
|
-
"mocha": "10.2.0",
|
|
42
|
+
"eslint": "9.7.0",
|
|
53
43
|
"mysql2": "3.9.8",
|
|
54
44
|
"pg": "8.11.1",
|
|
55
45
|
"pg-cursor": "2.10.1",
|
|
56
46
|
"rimraf": "5.0.1",
|
|
57
|
-
"
|
|
58
|
-
"typescript": "5.0.4"
|
|
47
|
+
"typescript": "5.5.4"
|
|
59
48
|
},
|
|
60
49
|
"scripts": {
|
|
61
|
-
"build:esm": "
|
|
62
|
-
"build
|
|
63
|
-
"build": "pnpm clean && pnpm build:esm && pnpm build:cjs",
|
|
50
|
+
"build:esm": "bun run clean && tsc",
|
|
51
|
+
"build": "bun run clean && bun run build:esm",
|
|
64
52
|
"clean": "rimraf dist compiled",
|
|
65
|
-
"lint": "eslint . --
|
|
66
|
-
"lint:fix": "eslint . --
|
|
67
|
-
"test": "
|
|
68
|
-
"test
|
|
53
|
+
"lint": "eslint . --max-warnings 0",
|
|
54
|
+
"lint:fix": "eslint . --fix",
|
|
55
|
+
"test": "bun test .spec.ts",
|
|
56
|
+
"test:node:coverage": "bun test --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage .spec.ts"
|
|
69
57
|
},
|
|
70
58
|
"files": [
|
|
71
59
|
"dist",
|
|
72
60
|
"src"
|
|
73
61
|
],
|
|
74
62
|
"engines": {
|
|
75
|
-
"
|
|
63
|
+
"bun": ">=1.0.0"
|
|
76
64
|
},
|
|
77
65
|
"contributors": [
|
|
78
66
|
{
|