kysely 0.7.2 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +9 -5
  2. package/dist/cjs/dialect/dialect-adapter.d.ts +11 -9
  3. package/dist/cjs/index.d.ts +2 -1
  4. package/dist/cjs/index.js +2 -1
  5. package/dist/cjs/kysely.d.ts +2 -2
  6. package/dist/cjs/kysely.js +9 -7
  7. package/dist/cjs/operation-node/create-table-node.d.ts +2 -1
  8. package/dist/cjs/operation-node/create-table-node.js +1 -5
  9. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +12 -1
  10. package/dist/cjs/operation-node/foreign-key-constraint-node.js +6 -0
  11. package/dist/cjs/operation-node/join-node.d.ts +1 -0
  12. package/dist/cjs/operation-node/join-node.js +8 -0
  13. package/dist/cjs/operation-node/operation-node-transformer.js +3 -0
  14. package/dist/cjs/operation-node/references-node.d.ts +5 -3
  15. package/dist/cjs/operation-node/references-node.js +6 -0
  16. package/dist/cjs/operation-node/table-node.js +2 -2
  17. package/dist/cjs/parser/data-type-parser.d.ts +5 -0
  18. package/dist/cjs/parser/data-type-parser.js +11 -0
  19. package/dist/cjs/parser/default-value-parser.d.ts +6 -0
  20. package/dist/cjs/parser/default-value-parser.js +11 -0
  21. package/dist/cjs/parser/filter-parser.d.ts +2 -2
  22. package/dist/cjs/parser/filter-parser.js +34 -36
  23. package/dist/cjs/parser/join-parser.d.ts +1 -1
  24. package/dist/cjs/parser/join-parser.js +9 -11
  25. package/dist/cjs/parser/parse-context.d.ts +33 -6
  26. package/dist/cjs/parser/parse-context.js +40 -33
  27. package/dist/cjs/parser/reference-parser.d.ts +2 -2
  28. package/dist/cjs/parser/reference-parser.js +16 -12
  29. package/dist/cjs/parser/select-parser.d.ts +1 -2
  30. package/dist/cjs/parser/select-parser.js +4 -5
  31. package/dist/cjs/parser/table-parser.js +11 -6
  32. package/dist/cjs/parser/update-set-parser.js +1 -1
  33. package/dist/cjs/parser/value-parser.js +1 -1
  34. package/dist/cjs/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +6 -6
  35. package/dist/cjs/query-builder/{sub-query-builder.js → expression-builder.js} +6 -10
  36. package/dist/cjs/query-builder/join-builder.d.ts +2 -2
  37. package/dist/cjs/query-builder/join-builder.js +8 -12
  38. package/dist/cjs/query-builder/query-builder.d.ts +2 -2
  39. package/dist/cjs/query-builder/query-builder.js +34 -36
  40. package/dist/cjs/query-builder/type-utils.d.ts +5 -5
  41. package/dist/cjs/query-compiler/default-query-compiler.js +13 -1
  42. package/dist/cjs/query-creator.d.ts +2 -2
  43. package/dist/cjs/query-creator.js +8 -12
  44. package/dist/cjs/schema/alter-table-builder.d.ts +26 -8
  45. package/dist/cjs/schema/alter-table-builder.js +75 -7
  46. package/dist/cjs/schema/column-definition-builder.d.ts +10 -4
  47. package/dist/cjs/schema/column-definition-builder.js +11 -6
  48. package/dist/cjs/schema/create-index-builder.d.ts +5 -5
  49. package/dist/cjs/schema/create-index-builder.js +19 -28
  50. package/dist/cjs/schema/create-schema-builder.d.ts +5 -5
  51. package/dist/cjs/schema/create-schema-builder.js +9 -13
  52. package/dist/cjs/schema/create-table-builder.d.ts +22 -10
  53. package/dist/cjs/schema/create-table-builder.js +41 -34
  54. package/dist/cjs/schema/drop-index-builder.d.ts +5 -5
  55. package/dist/cjs/schema/drop-index-builder.js +11 -16
  56. package/dist/cjs/schema/drop-schema-builder.d.ts +5 -5
  57. package/dist/cjs/schema/drop-schema-builder.js +9 -13
  58. package/dist/cjs/schema/drop-table-builder.d.ts +5 -5
  59. package/dist/cjs/schema/drop-table-builder.js +9 -13
  60. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +14 -0
  61. package/dist/cjs/schema/foreign-key-constraint-builder.js +26 -0
  62. package/dist/esm/dialect/dialect-adapter.d.ts +11 -9
  63. package/dist/esm/index.d.ts +2 -1
  64. package/dist/esm/index.js +2 -1
  65. package/dist/esm/kysely.d.ts +2 -2
  66. package/dist/esm/kysely.js +9 -7
  67. package/dist/esm/operation-node/create-table-node.d.ts +2 -1
  68. package/dist/esm/operation-node/create-table-node.js +1 -5
  69. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +12 -1
  70. package/dist/esm/operation-node/foreign-key-constraint-node.js +6 -0
  71. package/dist/esm/operation-node/join-node.d.ts +1 -0
  72. package/dist/esm/operation-node/join-node.js +8 -0
  73. package/dist/esm/operation-node/operation-node-transformer.js +3 -0
  74. package/dist/esm/operation-node/references-node.d.ts +5 -3
  75. package/dist/esm/operation-node/references-node.js +6 -0
  76. package/dist/esm/operation-node/table-node.js +2 -2
  77. package/dist/esm/parser/data-type-parser.d.ts +5 -0
  78. package/dist/esm/parser/data-type-parser.js +7 -0
  79. package/dist/esm/parser/default-value-parser.d.ts +6 -0
  80. package/dist/esm/parser/default-value-parser.js +7 -0
  81. package/dist/esm/parser/filter-parser.d.ts +2 -2
  82. package/dist/esm/parser/filter-parser.js +31 -33
  83. package/dist/esm/parser/join-parser.d.ts +1 -1
  84. package/dist/esm/parser/join-parser.js +7 -9
  85. package/dist/esm/parser/parse-context.d.ts +33 -6
  86. package/dist/esm/parser/parse-context.js +38 -31
  87. package/dist/esm/parser/reference-parser.d.ts +2 -2
  88. package/dist/esm/parser/reference-parser.js +16 -12
  89. package/dist/esm/parser/select-parser.d.ts +1 -2
  90. package/dist/esm/parser/select-parser.js +3 -3
  91. package/dist/esm/parser/table-parser.js +11 -6
  92. package/dist/esm/parser/update-set-parser.js +1 -1
  93. package/dist/esm/parser/value-parser.js +1 -1
  94. package/dist/esm/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +6 -6
  95. package/dist/esm/query-builder/{sub-query-builder.js → expression-builder.js} +4 -8
  96. package/dist/esm/query-builder/join-builder.d.ts +2 -2
  97. package/dist/esm/query-builder/join-builder.js +9 -13
  98. package/dist/esm/query-builder/query-builder.d.ts +2 -2
  99. package/dist/esm/query-builder/query-builder.js +37 -39
  100. package/dist/esm/query-builder/type-utils.d.ts +5 -5
  101. package/dist/esm/query-compiler/default-query-compiler.js +14 -2
  102. package/dist/esm/query-creator.d.ts +2 -2
  103. package/dist/esm/query-creator.js +8 -12
  104. package/dist/esm/schema/alter-table-builder.d.ts +26 -8
  105. package/dist/esm/schema/alter-table-builder.js +73 -6
  106. package/dist/esm/schema/column-definition-builder.d.ts +10 -4
  107. package/dist/esm/schema/column-definition-builder.js +12 -7
  108. package/dist/esm/schema/create-index-builder.d.ts +5 -5
  109. package/dist/esm/schema/create-index-builder.js +19 -28
  110. package/dist/esm/schema/create-schema-builder.d.ts +5 -5
  111. package/dist/esm/schema/create-schema-builder.js +9 -13
  112. package/dist/esm/schema/create-table-builder.d.ts +22 -10
  113. package/dist/esm/schema/create-table-builder.js +41 -34
  114. package/dist/esm/schema/drop-index-builder.d.ts +5 -5
  115. package/dist/esm/schema/drop-index-builder.js +11 -16
  116. package/dist/esm/schema/drop-schema-builder.d.ts +5 -5
  117. package/dist/esm/schema/drop-schema-builder.js +9 -13
  118. package/dist/esm/schema/drop-table-builder.d.ts +5 -5
  119. package/dist/esm/schema/drop-table-builder.js +9 -13
  120. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +14 -0
  121. package/dist/esm/schema/foreign-key-constraint-builder.js +22 -0
  122. package/package.json +1 -1
@@ -19,7 +19,6 @@ const limit_node_js_1 = require("../operation-node/limit-node.js");
19
19
  const offset_node_js_1 = require("../operation-node/offset-node.js");
20
20
  const on_conflict_parser_js_1 = require("../parser/on-conflict-parser.js");
21
21
  const object_utils_js_1 = require("../util/object-utils.js");
22
- const parse_context_js_1 = require("../parser/parse-context.js");
23
22
  const delete_query_node_js_1 = require("../operation-node/delete-query-node.js");
24
23
  const on_duplicate_key_node_js_1 = require("../operation-node/on-duplicate-key-node.js");
25
24
  /**
@@ -46,7 +45,7 @@ class QueryBuilder {
46
45
  assertCanHaveWhereClause(this.#props.queryNode);
47
46
  return new QueryBuilder({
48
47
  ...this.#props,
49
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseWhereFilter)(this.#parseContext, args)),
48
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseWhereFilter)(this.#props.parseContext, args)),
50
49
  });
51
50
  }
52
51
  /**
@@ -104,14 +103,14 @@ class QueryBuilder {
104
103
  assertCanHaveWhereClause(this.#props.queryNode);
105
104
  return new QueryBuilder({
106
105
  ...this.#props,
107
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseReferenceFilter)(this.#parseContext, lhs, op, rhs)),
106
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
108
107
  });
109
108
  }
110
109
  orWhere(...args) {
111
110
  assertCanHaveWhereClause(this.#props.queryNode);
112
111
  return new QueryBuilder({
113
112
  ...this.#props,
114
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseWhereFilter)(this.#parseContext, args)),
113
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseWhereFilter)(this.#props.parseContext, args)),
115
114
  });
116
115
  }
117
116
  /**
@@ -124,7 +123,7 @@ class QueryBuilder {
124
123
  assertCanHaveWhereClause(this.#props.queryNode);
125
124
  return new QueryBuilder({
126
125
  ...this.#props,
127
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseReferenceFilter)(this.#parseContext, lhs, op, rhs)),
126
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
128
127
  });
129
128
  }
130
129
  /**
@@ -190,7 +189,7 @@ class QueryBuilder {
190
189
  assertCanHaveWhereClause(this.#props.queryNode);
191
190
  return new QueryBuilder({
192
191
  ...this.#props,
193
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseExistExpression)(this.#parseContext, arg)),
192
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
194
193
  });
195
194
  }
196
195
  /**
@@ -200,7 +199,7 @@ class QueryBuilder {
200
199
  assertCanHaveWhereClause(this.#props.queryNode);
201
200
  return new QueryBuilder({
202
201
  ...this.#props,
203
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseNotExistExpression)(this.#parseContext, arg)),
202
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
204
203
  });
205
204
  }
206
205
  /**
@@ -210,7 +209,7 @@ class QueryBuilder {
210
209
  assertCanHaveWhereClause(this.#props.queryNode);
211
210
  return new QueryBuilder({
212
211
  ...this.#props,
213
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseExistExpression)(this.#parseContext, arg)),
212
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
214
213
  });
215
214
  }
216
215
  /**
@@ -220,14 +219,14 @@ class QueryBuilder {
220
219
  assertCanHaveWhereClause(this.#props.queryNode);
221
220
  return new QueryBuilder({
222
221
  ...this.#props,
223
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseNotExistExpression)(this.#parseContext, arg)),
222
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
224
223
  });
225
224
  }
226
225
  having(...args) {
227
226
  assertCanHaveHavingClause(this.#props.queryNode);
228
227
  return new QueryBuilder({
229
228
  ...this.#props,
230
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseHavingFilter)(this.#parseContext, args)),
229
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseHavingFilter)(this.#props.parseContext, args)),
231
230
  });
232
231
  }
233
232
  /**
@@ -238,14 +237,14 @@ class QueryBuilder {
238
237
  assertCanHaveHavingClause(this.#props.queryNode);
239
238
  return new QueryBuilder({
240
239
  ...this.#props,
241
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseReferenceFilter)(this.#parseContext, lhs, op, rhs)),
240
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
242
241
  });
243
242
  }
244
243
  orHaving(...args) {
245
244
  assertCanHaveHavingClause(this.#props.queryNode);
246
245
  return new QueryBuilder({
247
246
  ...this.#props,
248
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseHavingFilter)(this.#parseContext, args)),
247
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseHavingFilter)(this.#props.parseContext, args)),
249
248
  });
250
249
  }
251
250
  /**
@@ -256,7 +255,7 @@ class QueryBuilder {
256
255
  assertCanHaveHavingClause(this.#props.queryNode);
257
256
  return new QueryBuilder({
258
257
  ...this.#props,
259
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseReferenceFilter)(this.#parseContext, lhs, op, rhs)),
258
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
260
259
  });
261
260
  }
262
261
  /**
@@ -267,7 +266,7 @@ class QueryBuilder {
267
266
  assertCanHaveHavingClause(this.#props.queryNode);
268
267
  return new QueryBuilder({
269
268
  ...this.#props,
270
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseExistExpression)(this.#parseContext, arg)),
269
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
271
270
  });
272
271
  }
273
272
  /**
@@ -278,7 +277,7 @@ class QueryBuilder {
278
277
  assertCanHaveHavingClause(this.#props.queryNode);
279
278
  return new QueryBuilder({
280
279
  ...this.#props,
281
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseNotExistExpression)(this.#parseContext, arg)),
280
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
282
281
  });
283
282
  }
284
283
  /**
@@ -289,7 +288,7 @@ class QueryBuilder {
289
288
  assertCanHaveHavingClause(this.#props.queryNode);
290
289
  return new QueryBuilder({
291
290
  ...this.#props,
292
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseExistExpression)(this.#parseContext, arg)),
291
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
293
292
  });
294
293
  }
295
294
  /**
@@ -300,21 +299,21 @@ class QueryBuilder {
300
299
  assertCanHaveHavingClause(this.#props.queryNode);
301
300
  return new QueryBuilder({
302
301
  ...this.#props,
303
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseNotExistExpression)(this.#parseContext, arg)),
302
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
304
303
  });
305
304
  }
306
305
  select(selection) {
307
306
  assertCanHaveSelectClause(this.#props.queryNode);
308
307
  return new QueryBuilder({
309
308
  ...this.#props,
310
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSelections(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(this.#parseContext, selection)),
309
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSelections(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(this.#props.parseContext, selection)),
311
310
  });
312
311
  }
313
312
  distinctOn(selection) {
314
313
  assertCanHaveSelectClause(this.#props.queryNode);
315
314
  return new QueryBuilder({
316
315
  ...this.#props,
317
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithDistinctOnSelections(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(this.#parseContext, selection)),
316
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithDistinctOnSelections(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(this.#props.parseContext, selection)),
318
317
  });
319
318
  }
320
319
  /**
@@ -405,35 +404,35 @@ class QueryBuilder {
405
404
  assertCanHaveSelectClause(this.#props.queryNode);
406
405
  return new QueryBuilder({
407
406
  ...this.#props,
408
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSelections(this.#props.queryNode, (0, select_parser_js_1.parseSelectAllArgs)(table)),
407
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSelections(this.#props.queryNode, (0, select_parser_js_1.parseSelectAll)(table)),
409
408
  });
410
409
  }
411
410
  innerJoin(...args) {
412
411
  assertCanHaveJoins(this.#props.queryNode);
413
412
  return new QueryBuilder({
414
413
  ...this.#props,
415
- queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoinArgs)(this.#parseContext, 'InnerJoin', args)),
414
+ queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)(this.#props.parseContext, 'InnerJoin', args)),
416
415
  });
417
416
  }
418
417
  leftJoin(...args) {
419
418
  assertCanHaveJoins(this.#props.queryNode);
420
419
  return new QueryBuilder({
421
420
  ...this.#props,
422
- queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoinArgs)(this.#parseContext, 'LeftJoin', args)),
421
+ queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)(this.#props.parseContext, 'LeftJoin', args)),
423
422
  });
424
423
  }
425
424
  rightJoin(...args) {
426
425
  assertCanHaveJoins(this.#props.queryNode);
427
426
  return new QueryBuilder({
428
427
  ...this.#props,
429
- queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoinArgs)(this.#parseContext, 'RightJoin', args)),
428
+ queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)(this.#props.parseContext, 'RightJoin', args)),
430
429
  });
431
430
  }
432
431
  fullJoin(...args) {
433
432
  assertCanHaveJoins(this.#props.queryNode);
434
433
  return new QueryBuilder({
435
434
  ...this.#props,
436
- queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoinArgs)(this.#parseContext, 'FullJoin', args)),
435
+ queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)(this.#props.parseContext, 'FullJoin', args)),
437
436
  });
438
437
  }
439
438
  values(args) {
@@ -490,7 +489,7 @@ class QueryBuilder {
490
489
  return new QueryBuilder({
491
490
  ...this.#props,
492
491
  queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
493
- onConflict: (0, on_conflict_parser_js_1.parseOnConflictUpdate)(this.#parseContext, target, updates),
492
+ onConflict: (0, on_conflict_parser_js_1.parseOnConflictUpdate)(this.#props.parseContext, target, updates),
494
493
  }),
495
494
  });
496
495
  }
@@ -516,7 +515,7 @@ class QueryBuilder {
516
515
  return new QueryBuilder({
517
516
  ...this.#props,
518
517
  queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
519
- onDuplicateKey: on_duplicate_key_node_js_1.OnDuplicateKeyNode.create((0, update_set_parser_js_1.parseUpdateObject)(this.#parseContext, updates)),
518
+ onDuplicateKey: on_duplicate_key_node_js_1.OnDuplicateKeyNode.create((0, update_set_parser_js_1.parseUpdateObject)(this.#props.parseContext, updates)),
520
519
  }),
521
520
  });
522
521
  }
@@ -606,14 +605,14 @@ class QueryBuilder {
606
605
  assertCanHaveUpdates(this.#props.queryNode);
607
606
  return new QueryBuilder({
608
607
  ...this.#props,
609
- queryNode: update_query_node_js_1.UpdateQueryNode.cloneWithUpdates(this.#props.queryNode, (0, update_set_parser_js_1.parseUpdateObject)(this.#parseContext, row)),
608
+ queryNode: update_query_node_js_1.UpdateQueryNode.cloneWithUpdates(this.#props.queryNode, (0, update_set_parser_js_1.parseUpdateObject)(this.#props.parseContext, row)),
610
609
  });
611
610
  }
612
611
  returning(selection) {
613
612
  assertCanHaveReturningClause(this.#props.queryNode);
614
613
  return new QueryBuilder({
615
614
  ...this.#props,
616
- queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(this.#parseContext, selection)),
615
+ queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(this.#props.parseContext, selection)),
617
616
  });
618
617
  }
619
618
  /**
@@ -624,7 +623,7 @@ class QueryBuilder {
624
623
  assertCanHaveReturningClause(this.#props.queryNode);
625
624
  return new QueryBuilder({
626
625
  ...this.#props,
627
- queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectAllArgs)()),
626
+ queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectAll)()),
628
627
  });
629
628
  }
630
629
  /**
@@ -717,14 +716,14 @@ class QueryBuilder {
717
716
  assertCanHaveOrderByClause(this.#props.queryNode);
718
717
  return new QueryBuilder({
719
718
  ...this.#props,
720
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrderByItem(this.#props.queryNode, order_by_item_node_js_1.OrderByItemNode.create((0, reference_parser_js_1.parseReferenceExpression)(this.#parseContext, orderBy), direction)),
719
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrderByItem(this.#props.queryNode, order_by_item_node_js_1.OrderByItemNode.create((0, reference_parser_js_1.parseReferenceExpression)(this.#props.parseContext, orderBy), direction)),
721
720
  });
722
721
  }
723
722
  groupBy(orderBy) {
724
723
  assertCanHaveGroupByClause(this.#props.queryNode);
725
724
  return new QueryBuilder({
726
725
  ...this.#props,
727
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithGroupByItems(this.#props.queryNode, (0, reference_parser_js_1.parseReferenceExpressionOrList)(this.#parseContext, orderBy).map(group_by_item_node_js_1.GroupByItemNode.create)),
726
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithGroupByItems(this.#props.queryNode, (0, reference_parser_js_1.parseReferenceExpressionOrList)(this.#props.parseContext, orderBy).map(group_by_item_node_js_1.GroupByItemNode.create)),
728
727
  });
729
728
  }
730
729
  /**
@@ -823,7 +822,8 @@ class QueryBuilder {
823
822
  const compildQuery = this.#props.executor.compileQuery(node, this.#props.queryId);
824
823
  const result = await this.#props.executor.executeQuery(compildQuery, this.#props.queryId);
825
824
  if (insert_query_node_js_1.InsertQueryNode.is(node)) {
826
- if (this.#props.adapter.supportsReturning && node.returning) {
825
+ if (this.#props.parseContext.adapter.supportsReturning &&
826
+ node.returning) {
827
827
  return result.rows;
828
828
  }
829
829
  else if (result.insertedPrimaryKey != null) {
@@ -834,7 +834,8 @@ class QueryBuilder {
834
834
  }
835
835
  }
836
836
  else if (update_query_node_js_1.UpdateQueryNode.is(node) || delete_query_node_js_1.DeleteQueryNode.is(node)) {
837
- if (this.#props.adapter.supportsReturning && node.returning) {
837
+ if (this.#props.parseContext.adapter.supportsReturning &&
838
+ node.returning) {
838
839
  return result.rows;
839
840
  }
840
841
  else if (result.numUpdatedOrDeletedRows != null) {
@@ -871,9 +872,6 @@ class QueryBuilder {
871
872
  }
872
873
  return result;
873
874
  }
874
- get #parseContext() {
875
- return (0, parse_context_js_1.createParseContext)(this.#props.adapter);
876
- }
877
875
  }
878
876
  exports.QueryBuilder = QueryBuilder;
879
877
  (0, prevent_await_js_1.preventAwait)(QueryBuilder, "don't await QueryBuilder instances directly. To execute the query you need to call `execute` or `executeTakeFirst`.");
@@ -1,6 +1,6 @@
1
1
  import { AliasedRawBuilder, RawBuilder } from '../raw-builder/raw-builder.js';
2
2
  import { AliasedQueryBuilder, QueryBuilder } from './query-builder.js';
3
- import { SubQueryBuilder } from './sub-query-builder.js';
3
+ import { ExpressionBuilder } from './expression-builder.js';
4
4
  export declare type ValueType<T> = T[keyof T];
5
5
  /**
6
6
  * Given a database type and a union of table names returns the row type
@@ -127,10 +127,10 @@ export declare type AnyQueryBuilder = QueryBuilder<any, any, any>;
127
127
  export declare type AnyAliasedQueryBuilder = AliasedQueryBuilder<any, any, any, any>;
128
128
  export declare type AnyRawBuilder = RawBuilder<any>;
129
129
  export declare type AnyAliasedRawBuilder = AliasedRawBuilder<any, any>;
130
- export declare type QueryBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => QueryBuilder<any, any, any>;
131
- export declare type AliasedQueryBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyAliasedQueryBuilder;
132
- export declare type RawBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyRawBuilder;
133
- export declare type AliasedRawBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyAliasedRawBuilder;
130
+ export declare type QueryBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => QueryBuilder<any, any, any>;
131
+ export declare type AliasedQueryBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedQueryBuilder;
132
+ export declare type RawBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyRawBuilder;
133
+ export declare type AliasedRawBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedRawBuilder;
134
134
  export interface InsertResultTypeTag {
135
135
  /** @internal */
136
136
  __isInsertResultTypeTag__: true;
@@ -35,7 +35,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
35
35
  this.append(' ');
36
36
  }
37
37
  this.append('select ');
38
- if (node.distinctOnSelections && !(0, object_utils_js_1.isEmpty)(node.distinctOnSelections)) {
38
+ if (node.distinctOnSelections) {
39
39
  this.compileDistinctOn(node.distinctOnSelections);
40
40
  this.append(' ');
41
41
  }
@@ -337,6 +337,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
337
337
  this.append(' on delete ');
338
338
  this.append(node.onDelete);
339
339
  }
340
+ if (node.onUpdate) {
341
+ this.append(' on update ');
342
+ this.append(node.onUpdate);
343
+ }
340
344
  }
341
345
  visitDropTable(node) {
342
346
  this.append('drop table ');
@@ -523,6 +527,14 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
523
527
  this.compileList(node.columns);
524
528
  this.append(') ');
525
529
  this.visitNode(node.references);
530
+ if (node.onDelete) {
531
+ this.append(' on delete ');
532
+ this.append(node.onDelete);
533
+ }
534
+ if (node.onUpdate) {
535
+ this.append(' on update ');
536
+ this.append(node.onUpdate);
537
+ }
526
538
  }
527
539
  visitList(node) {
528
540
  this.compileList(node.items);
@@ -5,7 +5,7 @@ import { QueryExecutor } from './query-executor/query-executor.js';
5
5
  import { RawBuilder } from './raw-builder/raw-builder.js';
6
6
  import { CommonTableExpression, QueryCreatorWithCommonTableExpression } from './parser/with-parser.js';
7
7
  import { WithNode } from './operation-node/with-node.js';
8
- import { DialectAdapter } from './dialect/dialect-adapter.js';
8
+ import { ParseContext } from './parser/parse-context.js';
9
9
  export declare class QueryCreator<DB> {
10
10
  #private;
11
11
  constructor(props: QueryCreatorProps);
@@ -378,7 +378,7 @@ export declare class QueryCreator<DB> {
378
378
  raw<T = unknown>(sql: string, params?: any[]): RawBuilder<T>;
379
379
  }
380
380
  export interface QueryCreatorProps {
381
- readonly adapter: DialectAdapter;
382
381
  readonly executor: QueryExecutor;
382
+ readonly parseContext: ParseContext;
383
383
  readonly withNode?: WithNode;
384
384
  }
@@ -13,7 +13,6 @@ const with_node_js_1 = require("./operation-node/with-node.js");
13
13
  const query_id_js_1 = require("./util/query-id.js");
14
14
  const with_schema_plugin_js_1 = require("./plugin/with-schema/with-schema-plugin.js");
15
15
  const object_utils_js_1 = require("./util/object-utils.js");
16
- const parse_context_js_1 = require("./parser/parse-context.js");
17
16
  class QueryCreator {
18
17
  #props;
19
18
  constructor(props) {
@@ -23,8 +22,8 @@ class QueryCreator {
23
22
  return new query_builder_js_1.QueryBuilder({
24
23
  queryId: (0, query_id_js_1.createQueryId)(),
25
24
  executor: this.#props.executor,
26
- adapter: this.#props.adapter,
27
- queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this.#parseContext, from), this.#props.withNode),
25
+ parseContext: this.#props.parseContext,
26
+ queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this.#props.parseContext, from), this.#props.withNode),
28
27
  });
29
28
  }
30
29
  /**
@@ -72,7 +71,7 @@ class QueryCreator {
72
71
  return new query_builder_js_1.QueryBuilder({
73
72
  queryId: (0, query_id_js_1.createQueryId)(),
74
73
  executor: this.#props.executor,
75
- adapter: this.#props.adapter,
74
+ parseContext: this.#props.parseContext,
76
75
  queryNode: insert_query_node_js_1.InsertQueryNode.create((0, table_parser_js_1.parseTable)(table), this.#props.withNode),
77
76
  });
78
77
  }
@@ -94,8 +93,8 @@ class QueryCreator {
94
93
  return new query_builder_js_1.QueryBuilder({
95
94
  queryId: (0, query_id_js_1.createQueryId)(),
96
95
  executor: this.#props.executor,
97
- adapter: this.#props.adapter,
98
- queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#parseContext, table), this.#props.withNode),
96
+ parseContext: this.#props.parseContext,
97
+ queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#props.parseContext, table), this.#props.withNode),
99
98
  });
100
99
  }
101
100
  /**
@@ -120,8 +119,8 @@ class QueryCreator {
120
119
  return new query_builder_js_1.QueryBuilder({
121
120
  queryId: (0, query_id_js_1.createQueryId)(),
122
121
  executor: this.#props.executor,
123
- adapter: this.#props.adapter,
124
- queryNode: update_query_node_js_1.UpdateQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#parseContext, table), this.#props.withNode),
122
+ parseContext: this.#props.parseContext,
123
+ queryNode: update_query_node_js_1.UpdateQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#props.parseContext, table), this.#props.withNode),
125
124
  });
126
125
  }
127
126
  /**
@@ -147,7 +146,7 @@ class QueryCreator {
147
146
  * ```
148
147
  */
149
148
  with(name, expression) {
150
- const cte = (0, with_parser_js_1.parseCommonTableExpression)(this.#parseContext, name, expression);
149
+ const cte = (0, with_parser_js_1.parseCommonTableExpression)(this.#props.parseContext, name, expression);
151
150
  return new QueryCreator({
152
151
  ...this.#props,
153
152
  withNode: this.#props.withNode
@@ -325,8 +324,5 @@ class QueryCreator {
325
324
  executor: this.#props.executor,
326
325
  });
327
326
  }
328
- get #parseContext() {
329
- return (0, parse_context_js_1.createParseContext)(this.#props.adapter);
330
- }
331
327
  }
332
328
  exports.QueryCreator = QueryCreator;
@@ -2,15 +2,16 @@ import { AlterColumnNode } from '../operation-node/alter-column-node.js';
2
2
  import { AlterTableNode } from '../operation-node/alter-table-node.js';
3
3
  import { ColumnDataType } from '../operation-node/data-type-node.js';
4
4
  import { OperationNodeSource } from '../operation-node/operation-node-source.js';
5
- import { OnDelete } from '../operation-node/references-node.js';
5
+ import { OnModifyForeignAction } from '../operation-node/references-node.js';
6
6
  import { CompiledQuery } from '../query-compiler/compiled-query.js';
7
- import { RawBuilder } from '../raw-builder/raw-builder.js';
8
7
  import { Compilable } from '../util/compilable.js';
9
8
  import { PrimitiveValue } from '../util/object-utils.js';
10
9
  import { ColumnDefinitionBuilder, ColumnDefinitionBuilderInterface } from './column-definition-builder.js';
11
10
  import { AnyRawBuilder } from '../query-builder/type-utils.js';
12
11
  import { QueryId } from '../util/query-id.js';
13
12
  import { QueryExecutor } from '../query-executor/query-executor.js';
13
+ import { DataTypeExpression } from '../parser/data-type-parser.js';
14
+ import { ForeignKeyConstraintBuilder, ForeignKeyConstraintBuilderInterface } from './foreign-key-constraint-builder.js';
14
15
  export declare class AlterTableBuilder {
15
16
  #private;
16
17
  constructor(props: AlterTableBuilderProps);
@@ -19,13 +20,16 @@ export declare class AlterTableBuilder {
19
20
  alterColumn(column: string): AlterColumnBuilder;
20
21
  dropColumn(column: string): AlterTableExecutor;
21
22
  renameColumn(column: string, newColumn: string): AlterTableExecutor;
22
- addColumn(columnName: string, dataType: ColumnDataType | RawBuilder): AlterTableAddColumnBuilder;
23
+ addColumn(columnName: string, dataType: DataTypeExpression): AlterTableAddColumnBuilder;
23
24
  /**
24
25
  * Creates an `alter table modify column` query. The `modify column` statement
25
26
  * is only implemeted by MySQL and oracle AFAIK. On other databases you
26
27
  * should use the `alterColumn` method.
27
28
  */
28
- modifyColumn(columnName: string, dataType: ColumnDataType | RawBuilder): AlterTableModifyColumnBuilder;
29
+ modifyColumn(columnName: string, dataType: DataTypeExpression): AlterTableModifyColumnBuilder;
30
+ addUniqueConstraint(constraintName: string, columns: string[]): AlterTableExecutor;
31
+ addCheckConstraint(constraintName: string, checkExpression: string): AlterTableExecutor;
32
+ addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[]): AlterTableAddForeignKeyConstraintBuilder;
29
33
  }
30
34
  export interface AlterTableBuilderProps {
31
35
  readonly queryId: QueryId;
@@ -53,13 +57,14 @@ export declare class AlterTableExecutor implements OperationNodeSource, Compilab
53
57
  }
54
58
  export interface AlterTableExecutorProps extends AlterTableBuilderProps {
55
59
  }
56
- export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableAddColumnBuilder> {
60
+ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableAddColumnBuilder>, OperationNodeSource, Compilable {
57
61
  #private;
58
62
  constructor(props: AlterTableAddColumnBuilderProps);
59
63
  increments(): AlterTableAddColumnBuilder;
60
64
  primaryKey(): AlterTableAddColumnBuilder;
61
65
  references(ref: string): AlterTableAddColumnBuilder;
62
- onDelete(onDelete: OnDelete): AlterTableAddColumnBuilder;
66
+ onDelete(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
67
+ onUpdate(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
63
68
  unique(): AlterTableAddColumnBuilder;
64
69
  notNull(): AlterTableAddColumnBuilder;
65
70
  defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableAddColumnBuilder;
@@ -71,13 +76,14 @@ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuild
71
76
  export interface AlterTableAddColumnBuilderProps extends AlterTableBuilderProps {
72
77
  readonly columnBuilder: ColumnDefinitionBuilder;
73
78
  }
74
- export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder> {
79
+ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder>, OperationNodeSource, Compilable {
75
80
  #private;
76
81
  constructor(props: AlterTableModifyColumnBuilderProps);
77
82
  increments(): AlterTableModifyColumnBuilder;
78
83
  primaryKey(): AlterTableModifyColumnBuilder;
79
84
  references(ref: string): AlterTableModifyColumnBuilder;
80
- onDelete(onDelete: OnDelete): AlterTableModifyColumnBuilder;
85
+ onDelete(onDelete: OnModifyForeignAction): AlterTableModifyColumnBuilder;
86
+ onUpdate(onUpdate: OnModifyForeignAction): AlterTableModifyColumnBuilder;
81
87
  unique(): AlterTableModifyColumnBuilder;
82
88
  notNull(): AlterTableModifyColumnBuilder;
83
89
  defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableModifyColumnBuilder;
@@ -89,3 +95,15 @@ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBu
89
95
  export interface AlterTableModifyColumnBuilderProps extends AlterTableBuilderProps {
90
96
  readonly columnBuilder: ColumnDefinitionBuilder;
91
97
  }
98
+ export declare class AlterTableAddForeignKeyConstraintBuilder implements ForeignKeyConstraintBuilderInterface<AlterTableAddForeignKeyConstraintBuilder>, OperationNodeSource, Compilable {
99
+ #private;
100
+ constructor(props: AlterTableAddForeignKeyConstraintBuilderProps);
101
+ onDelete(onDelete: OnModifyForeignAction): AlterTableAddForeignKeyConstraintBuilder;
102
+ onUpdate(onUpdate: OnModifyForeignAction): AlterTableAddForeignKeyConstraintBuilder;
103
+ toOperationNode(): AlterTableNode;
104
+ compile(): CompiledQuery;
105
+ execute(): Promise<void>;
106
+ }
107
+ export interface AlterTableAddForeignKeyConstraintBuilderProps extends AlterTableBuilderProps {
108
+ readonly constraintBuilder: ForeignKeyConstraintBuilder;
109
+ }