@redocly/replay 0.29.0-next.5 → 0.29.0-next.7

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 (64) hide show
  1. package/dist/{replay-AiChatProvider-CMWF3IYp.js → replay-AiChatProvider-CsMz9Ny8.js} +1 -1
  2. package/dist/{replay-AiChatProvider-DUR0_fHq.js → replay-AiChatProvider-PrZdp8BS.js} +52 -52
  3. package/dist/{replay-AiChatSqliteDBStorage-CITb7hSz.js → replay-AiChatSqliteDBStorage-2UcwycP7.js} +1 -1
  4. package/dist/{replay-AiChatSqliteDBStorage-CEltYx94.js → replay-AiChatSqliteDBStorage-Ch8nYYAX.js} +1 -1
  5. package/dist/{replay-AiPanel-CYHXUjMI.js → replay-AiPanel-BVP0e_Ra.js} +1 -1
  6. package/dist/{replay-AiPanel-DbiJfTWy.js → replay-AiPanel-jeLVfdPf.js} +4 -4
  7. package/dist/replay-FileWatcher-ByAuX5yb.js +1 -0
  8. package/dist/{replay-FileWatcher-Ds_JSG57.js → replay-FileWatcher-CCeuRwSI.js} +2 -2
  9. package/dist/{replay-SemanticSearchService-CeHFhNDz.js → replay-SemanticSearchService-CWnYSg2x.js} +1 -1
  10. package/dist/{replay-SemanticSearchService-CdF1TQ_0.js → replay-SemanticSearchService-CqpTIrD8.js} +32 -32
  11. package/dist/{replay-SqliteDBStorage-BRc6vHai.js → replay-SqliteDBStorage-8Q5sVT__.js} +2 -2
  12. package/dist/{replay-SqliteDBStorage-BFfjCMEn.js → replay-SqliteDBStorage-DlhoTUy-.js} +1 -1
  13. package/dist/{replay-TauriFileSystemAdapter-OQ2SMUiS.js → replay-TauriFileSystemAdapter-CsxsNEHS.js} +1 -1
  14. package/dist/{replay-TauriFileSystemAdapter-Z0n8Fot4.js → replay-TauriFileSystemAdapter-D2TWeqg4.js} +1 -1
  15. package/dist/{replay-TauriRootStorage-C9pPtxdD.js → replay-TauriRootStorage-DU5cTkJu.js} +15 -15
  16. package/dist/{replay-TauriRootStorage-CIPk_4D6.js → replay-TauriRootStorage-DVr-1sCz.js} +1 -1
  17. package/dist/{replay-agent-loop-ByI1Wra6.js → replay-agent-loop-BIWlrZnE.js} +3 -3
  18. package/dist/{replay-agent-loop-qMZ-yh7C.js → replay-agent-loop-BclAkqxN.js} +1 -1
  19. package/dist/{replay-ai-chat-mappers-BhXui_cP.js → replay-ai-chat-mappers-IIq8wpuk.js} +1 -1
  20. package/dist/{replay-ai-chat-mappers-BJG4qsVh.js → replay-ai-chat-mappers-tMl4GKpA.js} +1 -1
  21. package/dist/{replay-create-model-DT8aanzL.js → replay-create-model-CJJtDY2W.js} +4 -4
  22. package/dist/{replay-create-model-nf-dFfMt.js → replay-create-model-Dbu-RKR1.js} +3 -3
  23. package/dist/{replay-db-B7DOUIxd.js → replay-db-CiDc3f4H.js} +6 -6
  24. package/dist/{replay-db-CEncswPh.js → replay-db-DuJyF4Fr.js} +1 -1
  25. package/dist/{replay-external-resolver-CMQ9upb6.js → replay-external-resolver-CUHRd2KI.js} +1 -1
  26. package/dist/{replay-external-resolver-BO-EH2ei.js → replay-external-resolver-hjlmO2_f.js} +2 -2
  27. package/dist/{replay-index-BZZRT4XV.js → replay-index-BJkWpnD3.js} +1 -1
  28. package/dist/{replay-index-DiLsdDeo.js → replay-index-BKy0VJhC.js} +1 -1
  29. package/dist/{replay-index-Dr16XpGK.js → replay-index-BRps0K8N.js} +5 -5
  30. package/dist/{replay-index-BNjWkfVs.js → replay-index-BiX81nFD.js} +1 -1
  31. package/dist/{replay-index-CBonfX4Z.js → replay-index-BvHpl6n6.js} +1 -1
  32. package/dist/{replay-index-Dlmw0x6l.js → replay-index-CI5fXezW.js} +1189 -1189
  33. package/dist/replay-index-DUwBFEXC.js +4 -0
  34. package/dist/replay-index-DV7TIbcG.js +1 -0
  35. package/dist/{replay-index-jkDlU0Lx.js → replay-index-MZZGINEM.js} +6 -6
  36. package/dist/{replay-index-DiSy_1OY.js → replay-index-PvlFMxhx.js} +1 -1
  37. package/dist/{replay-index-DfpfSyMZ.js → replay-index-jO1drB_G.js} +22665 -22491
  38. package/dist/replay-index-twpStg_q.js +1 -0
  39. package/dist/{replay-lint-BfS0UNDE.js → replay-lint-DG6Bpj__.js} +3 -3
  40. package/dist/{replay-lint-DPvfVFm_.js → replay-lint-DviuCvyd.js} +3 -3
  41. package/dist/{replay-lint-graphql-DeG9a5xu.js → replay-lint-graphql-DCVDIu3K.js} +15 -15
  42. package/dist/{replay-lint-graphql-D6-d3ArO.js → replay-lint-graphql-y5Q8AbLi.js} +1 -1
  43. package/dist/{replay-periodic-revalidation-DC30GN6O.js → replay-periodic-revalidation-8ApdHWIQ.js} +1 -1
  44. package/dist/{replay-periodic-revalidation-BPCrKV7q.js → replay-periodic-revalidation-BwkTngTv.js} +1 -1
  45. package/dist/{replay-resolve-B-ubny1s.js → replay-resolve-DXK9kMSh.js} +1 -1
  46. package/dist/{replay-resolve-CgA90BKO.js → replay-resolve-mFgjNvXW.js} +1 -1
  47. package/dist/{replay-respect-run-DU4lsMa5.js → replay-respect-run-C_EkBybE.js} +3321 -3314
  48. package/dist/{replay-respect-run-FINRH3Fr.js → replay-respect-run-Xc6vPsJi.js} +62 -62
  49. package/dist/{replay-tauri-path-1LJEbhgj.js → replay-tauri-path-9izlvCOU.js} +1 -1
  50. package/dist/{replay-tauri-path-DRie4WYN.js → replay-tauri-path-DQJXzOyo.js} +2 -2
  51. package/dist/{replay-useAiChatQueries-DqmuaoyJ.js → replay-useAiChatQueries-BIfk0TxI.js} +460 -460
  52. package/dist/{replay-useAiChatQueries-AyEiBMVh.js → replay-useAiChatQueries-d02SKxxb.js} +43 -43
  53. package/dist/{replay-validate-key-Dn0a7PBu.js → replay-validate-key-BBw0AkiP.js} +1 -1
  54. package/dist/{replay-validate-key-qLqRQU88.js → replay-validate-key-DO3mXt_J.js} +2 -2
  55. package/dist/replay.cjs +1 -1
  56. package/dist/replay.d.ts +7 -5
  57. package/dist/replay.js +9 -9
  58. package/package.json +4 -3
  59. package/dist/replay-FileWatcher-Bs6dX18v.js +0 -1
  60. package/dist/replay-core-BJmXmoC5.js +0 -1
  61. package/dist/replay-core-B_hiOZZr.js +0 -10
  62. package/dist/replay-index-3lwhSmvi.js +0 -1
  63. package/dist/replay-index-CFwGH3xH.js +0 -4
  64. package/dist/replay-index-Oct6Dygd.js +0 -1
@@ -1,4 +1,4 @@
1
- import { i as f, Q as W, U as X, F as y } from "./replay-index-DfpfSyMZ.js";
1
+ import { q as f, V as Q, W as X, I as y } from "./replay-index-jO1drB_G.js";
2
2
  import { O as z } from "./replay-Observable-D6wKbFwB.js";
3
3
  import { p as K } from "./replay-promise-map-limit-Db_42GvV.js";
4
4
  function w(t) {
@@ -10,10 +10,10 @@ function S(t) {
10
10
  function b(t) {
11
11
  return typeof t == "object" && t !== null && "$ref" in t;
12
12
  }
13
- function D(t) {
13
+ function q(t) {
14
14
  return b(t) ? null : t;
15
15
  }
16
- function q(t) {
16
+ function D(t) {
17
17
  try {
18
18
  return JSON.stringify(t);
19
19
  } catch {
@@ -27,24 +27,24 @@ function J(t) {
27
27
  function U(t) {
28
28
  return t.type ? Array.isArray(t.type) ? t.type.join("|") : t.type : t.oneOf ? "oneOf" : t.anyOf ? "anyOf" : t.allOf ? "allOf" : "object";
29
29
  }
30
- function Y(t) {
30
+ function V(t) {
31
31
  return t === "querystring" ? "query" : t === "query" || t === "header" || t === "path" || t === "cookie" ? t : "query";
32
32
  }
33
- function Z(t) {
33
+ function Y(t) {
34
34
  const e = t.schema && !b(t.schema) ? t.schema : null, n = {
35
35
  name: t.name,
36
- in: Y(t.in),
36
+ in: V(t.in),
37
37
  required: t.required ?? !1
38
38
  };
39
39
  return e && (n.type = U(e), e.format && (n.format = e.format), e.enum && (n.enum = e.enum.map(String)), e.pattern && (n.pattern = e.pattern), e.example !== void 0 && (n.example = String(e.example))), t.description && (n.description = w(t.description)), t.example !== void 0 && !n.example && (n.example = String(t.example)), n;
40
40
  }
41
- function V(t, e) {
41
+ function Z(t, e) {
42
42
  const n = /* @__PURE__ */ new Set(), o = [], s = (i) => {
43
43
  for (const r of i) {
44
- const c = D(r);
44
+ const c = q(r);
45
45
  if (!c || !c.name) continue;
46
46
  const a = `${c.in}:${c.name}`;
47
- n.has(a) || (n.add(a), o.push(Z(c)));
47
+ n.has(a) || (n.add(a), o.push(Y(c)));
48
48
  }
49
49
  };
50
50
  return t.parameters && s(t.parameters), e.parameters && s(e.parameters), o;
@@ -64,7 +64,7 @@ function ee(t) {
64
64
  if (!e) return [];
65
65
  const n = [];
66
66
  for (const [o, s] of Object.entries(e)) {
67
- const i = D(s);
67
+ const i = q(s);
68
68
  i && n.push(te(o, i));
69
69
  }
70
70
  return n;
@@ -125,7 +125,7 @@ function re(t, e) {
125
125
  );
126
126
  l += `: {${d.join(", ")}}`;
127
127
  }
128
- return i?.example !== void 0 && n.push(q(i.example)), {
128
+ return i?.example !== void 0 && n.push(D(i.example)), {
129
129
  textPart: l,
130
130
  schemaJson: JSON.stringify(a),
131
131
  examples: n
@@ -152,25 +152,25 @@ function ce(t) {
152
152
  return { textParts: e, summaries: n };
153
153
  }
154
154
  function R(t) {
155
- const { apiId: e, apiTitle: n, path: o, method: s, op: i, pathItem: r, globalSchemes: c, apiSecurity: a } = t, u = i.summary ?? "", l = w(i.description ?? ""), d = i.operationId ?? "", p = i.tags ?? [], m = s.toUpperCase(), g = V(i, r), h = ne(i.security, a, c), x = h.length > 0 ? h.map((_) => `api_sec:${e}:${_.schemeName}`) : void 0, I = [n, `${m} ${o}`, u, l];
156
- d && I.push(`operationId: ${d}`), p.length > 0 && I.push(`Tags: ${p.join(", ")}`), i.deprecated && I.push("DEPRECATED"), g.length > 0 && I.push(`Parameters: ${g.map(J).join(". ")}.`);
155
+ const { apiId: e, apiTitle: n, path: o, method: s, op: i, pathItem: r, globalSchemes: c, apiSecurity: a } = t, u = i.summary ?? "", l = w(i.description ?? ""), d = i.operationId ?? "", p = i.tags ?? [], m = s.toUpperCase(), g = Z(i, r), h = ne(i.security, a, c), I = h.length > 0 ? h.map((_) => `api_sec:${e}:${_.schemeName}`) : void 0, x = [n, `${m} ${o}`, u, l];
156
+ d && x.push(`operationId: ${d}`), p.length > 0 && x.push(`Tags: ${p.join(", ")}`), i.deprecated && x.push("DEPRECATED"), g.length > 0 && x.push(`Parameters: ${g.map(J).join(". ")}.`);
157
157
  let k;
158
158
  const v = [], T = i.requestBody;
159
159
  if (T) {
160
- const _ = D(T);
160
+ const _ = q(T);
161
161
  if (_) {
162
162
  const N = re(_, {
163
163
  hideReadOnly: m === "POST" || m === "PUT" || m === "PATCH"
164
164
  });
165
- N.textPart && I.push(N.textPart), k = N.schemaJson, v.push(...N.examples);
165
+ N.textPart && x.push(N.textPart), k = N.schemaJson, v.push(...N.examples);
166
166
  }
167
167
  }
168
168
  const { textParts: B, summaries: A } = ce(
169
169
  i.responses ?? {}
170
170
  );
171
- B.length > 0 && I.push(`Responses: ${B.join(", ")}.`);
171
+ B.length > 0 && x.push(`Responses: ${B.join(", ")}.`);
172
172
  const C = ie(h);
173
- C && I.push(C);
173
+ C && x.push(C);
174
174
  const E = `api_op:${e}:${o}:${s}:${d || `${o}-${s}`}`, G = {
175
175
  type: "api_operation",
176
176
  id: E,
@@ -186,12 +186,12 @@ function R(t) {
186
186
  parameterDetails: g.length > 0 ? g : void 0,
187
187
  requestBodySchema: k,
188
188
  responseSchemas: A.length > 0 ? A : void 0,
189
- securitySchemeRefs: x,
189
+ securitySchemeRefs: I,
190
190
  examples: v.length > 0 ? v : void 0
191
191
  };
192
192
  return {
193
193
  id: E,
194
- text: S(I.filter(Boolean).join(" ")),
194
+ text: S(x.filter(Boolean).join(" ")),
195
195
  payload: G
196
196
  };
197
197
  }
@@ -314,7 +314,7 @@ function de(t) {
314
314
  }
315
315
  function ue(t) {
316
316
  const { collectionId: e, collectionTitle: n, workflow: o } = t, s = o.workflowId ?? "", i = o.summary ?? s, r = w(o.description ?? ""), c = [n, i, r];
317
- if (o.inputs && c.push(`Inputs schema: ${q(o.inputs)}`), o.outputs?.length) {
317
+ if (o.inputs && c.push(`Inputs schema: ${D(o.inputs)}`), o.outputs?.length) {
318
318
  const a = o.outputs.map((u) => u.key).filter(Boolean);
319
319
  a.length && c.push(`Outputs: ${a.join(", ")}`);
320
320
  }
@@ -338,11 +338,11 @@ function pe(t) {
338
338
  const d = i.parameters ? le(i.parameters) : [];
339
339
  d.length > 0 && l.push(`Parameters: ${d.map(J).join(". ")}.`), i.requestBody?.type && l.push(`Request body type: ${i.requestBody.type}`);
340
340
  const m = (i.successCriteria ?? []).map((h) => {
341
- let x = h.condition;
342
- return h.context && (x += ` context: ${h.context}`), h.type && (x += ` (${h.type})`), x;
341
+ let I = h.condition;
342
+ return h.context && (I += ` context: ${h.context}`), h.type && (I += ` (${h.type})`), I;
343
343
  });
344
344
  if (m.length > 0 && l.push(`Success criteria: ${m.join("; ")}`), i.outputs?.length) {
345
- const h = i.outputs.map((x) => `${x.key}=${x.value}`).filter(Boolean);
345
+ const h = i.outputs.map((I) => `${I.key}=${I.value}`).filter(Boolean);
346
346
  h.length && l.push(`Outputs: ${h.join(", ")}`);
347
347
  }
348
348
  const g = `step:${e}:${o}:${r}`;
@@ -364,11 +364,11 @@ function pe(t) {
364
364
  operationId: a?.operationId,
365
365
  parameterDetails: d.length > 0 ? d : void 0,
366
366
  successCriteria: m.length > 0 ? m : void 0,
367
- requestBodySchema: i.requestBody?.type ? q(i.requestBody) : void 0
367
+ requestBodySchema: i.requestBody?.type ? D(i.requestBody) : void 0
368
368
  }
369
369
  };
370
370
  }
371
- function Q(t) {
371
+ function W(t) {
372
372
  const e = [];
373
373
  for (const n of t) {
374
374
  const o = n.id, s = n.info?.title ?? "Untitled Collection";
@@ -385,7 +385,7 @@ function Q(t) {
385
385
  return e;
386
386
  }
387
387
  function fe(t, e) {
388
- return [...L(t), ...Q(e)];
388
+ return [...L(t), ...W(e)];
389
389
  }
390
390
  const O = 10, he = 4;
391
391
  function H(t) {
@@ -395,10 +395,10 @@ function H(t) {
395
395
  return e >>> 0;
396
396
  }
397
397
  function me(t) {
398
- return W(X(t));
398
+ return Q(X(t));
399
399
  }
400
400
  const ye = {};
401
- class xe extends z {
401
+ class Ie extends z {
402
402
  constructor(e) {
403
403
  super(), this.collectionName = e;
404
404
  }
@@ -535,7 +535,7 @@ class xe extends z {
535
535
  });
536
536
  }
537
537
  }
538
- const M = "replay_search", Ie = 384, $ = {
538
+ const M = "replay_search", xe = 384, $ = {
539
539
  added: 0,
540
540
  updated: 0,
541
541
  removed: 0,
@@ -553,7 +553,7 @@ class ge extends z {
553
553
  return this.projectId ? `${M}_${this.projectId}` : M;
554
554
  }
555
555
  createIndexer() {
556
- const e = new xe(this.collectionName);
556
+ const e = new Ie(this.collectionName);
557
557
  return e.subscribe("indexing-activity", (n) => {
558
558
  this.emit("indexing-activity", n);
559
559
  }), e;
@@ -595,7 +595,7 @@ class ge extends z {
595
595
  await f("plugin:velesdb|create_collection", {
596
596
  request: {
597
597
  name: this.collectionName,
598
- dimension: Ie,
598
+ dimension: xe,
599
599
  metric: "cosine",
600
600
  storage_mode: "full"
601
601
  }
@@ -609,7 +609,7 @@ class ge extends z {
609
609
  }
610
610
  async indexCollections(e) {
611
611
  if (!y()) return $;
612
- const n = this.collectionName, o = this.getIndexer(), s = Q(e), i = { collectionIds: e.map((r) => r.id) };
612
+ const n = this.collectionName, o = this.getIndexer(), s = W(e), i = { collectionIds: e.map((r) => r.id) };
613
613
  return await this.ensureInitialized(), this.enqueueIndex(async () => this.collectionName !== n ? $ : o.indexDocuments(s, i), P);
614
614
  }
615
615
  async removeApi(e) {
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie=require("./replay-index-Dlmw0x6l.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}
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie=require("./replay-index-CI5fXezW.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
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
3
  CREATE TABLE IF NOT EXISTS ${t.sql.identifier(r)} (
4
4
  id SERIAL PRIMARY KEY,
@@ -11,4 +11,4 @@ params: ${s}`),this.query=e,this.params=s,this.cause=i,Error.captureStackTrace(t
11
11
  hash text NOT NULL,
12
12
  created_at numeric
13
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;
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$1("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$1("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;
@@ -1,4 +1,4 @@
1
- import { i as Qe } from "./replay-index-DfpfSyMZ.js";
1
+ import { q as Qe } from "./replay-index-jO1drB_G.js";
2
2
  import { h as Ve } from "./replay-history.schema-B0lLwmdG.js";
3
3
  import { s as Ue } from "./replay-step-context.schema-BOprzd6Z.js";
4
4
  import { b as J, c as X, a as ee } from "./replay-ai-message-parts.schema-DKLf0SiG.js";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./replay-index-Dlmw0x6l.js"),o=require("./replay-Observable-bjJ6wkRB.js"),l=new Set(["node_modules"]),u=/\(os error [23]\)/;function d(n){return typeof n!="string"?!1:n.includes("No such file or directory")||n.includes("forbidden path")||u.test(n)}class h extends o.Observable{constructor(e){super(),this.baseDir=e,this.initializeDirectory(e)}baseDir;writeExcludedKeys=new Set;writeEndTimers=new Map;async initializeDirectory(e){await i.mkdir(e,{recursive:!0})}setWriteExcludedKeys(e){this.writeExcludedKeys=e}async ls(e){const t=await this.getFullPath(e);return this.getDirEntryFilesRecursively(t)}async getDirEntryFilesRecursively(e){try{const t=[],s=await i.readDir(e);for(const r of s)if(r.isDirectory){if(l.has(r.name))continue;const a=await i.join(e,r.name),c=await this.getDirEntryFilesRecursively(a);t.push(...c)}else{const a=await i.join(e,r.name),c=await i.PathUtils.relative(this.baseDir,a);t.push(c)}return t}catch(t){return t.includes("forbidden path")||console.error(t),[]}}async get(e){const t=await this.getFullPath(e);try{return await i.readTextFile(t)}catch(s){if(d(s))return null;try{if(!await i.exists(t))return null}catch{}throw console.error(s),s}}async has(e){const t=await this.getFullPath(e);return await i.exists(t)}async set(e,t){if(!this.writeExcludedKeys.has(e)){this.cancelWriteEndTimer(e),this.emit("write-start",e);try{const s=await this.getFullPath(e),r=i.sep(),a=s.split(r).slice(0,-1).join(r);await i.mkdir(a,{recursive:!0}),await i.writeTextFile(s,t)}finally{this.scheduleWriteEnd(e)}}}async remove(e){if(!this.writeExcludedKeys.has(e)){this.cancelWriteEndTimer(e),this.emit("write-start",e);try{const t=await this.getFullPath(e);await i.remove(t)}catch(t){!t.includes("No such file or directory")&&!t.includes("forbidden path")&&console.error(t)}finally{this.scheduleWriteEnd(e)}}}cancelWriteEndTimer(e){const t=this.writeEndTimers.get(e);t&&(clearTimeout(t),this.writeEndTimers.delete(e))}scheduleWriteEnd(e){this.cancelWriteEndTimer(e);const t=setTimeout(()=>{this.emit("write-end",e),this.writeEndTimers.delete(e)},1e3);this.writeEndTimers.set(e,t)}async rename(e,t){const s=await this.getFullPath(e),r=await this.getFullPath(t);await i.rename(s,r)}async getFullPath(e){return await i.join(this.baseDir,e??"")}}exports.TauriFileSystemAdapter=h;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./replay-index-CI5fXezW.js"),o=require("./replay-Observable-bjJ6wkRB.js"),l=new Set(["node_modules"]),u=/\(os error [23]\)/;function d(n){return typeof n!="string"?!1:n.includes("No such file or directory")||n.includes("forbidden path")||u.test(n)}class h extends o.Observable{constructor(e){super(),this.baseDir=e,this.initializeDirectory(e)}baseDir;writeExcludedKeys=new Set;writeEndTimers=new Map;async initializeDirectory(e){await i.mkdir(e,{recursive:!0})}setWriteExcludedKeys(e){this.writeExcludedKeys=e}async ls(e){const t=await this.getFullPath(e);return this.getDirEntryFilesRecursively(t)}async getDirEntryFilesRecursively(e){try{const t=[],s=await i.readDir(e);for(const r of s)if(r.isDirectory){if(l.has(r.name))continue;const a=await i.join(e,r.name),c=await this.getDirEntryFilesRecursively(a);t.push(...c)}else{const a=await i.join(e,r.name),c=await i.PathUtils.relative(this.baseDir,a);t.push(c)}return t}catch(t){return t.includes("forbidden path")||console.error(t),[]}}async get(e){const t=await this.getFullPath(e);try{return await i.readTextFile(t)}catch(s){if(d(s))return null;try{if(!await i.exists(t))return null}catch{}throw console.error(s),s}}async has(e){const t=await this.getFullPath(e);return await i.exists(t)}async set(e,t){if(!this.writeExcludedKeys.has(e)){this.cancelWriteEndTimer(e),this.emit("write-start",e);try{const s=await this.getFullPath(e),r=i.sep(),a=s.split(r).slice(0,-1).join(r);await i.mkdir(a,{recursive:!0}),await i.writeTextFile(s,t)}finally{this.scheduleWriteEnd(e)}}}async remove(e){if(!this.writeExcludedKeys.has(e)){this.cancelWriteEndTimer(e),this.emit("write-start",e);try{const t=await this.getFullPath(e);await i.remove(t)}catch(t){!t.includes("No such file or directory")&&!t.includes("forbidden path")&&console.error(t)}finally{this.scheduleWriteEnd(e)}}}cancelWriteEndTimer(e){const t=this.writeEndTimers.get(e);t&&(clearTimeout(t),this.writeEndTimers.delete(e))}scheduleWriteEnd(e){this.cancelWriteEndTimer(e);const t=setTimeout(()=>{this.emit("write-end",e),this.writeEndTimers.delete(e)},1e3);this.writeEndTimers.set(e,t)}async rename(e,t){const s=await this.getFullPath(e),r=await this.getFullPath(t);await i.rename(s,r)}async getFullPath(e){return await i.join(this.baseDir,e??"")}}exports.TauriFileSystemAdapter=h;
@@ -1,4 +1,4 @@
1
- import { m as o, r as u, j as c, P as d, b as h, e as l, s as w, w as y, d as m, f } from "./replay-index-DfpfSyMZ.js";
1
+ import { m as o, r as u, j as c, P as d, b as h, e as l, s as w, w as y, d as m, f } from "./replay-index-jO1drB_G.js";
2
2
  import { O as E } from "./replay-Observable-D6wKbFwB.js";
3
3
  const F = /* @__PURE__ */ new Set(["node_modules"]), T = /\(os error [23]\)/;
4
4
  function g(r) {
@@ -1,7 +1,7 @@
1
- import { V as he, W as fe, X as k, Y as de, Z as N, _ as H, $ as pe, a0 as ve, a1 as _e, L as F, u as me, K as O, i as we, a2 as ye, a3 as ge, P as Pe, D as be } from "./replay-index-DfpfSyMZ.js";
1
+ import { X as he, Y as fe, Z as k, _ as de, $ as N, a0 as H, a1 as pe, a2 as ve, a3 as _e, O as F, v as me, N as O, q as we, a4 as ye, a5 as ge, P as Pe, D as be } from "./replay-index-jO1drB_G.js";
2
2
  import { p as J } from "./replay-promise-map-limit-Db_42GvV.js";
3
- import { TauriFileSystemAdapter as X } from "./replay-TauriFileSystemAdapter-Z0n8Fot4.js";
4
- var K = { exports: {} }, Z;
3
+ import { TauriFileSystemAdapter as X } from "./replay-TauriFileSystemAdapter-D2TWeqg4.js";
4
+ var B = { exports: {} }, Z;
5
5
  function Ee() {
6
6
  return Z || (Z = 1, (function(n) {
7
7
  var e = Object.prototype.hasOwnProperty, t = "~";
@@ -106,7 +106,7 @@ function Ee() {
106
106
  var h;
107
107
  return l ? (h = t ? t + l : l, this._events[h] && d(this, h)) : (this._events = new r(), this._eventsCount = 0), this;
108
108
  }, c.prototype.off = c.prototype.removeListener, c.prototype.addListener = c.prototype.on, c.prefixed = t, c.EventEmitter = c, n.exports = c;
109
- })(K)), K.exports;
109
+ })(B)), B.exports;
110
110
  }
111
111
  var Se = Ee();
112
112
  const Ae = /* @__PURE__ */ he(Se);
@@ -214,14 +214,14 @@ var v = function(n, e, t, r, a) {
214
214
  if (t === "a" && !r) throw new TypeError("Private accessor was defined without a getter");
215
215
  if (typeof e == "function" ? n !== e || !r : !e.has(n)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
216
216
  return t === "m" ? r : t === "a" ? r.call(n) : r ? r.value : e.get(n);
217
- }, _, M, W, C, Y, z, j, E, L, g, $, P, D, I, q, re, se, oe, ne, ie, R, B, G, V, le, U;
217
+ }, _, M, W, C, Y, z, j, E, L, g, q, P, D, I, $, re, se, oe, ne, ie, R, G, K, V, le, U;
218
218
  class ue extends Error {
219
219
  }
220
220
  class xe extends Ae {
221
221
  // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`
222
222
  constructor(e) {
223
223
  var t, r, a, o;
224
- if (super(), _.add(this), M.set(this, void 0), W.set(this, void 0), C.set(this, 0), Y.set(this, void 0), z.set(this, void 0), j.set(this, 0), E.set(this, void 0), L.set(this, void 0), g.set(this, void 0), $.set(this, void 0), P.set(this, 0), D.set(this, void 0), I.set(this, void 0), q.set(this, void 0), Object.defineProperty(this, "timeout", {
224
+ if (super(), _.add(this), M.set(this, void 0), W.set(this, void 0), C.set(this, 0), Y.set(this, void 0), z.set(this, void 0), j.set(this, 0), E.set(this, void 0), L.set(this, void 0), g.set(this, void 0), q.set(this, void 0), P.set(this, 0), D.set(this, void 0), I.set(this, void 0), $.set(this, void 0), Object.defineProperty(this, "timeout", {
225
225
  enumerable: !0,
226
226
  configurable: !0,
227
227
  writable: !0,
@@ -238,7 +238,7 @@ class xe extends Ae {
238
238
  throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(r = (t = e.intervalCap) === null || t === void 0 ? void 0 : t.toString()) !== null && r !== void 0 ? r : ""}\` (${typeof e.intervalCap})`);
239
239
  if (e.interval === void 0 || !(Number.isFinite(e.interval) && e.interval >= 0))
240
240
  throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o = (a = e.interval) === null || a === void 0 ? void 0 : a.toString()) !== null && o !== void 0 ? o : ""}\` (${typeof e.interval})`);
241
- v(this, M, e.carryoverConcurrencyCount, "f"), v(this, W, e.intervalCap === Number.POSITIVE_INFINITY || e.interval === 0, "f"), v(this, Y, e.intervalCap, "f"), v(this, z, e.interval, "f"), v(this, g, new e.queueClass(), "f"), v(this, $, e.queueClass, "f"), this.concurrency = e.concurrency, this.timeout = e.timeout, v(this, q, e.throwOnTimeout === !0, "f"), v(this, I, e.autoStart === !1, "f");
241
+ v(this, M, e.carryoverConcurrencyCount, "f"), v(this, W, e.intervalCap === Number.POSITIVE_INFINITY || e.interval === 0, "f"), v(this, Y, e.intervalCap, "f"), v(this, z, e.interval, "f"), v(this, g, new e.queueClass(), "f"), v(this, q, e.queueClass, "f"), this.concurrency = e.concurrency, this.timeout = e.timeout, v(this, $, e.throwOnTimeout === !0, "f"), v(this, I, e.autoStart === !1, "f");
242
242
  }
243
243
  get concurrency() {
244
244
  return s(this, D, "f");
@@ -251,7 +251,7 @@ class xe extends Ae {
251
251
  async add(e, t = {}) {
252
252
  return t = {
253
253
  timeout: this.timeout,
254
- throwOnTimeout: s(this, q, "f"),
254
+ throwOnTimeout: s(this, $, "f"),
255
255
  ...t
256
256
  }, new Promise((r, a) => {
257
257
  s(this, g, "f").enqueue(async () => {
@@ -295,7 +295,7 @@ class xe extends Ae {
295
295
  Clear the queue.
296
296
  */
297
297
  clear() {
298
- v(this, g, new (s(this, $, "f"))(), "f");
298
+ v(this, g, new (s(this, q, "f"))(), "f");
299
299
  }
300
300
  /**
301
301
  Can be called multiple times. Useful if you for example add additional items at a later time.
@@ -350,7 +350,7 @@ class xe extends Ae {
350
350
  return s(this, I, "f");
351
351
  }
352
352
  }
353
- M = /* @__PURE__ */ new WeakMap(), W = /* @__PURE__ */ new WeakMap(), C = /* @__PURE__ */ new WeakMap(), Y = /* @__PURE__ */ new WeakMap(), z = /* @__PURE__ */ new WeakMap(), j = /* @__PURE__ */ new WeakMap(), E = /* @__PURE__ */ new WeakMap(), L = /* @__PURE__ */ new WeakMap(), g = /* @__PURE__ */ new WeakMap(), $ = /* @__PURE__ */ new WeakMap(), P = /* @__PURE__ */ new WeakMap(), D = /* @__PURE__ */ new WeakMap(), I = /* @__PURE__ */ new WeakMap(), q = /* @__PURE__ */ new WeakMap(), _ = /* @__PURE__ */ new WeakSet(), re = function() {
353
+ M = /* @__PURE__ */ new WeakMap(), W = /* @__PURE__ */ new WeakMap(), C = /* @__PURE__ */ new WeakMap(), Y = /* @__PURE__ */ new WeakMap(), z = /* @__PURE__ */ new WeakMap(), j = /* @__PURE__ */ new WeakMap(), E = /* @__PURE__ */ new WeakMap(), L = /* @__PURE__ */ new WeakMap(), g = /* @__PURE__ */ new WeakMap(), q = /* @__PURE__ */ new WeakMap(), P = /* @__PURE__ */ new WeakMap(), D = /* @__PURE__ */ new WeakMap(), I = /* @__PURE__ */ new WeakMap(), $ = /* @__PURE__ */ new WeakMap(), _ = /* @__PURE__ */ new WeakSet(), re = function() {
354
354
  return s(this, W, "f") || s(this, C, "f") < s(this, Y, "f");
355
355
  }, se = function() {
356
356
  return s(this, P, "f") < s(this, D, "f");
@@ -358,7 +358,7 @@ M = /* @__PURE__ */ new WeakMap(), W = /* @__PURE__ */ new WeakMap(), C = /* @__
358
358
  var e;
359
359
  v(this, P, (e = s(this, P, "f"), e--, e), "f"), s(this, _, "m", R).call(this), this.emit("next");
360
360
  }, ne = function() {
361
- s(this, _, "m", G).call(this), s(this, _, "m", B).call(this), v(this, L, void 0, "f");
361
+ s(this, _, "m", K).call(this), s(this, _, "m", G).call(this), v(this, L, void 0, "f");
362
362
  }, ie = function() {
363
363
  const e = Date.now();
364
364
  if (s(this, E, "f") === void 0) {
@@ -378,15 +378,15 @@ M = /* @__PURE__ */ new WeakMap(), W = /* @__PURE__ */ new WeakMap(), C = /* @__
378
378
  const e = !s(this, _, "a", ie);
379
379
  if (s(this, _, "a", re) && s(this, _, "a", se)) {
380
380
  const t = s(this, g, "f").dequeue();
381
- return t ? (this.emit("active"), t(), e && s(this, _, "m", B).call(this), !0) : !1;
381
+ return t ? (this.emit("active"), t(), e && s(this, _, "m", G).call(this), !0) : !1;
382
382
  }
383
383
  }
384
384
  return !1;
385
- }, B = function() {
385
+ }, G = function() {
386
386
  s(this, W, "f") || s(this, E, "f") !== void 0 || (v(this, E, setInterval(() => {
387
- s(this, _, "m", G).call(this);
387
+ s(this, _, "m", K).call(this);
388
388
  }, s(this, z, "f")), "f"), v(this, j, Date.now() + s(this, z, "f"), "f"));
389
- }, G = function() {
389
+ }, K = function() {
390
390
  s(this, C, "f") === 0 && s(this, P, "f") === 0 && s(this, E, "f") && (clearInterval(s(this, E, "f")), v(this, E, void 0, "f")), v(this, C, s(this, M, "f") ? s(this, P, "f") : 0, "f"), s(this, _, "m", V).call(this);
391
391
  }, V = function() {
392
392
  for (; s(this, _, "m", R).call(this); )