relq 1.0.77 → 1.0.79

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 (113) hide show
  1. package/dist/cjs/condition/array-condition-builder.cjs +1 -1
  2. package/dist/cjs/condition/condition-collector.cjs +1 -1
  3. package/dist/cjs/condition/fulltext-condition-builder.cjs +1 -1
  4. package/dist/cjs/condition/geometric-condition-builder.cjs +1 -1
  5. package/dist/cjs/condition/index.cjs +2 -1
  6. package/dist/cjs/condition/jsonb-condition-builder.cjs +291 -3
  7. package/dist/cjs/condition/network-condition-builder.cjs +1 -1
  8. package/dist/cjs/condition/postgis-condition-builder.cjs +1 -1
  9. package/dist/cjs/condition/range-condition-builder.cjs +1 -1
  10. package/dist/cjs/copy/copy-builder.cjs +1 -1
  11. package/dist/cjs/core/query-builder.cjs +1 -1
  12. package/dist/cjs/count/count-builder.cjs +1 -1
  13. package/dist/cjs/cte/cte-builder.cjs +1 -1
  14. package/dist/cjs/delete/delete-builder.cjs +1 -1
  15. package/dist/cjs/function/create-function-builder.cjs +1 -1
  16. package/dist/cjs/functions/advanced-functions.cjs +1 -1
  17. package/dist/cjs/functions/case-builder.cjs +1 -1
  18. package/dist/cjs/functions/geometric-functions.cjs +1 -1
  19. package/dist/cjs/functions/network-functions.cjs +1 -1
  20. package/dist/cjs/functions/sql-functions.cjs +1 -1
  21. package/dist/cjs/indexing/create-index-builder.cjs +1 -1
  22. package/dist/cjs/indexing/drop-index-builder.cjs +1 -1
  23. package/dist/cjs/insert/conflict-builder.cjs +1 -1
  24. package/dist/cjs/insert/insert-builder.cjs +1 -1
  25. package/dist/cjs/maintenance/vacuum-builder.cjs +1 -1
  26. package/dist/cjs/pubsub/listen-notify-builder.cjs +1 -1
  27. package/dist/cjs/pubsub/listener-connection.cjs +1 -1
  28. package/dist/cjs/raw/raw-query-builder.cjs +1 -1
  29. package/dist/cjs/schema/schema-builder.cjs +1 -1
  30. package/dist/cjs/schema-definition/pg-schema/table-definition/sql-generation.cjs +1 -1
  31. package/dist/cjs/select/aggregate-builder.cjs +1 -1
  32. package/dist/cjs/select/join-builder.cjs +1 -1
  33. package/dist/cjs/select/join-condition-builder.cjs +1 -1
  34. package/dist/cjs/select/join-many-condition-builder.cjs +1 -1
  35. package/dist/cjs/select/scalar-query-builder.cjs +1 -1
  36. package/dist/cjs/select/scalar-select-builder.cjs +1 -1
  37. package/dist/cjs/select/select-builder.cjs +1 -1
  38. package/dist/cjs/sequence/sequence-builder.cjs +1 -1
  39. package/dist/cjs/table/alter-table-builder.cjs +1 -1
  40. package/dist/cjs/table/constraint-builder.cjs +1 -1
  41. package/dist/cjs/table/create-table-builder.cjs +1 -1
  42. package/dist/cjs/table/partition-builder.cjs +1 -1
  43. package/dist/cjs/table/truncate-builder.cjs +1 -1
  44. package/dist/cjs/transaction/transaction-builder.cjs +1 -1
  45. package/dist/cjs/trigger/create-trigger-builder.cjs +1 -1
  46. package/dist/cjs/update/array-update-builder.cjs +1 -1
  47. package/dist/cjs/update/index.cjs +2 -1
  48. package/dist/cjs/update/jsonb-update-builder.cjs +173 -16
  49. package/dist/cjs/update/update-builder.cjs +1 -1
  50. package/dist/cjs/utils/index.cjs +1 -1
  51. package/dist/cjs/utils/pg-format.cjs +383 -0
  52. package/dist/cjs/view/create-view-builder.cjs +1 -1
  53. package/dist/cjs/window/window-builder.cjs +1 -1
  54. package/dist/cockroachdb-builder.d.ts +16 -2
  55. package/dist/config.d.ts +16 -2
  56. package/dist/dsql-builder.d.ts +16 -2
  57. package/dist/esm/condition/array-condition-builder.js +1 -1
  58. package/dist/esm/condition/condition-collector.js +1 -1
  59. package/dist/esm/condition/fulltext-condition-builder.js +1 -1
  60. package/dist/esm/condition/geometric-condition-builder.js +1 -1
  61. package/dist/esm/condition/index.js +1 -1
  62. package/dist/esm/condition/jsonb-condition-builder.js +289 -2
  63. package/dist/esm/condition/network-condition-builder.js +1 -1
  64. package/dist/esm/condition/postgis-condition-builder.js +1 -1
  65. package/dist/esm/condition/range-condition-builder.js +1 -1
  66. package/dist/esm/copy/copy-builder.js +1 -1
  67. package/dist/esm/core/query-builder.js +1 -1
  68. package/dist/esm/count/count-builder.js +1 -1
  69. package/dist/esm/cte/cte-builder.js +1 -1
  70. package/dist/esm/delete/delete-builder.js +1 -1
  71. package/dist/esm/function/create-function-builder.js +1 -1
  72. package/dist/esm/functions/advanced-functions.js +1 -1
  73. package/dist/esm/functions/case-builder.js +1 -1
  74. package/dist/esm/functions/geometric-functions.js +1 -1
  75. package/dist/esm/functions/network-functions.js +1 -1
  76. package/dist/esm/functions/sql-functions.js +1 -1
  77. package/dist/esm/indexing/create-index-builder.js +1 -1
  78. package/dist/esm/indexing/drop-index-builder.js +1 -1
  79. package/dist/esm/insert/conflict-builder.js +1 -1
  80. package/dist/esm/insert/insert-builder.js +1 -1
  81. package/dist/esm/maintenance/vacuum-builder.js +1 -1
  82. package/dist/esm/pubsub/listen-notify-builder.js +1 -1
  83. package/dist/esm/pubsub/listener-connection.js +1 -1
  84. package/dist/esm/raw/raw-query-builder.js +1 -1
  85. package/dist/esm/schema/schema-builder.js +1 -1
  86. package/dist/esm/schema-definition/pg-schema/table-definition/sql-generation.js +1 -1
  87. package/dist/esm/select/aggregate-builder.js +1 -1
  88. package/dist/esm/select/join-builder.js +1 -1
  89. package/dist/esm/select/join-condition-builder.js +1 -1
  90. package/dist/esm/select/join-many-condition-builder.js +1 -1
  91. package/dist/esm/select/scalar-query-builder.js +1 -1
  92. package/dist/esm/select/scalar-select-builder.js +1 -1
  93. package/dist/esm/select/select-builder.js +1 -1
  94. package/dist/esm/sequence/sequence-builder.js +1 -1
  95. package/dist/esm/table/alter-table-builder.js +1 -1
  96. package/dist/esm/table/constraint-builder.js +1 -1
  97. package/dist/esm/table/create-table-builder.js +1 -1
  98. package/dist/esm/table/partition-builder.js +1 -1
  99. package/dist/esm/table/truncate-builder.js +1 -1
  100. package/dist/esm/transaction/transaction-builder.js +1 -1
  101. package/dist/esm/trigger/create-trigger-builder.js +1 -1
  102. package/dist/esm/update/array-update-builder.js +1 -1
  103. package/dist/esm/update/index.js +1 -1
  104. package/dist/esm/update/jsonb-update-builder.js +171 -15
  105. package/dist/esm/update/update-builder.js +1 -1
  106. package/dist/esm/utils/index.js +1 -1
  107. package/dist/esm/utils/pg-format.js +375 -0
  108. package/dist/esm/view/create-view-builder.js +1 -1
  109. package/dist/esm/window/window-builder.js +1 -1
  110. package/dist/index.d.ts +581 -77
  111. package/dist/nile-builder.d.ts +16 -2
  112. package/dist/pg-builder.d.ts +16 -2
  113. package/package.json +1 -2
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ArrayConditionCollector = void 0;
7
7
  exports.buildArrayConditionSQL = buildArrayConditionSQL;
8
- const pg_format_1 = __importDefault(require("pg-format"));
8
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
9
9
  const array_string_condition_builder_1 = require("./array-string-condition-builder.cjs");
10
10
  const array_numeric_condition_builder_1 = require("./array-numeric-condition-builder.cjs");
11
11
  const array_specialized_condition_builder_1 = require("./array-specialized-condition-builder.cjs");
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ConditionCollector = void 0;
7
7
  exports.buildConditionSQL = buildConditionSQL;
8
8
  exports.buildConditionsSQL = buildConditionsSQL;
9
- const pg_format_1 = __importDefault(require("pg-format"));
9
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
10
10
  const jsonb_condition_builder_1 = require("./jsonb-condition-builder.cjs");
11
11
  const array_condition_builder_1 = require("./array-condition-builder.cjs");
12
12
  const fulltext_condition_builder_1 = require("./fulltext-condition-builder.cjs");
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FulltextConditionCollector = void 0;
7
7
  exports.buildFulltextConditionSQL = buildFulltextConditionSQL;
8
- const pg_format_1 = __importDefault(require("pg-format"));
8
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
9
9
  class FulltextConditionCollector {
10
10
  parent;
11
11
  constructor(parent) {
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GeometricConditionCollector = void 0;
7
7
  exports.buildGeometricConditionSQL = buildGeometricConditionSQL;
8
- const pg_format_1 = __importDefault(require("pg-format"));
8
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
9
9
  function geometricToSQL(input) {
10
10
  if (typeof input === 'string')
11
11
  return input;
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildPostgisConditionSQL = exports.PostgisConditionCollector = exports.buildNetworkConditionSQL = exports.NetworkConditionCollector = exports.buildGeometricConditionSQL = exports.GeometricConditionCollector = exports.buildRangeConditionSQL = exports.RangeConditionCollector = exports.buildFulltextConditionSQL = exports.FulltextConditionCollector = exports.buildArrayConditionSQL = exports.ArrayConditionCollector = exports.buildJsonbConditionSQL = exports.JsonbConditionCollector = exports.buildConditionsSQL = exports.buildConditionSQL = exports.ConditionCollector = void 0;
3
+ exports.buildPostgisConditionSQL = exports.PostgisConditionCollector = exports.buildNetworkConditionSQL = exports.NetworkConditionCollector = exports.buildGeometricConditionSQL = exports.GeometricConditionCollector = exports.buildRangeConditionSQL = exports.RangeConditionCollector = exports.buildFulltextConditionSQL = exports.FulltextConditionCollector = exports.buildArrayConditionSQL = exports.ArrayConditionCollector = exports.buildJsonbConditionSQL = exports.JsonbArrayConditionBuilder = exports.JsonbConditionCollector = exports.buildConditionsSQL = exports.buildConditionSQL = exports.ConditionCollector = void 0;
4
4
  var condition_collector_1 = require("./condition-collector.cjs");
5
5
  Object.defineProperty(exports, "ConditionCollector", { enumerable: true, get: function () { return condition_collector_1.ConditionCollector; } });
6
6
  Object.defineProperty(exports, "buildConditionSQL", { enumerable: true, get: function () { return condition_collector_1.buildConditionSQL; } });
7
7
  Object.defineProperty(exports, "buildConditionsSQL", { enumerable: true, get: function () { return condition_collector_1.buildConditionsSQL; } });
8
8
  var jsonb_condition_builder_1 = require("./jsonb-condition-builder.cjs");
9
9
  Object.defineProperty(exports, "JsonbConditionCollector", { enumerable: true, get: function () { return jsonb_condition_builder_1.JsonbConditionCollector; } });
10
+ Object.defineProperty(exports, "JsonbArrayConditionBuilder", { enumerable: true, get: function () { return jsonb_condition_builder_1.JsonbArrayConditionBuilder; } });
10
11
  Object.defineProperty(exports, "buildJsonbConditionSQL", { enumerable: true, get: function () { return jsonb_condition_builder_1.buildJsonbConditionSQL; } });
11
12
  var array_condition_builder_1 = require("./array-condition-builder.cjs");
12
13
  Object.defineProperty(exports, "ArrayConditionCollector", { enumerable: true, get: function () { return array_condition_builder_1.ArrayConditionCollector; } });
@@ -3,14 +3,116 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.JsonbConditionCollector = void 0;
6
+ exports.JsonbConditionCollector = exports.JsonbArrayConditionBuilder = void 0;
7
7
  exports.buildJsonbConditionSQL = buildJsonbConditionSQL;
8
- const pg_format_1 = __importDefault(require("pg-format"));
8
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
9
+ class JsonbArrayConditionBuilder {
10
+ parent;
11
+ constructor(parent) {
12
+ this.parent = parent;
13
+ }
14
+ length(column, operator, value) {
15
+ this.parent.conditions.push({
16
+ method: 'jsonb_array_length',
17
+ column,
18
+ values: { operator, value }
19
+ });
20
+ return this.parent;
21
+ }
22
+ isEmpty(column) {
23
+ this.parent.conditions.push({
24
+ method: 'jsonb_array_empty',
25
+ column,
26
+ values: true
27
+ });
28
+ return this.parent;
29
+ }
30
+ isNotEmpty(column) {
31
+ this.parent.conditions.push({
32
+ method: 'jsonb_array_empty',
33
+ column,
34
+ values: false
35
+ });
36
+ return this.parent;
37
+ }
38
+ contains(column, element) {
39
+ this.parent.conditions.push({
40
+ method: 'jsonb_array_contains_element',
41
+ column,
42
+ values: element
43
+ });
44
+ return this.parent;
45
+ }
46
+ containsAll(column, elements) {
47
+ this.parent.conditions.push({
48
+ method: 'jsonb_array_contains_all',
49
+ column,
50
+ values: elements
51
+ });
52
+ return this.parent;
53
+ }
54
+ containsAny(column, elements) {
55
+ this.parent.conditions.push({
56
+ method: 'jsonb_array_contains_any',
57
+ column,
58
+ values: elements
59
+ });
60
+ return this.parent;
61
+ }
62
+ any(column, key, operator, value) {
63
+ this.parent.conditions.push({
64
+ method: 'jsonb_array_any',
65
+ column,
66
+ values: { key, operator, value }
67
+ });
68
+ return this.parent;
69
+ }
70
+ all(column, key, operator, value) {
71
+ this.parent.conditions.push({
72
+ method: 'jsonb_array_all',
73
+ column,
74
+ values: { key, operator, value }
75
+ });
76
+ return this.parent;
77
+ }
78
+ anyIn(column, key, values) {
79
+ this.parent.conditions.push({
80
+ method: 'jsonb_array_any_in',
81
+ column,
82
+ values: { key, values }
83
+ });
84
+ return this.parent;
85
+ }
86
+ anyLike(column, key, pattern) {
87
+ this.parent.conditions.push({
88
+ method: 'jsonb_array_any_like',
89
+ column,
90
+ values: { key, pattern }
91
+ });
92
+ return this.parent;
93
+ }
94
+ anyILike(column, key, pattern) {
95
+ this.parent.conditions.push({
96
+ method: 'jsonb_array_any_ilike',
97
+ column,
98
+ values: { key, pattern }
99
+ });
100
+ return this.parent;
101
+ }
102
+ }
103
+ exports.JsonbArrayConditionBuilder = JsonbArrayConditionBuilder;
9
104
  class JsonbConditionCollector {
10
105
  parent;
106
+ _array = null;
11
107
  constructor(parent) {
12
108
  this.parent = parent;
13
109
  }
110
+ get array() {
111
+ if (!this._array) {
112
+ this._array = new JsonbArrayConditionBuilder(this.parent);
113
+ }
114
+ return this._array;
115
+ }
14
116
  contains(column, value) {
15
117
  this.parent.conditions.push({
16
118
  method: 'jsonb_contains',
@@ -51,6 +153,30 @@ class JsonbConditionCollector {
51
153
  });
52
154
  return this.parent;
53
155
  }
156
+ isNull(column) {
157
+ this.parent.conditions.push({
158
+ method: 'jsonb_is_null',
159
+ column,
160
+ values: true
161
+ });
162
+ return this.parent;
163
+ }
164
+ isNotNull(column) {
165
+ this.parent.conditions.push({
166
+ method: 'jsonb_is_null',
167
+ column,
168
+ values: false
169
+ });
170
+ return this.parent;
171
+ }
172
+ typeOf(column, path, type) {
173
+ this.parent.conditions.push({
174
+ method: 'jsonb_typeof',
175
+ column,
176
+ values: { path: Array.isArray(path) ? path : [path], type }
177
+ });
178
+ return this.parent;
179
+ }
54
180
  extract(column, path) {
55
181
  this.parent.conditions.push({
56
182
  method: 'jsonb_extract',
@@ -91,6 +217,14 @@ class JsonbConditionCollector {
91
217
  });
92
218
  return this.parent;
93
219
  }
220
+ extractNotEqual(column, path, value) {
221
+ this.parent.conditions.push({
222
+ method: 'jsonb_extract_not_equal',
223
+ column,
224
+ values: { path, value }
225
+ });
226
+ return this.parent;
227
+ }
94
228
  extractGreaterThan(column, path, value) {
95
229
  this.parent.conditions.push({
96
230
  method: 'jsonb_extract_gt',
@@ -99,6 +233,14 @@ class JsonbConditionCollector {
99
233
  });
100
234
  return this.parent;
101
235
  }
236
+ extractGreaterThanOrEqual(column, path, value) {
237
+ this.parent.conditions.push({
238
+ method: 'jsonb_extract_gte',
239
+ column,
240
+ values: { path, value }
241
+ });
242
+ return this.parent;
243
+ }
102
244
  extractLessThan(column, path, value) {
103
245
  this.parent.conditions.push({
104
246
  method: 'jsonb_extract_lt',
@@ -107,6 +249,22 @@ class JsonbConditionCollector {
107
249
  });
108
250
  return this.parent;
109
251
  }
252
+ extractLessThanOrEqual(column, path, value) {
253
+ this.parent.conditions.push({
254
+ method: 'jsonb_extract_lte',
255
+ column,
256
+ values: { path, value }
257
+ });
258
+ return this.parent;
259
+ }
260
+ extractBetween(column, path, min, max) {
261
+ this.parent.conditions.push({
262
+ method: 'jsonb_extract_between',
263
+ column,
264
+ values: { path, min, max }
265
+ });
266
+ return this.parent;
267
+ }
110
268
  extractIn(column, path, values) {
111
269
  this.parent.conditions.push({
112
270
  method: 'jsonb_extract_in',
@@ -115,6 +273,46 @@ class JsonbConditionCollector {
115
273
  });
116
274
  return this.parent;
117
275
  }
276
+ extractNotIn(column, path, values) {
277
+ this.parent.conditions.push({
278
+ method: 'jsonb_extract_not_in',
279
+ column,
280
+ values: { path, values }
281
+ });
282
+ return this.parent;
283
+ }
284
+ extractLike(column, path, pattern) {
285
+ this.parent.conditions.push({
286
+ method: 'jsonb_extract_like',
287
+ column,
288
+ values: { path, pattern }
289
+ });
290
+ return this.parent;
291
+ }
292
+ extractILike(column, path, pattern) {
293
+ this.parent.conditions.push({
294
+ method: 'jsonb_extract_ilike',
295
+ column,
296
+ values: { path, pattern }
297
+ });
298
+ return this.parent;
299
+ }
300
+ extractIsNull(column, path) {
301
+ this.parent.conditions.push({
302
+ method: 'jsonb_extract_is_null',
303
+ column,
304
+ values: { path, isNull: true }
305
+ });
306
+ return this.parent;
307
+ }
308
+ extractIsNotNull(column, path) {
309
+ this.parent.conditions.push({
310
+ method: 'jsonb_extract_is_null',
311
+ column,
312
+ values: { path, isNull: false }
313
+ });
314
+ return this.parent;
315
+ }
118
316
  }
119
317
  exports.JsonbConditionCollector = JsonbConditionCollector;
120
318
  function buildJsonbConditionSQL(condition) {
@@ -130,6 +328,13 @@ function buildJsonbConditionSQL(condition) {
130
328
  return (0, pg_format_1.default)('%I ?| ARRAY[%s]', column, values.map(k => (0, pg_format_1.default)('%L', k)).join(','));
131
329
  case 'jsonb_has_all_keys':
132
330
  return (0, pg_format_1.default)('%I ?& ARRAY[%s]', column, values.map(k => (0, pg_format_1.default)('%L', k)).join(','));
331
+ case 'jsonb_is_null':
332
+ return values ? (0, pg_format_1.default)('%I IS NULL', column) : (0, pg_format_1.default)('%I IS NOT NULL', column);
333
+ case 'jsonb_typeof': {
334
+ const { path, type } = values;
335
+ const pathStr = `{${path.join(',')}}`;
336
+ return (0, pg_format_1.default)('jsonb_typeof(%I#>%L) = %L', column, pathStr, type);
337
+ }
133
338
  case 'jsonb_extract':
134
339
  return (0, pg_format_1.default)('%I#>%L', column, `{${values.join(',')}}`);
135
340
  case 'jsonb_extract_text':
@@ -142,17 +347,100 @@ function buildJsonbConditionSQL(condition) {
142
347
  const { path, value } = values;
143
348
  return (0, pg_format_1.default)('%I#>>%L = %L', column, `{${path.join(',')}}`, value);
144
349
  }
350
+ case 'jsonb_extract_not_equal': {
351
+ const { path, value } = values;
352
+ return (0, pg_format_1.default)('%I#>>%L != %L', column, `{${path.join(',')}}`, value);
353
+ }
145
354
  case 'jsonb_extract_gt': {
146
355
  const { path, value } = values;
147
356
  return (0, pg_format_1.default)('(%I#>>%L)::numeric > %L', column, `{${path.join(',')}}`, value);
148
357
  }
358
+ case 'jsonb_extract_gte': {
359
+ const { path, value } = values;
360
+ return (0, pg_format_1.default)('(%I#>>%L)::numeric >= %L', column, `{${path.join(',')}}`, value);
361
+ }
149
362
  case 'jsonb_extract_lt': {
150
363
  const { path, value } = values;
151
364
  return (0, pg_format_1.default)('(%I#>>%L)::numeric < %L', column, `{${path.join(',')}}`, value);
152
365
  }
366
+ case 'jsonb_extract_lte': {
367
+ const { path, value } = values;
368
+ return (0, pg_format_1.default)('(%I#>>%L)::numeric <= %L', column, `{${path.join(',')}}`, value);
369
+ }
370
+ case 'jsonb_extract_between': {
371
+ const { path, min, max } = values;
372
+ return (0, pg_format_1.default)('(%I#>>%L)::numeric BETWEEN %L AND %L', column, `{${path.join(',')}}`, min, max);
373
+ }
153
374
  case 'jsonb_extract_in': {
154
375
  const { path, values: inValues } = values;
155
- return (0, pg_format_1.default)('%I#>>%L IN %L', column, `{${path.join(',')}}`, inValues);
376
+ const inList = inValues.map(v => (0, pg_format_1.default)('%L', v)).join(', ');
377
+ return (0, pg_format_1.default)('%I#>>%L IN (%s)', column, `{${path.join(',')}}`, inList);
378
+ }
379
+ case 'jsonb_extract_not_in': {
380
+ const { path, values: inValues } = values;
381
+ const inList = inValues.map(v => (0, pg_format_1.default)('%L', v)).join(', ');
382
+ return (0, pg_format_1.default)('%I#>>%L NOT IN (%s)', column, `{${path.join(',')}}`, inList);
383
+ }
384
+ case 'jsonb_extract_like': {
385
+ const { path, pattern } = values;
386
+ return (0, pg_format_1.default)('%I#>>%L LIKE %L', column, `{${path.join(',')}}`, pattern);
387
+ }
388
+ case 'jsonb_extract_ilike': {
389
+ const { path, pattern } = values;
390
+ return (0, pg_format_1.default)('%I#>>%L ILIKE %L', column, `{${path.join(',')}}`, pattern);
391
+ }
392
+ case 'jsonb_extract_is_null': {
393
+ const { path, isNull } = values;
394
+ const pathStr = `{${path.join(',')}}`;
395
+ if (isNull) {
396
+ return (0, pg_format_1.default)('(%I#>%L IS NULL OR %I#>%L = \'null\'::jsonb)', column, pathStr, column, pathStr);
397
+ }
398
+ return (0, pg_format_1.default)('(%I#>%L IS NOT NULL AND %I#>%L != \'null\'::jsonb)', column, pathStr, column, pathStr);
399
+ }
400
+ case 'jsonb_array_length': {
401
+ const { operator, value } = values;
402
+ return (0, pg_format_1.default)('jsonb_array_length(COALESCE(%I, \'[]\'::jsonb)) %s %s', column, operator, value);
403
+ }
404
+ case 'jsonb_array_empty': {
405
+ const isEmpty = values;
406
+ if (isEmpty) {
407
+ return (0, pg_format_1.default)('jsonb_array_length(COALESCE(%I, \'[]\'::jsonb)) = 0', column);
408
+ }
409
+ return (0, pg_format_1.default)('jsonb_array_length(COALESCE(%I, \'[]\'::jsonb)) > 0', column);
410
+ }
411
+ case 'jsonb_array_contains_element':
412
+ return (0, pg_format_1.default)('%I @> %L', column, JSON.stringify([values]));
413
+ case 'jsonb_array_contains_all':
414
+ return (0, pg_format_1.default)('%I @> %L', column, JSON.stringify(values));
415
+ case 'jsonb_array_contains_any': {
416
+ const elements = values;
417
+ const conditions = elements.map(el => (0, pg_format_1.default)('%I @> %L', column, JSON.stringify([el])));
418
+ return `(${conditions.join(' OR ')})`;
419
+ }
420
+ case 'jsonb_array_any': {
421
+ const { key, operator, value } = values;
422
+ const isNumeric = typeof value === 'number';
423
+ const cast = isNumeric ? '::numeric' : '';
424
+ return (0, pg_format_1.default)('EXISTS (SELECT 1 FROM jsonb_array_elements(COALESCE(%I, \'[]\'::jsonb)) elem WHERE (elem->>%L)%s %s %L)', column, key, cast, operator, value);
425
+ }
426
+ case 'jsonb_array_all': {
427
+ const { key, operator, value } = values;
428
+ const isNumeric = typeof value === 'number';
429
+ const cast = isNumeric ? '::numeric' : '';
430
+ return (0, pg_format_1.default)('NOT EXISTS (SELECT 1 FROM jsonb_array_elements(COALESCE(%I, \'[]\'::jsonb)) elem WHERE NOT ((elem->>%L)%s %s %L))', column, key, cast, operator, value);
431
+ }
432
+ case 'jsonb_array_any_in': {
433
+ const { key, values: inValues } = values;
434
+ const inList = inValues.map(v => (0, pg_format_1.default)('%L', v)).join(', ');
435
+ return (0, pg_format_1.default)('EXISTS (SELECT 1 FROM jsonb_array_elements(COALESCE(%I, \'[]\'::jsonb)) elem WHERE elem->>%L IN (%s))', column, key, inList);
436
+ }
437
+ case 'jsonb_array_any_like': {
438
+ const { key, pattern } = values;
439
+ return (0, pg_format_1.default)('EXISTS (SELECT 1 FROM jsonb_array_elements(COALESCE(%I, \'[]\'::jsonb)) elem WHERE elem->>%L LIKE %L)', column, key, pattern);
440
+ }
441
+ case 'jsonb_array_any_ilike': {
442
+ const { key, pattern } = values;
443
+ return (0, pg_format_1.default)('EXISTS (SELECT 1 FROM jsonb_array_elements(COALESCE(%I, \'[]\'::jsonb)) elem WHERE elem->>%L ILIKE %L)', column, key, pattern);
156
444
  }
157
445
  default:
158
446
  return '';
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NetworkConditionCollector = void 0;
7
7
  exports.buildNetworkConditionSQL = buildNetworkConditionSQL;
8
- const pg_format_1 = __importDefault(require("pg-format"));
8
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
9
9
  function networkToSQL(address) {
10
10
  if (typeof address === 'string')
11
11
  return address;
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PostgisConditionCollector = void 0;
7
7
  exports.buildPostgisConditionSQL = buildPostgisConditionSQL;
8
- const pg_format_1 = __importDefault(require("pg-format"));
8
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
9
9
  function isGeoJson(input) {
10
10
  return typeof input === 'object' && input !== null && 'type' in input && 'coordinates' in input;
11
11
  }
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RangeConditionCollector = void 0;
7
7
  exports.buildRangeConditionSQL = buildRangeConditionSQL;
8
- const pg_format_1 = __importDefault(require("pg-format"));
8
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
9
9
  function rangeToSQL(range) {
10
10
  if (typeof range === 'string')
11
11
  return range;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CopyFromBuilder = exports.CopyToBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const relq_errors_1 = require("../errors/relq-errors.cjs");
9
9
  class CopyToBuilder {
10
10
  tableName;
@@ -31,7 +31,7 @@ const explain_builder_1 = require("../explain/explain-builder.cjs");
31
31
  const listen_notify_builder_1 = require("../pubsub/listen-notify-builder.cjs");
32
32
  const vacuum_builder_1 = require("../maintenance/vacuum-builder.cjs");
33
33
  const copy_builder_1 = require("../copy/copy-builder.cjs");
34
- const pg_format_1 = __importDefault(require("pg-format"));
34
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
35
35
  class TypedSelectBuilder {
36
36
  builder;
37
37
  constructor(builder) {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CountBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const condition_collector_1 = require("../condition/condition-collector.cjs");
9
9
  class CountBuilder {
10
10
  tableName;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CTEBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const select_builder_1 = require("../select/select-builder.cjs");
9
9
  const insert_builder_1 = require("../insert/insert-builder.cjs");
10
10
  const update_builder_1 = require("../update/update-builder.cjs");
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DeleteBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const condition_collector_1 = require("../condition/condition-collector.cjs");
9
9
  const select_builder_1 = require("../select/select-builder.cjs");
10
10
  const count_builder_1 = require("../count/count-builder.cjs");
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DropFunctionBuilder = exports.CreateFunctionBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const relq_errors_1 = require("../errors/relq-errors.cjs");
9
9
  class CreateFunctionBuilder {
10
10
  functionName;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Conditional = exports.Aggregate = exports.Jsonb = exports.Array = exports.ConditionalFunctions = exports.AggregateFunctions = exports.JsonbFunctions = exports.ArrayFunctions = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const sql_functions_1 = require("./sql-functions.cjs");
9
9
  class ArrayFunctions {
10
10
  static array_length(array, dimension = 1) {
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CaseBuilder = void 0;
7
7
  exports.Case = Case;
8
- const pg_format_1 = __importDefault(require("pg-format"));
8
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
9
9
  class CaseBuilder {
10
10
  expression;
11
11
  whenClauses = [];
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GeometricFunctions = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const sql_functions_1 = require("./sql-functions.cjs");
9
9
  class GeometricFunctions {
10
10
  static area(column) {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NetworkFunctions = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const sql_functions_1 = require("./sql-functions.cjs");
9
9
  class NetworkFunctions {
10
10
  static abbrev(column) {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Math = exports.DateTime = exports.String = exports.MathFunctions = exports.DateTimeFunctions = exports.StringFunctions = exports.SqlFunction = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  class SqlFunction {
9
9
  expression;
10
10
  constructor(expression) {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CreateIndexBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  class CreateIndexBuilder {
9
9
  tableName;
10
10
  indexName;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ReindexBuilder = exports.DropIndexBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  class DropIndexBuilder {
9
9
  indexName;
10
10
  ifExistsFlag = false;
@@ -8,7 +8,7 @@ exports.createExcludedProxy = createExcludedProxy;
8
8
  exports.createRowProxy = createRowProxy;
9
9
  exports.createSqlHelpers = createSqlHelpers;
10
10
  exports.buildConflictUpdateSql = buildConflictUpdateSql;
11
- const pg_format_1 = __importDefault(require("pg-format"));
11
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
12
12
  function isColumnRef(value) {
13
13
  return typeof value === 'object' && value !== null && value.__type === 'column_ref';
14
14
  }
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.InsertBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const case_converter_1 = require("../utils/case-converter.cjs");
9
9
  const select_builder_1 = require("../select/select-builder.cjs");
10
10
  const count_builder_1 = require("../count/count-builder.cjs");
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AnalyzeBuilder = exports.VacuumBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  class VacuumBuilder {
9
9
  tables = [];
10
10
  columns = new Map();
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NotifyBuilder = exports.UnlistenBuilder = exports.ListenBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  class ListenBuilder {
9
9
  channelName;
10
10
  constructor(channelName) {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ListenerConnection = void 0;
7
7
  const events_1 = require("events");
8
8
  const pg_1 = require("pg");
9
- const pg_format_1 = __importDefault(require("pg-format"));
9
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
10
10
  class ListenerConnection extends events_1.EventEmitter {
11
11
  client = null;
12
12
  config;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RawQueryBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("pg-format"));
7
+ const pg_format_1 = __importDefault(require("../utils/pg-format.cjs"));
8
8
  const relq_errors_1 = require("../errors/relq-errors.cjs");
9
9
  class RawQueryBuilder {
10
10
  query;