typhex 0.1.0-alpha.0 → 0.1.0-alpha.2

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 (179) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/dist/arrow/aggregates.d.ts +5 -1
  4. package/dist/arrow/aggregates.d.ts.map +1 -1
  5. package/dist/arrow/aggregates.js +23 -1
  6. package/dist/arrow/aggregates.js.map +1 -1
  7. package/dist/arrow/index.d.ts +7 -3
  8. package/dist/arrow/index.d.ts.map +1 -1
  9. package/dist/arrow/index.js +24 -3
  10. package/dist/arrow/index.js.map +1 -1
  11. package/dist/dbs/base-migrator.d.ts +0 -1
  12. package/dist/dbs/base-migrator.d.ts.map +1 -1
  13. package/dist/dbs/base-migrator.js +5 -7
  14. package/dist/dbs/base-migrator.js.map +1 -1
  15. package/dist/dbs/postgres/driver.d.ts.map +1 -1
  16. package/dist/dbs/postgres/driver.js +3 -0
  17. package/dist/dbs/postgres/driver.js.map +1 -1
  18. package/dist/dbs/postgres/query-compiler.d.ts +6 -2
  19. package/dist/dbs/postgres/query-compiler.d.ts.map +1 -1
  20. package/dist/dbs/postgres/query-compiler.js +11 -11
  21. package/dist/dbs/postgres/query-compiler.js.map +1 -1
  22. package/dist/dbs/query-compiler.d.ts +13 -13
  23. package/dist/dbs/query-compiler.d.ts.map +1 -1
  24. package/dist/dbs/query-compiler.js +11 -37
  25. package/dist/dbs/query-compiler.js.map +1 -1
  26. package/dist/dbs/sqlite/index.d.ts +2 -2
  27. package/dist/dbs/sqlite/index.d.ts.map +1 -1
  28. package/dist/dbs/sqlite/index.js +1 -1
  29. package/dist/dbs/sqlite/index.js.map +1 -1
  30. package/dist/dbs/sqlite/query-compiler.d.ts +4 -1
  31. package/dist/dbs/sqlite/query-compiler.d.ts.map +1 -1
  32. package/dist/dbs/sqlite/query-compiler.js +11 -2
  33. package/dist/dbs/sqlite/query-compiler.js.map +1 -1
  34. package/dist/dbs/types.d.ts +5 -11
  35. package/dist/dbs/types.d.ts.map +1 -1
  36. package/dist/dbs/types.js +1 -1
  37. package/dist/dbs/types.js.map +1 -1
  38. package/dist/driver/compile-only.d.ts +8 -0
  39. package/dist/driver/compile-only.d.ts.map +1 -0
  40. package/dist/driver/compile-only.js +26 -0
  41. package/dist/driver/compile-only.js.map +1 -0
  42. package/dist/driver/sqlite.d.ts.map +1 -1
  43. package/dist/driver/sqlite.js +3 -0
  44. package/dist/driver/sqlite.js.map +1 -1
  45. package/dist/entity/entity.d.ts +1 -1
  46. package/dist/entity/entity.d.ts.map +1 -1
  47. package/dist/entity/entity.js +14 -11
  48. package/dist/entity/entity.js.map +1 -1
  49. package/dist/entity/global-driver.d.ts +5 -3
  50. package/dist/entity/global-driver.d.ts.map +1 -1
  51. package/dist/entity/global-driver.js +51 -2
  52. package/dist/entity/global-driver.js.map +1 -1
  53. package/dist/entity/index.d.ts +1 -1
  54. package/dist/entity/index.d.ts.map +1 -1
  55. package/dist/entity/index.js +1 -1
  56. package/dist/entity/index.js.map +1 -1
  57. package/dist/entity/pk-columns.d.ts +0 -2
  58. package/dist/entity/pk-columns.d.ts.map +1 -1
  59. package/dist/entity/pk-columns.js +2 -10
  60. package/dist/entity/pk-columns.js.map +1 -1
  61. package/dist/entity/relations.d.ts +0 -4
  62. package/dist/entity/relations.d.ts.map +1 -1
  63. package/dist/entity/relations.js.map +1 -1
  64. package/dist/index.d.ts +3 -4
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +1 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/migration/cli.js +120 -117
  69. package/dist/migration/cli.js.map +1 -1
  70. package/dist/migration/index.d.ts +1 -1
  71. package/dist/migration/index.d.ts.map +1 -1
  72. package/dist/migration/runner.d.ts +2 -6
  73. package/dist/migration/runner.d.ts.map +1 -1
  74. package/dist/migration/runner.js +1 -3
  75. package/dist/migration/runner.js.map +1 -1
  76. package/dist/migration/types.d.ts +0 -5
  77. package/dist/migration/types.d.ts.map +1 -1
  78. package/dist/orm/db.d.ts +16 -10
  79. package/dist/orm/db.d.ts.map +1 -1
  80. package/dist/orm/db.js +37 -9
  81. package/dist/orm/db.js.map +1 -1
  82. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts +2 -2
  83. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts.map +1 -1
  84. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js.map +1 -1
  85. package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts +3 -3
  86. package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts.map +1 -1
  87. package/dist/orm/helpers/insert-graph/insert-graph-executor.js.map +1 -1
  88. package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts +3 -3
  89. package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts.map +1 -1
  90. package/dist/orm/helpers/insert-graph/insert-graph-planner.js +1 -1
  91. package/dist/orm/helpers/insert-graph/insert-graph-planner.js.map +1 -1
  92. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts +2 -2
  93. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts.map +1 -1
  94. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js.map +1 -1
  95. package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts +2 -2
  96. package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts.map +1 -1
  97. package/dist/orm/helpers/insert-graph/sequence-id-assigner.js.map +1 -1
  98. package/dist/orm/helpers/query-plan/query-plan.d.ts +19 -11
  99. package/dist/orm/helpers/query-plan/query-plan.d.ts.map +1 -1
  100. package/dist/orm/helpers/query-plan/query-plan.js +24 -4
  101. package/dist/orm/helpers/query-plan/query-plan.js.map +1 -1
  102. package/dist/orm/helpers/relations/relation-assembler.d.ts.map +1 -1
  103. package/dist/orm/helpers/relations/relation-assembler.js +14 -5
  104. package/dist/orm/helpers/relations/relation-assembler.js.map +1 -1
  105. package/dist/orm/helpers/relations/relation-fetcher.d.ts +20 -0
  106. package/dist/orm/helpers/relations/relation-fetcher.d.ts.map +1 -1
  107. package/dist/orm/helpers/relations/relation-fetcher.js +106 -23
  108. package/dist/orm/helpers/relations/relation-fetcher.js.map +1 -1
  109. package/dist/orm/index.d.ts +1 -1
  110. package/dist/orm/index.d.ts.map +1 -1
  111. package/dist/orm/index.js +1 -1
  112. package/dist/orm/index.js.map +1 -1
  113. package/dist/orm/insert-builder.d.ts +37 -0
  114. package/dist/orm/insert-builder.d.ts.map +1 -0
  115. package/dist/orm/insert-builder.js +134 -0
  116. package/dist/orm/insert-builder.js.map +1 -0
  117. package/dist/orm/query-builder.d.ts +51 -52
  118. package/dist/orm/query-builder.d.ts.map +1 -1
  119. package/dist/orm/query-builder.js +197 -223
  120. package/dist/orm/query-builder.js.map +1 -1
  121. package/dist/orm/query-execution-context.d.ts +5 -0
  122. package/dist/orm/query-execution-context.d.ts.map +1 -0
  123. package/dist/orm/query-execution-context.js +16 -0
  124. package/dist/orm/query-execution-context.js.map +1 -0
  125. package/dist/orm/query-helpers.d.ts.map +1 -1
  126. package/dist/orm/query-helpers.js +1 -1
  127. package/dist/orm/query-helpers.js.map +1 -1
  128. package/dist/orm/query-state.d.ts +10 -6
  129. package/dist/orm/query-state.d.ts.map +1 -1
  130. package/dist/orm/query-state.js.map +1 -1
  131. package/dist/orm/statement.d.ts +33 -0
  132. package/dist/orm/statement.d.ts.map +1 -0
  133. package/dist/orm/statement.js +31 -0
  134. package/dist/orm/statement.js.map +1 -0
  135. package/dist/parser/group-by.d.ts.map +1 -1
  136. package/dist/parser/group-by.js +2 -1
  137. package/dist/parser/group-by.js.map +1 -1
  138. package/dist/parser/predicate-walk.d.ts.map +1 -1
  139. package/dist/parser/predicate-walk.js +12 -32
  140. package/dist/parser/predicate-walk.js.map +1 -1
  141. package/dist/parser/resolve.js +1 -1
  142. package/dist/parser/resolve.js.map +1 -1
  143. package/dist/parser/select.js +3 -3
  144. package/dist/parser/select.js.map +1 -1
  145. package/dist/schema/column-definition.d.ts +10 -0
  146. package/dist/schema/column-definition.d.ts.map +1 -0
  147. package/dist/schema/column-definition.js +13 -0
  148. package/dist/schema/column-definition.js.map +1 -0
  149. package/dist/transformer/ir-emit.d.ts.map +1 -1
  150. package/dist/transformer/ir-emit.js +3 -0
  151. package/dist/transformer/ir-emit.js.map +1 -1
  152. package/dist/transformer/select-transformer.d.ts.map +1 -1
  153. package/dist/transformer/select-transformer.js +18 -0
  154. package/dist/transformer/select-transformer.js.map +1 -1
  155. package/dist/transformer/ts-aggregates.d.ts.map +1 -1
  156. package/dist/transformer/ts-aggregates.js +9 -14
  157. package/dist/transformer/ts-aggregates.js.map +1 -1
  158. package/dist/transformer/where-transformer.d.ts.map +1 -1
  159. package/dist/transformer/where-transformer.js +15 -24
  160. package/dist/transformer/where-transformer.js.map +1 -1
  161. package/docs/guide/entities-relations.md +12 -3
  162. package/docs/guide/getting-started.md +10 -3
  163. package/docs/public-api.md +6 -6
  164. package/docs/reference/api.md +14 -6
  165. package/docs/reference/architecture.md +11 -3
  166. package/etc/typhex.api.md +59 -59
  167. package/package.json +2 -2
  168. package/dist/dbs/sqlite/driver.d.ts +0 -9
  169. package/dist/dbs/sqlite/driver.d.ts.map +0 -1
  170. package/dist/dbs/sqlite/driver.js +0 -66
  171. package/dist/dbs/sqlite/driver.js.map +0 -1
  172. package/dist/schema/index.d.ts +0 -2
  173. package/dist/schema/index.d.ts.map +0 -1
  174. package/dist/schema/index.js +0 -2
  175. package/dist/schema/index.js.map +0 -1
  176. package/dist/schema/types.d.ts +0 -16
  177. package/dist/schema/types.d.ts.map +0 -1
  178. package/dist/schema/types.js +0 -40
  179. package/dist/schema/types.js.map +0 -1
@@ -1,10 +1,41 @@
1
1
  /**
2
2
  * Relation fetcher: fetches related entities via WHERE IN queries.
3
3
  * Does NOT mutate rows — returns fetched data as maps.
4
+ * Also compiles those queries for `toSql()` (parent keys as «col» sentinels).
4
5
  */
5
6
  import { whereAnd, makeCompositeKey, buildRelationFetchWhereIr } from "../../query-helpers.js";
6
7
  import { getEntityByTableName } from "../../../entity/global-driver.js";
7
8
  import { groupBy } from "../../../utils.js";
9
+ function unsupportedRelationType(value) {
10
+ throw new Error(`[typhex] Unsupported relation type: ${String(value)}`);
11
+ }
12
+ /** Build the WHERE IN query for one relation fetch; shared by the runtime and `toSql()` paths. */
13
+ function buildRelationFetchQuery(qe, srcRows, srcCols, tgtCols, entity, rel) {
14
+ const baseWhere = buildRelationFetchWhereIr(srcRows, srcCols, tgtCols);
15
+ if (!baseWhere)
16
+ return undefined;
17
+ const whereIr = rel?.whereIr ? whereAnd(baseWhere, rel.whereIr) : baseWhere;
18
+ let chain = entity.query(qe).where(whereIr, rel?.whereParams ?? {});
19
+ for (const order of rel?.orderBy ?? []) {
20
+ if (order.expr.kind !== "member" || order.expr.path.length === 0) {
21
+ throw new Error(`[typhex] relation "${rel?.name ?? "<unknown>"}" orderBy expects a column member expression`);
22
+ }
23
+ chain = chain.orderBy(order.expr.path.join("."), order.direction);
24
+ }
25
+ if (rel?.limitNum != null)
26
+ chain = chain.limit(rel.limitNum);
27
+ if (rel?.offsetNum != null)
28
+ chain = chain.offset(rel.offsetNum);
29
+ if (rel?.subPaths && rel.subPaths.length > 0) {
30
+ const cols = rel.subPaths.flatMap((p) => p[0] ?? p);
31
+ for (const col of tgtCols) {
32
+ if (!cols.includes(col))
33
+ cols.push(col);
34
+ }
35
+ chain = chain.select(cols);
36
+ }
37
+ return chain;
38
+ }
8
39
  /** Runs one WHERE IN query per pending relation fetch and collects keyed result maps. */
9
40
  export class RelationFetcher {
10
41
  qe;
@@ -32,8 +63,11 @@ export class RelationFetcher {
32
63
  return this.fetchManyToMany(meta);
33
64
  case "one-to-many":
34
65
  return this.fetchOneToMany(meta);
35
- default:
66
+ case "one-to-one":
67
+ case "many-to-one":
36
68
  return this.fetchOneToOne(meta);
69
+ default:
70
+ return unsupportedRelationType(meta.relationType);
37
71
  }
38
72
  }
39
73
  /** Fetch a to-many relation: WHERE IN on FK columns, grouped by FK composite key. */
@@ -85,28 +119,8 @@ export class RelationFetcher {
85
119
  }
86
120
  /** Batch-fetch rows from `entity` by mapping source column values onto target columns. */
87
121
  async fetchRows(srcRows, srcCols, tgtCols, entity, rel) {
88
- const baseWhere = buildRelationFetchWhereIr(srcRows, srcCols, tgtCols);
89
- if (!baseWhere)
90
- return [];
91
- const whereIr = rel?.whereIr ? whereAnd(baseWhere, rel.whereIr) : baseWhere;
92
- let chain = entity.query(this.qe).where(whereIr, rel?.whereParams ?? {});
93
- for (const o of rel?.orderBy ?? []) {
94
- const col = o.expr.kind === "member" ? (o.expr.path[0] ?? "") : "";
95
- chain = chain.orderBy(col, o.direction);
96
- }
97
- if (rel?.limitNum != null)
98
- chain = chain.limit(rel.limitNum);
99
- if (rel?.offsetNum != null)
100
- chain = chain.offset(rel.offsetNum);
101
- if (rel?.subPaths && rel.subPaths.length > 0) {
102
- const cols = rel.subPaths.flatMap((p) => p[0] ?? p);
103
- for (const col of tgtCols) {
104
- if (!cols.includes(col))
105
- cols.push(col);
106
- }
107
- chain = chain.select(cols);
108
- }
109
- return chain.toArray();
122
+ const chain = buildRelationFetchQuery(this.qe, srcRows, srcCols, tgtCols, entity, rel);
123
+ return chain ? chain.toArray() : [];
110
124
  }
111
125
  remapCols(row, from, to) {
112
126
  const r = {};
@@ -125,4 +139,73 @@ export class RelationFetcher {
125
139
  return groupBy(rows, (row) => makeCompositeKey(row, keys));
126
140
  }
127
141
  }
142
+ /**
143
+ * Compiles the pending relation fetches of a select plan into SQL for `toSql()`,
144
+ * mirroring the queries RelationFetcher would run. Parent key values are bound
145
+ * as «col» sentinels since they are unknown until execution.
146
+ */
147
+ export class RelationFetchCompiler {
148
+ qe;
149
+ fetches;
150
+ skip;
151
+ constructor(qe, fetches, skip) {
152
+ this.qe = qe;
153
+ this.fetches = fetches;
154
+ this.skip = skip;
155
+ }
156
+ compile() {
157
+ const out = [];
158
+ for (const meta of this.fetches) {
159
+ if (this.skip.has(meta.relation.name))
160
+ continue;
161
+ out.push(...this.compileRelation(meta, meta.relation.name));
162
+ }
163
+ return out;
164
+ }
165
+ compileRelation(meta, label) {
166
+ switch (meta.relationType) {
167
+ case "many-to-many":
168
+ return this.compileManyToMany(meta, label);
169
+ case "one-to-many":
170
+ return this.compileFetchRows(meta.parentPkColumns, meta.fkColumns, meta.targetEntity, meta.relation, label);
171
+ case "one-to-one":
172
+ case "many-to-one":
173
+ return this.compileFetchRows(meta.fkColumns, meta.targetPkColumns, meta.targetEntity, meta.relation, label);
174
+ default:
175
+ return unsupportedRelationType(meta.relationType);
176
+ }
177
+ }
178
+ /** Many-to-many: the same two queries fetchManyToMany runs through the junction. */
179
+ compileManyToMany(meta, label) {
180
+ const j = meta.junction;
181
+ const junctionEntity = getEntityByTableName(j.table);
182
+ if (!junctionEntity) {
183
+ throw new Error(`[typhex] toSql: many-to-many relation "${meta.relation.name}" junction "${j.table}" is not registered`);
184
+ }
185
+ return [
186
+ ...this.compileFetchRows(meta.parentPkColumns, j.foreignKey, junctionEntity, undefined, `${label} (junction ${j.table})`),
187
+ ...this.compileFetchRows(j.referenceKey, meta.targetPkColumns, meta.targetEntity, meta.relation, label),
188
+ ];
189
+ }
190
+ /** Compile one WHERE IN fetch, binding parent key values as «col» sentinels. */
191
+ compileFetchRows(srcCols, tgtCols, entity, rel, label) {
192
+ const sentinelRow = {};
193
+ for (const col of srcCols)
194
+ sentinelRow[col] = `\u00ab${col}\u00bb`;
195
+ const chain = buildRelationFetchQuery(this.qe, [sentinelRow], srcCols, tgtCols, entity, rel);
196
+ if (!chain)
197
+ return [];
198
+ const compiled = chain.toArray().toSql();
199
+ return [
200
+ { relation: label, sql: compiled.sql, params: compiled.params },
201
+ ...this.prefixNested(compiled.relationFetches ?? [], label),
202
+ ];
203
+ }
204
+ prefixNested(fetches, parentLabel) {
205
+ return fetches.map((f) => ({
206
+ ...f,
207
+ relation: f.relation ? `${parentLabel}.${f.relation}` : parentLabel,
208
+ }));
209
+ }
210
+ }
128
211
  //# sourceMappingURL=relation-fetcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation-fetcher.js","sourceRoot":"","sources":["../../../../src/orm/helpers/relations/relation-fetcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI5C,yFAAyF;AACzF,MAAM,OAAO,eAAe;IAEP;IACA;IACA;IACA;IAJnB,YACmB,EAAiB,EACjB,IAA+B,EAC/B,OAAgC,EAChC,IAAiB;QAHjB,OAAE,GAAF,EAAE,CAAe;QACjB,SAAI,GAAJ,IAAI,CAA2B;QAC/B,YAAO,GAAP,OAAO,CAAyB;QAChC,SAAI,GAAJ,IAAI,CAAa;IACjC,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAwB,IAAI,GAAG,EAAE,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CACnB,IAA2B;QAE3B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACnC;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,qFAAqF;IAC7E,KAAK,CAAC,cAAc,CAAC,IAA2B;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAgB,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAClC,IAAI,CAAC,IAAI,EACT,YAAY,EACZ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,gGAAgG;IACxF,KAAK,CAAC,aAAa,CAAC,IAA2B;QACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAClC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,+FAA+F;IACvF,KAAK,CAAC,eAAe,CAAC,IAA2B;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,QAAS,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAgB,CAAC;QAE3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqB,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9E,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAmB,CAAC;QACvE,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CACxC,IAAI,CAAC,IAAI,EACT,YAAY,EACZ,CAAC,CAAC,UAAU,EACZ,cAAc,CACf,CAA8B,CAAC;QAChC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAE1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAClC,YAAY,EACZ,CAAC,CAAC,YAAY,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAExE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAiC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5F,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACrC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,sBAAsB,CAC5B,YAAuC,EACvC,IAA2B;QAE3B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAS,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAgB,CAAC;QAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;QAEpD,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,gBAAgB,CAChC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,EAC9C,YAAY,CACb,CAAC;YACF,MAAM,SAAS,GAAG,gBAAgB,CAChC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,EACxD,IAAI,CAAC,eAAe,CACrB,CAAC;YACF,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpB,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,0FAA0F;IAClF,KAAK,CAAC,SAAS,CACrB,OAAkC,EAClC,OAAiB,EACjB,OAAiB,EACjB,MAAsB,EACtB,GAAsB;QAEtB,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;QACzE,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,GAAG,EAAE,QAAQ,IAAI,IAAI;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,GAAG,EAAE,SAAS,IAAI,IAAI;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,GAAG,EAAE,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAEO,SAAS,CACf,GAA4B,EAC5B,IAAc,EACd,EAAY;QAEZ,MAAM,CAAC,GAA4B,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,mBAAmB,CAAC,IAAe,EAAE,IAAc;QACzD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAA8B,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,mBAAmB,CAAC,IAAe,EAAE,IAAc;QACzD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAA8B,EAAE,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC;CACF"}
1
+ {"version":3,"file":"relation-fetcher.js","sourceRoot":"","sources":["../../../../src/orm/helpers/relations/relation-fetcher.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ export { Db } from "./db.js";
2
2
  export { Trx } from "./trx.js";
3
3
  export type { DbOptions, QueryExecutor } from "./db.js";
4
4
  export type { OrderDirection } from "../ir/types.js";
5
- export { QueryBuilder, InsertBuilder, type RegisteredCtes, type NoCtes, type QueryFromKind, } from "./query-builder.js";
5
+ export { QueryBuilder, InsertBuilder, type RegisteredCtes, type NoCtes, type QueryFromKind, type SqlAndParams, type RelationFetchSql, Statement, } from "./query-builder.js";
6
6
  export { SingleRowQueryBuilder } from "./single-row-query-builder.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC"}
package/dist/orm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Db } from "./db.js";
2
2
  export { Trx } from "./trx.js";
3
- export { QueryBuilder, InsertBuilder, } from "./query-builder.js";
3
+ export { QueryBuilder, InsertBuilder, Statement, } from "./query-builder.js";
4
4
  export { SingleRowQueryBuilder } from "./single-row-query-builder.js";
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EACL,YAAY,EACZ,aAAa,GAId,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EACL,YAAY,EACZ,aAAa,EAMb,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { AnyEntityClass } from "../entity/entity.js";
2
+ import { Statement, type SqlAndParams } from "./statement.js";
3
+ /**
4
+ * Deferred insert returned by `insert()` / `insertMany()`.
5
+ * Awaitable directly, or chain `.onConflict(cols).doUpdate()` / `.doNothing()`.
6
+ *
7
+ * @example
8
+ * await qb.insert(row);
9
+ * await qb.insert(row).onConflict(["sku"]).doUpdate();
10
+ * await qb.insertMany(rows).onConflict(["sku"]).doNothing();
11
+ */
12
+ export declare class InsertBuilder<C extends AnyEntityClass, R> implements PromiseLike<R> {
13
+ private readonly state;
14
+ private readonly payload;
15
+ private readonly fetchInsertedRow;
16
+ private conflictColumns?;
17
+ /** Store the conflict target columns; returns `this` for chaining. */
18
+ onConflict(columns: string[]): this;
19
+ /** `ON CONFLICT (...) DO UPDATE SET ...`.
20
+ * Await to execute, or call `toSql()` to compile without executing. */
21
+ doUpdate(updateColumns?: string[]): Statement<R>;
22
+ /** `ON CONFLICT (...) DO NOTHING`.
23
+ * Await to execute, or call `toSql()` to compile without executing. */
24
+ doNothing(): Statement<R>;
25
+ /** PromiseLike: allows `await insert(row)` without a conflict clause. */
26
+ then<T1 = R, T2 = never>(res?: ((value: R) => T1 | PromiseLike<T1>) | null, rej?: ((reason: unknown) => T2 | PromiseLike<T2>) | null): PromiseLike<T1 | T2>;
27
+ /** Compile the INSERT to SQL and bound parameters without executing it. */
28
+ toSql(): SqlAndParams;
29
+ private conflictStatement;
30
+ private execute;
31
+ private compilePayload;
32
+ private compileInsert;
33
+ private compileInsertMany;
34
+ private insertOne;
35
+ private insertMany;
36
+ }
37
+ //# sourceMappingURL=insert-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-builder.d.ts","sourceRoot":"","sources":["../../src/orm/insert-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AAI1E,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9D;;;;;;;;GAQG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;IAK7E,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IANnC,OAAO,CAAC,eAAe,CAAC,CAAW;IASnC,sEAAsE;IACtE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKnC;4EACwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IAQhD;4EACwE;IACxE,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;IAOzB,yEAAyE;IACzE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,EACrB,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EACjD,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GACvD,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IAIvB,2EAA2E;IAC3E,KAAK,IAAI,YAAY;IAIrB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;YAiBX,SAAS;YA2BT,UAAU;CAsBzB"}
@@ -0,0 +1,134 @@
1
+ import { getQueryCompilerOrThrow } from "./helpers/query-plan/query-plan.js";
2
+ import { buildQueryPlan, logSql } from "./query-execution-context.js";
3
+ import { Statement } from "./statement.js";
4
+ /**
5
+ * Deferred insert returned by `insert()` / `insertMany()`.
6
+ * Awaitable directly, or chain `.onConflict(cols).doUpdate()` / `.doNothing()`.
7
+ *
8
+ * @example
9
+ * await qb.insert(row);
10
+ * await qb.insert(row).onConflict(["sku"]).doUpdate();
11
+ * await qb.insertMany(rows).onConflict(["sku"]).doNothing();
12
+ */
13
+ export class InsertBuilder {
14
+ state;
15
+ payload;
16
+ fetchInsertedRow;
17
+ conflictColumns;
18
+ /** @internal */
19
+ constructor(state, payload, fetchInsertedRow) {
20
+ this.state = state;
21
+ this.payload = payload;
22
+ this.fetchInsertedRow = fetchInsertedRow;
23
+ }
24
+ /** Store the conflict target columns; returns `this` for chaining. */
25
+ onConflict(columns) {
26
+ this.conflictColumns = columns;
27
+ return this;
28
+ }
29
+ /** `ON CONFLICT (...) DO UPDATE SET ...`.
30
+ * Await to execute, or call `toSql()` to compile without executing. */
31
+ doUpdate(updateColumns) {
32
+ return this.conflictStatement({
33
+ conflictColumns: this.conflictColumns,
34
+ action: "update",
35
+ updateColumns,
36
+ });
37
+ }
38
+ /** `ON CONFLICT (...) DO NOTHING`.
39
+ * Await to execute, or call `toSql()` to compile without executing. */
40
+ doNothing() {
41
+ return this.conflictStatement({
42
+ conflictColumns: this.conflictColumns,
43
+ action: "nothing",
44
+ });
45
+ }
46
+ /** PromiseLike: allows `await insert(row)` without a conflict clause. */
47
+ then(res, rej) {
48
+ return this.execute().then(res, rej);
49
+ }
50
+ /** Compile the INSERT to SQL and bound parameters without executing it. */
51
+ toSql() {
52
+ return this.compilePayload();
53
+ }
54
+ conflictStatement(clause) {
55
+ return new Statement(() => this.execute(clause), () => this.compilePayload(clause));
56
+ }
57
+ execute(onConflict) {
58
+ return (Array.isArray(this.payload)
59
+ ? this.insertMany(this.payload, onConflict)
60
+ : this.insertOne(this.payload, onConflict));
61
+ }
62
+ compilePayload(onConflict) {
63
+ const { sql, params } = Array.isArray(this.payload)
64
+ ? this.compileInsertMany(this.payload, onConflict)
65
+ : this.compileInsert(this.payload, onConflict);
66
+ return { sql, params };
67
+ }
68
+ compileInsert(row, onConflict) {
69
+ const columns = this.state.columnNames.filter((column) => row[column] !== undefined);
70
+ this.state.insertIr = undefined;
71
+ return getQueryCompilerOrThrow(this.state).compilePlan(buildQueryPlan(this.state, {
72
+ kind: "insert",
73
+ columns,
74
+ values: columns.map((column) => row[column]),
75
+ pk: this.state.pkColumns,
76
+ onConflict,
77
+ }));
78
+ }
79
+ compileInsertMany(rows, onConflict) {
80
+ const columns = this.state.columnNames.filter((column) => rows.some((row) => row[column] !== undefined));
81
+ const paramRows = rows.map((row) => columns.map((column) => row[column] ?? null));
82
+ this.state.insertIr = undefined;
83
+ return getQueryCompilerOrThrow(this.state).compilePlan(buildQueryPlan(this.state, {
84
+ kind: "insertMany",
85
+ columns,
86
+ rows: paramRows,
87
+ pk: this.state.pkColumns,
88
+ onConflict,
89
+ }));
90
+ }
91
+ async insertOne(row, onConflict) {
92
+ const { qe, hydrate } = this.state;
93
+ const compiled = this.compileInsert(row, onConflict);
94
+ logSql(compiled.sql, compiled.params);
95
+ if (compiled.returningRow) {
96
+ const rows = (await qe.query(compiled.sql, compiled.params));
97
+ const raw = rows[0];
98
+ if (raw == null)
99
+ throw new Error("insert: RETURNING returned no row");
100
+ return hydrate ? await hydrate(raw) : raw;
101
+ }
102
+ const result = await qe.run(compiled.sql, compiled.params);
103
+ const pkColumns = this.state.pkColumns;
104
+ if (pkColumns.length === 0)
105
+ return undefined;
106
+ const pkRow = pkColumns.length === 1 && result.lastID != null
107
+ ? { ...row, [pkColumns[0]]: result.lastID }
108
+ : row;
109
+ const inserted = await this.fetchInsertedRow(pkRow);
110
+ if (!inserted)
111
+ throw new Error("insert: insert succeeded but row not found");
112
+ return inserted;
113
+ }
114
+ async insertMany(rows, onConflict) {
115
+ if (rows.length === 0)
116
+ return [];
117
+ const { qe, hydrate } = this.state;
118
+ const compiled = this.compileInsertMany(rows, onConflict);
119
+ logSql(compiled.sql, compiled.params);
120
+ if (compiled.returningRow) {
121
+ const returned = (await qe.query(compiled.sql, compiled.params));
122
+ if (!hydrate)
123
+ return returned;
124
+ const hydrated = [];
125
+ for (const row of returned) {
126
+ hydrated.push(await hydrate(row));
127
+ }
128
+ return hydrated;
129
+ }
130
+ await qe.run(compiled.sql, compiled.params);
131
+ return [];
132
+ }
133
+ }
134
+ //# sourceMappingURL=insert-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-builder.js","sourceRoot":"","sources":["../../src/orm/insert-builder.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * Query builder: the single place where all SQL is built and executed.
3
- * Provides both query (select, count) and mutation (insert, update, delete)
4
- * methods. All methods that hit the database return Promises
5
- * (except insert, which is synchronous to support save()).
2
+ * Query clauses and terminals for selecting and mutating entity rows.
6
3
  */
7
4
  import { type OrderDirection } from "../ir/types.js";
8
5
  import type { AnyEntityClass, EntityInstance, SelectRow } from "../entity/entity.js";
6
+ import { InsertBuilder } from "./insert-builder.js";
7
+ import { Statement } from "./statement.js";
8
+ export { InsertBuilder } from "./insert-builder.js";
9
+ export { Statement, type RelationFetchSql, type SqlAndParams } from "./statement.js";
9
10
  /** Whether the builder reads from the base table or a registered CTE. */
10
11
  export type QueryFromKind = "table" | "cte";
11
12
  /** Default `Ctes` map: no registered names (`keyof` is `never`, not `string`). */
@@ -17,9 +18,10 @@ export type TableRow<C extends AnyEntityClass, T, FromKind extends QueryFromKind
17
18
  type HasRegisteredCtes<Ctes extends Record<string, unknown>> = keyof Ctes extends never ? false : true;
18
19
  /** C = entity; T = row shape; Ctes = registered CTE names → row types; FromKind = table vs CTE read. */
19
20
  export declare class QueryBuilder<C extends AnyEntityClass = AnyEntityClass, T = EntityInstance<C>, Ctes extends Record<string, unknown> = NoCtes, FromKind extends QueryFromKind = "table"> {
20
- /** Return a shallow copy of this builder with mutable state (params, orderBy) deep-copied,
21
- * so chained calls do not mutate the original. */
21
+ /** Return a copy of this builder whose mutable query state is independent. */
22
22
  clone(): QueryBuilder<C, T, Ctes, FromKind>;
23
+ private buildPlan;
24
+ private logSql;
23
25
  protected requirePkColumns(context: string): string[];
24
26
  private static splitParams;
25
27
  /** Set or replace the WHERE predicate (requires Typhex transformer when using arrows). */
@@ -76,61 +78,58 @@ export declare class QueryBuilder<C extends AnyEntityClass = AnyEntityClass, T =
76
78
  groupBy(columnOrFn: string | string[] | number | number[] | ((row: EntityInstance<C>) => unknown), ...rest: (string | number)[]): this;
77
79
  /** Adds a HAVING clause to filter aggregated groups (use together with `groupBy`). */
78
80
  having(predicate: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => boolean : (row: EntityInstance<C>) => boolean, params?: Record<string, unknown>): this;
79
- /** Update matching rows with `set`, then re-fetch and return the updated row,
81
+ private replacePredicateSubqueries;
82
+ private static collectSubqueryRefs;
83
+ /** Partial update: SET the given columns, then re-fetch and return the row,
80
84
  * or null if no matching row is found after the update. */
81
85
  patch(set: Record<string, unknown>): Promise<EntityInstance<C> | null>;
82
86
  /** Insert a single row. Awaitable directly, or chain `.onConflict(cols).doUpdate()` / `.doNothing()`. */
83
87
  insert(row: Record<string, unknown>): InsertBuilder<C, EntityInstance<C> | undefined>;
84
88
  /** Insert multiple rows in one statement. Awaitable directly, or chain `.onConflict(cols).doUpdate()` / `.doNothing()`. */
85
89
  insertMany(rows: Record<string, unknown>[]): InsertBuilder<C, EntityInstance<C>[]>;
90
+ private fetchInsertedRow;
86
91
  /** Inserts an entity and its nested related entities in a single transactional operation. */
87
92
  insertGraph(graph: Record<string, unknown>): Promise<EntityInstance<C>>;
88
93
  /** Inserts multiple entities and their nested related entities in a single transactional operation. */
89
94
  insertGraph(graphs: Record<string, unknown>[]): Promise<EntityInstance<C>[]>;
90
- /** Select single row by primary key (scalar or composite object). */
91
- findById(id: unknown): Promise<EntityInstance<C> | null>;
92
- /** Execute the query and return all matching rows, with relations loaded
93
- * and the hydration function applied if one is set. */
94
- toArray(): Promise<EntityInstance<C>[]>;
95
- /** Return the first matching row, or undefined if the result set is empty. */
96
- first(): Promise<EntityInstance<C> | undefined>;
97
- /** Execute a COUNT query and return rows the query would produce without limit/offset/orderBy. */
98
- count(): Promise<number>;
99
- /** Execute an UPDATE for the current WHERE clause and return the number of affected rows. */
100
- update(set: Record<string, unknown>): Promise<number>;
101
- update(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Promise<number>;
102
- /** UPDATE ... RETURNING * (when supported); returns hydrated rows. */
103
- updateReturning(set: Record<string, unknown>): Promise<EntityInstance<C>[]>;
104
- updateReturning(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Promise<EntityInstance<C>[]>;
105
- /** Execute a DELETE for the current WHERE clause and return the number of affected rows. */
106
- delete(): Promise<number>;
107
- /** DELETE ... RETURNING * (when supported). */
108
- deleteReturning(): Promise<EntityInstance<C>[]>;
95
+ /** Select one row by primary key.
96
+ * Await to execute, or call `toSql()` to compile without executing. */
97
+ findById(id: unknown): Statement<EntityInstance<C> | null>;
98
+ /** All matching rows, with relations loaded and hydration applied.
99
+ * Await to execute, or call `toSql()` to compile without executing. */
100
+ toArray(): Statement<EntityInstance<C>[]>;
101
+ /** The first matching row, or undefined if the result set is empty.
102
+ * Await to execute, or call `toSql()` to compile without executing. */
103
+ first(): Statement<EntityInstance<C> | undefined>;
104
+ /** The COUNT of rows the query would produce without limit/offset/orderBy.
105
+ * Await to execute, or call `toSql()` to compile without executing. */
106
+ count(): Statement<number>;
107
+ private runSelect;
108
+ private runCount;
109
+ private compileSelect;
110
+ private compileCount;
111
+ private compileDelete;
112
+ /** UPDATE the current WHERE clause; resolves to the number of affected rows.
113
+ * Await to execute, or call `toSql()` to compile without executing. */
114
+ update(set: Record<string, unknown>): Statement<number>;
115
+ update(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Statement<number>;
116
+ private runUpdate;
117
+ private compileUpdate;
118
+ /** UPDATE ... RETURNING * (when supported).
119
+ * Await to execute, or call `toSql()` to compile without executing. */
120
+ updateReturning(set: Record<string, unknown>): Statement<EntityInstance<C>[]>;
121
+ updateReturning(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Statement<EntityInstance<C>[]>;
122
+ /** DELETE for the current WHERE clause; resolves to the number of affected rows.
123
+ * Await to execute, or call `toSql()` to compile without executing. */
124
+ delete(): Statement<number>;
125
+ private runDelete;
126
+ /** DELETE ... RETURNING * (when supported).
127
+ * Await to execute, or call `toSql()` to compile without executing. */
128
+ deleteReturning(): Statement<EntityInstance<C>[]>;
129
+ private runDeleteReturning;
130
+ private compileDeleteReturning;
131
+ private queryRows;
132
+ private runMutation;
133
+ private hydrateRows;
109
134
  }
110
- /**
111
- * Deferred insert returned by `insert()` / `insertMany()`.
112
- * Extends `QueryBuilder` so it owns its execution logic and has direct access to state.
113
- * Awaitable directly (no conflict handling) or chain `.onConflict(cols).doUpdate()` / `.doNothing()`.
114
- *
115
- * @example
116
- * await qb.insert(row);
117
- * await qb.insert(row).onConflict(["sku"]).doUpdate();
118
- * await qb.insertMany(rows).onConflict(["sku"]).doNothing();
119
- */
120
- export declare class InsertBuilder<C extends AnyEntityClass, R> extends QueryBuilder<C> implements PromiseLike<R> {
121
- private _conflictCols?;
122
- private readonly _payload;
123
- /** Store the conflict target columns; returns `this` for chaining. */
124
- onConflict(columns: string[]): this;
125
- /** `ON CONFLICT (...) DO UPDATE SET ...` — executes the insert. */
126
- doUpdate(updateColumns?: string[]): Promise<R>;
127
- /** `ON CONFLICT (...) DO NOTHING` — executes the insert. */
128
- doNothing(): Promise<R>;
129
- /** PromiseLike: allows `await insert(row)` without a conflict clause. */
130
- then<T1 = R, T2 = never>(res?: ((v: R) => T1 | PromiseLike<T1>) | null, rej?: ((e: unknown) => T2 | PromiseLike<T2>) | null): PromiseLike<T1 | T2>;
131
- private _execute;
132
- private _doInsert;
133
- private _doInsertMany;
134
- }
135
- export {};
136
135
  //# sourceMappingURL=query-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/orm/query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/orm/query-builder.ts"],"names":[],"mappings":"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"}