@uql/core 3.3.0 → 3.4.0
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 +5 -2
- package/README.md +14 -12
- package/dist/browser/uql-browser.min.js +83 -94
- package/dist/browser/uql-browser.min.js.map +1 -1
- package/dist/d1/d1Querier.d.ts +49 -0
- package/dist/d1/d1Querier.d.ts.map +1 -0
- package/dist/d1/d1Querier.js +40 -0
- package/dist/d1/d1Querier.js.map +1 -0
- package/dist/d1/d1QuerierPool.d.ts +10 -0
- package/dist/d1/d1QuerierPool.d.ts.map +1 -0
- package/dist/d1/d1QuerierPool.js +16 -0
- package/dist/d1/d1QuerierPool.js.map +1 -0
- package/dist/d1/index.d.ts +3 -0
- package/dist/d1/index.d.ts.map +1 -0
- package/dist/d1/index.js +3 -0
- package/dist/d1/index.js.map +1 -0
- package/dist/libsql/index.d.ts +3 -0
- package/dist/libsql/index.d.ts.map +1 -0
- package/dist/libsql/index.js +3 -0
- package/dist/libsql/index.js.map +1 -0
- package/dist/libsql/libsqlQuerier.d.ts +21 -0
- package/dist/libsql/libsqlQuerier.d.ts.map +1 -0
- package/dist/libsql/libsqlQuerier.js +81 -0
- package/dist/libsql/libsqlQuerier.js.map +1 -0
- package/dist/libsql/libsqlQuerierPool.d.ts +12 -0
- package/dist/libsql/libsqlQuerierPool.d.ts.map +1 -0
- package/dist/libsql/libsqlQuerierPool.js +19 -0
- package/dist/libsql/libsqlQuerierPool.js.map +1 -0
- package/dist/neon/index.d.ts +3 -0
- package/dist/neon/index.d.ts.map +1 -0
- package/dist/neon/index.js +3 -0
- package/dist/neon/index.js.map +1 -0
- package/dist/neon/neonQuerier.d.ts +18 -0
- package/dist/neon/neonQuerier.d.ts.map +1 -0
- package/dist/neon/neonQuerier.js +40 -0
- package/dist/neon/neonQuerier.js.map +1 -0
- package/dist/neon/neonQuerierPool.d.ts +11 -0
- package/dist/neon/neonQuerierPool.d.ts.map +1 -0
- package/dist/neon/neonQuerierPool.js +17 -0
- package/dist/neon/neonQuerierPool.js.map +1 -0
- package/package.json +16 -3
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { AbstractSqlQuerier } from '../querier/index.js';
|
|
2
|
+
import type { ExtraOptions } from '../type/index.js';
|
|
3
|
+
export interface D1Meta {
|
|
4
|
+
duration?: number;
|
|
5
|
+
size_after?: number;
|
|
6
|
+
rows_read?: number;
|
|
7
|
+
rows_written?: number;
|
|
8
|
+
last_row_id?: number;
|
|
9
|
+
changed_db?: boolean;
|
|
10
|
+
changes?: number;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}
|
|
13
|
+
export interface D1Result<T = unknown> {
|
|
14
|
+
results: T[];
|
|
15
|
+
success: boolean;
|
|
16
|
+
meta: D1Meta;
|
|
17
|
+
error?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface D1ExecResult {
|
|
20
|
+
count: number;
|
|
21
|
+
duration: number;
|
|
22
|
+
meta?: D1Meta;
|
|
23
|
+
}
|
|
24
|
+
export interface D1PreparedStatement {
|
|
25
|
+
bind(...values: any[]): D1PreparedStatement;
|
|
26
|
+
first<T = unknown>(colName?: string): Promise<T | null>;
|
|
27
|
+
run(): Promise<D1ExecResult>;
|
|
28
|
+
all<T = unknown>(): Promise<D1Result<T>>;
|
|
29
|
+
raw<T = unknown>(): Promise<T[]>;
|
|
30
|
+
}
|
|
31
|
+
export interface D1Database {
|
|
32
|
+
prepare(query: string): D1PreparedStatement;
|
|
33
|
+
dump(): Promise<ArrayBuffer>;
|
|
34
|
+
batch<T = unknown>(statements: D1PreparedStatement[]): Promise<D1Result<T>[]>;
|
|
35
|
+
exec(query: string): Promise<D1ExecResult>;
|
|
36
|
+
}
|
|
37
|
+
export declare class D1Querier extends AbstractSqlQuerier {
|
|
38
|
+
readonly db: D1Database;
|
|
39
|
+
readonly extra?: ExtraOptions;
|
|
40
|
+
constructor(db: D1Database, extra?: ExtraOptions);
|
|
41
|
+
internalAll<T>(query: string, values?: unknown[]): Promise<T[]>;
|
|
42
|
+
internalRun(query: string, values?: unknown[]): Promise<{
|
|
43
|
+
changes: number;
|
|
44
|
+
ids: number[];
|
|
45
|
+
firstId: number;
|
|
46
|
+
}>;
|
|
47
|
+
internalRelease(): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=d1Querier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d1Querier.d.ts","sourceRoot":"","sources":["../../src/d1/d1Querier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AAExE,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,GAAG,EAAE,GAAG,mBAAmB,CAAC;IAC5C,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,kBAAkB;IAE7C,QAAQ,CAAC,EAAE,EAAE,UAAU;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY;gBADpB,EAAE,EAAE,UAAU,EACd,KAAK,CAAC,EAAE,YAAY;IAKhB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE;IAQhD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE;;;;;IAqB7C,eAAe;CAG/B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AbstractSqlQuerier } from '../querier/index.js';
|
|
2
|
+
import { SqliteDialect } from '../sqlite/index.js';
|
|
3
|
+
export class D1Querier extends AbstractSqlQuerier {
|
|
4
|
+
db;
|
|
5
|
+
extra;
|
|
6
|
+
constructor(db, extra) {
|
|
7
|
+
super(new SqliteDialect(extra?.namingStrategy));
|
|
8
|
+
this.db = db;
|
|
9
|
+
this.extra = extra;
|
|
10
|
+
}
|
|
11
|
+
async internalAll(query, values) {
|
|
12
|
+
this.extra?.logger?.(query, values);
|
|
13
|
+
const stmt = this.db.prepare(query);
|
|
14
|
+
const bound = values?.length ? stmt.bind(...values) : stmt;
|
|
15
|
+
const res = await bound.all();
|
|
16
|
+
return res.results;
|
|
17
|
+
}
|
|
18
|
+
async internalRun(query, values) {
|
|
19
|
+
this.extra?.logger?.(query, values);
|
|
20
|
+
const stmt = this.db.prepare(query);
|
|
21
|
+
const bound = values?.length ? stmt.bind(...values) : stmt;
|
|
22
|
+
const res = await bound.run();
|
|
23
|
+
// D1ExecResult doesn't reliably return lastRowId in the type definition,
|
|
24
|
+
// though the runtime meta often has it.
|
|
25
|
+
// For now, we return 0 for firstId if not explicitly available, relying on UUIDs or RETURNING in future.
|
|
26
|
+
const changes = res.meta?.changes ?? res.count ?? 0;
|
|
27
|
+
const lastId = res.meta?.last_row_id;
|
|
28
|
+
let firstId;
|
|
29
|
+
let ids = [];
|
|
30
|
+
if (lastId && changes > 0) {
|
|
31
|
+
firstId = lastId - (changes - 1);
|
|
32
|
+
ids = Array.from({ length: changes }, (_, i) => firstId + i);
|
|
33
|
+
}
|
|
34
|
+
return { changes, ids, firstId };
|
|
35
|
+
}
|
|
36
|
+
async internalRelease() {
|
|
37
|
+
// no-op
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=d1Querier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d1Querier.js","sourceRoot":"","sources":["../../src/d1/d1Querier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA0CnD,MAAM,OAAO,SAAU,SAAQ,kBAAkB;IAEpC;IACA;IAFX,YACW,EAAc,EACd,KAAoB;QAE7B,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;QAHvC,OAAE,GAAF,EAAE,CAAY;QACd,UAAK,GAAL,KAAK,CAAe;IAG/B,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAI,KAAa,EAAE,MAAkB;QAC7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,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,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,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,yGAAyG;QACzG,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC;QACrC,IAAI,OAA2B,CAAC;QAChC,IAAI,GAAG,GAAa,EAAE,CAAC;QAEvB,IAAI,MAAM,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACjC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,OAAkB,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAA8B,CAAC;IAC/D,CAAC;IAEQ,KAAK,CAAC,eAAe;QAC5B,QAAQ;IACV,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractQuerierPool } from '../querier/index.js';
|
|
2
|
+
import type { ExtraOptions } from '../type/index.js';
|
|
3
|
+
import { type D1Database, D1Querier } from './d1Querier.js';
|
|
4
|
+
export declare class D1QuerierPool extends AbstractQuerierPool<D1Querier> {
|
|
5
|
+
readonly db: D1Database;
|
|
6
|
+
constructor(db: D1Database, extra?: ExtraOptions);
|
|
7
|
+
getQuerier(): Promise<D1Querier>;
|
|
8
|
+
end(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=d1QuerierPool.d.ts.map
|
|
@@ -0,0 +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;IAE7D,QAAQ,CAAC,EAAE,EAAE,UAAU;gBAAd,EAAE,EAAE,UAAU,EACvB,KAAK,CAAC,EAAE,YAAY;IAKhB,UAAU;IAIV,GAAG;CAGV"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AbstractQuerierPool } from '../querier/index.js';
|
|
2
|
+
import { D1Querier } from './d1Querier.js';
|
|
3
|
+
export class D1QuerierPool extends AbstractQuerierPool {
|
|
4
|
+
db;
|
|
5
|
+
constructor(db, extra) {
|
|
6
|
+
super('sqlite', extra);
|
|
7
|
+
this.db = db;
|
|
8
|
+
}
|
|
9
|
+
async getQuerier() {
|
|
10
|
+
return new D1Querier(this.db, this.extra);
|
|
11
|
+
}
|
|
12
|
+
async end() {
|
|
13
|
+
// no-op for D1 bindings
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=d1QuerierPool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d1QuerierPool.js","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAmB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,OAAO,aAAc,SAAQ,mBAA8B;IAEpD;IADX,YACW,EAAc,EACvB,KAAoB;QAEpB,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAHd,OAAE,GAAF,EAAE,CAAY;IAIzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,wBAAwB;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/d1/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
|
package/dist/d1/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/d1/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/libsql/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/libsql/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Client } from '@libsql/client';
|
|
2
|
+
import { AbstractSqlQuerier } from '../querier/index.js';
|
|
3
|
+
import type { ExtraOptions } from '../type/index.js';
|
|
4
|
+
export declare class LibsqlQuerier extends AbstractSqlQuerier {
|
|
5
|
+
readonly client: Client;
|
|
6
|
+
readonly extra?: ExtraOptions;
|
|
7
|
+
private tx?;
|
|
8
|
+
constructor(client: Client, extra?: ExtraOptions);
|
|
9
|
+
internalAll<T>(query: string, values?: unknown[]): Promise<T[]>;
|
|
10
|
+
internalRun(query: string, values?: unknown[]): Promise<{
|
|
11
|
+
changes: number;
|
|
12
|
+
ids: any[];
|
|
13
|
+
firstId: number;
|
|
14
|
+
}>;
|
|
15
|
+
get hasOpenTransaction(): boolean;
|
|
16
|
+
beginTransaction(): Promise<void>;
|
|
17
|
+
commitTransaction(): Promise<void>;
|
|
18
|
+
rollbackTransaction(): Promise<void>;
|
|
19
|
+
internalRelease(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=libsqlQuerier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libsqlQuerier.d.ts","sourceRoot":"","sources":["../../src/libsql/libsqlQuerier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAwB,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AAExE,qBAAa,aAAc,SAAQ,kBAAkB;IAIjD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY;IAJ/B,OAAO,CAAC,EAAE,CAAC,CAAc;gBAGd,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,YAAY;IAKhB,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;;;;;IAe5D,IAAa,kBAAkB,YAE9B;IAGc,gBAAgB;IAQhB,iBAAiB;IASjB,mBAAmB;IAQnB,eAAe;CAK/B"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Serialized } from '../querier/decorator/index.js';
|
|
3
|
+
import { AbstractSqlQuerier } from '../querier/index.js';
|
|
4
|
+
import { SqliteDialect } from '../sqlite/index.js';
|
|
5
|
+
export class LibsqlQuerier extends AbstractSqlQuerier {
|
|
6
|
+
client;
|
|
7
|
+
extra;
|
|
8
|
+
tx;
|
|
9
|
+
constructor(client, extra) {
|
|
10
|
+
super(new SqliteDialect(extra?.namingStrategy));
|
|
11
|
+
this.client = client;
|
|
12
|
+
this.extra = extra;
|
|
13
|
+
}
|
|
14
|
+
async internalAll(query, values) {
|
|
15
|
+
this.extra?.logger?.(query, values);
|
|
16
|
+
const target = this.tx || this.client;
|
|
17
|
+
const res = await target.execute({ sql: query, args: values });
|
|
18
|
+
return res.rows;
|
|
19
|
+
}
|
|
20
|
+
async internalRun(query, values) {
|
|
21
|
+
this.extra?.logger?.(query, values);
|
|
22
|
+
const target = this.tx || this.client;
|
|
23
|
+
const res = await target.execute({ sql: query, args: values });
|
|
24
|
+
const changes = res.rowsAffected;
|
|
25
|
+
const lastInsertRowid = res.lastInsertRowid;
|
|
26
|
+
const firstId = lastInsertRowid ? Number(lastInsertRowid) - (changes - 1) : undefined;
|
|
27
|
+
const ids = firstId
|
|
28
|
+
? Array(changes)
|
|
29
|
+
.fill(firstId)
|
|
30
|
+
.map((i, index) => i + index)
|
|
31
|
+
: [];
|
|
32
|
+
return { changes, ids, firstId };
|
|
33
|
+
}
|
|
34
|
+
get hasOpenTransaction() {
|
|
35
|
+
return !!this.tx;
|
|
36
|
+
}
|
|
37
|
+
async beginTransaction() {
|
|
38
|
+
if (this.tx) {
|
|
39
|
+
throw TypeError('pending transaction');
|
|
40
|
+
}
|
|
41
|
+
this.tx = await this.client.transaction('write');
|
|
42
|
+
}
|
|
43
|
+
async commitTransaction() {
|
|
44
|
+
if (!this.tx) {
|
|
45
|
+
throw TypeError('not a pending transaction');
|
|
46
|
+
}
|
|
47
|
+
await this.tx.commit();
|
|
48
|
+
this.tx = undefined;
|
|
49
|
+
}
|
|
50
|
+
async rollbackTransaction() {
|
|
51
|
+
if (!this.tx) {
|
|
52
|
+
throw TypeError('not a pending transaction');
|
|
53
|
+
}
|
|
54
|
+
await this.tx.rollback();
|
|
55
|
+
this.tx = undefined;
|
|
56
|
+
}
|
|
57
|
+
async internalRelease() {
|
|
58
|
+
if (this.tx) {
|
|
59
|
+
this.tx.close();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
__decorate([
|
|
64
|
+
Serialized(),
|
|
65
|
+
__metadata("design:type", Function),
|
|
66
|
+
__metadata("design:paramtypes", []),
|
|
67
|
+
__metadata("design:returntype", Promise)
|
|
68
|
+
], LibsqlQuerier.prototype, "beginTransaction", null);
|
|
69
|
+
__decorate([
|
|
70
|
+
Serialized(),
|
|
71
|
+
__metadata("design:type", Function),
|
|
72
|
+
__metadata("design:paramtypes", []),
|
|
73
|
+
__metadata("design:returntype", Promise)
|
|
74
|
+
], LibsqlQuerier.prototype, "commitTransaction", null);
|
|
75
|
+
__decorate([
|
|
76
|
+
Serialized(),
|
|
77
|
+
__metadata("design:type", Function),
|
|
78
|
+
__metadata("design:paramtypes", []),
|
|
79
|
+
__metadata("design:returntype", Promise)
|
|
80
|
+
], LibsqlQuerier.prototype, "rollbackTransaction", null);
|
|
81
|
+
//# sourceMappingURL=libsqlQuerier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libsqlQuerier.js","sourceRoot":"","sources":["../../src/libsql/libsqlQuerier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Client, type Config } from '@libsql/client';
|
|
2
|
+
import { AbstractQuerierPool } from '../querier/index.js';
|
|
3
|
+
import type { ExtraOptions } from '../type/index.js';
|
|
4
|
+
import { LibsqlQuerier } from './libsqlQuerier.js';
|
|
5
|
+
export declare class LibsqlQuerierPool extends AbstractQuerierPool<LibsqlQuerier> {
|
|
6
|
+
readonly config: Config;
|
|
7
|
+
readonly client: Client;
|
|
8
|
+
constructor(config: Config, extra?: ExtraOptions);
|
|
9
|
+
getQuerier(): Promise<LibsqlQuerier>;
|
|
10
|
+
end(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=libsqlQuerierPool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libsqlQuerierPool.d.ts","sourceRoot":"","sources":["../../src/libsql/libsqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAgB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAIrE,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGb,MAAM,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,YAAY;IAMhB,UAAU;IAIV,GAAG;CAGV"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createClient } from '@libsql/client';
|
|
2
|
+
import { AbstractQuerierPool } from '../querier/index.js';
|
|
3
|
+
import { LibsqlQuerier } from './libsqlQuerier.js';
|
|
4
|
+
export class LibsqlQuerierPool extends AbstractQuerierPool {
|
|
5
|
+
config;
|
|
6
|
+
client;
|
|
7
|
+
constructor(config, extra) {
|
|
8
|
+
super('sqlite', extra);
|
|
9
|
+
this.config = config;
|
|
10
|
+
this.client = createClient(config);
|
|
11
|
+
}
|
|
12
|
+
async getQuerier() {
|
|
13
|
+
return new LibsqlQuerier(this.client, this.extra);
|
|
14
|
+
}
|
|
15
|
+
async end() {
|
|
16
|
+
this.client.close();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=libsqlQuerierPool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libsqlQuerierPool.js","sourceRoot":"","sources":["../../src/libsql/libsqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,iBAAkB,SAAQ,mBAAkC;IAI5D;IAHF,MAAM,CAAS;IAExB,YACW,MAAc,EACvB,KAAoB;QAEpB,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAHd,WAAM,GAAN,MAAM,CAAQ;QAIvB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/neon/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/neon/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PoolClient } from '@neondatabase/serverless';
|
|
2
|
+
import { AbstractSqlQuerier } from '../querier/index.js';
|
|
3
|
+
import type { ExtraOptions } from '../type/index.js';
|
|
4
|
+
export declare class NeonQuerier extends AbstractSqlQuerier {
|
|
5
|
+
readonly connect: () => Promise<PoolClient>;
|
|
6
|
+
readonly extra?: ExtraOptions;
|
|
7
|
+
conn: PoolClient;
|
|
8
|
+
constructor(connect: () => Promise<PoolClient>, extra?: ExtraOptions);
|
|
9
|
+
internalAll<T>(query: string, values?: unknown[]): Promise<T[]>;
|
|
10
|
+
internalRun(query: string, values?: unknown[]): Promise<{
|
|
11
|
+
changes: number;
|
|
12
|
+
ids: any[];
|
|
13
|
+
firstId: any;
|
|
14
|
+
}>;
|
|
15
|
+
lazyConnect(): Promise<void>;
|
|
16
|
+
internalRelease(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=neonQuerier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neonQuerier.d.ts","sourceRoot":"","sources":["../../src/neon/neonQuerier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AAExE,qBAAa,WAAY,SAAQ,kBAAkB;IAI/C,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY;IAJ/B,IAAI,EAAE,UAAU,CAAC;gBAGN,OAAO,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,EAClC,KAAK,CAAC,EAAE,YAAY;IAKhB,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;;;;;IAStD,WAAW;IAIF,eAAe;CAU/B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PostgresDialect } from '../postgres/index.js';
|
|
2
|
+
import { AbstractSqlQuerier } from '../querier/index.js';
|
|
3
|
+
export class NeonQuerier extends AbstractSqlQuerier {
|
|
4
|
+
connect;
|
|
5
|
+
extra;
|
|
6
|
+
conn;
|
|
7
|
+
constructor(connect, extra) {
|
|
8
|
+
super(new PostgresDialect(extra?.namingStrategy));
|
|
9
|
+
this.connect = connect;
|
|
10
|
+
this.extra = extra;
|
|
11
|
+
}
|
|
12
|
+
async internalAll(query, values) {
|
|
13
|
+
this.extra?.logger?.(query, values);
|
|
14
|
+
await this.lazyConnect();
|
|
15
|
+
const res = await this.conn.query(query, values);
|
|
16
|
+
return res.rows;
|
|
17
|
+
}
|
|
18
|
+
async internalRun(query, values) {
|
|
19
|
+
this.extra?.logger?.(query, values);
|
|
20
|
+
await this.lazyConnect();
|
|
21
|
+
const res = await this.conn.query(query, values);
|
|
22
|
+
const changes = res.rowCount ?? 0;
|
|
23
|
+
const ids = res.rows.map((r) => r.id);
|
|
24
|
+
return { changes, ids, firstId: ids[0] };
|
|
25
|
+
}
|
|
26
|
+
async lazyConnect() {
|
|
27
|
+
this.conn ??= await this.connect();
|
|
28
|
+
}
|
|
29
|
+
async internalRelease() {
|
|
30
|
+
if (this.hasOpenTransaction) {
|
|
31
|
+
throw TypeError('pending transaction');
|
|
32
|
+
}
|
|
33
|
+
if (!this.conn) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
await this.conn.release();
|
|
37
|
+
this.conn = undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=neonQuerier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neonQuerier.js","sourceRoot":"","sources":["../../src/neon/neonQuerier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,OAAO,WAAY,SAAQ,kBAAkB;IAItC;IACA;IAJX,IAAI,CAAa;IAEjB,YACW,OAAkC,EAClC,KAAoB;QAE7B,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;QAHzC,YAAO,GAAP,OAAO,CAA2B;QAClC,UAAK,GAAL,KAAK,CAAe;IAG/B,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAI,KAAa,EAAE,MAAkB;QAC7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC,IAAW,CAAC;IACzB,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,MAAkB;QAC1D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAA8B,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAEQ,KAAK,CAAC,eAAe;QAC5B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Pool, type PoolConfig } from '@neondatabase/serverless';
|
|
2
|
+
import { AbstractQuerierPool } from '../querier/index.js';
|
|
3
|
+
import type { ExtraOptions } from '../type/index.js';
|
|
4
|
+
import { NeonQuerier } from './neonQuerier.js';
|
|
5
|
+
export declare class NeonQuerierPool extends AbstractQuerierPool<NeonQuerier> {
|
|
6
|
+
readonly pool: Pool;
|
|
7
|
+
constructor(opts: PoolConfig, extra?: ExtraOptions);
|
|
8
|
+
getQuerier(): Promise<NeonQuerier>;
|
|
9
|
+
end(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=neonQuerierPool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neonQuerierPool.d.ts","sourceRoot":"","sources":["../../src/neon/neonQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,eAAgB,SAAQ,mBAAmB,CAAC,WAAW,CAAC;IACnE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBAER,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY;IAK5C,UAAU;IAIV,GAAG;CAGV"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pool } from '@neondatabase/serverless';
|
|
2
|
+
import { AbstractQuerierPool } from '../querier/index.js';
|
|
3
|
+
import { NeonQuerier } from './neonQuerier.js';
|
|
4
|
+
export class NeonQuerierPool extends AbstractQuerierPool {
|
|
5
|
+
pool;
|
|
6
|
+
constructor(opts, extra) {
|
|
7
|
+
super('postgres', extra);
|
|
8
|
+
this.pool = new Pool(opts);
|
|
9
|
+
}
|
|
10
|
+
async getQuerier() {
|
|
11
|
+
return new NeonQuerier(() => this.pool.connect(), this.extra);
|
|
12
|
+
}
|
|
13
|
+
async end() {
|
|
14
|
+
await this.pool.end();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=neonQuerierPool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neonQuerierPool.js","sourceRoot":"","sources":["../../src/neon/neonQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,eAAgB,SAAQ,mBAAgC;IAC1D,IAAI,CAAO;IAEpB,YAAY,IAAgB,EAAE,KAAoB;QAChD,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACzB,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,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"homepage": "https://uql.app",
|
|
4
4
|
"description": "One Language. Frontend to Backend.",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "3.
|
|
6
|
+
"version": "3.4.0",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
@@ -32,7 +32,10 @@
|
|
|
32
32
|
"types": "./dist/browser/index.d.ts",
|
|
33
33
|
"import": "./dist/browser/index.js",
|
|
34
34
|
"default": "./dist/browser/uql-browser.min.js"
|
|
35
|
-
}
|
|
35
|
+
},
|
|
36
|
+
"./libsql": "./dist/libsql/index.js",
|
|
37
|
+
"./neon": "./dist/neon/index.js",
|
|
38
|
+
"./d1": "./dist/d1/index.js"
|
|
36
39
|
},
|
|
37
40
|
"files": [
|
|
38
41
|
"dist",
|
|
@@ -54,6 +57,8 @@
|
|
|
54
57
|
"tslib": "^2.8.1"
|
|
55
58
|
},
|
|
56
59
|
"peerDependencies": {
|
|
60
|
+
"@libsql/client": ">=0.6.0",
|
|
61
|
+
"@neondatabase/serverless": ">=0.9.0",
|
|
57
62
|
"better-sqlite3": ">=9.0.0",
|
|
58
63
|
"express": ">=5.0.0",
|
|
59
64
|
"mariadb": ">=3.0.0",
|
|
@@ -79,9 +84,17 @@
|
|
|
79
84
|
},
|
|
80
85
|
"better-sqlite3": {
|
|
81
86
|
"optional": true
|
|
87
|
+
},
|
|
88
|
+
"@libsql/client": {
|
|
89
|
+
"optional": true
|
|
90
|
+
},
|
|
91
|
+
"@neondatabase/serverless": {
|
|
92
|
+
"optional": true
|
|
82
93
|
}
|
|
83
94
|
},
|
|
84
95
|
"devDependencies": {
|
|
96
|
+
"@libsql/client": "latest",
|
|
97
|
+
"@neondatabase/serverless": "latest",
|
|
85
98
|
"@swc/helpers": "^0.5.18",
|
|
86
99
|
"@types/better-sqlite3": "^7.6.13",
|
|
87
100
|
"@types/express": "^5.0.6",
|
|
@@ -133,5 +146,5 @@
|
|
|
133
146
|
"publishConfig": {
|
|
134
147
|
"access": "public"
|
|
135
148
|
},
|
|
136
|
-
"gitHead": "
|
|
149
|
+
"gitHead": "54b9d31df520a8647dd1d7df366a4fc58a9637d1"
|
|
137
150
|
}
|