@wirecat/cli-core 0.431.0 → 0.433.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.
Files changed (58) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cli/messenger/conversation-answers.d.ts +1 -0
  3. package/dist/cli/messenger/conversations-command.js +11 -3
  4. package/dist/cli/messenger/message-answers.d.ts +1 -0
  5. package/dist/cli/messenger/message-writes.d.ts +2 -0
  6. package/dist/cli/messenger/messages-search-command.js +11 -1
  7. package/dist/cli/messenger/search-answers.js +13 -0
  8. package/dist/cli/steps.js +6 -0
  9. package/dist/cli/upgrade-command.js +1 -1
  10. package/dist/entities/conversation-preparation.d.ts +10 -0
  11. package/dist/entities/conversation-preparation.js +2 -0
  12. package/dist/entities/conversation-results.d.ts +10 -0
  13. package/dist/entities/evidence.d.ts +8 -0
  14. package/dist/entities/index.d.ts +45 -0
  15. package/dist/entities/listener.d.ts +4 -0
  16. package/dist/entities/message-context.d.ts +3 -0
  17. package/dist/entities/message-transfer.d.ts +8 -0
  18. package/dist/entities/message-write.d.ts +4 -0
  19. package/dist/entities/message.d.ts +2 -0
  20. package/dist/entities/message.js +2 -0
  21. package/dist/entities/store-records.d.ts +5 -0
  22. package/dist/models/anthropic.js +2 -4
  23. package/dist/services/embeddings-maintenance.js +71 -2
  24. package/dist/services/embeddings-search.js +3 -1
  25. package/dist/services/embeddings.d.ts +7 -0
  26. package/dist/services/messages-archive-search.d.ts +2 -1
  27. package/dist/services/messages-archive-search.js +4 -4
  28. package/dist/services/messages-discovery.d.ts +24 -1
  29. package/dist/services/messages-discovery.js +61 -4
  30. package/dist/services/messages-meaning.d.ts +7 -0
  31. package/dist/services/messages-meaning.js +53 -0
  32. package/dist/services/messages-search.d.ts +5 -0
  33. package/dist/services/messages.d.ts +5 -0
  34. package/dist/services/messages.js +2 -1
  35. package/dist/services/search-catchup.js +1 -0
  36. package/dist/store/drivers/node-sqlite.js +1 -0
  37. package/dist/store/sqlite/drizzle/bun.js +58 -14
  38. package/dist/store/sqlite/drizzle/bun.js.map +3 -3
  39. package/dist/store/sqlite/drizzle/core.js +173 -7
  40. package/dist/store/sqlite/drizzle/core.js.map +4 -4
  41. package/dist/store/sqlite/drizzle/node.js +57 -13
  42. package/dist/store/sqlite/drizzle/node.js.map +3 -3
  43. package/dist/store/sqlite/drizzle/shared-55XJMTPA.js +6514 -0
  44. package/dist/store/sqlite/drizzle/shared-55XJMTPA.js.map +7 -0
  45. package/dist/store/sqlite/message-chunks.d.ts +44 -0
  46. package/dist/store/sqlite/message-chunks.js +76 -0
  47. package/dist/store/sqlite/open.js +1 -0
  48. package/dist/store/sqlite/schema/canonical-tags.d.ts +1 -0
  49. package/dist/store/sqlite/schema/document-index-pending.d.ts +1 -0
  50. package/dist/store/sqlite/schema/document-transfers.d.ts +1 -0
  51. package/dist/store/sqlite/schema/tag-consolidations.d.ts +2 -0
  52. package/dist/store/sqlite/schema.d.ts +97 -0
  53. package/dist/store/sqlite/vectors.js +4 -1
  54. package/dist/store/vectors.d.ts +36 -0
  55. package/dist/store/vectors.js +54 -0
  56. package/package.json +23 -24
  57. package/dist/store/sqlite/drizzle/shared-HKXF6HKX.js +0 -4846
  58. package/dist/store/sqlite/drizzle/shared-HKXF6HKX.js.map +0 -7
@@ -7,13 +7,48 @@ import {
7
7
  SQLiteAsyncSession,
8
8
  SQLiteAsyncTransaction,
9
9
  SQLiteDialect,
10
+ booleanFromInteger,
11
+ bufferFromBytes,
12
+ castToText,
13
+ dateFromStoredMilliseconds,
14
+ dateFromStoredSeconds,
10
15
  entityKind,
11
16
  jitCompatCheck,
17
+ refineSqliteCodecs,
12
18
  sql
13
- } from "./shared-HKXF6HKX.js";
19
+ } from "./shared-55XJMTPA.js";
14
20
 
15
- // node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/bun-sqlite/session.js
21
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/bun-sqlite/codecs.js
22
+ var bunSQLiteCodecs = refineSqliteCodecs({
23
+ "integer:boolean": { normalize: booleanFromInteger },
24
+ "integer:timestamp": { normalize: dateFromStoredSeconds },
25
+ "integer:timestamp_ms": { normalize: dateFromStoredMilliseconds },
26
+ "text:json": { normalize: JSON.parse },
27
+ blob: { normalize: bufferFromBytes },
28
+ "blob:json": {
29
+ cast: castToText,
30
+ normalize: JSON.parse
31
+ },
32
+ "blob:bigint": {
33
+ cast: castToText,
34
+ normalize: BigInt
35
+ },
36
+ numeric: {
37
+ cast: castToText,
38
+ normalize: String
39
+ },
40
+ "numeric:number": { normalize: Number },
41
+ "numeric:bigint": {
42
+ cast: castToText,
43
+ normalize: BigInt
44
+ }
45
+ });
46
+
47
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/bun-sqlite/session.js
16
48
  var SQLiteBunSession = class extends SQLiteAsyncSession {
49
+ client;
50
+ relations;
51
+ options;
17
52
  static [entityKind] = "SQLiteBunSession";
18
53
  logger;
19
54
  constructor(client, dialect, relations, options = {}) {
@@ -31,7 +66,7 @@ var SQLiteBunSession = class extends SQLiteAsyncSession {
31
66
  try {
32
67
  stmt = this.client.query(query.sql);
33
68
  } catch (e) {
34
- throw new DrizzleQueryError(query.sql, query.params, e);
69
+ throw new DrizzleQueryError(query.sql, this.options.paramsInErrors ? query.params : void 0, e);
35
70
  }
36
71
  return new SQLiteAsyncPreparedQuery("sync", executeMethod, {
37
72
  all: (params) => {
@@ -44,18 +79,17 @@ var SQLiteBunSession = class extends SQLiteAsyncSession {
44
79
  },
45
80
  run: (params) => {
46
81
  return stmt.run(...params);
47
- },
48
- values: (params) => {
49
- return stmt.values(...params);
50
82
  }
51
- }, query, mapper, mode, this.logger, void 0, queryMetadata, void 0);
83
+ }, query, mapper, mode, this.logger, void 0, queryMetadata, void 0, this.options.paramsInErrors);
52
84
  }
53
85
  transaction(transaction, config = {}) {
54
86
  const tx = new SQLiteBunTransaction("sync", this.dialect, this, this.relations);
55
87
  let result;
56
- this.client.transaction(() => {
88
+ const nativeTx = this.client.transaction(() => {
57
89
  result = transaction(tx);
58
- })[config.behavior ?? "deferred"]();
90
+ });
91
+ if (config.behavior === "concurrent") throw new Error("Concurrent transactions are not supported by driver");
92
+ nativeTx[config.behavior ?? "deferred"]();
59
93
  return result;
60
94
  }
61
95
  };
@@ -70,24 +104,33 @@ var SQLiteBunTransaction = class SQLiteBunTransaction2 extends SQLiteAsyncTransa
70
104
  this.session.run(sql.raw(`release savepoint ${savepointName}`));
71
105
  return result;
72
106
  } catch (err) {
73
- this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));
107
+ try {
108
+ this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));
109
+ } catch {
110
+ }
74
111
  throw err;
75
112
  }
76
113
  }
77
114
  };
78
115
 
79
- // node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/bun-sqlite/driver.js
116
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/bun-sqlite/driver.js
80
117
  import { Database } from "bun:sqlite";
81
118
  var SQLiteBunDatabase = class extends SQLiteAsyncDatabase {
82
119
  static [entityKind] = "SQLiteBunDatabase";
83
120
  };
84
121
  function construct(client, config = {}) {
85
- const dialect = new SQLiteDialect({ useJitMappers: jitCompatCheck(config.jit) });
122
+ const dialect = new SQLiteDialect({
123
+ codecs: config.codecs ?? bunSQLiteCodecs,
124
+ useJitMappers: jitCompatCheck(config.jit)
125
+ });
86
126
  let logger;
87
127
  if (config.logger === true) logger = new DefaultLogger();
88
128
  else if (config.logger !== false) logger = config.logger;
89
129
  const relations = config.relations ?? {};
90
- const db = new SQLiteBunDatabase("sync", dialect, new SQLiteBunSession(client, dialect, relations, { logger }), relations);
130
+ const db = new SQLiteBunDatabase("sync", dialect, new SQLiteBunSession(client, dialect, relations, {
131
+ logger,
132
+ paramsInErrors: config.paramsInErrors
133
+ }), relations);
91
134
  db.$client = client;
92
135
  return db;
93
136
  }
@@ -97,7 +140,8 @@ function drizzle(...params) {
97
140
  if (client) return construct(client, DrizzleSQLiteConfig);
98
141
  if (typeof connection === "object") {
99
142
  const { source, ...opts } = connection;
100
- return construct(new Database(source, Object.values(opts).filter((v) => v !== void 0).length ? opts : void 0), DrizzleSQLiteConfig);
143
+ const options = Object.values(opts).filter((v) => v !== void 0).length ? opts : void 0;
144
+ return construct(new Database(source, options), DrizzleSQLiteConfig);
101
145
  }
102
146
  return construct(new Database(connection), DrizzleSQLiteConfig);
103
147
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/bun-sqlite/session.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/bun-sqlite/driver.ts"],
4
- "sourcesContent": ["/// <reference types=\"bun-types\" />\n\nimport type { Changes, Database } from 'bun:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport { DrizzleQueryError } from '~/errors.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { type Query, sql } from '~/sql/sql.ts';\nimport {\n\tSQLiteAsyncPreparedQuery,\n\ttype SQLiteAsyncPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteAsyncSession,\n\tSQLiteAsyncTransaction,\n\ttype SQLiteQueryExecutors,\n} from '~/sqlite-core/async/session.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLiteExecuteMethod, SQLiteTransactionConfig } from '~/sqlite-core/session.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\n\nexport interface SQLiteBunSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport type SQLiteBunRunResult = Changes;\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteBunSession<TRelations extends AnyRelations>\n\textends SQLiteAsyncSession<'sync', SQLiteBunRunResult, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBunSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate options: SQLiteBunSessionOptions = {},\n\t) {\n\t\tsuper(dialect, 'sync');\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\texec(query: string): void {\n\t\tthis.client.exec(query);\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tmode: 'arrays' | 'objects' | 'raw',\n\t\t_prepare: boolean,\n\t\texecuteMethod?: SQLiteExecuteMethod,\n\t\tmapper?: (rows: any[]) => any,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t): SQLiteAsyncPreparedQuery<T & { run: SQLiteBunRunResult }> {\n\t\tlet stmt: ReturnType<typeof this.client.query>;\n\t\ttry {\n\t\t\tstmt = this.client.query(query.sql);\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(query.sql, query.params, e as Error);\n\t\t}\n\t\tconst executors: SQLiteQueryExecutors<'sync'> = {\n\t\t\tall: (params) => {\n\t\t\t\tif (mode === 'arrays') return stmt.values(...params as any[]);\n\t\t\t\treturn stmt.all(...params as any[]);\n\t\t\t},\n\t\t\tget: (params) => {\n\t\t\t\tif (mode === 'arrays') return stmt.values(...params as any[])[0];\n\t\t\t\treturn stmt.get(...params as any[]);\n\t\t\t},\n\t\t\trun: (params) => {\n\t\t\t\treturn stmt.run(...params as any[]);\n\t\t\t},\n\t\t\tvalues: (params) => {\n\t\t\t\treturn stmt.values(...params as any[]);\n\t\t\t},\n\t\t};\n\n\t\treturn new SQLiteAsyncPreparedQuery(\n\t\t\t'sync',\n\t\t\texecuteMethod,\n\t\t\texecutors,\n\t\t\tquery,\n\t\t\tmapper,\n\t\t\tmode,\n\t\t\tthis.logger,\n\t\t\tundefined,\n\t\t\tqueryMetadata,\n\t\t\tundefined,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteBunTransaction<TRelations>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this, this.relations);\n\t\tlet result: T | undefined;\n\t\tconst nativeTx = this.client.transaction(() => {\n\t\t\tresult = transaction(tx);\n\t\t});\n\t\tnativeTx[config.behavior ?? 'deferred']();\n\t\treturn result!;\n\t}\n}\n\nexport class SQLiteBunTransaction<\n\tTRelations extends AnyRelations,\n> extends SQLiteAsyncTransaction<'sync', SQLiteBunRunResult, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteBunTransaction<TRelations>,\n\t\t) => T extends Promise<any> ? DrizzleTypeError<\"Sync drivers can't use async functions in transactions!\">\n\t\t\t: T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteBunTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis._.relations,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result as T;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n", "/// <reference types=\"bun-types\" />\n\nimport { Database } from 'bun:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SQLiteAsyncDatabase } from '~/sqlite-core/async/db.ts';\nimport { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleSQLiteConfig } from '~/sqlite-core/utils.ts';\nimport { jitCompatCheck } from '~/utils.ts';\nimport { type SQLiteBunRunResult, SQLiteBunSession } from './session.ts';\n\nexport class SQLiteBunDatabase<\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SQLiteAsyncDatabase<'sync', SQLiteBunRunResult, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunDatabase';\n}\n\ntype DrizzleSqliteBunDatabaseOptions = {\n\t/**\n\t * Open the database as read-only (no write operations, no create).\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_READONLY}\n\t */\n\treadonly?: boolean;\n\t/**\n\t * Allow creating a new database\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_CREATE}\n\t */\n\tcreate?: boolean;\n\t/**\n\t * Open the database as read-write\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_READWRITE}\n\t */\n\treadwrite?: boolean;\n};\n\nexport type DrizzleBunSqliteDatabaseConfig =\n\t| ({\n\t\tsource?: string;\n\t} & DrizzleSqliteBunDatabaseOptions)\n\t| string\n\t| undefined;\n\nfunction construct<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleSQLiteConfig<TRelations> = {},\n): SQLiteBunDatabase<TRelations> & {\n\t$client: Database;\n} {\n\tconst dialect = new SQLiteDialect({\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\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\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLiteBunSession<TRelations>(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\t{\n\t\t\tlogger,\n\t\t},\n\t);\n\tconst db = new SQLiteBunDatabase('sync', dialect, session, relations);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Database = Database,\n>(\n\t...params:\n\t\t| []\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleSQLiteConfig<TRelations>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleSQLiteConfig<TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: DrizzleBunSqliteDatabaseConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): SQLiteBunDatabase<TRelations> & {\n\t$client: TClient;\n} {\n\tif (params[0] === undefined || typeof params[0] === 'string') {\n\t\tconst instance = params[0] === undefined ? new Database() : new Database(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...DrizzleSQLiteConfig } = params[0] as\n\t\t& ({\n\t\t\tconnection?: DrizzleBunSqliteDatabaseConfig | string;\n\t\t\tclient?: TClient;\n\t\t})\n\t\t& DrizzleSQLiteConfig<TRelations>;\n\n\tif (client) return construct(client, DrizzleSQLiteConfig) as any;\n\n\tif (typeof connection === 'object') {\n\t\tconst { source, ...opts } = connection;\n\n\t\tconst options = Object.values(opts).filter((v) => v !== undefined).length ? opts : undefined;\n\n\t\tconst instance = new Database(source, options);\n\n\t\treturn construct(instance, DrizzleSQLiteConfig) as any;\n\t}\n\n\tconst instance = new Database(connection);\n\n\treturn construct(instance, DrizzleSQLiteConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TRelations extends AnyRelations = EmptyRelations>(\n\t\tconfig?: DrizzleSQLiteConfig<TRelations>,\n\t): SQLiteBunDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/bun-sqlite/codecs.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/bun-sqlite/session.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/bun-sqlite/driver.ts"],
4
+ "sourcesContent": ["import {\n\tbooleanFromInteger,\n\tbufferFromBytes,\n\tcastToText,\n\tdateFromStoredMilliseconds,\n\tdateFromStoredSeconds,\n\trefineSqliteCodecs,\n} from '~/sqlite-core/codecs.ts';\n\nexport const bunSQLiteCodecs = refineSqliteCodecs({\n\t'integer:boolean': {\n\t\tnormalize: booleanFromInteger,\n\t},\n\t'integer:timestamp': {\n\t\tnormalize: dateFromStoredSeconds,\n\t},\n\t'integer:timestamp_ms': {\n\t\tnormalize: dateFromStoredMilliseconds,\n\t},\n\t'text:json': {\n\t\tnormalize: JSON.parse,\n\t},\n\tblob: {\n\t\tnormalize: bufferFromBytes,\n\t},\n\t'blob:json': {\n\t\tcast: castToText,\n\t\tnormalize: JSON.parse,\n\t},\n\t'blob:bigint': {\n\t\tcast: castToText,\n\t\tnormalize: BigInt,\n\t},\n\tnumeric: {\n\t\tcast: castToText,\n\t\tnormalize: String,\n\t},\n\t'numeric:number': {\n\t\tnormalize: Number,\n\t},\n\t'numeric:bigint': {\n\t\tcast: castToText,\n\t\tnormalize: BigInt,\n\t},\n});\n", "/// <reference types=\"bun-types\" />\n\nimport type { Changes, Database } from 'bun:sqlite';\nimport type { QueryMetadata } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DrizzleQueryError } from '~/errors.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { type Query, sql } from '~/sql/sql.ts';\nimport {\n\tSQLiteAsyncPreparedQuery,\n\ttype SQLiteAsyncPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteAsyncSession,\n\tSQLiteAsyncTransaction,\n\ttype SQLiteQueryExecutors,\n} from '~/sqlite-core/async/session.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLiteExecuteMethod, SQLiteTransactionConfig } from '~/sqlite-core/session.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\n\nexport interface SQLiteBunSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tparamsInErrors?: boolean;\n}\n\nexport type SQLiteBunRunResult = Changes;\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteBunSession<TRelations extends AnyRelations>\n\textends SQLiteAsyncSession<'sync', SQLiteBunRunResult, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBunSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate options: SQLiteBunSessionOptions = {},\n\t) {\n\t\tsuper(dialect, 'sync');\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\texec(query: string): void {\n\t\tthis.client.exec(query);\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tmode: 'arrays' | 'objects' | 'raw',\n\t\t_prepare: boolean,\n\t\texecuteMethod?: SQLiteExecuteMethod,\n\t\tmapper?: (rows: any[]) => any,\n\t\tqueryMetadata?: QueryMetadata,\n\t): SQLiteAsyncPreparedQuery<T & { run: SQLiteBunRunResult }> {\n\t\tlet stmt: ReturnType<typeof this.client.query>;\n\t\ttry {\n\t\t\tstmt = this.client.query(query.sql);\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(query.sql, this.options.paramsInErrors ? query.params : undefined, e as Error);\n\t\t}\n\t\tconst executors: SQLiteQueryExecutors<'sync'> = {\n\t\t\tall: (params) => {\n\t\t\t\tif (mode === 'arrays') return stmt.values(...params as any[]);\n\t\t\t\treturn stmt.all(...params as any[]);\n\t\t\t},\n\t\t\tget: (params) => {\n\t\t\t\tif (mode === 'arrays') return stmt.values(...params as any[])[0];\n\t\t\t\treturn stmt.get(...params as any[]);\n\t\t\t},\n\t\t\trun: (params) => {\n\t\t\t\treturn stmt.run(...params as any[]);\n\t\t\t},\n\t\t};\n\n\t\treturn new SQLiteAsyncPreparedQuery(\n\t\t\t'sync',\n\t\t\texecuteMethod,\n\t\t\texecutors,\n\t\t\tquery,\n\t\t\tmapper,\n\t\t\tmode,\n\t\t\tthis.logger,\n\t\t\tundefined,\n\t\t\tqueryMetadata,\n\t\t\tundefined,\n\t\t\tthis.options.paramsInErrors,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteBunTransaction<TRelations>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this, this.relations);\n\t\tlet result: T | undefined;\n\t\tconst nativeTx = this.client.transaction(() => {\n\t\t\tresult = transaction(tx);\n\t\t});\n\t\tif (config.behavior === 'concurrent') throw new Error('Concurrent transactions are not supported by driver');\n\t\tnativeTx[config.behavior ?? 'deferred']();\n\t\treturn result!;\n\t}\n}\n\nexport class SQLiteBunTransaction<\n\tTRelations extends AnyRelations,\n> extends SQLiteAsyncTransaction<'sync', SQLiteBunRunResult, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteBunTransaction<TRelations>,\n\t\t) => T extends Promise<any> ? DrizzleTypeError<\"Sync drivers can't use async functions in transactions!\">\n\t\t\t: T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteBunTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis._.relations,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result as T;\n\t\t} catch (err) {\n\t\t\ttry {\n\t\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\t} catch {\n\t\t\t\t// original error takes priority\n\t\t\t}\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n", "/// <reference types=\"bun-types\" />\n\nimport { Database } from 'bun:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SQLiteAsyncDatabase } from '~/sqlite-core/async/db.ts';\nimport { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleSQLiteConfig } from '~/sqlite-core/utils.ts';\nimport { jitCompatCheck } from '~/utils.ts';\nimport { bunSQLiteCodecs } from './codecs.ts';\nimport { type SQLiteBunRunResult, SQLiteBunSession } from './session.ts';\n\nexport class SQLiteBunDatabase<\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SQLiteAsyncDatabase<'sync', SQLiteBunRunResult, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunDatabase';\n}\n\ntype DrizzleSqliteBunDatabaseOptions = {\n\t/**\n\t * Open the database as read-only (no write operations, no create).\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_READONLY}\n\t */\n\treadonly?: boolean;\n\t/**\n\t * Allow creating a new database\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_CREATE}\n\t */\n\tcreate?: boolean;\n\t/**\n\t * Open the database as read-write\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_READWRITE}\n\t */\n\treadwrite?: boolean;\n};\n\nexport type DrizzleBunSqliteDatabaseConfig =\n\t| ({\n\t\tsource?: string;\n\t} & DrizzleSqliteBunDatabaseOptions)\n\t| string\n\t| undefined;\n\nfunction construct<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleSQLiteConfig<TRelations> = {},\n): SQLiteBunDatabase<TRelations> & {\n\t$client: Database;\n} {\n\tconst dialect = new SQLiteDialect({\n\t\tcodecs: config.codecs ?? bunSQLiteCodecs,\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\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\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLiteBunSession<TRelations>(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\t{\n\t\t\tlogger,\n\t\t\tparamsInErrors: config.paramsInErrors,\n\t\t},\n\t);\n\tconst db = new SQLiteBunDatabase('sync', dialect, session, relations);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Database = Database,\n>(\n\t...params:\n\t\t| []\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleSQLiteConfig<TRelations>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleSQLiteConfig<TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: DrizzleBunSqliteDatabaseConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): SQLiteBunDatabase<TRelations> & {\n\t$client: TClient;\n} {\n\tif (params[0] === undefined || typeof params[0] === 'string') {\n\t\tconst instance = params[0] === undefined ? new Database() : new Database(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...DrizzleSQLiteConfig } = params[0] as\n\t\t& ({\n\t\t\tconnection?: DrizzleBunSqliteDatabaseConfig | string;\n\t\t\tclient?: TClient;\n\t\t})\n\t\t& DrizzleSQLiteConfig<TRelations>;\n\n\tif (client) return construct(client, DrizzleSQLiteConfig) as any;\n\n\tif (typeof connection === 'object') {\n\t\tconst { source, ...opts } = connection;\n\n\t\tconst options = Object.values(opts).filter((v) => v !== undefined).length ? opts : undefined;\n\n\t\tconst instance = new Database(source, options);\n\n\t\treturn construct(instance, DrizzleSQLiteConfig) as any;\n\t}\n\n\tconst instance = new Database(connection);\n\n\treturn construct(instance, DrizzleSQLiteConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TRelations extends AnyRelations = EmptyRelations>(\n\t\tconfig?: DrizzleSQLiteConfig<TRelations>,\n\t): SQLiteBunDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["SQLiteBunTransaction"]
7
7
  }
@@ -1,31 +1,197 @@
1
1
  import {
2
+ SQLiteTable,
2
3
  TableAliasProxyHandler,
4
+ TableName,
3
5
  and,
4
6
  asc,
5
7
  blob,
6
8
  desc,
9
+ entityKind,
7
10
  eq,
8
11
  gt,
9
12
  gte,
10
13
  inArray,
11
- index,
12
14
  integer,
15
+ is,
13
16
  isNotNull,
14
17
  isNull,
15
18
  lte,
16
19
  ne,
17
20
  notInArray,
18
21
  or,
19
- primaryKey,
20
22
  real,
21
23
  sql,
22
24
  sqliteTable,
23
- text,
24
- unique,
25
- uniqueIndex
26
- } from "./shared-HKXF6HKX.js";
25
+ text
26
+ } from "./shared-55XJMTPA.js";
27
+
28
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/sqlite-core/indexes.js
29
+ var IndexBuilderOn = class {
30
+ name;
31
+ unique;
32
+ static [entityKind] = "SQLiteIndexBuilderOn";
33
+ static [Symbol.hasInstance](value) {
34
+ return is(value, this);
35
+ }
36
+ constructor(name2, unique2) {
37
+ this.name = name2;
38
+ this.unique = unique2;
39
+ }
40
+ on(...columns) {
41
+ return new IndexBuilder(this.name, columns, this.unique);
42
+ }
43
+ };
44
+ var IndexBuilder = class {
45
+ static [entityKind] = "SQLiteIndexBuilder";
46
+ static [Symbol.hasInstance](value) {
47
+ return is(value, this);
48
+ }
49
+ /** @internal */
50
+ config;
51
+ constructor(name2, columns, unique2) {
52
+ this.config = {
53
+ name: name2,
54
+ columns,
55
+ unique: unique2,
56
+ where: void 0
57
+ };
58
+ }
59
+ /**
60
+ * Condition for partial index.
61
+ */
62
+ where(condition) {
63
+ this.config.where = condition;
64
+ return this;
65
+ }
66
+ /** @internal */
67
+ build(table) {
68
+ return new Index(this.config, table);
69
+ }
70
+ };
71
+ var Index = class {
72
+ static [entityKind] = "SQLiteIndex";
73
+ static [Symbol.hasInstance](value) {
74
+ return is(value, this);
75
+ }
76
+ config;
77
+ isNameExplicit;
78
+ constructor(config, table) {
79
+ this.config = {
80
+ ...config,
81
+ table
82
+ };
83
+ this.isNameExplicit = !!config.name;
84
+ }
85
+ };
86
+ function index(name2) {
87
+ return new IndexBuilderOn(name2, false);
88
+ }
89
+ function uniqueIndex(name2) {
90
+ return new IndexBuilderOn(name2, true);
91
+ }
92
+
93
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/sqlite-core/primary-keys.js
94
+ function primaryKey(...config) {
95
+ if (config[0].columns) return new PrimaryKeyBuilder(config[0].columns, config[0].name);
96
+ return new PrimaryKeyBuilder(config);
97
+ }
98
+ var PrimaryKeyBuilder = class {
99
+ static [entityKind] = "SQLitePrimaryKeyBuilder";
100
+ static [Symbol.hasInstance](value) {
101
+ return is(value, this);
102
+ }
103
+ /** @internal */
104
+ columns;
105
+ /** @internal */
106
+ name;
107
+ constructor(columns, name2) {
108
+ this.columns = columns;
109
+ this.name = name2;
110
+ }
111
+ /** @internal */
112
+ build(table) {
113
+ return new PrimaryKey(table, this.columns, this.name);
114
+ }
115
+ };
116
+ var PrimaryKey = class {
117
+ table;
118
+ static [entityKind] = "SQLitePrimaryKey";
119
+ static [Symbol.hasInstance](value) {
120
+ return is(value, this);
121
+ }
122
+ columns;
123
+ name;
124
+ isNameExplicit;
125
+ constructor(table, columns, name2) {
126
+ this.table = table;
127
+ this.columns = columns;
128
+ this.name = name2;
129
+ this.isNameExplicit = !!name2;
130
+ }
131
+ getName() {
132
+ return this.name ?? `${this.table[SQLiteTable.Symbol.Name]}_${this.columns.map((column) => column.name).join("_")}_pk`;
133
+ }
134
+ };
135
+
136
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/sqlite-core/unique-constraint.js
137
+ function uniqueKeyName(table, columns) {
138
+ return `${table[TableName]}_${columns.join("_")}_unique`;
139
+ }
140
+ function unique(name2) {
141
+ return new UniqueOnConstraintBuilder(name2);
142
+ }
143
+ var UniqueConstraintBuilder = class {
144
+ name;
145
+ static [entityKind] = "SQLiteUniqueConstraintBuilder";
146
+ static [Symbol.hasInstance](value) {
147
+ return is(value, this);
148
+ }
149
+ /** @internal */
150
+ columns;
151
+ constructor(columns, name2) {
152
+ this.name = name2;
153
+ this.columns = columns;
154
+ }
155
+ /** @internal */
156
+ build(table) {
157
+ return new UniqueConstraint(table, this.columns, this.name);
158
+ }
159
+ };
160
+ var UniqueOnConstraintBuilder = class {
161
+ static [entityKind] = "SQLiteUniqueOnConstraintBuilder";
162
+ static [Symbol.hasInstance](value) {
163
+ return is(value, this);
164
+ }
165
+ /** @internal */
166
+ name;
167
+ constructor(name2) {
168
+ this.name = name2;
169
+ }
170
+ on(...columns) {
171
+ return new UniqueConstraintBuilder(columns, this.name);
172
+ }
173
+ };
174
+ var UniqueConstraint = class {
175
+ table;
176
+ static [entityKind] = "SQLiteUniqueConstraint";
177
+ static [Symbol.hasInstance](value) {
178
+ return is(value, this);
179
+ }
180
+ columns;
181
+ name;
182
+ isNameExplicit;
183
+ constructor(table, columns, name2) {
184
+ this.table = table;
185
+ this.columns = columns;
186
+ this.isNameExplicit = !!name2;
187
+ this.name = name2 ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));
188
+ }
189
+ getName() {
190
+ return this.name;
191
+ }
192
+ };
27
193
 
28
- // node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/sqlite-core/alias.js
194
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/sqlite-core/alias.js
29
195
  function alias(table, alias2) {
30
196
  return new Proxy(table, new TableAliasProxyHandler(alias2, false));
31
197
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/sqlite-core/alias.ts"],
4
- "sourcesContent": ["import { TableAliasProxyHandler } from '~/alias.ts';\nimport type { BuildAliasTable } from './query-builders/select.types.ts';\n\nimport type { SQLiteTable } from './table.ts';\nimport type { SQLiteViewBase } from './view-base.ts';\n\nexport function alias<TTable extends SQLiteTable | SQLiteViewBase, TAlias extends string>(\n\ttable: TTable,\n\talias: TAlias,\n): BuildAliasTable<TTable, TAlias> {\n\treturn new Proxy(table, new TableAliasProxyHandler(alias, false)) as any;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,SAAgB,MACf,OACAA,QACkC;AAClC,SAAO,IAAI,MAAM,OAAO,IAAI,uBAAuBA,QAAO,KAAA,CAAM;;",
6
- "names": ["alias"]
3
+ "sources": ["../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/sqlite-core/indexes.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/sqlite-core/primary-keys.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/sqlite-core/unique-constraint.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/sqlite-core/alias.ts"],
4
+ "sourcesContent": ["import { entityKind, is } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { SQLiteColumn } from './columns/index.ts';\nimport type { SQLiteTable } from './table.ts';\n\nexport interface IndexConfig {\n\tname: string;\n\tcolumns: IndexColumn[];\n\tunique: boolean;\n\twhere: SQL | undefined;\n}\n\nexport type IndexColumn = SQLiteColumn | SQL;\n\nexport class IndexBuilderOn {\n\tstatic readonly [entityKind]: string = 'SQLiteIndexBuilderOn';\n\tstatic [Symbol.hasInstance](value: unknown): boolean {\n\t\treturn is(value, this);\n\t}\n\n\tconstructor(private name: string, private unique: boolean) {}\n\n\ton(...columns: [IndexColumn, ...IndexColumn[]]): IndexBuilder {\n\t\treturn new IndexBuilder(this.name, columns, this.unique);\n\t}\n}\n\nexport class IndexBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteIndexBuilder';\n\tstatic [Symbol.hasInstance](value: unknown): boolean {\n\t\treturn is(value, this);\n\t}\n\n\tdeclare _: {\n\t\tbrand: 'SQLiteIndexBuilder';\n\t};\n\n\t/** @internal */\n\tconfig: IndexConfig;\n\n\tconstructor(name: string, columns: IndexColumn[], unique: boolean) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tunique,\n\t\t\twhere: undefined,\n\t\t};\n\t}\n\n\t/**\n\t * Condition for partial index.\n\t */\n\twhere(condition: SQL): this {\n\t\tthis.config.where = condition;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): Index {\n\t\treturn new Index(this.config, table);\n\t}\n}\n\nexport class Index {\n\tstatic readonly [entityKind]: string = 'SQLiteIndex';\n\tstatic [Symbol.hasInstance](value: unknown): boolean {\n\t\treturn is(value, this);\n\t}\n\n\tdeclare _: {\n\t\tbrand: 'SQLiteIndex';\n\t};\n\n\treadonly config: IndexConfig & { table: SQLiteTable };\n\treadonly isNameExplicit: boolean;\n\n\tconstructor(config: IndexConfig, table: SQLiteTable) {\n\t\tthis.config = { ...config, table };\n\t\tthis.isNameExplicit = !!config.name;\n\t}\n}\n\nexport function index(name: string): IndexBuilderOn {\n\treturn new IndexBuilderOn(name, false);\n}\n\nexport function uniqueIndex(name: string): IndexBuilderOn {\n\treturn new IndexBuilderOn(name, true);\n}\n", "import { entityKind, is } from '~/entity.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from './columns/index.ts';\nimport { SQLiteTable } from './table.ts';\n\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumn extends AnySQLiteColumn<{ tableName: TTableName }>,\n\tTColumns extends AnySQLiteColumn<{ tableName: TTableName }>[],\n>(config: { name?: string; columns: [TColumn, ...TColumns] }): PrimaryKeyBuilder;\n/**\n * @deprecated: Please use primaryKey({ columns: [] }) instead of this function\n * @param columns\n */\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumns extends AnySQLiteColumn<{ tableName: TTableName }>[],\n>(...columns: TColumns): PrimaryKeyBuilder;\nexport function primaryKey(...config: any) {\n\tif (config[0].columns) {\n\t\treturn new PrimaryKeyBuilder(config[0].columns, config[0].name);\n\t}\n\treturn new PrimaryKeyBuilder(config);\n}\nexport class PrimaryKeyBuilder {\n\tstatic readonly [entityKind]: string = 'SQLitePrimaryKeyBuilder';\n\tstatic [Symbol.hasInstance](value: unknown): boolean {\n\t\treturn is(value, this);\n\t}\n\n\tdeclare _: {\n\t\tbrand: 'SQLitePrimaryKeyBuilder';\n\t};\n\n\t/** @internal */\n\tcolumns: SQLiteColumn[];\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tcolumns: SQLiteColumn[],\n\t\tname?: string,\n\t) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): PrimaryKey {\n\t\treturn new PrimaryKey(table, this.columns, this.name);\n\t}\n}\n\nexport class PrimaryKey {\n\tstatic readonly [entityKind]: string = 'SQLitePrimaryKey';\n\tstatic [Symbol.hasInstance](value: unknown): boolean {\n\t\treturn is(value, this);\n\t}\n\n\treadonly columns: SQLiteColumn[];\n\treadonly name?: string;\n\treadonly isNameExplicit: boolean;\n\n\tconstructor(readonly table: SQLiteTable, columns: SQLiteColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t\tthis.isNameExplicit = !!name;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name\n\t\t\t?? `${this.table[SQLiteTable.Symbol.Name]}_${this.columns.map((column) => column.name).join('_')}_pk`;\n\t}\n}\n", "import { entityKind, is } from '~/entity.ts';\nimport { TableName } from '~/table.utils.ts';\nimport type { SQLiteColumn } from './columns/common.ts';\nimport type { SQLiteTable } from './table.ts';\n\nexport function uniqueKeyName(table: SQLiteTable, columns: string[]) {\n\treturn `${table[TableName]}_${columns.join('_')}_unique`;\n}\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraintBuilder';\n\tstatic [Symbol.hasInstance](value: unknown): boolean {\n\t\treturn is(value, this);\n\t}\n\n\t/** @internal */\n\tcolumns: SQLiteColumn[];\n\n\tconstructor(\n\t\tcolumns: SQLiteColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueOnConstraintBuilder';\n\tstatic [Symbol.hasInstance](value: unknown): boolean {\n\t\treturn is(value, this);\n\t}\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [SQLiteColumn, ...SQLiteColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraint';\n\tstatic [Symbol.hasInstance](value: unknown): boolean {\n\t\treturn is(value, this);\n\t}\n\n\treadonly columns: SQLiteColumn[];\n\treadonly name: string;\n\treadonly isNameExplicit: boolean;\n\n\tconstructor(readonly table: SQLiteTable, columns: SQLiteColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.isNameExplicit = !!name;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n", "import { TableAliasProxyHandler } from '~/alias.ts';\nimport type { BuildAliasTable } from './query-builders/select.types.ts';\n\nimport type { SQLiteTable } from './table.ts';\nimport type { SQLiteViewBase } from './view-base.ts';\n\nexport function alias<TTable extends SQLiteTable | SQLiteViewBase, TAlias extends string>(\n\ttable: TTable,\n\talias: TAlias,\n): BuildAliasTable<TTable, TAlias> {\n\treturn new Proxy(table, new TableAliasProxyHandler(alias, false)) as any;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["name", "unique", "name", "name", "alias"]
7
7
  }
@@ -7,13 +7,48 @@ import {
7
7
  SQLiteAsyncSession,
8
8
  SQLiteAsyncTransaction,
9
9
  SQLiteDialect,
10
+ booleanFromInteger,
11
+ bufferFromBytes,
12
+ castToText,
13
+ dateFromStoredMilliseconds,
14
+ dateFromStoredSeconds,
10
15
  entityKind,
11
16
  jitCompatCheck,
17
+ refineSqliteCodecs,
12
18
  sql
13
- } from "./shared-HKXF6HKX.js";
19
+ } from "./shared-55XJMTPA.js";
14
20
 
15
- // node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/node-sqlite/session.js
21
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/node-sqlite/codecs.js
22
+ var nodeSQLiteCodecs = refineSqliteCodecs({
23
+ "integer:boolean": { normalize: booleanFromInteger },
24
+ "integer:timestamp": { normalize: dateFromStoredSeconds },
25
+ "integer:timestamp_ms": { normalize: dateFromStoredMilliseconds },
26
+ "text:json": { normalize: JSON.parse },
27
+ blob: { normalize: bufferFromBytes },
28
+ "blob:json": {
29
+ cast: castToText,
30
+ normalize: JSON.parse
31
+ },
32
+ "blob:bigint": {
33
+ cast: castToText,
34
+ normalize: BigInt
35
+ },
36
+ numeric: {
37
+ cast: castToText,
38
+ normalize: String
39
+ },
40
+ "numeric:number": { normalize: Number },
41
+ "numeric:bigint": {
42
+ cast: castToText,
43
+ normalize: BigInt
44
+ }
45
+ });
46
+
47
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/node-sqlite/session.js
16
48
  var NodeSQLiteSession = class extends SQLiteAsyncSession {
49
+ client;
50
+ relations;
51
+ options;
17
52
  static [entityKind] = "SQLJsSession";
18
53
  logger;
19
54
  constructor(client, dialect, relations, options = {}) {
@@ -28,7 +63,7 @@ var NodeSQLiteSession = class extends SQLiteAsyncSession {
28
63
  try {
29
64
  stmt = this.client.prepare(query.sql);
30
65
  } catch (e) {
31
- throw new DrizzleQueryError(query.sql, query.params, e);
66
+ throw new DrizzleQueryError(query.sql, this.options.paramsInErrors ? query.params : void 0, e);
32
67
  }
33
68
  return new SQLiteAsyncPreparedQuery("sync", executeMethod, {
34
69
  all: (params) => {
@@ -46,14 +81,11 @@ var NodeSQLiteSession = class extends SQLiteAsyncSession {
46
81
  run: (params) => {
47
82
  stmt.setReturnArrays(false);
48
83
  return stmt.run(...params);
49
- },
50
- values: (params) => {
51
- stmt.setReturnArrays(true);
52
- return stmt.all(...params);
53
84
  }
54
- }, query, mapper, mode, this.logger, void 0, queryMetadata, void 0);
85
+ }, query, mapper, mode, this.logger, void 0, queryMetadata, void 0, this.options.paramsInErrors);
55
86
  }
56
87
  transaction(transaction, config = {}) {
88
+ if (config?.behavior === "concurrent") throw new Error("Concurrent transactions are not supported by driver");
57
89
  const tx = new NodeSQLiteTransaction("sync", this.dialect, this, this.relations);
58
90
  this.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ""}`));
59
91
  try {
@@ -61,7 +93,10 @@ var NodeSQLiteSession = class extends SQLiteAsyncSession {
61
93
  this.run(sql`commit`);
62
94
  return result;
63
95
  } catch (err) {
64
- this.run(sql`rollback`);
96
+ try {
97
+ this.run(sql`rollback`);
98
+ } catch {
99
+ }
65
100
  throw err;
66
101
  }
67
102
  }
@@ -77,24 +112,33 @@ var NodeSQLiteTransaction = class NodeSQLiteTransaction2 extends SQLiteAsyncTran
77
112
  tx.run(sql.raw(`release savepoint ${savepointName}`));
78
113
  return result;
79
114
  } catch (err) {
80
- tx.run(sql.raw(`rollback to savepoint ${savepointName}`));
115
+ try {
116
+ tx.run(sql.raw(`rollback to savepoint ${savepointName}`));
117
+ } catch {
118
+ }
81
119
  throw err;
82
120
  }
83
121
  }
84
122
  };
85
123
 
86
- // node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/node-sqlite/driver.js
124
+ // node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/drizzle-orm/node-sqlite/driver.js
87
125
  import { DatabaseSync } from "node:sqlite";
88
126
  var NodeSQLiteDatabase = class extends SQLiteAsyncDatabase {
89
127
  static [entityKind] = "NodeSQLiteDatabase";
90
128
  };
91
129
  function construct(client, config = {}) {
92
- const dialect = new SQLiteDialect({ useJitMappers: jitCompatCheck(config.jit) });
130
+ const dialect = new SQLiteDialect({
131
+ codecs: config.codecs ?? nodeSQLiteCodecs,
132
+ useJitMappers: jitCompatCheck(config.jit)
133
+ });
93
134
  let logger;
94
135
  if (config.logger === true) logger = new DefaultLogger();
95
136
  else if (config.logger !== false) logger = config.logger;
96
137
  const relations = config.relations ?? {};
97
- const db = new NodeSQLiteDatabase("sync", dialect, new NodeSQLiteSession(client, dialect, relations, { logger }), relations);
138
+ const db = new NodeSQLiteDatabase("sync", dialect, new NodeSQLiteSession(client, dialect, relations, {
139
+ logger,
140
+ paramsInErrors: config.paramsInErrors
141
+ }), relations);
98
142
  db.$client = client;
99
143
  return db;
100
144
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/node-sqlite/session.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/node-sqlite/driver.ts"],
4
- "sourcesContent": ["import type { DatabaseSync, SQLInputValue, StatementResultingChanges } from 'node:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport { DrizzleQueryError } from '~/errors.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { type Query, sql } from '~/sql/sql.ts';\nimport {\n\tSQLiteAsyncPreparedQuery,\n\ttype SQLiteAsyncPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteAsyncSession,\n\tSQLiteAsyncTransaction,\n\ttype SQLiteQueryExecutors,\n} from '~/sqlite-core/async/session.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLiteExecuteMethod, SQLiteTransactionConfig } from '~/sqlite-core/session.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\n\nexport interface NodeSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport type NodeSQLiteRunResult = StatementResultingChanges;\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class NodeSQLiteSession<TRelations extends AnyRelations>\n\textends SQLiteAsyncSession<'sync', NodeSQLiteRunResult, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'SQLJsSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DatabaseSync,\n\t\tdialect: SQLiteDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate options: NodeSQLiteSessionOptions = {},\n\t) {\n\t\tsuper(dialect, 'sync');\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tmode: 'arrays' | 'objects' | 'raw',\n\t\t_prepare: boolean,\n\t\texecuteMethod?: SQLiteExecuteMethod,\n\t\tmapper?: (rows: any[]) => any,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t): SQLiteAsyncPreparedQuery<T & { run: NodeSQLiteRunResult }> {\n\t\tlet stmt: ReturnType<typeof this.client.prepare>;\n\t\ttry {\n\t\t\tstmt = this.client.prepare(query.sql);\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(query.sql, query.params, e as Error);\n\t\t}\n\n\t\tconst executors: SQLiteQueryExecutors<'sync'> = {\n\t\t\tall: (params) => {\n\t\t\t\tstmt.setReturnArrays(mode === 'arrays');\n\t\t\t\tconst res = stmt.all(...params as SQLInputValue[]);\n\n\t\t\t\t// Null-prototype object => object\n\t\t\t\tif (mode === 'objects') return res.map((row) => ({ ...row }));\n\t\t\t\treturn res;\n\t\t\t},\n\t\t\tget: (params) => {\n\t\t\t\tstmt.setReturnArrays(mode === 'arrays');\n\t\t\t\tconst res = stmt.get(...params as SQLInputValue[]);\n\n\t\t\t\t// Null-prototype object => object\n\t\t\t\tif (res && mode === 'objects') return { ...res };\n\t\t\t\treturn res;\n\t\t\t},\n\t\t\trun: (params) => {\n\t\t\t\tstmt.setReturnArrays(false);\n\t\t\t\treturn stmt.run(...params as SQLInputValue[]);\n\t\t\t},\n\t\t\tvalues: (params) => {\n\t\t\t\tstmt.setReturnArrays(true);\n\t\t\t\treturn stmt.all(...params as SQLInputValue[]);\n\t\t\t},\n\t\t};\n\n\t\treturn new SQLiteAsyncPreparedQuery(\n\t\t\t'sync',\n\t\t\texecuteMethod,\n\t\t\texecutors,\n\t\t\tquery,\n\t\t\tmapper,\n\t\t\tmode,\n\t\t\tthis.logger,\n\t\t\tundefined,\n\t\t\tqueryMetadata,\n\t\t\tundefined,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: NodeSQLiteTransaction<TRelations>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new NodeSQLiteTransaction('sync', this.dialect, this, this.relations);\n\t\tthis.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class NodeSQLiteTransaction<TRelations extends AnyRelations>\n\textends SQLiteAsyncTransaction<'sync', StatementResultingChanges, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'SQLJsTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: NodeSQLiteTransaction<TRelations>,\n\t\t) => T extends Promise<any> ? DrizzleTypeError<\"Sync drivers can't use async functions in transactions!\">\n\t\t\t: T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodeSQLiteTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis._.relations,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\ttx.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\ttx.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result as T;\n\t\t} catch (err) {\n\t\t\ttx.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n", "import { DatabaseSync, type DatabaseSyncOptions } from 'node:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SQLiteAsyncDatabase } from '~/sqlite-core/async/db.ts';\nimport { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleSQLiteConfig } from '~/sqlite-core/utils.ts';\nimport { jitCompatCheck } from '~/utils.ts';\nimport { type NodeSQLiteRunResult, NodeSQLiteSession } from './session.ts';\n\nexport class NodeSQLiteDatabase<TRelations extends AnyRelations = EmptyRelations>\n\textends SQLiteAsyncDatabase<'sync', NodeSQLiteRunResult, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'NodeSQLiteDatabase';\n}\n\nexport type DrizzleNodeSQLiteDatabaseConfig =\n\t| ({\n\t\tpath?: string;\n\t} & DatabaseSyncOptions)\n\t| string\n\t| undefined;\n\nfunction construct<TRelations extends AnyRelations = EmptyRelations>(\n\tclient: DatabaseSync,\n\tconfig: DrizzleSQLiteConfig<TRelations> = {},\n): NodeSQLiteDatabase<TRelations> & {\n\t$client: DatabaseSync;\n} {\n\tconst dialect = new SQLiteDialect({\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\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\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new NodeSQLiteSession(client, dialect, relations, {\n\t\tlogger,\n\t});\n\tconst db = new NodeSQLiteDatabase(\n\t\t'sync',\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<TRelations extends AnyRelations = EmptyRelations, TClient extends DatabaseSync = DatabaseSync>(\n\t...params:\n\t\t| []\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleSQLiteConfig<TRelations>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleSQLiteConfig<TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: DrizzleNodeSQLiteDatabaseConfig | string;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodeSQLiteDatabase<TRelations> & {\n\t$client: TClient;\n} {\n\tif (params[0] === undefined || typeof params[0] === 'string') {\n\t\tconst instance = params[0] === undefined ? new DatabaseSync(':memory:') : new DatabaseSync(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...config } = params[0] as\n\t\t& ({\n\t\t\tconnection?: DrizzleNodeSQLiteDatabaseConfig | string;\n\t\t\tclient?: TClient;\n\t\t})\n\t\t& DrizzleSQLiteConfig<TRelations>;\n\n\tif (client) return construct(client, config) as any;\n\n\tif (typeof connection === 'object') {\n\t\tconst { path, ...options } = connection;\n\n\t\tconst instance = new DatabaseSync(path ?? ':memory:', options);\n\n\t\treturn construct(instance, config) as any;\n\t}\n\n\tconst instance = new DatabaseSync(connection ?? ':memory:');\n\n\treturn construct(instance, config) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TRelations extends AnyRelations = EmptyRelations>(\n\t\tconfig?: DrizzleSQLiteConfig<TRelations>,\n\t): NodeSQLiteDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/node-sqlite/codecs.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/node-sqlite/session.ts", "../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.5_@opentelemetry+api@1.10.0_valibot@1.5.0_typescript@7.0.2__zod@4.6.7/node_modules/src/node-sqlite/driver.ts"],
4
+ "sourcesContent": ["import {\n\tbooleanFromInteger,\n\tbufferFromBytes,\n\tcastToText,\n\tdateFromStoredMilliseconds,\n\tdateFromStoredSeconds,\n\trefineSqliteCodecs,\n} from '~/sqlite-core/codecs.ts';\n\nexport const nodeSQLiteCodecs = refineSqliteCodecs({\n\t'integer:boolean': {\n\t\tnormalize: booleanFromInteger,\n\t},\n\t'integer:timestamp': {\n\t\tnormalize: dateFromStoredSeconds,\n\t},\n\t'integer:timestamp_ms': {\n\t\tnormalize: dateFromStoredMilliseconds,\n\t},\n\t'text:json': {\n\t\tnormalize: JSON.parse,\n\t},\n\tblob: {\n\t\tnormalize: bufferFromBytes,\n\t},\n\t'blob:json': {\n\t\tcast: castToText,\n\t\tnormalize: JSON.parse,\n\t},\n\t'blob:bigint': {\n\t\tcast: castToText,\n\t\tnormalize: BigInt,\n\t},\n\tnumeric: {\n\t\tcast: castToText,\n\t\tnormalize: String,\n\t},\n\t'numeric:number': {\n\t\tnormalize: Number,\n\t},\n\t'numeric:bigint': {\n\t\tcast: castToText,\n\t\tnormalize: BigInt,\n\t},\n});\n", "import type { DatabaseSync, SQLInputValue, StatementResultingChanges } from 'node:sqlite';\nimport type { QueryMetadata } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DrizzleQueryError } from '~/errors.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { type Query, sql } from '~/sql/sql.ts';\nimport {\n\tSQLiteAsyncPreparedQuery,\n\ttype SQLiteAsyncPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteAsyncSession,\n\tSQLiteAsyncTransaction,\n\ttype SQLiteQueryExecutors,\n} from '~/sqlite-core/async/session.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLiteExecuteMethod, SQLiteTransactionConfig } from '~/sqlite-core/session.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\n\nexport interface NodeSQLiteSessionOptions {\n\tlogger?: Logger;\n\tparamsInErrors?: boolean;\n}\n\nexport type NodeSQLiteRunResult = StatementResultingChanges;\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class NodeSQLiteSession<TRelations extends AnyRelations>\n\textends SQLiteAsyncSession<'sync', NodeSQLiteRunResult, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'SQLJsSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DatabaseSync,\n\t\tdialect: SQLiteDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate options: NodeSQLiteSessionOptions = {},\n\t) {\n\t\tsuper(dialect, 'sync');\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tmode: 'arrays' | 'objects' | 'raw',\n\t\t_prepare: boolean,\n\t\texecuteMethod?: SQLiteExecuteMethod,\n\t\tmapper?: (rows: any[]) => any,\n\t\tqueryMetadata?: QueryMetadata,\n\t): SQLiteAsyncPreparedQuery<T & { run: NodeSQLiteRunResult }> {\n\t\tlet stmt: ReturnType<typeof this.client.prepare>;\n\t\ttry {\n\t\t\tstmt = this.client.prepare(query.sql);\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(query.sql, this.options.paramsInErrors ? query.params : undefined, e as Error);\n\t\t}\n\n\t\tconst executors: SQLiteQueryExecutors<'sync'> = {\n\t\t\tall: (params) => {\n\t\t\t\tstmt.setReturnArrays(mode === 'arrays');\n\t\t\t\tconst res = stmt.all(...params as SQLInputValue[]);\n\n\t\t\t\t// Null-prototype object => object\n\t\t\t\tif (mode === 'objects') return res.map((row) => ({ ...row }));\n\t\t\t\treturn res;\n\t\t\t},\n\t\t\tget: (params) => {\n\t\t\t\tstmt.setReturnArrays(mode === 'arrays');\n\t\t\t\tconst res = stmt.get(...params as SQLInputValue[]);\n\n\t\t\t\t// Null-prototype object => object\n\t\t\t\tif (res && mode === 'objects') return { ...res };\n\t\t\t\treturn res;\n\t\t\t},\n\t\t\trun: (params) => {\n\t\t\t\tstmt.setReturnArrays(false);\n\t\t\t\treturn stmt.run(...params as SQLInputValue[]);\n\t\t\t},\n\t\t};\n\n\t\treturn new SQLiteAsyncPreparedQuery(\n\t\t\t'sync',\n\t\t\texecuteMethod,\n\t\t\texecutors,\n\t\t\tquery,\n\t\t\tmapper,\n\t\t\tmode,\n\t\t\tthis.logger,\n\t\t\tundefined,\n\t\t\tqueryMetadata,\n\t\t\tundefined,\n\t\t\tthis.options.paramsInErrors,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: NodeSQLiteTransaction<TRelations>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tif (config?.behavior === 'concurrent') throw new Error('Concurrent transactions are not supported by driver');\n\n\t\tconst tx = new NodeSQLiteTransaction('sync', this.dialect, this, this.relations);\n\t\tthis.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\ttry {\n\t\t\t\tthis.run(sql`rollback`);\n\t\t\t} catch {\n\t\t\t\t// original error takes priority\n\t\t\t}\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class NodeSQLiteTransaction<TRelations extends AnyRelations>\n\textends SQLiteAsyncTransaction<'sync', StatementResultingChanges, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'SQLJsTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: NodeSQLiteTransaction<TRelations>,\n\t\t) => T extends Promise<any> ? DrizzleTypeError<\"Sync drivers can't use async functions in transactions!\">\n\t\t\t: T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodeSQLiteTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis._.relations,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\ttx.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\ttx.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result as T;\n\t\t} catch (err) {\n\t\t\ttry {\n\t\t\t\ttx.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\t} catch {\n\t\t\t\t// original error takes priority\n\t\t\t}\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n", "import { DatabaseSync, type DatabaseSyncOptions } from 'node:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SQLiteAsyncDatabase } from '~/sqlite-core/async/db.ts';\nimport { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleSQLiteConfig } from '~/sqlite-core/utils.ts';\nimport { jitCompatCheck } from '~/utils.ts';\nimport { nodeSQLiteCodecs } from './codecs.ts';\nimport { type NodeSQLiteRunResult, NodeSQLiteSession } from './session.ts';\n\nexport class NodeSQLiteDatabase<TRelations extends AnyRelations = EmptyRelations>\n\textends SQLiteAsyncDatabase<'sync', NodeSQLiteRunResult, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'NodeSQLiteDatabase';\n}\n\nexport type DrizzleNodeSQLiteDatabaseConfig =\n\t| ({\n\t\tpath?: string;\n\t} & DatabaseSyncOptions)\n\t| string\n\t| undefined;\n\nfunction construct<TRelations extends AnyRelations = EmptyRelations>(\n\tclient: DatabaseSync,\n\tconfig: DrizzleSQLiteConfig<TRelations> = {},\n): NodeSQLiteDatabase<TRelations> & {\n\t$client: DatabaseSync;\n} {\n\tconst dialect = new SQLiteDialect({\n\t\tcodecs: config.codecs ?? nodeSQLiteCodecs,\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\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\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new NodeSQLiteSession(client, dialect, relations, {\n\t\tlogger,\n\t\tparamsInErrors: config.paramsInErrors,\n\t});\n\tconst db = new NodeSQLiteDatabase(\n\t\t'sync',\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<TRelations extends AnyRelations = EmptyRelations, TClient extends DatabaseSync = DatabaseSync>(\n\t...params:\n\t\t| []\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleSQLiteConfig<TRelations>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleSQLiteConfig<TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: DrizzleNodeSQLiteDatabaseConfig | string;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodeSQLiteDatabase<TRelations> & {\n\t$client: TClient;\n} {\n\tif (params[0] === undefined || typeof params[0] === 'string') {\n\t\tconst instance = params[0] === undefined ? new DatabaseSync(':memory:') : new DatabaseSync(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...config } = params[0] as\n\t\t& ({\n\t\t\tconnection?: DrizzleNodeSQLiteDatabaseConfig | string;\n\t\t\tclient?: TClient;\n\t\t})\n\t\t& DrizzleSQLiteConfig<TRelations>;\n\n\tif (client) return construct(client, config) as any;\n\n\tif (typeof connection === 'object') {\n\t\tconst { path, ...options } = connection;\n\n\t\tconst instance = new DatabaseSync(path ?? ':memory:', options);\n\n\t\treturn construct(instance, config) as any;\n\t}\n\n\tconst instance = new DatabaseSync(connection ?? ':memory:');\n\n\treturn construct(instance, config) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TRelations extends AnyRelations = EmptyRelations>(\n\t\tconfig?: DrizzleSQLiteConfig<TRelations>,\n\t): NodeSQLiteDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AASA,IAAa,mBAAmB,mBAAmB;EAClD,mBAAmB,EAClB,WAAW,mBACZ;EACA,qBAAqB,EACpB,WAAW,sBACZ;EACA,wBAAwB,EACvB,WAAW,2BACZ;EACA,aAAa,EACZ,WAAW,KAAK,MACjB;EACA,MAAM,EACL,WAAW,gBACZ;EACA,aAAa;IACZ,MAAM;IACN,WAAW,KAAK;EACjB;EACA,eAAe;IACd,MAAM;IACN,WAAW;EACZ;EACA,SAAS;IACR,MAAM;IACN,WAAW;EACZ;EACA,kBAAkB,EACjB,WAAW,OACZ;EACA,kBAAkB;IACjB,MAAM;IACN,WAAW;EACZ;AACD,CAAC;;;AChBD,IAAa,oBAAb,cACS,mBACT;EAMU;EAEA;EACA;EART,QAA0B,UAAA,IAAsB;EAEhD;EAEA,YACC,QACA,SACA,WACA,UAA4C,CAAC,GAC5C;AACD,UAAM,SAAS,MAAM;AALb,SAAA,SAAA;AAEA,SAAA,YAAA;AACA,SAAA,UAAA;AAGR,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;EAChD;EAEA,aACC,OACA,MACA,UACA,eACA,QACA,eAC6D;AAC7D,QAAI;AACJ,QAAI;AACH,aAAO,KAAK,OAAO,QAAQ,MAAM,GAAG;IACrC,SAAS,GAAG;AACX,YAAM,IAAI,kBAAkB,MAAM,KAAK,KAAK,QAAQ,iBAAiB,MAAM,SAAS,QAAW,CAAU;IAC1G;AAyBA,WAAO,IAAI,yBACV,QACA,eACA;MAzBA,KAAA,CAAM,WAAW;AAChB,aAAK,gBAAgB,SAAS,QAAQ;AACtC,cAAM,MAAM,KAAK,IAAI,GAAG,MAAyB;AAGjD,YAAI,SAAS,UAAW,QAAO,IAAI,IAAA,CAAK,SAAS,EAAE,GAAG,IAAI,EAAE;AAC5D,eAAO;MACR;MACA,KAAA,CAAM,WAAW;AAChB,aAAK,gBAAgB,SAAS,QAAQ;AACtC,cAAM,MAAM,KAAK,IAAI,GAAG,MAAyB;AAGjD,YAAI,OAAO,SAAS,UAAW,QAAO,EAAE,GAAG,IAAI;AAC/C,eAAO;MACR;MACA,KAAA,CAAM,WAAW;AAChB,aAAK,gBAAgB,KAAK;AAC1B,eAAO,KAAK,IAAI,GAAG,MAAyB;MAC7C;IAMQ,GACR,OACA,QACA,MACA,KAAK,QACL,QACA,eACA,QACA,KAAK,QAAQ,cACd;EACD;EAEA,YACC,aACA,SAAkC,CAAC,GAC/B;AACJ,QAAI,QAAQ,aAAa,aAAc,OAAM,IAAI,MAAM,qDAAqD;AAE5G,UAAM,KAAK,IAAI,sBAAsB,QAAQ,KAAK,SAAS,MAAM,KAAK,SAAS;AAC/E,SAAK,IAAI,IAAI,IAAI,QAAQ,OAAO,WAAW,IAAI,OAAO,QAAA,KAAa,EAAA,EAAI,CAAC;AACxE,QAAI;AACH,YAAM,SAAS,YAAY,EAAE;AAC7B,WAAK,IAAI,WAAW;AACpB,aAAO;IACR,SAAS,KAAK;AACb,UAAI;AACH,aAAK,IAAI,aAAa;MACvB,QAAQ;MAER;AACA,YAAM;IACP;EACD;AACD;AAEA,IAAa,wBAAb,MAAaA,+BACJ,uBACT;EACC,QAA0B,UAAA,IAAsB;EAEhD,YACC,aAII;AACJ,UAAM,gBAAgB,KAAK,KAAK,cAAc,CAAA;AAC9C,UAAM,KAAK,IAAIA,uBACd,QACA,KAAK,SACL,KAAK,SACL,KAAK,EAAE,WACP,KAAK,cAAc,CACpB;AACA,OAAG,IAAI,IAAI,IAAI,aAAa,aAAA,EAAe,CAAC;AAC5C,QAAI;AACH,YAAM,SAAS,YAAY,EAAE;AAC7B,SAAG,IAAI,IAAI,IAAI,qBAAqB,aAAA,EAAe,CAAC;AACpD,aAAO;IACR,SAAS,KAAK;AACb,UAAI;AACH,WAAG,IAAI,IAAI,IAAI,yBAAyB,aAAA,EAAe,CAAC;MACzD,QAAQ;MAER;AACA,YAAM;IACP;EACD;AACD;;;;AC/IA,IAAa,qBAAb,cACS,oBACT;EACC,QAA0B,UAAA,IAAsB;AACjD;AASA,SAAS,UACR,QACA,SAA0C,CAAC,GAG1C;AACD,QAAM,UAAU,IAAI,cAAc;IACjC,QAAQ,OAAO,UAAU;IACzB,eAAe,eAAe,OAAO,GAAG;EACzC,CAAC;AACD,MAAI;AACJ,MAAI,OAAO,WAAW,KACrB,UAAS,IAAI,cAAc;WACjB,OAAO,WAAW,MAC5B,UAAS,OAAO;AAGjB,QAAM,YAAY,OAAO,aAAa,CAAC;AAKvC,QAAM,KAAK,IAAI,mBACd,QACA,SACA,IAPmB,kBAAkB,QAAQ,SAAS,WAAW;IACjE;IACA,gBAAgB,OAAO;EACxB,CAIC,GACA,SACD;AACA,KAAW,UAAU;AAErB,SAAO;AACR;AAEA,SAAgB,WACZ,QAqBF;AACD,MAAI,OAAO,CAAA,MAAO,UAAa,OAAO,OAAO,CAAA,MAAO,SAGnD,QAAO,UAFU,OAAO,CAAA,MAAO,SAAY,IAAI,aAAa,UAAU,IAAI,IAAI,aAAa,OAAO,CAAA,CAAE,GAEzE,OAAO,CAAA,CAAE;AAGrC,QAAM,EAAE,YAAY,QAAQ,GAAG,OAAA,IAAW,OAAO,CAAA;AAOjD,MAAI,OAAQ,QAAO,UAAU,QAAQ,MAAM;AAE3C,MAAI,OAAO,eAAe,UAAU;AACnC,UAAM,EAAE,MAAM,GAAG,QAAA,IAAY;AAI7B,WAAO,UAAU,IAFI,aAAa,QAAQ,YAAY,OAE9B,GAAG,MAAM;EAClC;AAIA,SAAO,UAAU,IAFI,aAAa,cAAc,UAExB,GAAG,MAAM;AAClC;CAEO,SAAA,UAAA;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;EACnC;;AACA,GAAA,YAAA,UAAA,CAAA,EAAD;",
6
6
  "names": ["NodeSQLiteTransaction"]
7
7
  }