uql-orm 0.6.0 → 0.7.2
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/CHANGELOG.md +25 -0
- package/README.md +6 -5
- package/dist/bunSql/bunSql.util.d.ts +30 -0
- package/dist/bunSql/bunSql.util.d.ts.map +1 -0
- package/dist/bunSql/bunSql.util.js +91 -0
- package/dist/bunSql/bunSql.util.js.map +1 -0
- package/dist/bunSql/bunSqlQuerier.d.ts +14 -0
- package/dist/bunSql/bunSqlQuerier.d.ts.map +1 -0
- package/dist/bunSql/bunSqlQuerier.js +37 -0
- package/dist/bunSql/bunSqlQuerier.js.map +1 -0
- package/dist/bunSql/bunSqlQuerierPool.d.ts +19 -0
- package/dist/bunSql/bunSqlQuerierPool.d.ts.map +1 -0
- package/dist/bunSql/bunSqlQuerierPool.js +58 -0
- package/dist/bunSql/bunSqlQuerierPool.js.map +1 -0
- package/dist/bunSql/index.d.ts +3 -0
- package/dist/bunSql/index.d.ts.map +1 -0
- package/dist/bunSql/index.js +3 -0
- package/dist/bunSql/index.js.map +1 -0
- package/dist/cockroachdb/crdbQuerier.d.ts +3 -8
- package/dist/cockroachdb/crdbQuerier.d.ts.map +1 -1
- package/dist/cockroachdb/crdbQuerier.js +2 -30
- package/dist/cockroachdb/crdbQuerier.js.map +1 -1
- package/dist/cockroachdb/crdbQuerierPool.d.ts +4 -4
- package/dist/cockroachdb/crdbQuerierPool.d.ts.map +1 -1
- package/dist/cockroachdb/crdbQuerierPool.js +5 -7
- package/dist/cockroachdb/crdbQuerierPool.js.map +1 -1
- package/dist/d1/d1Querier.d.ts +2 -1
- package/dist/d1/d1Querier.d.ts.map +1 -1
- package/dist/d1/d1Querier.js +3 -4
- package/dist/d1/d1Querier.js.map +1 -1
- package/dist/d1/d1QuerierPool.d.ts +2 -1
- package/dist/d1/d1QuerierPool.d.ts.map +1 -1
- package/dist/d1/d1QuerierPool.js +3 -2
- package/dist/d1/d1QuerierPool.js.map +1 -1
- package/dist/dialect/abstractDialect.d.ts +1 -0
- package/dist/dialect/abstractDialect.d.ts.map +1 -1
- package/dist/dialect/abstractDialect.js +3 -0
- package/dist/dialect/abstractDialect.js.map +1 -1
- package/dist/dialect/abstractSqlDialect.d.ts +57 -52
- package/dist/dialect/abstractSqlDialect.d.ts.map +1 -1
- package/dist/dialect/abstractSqlDialect.js +194 -142
- package/dist/dialect/abstractSqlDialect.js.map +1 -1
- package/dist/dialect/dialectConfig.d.ts +19 -8
- package/dist/dialect/dialectConfig.d.ts.map +1 -1
- package/dist/dialect/dialectConfig.js +6 -0
- package/dist/dialect/dialectConfig.js.map +1 -1
- package/dist/dialect/mysqlLikeSqlDialect.d.ts +3 -5
- package/dist/dialect/mysqlLikeSqlDialect.d.ts.map +1 -1
- package/dist/dialect/mysqlLikeSqlDialect.js +12 -24
- package/dist/dialect/mysqlLikeSqlDialect.js.map +1 -1
- package/dist/dialect/queryContext.js +1 -1
- package/dist/dialect/queryContext.js.map +1 -1
- package/dist/express/querierMiddleware.d.ts.map +1 -1
- package/dist/express/querierMiddleware.js +13 -20
- package/dist/express/querierMiddleware.js.map +1 -1
- package/dist/libsql/libsqlQuerier.d.ts +2 -1
- package/dist/libsql/libsqlQuerier.d.ts.map +1 -1
- package/dist/libsql/libsqlQuerier.js +3 -4
- package/dist/libsql/libsqlQuerier.js.map +1 -1
- package/dist/libsql/libsqlQuerierPool.d.ts +2 -1
- package/dist/libsql/libsqlQuerierPool.d.ts.map +1 -1
- package/dist/libsql/libsqlQuerierPool.js +3 -2
- package/dist/libsql/libsqlQuerierPool.js.map +1 -1
- package/dist/maria/mariaDialect.d.ts +2 -4
- package/dist/maria/mariaDialect.d.ts.map +1 -1
- package/dist/maria/mariaDialect.js +1 -5
- package/dist/maria/mariaDialect.js.map +1 -1
- package/dist/maria/mariadbQuerier.d.ts +2 -1
- package/dist/maria/mariadbQuerier.d.ts.map +1 -1
- package/dist/maria/mariadbQuerier.js +4 -6
- package/dist/maria/mariadbQuerier.js.map +1 -1
- package/dist/maria/mariadbQuerierPool.d.ts +2 -1
- package/dist/maria/mariadbQuerierPool.d.ts.map +1 -1
- package/dist/maria/mariadbQuerierPool.js +3 -2
- package/dist/maria/mariadbQuerierPool.js.map +1 -1
- package/dist/mongo/mongodbQuerierPool.d.ts +2 -1
- package/dist/mongo/mongodbQuerierPool.d.ts.map +1 -1
- package/dist/mongo/mongodbQuerierPool.js +2 -3
- package/dist/mongo/mongodbQuerierPool.js.map +1 -1
- package/dist/mysql/mysql2Querier.d.ts +2 -1
- package/dist/mysql/mysql2Querier.d.ts.map +1 -1
- package/dist/mysql/mysql2Querier.js +7 -11
- package/dist/mysql/mysql2Querier.js.map +1 -1
- package/dist/mysql/mysql2QuerierPool.d.ts +2 -1
- package/dist/mysql/mysql2QuerierPool.d.ts.map +1 -1
- package/dist/mysql/mysql2QuerierPool.js +3 -2
- package/dist/mysql/mysql2QuerierPool.js.map +1 -1
- package/dist/neon/neonQuerier.d.ts +3 -7
- package/dist/neon/neonQuerier.d.ts.map +1 -1
- package/dist/neon/neonQuerier.js +2 -18
- package/dist/neon/neonQuerier.js.map +1 -1
- package/dist/neon/neonQuerierPool.d.ts +4 -4
- package/dist/neon/neonQuerierPool.d.ts.map +1 -1
- package/dist/neon/neonQuerierPool.js +5 -7
- package/dist/neon/neonQuerierPool.js.map +1 -1
- package/dist/postgres/abstractPgQuerier.d.ts +18 -0
- package/dist/postgres/abstractPgQuerier.d.ts.map +1 -0
- package/dist/postgres/abstractPgQuerier.js +33 -0
- package/dist/postgres/abstractPgQuerier.js.map +1 -0
- package/dist/postgres/abstractPgQuerierPool.d.ts +15 -0
- package/dist/postgres/abstractPgQuerierPool.d.ts.map +1 -0
- package/dist/postgres/abstractPgQuerierPool.js +10 -0
- package/dist/postgres/abstractPgQuerierPool.js.map +1 -0
- package/dist/postgres/pgQuerier.d.ts +3 -8
- package/dist/postgres/pgQuerier.d.ts.map +1 -1
- package/dist/postgres/pgQuerier.js +2 -30
- package/dist/postgres/pgQuerier.js.map +1 -1
- package/dist/postgres/pgQuerierPool.d.ts +6 -6
- package/dist/postgres/pgQuerierPool.d.ts.map +1 -1
- package/dist/postgres/pgQuerierPool.js +7 -9
- package/dist/postgres/pgQuerierPool.js.map +1 -1
- package/dist/postgres/postgresDialect.d.ts +6 -16
- package/dist/postgres/postgresDialect.d.ts.map +1 -1
- package/dist/postgres/postgresDialect.js +49 -72
- package/dist/postgres/postgresDialect.js.map +1 -1
- package/dist/querier/abstractQuerierPool.d.ts +5 -3
- package/dist/querier/abstractQuerierPool.d.ts.map +1 -1
- package/dist/querier/abstractQuerierPool.js +6 -3
- package/dist/querier/abstractQuerierPool.js.map +1 -1
- package/dist/querier/abstractSqlQuerier.d.ts +5 -0
- package/dist/querier/abstractSqlQuerier.d.ts.map +1 -1
- package/dist/querier/abstractSqlQuerier.js +15 -5
- package/dist/querier/abstractSqlQuerier.js.map +1 -1
- package/dist/sqlite/abstractSqliteQuerier.d.ts +0 -2
- package/dist/sqlite/abstractSqliteQuerier.d.ts.map +1 -1
- package/dist/sqlite/abstractSqliteQuerier.js +0 -9
- package/dist/sqlite/abstractSqliteQuerier.js.map +1 -1
- package/dist/sqlite/sqliteDialect.d.ts +6 -20
- package/dist/sqlite/sqliteDialect.d.ts.map +1 -1
- package/dist/sqlite/sqliteDialect.js +20 -33
- package/dist/sqlite/sqliteDialect.js.map +1 -1
- package/dist/sqlite/sqliteQuerier.d.ts +2 -1
- package/dist/sqlite/sqliteQuerier.d.ts.map +1 -1
- package/dist/sqlite/sqliteQuerier.js +3 -4
- package/dist/sqlite/sqliteQuerier.js.map +1 -1
- package/dist/sqlite/sqliteQuerierPool.d.ts +2 -1
- package/dist/sqlite/sqliteQuerierPool.d.ts.map +1 -1
- package/dist/sqlite/sqliteQuerierPool.js +3 -2
- package/dist/sqlite/sqliteQuerierPool.js.map +1 -1
- package/dist/type/querierPool.d.ts +16 -0
- package/dist/type/querierPool.d.ts.map +1 -1
- package/dist/type/query.d.ts +8 -3
- package/dist/type/query.d.ts.map +1 -1
- package/dist/type/utility.d.ts +4 -0
- package/dist/type/utility.d.ts.map +1 -1
- package/dist/util/sql.util.d.ts +26 -3
- package/dist/util/sql.util.d.ts.map +1 -1
- package/dist/util/sql.util.js +51 -9
- package/dist/util/sql.util.js.map +1 -1
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,31 @@ All notable changes to this project will be documented in this file. Please add
|
|
|
4
4
|
|
|
5
5
|
date format is [yyyy-mm-dd]
|
|
6
6
|
|
|
7
|
+
## [0.7.0] - 2026-03-21
|
|
8
|
+
### New Features
|
|
9
|
+
- **Bun SQL Support**: Added a first-class adapter for Bun's unified `sql` driver (`uql-orm/bunSql`). A single `BunSqlQuerierPool` infers the UQL dialect from `SQL.Options` (URL, `adapter`, or `filename`) and routes SQL generation to PostgreSQL, MySQL, MariaDB, SQLite, or CockroachDB ASTs. Includes dialect-aware option normalization (`inferDialect`, `normalizeBunOpts`), row/insert-id normalization for Bun result shapes, and a minimal `pool.query` shim for pg-compatible consumers.
|
|
10
|
+
|
|
11
|
+
### Breaking Changes
|
|
12
|
+
- **`$ne` is null-safe everywhere**: Non-null `$ne` now uses dialect-native null-safe inequality so rows with `NULL` in the compared column are included when they differ from the bound value (PostgreSQL/CockroachDB: `IS DISTINCT FROM`; SQLite: `IS NOT`; MySQL/MariaDB: `NOT (col <=> ?)`). This matches typical ORM expectations and fixes subtle “missing rows” bugs versus plain `<>` SQL. Queries that relied on SQL’s three-valued logic excluding `NULL` from `$ne` matches may return more rows; use `{$ne: null}` / `$isNull` / `$isNotNull` explicitly for null-only filters.
|
|
13
|
+
|
|
14
|
+
### Security
|
|
15
|
+
- **SQL Injection Prevention for JSON**: Hardened JSON-path operators across all SQL dialects with strict identifier and key escaping.
|
|
16
|
+
|
|
17
|
+
### Improvements
|
|
18
|
+
- **Standardized Architecture**: Unified `PrimaryKey` type and improved `buildUpdateResult` for precise batch-insert ID mapping.
|
|
19
|
+
- **Dialect parameter normalization**: `QueryDialect.normalizeValue` / `normalizeValues` centralize bound-parameter shaping (e.g. Postgres array literals and booleans, JSON stringify for text-JSON columns on SQLite/MySQL-like dialects, `Date` preserved for driver binding). Applied at the querier boundary and in `SqlQueryContext.pushValue` for consistency with Bun SQL and other drivers.
|
|
20
|
+
- **SQL dialect simplification**: Consolidated `$in` / `$nin` formatting via `formatIn` (including empty-array `IN (NULL)` handling), streamlined JSON field conditions (removed redundant config indirection), and unified null-safe `$ne` through `neExpr` / `havingCondition`.
|
|
21
|
+
- **Bun SQL Resilience**: SQLite uses an unpooled handle when Bun does not support `reserve()`; reserved connections use `await release()` where required.
|
|
22
|
+
- **Dialect inference**: Improved Bun URL handling (`:memory:`, `mysql2://`, `sqlite3://`, `postgresql://`, etc.).
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
- **MySQL/MariaDB Upsert Detection**: Fine-tuned the `created` flag detection by correctly interpreting the MySQL `affectedRows` convention (1 for insert, 2 for update, 0 for no-op).
|
|
26
|
+
- **Express Route ID Resolution**: Removed rigid `req.params.id` string-bindings in autogenerated API endpoints. Routes now correctly infer and map dynamic parameters utilizing the `meta.id` schema definition, increasing type-safety drastically.
|
|
27
|
+
|
|
28
|
+
## [0.6.1] - 2026-03-18
|
|
29
|
+
### Chore
|
|
30
|
+
- **Documentation**: Improve intro of readme.md
|
|
31
|
+
|
|
7
32
|
## [0.6.0] - 2026-03-18
|
|
8
33
|
### Features
|
|
9
34
|
- **JSON update operators expanded**: Added `$push` for atomic JSON array append in update payloads across SQL dialects.
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/rogerpadilla/uql) [](https://coveralls.io/github/rogerpadilla/uql?branch=main) [](https://github.com/rogerpadilla/uql/blob/main/LICENSE) [](https://www.npmjs.com/package/uql-orm)
|
|
6
6
|
|
|
7
|
-
**[UQL](https://uql-orm.dev)** is
|
|
7
|
+
**[UQL](https://uql-orm.dev)** is the best ORM for TypeScript and modern JavaScript designed to be fast, safe, and easy to integrate into any application — especially AI and data‑heavy workloads. Built with a unified API across SQL and MongoDB.
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
10
|
const results = await querier.findMany(User, {
|
|
@@ -91,6 +91,7 @@ npm install uql-orm # or bun add / pnpm add
|
|
|
91
91
|
| **LibSQL** (incl. Turso) | `npm install @libsql/client` |
|
|
92
92
|
| **MongoDB** | `npm install mongodb` |
|
|
93
93
|
| **Cloudflare D1** | _Native (no driver needed)_ |
|
|
94
|
+
| **Bun SQL Native** (Incl. Postgres, MySQL, SQLite) | _Native (no driver needed)_ |
|
|
94
95
|
|
|
95
96
|
### TypeScript Configuration
|
|
96
97
|
|
|
@@ -261,7 +262,7 @@ A pool manages connections (queriers). Initialize it once at application bootstr
|
|
|
261
262
|
|
|
262
263
|
```ts
|
|
263
264
|
import { SnakeCaseNamingStrategy, type Config } from 'uql-orm';
|
|
264
|
-
import { PgQuerierPool } from 'uql-orm/postgres'; // or mysql2, sqlite, etc.
|
|
265
|
+
import { PgQuerierPool } from 'uql-orm/postgres'; // or mysql2, sqlite, bunSql, etc.
|
|
265
266
|
import { User, Profile, Post } from './entities';
|
|
266
267
|
|
|
267
268
|
export const pool = new PgQuerierPool(
|
|
@@ -367,9 +368,9 @@ const items = await querier.findMany(Company, {
|
|
|
367
368
|
});
|
|
368
369
|
```
|
|
369
370
|
|
|
370
|
-
**PostgreSQL:** `WHERE ("settings"->>'isArchived') IS DISTINCT FROM $1 AND (("settings"->>'priority'))::numeric >= $2`
|
|
371
|
-
**MySQL:** `WHERE (\`settings\`->>'isArchived') <> ? AND CAST((\`settings\`->>'priority') AS DECIMAL) >= ?`
|
|
372
|
-
**MariaDB:** `WHERE JSON_VALUE(\`settings\`, '$.isArchived') <> ? AND CAST(JSON_VALUE(\`settings\`, '$.priority') AS DECIMAL) >= ?`
|
|
371
|
+
**PostgreSQL:** `WHERE ("settings"->>'isArchived') IS DISTINCT FROM $1 AND (("settings"->>'priority'))::numeric >= $2`
|
|
372
|
+
**MySQL:** `WHERE (\`settings\`->>'isArchived') <> ? AND CAST((\`settings\`->>'priority') AS DECIMAL) >= ?`
|
|
373
|
+
**MariaDB:** `WHERE JSON_VALUE(\`settings\`, '$.isArchived') <> ? AND CAST(JSON_VALUE(\`settings\`, '$.priority') AS DECIMAL) >= ?`
|
|
373
374
|
**SQLite:** `WHERE json_extract("settings", '$.isArchived') IS NOT ? AND CAST(json_extract("settings", '$.priority') AS REAL) >= ?`
|
|
374
375
|
|
|
375
376
|
Atomic JSON updates support `$merge`, `$unset`, and `$push`:
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ReservedSQL, SQL } from 'bun';
|
|
2
|
+
import type { PrimaryKey, RawRow, SqlDialect } from '../type/index.js';
|
|
3
|
+
export type BunSqlResult<T = RawRow> = T[] & {
|
|
4
|
+
count?: number;
|
|
5
|
+
affectedRows?: number;
|
|
6
|
+
lastInsertRowid?: PrimaryKey;
|
|
7
|
+
};
|
|
8
|
+
export declare function getAffectedRows(res: BunSqlResult): number;
|
|
9
|
+
export declare function isReservedConnection(conn: unknown): conn is ReservedSQL;
|
|
10
|
+
export declare function isPoolableDialect(dialect: SqlDialect): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Robustly infers the UQL SqlDialect from a Bun SQL.Options object.
|
|
13
|
+
*/
|
|
14
|
+
export declare function inferDialect(config: SQL.Options): SqlDialect;
|
|
15
|
+
/**
|
|
16
|
+
* Normalizes SQL.Options into a structure that Bun's SQL engine expects for a given dialect.
|
|
17
|
+
* Crucially handles 'filename' mapping for SQLite and alias resolution for Cockroach/MariaDB.
|
|
18
|
+
*/
|
|
19
|
+
export declare function normalizeBunOpts(config: SQL.Options, dialect: SqlDialect): SQL.Options;
|
|
20
|
+
/**
|
|
21
|
+
* Normalizes Bun result rows into plain JavaScript objects and coerces BigInts to numbers.
|
|
22
|
+
* This ensures compatibility with UQL's expected return types and reliable JSON serialization.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeRows<T>(res: BunSqlResult<T>): T[];
|
|
25
|
+
/**
|
|
26
|
+
* Robustly extracts the last inserted ID from a Bun SQL result.
|
|
27
|
+
* Handles BigInt-to-number coercion for cross-dialect consistency.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getInsertId(res: BunSqlResult): PrimaryKey | undefined;
|
|
30
|
+
//# sourceMappingURL=bunSql.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunSql.util.d.ts","sourceRoot":"","sources":["../../src/bunSql/bunSql.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,GAAG;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;CAC9B,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,WAAW,CAEvE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,UAAU,CAc5D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CA4BtF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAgB1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAErE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
export function getAffectedRows(res) {
|
|
2
|
+
return res.affectedRows ?? res.count ?? 0;
|
|
3
|
+
}
|
|
4
|
+
export function isReservedConnection(conn) {
|
|
5
|
+
return !!(conn && typeof conn.release === 'function');
|
|
6
|
+
}
|
|
7
|
+
export function isPoolableDialect(dialect) {
|
|
8
|
+
return dialect !== 'sqlite';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Robustly infers the UQL SqlDialect from a Bun SQL.Options object.
|
|
12
|
+
*/
|
|
13
|
+
export function inferDialect(config) {
|
|
14
|
+
if (config.filename)
|
|
15
|
+
return 'sqlite';
|
|
16
|
+
const opts = config;
|
|
17
|
+
if (opts.url) {
|
|
18
|
+
const urlStr = opts.url.toString();
|
|
19
|
+
if (urlStr === ':memory:')
|
|
20
|
+
return 'sqlite';
|
|
21
|
+
const scheme = urlStr.split(':')[0];
|
|
22
|
+
if (scheme === 'sqlite3')
|
|
23
|
+
return 'sqlite';
|
|
24
|
+
if (scheme === 'mysql2')
|
|
25
|
+
return 'mysql';
|
|
26
|
+
if (scheme === 'postgresql')
|
|
27
|
+
return 'postgres';
|
|
28
|
+
return scheme;
|
|
29
|
+
}
|
|
30
|
+
if (opts.adapter)
|
|
31
|
+
return opts.adapter;
|
|
32
|
+
return 'postgres';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Normalizes SQL.Options into a structure that Bun's SQL engine expects for a given dialect.
|
|
36
|
+
* Crucially handles 'filename' mapping for SQLite and alias resolution for Cockroach/MariaDB.
|
|
37
|
+
*/
|
|
38
|
+
export function normalizeBunOpts(config, dialect) {
|
|
39
|
+
if (dialect === 'sqlite') {
|
|
40
|
+
const rawFilename = ('filename' in config ? config.filename : null) || ('url' in config ? config.url : null) || ':memory:';
|
|
41
|
+
return {
|
|
42
|
+
...config,
|
|
43
|
+
adapter: 'sqlite',
|
|
44
|
+
filename: rawFilename.toString(),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const bunAdapter = dialect === 'cockroachdb' ? 'postgres' : dialect;
|
|
48
|
+
const opts = { bigint: true, ...config, adapter: bunAdapter };
|
|
49
|
+
if (!opts.url) {
|
|
50
|
+
return opts;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const url = opts.url instanceof URL ? opts.url : new URL(opts.url);
|
|
54
|
+
if (url.searchParams.get('sslmode') === 'no-verify') {
|
|
55
|
+
url.searchParams.delete('sslmode');
|
|
56
|
+
opts.url = url.toString();
|
|
57
|
+
opts.tls = { rejectUnauthorized: false, ...(typeof opts.tls === 'object' ? opts.tls : undefined) };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (_) { }
|
|
61
|
+
return opts;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Normalizes Bun result rows into plain JavaScript objects and coerces BigInts to numbers.
|
|
65
|
+
* This ensures compatibility with UQL's expected return types and reliable JSON serialization.
|
|
66
|
+
*/
|
|
67
|
+
export function normalizeRows(res) {
|
|
68
|
+
const rows = [];
|
|
69
|
+
for (const row of res) {
|
|
70
|
+
let cleanRow;
|
|
71
|
+
const sourceRow = row;
|
|
72
|
+
for (const key in sourceRow) {
|
|
73
|
+
const value = sourceRow[key];
|
|
74
|
+
if (typeof value === 'bigint') {
|
|
75
|
+
// Clone only when needed so non-bigint rows can pass through untouched.
|
|
76
|
+
cleanRow ??= { ...sourceRow };
|
|
77
|
+
cleanRow[key] = Number(value);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
rows.push((cleanRow ?? sourceRow));
|
|
81
|
+
}
|
|
82
|
+
return rows;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Robustly extracts the last inserted ID from a Bun SQL result.
|
|
86
|
+
* Handles BigInt-to-number coercion for cross-dialect consistency.
|
|
87
|
+
*/
|
|
88
|
+
export function getInsertId(res) {
|
|
89
|
+
return typeof res.lastInsertRowid === 'bigint' ? Number(res.lastInsertRowid) : res.lastInsertRowid;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=bunSql.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunSql.util.js","sourceRoot":"","sources":["../../src/bunSql/bunSql.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ReservedSQL, SQL } from 'bun';
|
|
2
|
+
import type { AbstractSqlDialect } from '../dialect/index.js';
|
|
3
|
+
import { AbstractPoolQuerier } from '../querier/abstractPoolQuerier.js';
|
|
4
|
+
import type { ExtraOptions } from '../type/index.js';
|
|
5
|
+
export declare class BunSqlQuerier extends AbstractPoolQuerier<ReservedSQL> {
|
|
6
|
+
readonly sql: SQL;
|
|
7
|
+
readonly extra?: ExtraOptions | undefined;
|
|
8
|
+
constructor(sql: SQL, dialect: AbstractSqlDialect, connFactory: () => Promise<ReservedSQL>, extra?: ExtraOptions | undefined);
|
|
9
|
+
internalAll<T>(query: string, values?: unknown[]): Promise<T[]>;
|
|
10
|
+
internalRun(query: string, values?: unknown[]): Promise<import("../type/query.js").QueryUpdateResult>;
|
|
11
|
+
private execute;
|
|
12
|
+
protected releaseConn(conn: ReservedSQL): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=bunSqlQuerier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunSqlQuerier.d.ts","sourceRoot":"","sources":["../../src/bunSql/bunSqlQuerier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,kBAAkB,CAAC;AAG7D,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,WAAW,CAAC;IAE/D,QAAQ,CAAC,GAAG,EAAE,GAAG;aAGC,KAAK,CAAC,EAAE,YAAY;gBAH7B,GAAG,EAAE,GAAG,EACjB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,EACrB,KAAK,CAAC,EAAE,YAAY,YAAA;IAKzB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE;IAKhD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE;YAa9C,OAAO;cAMI,WAAW,CAAC,IAAI,EAAE,WAAW;CAKvD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AbstractPoolQuerier } from '../querier/abstractPoolQuerier.js';
|
|
2
|
+
import { getAffectedRows, getInsertId, isReservedConnection, normalizeRows } from './bunSql.util.js';
|
|
3
|
+
export class BunSqlQuerier extends AbstractPoolQuerier {
|
|
4
|
+
sql;
|
|
5
|
+
extra;
|
|
6
|
+
constructor(sql, dialect, connFactory, extra) {
|
|
7
|
+
super(dialect, connFactory, extra);
|
|
8
|
+
this.sql = sql;
|
|
9
|
+
this.extra = extra;
|
|
10
|
+
}
|
|
11
|
+
async internalAll(query, values) {
|
|
12
|
+
const res = await this.execute(query, values);
|
|
13
|
+
return normalizeRows(res);
|
|
14
|
+
}
|
|
15
|
+
async internalRun(query, values) {
|
|
16
|
+
const res = await this.execute(query, values);
|
|
17
|
+
const rows = normalizeRows(res);
|
|
18
|
+
// Bun's result metadata varies by query type; use the base builder to map safely.
|
|
19
|
+
return this.buildUpdateResult({
|
|
20
|
+
rows,
|
|
21
|
+
changes: getAffectedRows(res),
|
|
22
|
+
id: getInsertId(res),
|
|
23
|
+
upsertStatus: res.affectedRows,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async execute(query, values) {
|
|
27
|
+
// Safe: UQL parameters are strictly bound. .unsafe() correctly bypasses Bun's tagged template
|
|
28
|
+
// literal parsing requirement so we can execute our dynamically compiled AST strings natively.
|
|
29
|
+
return this.conn.unsafe(query, values);
|
|
30
|
+
}
|
|
31
|
+
async releaseConn(conn) {
|
|
32
|
+
if (isReservedConnection(conn)) {
|
|
33
|
+
await conn.release();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=bunSqlQuerier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunSqlQuerier.js","sourceRoot":"","sources":["../../src/bunSql/bunSqlQuerier.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAqB,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAExH,MAAM,OAAO,aAAc,SAAQ,mBAAgC;IAEtD;IAGS;IAJpB,YACW,GAAQ,EACjB,OAA2B,EAC3B,WAAuC,EACrB,KAAoB;QAEtC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAL1B,QAAG,GAAH,GAAG,CAAK;QAGC,UAAK,GAAL,KAAK,CAAe;IAGxC,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAI,KAAa,EAAE,MAAkB;QAC7D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,MAAkB;QAC1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAS,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAEhC,kFAAkF;QAClF,OAAO,IAAI,CAAC,iBAAiB,CAAC;YAC5B,IAAI;YACJ,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC;YAC7B,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC;YACpB,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,KAAa,EAAE,MAAkB;QACxD,8FAA8F;QAC9F,+FAA+F;QAC/F,OAAO,IAAI,CAAC,IAAK,CAAC,MAAM,CAAkB,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAEkB,KAAK,CAAC,WAAW,CAAC,IAAiB;QACpD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SQL } from 'bun';
|
|
2
|
+
import type { AbstractSqlDialect } from '../dialect/index.js';
|
|
3
|
+
import { AbstractQuerierPool } from '../querier/index.js';
|
|
4
|
+
import type { ExtraOptions, SqlDialect, SqlPoolCompat } from '../type/index.js';
|
|
5
|
+
import { BunSqlQuerier } from './bunSqlQuerier.js';
|
|
6
|
+
export declare class BunSqlQuerierPool extends AbstractQuerierPool<AbstractSqlDialect, BunSqlQuerier> {
|
|
7
|
+
readonly config: SQL.Options;
|
|
8
|
+
readonly sql: SQL;
|
|
9
|
+
readonly sqlDialect: SqlDialect;
|
|
10
|
+
constructor(config: SQL.Options, extra?: ExtraOptions);
|
|
11
|
+
/**
|
|
12
|
+
* Provides a pg-compatible interface for libraries like connect-pg-simple.
|
|
13
|
+
* Connection release is handled automatically by Bun's native pool.
|
|
14
|
+
*/
|
|
15
|
+
get pool(): SqlPoolCompat;
|
|
16
|
+
getQuerier(): Promise<BunSqlQuerier>;
|
|
17
|
+
end(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=bunSqlQuerierPool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunSqlQuerierPool.d.ts","sourceRoot":"","sources":["../../src/bunSql/bunSqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,GAAG,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAkB,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAShG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAKzF,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO;IAJ9B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;gBAGrB,MAAM,EAAE,GAAG,CAAC,OAAO,EAC5B,KAAK,CAAC,EAAE,YAAY;IAUtB;;;OAGG;IACH,IAAI,IAAI,IAAI,aAAa,CAWxB;IAEK,UAAU;IAWV,GAAG;CAGV"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SQL } from 'bun';
|
|
2
|
+
import { CockroachDialect } from '../cockroachdb/index.js';
|
|
3
|
+
import { MariaDialect } from '../maria/index.js';
|
|
4
|
+
import { MySqlDialect } from '../mysql/index.js';
|
|
5
|
+
import { PostgresDialect } from '../postgres/index.js';
|
|
6
|
+
import { AbstractQuerierPool } from '../querier/index.js';
|
|
7
|
+
import { SqliteDialect } from '../sqlite/index.js';
|
|
8
|
+
import { getAffectedRows, inferDialect, isPoolableDialect, normalizeBunOpts, normalizeRows, } from './bunSql.util.js';
|
|
9
|
+
import { BunSqlQuerier } from './bunSqlQuerier.js';
|
|
10
|
+
const DialectMap = {
|
|
11
|
+
postgres: PostgresDialect,
|
|
12
|
+
mysql: MySqlDialect,
|
|
13
|
+
mariadb: MariaDialect,
|
|
14
|
+
sqlite: SqliteDialect,
|
|
15
|
+
cockroachdb: CockroachDialect,
|
|
16
|
+
};
|
|
17
|
+
export class BunSqlQuerierPool extends AbstractQuerierPool {
|
|
18
|
+
config;
|
|
19
|
+
sql;
|
|
20
|
+
sqlDialect;
|
|
21
|
+
constructor(config, extra) {
|
|
22
|
+
const dialect = inferDialect(config);
|
|
23
|
+
super(new DialectMap[dialect](extra?.namingStrategy), extra);
|
|
24
|
+
this.config = config;
|
|
25
|
+
this.sqlDialect = dialect;
|
|
26
|
+
const opts = normalizeBunOpts(config, dialect);
|
|
27
|
+
this.sql = new SQL(opts);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Provides a pg-compatible interface for libraries like connect-pg-simple.
|
|
31
|
+
* Connection release is handled automatically by Bun's native pool.
|
|
32
|
+
*/
|
|
33
|
+
get pool() {
|
|
34
|
+
return {
|
|
35
|
+
query: (text, values) => this.sql.unsafe(text, this.dialectInstance.normalizeValues(values)).then((res) => ({
|
|
36
|
+
rows: normalizeRows(res),
|
|
37
|
+
rowCount: getAffectedRows(res),
|
|
38
|
+
})),
|
|
39
|
+
on: () => {
|
|
40
|
+
/* no-op for event listeners */
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async getQuerier() {
|
|
45
|
+
const connFactory = async () => {
|
|
46
|
+
// Bun's SQLite adapter does not support connection reservation (it's unpooled).
|
|
47
|
+
if (!isPoolableDialect(this.sqlDialect)) {
|
|
48
|
+
return this.sql;
|
|
49
|
+
}
|
|
50
|
+
return this.sql.reserve();
|
|
51
|
+
};
|
|
52
|
+
return new BunSqlQuerier(this.sql, this.dialectInstance, connFactory, this.extra);
|
|
53
|
+
}
|
|
54
|
+
async end() {
|
|
55
|
+
await this.sql.close();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=bunSqlQuerierPool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunSqlQuerierPool.js","sourceRoot":"","sources":["../../src/bunSql/bunSqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAEL,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,GAA8F;IAC5G,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,aAAa;IACrB,WAAW,EAAE,gBAAgB;CAC9B,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,mBAAsD;IAKhF;IAJF,GAAG,CAAM;IACT,UAAU,CAAa;IAEhC,YACW,MAAmB,EAC5B,KAAoB;QAEpB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;QAJpD,WAAM,GAAN,MAAM,CAAa;QAK5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAE1B,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO;YACL,KAAK,EAAE,CAAC,IAAY,EAAE,MAAkB,EAAE,EAAE,CAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAe,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC/F,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC;gBACxB,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;aAC/B,CAAC,CAAC;YACL,EAAE,EAAE,GAAG,EAAE;gBACP,+BAA+B;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;YAC7B,gFAAgF;YAChF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,GAAkB,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC;QACF,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bunSql/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bunSql/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import type { PoolClient } from 'pg';
|
|
2
|
-
import {
|
|
3
|
-
import type {
|
|
2
|
+
import { AbstractPgQuerier } from '../postgres/abstractPgQuerier.js';
|
|
3
|
+
import type { CockroachDialect } from './cockroachDialect.js';
|
|
4
4
|
/**
|
|
5
5
|
* Querier for CockroachDB utilizing the standard `pg` PoolClient.
|
|
6
6
|
*/
|
|
7
|
-
export declare class CrdbQuerier extends
|
|
8
|
-
constructor(connect: () => Promise<PoolClient>, extra?: ExtraOptions);
|
|
9
|
-
internalAll<T>(query: string, values?: unknown[]): Promise<(T & RawRow)[]>;
|
|
10
|
-
internalRun(query: string, values?: unknown[]): Promise<import("../type/query.js").QueryUpdateResult>;
|
|
11
|
-
internalStream<T>(query: string, values?: unknown[]): AsyncGenerator<Awaited<T>, void, unknown>;
|
|
12
|
-
protected releaseConn(conn: PoolClient): Promise<void>;
|
|
7
|
+
export declare class CrdbQuerier extends AbstractPgQuerier<PoolClient, CockroachDialect> {
|
|
13
8
|
}
|
|
14
9
|
//# sourceMappingURL=crdbQuerier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crdbQuerier.d.ts","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"crdbQuerier.d.ts","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,qBAAa,WAAY,SAAQ,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,CAAC;CAAG"}
|
|
@@ -1,35 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { extractInsertResult } from '../util/sql.util.js';
|
|
3
|
-
import { CockroachDialect } from './cockroachDialect.js';
|
|
1
|
+
import { AbstractPgQuerier } from '../postgres/abstractPgQuerier.js';
|
|
4
2
|
/**
|
|
5
3
|
* Querier for CockroachDB utilizing the standard `pg` PoolClient.
|
|
6
4
|
*/
|
|
7
|
-
export class CrdbQuerier extends
|
|
8
|
-
constructor(connect, extra) {
|
|
9
|
-
super(new CockroachDialect(extra?.namingStrategy), connect, extra);
|
|
10
|
-
}
|
|
11
|
-
async internalAll(query, values) {
|
|
12
|
-
const res = await this.conn.query(query, values);
|
|
13
|
-
return res.rows;
|
|
14
|
-
}
|
|
15
|
-
async internalRun(query, values) {
|
|
16
|
-
const { rowCount, rows = [] } = await this.conn.query(query, values);
|
|
17
|
-
return extractInsertResult(rows, rowCount ?? undefined);
|
|
18
|
-
}
|
|
19
|
-
async *internalStream(query, values) {
|
|
20
|
-
const { default: QueryStream } = await import('pg-query-stream');
|
|
21
|
-
const stream = this.conn.query(new QueryStream(query, values));
|
|
22
|
-
try {
|
|
23
|
-
for await (const row of stream) {
|
|
24
|
-
yield row;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
finally {
|
|
28
|
-
stream.destroy();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
async releaseConn(conn) {
|
|
32
|
-
await conn.release();
|
|
33
|
-
}
|
|
5
|
+
export class CrdbQuerier extends AbstractPgQuerier {
|
|
34
6
|
}
|
|
35
7
|
//# sourceMappingURL=crdbQuerier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crdbQuerier.js","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"crdbQuerier.js","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAA+C;CAAG"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Pool, type PoolConfig } from 'pg';
|
|
2
|
-
import {
|
|
1
|
+
import { Pool, type PoolClient, type PoolConfig } from 'pg';
|
|
2
|
+
import { AbstractPgQuerierPool } from '../postgres/abstractPgQuerierPool.js';
|
|
3
3
|
import type { ExtraOptions } from '../type/index.js';
|
|
4
|
+
import { CockroachDialect } from './cockroachDialect.js';
|
|
4
5
|
import { CrdbQuerier } from './crdbQuerier.js';
|
|
5
6
|
/**
|
|
6
7
|
* QuerierPool for CockroachDB using the `pg` driver Pool.
|
|
7
8
|
*/
|
|
8
|
-
export declare class CrdbQuerierPool extends
|
|
9
|
+
export declare class CrdbQuerierPool extends AbstractPgQuerierPool<PoolClient, CockroachDialect, CrdbQuerier> {
|
|
9
10
|
readonly pool: Pool;
|
|
10
11
|
constructor(opts: PoolConfig, extra?: ExtraOptions);
|
|
11
12
|
getQuerier(): Promise<CrdbQuerier>;
|
|
12
|
-
end(): Promise<void>;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=crdbQuerierPool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crdbQuerierPool.d.ts","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"crdbQuerierPool.d.ts","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC;IACnG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBAER,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY;IAK5C,UAAU;CAGjB"}
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import { Pool } from 'pg';
|
|
2
|
-
import {
|
|
2
|
+
import { AbstractPgQuerierPool } from '../postgres/abstractPgQuerierPool.js';
|
|
3
|
+
import { CockroachDialect } from './cockroachDialect.js';
|
|
3
4
|
import { CrdbQuerier } from './crdbQuerier.js';
|
|
4
5
|
/**
|
|
5
6
|
* QuerierPool for CockroachDB using the `pg` driver Pool.
|
|
6
7
|
*/
|
|
7
|
-
export class CrdbQuerierPool extends
|
|
8
|
+
export class CrdbQuerierPool extends AbstractPgQuerierPool {
|
|
8
9
|
pool;
|
|
9
10
|
constructor(opts, extra) {
|
|
10
|
-
super(
|
|
11
|
+
super(new CockroachDialect(extra?.namingStrategy), extra);
|
|
11
12
|
this.pool = new Pool(opts);
|
|
12
13
|
}
|
|
13
14
|
async getQuerier() {
|
|
14
|
-
return new CrdbQuerier(() => this.pool.connect(), this.extra);
|
|
15
|
-
}
|
|
16
|
-
async end() {
|
|
17
|
-
await this.pool.end();
|
|
15
|
+
return new CrdbQuerier(() => this.pool.connect(), this.dialectInstance, this.extra);
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
18
|
//# sourceMappingURL=crdbQuerierPool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crdbQuerierPool.js","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"crdbQuerierPool.js","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoC,MAAM,IAAI,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,qBAAgE;IAC1F,IAAI,CAAO;IAEpB,YAAY,IAAgB,EAAE,KAAoB;QAChD,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;CACF"}
|
package/dist/d1/d1Querier.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AbstractSqliteQuerier } from '../sqlite/abstractSqliteQuerier.js';
|
|
2
|
+
import type { SqliteDialect } from '../sqlite/index.js';
|
|
2
3
|
import type { ExtraOptions } from '../type/index.js';
|
|
3
4
|
export interface D1Meta {
|
|
4
5
|
duration?: number;
|
|
@@ -37,7 +38,7 @@ export interface D1Database {
|
|
|
37
38
|
export declare class D1Querier extends AbstractSqliteQuerier {
|
|
38
39
|
readonly db: D1Database;
|
|
39
40
|
readonly extra?: ExtraOptions | undefined;
|
|
40
|
-
constructor(db: D1Database, extra?: ExtraOptions | undefined);
|
|
41
|
+
constructor(db: D1Database, dialect: SqliteDialect, extra?: ExtraOptions | undefined);
|
|
41
42
|
internalAll<T>(query: string, values?: unknown[]): Promise<T[]>;
|
|
42
43
|
internalRun(query: string, values?: unknown[]): Promise<import("../type/query.js").QueryUpdateResult>;
|
|
43
44
|
internalRelease(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1Querier.d.ts","sourceRoot":"","sources":["../../src/d1/d1Querier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"d1Querier.d.ts","sourceRoot":"","sources":["../../src/d1/d1Querier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACnC,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC;IAChD,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7B,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC5C,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5C;AAED,qBAAa,SAAU,SAAQ,qBAAqB;IAEhD,QAAQ,CAAC,EAAE,EAAE,UAAU;aAEL,KAAK,CAAC,EAAE,YAAY;gBAF7B,EAAE,EAAE,UAAU,EACvB,OAAO,EAAE,aAAa,EACJ,KAAK,CAAC,EAAE,YAAY,YAAA;IAKzB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE;IAOhD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE;IAW7C,eAAe;CAG/B"}
|
package/dist/d1/d1Querier.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { AbstractSqliteQuerier } from '../sqlite/abstractSqliteQuerier.js';
|
|
2
|
-
import { SqliteDialect } from '../sqlite/index.js';
|
|
3
2
|
export class D1Querier extends AbstractSqliteQuerier {
|
|
4
3
|
db;
|
|
5
4
|
extra;
|
|
6
|
-
constructor(db, extra) {
|
|
7
|
-
super(
|
|
5
|
+
constructor(db, dialect, extra) {
|
|
6
|
+
super(dialect, extra);
|
|
8
7
|
this.db = db;
|
|
9
8
|
this.extra = extra;
|
|
10
9
|
}
|
|
@@ -22,7 +21,7 @@ export class D1Querier extends AbstractSqliteQuerier {
|
|
|
22
21
|
// though the runtime meta often has it.
|
|
23
22
|
const changes = res.meta?.changes ?? res.count ?? 0;
|
|
24
23
|
const lastInsertRowid = res.meta?.last_row_id;
|
|
25
|
-
return this.buildUpdateResult(changes, lastInsertRowid);
|
|
24
|
+
return this.buildUpdateResult({ changes, id: lastInsertRowid });
|
|
26
25
|
}
|
|
27
26
|
async internalRelease() {
|
|
28
27
|
// no-op
|
package/dist/d1/d1Querier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1Querier.js","sourceRoot":"","sources":["../../src/d1/d1Querier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"d1Querier.js","sourceRoot":"","sources":["../../src/d1/d1Querier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AA2C3E,MAAM,OAAO,SAAU,SAAQ,qBAAqB;IAEvC;IAES;IAHpB,YACW,EAAc,EACvB,OAAsB,EACJ,KAAoB;QAEtC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAJb,OAAE,GAAF,EAAE,CAAY;QAEL,UAAK,GAAL,KAAK,CAAe;IAGxC,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAI,KAAa,EAAE,MAAkB;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAK,CAAC;QACjC,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,MAAkB;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;QAC9B,yEAAyE;QACzE,wCAAwC;QACxC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC;QAC9C,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IAClE,CAAC;IAEQ,KAAK,CAAC,eAAe;QAC5B,QAAQ;IACV,CAAC;CACF"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AbstractQuerierPool } from '../querier/index.js';
|
|
2
|
+
import { SqliteDialect } from '../sqlite/index.js';
|
|
2
3
|
import type { ExtraOptions } from '../type/index.js';
|
|
3
4
|
import { type D1Database, D1Querier } from './d1Querier.js';
|
|
4
|
-
export declare class D1QuerierPool extends AbstractQuerierPool<D1Querier> {
|
|
5
|
+
export declare class D1QuerierPool extends AbstractQuerierPool<SqliteDialect, D1Querier> {
|
|
5
6
|
readonly db: D1Database;
|
|
6
7
|
constructor(db: D1Database, extra?: ExtraOptions);
|
|
7
8
|
getQuerier(): Promise<D1Querier>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1QuerierPool.d.ts","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"d1QuerierPool.d.ts","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC;IAE5E,QAAQ,CAAC,EAAE,EAAE,UAAU;gBAAd,EAAE,EAAE,UAAU,EACvB,KAAK,CAAC,EAAE,YAAY;IAKhB,UAAU;IAIV,GAAG;CAGV"}
|
package/dist/d1/d1QuerierPool.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { AbstractQuerierPool } from '../querier/index.js';
|
|
2
|
+
import { SqliteDialect } from '../sqlite/index.js';
|
|
2
3
|
import { D1Querier } from './d1Querier.js';
|
|
3
4
|
export class D1QuerierPool extends AbstractQuerierPool {
|
|
4
5
|
db;
|
|
5
6
|
constructor(db, extra) {
|
|
6
|
-
super(
|
|
7
|
+
super(new SqliteDialect(extra?.namingStrategy), extra);
|
|
7
8
|
this.db = db;
|
|
8
9
|
}
|
|
9
10
|
async getQuerier() {
|
|
10
|
-
return new D1Querier(this.db, this.extra);
|
|
11
|
+
return new D1Querier(this.db, this.dialectInstance, this.extra);
|
|
11
12
|
}
|
|
12
13
|
async end() {
|
|
13
14
|
// no-op for D1 bindings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1QuerierPool.js","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"d1QuerierPool.js","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAmB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,OAAO,aAAc,SAAQ,mBAA6C;IAEnE;IADX,YACW,EAAc,EACvB,KAAoB;QAEpB,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;QAH9C,OAAE,GAAF,EAAE,CAAY;IAIzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,GAAG;QACP,wBAAwB;IAC1B,CAAC;CACF"}
|