@enbox/dwn-sql-store 0.0.2 → 0.0.4
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 +24 -36
- 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
package/README.md
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
# DWN SQL Stores
|
|
1
|
+
# DWN SQL Stores
|
|
2
|
+
|
|
3
|
+
> **Research Preview** — Enbox is under active development. APIs may change without notice.
|
|
2
4
|
|
|
3
5
|
[](https://www.npmjs.com/package/@enbox/dwn-sql-store)
|
|
4
|
-
[](https://github.com/enboxorg/enbox/
|
|
6
|
+
[](https://github.com/enboxorg/enbox/actions/workflows/ci.yml)
|
|
7
|
+
[](https://github.com/enboxorg/enbox/actions/workflows/ci.yml)
|
|
8
|
+
[](https://github.com/enboxorg/enbox/blob/main/LICENSE)
|
|
7
9
|
[](https://discord.com/channels/937858703112155166/969272658501976117)
|
|
8
10
|
|
|
9
11
|
|
|
10
|
-
SQL backed implementations of DWN `MessageStore`, `DataStore`, and `
|
|
12
|
+
SQL backed implementations of DWN `MessageStore`, `DataStore`, and `StateIndex`.
|
|
11
13
|
|
|
12
14
|
- [Supported DBs](#supported-dbs)
|
|
13
15
|
- [Installation](#installation)
|
|
@@ -17,10 +19,10 @@ SQL backed implementations of DWN `MessageStore`, `DataStore`, and `EventLog`.
|
|
|
17
19
|
- [PostgreSQL](#postgresql)
|
|
18
20
|
- [Development](#development)
|
|
19
21
|
- [Prerequisites](#prerequisites)
|
|
20
|
-
- [
|
|
22
|
+
- [Bun](#bun)
|
|
21
23
|
- [Docker](#docker)
|
|
22
24
|
- [Running Tests](#running-tests)
|
|
23
|
-
- [
|
|
25
|
+
- [Scripts](#scripts)
|
|
24
26
|
|
|
25
27
|
|
|
26
28
|
# Supported DBs
|
|
@@ -34,7 +36,7 @@ See [SQL Dialect Variations](sql-dialect-variations) for the list of special han
|
|
|
34
36
|
# Installation
|
|
35
37
|
|
|
36
38
|
```bash
|
|
37
|
-
|
|
39
|
+
bun add @enbox/dwn-sql-store
|
|
38
40
|
```
|
|
39
41
|
|
|
40
42
|
# Usage
|
|
@@ -42,22 +44,18 @@ npm install @enbox/dwn-sql-store
|
|
|
42
44
|
## SQLite
|
|
43
45
|
|
|
44
46
|
```typescript
|
|
45
|
-
import Database from 'better-sqlite3';
|
|
46
|
-
|
|
47
47
|
import { Dwn } from '@enbox/dwn-sdk-js'
|
|
48
|
-
import { SqliteDialect, MessageStoreSql, DataStoreSql,
|
|
48
|
+
import { createBunSqliteDatabase, SqliteDialect, MessageStoreSql, DataStoreSql, StateIndexSql } from '@enbox/dwn-sql-store';
|
|
49
49
|
|
|
50
50
|
const sqliteDialect = new SqliteDialect({
|
|
51
|
-
database: async () =>
|
|
52
|
-
fileMustExist: true,
|
|
53
|
-
})
|
|
51
|
+
database: async () => createBunSqliteDatabase('dwn.sqlite'),
|
|
54
52
|
});
|
|
55
53
|
|
|
56
54
|
const messageStore = new MessageStoreSql(sqliteDialect);
|
|
57
55
|
const dataStore = new DataStoreSql(sqliteDialect);
|
|
58
|
-
const
|
|
56
|
+
const stateIndex = new StateIndexSql(sqliteDialect);
|
|
59
57
|
|
|
60
|
-
const dwn = await Dwn.create({ messageStore, dataStore,
|
|
58
|
+
const dwn = await Dwn.create({ messageStore, dataStore, stateIndex });
|
|
61
59
|
```
|
|
62
60
|
|
|
63
61
|
## MySQL
|
|
@@ -65,7 +63,7 @@ const dwn = await Dwn.create({ messageStore, dataStore, eventLog });
|
|
|
65
63
|
```typescript
|
|
66
64
|
import { createPool } from 'mysql2';
|
|
67
65
|
import { Dwn } from '@enbox/dwn-sdk-js'
|
|
68
|
-
import { MysqlDialect, MessageStoreSql, DataStoreSql,
|
|
66
|
+
import { MysqlDialect, MessageStoreSql, DataStoreSql, StateIndexSql } from '@enbox/dwn-sql-store';
|
|
69
67
|
|
|
70
68
|
const mysqlDialect = new MysqlDialect({
|
|
71
69
|
pool: async () => createPool({
|
|
@@ -79,9 +77,9 @@ const mysqlDialect = new MysqlDialect({
|
|
|
79
77
|
|
|
80
78
|
const messageStore = new MessageStoreSql(mysqlDialect);
|
|
81
79
|
const dataStore = new DataStoreSql(mysqlDialect);
|
|
82
|
-
const
|
|
80
|
+
const stateIndex = new StateIndexSql(mysqlDialect);
|
|
83
81
|
|
|
84
|
-
const dwn = await Dwn.create({ messageStore, dataStore,
|
|
82
|
+
const dwn = await Dwn.create({ messageStore, dataStore, stateIndex });
|
|
85
83
|
```
|
|
86
84
|
|
|
87
85
|
## PostgreSQL
|
|
@@ -111,7 +109,7 @@ import pg from 'pg';
|
|
|
111
109
|
import Cursor from 'pg-cursor';
|
|
112
110
|
|
|
113
111
|
import { Dwn } from '@enbox/dwn-sdk-js'
|
|
114
|
-
import { PostgresDialect, MessageStoreSql, DataStoreSql,
|
|
112
|
+
import { PostgresDialect, MessageStoreSql, DataStoreSql, StateIndexSql } from '@enbox/dwn-sql-store';
|
|
115
113
|
|
|
116
114
|
const postgresDialect = new PostgresDialect({
|
|
117
115
|
pool: async () => new pg.Pool({
|
|
@@ -126,28 +124,16 @@ const postgresDialect = new PostgresDialect({
|
|
|
126
124
|
|
|
127
125
|
const messageStore = new MessageStoreSql(postgresDialect);
|
|
128
126
|
const dataStore = new DataStoreSql(postgresDialect);
|
|
129
|
-
const
|
|
127
|
+
const stateIndex = new StateIndexSql(postgresDialect);
|
|
130
128
|
|
|
131
|
-
const dwn = await Dwn.create({ messageStore, dataStore,
|
|
129
|
+
const dwn = await Dwn.create({ messageStore, dataStore, stateIndex });
|
|
132
130
|
```
|
|
133
131
|
|
|
134
132
|
# Development
|
|
135
133
|
|
|
136
134
|
## Prerequisites
|
|
137
|
-
###
|
|
138
|
-
This project
|
|
139
|
-
`v18` and `v20` and NPM `v9`. You can verify your `node` and `npm` installation via the terminal:
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
$ node --version
|
|
143
|
-
v20.3.0
|
|
144
|
-
$ npm --version
|
|
145
|
-
9.6.7
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
If you don't have `node` installed. Feel free to choose whichever approach you feel the most comfortable with. If you don't have a preferred installation method, i'd recommend using `nvm` (aka node version manager). `nvm` allows you to install and use different versions of node. It can be installed by running `brew install nvm` (assuming that you have homebrew)
|
|
149
|
-
|
|
150
|
-
Once you have installed `nvm`, install the desired node version with `nvm install vX.Y.Z`.
|
|
135
|
+
### Bun
|
|
136
|
+
This project uses [Bun](https://bun.sh) >= 1.0 as its runtime and package manager.
|
|
151
137
|
|
|
152
138
|
### Docker
|
|
153
139
|
Docker is used to spin up a local containerized DBs for testing purposes. Docker from [here](https://docs.docker.com/engine/install/)
|
|
@@ -156,23 +142,20 @@ Docker is used to spin up a local containerized DBs for testing purposes. Docker
|
|
|
156
142
|
> 💡 Make sure you have all the [prerequisites](#prerequisites)
|
|
157
143
|
|
|
158
144
|
0. clone the repo and `cd` into the project directory
|
|
159
|
-
1. Install all project dependencies by running `
|
|
145
|
+
1. Install all project dependencies by running `bun install`
|
|
160
146
|
2. Start docker
|
|
161
147
|
> NOTE: You might need to delete the existing PostgreSQL and MySQL docker containers as well as `dwn.sqlite` file when a breaking change is introduced if you see tests that used to pass is now failing after a `git pull`. You can run `./scripts/delete-databases` to do this.
|
|
162
148
|
3. start the test databases using `./scripts/start-databases` (requires Docker)
|
|
163
|
-
4. run tests using `
|
|
164
|
-
|
|
165
|
-
##
|
|
166
|
-
|
|
167
|
-
| Script
|
|
168
|
-
|
|
|
169
|
-
| `
|
|
170
|
-
| `
|
|
171
|
-
| `
|
|
172
|
-
| `
|
|
173
|
-
| `
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
| `npm run lint:fix` | runs linter and fixes auto-fixable problems |
|
|
177
|
-
|
|
178
|
-
[codeowners-link]: https://github.com/enboxorg/enbox/enbox/blob/main/sql-dialect-variations.md
|
|
149
|
+
4. run tests using `bun run test`
|
|
150
|
+
|
|
151
|
+
## Scripts
|
|
152
|
+
|
|
153
|
+
| Script | Description |
|
|
154
|
+
| ------------------- | ---------------------------- |
|
|
155
|
+
| `bun run build` | compiles TypeScript |
|
|
156
|
+
| `bun run clean` | deletes compiled JS |
|
|
157
|
+
| `bun run test` | runs tests |
|
|
158
|
+
| `bun run lint` | runs linter |
|
|
159
|
+
| `bun run lint:fix` | auto-fix lint issues |
|
|
160
|
+
|
|
161
|
+
[codeowners-link]: https://github.com/enboxorg/enbox/blob/main/sql-dialect-variations.md
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { DataStream } from '@enbox/dwn-sdk-js';
|
|
2
2
|
import { Kysely } from 'kysely';
|
|
3
|
-
import { Readable } from 'readable-stream';
|
|
4
3
|
export class DataStoreSql {
|
|
5
4
|
#dialect;
|
|
6
5
|
#db = null;
|
|
@@ -56,12 +55,13 @@ export class DataStoreSql {
|
|
|
56
55
|
if (!result) {
|
|
57
56
|
return undefined;
|
|
58
57
|
}
|
|
58
|
+
const dataBytes = new Uint8Array(result.data);
|
|
59
59
|
return {
|
|
60
60
|
dataSize: result.data.length,
|
|
61
|
-
dataStream: new
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
dataStream: new ReadableStream({
|
|
62
|
+
start(controller) {
|
|
63
|
+
controller.enqueue(dataBytes);
|
|
64
|
+
controller.close();
|
|
65
65
|
}
|
|
66
66
|
}),
|
|
67
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-store-sql.js","sourceRoot":"","sources":["../../../src/data-store-sql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-store-sql.js","sourceRoot":"","sources":["../../../src/data-store-sql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter that wraps Bun's built-in SQLite (`bun:sqlite`) to conform to Kysely's
|
|
3
|
+
* `SqliteDatabase` / `SqliteStatement` interfaces, enabling it as a drop-in
|
|
4
|
+
* replacement for `better-sqlite3`.
|
|
5
|
+
*/
|
|
6
|
+
import { Database as BunDatabase } from 'bun:sqlite';
|
|
7
|
+
/** SQL command prefixes that indicate a read/query operation. */
|
|
8
|
+
const READER_PREFIXES = /^\s*(SELECT|PRAGMA|EXPLAIN|WITH)\b/i;
|
|
9
|
+
/**
|
|
10
|
+
* Detects `RETURNING` clause in DML statements (INSERT/UPDATE/DELETE ... RETURNING).
|
|
11
|
+
* These produce rows like a SELECT, so the statement must use `all()` not `run()`.
|
|
12
|
+
*/
|
|
13
|
+
const HAS_RETURNING = /\bRETURNING\b/i;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a Kysely-compatible SQLite database backed by `bun:sqlite`.
|
|
16
|
+
*
|
|
17
|
+
* @param path - File path or `":memory:"` for in-memory database.
|
|
18
|
+
* @param options - Options forwarded to `bun:sqlite`'s Database constructor.
|
|
19
|
+
* - `readonly`: Open in read-only mode.
|
|
20
|
+
* - `create`: Create the file if it doesn't exist (default: true).
|
|
21
|
+
* @returns An object implementing Kysely's `SqliteDatabase` interface.
|
|
22
|
+
*/
|
|
23
|
+
export function createBunSqliteDatabase(path, options) {
|
|
24
|
+
const db = new BunDatabase(path, options);
|
|
25
|
+
return {
|
|
26
|
+
close() {
|
|
27
|
+
db.close();
|
|
28
|
+
},
|
|
29
|
+
prepare(sql) {
|
|
30
|
+
const stmt = db.prepare(sql);
|
|
31
|
+
const isReader = READER_PREFIXES.test(sql) || HAS_RETURNING.test(sql);
|
|
32
|
+
return {
|
|
33
|
+
get reader() {
|
|
34
|
+
return isReader;
|
|
35
|
+
},
|
|
36
|
+
all(parameters) {
|
|
37
|
+
return stmt.all(...parameters);
|
|
38
|
+
},
|
|
39
|
+
run(parameters) {
|
|
40
|
+
return stmt.run(...parameters);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=bun-sqlite-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun-sqlite-adapter.js","sourceRoot":"","sources":["../../../../src/dialect/bun-sqlite-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAsBrD,iEAAiE;AACjE,MAAM,eAAe,GAAG,qCAAqC,CAAC;AAE9D;;;GAGG;AACH,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAY,EACZ,OAAkD;IAElD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1C,OAAO;QACL,KAAK;YACH,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QAED,OAAO,CAAC,GAAW;YACjB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtE,OAAO;gBACL,IAAI,MAAM;oBACR,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,GAAG,CAAC,UAAkC;oBACpC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAI,UAAoB,CAAC,CAAC;gBAC5C,CAAC;gBAED,GAAG,CAAC,UAAkC;oBAIpC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAI,UAAoB,CAGvC,CAAC;gBACJ,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql-dialect.js","sourceRoot":"","sources":["../../../../src/dialect/mysql-dialect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mysql-dialect.js","sourceRoot":"","sources":["../../../../src/dialect/mysql-dialect.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,YAAY,IAAI,kBAAkB,EACnC,MAAM,QAAQ,CAAC;AAEhB,MAAM,OAAO,YAAa,SAAQ,kBAAkB;IAClD,IAAI,GAAG,OAAO,CAAC;IACf,oBAAoB,GAAG,IAAI,CAAC;IAE5B,KAAK,CAAC,QAAQ,CAAC,EAAe,EAAE,SAAiB;QAC/C,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,UAAU,CAAC,2BAA2B,CAAC;aACvC,MAAM,CAAC,YAAY,CAAC;aACpB,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;aACnC,OAAO,EAAE,CAAC;QAEb,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,yBAAyB,CACvB,OAA+B,EAC/B,UAAkB,EAClB,QAAgC;QAEhC,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;YACtD,GAAG,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAI,QAAQ,EAAE,CAAC;gBACb,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,OAA+B,EAC/B,UAAkB,EAClB,QAAgC;QAEhC,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CACjB,OAAwC,EACxC,SAAa,EACb,UAAkB,EAClB,UAA0B,EAC1B,cAAsB,EACtB,mBAA2B,EAC3B,cAAiF;QAEjF,OAAO,OAAO;aACX,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;aACzD,uBAAuB,CACtB,GAAG,cAAc,IAAI,mBAAmB,KAAK,SAAS,IAAI,UAAU,EAAE,EACtE,CAAC,UAAU,CAAC,EACZ,cAAc,EACd,CAAC,mBAAmB,CAAC,EACrB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CACpD,CAAC;IACN,CAAC;IAED,kBAAkB,CAChB,EAAgC,EAChC,KAAkB,EAClB,MAAqC,EACrC,UAAwC;QAExC,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-dialect.js","sourceRoot":"","sources":["../../../../src/dialect/postgres-dialect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgres-dialect.js","sourceRoot":"","sources":["../../../../src/dialect/postgres-dialect.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,eAAe,IAAI,qBAAqB,EACzC,MAAM,QAAQ,CAAC;AAEhB,MAAM,OAAO,eAAgB,SAAQ,qBAAqB;IACxD,IAAI,GAAG,YAAY,CAAC;IACpB,oBAAoB,GAAG,IAAI,CAAC;IAE5B,KAAK,CAAC,QAAQ,CAAC,EAAe,EAAE,SAAiB;QAC/C,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,UAAU,CAAC,2BAA2B,CAAC;aACvC,MAAM,CAAC,YAAY,CAAC;aACpB,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;aACnC,OAAO,EAAE,CAAC;QAEb,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,yBAAyB,CACvB,OAA+B,EAC/B,UAAkB,EAClB,QAAgC;QAEhC,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa,CACX,OAA+B,EAC/B,UAAkB,EAClB,QAAgC;QAEhC,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,mBAAmB,CACjB,OAAwC,EACxC,UAAc,EACd,UAAkB,EAClB,UAA0B,EAC1B,cAAsB,EACtB,mBAA2B,EAC3B,cAAiF;QAEjF,OAAO,OAAO,CAAC,SAAS,CACtB,UAAU,EAAE,UAAU,EACtB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,cAAc,IAAI,mBAAmB,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CACvG,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,EAAgC,EAChC,KAAkB,EAClB,MAAqC,EACrC,SAAuC;QAEvC,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;CAEF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-dialect.js","sourceRoot":"","sources":["../../../../src/dialect/sqlite-dialect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite-dialect.js","sourceRoot":"","sources":["../../../../src/dialect/sqlite-dialect.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,aAAa,IAAI,mBAAmB,EACrC,MAAM,QAAQ,CAAC;AAEhB,MAAM,OAAO,aAAc,SAAQ,mBAAmB;IACpD,IAAI,GAAG,QAAQ,CAAC;IAChB,oBAAoB,GAAG,KAAK,CAAC;IAE7B,KAAK,CAAC,QAAQ,CAAC,EAAe,EAAE,SAAiB;QAC/C,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,UAAU,CAAC,eAAe,CAAC;aAC3B,MAAM,CAAC,MAAM,CAAC;aACd,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;aAC3B,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC;aAC7B,OAAO,EAAE,CAAC;QAEb,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,yBAAyB,CACvB,OAA+B,EAC/B,UAAkB,EAClB,QAAgC;QAEhC,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;YACtD,GAAG,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAI,QAAQ,EAAE,CAAC;gBACb,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,OAA+B,EAC/B,UAAkB,EAClB,QAAgC;QAEhC,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,mBAAmB,CACjB,OAAwC,EACxC,UAAc,EACd,UAAkB,EAClB,UAA0B,EAC1B,cAAsB,EACtB,mBAA2B,EAC3B,cAAiF;QAEjF,OAAO,OAAO,CAAC,SAAS,CACtB,UAAU,EAAE,UAAU,EACtB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,cAAc,IAAI,mBAAmB,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CACvG,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,EAAgC,EAChC,KAAkB,EAClB,MAAqC,EACrC,SAAuC;QAEvC,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;CACF"}
|
package/dist/esm/src/main.js
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.js.map
|
package/dist/esm/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","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.js","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,19 +1,19 @@
|
|
|
1
|
-
import { DwnInterfaceName, DwnMethodName, executeUnlessAborted, SortDirection, } from '@enbox/dwn-sdk-js';
|
|
2
|
-
import { Kysely } from 'kysely';
|
|
3
1
|
import * as block from 'multiformats/block';
|
|
4
2
|
import * as cbor from '@ipld/dag-cbor';
|
|
5
|
-
import {
|
|
3
|
+
import { executeWithTransaction } from './utils/transaction.js';
|
|
6
4
|
import { extractTagsAndSanitizeIndexes } from './utils/sanitize.js';
|
|
7
5
|
import { filterSelectQuery } from './utils/filter.js';
|
|
8
6
|
import { sha256 } from 'multiformats/hashes/sha2';
|
|
9
7
|
import { TagTables } from './utils/tags.js';
|
|
8
|
+
import { DwnInterfaceName, DwnMethodName, executeUnlessAborted, SortDirection } from '@enbox/dwn-sdk-js';
|
|
9
|
+
import { Kysely, sql } from 'kysely';
|
|
10
10
|
export class MessageStoreSql {
|
|
11
11
|
#dialect;
|
|
12
12
|
#tags;
|
|
13
13
|
#db = null;
|
|
14
14
|
constructor(dialect) {
|
|
15
15
|
this.#dialect = dialect;
|
|
16
|
-
this.#tags = new TagTables(dialect
|
|
16
|
+
this.#tags = new TagTables(dialect);
|
|
17
17
|
}
|
|
18
18
|
async open() {
|
|
19
19
|
if (this.#db) {
|
|
@@ -36,7 +36,7 @@ export class MessageStoreSql {
|
|
|
36
36
|
.addColumn('parentId', 'varchar(60)')
|
|
37
37
|
.addColumn('protocol', 'varchar(200)')
|
|
38
38
|
.addColumn('protocolPath', 'varchar(200)')
|
|
39
|
-
.addColumn('contextId', 'varchar(
|
|
39
|
+
.addColumn('contextId', 'varchar(600)')
|
|
40
40
|
.addColumn('schema', 'varchar(200)')
|
|
41
41
|
.addColumn('author', 'varchar(255)')
|
|
42
42
|
.addColumn('recipient', 'varchar(255)')
|
|
@@ -51,30 +51,45 @@ export class MessageStoreSql {
|
|
|
51
51
|
.addColumn('dataSize', 'integer')
|
|
52
52
|
.addColumn('encodedData', 'text') // we optionally store encoded data if it is below a threshold
|
|
53
53
|
.addColumn('attester', 'text')
|
|
54
|
-
.addColumn('permissionGrantId', 'varchar(60)')
|
|
55
|
-
.addColumn('latest', 'text'); // TODO: obsolete, remove once `dwn-sdk-js` tests are updated
|
|
54
|
+
.addColumn('permissionGrantId', 'varchar(60)');
|
|
56
55
|
// Add columns that have dialect-specific constraints
|
|
57
56
|
createMessagesTable = this.#dialect.addAutoIncrementingColumn(createMessagesTable, 'id', (col) => col.primaryKey());
|
|
58
57
|
createMessagesTable = this.#dialect.addBlobColumn(createMessagesTable, 'encodedMessageBytes', (col) => col.notNull());
|
|
59
58
|
await createMessagesTable.execute();
|
|
59
|
+
// add unique index for get() and delete() by messageCid — the most fundamental lookup path
|
|
60
|
+
await this.#db.schema
|
|
61
|
+
.createIndex('index_tenant_messageCid')
|
|
62
|
+
.on(messagesTableName)
|
|
63
|
+
.columns(['tenant', 'messageCid'])
|
|
64
|
+
.unique()
|
|
65
|
+
.execute();
|
|
60
66
|
// add indexes to the table
|
|
61
67
|
await this.createIndexes(this.#db, messagesTableName, [
|
|
62
|
-
['tenant'],
|
|
63
|
-
['tenant', '
|
|
64
|
-
['tenant', 'parentId'],
|
|
65
|
-
['tenant', 'protocol', 'published', 'messageTimestamp'],
|
|
66
|
-
['tenant', 'interface'],
|
|
67
|
-
['tenant', '
|
|
68
|
-
['tenant', '
|
|
69
|
-
//
|
|
70
|
-
// ['tenant', 'author'],
|
|
71
|
-
// ['tenant', 'recipient'],
|
|
72
|
-
// ['tenant', 'schema', 'dataFormat'],
|
|
73
|
-
// ['tenant', 'dateCreated'],
|
|
74
|
-
// ['tenant', 'datePublished'],
|
|
75
|
-
// ['tenant', 'messageCid'],
|
|
76
|
-
// ['tenant', 'protocolPath'],
|
|
68
|
+
['tenant', 'recordId'], // multiple uses, notably heavily depended by record chain construction for protocol authorization
|
|
69
|
+
['tenant', 'entryId'], // used by fetchInitialRecordsWriteMessage in RecordsRead, RecordsQuery, and RecordsDelete
|
|
70
|
+
['tenant', 'parentId'], // used to walk down hierarchy of records, use cases include purging of records
|
|
71
|
+
['tenant', 'protocol', 'published', 'messageTimestamp'], // index used for basically every external query
|
|
72
|
+
['tenant', 'interface'], // mainly for fast fetch of ProtocolsConfigure for authorization, not needed if protocol was a DWN Record
|
|
73
|
+
['tenant', 'permissionGrantId'], // for deleting grant-authorized messages though pending https://github.com/enboxorg/enbox/issues/716
|
|
74
|
+
['tenant', 'dateCreated'], // sort optimization for RecordsQuery with DateSort.CreatedAscending/Descending
|
|
75
|
+
['tenant', 'datePublished'], // sort optimization for RecordsQuery with DateSort.PublishedAscending/Descending
|
|
77
76
|
]);
|
|
77
|
+
// contextId index created separately because MySQL requires a prefix length to fit within
|
|
78
|
+
// the 3072-byte InnoDB index key limit. contextId is varchar(600) × 4 bytes (utf8mb4) = 2400 bytes,
|
|
79
|
+
// which combined with tenant (255 × 4 = 1020) and messageTimestamp (30 × 4 = 120) = 3540 bytes,
|
|
80
|
+
// exceeding the limit. A prefix of 480 chars (1920 bytes) brings the total to 3060 bytes.
|
|
81
|
+
// contextId values only contain ASCII chars [a-zA-Z0-9/], so a 480-char prefix is sufficient
|
|
82
|
+
// to distinguish most records (covers ~8 nesting levels of 59-char CID segments).
|
|
83
|
+
if (this.#dialect.name === 'MySQL') {
|
|
84
|
+
await sql `CREATE INDEX index_tenant_contextId_messageTimestamp
|
|
85
|
+
ON ${sql.table(messagesTableName)} (tenant, contextId(480), messageTimestamp)`
|
|
86
|
+
.execute(this.#db);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
await this.createIndexes(this.#db, messagesTableName, [
|
|
90
|
+
['tenant', 'contextId', 'messageTimestamp'], // expected to be used for common query pattern
|
|
91
|
+
]);
|
|
92
|
+
}
|
|
78
93
|
}
|
|
79
94
|
// create tags table
|
|
80
95
|
const tagsTableName = 'messageStoreRecordsTags';
|
|
@@ -147,7 +162,7 @@ export class MessageStoreSql {
|
|
|
147
162
|
// if any of these inserts would throw, the whole transaction would be rolled back.
|
|
148
163
|
// otherwise it is committed.
|
|
149
164
|
const putMessageOperation = this.constructPutMessageOperation({ tenant, messageCid, encodedMessageBytes, encodedData, indexes });
|
|
150
|
-
await
|
|
165
|
+
await executeWithTransaction(this.#db, putMessageOperation);
|
|
151
166
|
}
|
|
152
167
|
/**
|
|
153
168
|
* Constructs the transactional operation to insert the given message into the database.
|
|
@@ -213,7 +228,7 @@ export class MessageStoreSql {
|
|
|
213
228
|
query = filterSelectQuery(filters, query);
|
|
214
229
|
if (pagination?.cursor !== undefined) {
|
|
215
230
|
// currently the sort property is explicitly either `dateCreated` | `messageTimestamp` | `datePublished` which are all strings
|
|
216
|
-
// TODO: https://github.com/
|
|
231
|
+
// TODO: https://github.com/enboxorg/enbox/issues/664 to handle the edge case
|
|
217
232
|
const cursorValue = pagination.cursor.value;
|
|
218
233
|
const cursorMessageId = pagination.cursor.messageCid;
|
|
219
234
|
query = query.where(({ eb, refTuple, tuple }) => {
|
|
@@ -236,6 +251,20 @@ export class MessageStoreSql {
|
|
|
236
251
|
// also parses the encoded message for each of the returned results.
|
|
237
252
|
return this.processPaginationResults(results, sortProperty, pagination?.limit, options);
|
|
238
253
|
}
|
|
254
|
+
async count(tenant, filters, messageSort, options) {
|
|
255
|
+
if (!this.#db) {
|
|
256
|
+
throw new Error('Connection to database not open. Call `open` before using `count`.');
|
|
257
|
+
}
|
|
258
|
+
options?.signal?.throwIfAborted();
|
|
259
|
+
let query = this.#db
|
|
260
|
+
.selectFrom('messageStoreMessages')
|
|
261
|
+
.leftJoin('messageStoreRecordsTags', 'messageStoreRecordsTags.messageInsertId', 'messageStoreMessages.id')
|
|
262
|
+
.select(sql `count(distinct ${sql.ref('messageStoreMessages.messageCid')})`.as('count'))
|
|
263
|
+
.where('tenant', '=', tenant);
|
|
264
|
+
query = filterSelectQuery(filters, query);
|
|
265
|
+
const result = await executeUnlessAborted(query.executeTakeFirstOrThrow(), options?.signal);
|
|
266
|
+
return Number(result.count);
|
|
267
|
+
}
|
|
239
268
|
async delete(tenant, cid, options) {
|
|
240
269
|
if (!this.#db) {
|
|
241
270
|
throw new Error('Connection to database not open. Call `open` before using `delete`.');
|
|
@@ -265,7 +294,7 @@ export class MessageStoreSql {
|
|
|
265
294
|
const message = decodedBlock.value;
|
|
266
295
|
// If encodedData is stored within the MessageStore we include it in the response.
|
|
267
296
|
// We store encodedData when the data is below a certain threshold.
|
|
268
|
-
// https://github.com/
|
|
297
|
+
// https://github.com/enboxorg/enbox/pull/456
|
|
269
298
|
if (message !== undefined && encodedData !== undefined && encodedData !== null) {
|
|
270
299
|
message.encodedData = encodedData;
|
|
271
300
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-store-sql.js","sourceRoot":"","sources":["../../../src/message-store-sql.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-store-sql.js","sourceRoot":"","sources":["../../../src/message-store-sql.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAGrC,MAAM,OAAO,eAAe;IAC1B,QAAQ,CAAU;IAClB,KAAK,CAAY;IACjB,GAAG,GAAmC,IAAI,CAAC;IAE3C,YAAY,OAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEnE,6CAA6C;QAC7C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;QACjD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACtF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;iBACtC,WAAW,CAAC,iBAAiB,CAAC;iBAC9B,WAAW,EAAE;iBACb,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC3D,SAAS,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC9D,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC;iBACrC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC;iBAClC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;iBACpC,SAAS,CAAC,SAAS,EAAC,aAAa,CAAC;iBAClC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;iBACpC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC;iBACrC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;iBACzC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC;iBACtC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;iBACnC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;iBACnC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC;iBACtC,SAAS,CAAC,kBAAkB,EAAE,aAAa,CAAC;iBAC5C,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;iBACvC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC;iBACzC,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC;iBACzC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC;iBACjC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC;iBAC7B,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC;iBACtC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;iBACnC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;iBAChC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,8DAA8D;iBAC/F,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;iBAC7B,SAAS,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;YAEjD,qDAAqD;YACrD,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACpH,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtH,MAAM,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAEpC,2FAA2F;YAC3F,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;iBAClB,WAAW,CAAC,yBAAyB,CAAC;iBACtC,EAAE,CAAC,iBAAiB,CAAC;iBACrB,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;iBACjC,MAAM,EAAE;iBACR,OAAO,EAAE,CAAC;YAEb,2BAA2B;YAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,EAAE;gBACpD,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,kGAAkG;gBAC1H,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,0FAA0F;gBACjH,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,+EAA+E;gBACvG,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,gDAAgD;gBACzG,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,yGAAyG;gBAClI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,qGAAqG;gBACtI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,+EAA+E;gBAC1G,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,iFAAiF;aAC/G,CAAC,CAAC;YAEH,0FAA0F;YAC1F,oGAAoG;YACpG,gGAAgG;YAChG,0FAA0F;YAC1F,6FAA6F;YAC7F,kFAAkF;YAClF,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACnC,MAAM,GAAG,CAAA;eACF,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,6CAA6C;qBAC7E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,EAAE;oBACpD,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,+CAA+C;iBAC7F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,aAAa,GAAG,yBAAyB,CAAC;QAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;iBACzC,WAAW,CAAC,aAAa,CAAC;iBAC1B,WAAW,EAAE;iBACb,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBACvD,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC;iBACxC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAEvC,qDAAqD;YACrD,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;YACjD,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1H,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,aAAa,EAAE,sBAAsB,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9K,MAAM,sBAAsB,CAAC,OAAO,EAAE,CAAC;YAEvC,2BAA2B;YAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE;gBAChD,CAAC,sBAAsB,CAAC;gBACxB,CAAC,KAAK,EAAE,aAAa,CAAC;gBACtB,CAAC,KAAK,EAAE,aAAa,CAAC;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAI,QAAmB,EAAE,SAAiB,EAAE,OAAmB;QAChF,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;YACjF,MAAM,QAAQ,CAAC,MAAM;iBAClB,WAAW,CAAC,SAAS,CAAC;gBACvB,uHAAuH;iBACtH,EAAE,CAAC,SAAS,CAAC;iBACb,OAAO,CAAC,WAAW,CAAC;iBACpB,OAAO,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAAc,EACd,OAAuB,EACvB,OAAkB,EAClB,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,wDAAwD;QACxD,mGAAmG;QACnG,+BAA+B;QAC/B,MAAM,cAAc,GAAG,CAAC,OAAuB,EAAwD,EAAE;YACvG,IAAI,WAAW,GAAgB,IAAI,CAAC;YACpC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,KAAK,gBAAgB,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;gBACnH,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;gBACjC,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,OAAO,CAAC,WAAW,CAAC;oBAC3B,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3E,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CACpD,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EACtE,OAAO,EAAE,MAAM,CAChB,CAAC;QAEF,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEnE,iGAAiG;QACjG,mFAAmF;QACnF,6BAA6B;QAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC,4BAA4B,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACjI,MAAM,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,4BAA4B,CAAC,YAMpC;QACC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QAEvF,8EAA8E;QAC9E,0FAA0F;QAC1F,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAE7E,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE;YAElB,MAAM,kBAAkB,GAAG;gBACzB,MAAM;gBACN,UAAU;gBACV,mBAAmB;gBACnB,WAAW;gBACX,GAAG,UAAU;aACd,CAAC;YAEF,iGAAiG;YACjG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ;iBAC/B,kBAAkB,CAAC,EAAE,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;iBACpF,uBAAuB,EAAE,CAAC;YAE7B,+FAA+F;YAC/F,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAChE,CAAC;QAEH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAAc,EACd,GAAW,EACX,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,IAAI,CAAC,GAAG;aACL,UAAU,CAAC,sBAAsB,CAAC;aAClC,SAAS,EAAE;aACX,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC;aAC7B,gBAAgB,EAAE,EACrB,OAAO,EAAE,MAAM,CAChB,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAc,EACd,OAAiB,EACjB,WAAyB,EACzB,UAAuB,EACvB,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,oEAAoE;QACpE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAErG,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;aACjB,UAAU,CAAC,sBAAsB,CAAC;aAClC,QAAQ,CAAC,yBAAyB,EAAE,yCAAyC,EAAE,yBAAyB,CAAC;aACzG,MAAM,CAAC,YAAY,CAAC;aACpB,QAAQ,EAAE;aACV,MAAM,CAAC;YACN,qBAAqB;YACrB,aAAa;YACb,YAAY;SACb,CAAC;aACD,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAEhC,6DAA6D;QAC7D,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE1C,IAAI,UAAU,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YACrC,8HAA8H;YAC9H,6EAA6E;YAC7E,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAe,CAAC;YACtD,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;YAErD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,aAAa,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxE,wFAAwF;gBACxF,OAAO,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAClG,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAClF,sGAAsG;QACtG,KAAK,GAAG,KAAK;aACV,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC;aACrC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAEzC,IAAI,UAAU,EAAE,KAAK,KAAK,SAAS,IAAI,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;YAC7D,wFAAwF;YACxF,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,oBAAoB,CACxC,KAAK,CAAC,OAAO,EAAE,EACf,OAAO,EAAE,MAAM,CAChB,CAAC;QAEF,2FAA2F;QAC3F,oEAAoE;QACpE,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAc,EACd,OAAiB,EACjB,WAAyB,EACzB,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;aACjB,UAAU,CAAC,sBAAsB,CAAC;aAClC,QAAQ,CAAC,yBAAyB,EAAE,yCAAyC,EAAE,yBAAyB,CAAC;aACzG,MAAM,CAAC,GAAG,CAAQ,kBAAkB,GAAG,CAAC,GAAG,CAAC,iCAAiC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAC9F,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAEhC,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5F,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAc,EACd,GAAW,EACX,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,MAAM,oBAAoB,CACxB,IAAI,CAAC,GAAG;aACL,UAAU,CAAC,sBAAsB,CAAC;aAClC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC;aAC7B,OAAO,EAAE,EACZ,OAAO,EAAE,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,GAAG;aACX,UAAU,CAAC,sBAAsB,CAAC;aAClC,OAAO,EAAE,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,mBAA+B,EAC/B,WAAsC,EACtC,OAA6B;QAE7B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YACtC,KAAK,EAAI,mBAAmB;YAC5B,KAAK,EAAI,IAAI;YACb,MAAM,EAAG,MAAM;SAChB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAAC,KAAuB,CAAC;QACrD,kFAAkF;QAClF,mEAAmE;QACnE,6CAA6C;QAC7C,IAAI,OAAO,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/E,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QACpC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,wBAAwB,CACpC,OAAc,EACd,YAAoB,EACpB,KAAc,EACd,OAA6B;QAE7B,2GAA2G;QAC3G,sHAAsH;QACtH,oIAAoI;QACpI,IAAI,MAAoC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAClD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACtE,CAAC;QAED,+EAA+E;QAC/E,MAAM,QAAQ,GAA8B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACtI,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3D,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,WAAyB;QAEzB,IAAI,WAAW,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC;QACzE,CAAC;aAAM,IAAI,WAAW,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC;QAC7E,CAAC;aAAM,IAAI,WAAW,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACvD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACnF,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC;QAC9E,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { executeWithRetryIfDatabaseIsLocked } from './utils/transaction.js';
|
|
2
|
-
import { Kysely } from 'kysely';
|
|
3
1
|
import { Cid } from '@enbox/dwn-sdk-js';
|
|
4
|
-
|
|
2
|
+
import { executeWithTransaction } from './utils/transaction.js';
|
|
3
|
+
import { Kysely } from 'kysely';
|
|
4
|
+
export class ResumableTaskStoreSql {
|
|
5
5
|
static taskTimeoutInSeconds = 60;
|
|
6
6
|
#dialect;
|
|
7
7
|
#db = null;
|
|
@@ -20,7 +20,7 @@ class ResumableTaskStoreSql {
|
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
// else create the table and corresponding indexes
|
|
23
|
-
|
|
23
|
+
const table = this.#db.schema
|
|
24
24
|
.createTable(tableName)
|
|
25
25
|
.ifNotExists() // kept to show supported by all dialects in contrast to ifNotExists() below, though not needed due to hasTable() check above
|
|
26
26
|
.addColumn('id', 'varchar(255)', (col) => col.primaryKey())
|
|
@@ -79,7 +79,7 @@ class ResumableTaskStoreSql {
|
|
|
79
79
|
.execute();
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
|
-
await
|
|
82
|
+
await executeWithTransaction(this.#db, operation);
|
|
83
83
|
const tasksToReturn = tasks.map((task) => {
|
|
84
84
|
return {
|
|
85
85
|
id: task.id,
|
|
@@ -137,5 +137,4 @@ class ResumableTaskStoreSql {
|
|
|
137
137
|
.execute();
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
export { ResumableTaskStoreSql };
|
|
141
140
|
//# sourceMappingURL=resumable-task-store-sql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resumable-task-store-sql.js","sourceRoot":"","sources":["../../../src/resumable-task-store-sql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resumable-task-store-sql.js","sourceRoot":"","sources":["../../../src/resumable-task-store-sql.ts"],"names":[],"mappings":"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"}
|