drizzle-orm 1.0.0-beta.1-860c2f2 → 1.0.0-beta.1-ac4ce44

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.
Files changed (85) hide show
  1. package/d1/driver.cjs.map +1 -1
  2. package/d1/driver.d.cts +1 -1
  3. package/d1/driver.d.ts +1 -1
  4. package/d1/driver.js.map +1 -1
  5. package/d1/session.cjs.map +1 -1
  6. package/d1/session.d.cts +1 -1
  7. package/d1/session.d.ts +1 -1
  8. package/d1/session.js.map +1 -1
  9. package/gel-core/db.cjs +1 -0
  10. package/gel-core/db.cjs.map +1 -1
  11. package/gel-core/db.d.cts +1 -0
  12. package/gel-core/db.d.ts +1 -0
  13. package/gel-core/db.js +1 -0
  14. package/gel-core/db.js.map +1 -1
  15. package/mysql-core/db.cjs +1 -0
  16. package/mysql-core/db.cjs.map +1 -1
  17. package/mysql-core/db.d.cts +1 -0
  18. package/mysql-core/db.d.ts +1 -0
  19. package/mysql-core/db.js +1 -0
  20. package/mysql-core/db.js.map +1 -1
  21. package/node-postgres/session.cjs.map +1 -1
  22. package/node-postgres/session.js.map +1 -1
  23. package/package.json +137 -50
  24. package/pg-core/db.cjs +1 -0
  25. package/pg-core/db.cjs.map +1 -1
  26. package/pg-core/db.d.cts +1 -0
  27. package/pg-core/db.d.ts +1 -0
  28. package/pg-core/db.js +1 -0
  29. package/pg-core/db.js.map +1 -1
  30. package/singlestore-core/db.cjs +1 -0
  31. package/singlestore-core/db.cjs.map +1 -1
  32. package/singlestore-core/db.d.cts +1 -0
  33. package/singlestore-core/db.d.ts +1 -0
  34. package/singlestore-core/db.js +1 -0
  35. package/singlestore-core/db.js.map +1 -1
  36. package/sqlite-core/db.cjs +1 -0
  37. package/sqlite-core/db.cjs.map +1 -1
  38. package/sqlite-core/db.d.cts +1 -0
  39. package/sqlite-core/db.d.ts +1 -0
  40. package/sqlite-core/db.js +1 -0
  41. package/sqlite-core/db.js.map +1 -1
  42. package/sqlite-core/dialect.cjs +1 -1
  43. package/sqlite-core/dialect.cjs.map +1 -1
  44. package/sqlite-core/dialect.js +1 -1
  45. package/sqlite-core/dialect.js.map +1 -1
  46. package/tursodatabase/database.cjs +50 -0
  47. package/tursodatabase/database.cjs.map +1 -0
  48. package/tursodatabase/database.d.cts +28 -0
  49. package/tursodatabase/database.d.ts +28 -0
  50. package/tursodatabase/database.js +26 -0
  51. package/tursodatabase/database.js.map +1 -0
  52. package/tursodatabase/driver-core.cjs +91 -0
  53. package/tursodatabase/driver-core.cjs.map +1 -0
  54. package/tursodatabase/driver-core.d.cts +8 -0
  55. package/tursodatabase/driver-core.d.ts +8 -0
  56. package/tursodatabase/driver-core.js +56 -0
  57. package/tursodatabase/driver-core.js.map +1 -0
  58. package/tursodatabase/index.cjs +25 -0
  59. package/tursodatabase/index.cjs.map +1 -0
  60. package/tursodatabase/index.d.cts +2 -0
  61. package/tursodatabase/index.d.ts +2 -0
  62. package/tursodatabase/index.js +3 -0
  63. package/tursodatabase/index.js.map +1 -0
  64. package/tursodatabase/migrator.cjs +33 -0
  65. package/tursodatabase/migrator.cjs.map +1 -0
  66. package/tursodatabase/migrator.d.cts +4 -0
  67. package/tursodatabase/migrator.d.ts +4 -0
  68. package/tursodatabase/migrator.js +9 -0
  69. package/tursodatabase/migrator.js.map +1 -0
  70. package/tursodatabase/session.cjs +205 -0
  71. package/tursodatabase/session.cjs.map +1 -0
  72. package/tursodatabase/session.d.cts +70 -0
  73. package/tursodatabase/session.d.ts +70 -0
  74. package/tursodatabase/session.js +179 -0
  75. package/tursodatabase/session.js.map +1 -0
  76. package/tursodatabase/wasm.cjs +50 -0
  77. package/tursodatabase/wasm.cjs.map +1 -0
  78. package/tursodatabase/wasm.d.cts +28 -0
  79. package/tursodatabase/wasm.d.ts +28 -0
  80. package/tursodatabase/wasm.js +26 -0
  81. package/tursodatabase/wasm.js.map +1 -0
  82. package/version.cjs +1 -1
  83. package/version.d.cts +1 -1
  84. package/version.d.ts +1 -1
  85. package/version.js +1 -1
@@ -0,0 +1,56 @@
1
+ import * as V1 from "../_relations.js";
2
+ import { entityKind } from "../entity.js";
3
+ import { DefaultLogger } from "../logger.js";
4
+ import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
5
+ import { SQLiteAsyncDialect } from "../sqlite-core/dialect.js";
6
+ import { TursoDatabaseSession } from "./session.js";
7
+ class TursoDatabaseDatabase extends BaseSQLiteDatabase {
8
+ static [entityKind] = "TursoDatabaseDatabase";
9
+ }
10
+ function construct(client, config = {}) {
11
+ const dialect = new SQLiteAsyncDialect({ casing: config.casing });
12
+ let logger;
13
+ if (config.logger === true) {
14
+ logger = new DefaultLogger();
15
+ } else if (config.logger !== false) {
16
+ logger = config.logger;
17
+ }
18
+ let schema;
19
+ if (config.schema) {
20
+ const tablesConfig = V1.extractTablesRelationalConfig(
21
+ config.schema,
22
+ V1.createTableRelationsHelpers
23
+ );
24
+ schema = {
25
+ fullSchema: config.schema,
26
+ schema: tablesConfig.tables,
27
+ tableNamesMap: tablesConfig.tableNamesMap
28
+ };
29
+ }
30
+ const relations = config.relations ?? {};
31
+ const session = new TursoDatabaseSession(
32
+ client,
33
+ dialect,
34
+ relations,
35
+ schema,
36
+ { logger, cache: config.cache }
37
+ );
38
+ const db = new TursoDatabaseDatabase(
39
+ "async",
40
+ dialect,
41
+ session,
42
+ relations,
43
+ schema
44
+ );
45
+ db.$client = client;
46
+ db.$cache = config.cache;
47
+ if (db.$cache) {
48
+ db.$cache["invalidate"] = config.cache?.onMutate;
49
+ }
50
+ return db;
51
+ }
52
+ export {
53
+ TursoDatabaseDatabase,
54
+ construct
55
+ };
56
+ //# sourceMappingURL=driver-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tursodatabase/driver-core.ts"],"sourcesContent":["import type { DatabasePromise } from '@tursodatabase/database-common';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { TursoDatabaseSession } from './session.ts';\n\nexport type TursoDatabaseRunResult = Awaited<ReturnType<ReturnType<DatabasePromise['prepare']>['run']>>;\n\nexport class TursoDatabaseDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', TursoDatabaseRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TursoDatabaseDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: TursoDatabaseSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: DatabasePromise,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TursoDatabaseDatabase<TSchema, TRelations> & {\n\t$client: DatabasePromise;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TursoDatabaseSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache },\n\t);\n\tconst db = new TursoDatabaseDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as TursoDatabaseSession<\n\t\t\tTSchema,\n\t\t\tTRelations,\n\t\t\tV1.ExtractTablesWithRelations<TSchema>\n\t\t>,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as TursoDatabaseDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\treturn db as any;\n}\n"],"mappings":"AACA,YAAY,QAAQ;AACpB,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAE9B,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,4BAA4B;AAI9B,MAAM,8BAGH,mBAAyE;AAAA,EAClF,QAA0B,UAAU,IAAY;AAQjD;AAGO,SAAS,UAIf,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO,aAAa,CAAC;AACvC,QAAM,UAAU,IAAI;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,OAAO,OAAO,MAAM;AAAA,EAC/B;AACA,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IAKA;AAAA,IACA;AAAA,EACD;AACA,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AACA,SAAO;AACR;","names":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var tursodatabase_exports = {};
17
+ module.exports = __toCommonJS(tursodatabase_exports);
18
+ __reExport(tursodatabase_exports, require("./driver-core.cjs"), module.exports);
19
+ __reExport(tursodatabase_exports, require("./session.cjs"), module.exports);
20
+ // Annotate the CommonJS export names for ESM import in node:
21
+ 0 && (module.exports = {
22
+ ...require("./driver-core.cjs"),
23
+ ...require("./session.cjs")
24
+ });
25
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tursodatabase/index.ts"],"sourcesContent":["export * from './driver-core.ts';\nexport * from './session.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,kCAAc,6BAAd;AACA,kCAAc,yBADd;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./driver-core.cjs";
2
+ export * from "./session.cjs";
@@ -0,0 +1,2 @@
1
+ export * from "./driver-core.js";
2
+ export * from "./session.js";
@@ -0,0 +1,3 @@
1
+ export * from "./driver-core.js";
2
+ export * from "./session.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tursodatabase/index.ts"],"sourcesContent":["export * from './driver-core.ts';\nexport * from './session.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var migrator_exports = {};
20
+ __export(migrator_exports, {
21
+ migrate: () => migrate
22
+ });
23
+ module.exports = __toCommonJS(migrator_exports);
24
+ var import_migrator = require("../migrator.cjs");
25
+ async function migrate(db, config) {
26
+ const migrations = (0, import_migrator.readMigrationFiles)(config);
27
+ await db.dialect.migrate(migrations, db.session, config);
28
+ }
29
+ // Annotate the CommonJS export names for ESM import in node:
30
+ 0 && (module.exports = {
31
+ migrate
32
+ });
33
+ //# sourceMappingURL=migrator.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tursodatabase/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { TursoDatabaseDatabase } from './driver-core.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: TursoDatabaseDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session as any, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAInC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAgB,MAAM;AAC/D;","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { MigrationConfig } from "../migrator.cjs";
2
+ import type { AnyRelations } from "../relations.cjs";
3
+ import type { TursoDatabaseDatabase } from "./driver-core.cjs";
4
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: TursoDatabaseDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
@@ -0,0 +1,4 @@
1
+ import type { MigrationConfig } from "../migrator.js";
2
+ import type { AnyRelations } from "../relations.js";
3
+ import type { TursoDatabaseDatabase } from "./driver-core.js";
4
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: TursoDatabaseDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
@@ -0,0 +1,9 @@
1
+ import { readMigrationFiles } from "../migrator.js";
2
+ async function migrate(db, config) {
3
+ const migrations = readMigrationFiles(config);
4
+ await db.dialect.migrate(migrations, db.session, config);
5
+ }
6
+ export {
7
+ migrate
8
+ };
9
+ //# sourceMappingURL=migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tursodatabase/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { TursoDatabaseDatabase } from './driver-core.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: TursoDatabaseDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session as any, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAInC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAgB,MAAM;AAC/D;","names":[]}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var session_exports = {};
20
+ __export(session_exports, {
21
+ TursoDatabasePreparedQuery: () => TursoDatabasePreparedQuery,
22
+ TursoDatabaseSession: () => TursoDatabaseSession,
23
+ TursoDatabaseTransaction: () => TursoDatabaseTransaction
24
+ });
25
+ module.exports = __toCommonJS(session_exports);
26
+ var import_core = require("../cache/core/index.cjs");
27
+ var import_entity = require("../entity.cjs");
28
+ var import_errors = require("../errors.cjs");
29
+ var import_logger = require("../logger.cjs");
30
+ var import_sql = require("../sql/sql.cjs");
31
+ var import_sqlite_core = require("../sqlite-core/index.cjs");
32
+ var import_session = require("../sqlite-core/session.cjs");
33
+ var import_utils = require("../utils.cjs");
34
+ class TursoDatabaseSession extends import_session.SQLiteSession {
35
+ constructor(client, dialect, relations, schema, options) {
36
+ super(dialect);
37
+ this.client = client;
38
+ this.relations = relations;
39
+ this.schema = schema;
40
+ this.options = options;
41
+ this.logger = options.logger ?? new import_logger.NoopLogger();
42
+ this.cache = options.cache ?? new import_core.NoopCache();
43
+ }
44
+ static [import_entity.entityKind] = "TursoDatabaseSession";
45
+ logger;
46
+ cache;
47
+ prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
48
+ const stmt = this.client.prepare(query.sql);
49
+ return new TursoDatabasePreparedQuery(
50
+ stmt,
51
+ query,
52
+ this.logger,
53
+ this.cache,
54
+ queryMetadata,
55
+ cacheConfig,
56
+ fields,
57
+ executeMethod,
58
+ isResponseInArrayMode,
59
+ customResultMapper
60
+ );
61
+ }
62
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
63
+ const stmt = this.client.prepare(query.sql);
64
+ return new TursoDatabasePreparedQuery(
65
+ stmt,
66
+ query,
67
+ this.logger,
68
+ this.cache,
69
+ void 0,
70
+ void 0,
71
+ fields,
72
+ executeMethod,
73
+ false,
74
+ customResultMapper,
75
+ true
76
+ );
77
+ }
78
+ async transaction(transaction, _config, tx) {
79
+ const session = new TursoDatabaseSession(
80
+ this.client,
81
+ this.dialect,
82
+ this.relations,
83
+ this.schema,
84
+ this.options
85
+ );
86
+ const localTx = tx ?? new TursoDatabaseTransaction(
87
+ "async",
88
+ this.dialect,
89
+ session,
90
+ this.relations,
91
+ this.schema
92
+ );
93
+ const clientTx = this.client.transaction(async () => await transaction(localTx));
94
+ const result = await clientTx();
95
+ return result;
96
+ }
97
+ async run(query) {
98
+ const staticQuery = this.dialect.sqlToQuery(query);
99
+ try {
100
+ return await this.prepareOneTimeQuery(staticQuery, void 0, "run", false).run();
101
+ } catch (err) {
102
+ throw new import_errors.DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });
103
+ }
104
+ }
105
+ async all(query) {
106
+ return await this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), void 0, "run", false).all();
107
+ }
108
+ async get(query) {
109
+ return await this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), void 0, "run", false).get();
110
+ }
111
+ async values(query) {
112
+ return await this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), void 0, "run", false).values();
113
+ }
114
+ }
115
+ class TursoDatabaseTransaction extends import_sqlite_core.SQLiteTransaction {
116
+ static [import_entity.entityKind] = "TursoDatabaseTransaction";
117
+ async transaction(_transaction) {
118
+ throw new Error("Nested transactions are not supported");
119
+ }
120
+ }
121
+ class TursoDatabasePreparedQuery extends import_session.SQLitePreparedQuery {
122
+ constructor(stmt, query, logger, cache, queryMetadata, cacheConfig, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
123
+ super("async", executeMethod, query, cache, queryMetadata, cacheConfig);
124
+ this.stmt = stmt;
125
+ this.logger = logger;
126
+ this.fields = fields;
127
+ this._isResponseInArrayMode = _isResponseInArrayMode;
128
+ this.customResultMapper = customResultMapper;
129
+ this.isRqbV2Query = isRqbV2Query;
130
+ this.customResultMapper = customResultMapper;
131
+ this.fields = fields;
132
+ }
133
+ static [import_entity.entityKind] = "TursoDatabasePreparedQuery";
134
+ async run(placeholderValues) {
135
+ const { stmt, query, logger } = this;
136
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
137
+ logger.logQuery(query.sql, params);
138
+ return await this.queryWithCache(query.sql, params, async () => {
139
+ return await (params.length ? stmt.run(...params) : stmt.run());
140
+ });
141
+ }
142
+ async all(placeholderValues) {
143
+ if (this.isRqbV2Query) return await this.allRqbV2(placeholderValues);
144
+ const { fields, logger, query, customResultMapper, joinsNotNullableMap, stmt } = this;
145
+ if (!fields && !customResultMapper) {
146
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
147
+ logger.logQuery(query.sql, params);
148
+ return await this.queryWithCache(query.sql, params, async () => {
149
+ return await (params.length ? stmt.raw(false).all(...params) : stmt.raw(false).all());
150
+ });
151
+ }
152
+ const rows = await this.values(placeholderValues);
153
+ return rows.map((row) => (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap));
154
+ }
155
+ async allRqbV2(placeholderValues) {
156
+ const { logger, query, customResultMapper, stmt } = this;
157
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
158
+ logger.logQuery(query.sql, params);
159
+ const rows = await (params.length ? stmt.raw(false).all(...params) : stmt.raw(false).all());
160
+ return customResultMapper(rows);
161
+ }
162
+ async get(placeholderValues) {
163
+ if (this.isRqbV2Query) return await this.getRqbV2(placeholderValues);
164
+ const { fields, logger, query, stmt, customResultMapper, joinsNotNullableMap } = this;
165
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
166
+ if (!fields && !customResultMapper) {
167
+ logger.logQuery(query.sql, params);
168
+ return await this.queryWithCache(query.sql, params, async () => {
169
+ return await (params.length ? stmt.raw(false).get(...params) : stmt.raw(false).get());
170
+ });
171
+ }
172
+ const row = await this.queryWithCache(query.sql, params, async () => {
173
+ return await (params.length ? stmt.raw(true).get(...params) : stmt.raw(true).get());
174
+ });
175
+ if (row === void 0) return row;
176
+ return (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap);
177
+ }
178
+ async getRqbV2(placeholderValues) {
179
+ const { logger, query, stmt, customResultMapper } = this;
180
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
181
+ logger.logQuery(query.sql, params);
182
+ const row = await (params.length ? stmt.raw(false).get(...params) : stmt.raw(false).get());
183
+ if (row === void 0) return row;
184
+ return customResultMapper([row]);
185
+ }
186
+ async values(placeholderValues) {
187
+ const { logger, stmt, query } = this;
188
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
189
+ logger.logQuery(query.sql, params);
190
+ return await this.queryWithCache(query.sql, params, async () => {
191
+ return await (params.length ? stmt.raw(true).all(...params) : stmt.raw(true).all());
192
+ });
193
+ }
194
+ /** @internal */
195
+ isResponseInArrayMode() {
196
+ return this._isResponseInArrayMode;
197
+ }
198
+ }
199
+ // Annotate the CommonJS export names for ESM import in node:
200
+ 0 && (module.exports = {
201
+ TursoDatabasePreparedQuery,
202
+ TursoDatabaseSession,
203
+ TursoDatabaseTransaction
204
+ });
205
+ //# sourceMappingURL=session.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tursodatabase/session.ts"],"sourcesContent":["import type { DatabasePromise } from '@tursodatabase/database-common';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DrizzleError } from '~/errors.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tResult,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport type { TursoDatabaseRunResult } from './driver-core.ts';\n\nexport interface TursoDatabaseSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class TursoDatabaseSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'async', TursoDatabaseRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'TursoDatabaseSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: DatabasePromise,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TursoDatabaseSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): TursoDatabasePreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\n\t\treturn new TursoDatabasePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): TursoDatabasePreparedQuery<T, true> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\n\t\treturn new TursoDatabasePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (db: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\t_config?: SQLiteTransactionConfig,\n\t\ttx?: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>,\n\t): Promise<T> {\n\t\tconst session = new TursoDatabaseSession<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t);\n\t\tconst localTx = tx ?? new TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t'async',\n\t\t\tthis.dialect,\n\t\t\tsession,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t);\n\n\t\tconst clientTx = this.client.transaction(async () => await transaction(localTx));\n\n\t\tconst result = await clientTx();\n\t\treturn result;\n\t}\n\n\toverride async run(query: SQL): Result<'async', TursoDatabaseRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn await this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<\n\t\t\t\t'async',\n\t\t\t\tTursoDatabaseRunResult\n\t\t\t>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\toverride async all<T = unknown>(query: SQL): Result<'async', T[]> {\n\t\treturn await this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\t'async',\n\t\t\tT[]\n\t\t>;\n\t}\n\n\toverride async get<T = unknown>(query: SQL): Result<'async', T> {\n\t\treturn await this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\t'async',\n\t\t\tT\n\t\t>;\n\t}\n\n\toverride async values<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<'async', T[]> {\n\t\treturn await this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\t'async',\n\t\t\tT[]\n\t\t>;\n\t}\n}\n\nexport class TursoDatabaseTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'async', TursoDatabaseRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'TursoDatabaseTransaction';\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\t// Not supported by driver\n\t\tthrow new Error('Nested transactions are not supported');\n\n\t\t// const savepointName = `sp${this.nestedIndex}`;\n\n\t\t// const tx = new TursoDatabaseTransaction(\n\t\t// \t'async',\n\t\t// \tthis.dialect,\n\t\t// \tthis.session,\n\t\t// \tthis.relations,\n\t\t// \tthis.schema,\n\t\t// \tthis.nestedIndex + 1,\n\t\t// );\n\n\t\t// await this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\t// try {\n\t\t// \tconst result = await (<TursoDatabaseSession<TFullSchema, TRelations, TSchema>> (this.session)).transaction(\n\t\t// \t\ttransaction,\n\t\t// \t\tundefined,\n\t\t// \t\ttx,\n\t\t// \t);\n\t\t// \tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t// \treturn result;\n\t\t// } catch (err) {\n\t\t// \tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t// \tthrow err;\n\t\t// }\n\t}\n}\n\nexport class TursoDatabasePreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends SQLitePreparedQuery<\n\t{\n\t\ttype: 'async';\n\t\trun: TursoDatabaseRunResult;\n\t\tall: T['all'];\n\t\tget: T['get'];\n\t\tvalues: T['values'];\n\t\texecute: T['execute'];\n\t}\n> {\n\tstatic override readonly [entityKind]: string = 'TursoDatabasePreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: ReturnType<DatabasePromise['prepare']>,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\t/** @internal */ public fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('async', executeMethod, query, cache, queryMetadata, cacheConfig);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t}\n\n\tasync run(placeholderValues?: Record<string, unknown>): Promise<TursoDatabaseRunResult> {\n\t\tconst { stmt, query, logger } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await (params.length ? stmt.run(...params) : stmt.run());\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tif (this.isRqbV2Query) return await this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, logger, query, customResultMapper, joinsNotNullableMap, stmt } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\treturn await (params.length ? stmt.raw(false).all(...params) : stmt.raw(false).all());\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async allRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { logger, query, customResultMapper, stmt } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = await (params.length ? stmt.raw(false).all(...params) : stmt.raw(false).all());\n\n\t\treturn (customResultMapper as (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown)(rows as Record<string, unknown>[]) as T['all'];\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tif (this.isRqbV2Query) return await this.getRqbV2(placeholderValues);\n\n\t\tconst { fields, logger, query, stmt, customResultMapper, joinsNotNullableMap } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\treturn await (params.length ? stmt.raw(false).get(...params) : stmt.raw(false).get());\n\t\t\t});\n\t\t}\n\n\t\tconst row = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await (params.length ? stmt.raw(true).get(...params) : stmt.raw(true).get());\n\t\t});\n\n\t\tif (row === undefined) return row;\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate async getRqbV2(placeholderValues?: Record<string, unknown>) {\n\t\tconst { logger, query, stmt, customResultMapper } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst row = await (params.length ? stmt.raw(false).get(...params) : stmt.raw(false).get());\n\n\t\tif (row === undefined) return row;\n\n\t\treturn (customResultMapper as (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown)([row] as Record<string, unknown>[]) as T['get'];\n\t}\n\n\tasync values(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst { logger, stmt, query } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await (params.length ? stmt.raw(true).all(...params) : stmt.raw(true).all());\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,70 @@
1
+ import type { DatabasePromise } from '@tursodatabase/database-common';
2
+ import type * as V1 from "../_relations.cjs";
3
+ import { type Cache } from "../cache/core/index.cjs";
4
+ import type { WithCacheConfig } from "../cache/core/types.cjs";
5
+ import { entityKind } from "../entity.cjs";
6
+ import type { Logger } from "../logger.cjs";
7
+ import type { AnyRelations } from "../relations.cjs";
8
+ import { type Query, type SQL } from "../sql/sql.cjs";
9
+ import type { SQLiteAsyncDialect } from "../sqlite-core/dialect.cjs";
10
+ import { SQLiteTransaction } from "../sqlite-core/index.cjs";
11
+ import type { SelectedFieldsOrdered } from "../sqlite-core/query-builders/select.types.cjs";
12
+ import type { PreparedQueryConfig as PreparedQueryConfigBase, Result, SQLiteExecuteMethod, SQLiteTransactionConfig } from "../sqlite-core/session.cjs";
13
+ import { SQLitePreparedQuery, SQLiteSession } from "../sqlite-core/session.cjs";
14
+ import type { TursoDatabaseRunResult } from "./driver-core.cjs";
15
+ export interface TursoDatabaseSessionOptions {
16
+ logger?: Logger;
17
+ cache?: Cache;
18
+ }
19
+ type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
20
+ export declare class TursoDatabaseSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'async', TursoDatabaseRunResult, TFullSchema, TRelations, TSchema> {
21
+ private client;
22
+ private relations;
23
+ private schema;
24
+ private options;
25
+ static readonly [entityKind]: string;
26
+ private logger;
27
+ private cache;
28
+ constructor(client: DatabasePromise, dialect: SQLiteAsyncDialect, relations: TRelations, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options: TursoDatabaseSessionOptions);
29
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown, queryMetadata?: {
30
+ type: 'select' | 'update' | 'delete' | 'insert';
31
+ tables: string[];
32
+ }, cacheConfig?: WithCacheConfig): TursoDatabasePreparedQuery<T>;
33
+ prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): TursoDatabasePreparedQuery<T, true>;
34
+ transaction<T>(transaction: (db: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>, _config?: SQLiteTransactionConfig, tx?: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>): Promise<T>;
35
+ run(query: SQL): Result<'async', TursoDatabaseRunResult>;
36
+ all<T = unknown>(query: SQL): Result<'async', T[]>;
37
+ get<T = unknown>(query: SQL): Result<'async', T>;
38
+ values<T extends any[] = unknown[]>(query: SQL): Result<'async', T[]>;
39
+ }
40
+ export declare class TursoDatabaseTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'async', TursoDatabaseRunResult, TFullSchema, TRelations, TSchema> {
41
+ static readonly [entityKind]: string;
42
+ transaction<T>(_transaction: (tx: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>): Promise<T>;
43
+ }
44
+ export declare class TursoDatabasePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
45
+ type: 'async';
46
+ run: TursoDatabaseRunResult;
47
+ all: T['all'];
48
+ get: T['get'];
49
+ values: T['values'];
50
+ execute: T['execute'];
51
+ }> {
52
+ private stmt;
53
+ private logger;
54
+ private _isResponseInArrayMode;
55
+ private customResultMapper?;
56
+ private isRqbV2Query?;
57
+ static readonly [entityKind]: string;
58
+ constructor(stmt: ReturnType<DatabasePromise['prepare']>, query: Query, logger: Logger, cache: Cache, queryMetadata: {
59
+ type: 'select' | 'update' | 'delete' | 'insert';
60
+ tables: string[];
61
+ } | undefined, cacheConfig: WithCacheConfig | undefined,
62
+ /** @internal */ fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
63
+ run(placeholderValues?: Record<string, unknown>): Promise<TursoDatabaseRunResult>;
64
+ all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
65
+ private allRqbV2;
66
+ get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
67
+ private getRqbV2;
68
+ values(placeholderValues?: Record<string, unknown>): Promise<T['values']>;
69
+ }
70
+ export {};
@@ -0,0 +1,70 @@
1
+ import type { DatabasePromise } from '@tursodatabase/database-common';
2
+ import type * as V1 from "../_relations.js";
3
+ import { type Cache } from "../cache/core/index.js";
4
+ import type { WithCacheConfig } from "../cache/core/types.js";
5
+ import { entityKind } from "../entity.js";
6
+ import type { Logger } from "../logger.js";
7
+ import type { AnyRelations } from "../relations.js";
8
+ import { type Query, type SQL } from "../sql/sql.js";
9
+ import type { SQLiteAsyncDialect } from "../sqlite-core/dialect.js";
10
+ import { SQLiteTransaction } from "../sqlite-core/index.js";
11
+ import type { SelectedFieldsOrdered } from "../sqlite-core/query-builders/select.types.js";
12
+ import type { PreparedQueryConfig as PreparedQueryConfigBase, Result, SQLiteExecuteMethod, SQLiteTransactionConfig } from "../sqlite-core/session.js";
13
+ import { SQLitePreparedQuery, SQLiteSession } from "../sqlite-core/session.js";
14
+ import type { TursoDatabaseRunResult } from "./driver-core.js";
15
+ export interface TursoDatabaseSessionOptions {
16
+ logger?: Logger;
17
+ cache?: Cache;
18
+ }
19
+ type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
20
+ export declare class TursoDatabaseSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'async', TursoDatabaseRunResult, TFullSchema, TRelations, TSchema> {
21
+ private client;
22
+ private relations;
23
+ private schema;
24
+ private options;
25
+ static readonly [entityKind]: string;
26
+ private logger;
27
+ private cache;
28
+ constructor(client: DatabasePromise, dialect: SQLiteAsyncDialect, relations: TRelations, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options: TursoDatabaseSessionOptions);
29
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown, queryMetadata?: {
30
+ type: 'select' | 'update' | 'delete' | 'insert';
31
+ tables: string[];
32
+ }, cacheConfig?: WithCacheConfig): TursoDatabasePreparedQuery<T>;
33
+ prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): TursoDatabasePreparedQuery<T, true>;
34
+ transaction<T>(transaction: (db: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>, _config?: SQLiteTransactionConfig, tx?: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>): Promise<T>;
35
+ run(query: SQL): Result<'async', TursoDatabaseRunResult>;
36
+ all<T = unknown>(query: SQL): Result<'async', T[]>;
37
+ get<T = unknown>(query: SQL): Result<'async', T>;
38
+ values<T extends any[] = unknown[]>(query: SQL): Result<'async', T[]>;
39
+ }
40
+ export declare class TursoDatabaseTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'async', TursoDatabaseRunResult, TFullSchema, TRelations, TSchema> {
41
+ static readonly [entityKind]: string;
42
+ transaction<T>(_transaction: (tx: TursoDatabaseTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>): Promise<T>;
43
+ }
44
+ export declare class TursoDatabasePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
45
+ type: 'async';
46
+ run: TursoDatabaseRunResult;
47
+ all: T['all'];
48
+ get: T['get'];
49
+ values: T['values'];
50
+ execute: T['execute'];
51
+ }> {
52
+ private stmt;
53
+ private logger;
54
+ private _isResponseInArrayMode;
55
+ private customResultMapper?;
56
+ private isRqbV2Query?;
57
+ static readonly [entityKind]: string;
58
+ constructor(stmt: ReturnType<DatabasePromise['prepare']>, query: Query, logger: Logger, cache: Cache, queryMetadata: {
59
+ type: 'select' | 'update' | 'delete' | 'insert';
60
+ tables: string[];
61
+ } | undefined, cacheConfig: WithCacheConfig | undefined,
62
+ /** @internal */ fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
63
+ run(placeholderValues?: Record<string, unknown>): Promise<TursoDatabaseRunResult>;
64
+ all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
65
+ private allRqbV2;
66
+ get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
67
+ private getRqbV2;
68
+ values(placeholderValues?: Record<string, unknown>): Promise<T['values']>;
69
+ }
70
+ export {};