@redocly/replay 0.27.0-next.4 → 0.27.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/replay-AiChatProvider-D7E0a83D.js +1006 -0
- package/dist/replay-AiChatProvider-p9SioFWy.js +6 -0
- package/dist/replay-AiChatSqliteDBStorage-CKQJ5VZi.js +88 -0
- package/dist/replay-AiChatSqliteDBStorage-DgGB1XKW.js +1 -0
- package/dist/replay-AiPanel-BLkqnlmb.js +849 -0
- package/dist/replay-AiPanel-DvOGYsWl.js +2918 -0
- package/dist/replay-HistorySqliteDBStorage-BrILW8Fu.js +1 -0
- package/dist/replay-HistorySqliteDBStorage-CtF6-vY8.js +113 -0
- package/dist/replay-SqliteDBStorage-CNJbZXTw.js +14 -0
- package/dist/replay-SqliteDBStorage-D_31Bd3Z.js +2857 -0
- package/dist/replay-StepContextSqliteDBStorage-BSepLyBI.js +1 -0
- package/dist/replay-StepContextSqliteDBStorage-BfAAKDwA.js +83 -0
- package/dist/replay-agent-loop-DklepPbJ.js +1533 -0
- package/dist/replay-agent-loop-fKCHgyOD.js +1 -0
- package/dist/replay-ai-chat-mappers-D-vUBq2s.js +1 -0
- package/dist/replay-ai-chat-mappers-IWtvE0Nl.js +99 -0
- package/dist/replay-ai-message-parts.schema-BBdjwldJ.js +1 -0
- package/dist/replay-ai-message-parts.schema-E9u9-nqr.js +60 -0
- package/dist/replay-create-model-CfrWgdF7.js +38224 -0
- package/dist/replay-create-model-xGRAIhcu.js +104 -0
- package/dist/replay-db-BtdwaWh3.js +306 -0
- package/dist/replay-db-XlueEDU-.js +64 -0
- package/dist/replay-defaults-CzR6jw9a.js +32 -0
- package/dist/replay-defaults-DVvOnvnR.js +27 -0
- package/dist/replay-external-resolver-D6VSVDwt.js +34 -0
- package/dist/replay-external-resolver-Skh0OGde.js +2 -0
- package/dist/replay-history.schema-5ce6X0R1.js +28 -0
- package/dist/replay-history.schema-miM3Etuf.js +1 -0
- package/dist/replay-index-BEzVYZeb.js +504 -0
- package/dist/{replay-index-DCclzbQl.js → replay-index-BOB__Jm6.js} +1 -1
- package/dist/replay-index-C6SJPGDO.js +23 -0
- package/dist/{replay-index-D6LeDb4M.js → replay-index-CCvitTKt.js} +6 -6
- package/dist/replay-index-CUs62_1f.js +1 -0
- package/dist/replay-index-DXnDNeqk.js +93088 -0
- package/dist/replay-index-S_wAPmTA.js +6877 -0
- package/dist/replay-index-fVC8e5y9.js +1 -0
- package/dist/replay-indexes-CfsvVMi_.js +1242 -0
- package/dist/replay-indexes-Dqjl8m6C.js +1 -0
- package/dist/replay-lint-BCVeL_wb.js +184 -0
- package/dist/replay-lint-DjMIgYfF.js +33416 -0
- package/dist/{replay-lint-graphql-Cdmm_aJs.js → replay-lint-graphql-Bltv-T6_.js} +2 -2
- package/dist/{replay-lint-graphql-8tMA-ttz.js → replay-lint-graphql-bkrdHRy7.js} +5 -5
- package/dist/replay-resolve-BhcSceq-.js +3694 -0
- package/dist/replay-resolve-CQL6WBG1.js +47 -0
- package/dist/{replay-respect-run-DrWWHTWp.js → replay-respect-run-CecN1j9r.js} +1608 -1558
- package/dist/replay-respect-run-rJm4W93K.js +78 -0
- package/dist/replay-step-context.schema-BuuXkAck.js +1 -0
- package/dist/replay-step-context.schema-DBk4jufr.js +21 -0
- package/dist/{replay-tauri-path-BIIo3xjJ.js → replay-tauri-path--8KtMkGg.js} +1 -1
- package/dist/{replay-tauri-path-BQmCYwRI.js → replay-tauri-path--BfusnkB.js} +4 -4
- package/dist/replay-useAiChatQueries-B1-NwsZz.js +213 -0
- package/dist/replay-useAiChatQueries-Btd-PmIH.js +3532 -0
- package/dist/replay-validate-key-Bk0SFd3-.js +1 -0
- package/dist/replay-validate-key-CYsfegSv.js +28 -0
- package/dist/replay.cjs +1 -1
- package/dist/replay.d.ts +37 -5
- package/dist/replay.js +18 -18
- package/package.json +4 -4
- package/dist/replay-index-BFggGnsX.js +0 -181252
- package/dist/replay-index-BWX4r5us.js +0 -8354
- package/dist/replay-index-DuAFN7X8.js +0 -21
- package/dist/replay-index-tDvNtfHp.js +0 -1
- package/dist/replay-respect-run-DGe96SG3.js +0 -78
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./replay-history.schema-miM3Etuf.js"),r=require("./replay-indexes-Dqjl8m6C.js");function l(t){return r.sql`count(${r.sql.raw("*")})`.mapWith(Number)}function c(t){if(!t.step)throw new Error(`Invalid step history record: missing step data for id ${t.id}`);return{id:t.id,date:t.date,type:"step",step:t.step,response:t.response??null,statusCode:t.statusCode??null}}function u(t){if(!t.workflowId||!t.collectionId||!t.workflow||!t.workflowResult||t.success===null)throw new Error(`Invalid workflow history record: missing required fields for id ${t.id}`);return{id:t.id,date:t.date,type:"workflow",workflowId:t.workflowId,collectionId:t.collectionId,workflow:t.workflow,workflowResult:t.workflowResult,success:t.success,durationMs:t.durationMs??null}}function w(t){return{id:t.id,date:t.date,type:"step",step:t.step,response:t.response,statusCode:t.statusCode}}function y(t){return{id:t.id,date:t.date,type:"workflow",workflowId:t.workflowId,collectionId:t.collectionId,workflow:t.workflow,workflowResult:t.workflowResult,success:t.success,durationMs:t.durationMs}}function a(t){return t.type==="workflow"?u(t):c(t)}function h(t){return t.type==="workflow"?y(t):w(t)}class f{constructor(e){this.sqliteDB=e}sqliteDB;get db(){return this.sqliteDB.db}selectAll(){return this.db.select().from(i.history)}async initialize(){await this.sqliteDB.initialize()}async read(e){await this.initialize();const s=this.selectAll();return(e?.type?await s.where(r.eq(i.history.type,e.type)).orderBy(r.desc(i.history.date)):await s.orderBy(r.desc(i.history.date))).map(a)}async addItem(e){await this.initialize();const s=h(e);await this.db.insert(i.history).values(s)}async updateItem(e,s){await this.initialize();const{id:o,type:n,...d}=s;await this.db.update(i.history).set(d).where(r.eq(i.history.id,e))}async deleteItem(e){await this.initialize(),await this.db.delete(i.history).where(r.eq(i.history.id,e))}async clear(){await this.initialize(),await this.db.delete(i.history)}async getById(e){await this.initialize();const s=await this.selectAll().where(r.eq(i.history.id,e)).limit(1);return s.length===0?null:a(s[0])}async getRecent(e,s){await this.initialize();const o=this.selectAll();return(s?.type?await o.where(r.eq(i.history.type,s.type)).orderBy(r.desc(i.history.date)).limit(e):await o.orderBy(r.desc(i.history.date)).limit(e)).map(a)}async count(e){return await this.initialize(),(e?.type?await this.db.select({value:l()}).from(i.history).where(r.eq(i.history.type,e.type)):await this.db.select({value:l()}).from(i.history))[0]?.value||0}}exports.HistorySqliteDBStorage=f;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { h as i } from "./replay-history.schema-5ce6X0R1.js";
|
|
2
|
+
import { s as n, e as r, d as a } from "./replay-indexes-CfsvVMi_.js";
|
|
3
|
+
function d(t) {
|
|
4
|
+
return n`count(${n.raw("*")})`.mapWith(Number);
|
|
5
|
+
}
|
|
6
|
+
function u(t) {
|
|
7
|
+
if (!t.step)
|
|
8
|
+
throw new Error(`Invalid step history record: missing step data for id ${t.id}`);
|
|
9
|
+
return {
|
|
10
|
+
id: t.id,
|
|
11
|
+
date: t.date,
|
|
12
|
+
type: "step",
|
|
13
|
+
step: t.step,
|
|
14
|
+
response: t.response ?? null,
|
|
15
|
+
statusCode: t.statusCode ?? null
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function f(t) {
|
|
19
|
+
if (!t.workflowId || !t.collectionId || !t.workflow || !t.workflowResult || t.success === null)
|
|
20
|
+
throw new Error(`Invalid workflow history record: missing required fields for id ${t.id}`);
|
|
21
|
+
return {
|
|
22
|
+
id: t.id,
|
|
23
|
+
date: t.date,
|
|
24
|
+
type: "workflow",
|
|
25
|
+
workflowId: t.workflowId,
|
|
26
|
+
collectionId: t.collectionId,
|
|
27
|
+
workflow: t.workflow,
|
|
28
|
+
workflowResult: t.workflowResult,
|
|
29
|
+
success: t.success,
|
|
30
|
+
durationMs: t.durationMs ?? null
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function y(t) {
|
|
34
|
+
return {
|
|
35
|
+
id: t.id,
|
|
36
|
+
date: t.date,
|
|
37
|
+
type: "step",
|
|
38
|
+
step: t.step,
|
|
39
|
+
response: t.response,
|
|
40
|
+
statusCode: t.statusCode
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function p(t) {
|
|
44
|
+
return {
|
|
45
|
+
id: t.id,
|
|
46
|
+
date: t.date,
|
|
47
|
+
type: "workflow",
|
|
48
|
+
workflowId: t.workflowId,
|
|
49
|
+
collectionId: t.collectionId,
|
|
50
|
+
workflow: t.workflow,
|
|
51
|
+
workflowResult: t.workflowResult,
|
|
52
|
+
success: t.success,
|
|
53
|
+
durationMs: t.durationMs
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function l(t) {
|
|
57
|
+
return t.type === "workflow" ? f(t) : u(t);
|
|
58
|
+
}
|
|
59
|
+
function h(t) {
|
|
60
|
+
return t.type === "workflow" ? p(t) : y(t);
|
|
61
|
+
}
|
|
62
|
+
class m {
|
|
63
|
+
constructor(e) {
|
|
64
|
+
this.sqliteDB = e;
|
|
65
|
+
}
|
|
66
|
+
sqliteDB;
|
|
67
|
+
get db() {
|
|
68
|
+
return this.sqliteDB.db;
|
|
69
|
+
}
|
|
70
|
+
selectAll() {
|
|
71
|
+
return this.db.select().from(i);
|
|
72
|
+
}
|
|
73
|
+
async initialize() {
|
|
74
|
+
await this.sqliteDB.initialize();
|
|
75
|
+
}
|
|
76
|
+
async read(e) {
|
|
77
|
+
await this.initialize();
|
|
78
|
+
const s = this.selectAll();
|
|
79
|
+
return (e?.type ? await s.where(r(i.type, e.type)).orderBy(a(i.date)) : await s.orderBy(a(i.date))).map(l);
|
|
80
|
+
}
|
|
81
|
+
async addItem(e) {
|
|
82
|
+
await this.initialize();
|
|
83
|
+
const s = h(e);
|
|
84
|
+
await this.db.insert(i).values(s);
|
|
85
|
+
}
|
|
86
|
+
async updateItem(e, s) {
|
|
87
|
+
await this.initialize();
|
|
88
|
+
const { id: o, type: w, ...c } = s;
|
|
89
|
+
await this.db.update(i).set(c).where(r(i.id, e));
|
|
90
|
+
}
|
|
91
|
+
async deleteItem(e) {
|
|
92
|
+
await this.initialize(), await this.db.delete(i).where(r(i.id, e));
|
|
93
|
+
}
|
|
94
|
+
async clear() {
|
|
95
|
+
await this.initialize(), await this.db.delete(i);
|
|
96
|
+
}
|
|
97
|
+
async getById(e) {
|
|
98
|
+
await this.initialize();
|
|
99
|
+
const s = await this.selectAll().where(r(i.id, e)).limit(1);
|
|
100
|
+
return s.length === 0 ? null : l(s[0]);
|
|
101
|
+
}
|
|
102
|
+
async getRecent(e, s) {
|
|
103
|
+
await this.initialize();
|
|
104
|
+
const o = this.selectAll();
|
|
105
|
+
return (s?.type ? await o.where(r(i.type, s.type)).orderBy(a(i.date)).limit(e) : await o.orderBy(a(i.date)).limit(e)).map(l);
|
|
106
|
+
}
|
|
107
|
+
async count(e) {
|
|
108
|
+
return await this.initialize(), (e?.type ? await this.db.select({ value: d() }).from(i).where(r(i.type, e.type)) : await this.db.select({ value: d() }).from(i))[0]?.value || 0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export {
|
|
112
|
+
m as HistorySqliteDBStorage
|
|
113
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie=require("./replay-index-S_wAPmTA.js"),Te=require("./replay-history.schema-miM3Etuf.js"),Qe=require("./replay-step-context.schema-BuuXkAck.js"),C=require("./replay-ai-message-parts.schema-BBdjwldJ.js"),t=require("./replay-indexes-Dqjl8m6C.js");class Ce{static[t.entityKind]="ConsoleLogWriter";write(e){console.log(e)}}class ve{static[t.entityKind]="DefaultLogger";writer;constructor(e){this.writer=e?.writer??new Ce}logQuery(e,s){const i=s.map(n=>{try{return JSON.stringify(n)}catch{return String(n)}}),r=i.length?` -- params: [${i.join(", ")}]`:"";this.writer.write(`Query: ${e}${r}`)}}class Le{static[t.entityKind]="NoopLogger";logQuery(){}}const re=Symbol.for("drizzle:PgInlineForeignKeys"),ne=Symbol.for("drizzle:EnableRLS");class $e extends t.Table{static[t.entityKind]="PgTable";static Symbol=Object.assign({},t.Table.Symbol,{InlineForeignKeys:re,EnableRLS:ne});[re]=[];[ne]=!1;[t.Table.Symbol.ExtraConfigBuilder]=void 0;[t.Table.Symbol.ExtraConfigColumns]={}}class Ne{static[t.entityKind]="PgPrimaryKeyBuilder";columns;name;constructor(e,s){this.columns=e,this.name=s}build(e){return new xe(e,this.columns,this.name)}}class xe{constructor(e,s,i){this.table=e,this.columns=s,this.name=i}static[t.entityKind]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[$e.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}class de{constructor(e,s,i){this.sourceTable=e,this.referencedTable=s,this.relationName=i,this.referencedTableName=s[t.Table.Symbol.Name]}static[t.entityKind]="Relation";referencedTableName;fieldName}class fe{constructor(e,s){this.table=e,this.config=s}static[t.entityKind]="Relations"}class A extends de{constructor(e,s,i,r){super(e,s,i?.relationName),this.config=i,this.isNullable=r}static[t.entityKind]="One";withFieldName(e){const s=new A(this.sourceTable,this.referencedTable,this.config,this.isNullable);return s.fieldName=e,s}}class J extends de{constructor(e,s,i){super(e,s,i?.relationName),this.config=i}static[t.entityKind]="Many";withFieldName(e){const s=new J(this.sourceTable,this.referencedTable,this.config);return s.fieldName=e,s}}function Re(){return{and:t.and,between:t.between,eq:t.eq,exists:t.exists,gt:t.gt,gte:t.gte,ilike:t.ilike,inArray:t.inArray,isNull:t.isNull,isNotNull:t.isNotNull,like:t.like,lt:t.lt,lte:t.lte,ne:t.ne,not:t.not,notBetween:t.notBetween,notExists:t.notExists,notLike:t.notLike,notIlike:t.notIlike,notInArray:t.notInArray,or:t.or,sql:t.sql}}function Be(){return{sql:t.sql,asc:t.asc,desc:t.desc}}function _e(o,e){Object.keys(o).length===1&&"default"in o&&!t.is(o.default,t.Table)&&(o=o.default);const s={},i={},r={};for(const[n,a]of Object.entries(o))if(t.is(a,t.Table)){const l=t.getTableUniqueName(a),c=i[l];s[l]=n,r[n]={tsName:n,dbName:a[t.Table.Symbol.Name],schema:a[t.Table.Symbol.Schema],columns:a[t.Table.Symbol.Columns],relations:c?.relations??{},primaryKey:c?.primaryKey??[]};for(const h of Object.values(a[t.Table.Symbol.Columns]))h.primary&&r[n].primaryKey.push(h);const u=a[t.Table.Symbol.ExtraConfigBuilder]?.(a[t.Table.Symbol.ExtraConfigColumns]);if(u)for(const h of Object.values(u))t.is(h,Ne)&&r[n].primaryKey.push(...h.columns)}else if(t.is(a,fe)){const l=t.getTableUniqueName(a.table),c=s[l],u=a.config(e(a.table));let h;for(const[f,w]of Object.entries(u))if(c){const q=r[c];q.relations[f]=w}else l in i||(i[l]={relations:{},primaryKey:h}),i[l].relations[f]=w}return{tables:r,tableNamesMap:s}}function Z(o,e){return new fe(o,s=>Object.fromEntries(Object.entries(e(s)).map(([i,r])=>[i,r.withFieldName(i)])))}function Oe(o){return function(s,i){return new A(o,s,i,i?.fields.reduce((r,n)=>r&&n.notNull,!0)??!1)}}function Me(o){return function(s,i){return new J(o,s,i)}}function Ae(o,e,s){if(t.is(s,A)&&s.config)return{fields:s.config.fields,references:s.config.references};const i=e[t.getTableUniqueName(s.referencedTable)];if(!i)throw new Error(`Table "${s.referencedTable[t.Table.Symbol.Name]}" not found in schema`);const r=o[i];if(!r)throw new Error(`Table "${i}" not found in schema`);const n=s.sourceTable,a=e[t.getTableUniqueName(n)];if(!a)throw new Error(`Table "${n[t.Table.Symbol.Name]}" not found in schema`);const l=[];for(const c of Object.values(r.relations))(s.relationName&&s!==c&&c.relationName===s.relationName||!s.relationName&&c.referencedTable===s.sourceTable)&&l.push(c);if(l.length>1)throw s.relationName?new Error(`There are multiple relations with name "${s.relationName}" in table "${i}"`):new Error(`There are multiple relations between "${i}" and "${s.sourceTable[t.Table.Symbol.Name]}". Please specify relation name`);if(l[0]&&t.is(l[0],A)&&l[0].config)return{fields:l[0].config.references,references:l[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${s.fieldName}"`)}function Ke(o){return{one:Oe(o),many:Me(o)}}function Y(o,e,s,i,r=n=>n){const n={};for(const[a,l]of i.entries())if(l.isJson){const c=e.relations[l.tsKey],u=s[a],h=typeof u=="string"?JSON.parse(u):u;n[l.tsKey]=t.is(c,A)?h&&Y(o,o[l.relationTableTsKey],h,l.selection,r):h.map(f=>Y(o,o[l.relationTableTsKey],f,l.selection,r))}else{const c=r(s[a]),u=l.field;let h;t.is(u,t.Column)?h=u:t.is(u,t.SQL)?h=u.decoder:h=u.sql.decoder,n[l.tsKey]=c===null?null:h.mapFromDriverValue(c)}return n}class I{constructor(e){this.table=e}static[t.entityKind]="ColumnAliasProxyHandler";get(e,s){return s==="table"?this.table:e[s]}}class X{constructor(e,s){this.alias=e,this.replaceOriginalName=s}static[t.entityKind]="TableAliasProxyHandler";get(e,s){if(s===t.Table.Symbol.IsAlias)return!0;if(s===t.Table.Symbol.Name)return this.alias;if(this.replaceOriginalName&&s===t.Table.Symbol.OriginalName)return this.alias;if(s===t.ViewBaseConfig)return{...e[t.ViewBaseConfig],name:this.alias,isAlias:!0};if(s===t.Table.Symbol.Columns){const r=e[t.Table.Symbol.Columns];if(!r)return r;const n={};return Object.keys(r).map(a=>{n[a]=new Proxy(r[a],new I(new Proxy(e,this)))}),n}const i=e[s];return t.is(i,t.Column)?new Proxy(i,new I(new Proxy(e,this))):i}}function H(o,e){return new Proxy(o,new X(e,!1))}function B(o,e){return new Proxy(o,new I(new Proxy(o.table,new X(e,!1))))}function me(o,e){return new t.SQL.Aliased(k(o.sql,e),o.fieldAlias)}function k(o,e){return t.sql.join(o.queryChunks.map(s=>t.is(s,t.Column)?B(s,e):t.is(s,t.SQL)?k(s,e):t.is(s,t.SQL.Aliased)?me(s,e):s))}class Q{static[t.entityKind]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,s){if(s==="_")return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(s===t.ViewBaseConfig)return{...e[t.ViewBaseConfig],selectedFields:new Proxy(e[t.ViewBaseConfig].selectedFields,this)};if(typeof s=="symbol")return e[s];const r=(t.is(e,t.Subquery)?e._.selectedFields:t.is(e,t.View)?e[t.ViewBaseConfig].selectedFields:e)[s];if(t.is(r,t.SQL.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!r.isSelectionField)return r.sql;const n=r.clone();return n.isSelectionField=!0,n}if(t.is(r,t.SQL)){if(this.config.sqlBehavior==="sql")return r;throw new Error(`You tried to reference "${s}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return t.is(r,t.Column)?this.config.alias?new Proxy(r,new I(new Proxy(r.table,new X(this.config.alias,this.config.replaceOriginalName??!1)))):r:typeof r!="object"||r===null?r:new Proxy(r,new Q(this.config))}}class K{static[t.entityKind]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(s=>(e?.(),s),s=>{throw e?.(),s})}then(e,s){return this.execute().then(e,s)}}function M(o){return t.is(o,t.SQLiteTable)?[`${o[t.Table.Symbol.BaseName]}`]:t.is(o,t.Subquery)?o._.usedTables??[]:t.is(o,t.SQL)?o.usedTables??[]:[]}class ae extends K{constructor(e,s,i,r){super(),this.table=e,this.session=s,this.dialect=i,this.config={table:e,withList:r}}static[t.entityKind]="SQLiteDelete";config;where(e){return this.config.where=e,this}orderBy(...e){if(typeof e[0]=="function"){const s=e[0](new Proxy(this.config.table[t.Table.Symbol.Columns],new Q({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(s)?s:[s];this.config.orderBy=i}else{const s=e;this.config.orderBy=s}return this}limit(e){return this.config.limit=e,this}returning(e=this.table[t.SQLiteTable.Symbol.Columns]){return this.config.returning=t.orderSelectedFields(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){const{typings:e,...s}=this.dialect.sqlToQuery(this.getSQL());return s}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"delete",tables:M(this.config.table)})}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(e){return this._prepare().execute(e)}$dynamic(){return this}}function Pe(o){return(o.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(s=>s.toLowerCase()).join("_")}function je(o){return(o.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((s,i,r)=>{const n=r===0?i.toLowerCase():`${i[0].toUpperCase()}${i.slice(1)}`;return s+n},"")}function Ee(o){return o}class Fe{static[t.entityKind]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert=e==="snake_case"?Pe:e==="camelCase"?je:Ee}getColumnCasing(e){if(!e.keyAsName)return e.name;const s=e.table[t.Table.Symbol.Schema]??"public",i=e.table[t.Table.Symbol.OriginalName],r=`${s}.${i}.${e.name}`;return this.cache[r]||this.cacheTable(e.table),this.cache[r]}cacheTable(e){const s=e[t.Table.Symbol.Schema]??"public",i=e[t.Table.Symbol.OriginalName],r=`${s}.${i}`;if(!this.cachedTables[r]){for(const n of Object.values(e[t.Table.Symbol.Columns])){const a=`${r}.${n.name}`;this.cache[a]=this.convert(n.name)}this.cachedTables[r]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class ee extends Error{static[t.entityKind]="DrizzleError";constructor({message:e,cause:s}){super(e),this.name="DrizzleError",this.cause=s}}class _ extends Error{constructor(e,s,i){super(`Failed query: ${e}
|
|
2
|
+
params: ${s}`),this.query=e,this.params=s,this.cause=i,Error.captureStackTrace(this,_),i&&(this.cause=i)}}class Ie extends ee{static[t.entityKind]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class te extends t.View{static[t.entityKind]="SQLiteViewBase"}class D{static[t.entityKind]="SQLiteDialect";casing;constructor(e){this.casing=new Fe(e?.casing)}escapeName(e){return`"${e.replace(/"/g,'""')}"`}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const s=[t.sql`with `];for(const[i,r]of e.entries())s.push(t.sql`${t.sql.identifier(r._.alias)} as (${r._.sql})`),i<e.length-1&&s.push(t.sql`, `);return s.push(t.sql` `),t.sql.join(s)}buildDeleteQuery({table:e,where:s,returning:i,withList:r,limit:n,orderBy:a}){const l=this.buildWithCTE(r),c=i?t.sql` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0,u=s?t.sql` where ${s}`:void 0,h=this.buildOrderBy(a),f=this.buildLimit(n);return t.sql`${l}delete from ${e}${u}${c}${h}${f}`}buildUpdateSet(e,s){const i=e[t.Table.Symbol.Columns],r=Object.keys(i).filter(a=>s[a]!==void 0||i[a]?.onUpdateFn!==void 0),n=r.length;return t.sql.join(r.flatMap((a,l)=>{const c=i[a],u=c.onUpdateFn?.(),h=s[a]??(t.is(u,t.SQL)?u:t.sql.param(u,c)),f=t.sql`${t.sql.identifier(this.casing.getColumnCasing(c))} = ${h}`;return l<n-1?[f,t.sql.raw(", ")]:[f]}))}buildUpdateQuery({table:e,set:s,where:i,returning:r,withList:n,joins:a,from:l,limit:c,orderBy:u}){const h=this.buildWithCTE(n),f=this.buildUpdateSet(e,s),w=l&&t.sql.join([t.sql.raw(" from "),this.buildFromTable(l)]),q=this.buildJoins(a),S=r?t.sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0,g=i?t.sql` where ${i}`:void 0,p=this.buildOrderBy(u),b=this.buildLimit(c);return t.sql`${h}update ${e} set ${f}${w}${q}${g}${S}${p}${b}`}buildSelection(e,{isSingleTable:s=!1}={}){const i=e.length,r=e.flatMap(({field:n},a)=>{const l=[];if(t.is(n,t.SQL.Aliased)&&n.isSelectionField)l.push(t.sql.identifier(n.fieldAlias));else if(t.is(n,t.SQL.Aliased)||t.is(n,t.SQL)){const c=t.is(n,t.SQL.Aliased)?n.sql:n;s?l.push(new t.SQL(c.queryChunks.map(u=>t.is(u,t.Column)?t.sql.identifier(this.casing.getColumnCasing(u)):u))):l.push(c),t.is(n,t.SQL.Aliased)&&l.push(t.sql` as ${t.sql.identifier(n.fieldAlias)}`)}else if(t.is(n,t.Column)){const c=n.table[t.Table.Symbol.Name];n.columnType==="SQLiteNumericBigInt"?s?l.push(t.sql`cast(${t.sql.identifier(this.casing.getColumnCasing(n))} as text)`):l.push(t.sql`cast(${t.sql.identifier(c)}.${t.sql.identifier(this.casing.getColumnCasing(n))} as text)`):s?l.push(t.sql.identifier(this.casing.getColumnCasing(n))):l.push(t.sql`${t.sql.identifier(c)}.${t.sql.identifier(this.casing.getColumnCasing(n))}`)}else if(t.is(n,t.Subquery)){const c=Object.entries(n._.selectedFields);if(c.length===1){const u=c[0][1],h=t.is(u,t.SQL)?u.decoder:t.is(u,t.Column)?{mapFromDriverValue:f=>u.mapFromDriverValue(f)}:u.sql.decoder;h&&(n._.sql.decoder=h)}l.push(n)}return a<i-1&&l.push(t.sql`, `),l});return t.sql.join(r)}buildJoins(e){if(!e||e.length===0)return;const s=[];if(e)for(const[i,r]of e.entries()){i===0&&s.push(t.sql` `);const n=r.table,a=r.on?t.sql` on ${r.on}`:void 0;if(t.is(n,t.SQLiteTable)){const l=n[t.SQLiteTable.Symbol.Name],c=n[t.SQLiteTable.Symbol.Schema],u=n[t.SQLiteTable.Symbol.OriginalName],h=l===u?void 0:r.alias;s.push(t.sql`${t.sql.raw(r.joinType)} join ${c?t.sql`${t.sql.identifier(c)}.`:void 0}${t.sql.identifier(u)}${h&&t.sql` ${t.sql.identifier(h)}`}${a}`)}else s.push(t.sql`${t.sql.raw(r.joinType)} join ${n}${a}`);i<e.length-1&&s.push(t.sql` `)}return t.sql.join(s)}buildLimit(e){return typeof e=="object"||typeof e=="number"&&e>=0?t.sql` limit ${e}`:void 0}buildOrderBy(e){const s=[];if(e)for(const[i,r]of e.entries())s.push(r),i<e.length-1&&s.push(t.sql`, `);return s.length>0?t.sql` order by ${t.sql.join(s)}`:void 0}buildFromTable(e){return t.is(e,t.Table)&&e[t.Table.Symbol.IsAlias]?t.sql`${t.sql`${t.sql.identifier(e[t.Table.Symbol.Schema]??"")}.`.if(e[t.Table.Symbol.Schema])}${t.sql.identifier(e[t.Table.Symbol.OriginalName])} ${t.sql.identifier(e[t.Table.Symbol.Name])}`:e}buildSelectQuery({withList:e,fields:s,fieldsFlat:i,where:r,having:n,table:a,joins:l,orderBy:c,groupBy:u,limit:h,offset:f,distinct:w,setOperators:q}){const S=i??t.orderSelectedFields(s);for(const $ of S)if(t.is($.field,t.Column)&&t.getTableName($.field.table)!==(t.is(a,t.Subquery)?a._.alias:t.is(a,te)?a[t.ViewBaseConfig].name:t.is(a,t.SQL)?void 0:t.getTableName(a))&&!(N=>l?.some(({alias:E})=>E===(N[t.Table.Symbol.IsAlias]?t.getTableName(N):N[t.Table.Symbol.BaseName])))($.field.table)){const N=t.getTableName($.field.table);throw new Error(`Your "${$.path.join("->")}" field references a column "${N}"."${$.field.name}", but the table "${N}" is not part of the query! Did you forget to join it?`)}const g=!l||l.length===0,p=this.buildWithCTE(e),b=w?t.sql` distinct`:void 0,v=this.buildSelection(S,{isSingleTable:g}),T=this.buildFromTable(a),m=this.buildJoins(l),x=r?t.sql` where ${r}`:void 0,L=n?t.sql` having ${n}`:void 0,d=[];if(u)for(const[$,N]of u.entries())d.push(N),$<u.length-1&&d.push(t.sql`, `);const y=d.length>0?t.sql` group by ${t.sql.join(d)}`:void 0,R=this.buildOrderBy(c),j=this.buildLimit(h),W=f?t.sql` offset ${f}`:void 0,P=t.sql`${p}select${b} ${v} from ${T}${m}${x}${y}${L}${R}${j}${W}`;return q.length>0?this.buildSetOperations(P,q):P}buildSetOperations(e,s){const[i,...r]=s;if(!i)throw new Error("Cannot pass undefined values to any set operator");return r.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:i}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:i}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:s,isAll:i,rightSelect:r,limit:n,orderBy:a,offset:l}}){const c=t.sql`${e.getSQL()} `,u=t.sql`${r.getSQL()}`;let h;if(a&&a.length>0){const S=[];for(const g of a)if(t.is(g,t.SQLiteColumn))S.push(t.sql.identifier(g.name));else if(t.is(g,t.SQL)){for(let p=0;p<g.queryChunks.length;p++){const b=g.queryChunks[p];t.is(b,t.SQLiteColumn)&&(g.queryChunks[p]=t.sql.identifier(this.casing.getColumnCasing(b)))}S.push(t.sql`${g}`)}else S.push(t.sql`${g}`);h=t.sql` order by ${t.sql.join(S,t.sql`, `)}`}const f=typeof n=="object"||typeof n=="number"&&n>=0?t.sql` limit ${n}`:void 0,w=t.sql.raw(`${s} ${i?"all ":""}`),q=l?t.sql` offset ${l}`:void 0;return t.sql`${c}${w}${u}${h}${f}${q}`}buildInsertQuery({table:e,values:s,onConflict:i,returning:r,withList:n,select:a}){const l=[],c=e[t.Table.Symbol.Columns],u=Object.entries(c).filter(([g,p])=>!p.shouldDisableInsert()),h=u.map(([,g])=>t.sql.identifier(this.casing.getColumnCasing(g)));if(a){const g=s;t.is(g,t.SQL)?l.push(g):l.push(g.getSQL())}else{const g=s;l.push(t.sql.raw("values "));for(const[p,b]of g.entries()){const v=[];for(const[T,m]of u){const x=b[T];if(x===void 0||t.is(x,t.Param)&&x.value===void 0){let L;if(m.default!==null&&m.default!==void 0)L=t.is(m.default,t.SQL)?m.default:t.sql.param(m.default,m);else if(m.defaultFn!==void 0){const d=m.defaultFn();L=t.is(d,t.SQL)?d:t.sql.param(d,m)}else if(!m.default&&m.onUpdateFn!==void 0){const d=m.onUpdateFn();L=t.is(d,t.SQL)?d:t.sql.param(d,m)}else L=t.sql`null`;v.push(L)}else v.push(x)}l.push(v),p<g.length-1&&l.push(t.sql`, `)}}const f=this.buildWithCTE(n),w=t.sql.join(l),q=r?t.sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0,S=i?.length?t.sql.join(i):void 0;return t.sql`${f}insert into ${e} ${h} ${w}${S}${q}`}sqlToQuery(e,s){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:s})}buildRelationalQuery({fullSchema:e,schema:s,tableNamesMap:i,table:r,tableConfig:n,queryConfig:a,tableAlias:l,nestedQueryRelation:c,joinOn:u}){let h=[],f,w,q=[],S;const g=[];if(a===!0)h=Object.entries(n.columns).map(([v,T])=>({dbKey:T.name,tsKey:v,field:B(T,l),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const b=Object.fromEntries(Object.entries(n.columns).map(([d,y])=>[d,B(y,l)]));if(a.where){const d=typeof a.where=="function"?a.where(b,Re()):a.where;S=d&&k(d,l)}const v=[];let T=[];if(a.columns){let d=!1;for(const[y,R]of Object.entries(a.columns))R!==void 0&&y in n.columns&&(!d&&R===!0&&(d=!0),T.push(y));T.length>0&&(T=d?T.filter(y=>a.columns?.[y]===!0):Object.keys(n.columns).filter(y=>!T.includes(y)))}else T=Object.keys(n.columns);for(const d of T){const y=n.columns[d];v.push({tsKey:d,value:y})}let m=[];a.with&&(m=Object.entries(a.with).filter(d=>!!d[1]).map(([d,y])=>({tsKey:d,queryConfig:y,relation:n.relations[d]})));let x;if(a.extras){x=typeof a.extras=="function"?a.extras(b,{sql:t.sql}):a.extras;for(const[d,y]of Object.entries(x))v.push({tsKey:d,value:me(y,l)})}for(const{tsKey:d,value:y}of v)h.push({dbKey:t.is(y,t.SQL.Aliased)?y.fieldAlias:n.columns[d].name,tsKey:d,field:t.is(y,t.Column)?B(y,l):y,relationTableTsKey:void 0,isJson:!1,selection:[]});let L=typeof a.orderBy=="function"?a.orderBy(b,Be()):a.orderBy??[];Array.isArray(L)||(L=[L]),q=L.map(d=>t.is(d,t.Column)?B(d,l):k(d,l)),f=a.limit,w=a.offset;for(const{tsKey:d,queryConfig:y,relation:R}of m){const j=Ae(s,i,R),W=t.getTableUniqueName(R.referencedTable),P=i[W],$=`${l}_${d}`,N=t.and(...j.fields.map((we,qe)=>t.eq(B(j.references[qe],$),B(we,l)))),E=this.buildRelationalQuery({fullSchema:e,schema:s,tableNamesMap:i,table:e[P],tableConfig:s[P],queryConfig:t.is(R,A)?y===!0?{limit:1}:{...y,limit:1}:y,tableAlias:$,joinOn:N,nestedQueryRelation:R}),Se=t.sql`(${E.sql})`.as(d);h.push({dbKey:d,tsKey:d,field:Se,relationTableTsKey:P,isJson:!0,selection:E.selection})}}if(h.length===0)throw new ee({message:`No fields selected for table "${n.tsName}" ("${l}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let p;if(S=t.and(u,S),c){let b=t.sql`json_array(${t.sql.join(h.map(({field:m})=>t.is(m,t.SQLiteColumn)?t.sql.identifier(this.casing.getColumnCasing(m)):t.is(m,t.SQL.Aliased)?m.sql:m),t.sql`, `)})`;t.is(c,J)&&(b=t.sql`coalesce(json_group_array(${b}), json_array())`);const v=[{dbKey:"data",tsKey:"data",field:b.as("data"),isJson:!0,relationTableTsKey:n.tsName,selection:h}];f!==void 0||w!==void 0||q.length>0?(p=this.buildSelectQuery({table:H(r,l),fields:{},fieldsFlat:[{path:[],field:t.sql.raw("*")}],where:S,limit:f,offset:w,orderBy:q,setOperators:[]}),S=void 0,f=void 0,w=void 0,q=void 0):p=H(r,l),p=this.buildSelectQuery({table:t.is(p,t.SQLiteTable)?p:new t.Subquery(p,{},l),fields:{},fieldsFlat:v.map(({field:m})=>({path:[],field:t.is(m,t.Column)?B(m,l):m})),joins:g,where:S,limit:f,offset:w,orderBy:q,setOperators:[]})}else p=this.buildSelectQuery({table:H(r,l),fields:{},fieldsFlat:h.map(({field:b})=>({path:[],field:t.is(b,t.Column)?B(b,l):b})),joins:g,where:S,limit:f,offset:w,orderBy:q,setOperators:[]});return{tableTsKey:n.tsName,sql:p,selection:h}}}class ke extends D{static[t.entityKind]="SQLiteSyncDialect";migrate(e,s,i){const r=i===void 0||typeof i=="string"?"__drizzle_migrations":i.migrationsTable??"__drizzle_migrations",n=t.sql`
|
|
3
|
+
CREATE TABLE IF NOT EXISTS ${t.sql.identifier(r)} (
|
|
4
|
+
id SERIAL PRIMARY KEY,
|
|
5
|
+
hash text NOT NULL,
|
|
6
|
+
created_at numeric
|
|
7
|
+
)
|
|
8
|
+
`;s.run(n);const l=s.values(t.sql`SELECT id, hash, created_at FROM ${t.sql.identifier(r)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;s.run(t.sql`BEGIN`);try{for(const c of e)if(!l||Number(l[2])<c.folderMillis){for(const u of c.sql)s.run(t.sql.raw(u));s.run(t.sql`INSERT INTO ${t.sql.identifier(r)} ("hash", "created_at") VALUES(${c.hash}, ${c.folderMillis})`)}s.run(t.sql`COMMIT`)}catch(c){throw s.run(t.sql`ROLLBACK`),c}}}class De extends D{static[t.entityKind]="SQLiteAsyncDialect";async migrate(e,s,i){const r=i===void 0||typeof i=="string"?"__drizzle_migrations":i.migrationsTable??"__drizzle_migrations",n=t.sql`
|
|
9
|
+
CREATE TABLE IF NOT EXISTS ${t.sql.identifier(r)} (
|
|
10
|
+
id SERIAL PRIMARY KEY,
|
|
11
|
+
hash text NOT NULL,
|
|
12
|
+
created_at numeric
|
|
13
|
+
)
|
|
14
|
+
`;await s.run(n);const l=(await s.values(t.sql`SELECT id, hash, created_at FROM ${t.sql.identifier(r)} ORDER BY created_at DESC LIMIT 1`))[0]??void 0;await s.transaction(async c=>{for(const u of e)if(!l||Number(l[2])<u.folderMillis){for(const h of u.sql)await c.run(t.sql.raw(h));await c.run(t.sql`INSERT INTO ${t.sql.identifier(r)} ("hash", "created_at") VALUES(${u.hash}, ${u.folderMillis})`)}})}}class Ve{static[t.entityKind]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class O{static[t.entityKind]="SQLiteSelectBuilder";fields;session;dialect;withList;distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,this.withList=e.withList,this.distinct=e.distinct}from(e){const s=!!this.fields;let i;return this.fields?i=this.fields:t.is(e,t.Subquery)?i=Object.fromEntries(Object.keys(e._.selectedFields).map(r=>[r,e[r]])):t.is(e,te)?i=e[t.ViewBaseConfig].selectedFields:t.is(e,t.SQL)?i={}:i=t.getTableColumns(e),new ye({table:e,fields:i,isPartialSelect:s,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}}class ze extends Ve{static[t.entityKind]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:s,isPartialSelect:i,session:r,dialect:n,withList:a,distinct:l}){super(),this.config={withList:a,table:e,fields:{...s},distinct:l,setOperators:[]},this.isPartialSelect=i,this.session=r,this.dialect=n,this._={selectedFields:s,config:this.config},this.tableName=t.getTableLikeName(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{};for(const c of M(e))this.usedTables.add(c)}getUsedTables(){return[...this.usedTables]}createJoin(e){return(s,i)=>{const r=this.tableName,n=t.getTableLikeName(s);for(const a of M(s))this.usedTables.add(a);if(typeof n=="string"&&this.config.joins?.some(a=>a.alias===n))throw new Error(`Alias "${n}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof r=="string"&&(this.config.fields={[r]:this.config.fields}),typeof n=="string"&&!t.is(s,t.SQL))){const a=t.is(s,t.Subquery)?s._.selectedFields:t.is(s,t.View)?s[t.ViewBaseConfig].selectedFields:s[t.Table.Symbol.Columns];this.config.fields[n]=a}if(typeof i=="function"&&(i=i(new Proxy(this.config.fields,new Q({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:i,table:s,joinType:e,alias:n}),typeof n=="string")switch(e){case"left":{this.joinsNotNullableMap[n]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[n]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[n]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[n]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");crossJoin=this.createJoin("cross");createSetOperator(e,s){return i=>{const r=typeof i=="function"?i(Je()):i;if(!t.haveSameKeys(this.getSelectedFields(),r.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:s,rightSelect:r}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new Q({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new Q({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]=="function"){const s=e[0](new Proxy(this.config.fields,new Q({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(s)?s:[s]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]=="function"){const s=e[0](new Proxy(this.config.fields,new Q({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(s)?s:[s];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}else{const s=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=s:this.config.orderBy=s}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...s}=this.dialect.sqlToQuery(this.getSQL());return s}as(e){const s=[];if(s.push(...M(this.config.table)),this.config.joins)for(const i of this.config.joins)s.push(...M(i.table));return new Proxy(new t.Subquery(this.getSQL(),this.config.fields,e,!1,[...new Set(s)]),new Q({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new Q({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class ye extends ze{static[t.entityKind]="SQLiteSelect";_prepare(e=!0){if(!this.session)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const s=t.orderSelectedFields(this.config.fields),i=this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),s,"all",!0,void 0,{type:"select",tables:[...this.usedTables]},this.cacheConfig);return i.joinsNotNullableMap=this.joinsNotNullableMap,i}$withCache(e){return this.cacheConfig=e===void 0?{config:{},enable:!0,autoInvalidate:!0}:e===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.all()}}t.applyMixins(ye,[K]);function U(o,e){return(s,i,...r)=>{const n=[i,...r].map(a=>({type:o,isAll:e,rightSelect:a}));for(const a of n)if(!t.haveSameKeys(s.getSelectedFields(),a.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return s.addSetOperators(n)}}const Je=()=>({union:Ue,unionAll:We,intersect:He,except:Ye}),Ue=U("union",!1),We=U("union",!0),He=U("intersect",!1),Ye=U("except",!1);class ge{static[t.entityKind]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=t.is(e,D)?e:void 0,this.dialectConfig=t.is(e,D)?void 0:e}$with=(e,s)=>{const i=this;return{as:n=>(typeof n=="function"&&(n=n(i)),new Proxy(new t.WithSubquery(n.getSQL(),s??("getSelectedFields"in n?n.getSelectedFields()??{}:{}),e,!0),new Q({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){const s=this;function i(n){return new O({fields:n??void 0,session:void 0,dialect:s.getDialect(),withList:e})}function r(n){return new O({fields:n??void 0,session:void 0,dialect:s.getDialect(),withList:e,distinct:!0})}return{select:i,selectDistinct:r}}select(e){return new O({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new O({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new ke(this.dialectConfig)),this.dialect}}class le{constructor(e,s,i,r){this.table=e,this.session=s,this.dialect=i,this.withList=r}static[t.entityKind]="SQLiteInsertBuilder";values(e){if(e=Array.isArray(e)?e:[e],e.length===0)throw new Error("values() must be called with at least one value");const s=e.map(i=>{const r={},n=this.table[t.Table.Symbol.Columns];for(const a of Object.keys(i)){const l=i[a];r[a]=t.is(l,t.SQL)?l:new t.Param(l,n[a])}return r});return new oe(this.table,s,this.session,this.dialect,this.withList)}select(e){const s=typeof e=="function"?e(new ge):e;if(!t.is(s,t.SQL)&&!t.haveSameKeys(this.table[t.Columns],s._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new oe(this.table,s,this.session,this.dialect,this.withList,!0)}}class oe extends K{constructor(e,s,i,r,n,a){super(),this.session=i,this.dialect=r,this.config={table:e,values:s,withList:n,select:a}}static[t.entityKind]="SQLiteInsert";config;returning(e=this.config.table[t.SQLiteTable.Symbol.Columns]){return this.config.returning=t.orderSelectedFields(e),this}onConflictDoNothing(e={}){if(this.config.onConflict||(this.config.onConflict=[]),e.target===void 0)this.config.onConflict.push(t.sql` on conflict do nothing`);else{const s=Array.isArray(e.target)?t.sql`${e.target}`:t.sql`${[e.target]}`,i=e.where?t.sql` where ${e.where}`:t.sql``;this.config.onConflict.push(t.sql` on conflict ${s} do nothing${i}`)}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');this.config.onConflict||(this.config.onConflict=[]);const s=e.where?t.sql` where ${e.where}`:void 0,i=e.targetWhere?t.sql` where ${e.targetWhere}`:void 0,r=e.setWhere?t.sql` where ${e.setWhere}`:void 0,n=Array.isArray(e.target)?t.sql`${e.target}`:t.sql`${[e.target]}`,a=this.dialect.buildUpdateSet(this.config.table,t.mapUpdateSet(this.config.table,e.set));return this.config.onConflict.push(t.sql` on conflict ${n}${i} do update set ${a}${s}${r}`),this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){const{typings:e,...s}=this.dialect.sqlToQuery(this.getSQL());return s}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:M(this.config.table)})}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}class ce{constructor(e,s,i,r){this.table=e,this.session=s,this.dialect=i,this.withList=r}static[t.entityKind]="SQLiteUpdateBuilder";set(e){return new Ge(this.table,t.mapUpdateSet(this.table,e),this.session,this.dialect,this.withList)}}class Ge extends K{constructor(e,s,i,r,n){super(),this.session=i,this.dialect=r,this.config={set:s,table:e,withList:n,joins:[]}}static[t.entityKind]="SQLiteUpdate";config;from(e){return this.config.from=e,this}createJoin(e){return(s,i)=>{const r=t.getTableLikeName(s);if(typeof r=="string"&&this.config.joins.some(n=>n.alias===r))throw new Error(`Alias "${r}" is already used in this query`);if(typeof i=="function"){const n=this.config.from?t.is(s,t.SQLiteTable)?s[t.Table.Symbol.Columns]:t.is(s,t.Subquery)?s._.selectedFields:t.is(s,te)?s[t.ViewBaseConfig].selectedFields:void 0:void 0;i=i(new Proxy(this.config.table[t.Table.Symbol.Columns],new Q({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),n&&new Proxy(n,new Q({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:i,table:s,joinType:e,alias:r}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}orderBy(...e){if(typeof e[0]=="function"){const s=e[0](new Proxy(this.config.table[t.Table.Symbol.Columns],new Q({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(s)?s:[s];this.config.orderBy=i}else{const s=e;this.config.orderBy=s}return this}limit(e){return this.config.limit=e,this}returning(e=this.config.table[t.SQLiteTable.Symbol.Columns]){return this.config.returning=t.orderSelectedFields(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){const{typings:e,...s}=this.dialect.sqlToQuery(this.getSQL());return s}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:M(this.config.table)})}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}class V extends t.SQL{constructor(e){super(V.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.session=e.session,this.sql=V.buildCount(e.source,e.filters)}sql;static[t.entityKind]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(e,s){return t.sql`(select count(*) from ${e}${t.sql.raw(" where ").if(s)}${s})`}static buildCount(e,s){return t.sql`select count(*) from ${e}${t.sql.raw(" where ").if(s)}${s}`}then(e,s){return Promise.resolve(this.session.count(this.sql)).then(e,s)}catch(e){return this.then(void 0,e)}finally(e){return this.then(s=>(e?.(),s),s=>{throw e?.(),s})}}class Ze{constructor(e,s,i,r,n,a,l,c){this.mode=e,this.fullSchema=s,this.schema=i,this.tableNamesMap=r,this.table=n,this.tableConfig=a,this.dialect=l,this.session=c}static[t.entityKind]="SQLiteAsyncRelationalQueryBuilder";findMany(e){return this.mode==="sync"?new ue(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many"):new G(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return this.mode==="sync"?new ue(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first"):new G(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}}class G extends K{constructor(e,s,i,r,n,a,l,c,u){super(),this.fullSchema=e,this.schema=s,this.tableNamesMap=i,this.table=r,this.tableConfig=n,this.dialect=a,this.session=l,this.config=c,this.mode=u}static[t.entityKind]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(e=!1){const{query:s,builtQuery:i}=this._toSQL();return this.session[e?"prepareOneTimeQuery":"prepareQuery"](i,void 0,this.mode==="first"?"get":"all",!0,(r,n)=>{const a=r.map(l=>Y(this.schema,this.tableConfig,l,s.selection,n));return this.mode==="first"?a[0]:a})}prepare(){return this._prepare(!1)}_toSQL(){const e=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),s=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:s}}toSQL(){return this._toSQL().builtQuery}executeRaw(){return this.mode==="first"?this._prepare(!1).get():this._prepare(!1).all()}async execute(){return this.executeRaw()}}class ue extends G{static[t.entityKind]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}class F extends K{constructor(e,s,i,r,n){super(),this.execute=e,this.getSQL=s,this.dialect=r,this.mapBatchResult=n,this.config={action:i}}static[t.entityKind]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(e,s){return s?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}}class pe{constructor(e,s,i,r){this.resultKind=e,this.dialect=s,this.session=i,this._=r?{schema:r.schema,fullSchema:r.fullSchema,tableNamesMap:r.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};const n=this.query;if(this._.schema)for(const[a,l]of Object.entries(this._.schema))n[a]=new Ze(e,r.fullSchema,this._.schema,this._.tableNamesMap,r.fullSchema[a],l,s,i);this.$cache={invalidate:async a=>{}}}static[t.entityKind]="BaseSQLiteDatabase";query;$with=(e,s)=>{const i=this;return{as:n=>(typeof n=="function"&&(n=n(new ge(i.dialect))),new Proxy(new t.WithSubquery(n.getSQL(),s??("getSelectedFields"in n?n.getSelectedFields()??{}:{}),e,!0),new Q({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};$count(e,s){return new V({source:e,filters:s,session:this.session})}with(...e){const s=this;function i(c){return new O({fields:c??void 0,session:s.session,dialect:s.dialect,withList:e})}function r(c){return new O({fields:c??void 0,session:s.session,dialect:s.dialect,withList:e,distinct:!0})}function n(c){return new ce(c,s.session,s.dialect,e)}function a(c){return new le(c,s.session,s.dialect,e)}function l(c){return new ae(c,s.session,s.dialect,e)}return{select:i,selectDistinct:r,update:n,insert:a,delete:l}}select(e){return new O({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new O({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(e){return new ce(e,this.session,this.dialect)}$cache;insert(e){return new le(e,this.session,this.dialect)}delete(e){return new ae(e,this.session,this.dialect)}run(e){const s=typeof e=="string"?t.sql.raw(e):e.getSQL();return this.resultKind==="async"?new F(async()=>this.session.run(s),()=>s,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session)):this.session.run(s)}all(e){const s=typeof e=="string"?t.sql.raw(e):e.getSQL();return this.resultKind==="async"?new F(async()=>this.session.all(s),()=>s,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session)):this.session.all(s)}get(e){const s=typeof e=="string"?t.sql.raw(e):e.getSQL();return this.resultKind==="async"?new F(async()=>this.session.get(s),()=>s,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session)):this.session.get(s)}values(e){const s=typeof e=="string"?t.sql.raw(e):e.getSQL();return this.resultKind==="async"?new F(async()=>this.session.values(s),()=>s,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session)):this.session.values(s)}transaction(e,s){return this.session.transaction(e,s)}}class Xe{static[t.entityKind]="Cache"}class be extends Xe{strategy(){return"all"}static[t.entityKind]="NoopCache";async get(e){}async put(e,s,i,r){}async onMutate(e){}}async function he(o,e){const s=`${o}-${JSON.stringify(e)}`,r=new TextEncoder().encode(s),n=await crypto.subtle.digest("SHA-256",r);return[...new Uint8Array(n)].map(c=>c.toString(16).padStart(2,"0")).join("")}class et extends K{constructor(e){super(),this.resultCb=e}static[t.entityKind]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}}class tt{constructor(e,s,i,r,n,a){this.mode=e,this.executeMethod=s,this.query=i,this.cache=r,this.queryMetadata=n,this.cacheConfig=a,r&&r.strategy()==="all"&&a===void 0&&(this.cacheConfig={enable:!0,autoInvalidate:!0}),this.cacheConfig?.enable||(this.cacheConfig=void 0)}static[t.entityKind]="PreparedQuery";joinsNotNullableMap;async queryWithCache(e,s,i){if(this.cache===void 0||t.is(this.cache,be)||this.queryMetadata===void 0)try{return await i()}catch(r){throw new _(e,s,r)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await i()}catch(r){throw new _(e,s,r)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{const[r]=await Promise.all([i(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return r}catch(r){throw new _(e,s,r)}if(!this.cacheConfig)try{return await i()}catch(r){throw new _(e,s,r)}if(this.queryMetadata.type==="select"){const r=await this.cache.get(this.cacheConfig.tag??await he(e,s),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(r===void 0){let n;try{n=await i()}catch(a){throw new _(e,s,a)}return await this.cache.put(this.cacheConfig.tag??await he(e,s),n,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),n}return r}try{return await i()}catch(r){throw new _(e,s,r)}}getQuery(){return this.query}mapRunResult(e,s){return e}mapAllResult(e,s){throw new Error("Not implemented")}mapGetResult(e,s){throw new Error("Not implemented")}execute(e){return this.mode==="async"?this[this.executeMethod](e):new et(()=>this[this.executeMethod](e))}mapResult(e,s){switch(this.executeMethod){case"run":return this.mapRunResult(e,s);case"all":return this.mapAllResult(e,s);case"get":return this.mapGetResult(e,s)}}}class st{constructor(e){this.dialect=e}static[t.entityKind]="SQLiteSession";prepareOneTimeQuery(e,s,i,r,n,a,l){return this.prepareQuery(e,s,i,r,n,a,l)}run(e){const s=this.dialect.sqlToQuery(e);try{return this.prepareOneTimeQuery(s,void 0,"run",!1).run()}catch(i){throw new ee({cause:i,message:`Failed to run the query '${s.sql}'`})}}extractRawRunValueFromBatchResult(e){return e}all(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(e){throw new Error("Not implemented")}get(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(e){throw new Error("Not implemented")}values(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).values()}async count(e){return(await this.values(e))[0][0]}extractRawValuesValueFromBatchResult(e){throw new Error("Not implemented")}}class it extends pe{constructor(e,s,i,r,n=0){super(e,s,i,r),this.schema=r,this.nestedIndex=n}static[t.entityKind]="SQLiteTransaction";rollback(){throw new Ie}}class rt extends st{constructor(e,s,i,r,n={}){super(s),this.client=e,this.schema=i,this.batchCLient=r,this.logger=n.logger??new Le,this.cache=n.cache??new be}static[t.entityKind]="SQLiteRemoteSession";logger;cache;prepareQuery(e,s,i,r,n,a,l){return new nt(this.client,e,this.logger,this.cache,a,l,s,i,r,n)}async batch(e){const s=[],i=[];for(const n of e){const a=n._prepare(),l=a.getQuery();s.push(a),i.push({sql:l.sql,params:l.params,method:l.method})}return(await this.batchCLient(i)).map((n,a)=>s[a].mapResult(n,!0))}async transaction(e,s){const i=new se("async",this.dialect,this,this.schema);await this.run(t.sql.raw(`begin${s?.behavior?" "+s.behavior:""}`));try{const r=await e(i);return await this.run(t.sql`commit`),r}catch(r){throw await this.run(t.sql`rollback`),r}}extractRawAllValueFromBatchResult(e){return e.rows}extractRawGetValueFromBatchResult(e){return e.rows[0]}extractRawValuesValueFromBatchResult(e){return e.rows}}class se extends it{static[t.entityKind]="SQLiteProxyTransaction";async transaction(e){const s=`sp${this.nestedIndex}`,i=new se("async",this.dialect,this.session,this.schema,this.nestedIndex+1);await this.session.run(t.sql.raw(`savepoint ${s}`));try{const r=await e(i);return await this.session.run(t.sql.raw(`release savepoint ${s}`)),r}catch(r){throw await this.session.run(t.sql.raw(`rollback to savepoint ${s}`)),r}}}class nt extends tt{constructor(e,s,i,r,n,a,l,c,u,h){super("async",c,s,r,n,a),this.client=e,this.logger=i,this.fields=l,this._isResponseInArrayMode=u,this.customResultMapper=h,this.customResultMapper=h,this.method=c}static[t.entityKind]="SQLiteProxyPreparedQuery";method;getQuery(){return{...this.query,method:this.method}}async run(e){const s=t.fillPlaceholders(this.query.params,e??{});return this.logger.logQuery(this.query.sql,s),await this.queryWithCache(this.query.sql,s,async()=>await this.client(this.query.sql,s,"run"))}mapAllResult(e,s){return s&&(e=e.rows),!this.fields&&!this.customResultMapper?e:this.customResultMapper?this.customResultMapper(e):e.map(i=>t.mapResultRow(this.fields,i,this.joinsNotNullableMap))}async all(e){const{query:s,logger:i,client:r}=this,n=t.fillPlaceholders(s.params,e??{});i.logQuery(s.sql,n);const{rows:a}=await this.queryWithCache(s.sql,n,async()=>await r(s.sql,n,"all"));return this.mapAllResult(a)}async get(e){const{query:s,logger:i,client:r}=this,n=t.fillPlaceholders(s.params,e??{});i.logQuery(s.sql,n);const a=await this.queryWithCache(s.sql,n,async()=>await r(s.sql,n,"get"));return this.mapGetResult(a.rows)}mapGetResult(e,s){s&&(e=e.rows);const i=e;if(!this.fields&&!this.customResultMapper)return i;if(i)return this.customResultMapper?this.customResultMapper([e]):t.mapResultRow(this.fields,i,this.joinsNotNullableMap)}async values(e){const s=t.fillPlaceholders(this.query.params,e??{});return this.logger.logQuery(this.query.sql,s),(await this.queryWithCache(this.query.sql,s,async()=>await this.client(this.query.sql,s,"values"))).rows}isResponseInArrayMode(){return this._isResponseInArrayMode}}class at extends pe{static[t.entityKind]="SqliteRemoteDatabase";async batch(e){return this.session.batch(e)}}function lt(o,e,s){const i=new De({casing:s?.casing});let r,n,a,l={};e&&(typeof e=="function"?(a=e,l={}):(a=void 0,l=e),l.logger===!0?r=new ve:l.logger!==!1&&(r=l.logger,n=l.cache));let c;if(l.schema){const f=_e(l.schema,Ke);c={fullSchema:l.schema,schema:f.tables,tableNamesMap:f.tableNamesMap}}const u=new rt(o,i,c,a,{logger:r,cache:n}),h=new at("async",i,u,c);return h.$cache=n,h.$cache&&(h.$cache.invalidate=n?.onMutate),h}const ot=Z(C.aiChats,({many:o})=>({messages:o(C.aiMessages)})),ct=Z(C.aiMessages,({one:o,many:e})=>({chat:o(C.aiChats,{fields:[C.aiMessages.aiChatId],references:[C.aiChats.id]}),parts:e(C.aiMessageParts)})),ut=Z(C.aiMessageParts,({one:o})=>({message:o(C.aiMessages,{fields:[C.aiMessageParts.aiMessageId],references:[C.aiMessages.id]})})),ht=Object.freeze(Object.defineProperty({__proto__:null,aiChats:C.aiChats,aiChatsRelations:ot,aiMessageParts:C.aiMessageParts,aiMessagePartsRelations:ut,aiMessages:C.aiMessages,aiMessagesRelations:ct,history:Te.history,stepContext:Qe.stepContext},Symbol.toStringTag,{value:"Module"}));function dt(o){return o.map(e=>e===""?null:e)}class z{constructor(e){this.dbPath=e,this.db=lt(async(s,i,r)=>{try{const a=(await ie.invoke("db_query",{params:{sql:s,params:i||[]}})).rows||[];if(a.length===0&&r==="get")return{};const l=a.map(dt);return{rows:r==="get"?l[0]:l}}catch(n){throw console.error("SQLite proxy error:",n),n}},{schema:ht})}dbPath;static instances=new Map;initPromise=null;db;static getInstance(e){let s=this.instances.get(e);return s||(s=new z(e),this.instances.set(e,s)),s}async initialize(){if(this.initPromise)return this.initPromise;this.initPromise=ie.invoke("db_init",{dbPath:this.dbPath});try{await this.initPromise}catch(e){throw this.initPromise=null,e}}async close(){z.instances.delete(this.dbPath)}}exports.SqliteDBStorage=z;
|