prisma-sql 1.75.5 → 1.75.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,27 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- var net = require('net');
5
- var tls = require('tls');
6
- var crypto = require('crypto');
7
- var Stream = require('stream');
8
- var perf_hooks = require('perf_hooks');
9
- var os = require('os');
10
- var fs = require('fs');
11
4
  var generatorHelper = require('@prisma/generator-helper');
12
5
  var schemaParser = require('@dee-wan/schema-parser');
13
6
  var promises = require('fs/promises');
14
7
  var path = require('path');
15
8
 
16
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
-
18
- var net__default = /*#__PURE__*/_interopDefault(net);
19
- var tls__default = /*#__PURE__*/_interopDefault(tls);
20
- var crypto__default = /*#__PURE__*/_interopDefault(crypto);
21
- var Stream__default = /*#__PURE__*/_interopDefault(Stream);
22
- var os__default = /*#__PURE__*/_interopDefault(os);
23
- var fs__default = /*#__PURE__*/_interopDefault(fs);
24
-
25
9
  var __defProp = Object.defineProperty;
26
10
  var __defProps = Object.defineProperties;
27
11
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
@@ -32,30 +16,22 @@ var __propIsEnum = Object.prototype.propertyIsEnumerable;
32
16
  var __typeError = (msg) => {
33
17
  throw TypeError(msg);
34
18
  };
35
- var __pow = Math.pow;
36
19
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
37
- var __spreadValues = (a, b2) => {
38
- for (var prop in b2 || (b2 = {}))
39
- if (__hasOwnProp.call(b2, prop))
40
- __defNormalProp(a, prop, b2[prop]);
20
+ var __spreadValues = (a, b) => {
21
+ for (var prop in b || (b = {}))
22
+ if (__hasOwnProp.call(b, prop))
23
+ __defNormalProp(a, prop, b[prop]);
41
24
  if (__getOwnPropSymbols)
42
- for (var prop of __getOwnPropSymbols(b2)) {
43
- if (__propIsEnum.call(b2, prop))
44
- __defNormalProp(a, prop, b2[prop]);
25
+ for (var prop of __getOwnPropSymbols(b)) {
26
+ if (__propIsEnum.call(b, prop))
27
+ __defNormalProp(a, prop, b[prop]);
45
28
  }
46
29
  return a;
47
30
  };
48
- var __spreadProps = (a, b2) => __defProps(a, __getOwnPropDescs(b2));
49
- var __esm = (fn, res) => function __init() {
50
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
51
- };
31
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
52
32
  var __commonJS = (cb, mod) => function __require() {
53
33
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
54
34
  };
55
- var __export = (target, all) => {
56
- for (var name in all)
57
- __defProp(target, name, { get: all[name], enumerable: true });
58
- };
59
35
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
60
36
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
61
37
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
@@ -89,2247 +65,19 @@ var __async = (__this, __arguments, generator) => {
89
65
  });
90
66
  };
91
67
 
92
- // node_modules/postgres/src/query.js
93
- function cachedError(xs) {
94
- if (originCache.has(xs))
95
- return originCache.get(xs);
96
- const x = Error.stackTraceLimit;
97
- Error.stackTraceLimit = 4;
98
- originCache.set(xs, new Error());
99
- Error.stackTraceLimit = x;
100
- return originCache.get(xs);
101
- }
102
- var originCache, originStackCache, originError, CLOSE, Query;
103
- var init_query = __esm({
104
- "node_modules/postgres/src/query.js"() {
105
- originCache = /* @__PURE__ */ new Map();
106
- originStackCache = /* @__PURE__ */ new Map();
107
- originError = /* @__PURE__ */ Symbol("OriginError");
108
- CLOSE = {};
109
- Query = class extends Promise {
110
- constructor(strings, args, handler, canceller, options = {}) {
111
- let resolve3, reject;
112
- super((a, b2) => {
113
- resolve3 = a;
114
- reject = b2;
115
- });
116
- this.tagged = Array.isArray(strings.raw);
117
- this.strings = strings;
118
- this.args = args;
119
- this.handler = handler;
120
- this.canceller = canceller;
121
- this.options = options;
122
- this.state = null;
123
- this.statement = null;
124
- this.resolve = (x) => (this.active = false, resolve3(x));
125
- this.reject = (x) => (this.active = false, reject(x));
126
- this.active = false;
127
- this.cancelled = null;
128
- this.executed = false;
129
- this.signature = "";
130
- this[originError] = this.handler.debug ? new Error() : this.tagged && cachedError(this.strings);
131
- }
132
- get origin() {
133
- return (this.handler.debug ? this[originError].stack : this.tagged && originStackCache.has(this.strings) ? originStackCache.get(this.strings) : originStackCache.set(this.strings, this[originError].stack).get(this.strings)) || "";
134
- }
135
- static get [Symbol.species]() {
136
- return Promise;
137
- }
138
- cancel() {
139
- return this.canceller && (this.canceller(this), this.canceller = null);
140
- }
141
- simple() {
142
- this.options.simple = true;
143
- this.options.prepare = false;
144
- return this;
145
- }
146
- readable() {
147
- return __async(this, null, function* () {
148
- this.simple();
149
- this.streaming = true;
150
- return this;
151
- });
152
- }
153
- writable() {
154
- return __async(this, null, function* () {
155
- this.simple();
156
- this.streaming = true;
157
- return this;
158
- });
159
- }
160
- cursor(rows = 1, fn) {
161
- this.options.simple = false;
162
- if (typeof rows === "function") {
163
- fn = rows;
164
- rows = 1;
165
- }
166
- this.cursorRows = rows;
167
- if (typeof fn === "function")
168
- return this.cursorFn = fn, this;
169
- let prev;
170
- return {
171
- [Symbol.asyncIterator]: () => ({
172
- next: () => {
173
- if (this.executed && !this.active)
174
- return { done: true };
175
- prev && prev();
176
- const promise = new Promise((resolve3, reject) => {
177
- this.cursorFn = (value) => {
178
- resolve3({ value, done: false });
179
- return new Promise((r) => prev = r);
180
- };
181
- this.resolve = () => (this.active = false, resolve3({ done: true }));
182
- this.reject = (x) => (this.active = false, reject(x));
183
- });
184
- this.execute();
185
- return promise;
186
- },
187
- return() {
188
- prev && prev(CLOSE);
189
- return { done: true };
190
- }
191
- })
192
- };
193
- }
194
- describe() {
195
- this.options.simple = false;
196
- this.onlyDescribe = this.options.prepare = true;
197
- return this;
198
- }
199
- stream() {
200
- throw new Error(".stream has been renamed to .forEach");
201
- }
202
- forEach(fn) {
203
- this.forEachFn = fn;
204
- this.handle();
205
- return this;
206
- }
207
- raw() {
208
- this.isRaw = true;
209
- return this;
210
- }
211
- values() {
212
- this.isRaw = "values";
213
- return this;
214
- }
215
- handle() {
216
- return __async(this, null, function* () {
217
- !this.executed && (this.executed = true) && (yield 1) && this.handler(this);
218
- });
219
- }
220
- execute() {
221
- this.handle();
222
- return this;
223
- }
224
- then() {
225
- this.handle();
226
- return super.then.apply(this, arguments);
227
- }
228
- catch() {
229
- this.handle();
230
- return super.catch.apply(this, arguments);
231
- }
232
- finally() {
233
- this.handle();
234
- return super.finally.apply(this, arguments);
235
- }
236
- };
237
- }
238
- });
239
-
240
- // node_modules/postgres/src/errors.js
241
- function connection(x, options, socket) {
242
- const { host, port } = socket || options;
243
- const error = Object.assign(
244
- new Error("write " + x + " " + (options.path || host + ":" + port)),
245
- {
246
- code: x,
247
- errno: x,
248
- address: options.path || host
249
- },
250
- options.path ? {} : { port }
251
- );
252
- Error.captureStackTrace(error, connection);
253
- return error;
254
- }
255
- function postgres(x) {
256
- const error = new PostgresError(x);
257
- Error.captureStackTrace(error, postgres);
258
- return error;
259
- }
260
- function generic(code, message) {
261
- const error = Object.assign(new Error(code + ": " + message), { code });
262
- Error.captureStackTrace(error, generic);
263
- return error;
264
- }
265
- function notSupported(x) {
266
- const error = Object.assign(
267
- new Error(x + " (B) is not supported"),
268
- {
269
- code: "MESSAGE_NOT_SUPPORTED",
270
- name: x
271
- }
272
- );
273
- Error.captureStackTrace(error, notSupported);
274
- return error;
275
- }
276
- var PostgresError, Errors;
277
- var init_errors = __esm({
278
- "node_modules/postgres/src/errors.js"() {
279
- PostgresError = class extends Error {
280
- constructor(x) {
281
- super(x.message);
282
- this.name = this.constructor.name;
283
- Object.assign(this, x);
284
- }
285
- };
286
- Errors = {
287
- connection,
288
- postgres,
289
- generic,
290
- notSupported
291
- };
292
- }
293
- });
294
-
295
- // node_modules/postgres/src/types.js
296
- function handleValue(x, parameters, types2, options) {
297
- let value = x instanceof Parameter ? x.value : x;
298
- if (value === void 0) {
299
- x instanceof Parameter ? x.value = options.transform.undefined : value = x = options.transform.undefined;
300
- if (value === void 0)
301
- throw Errors.generic("UNDEFINED_VALUE", "Undefined values are not allowed");
302
- }
303
- return "$" + types2.push(
304
- x instanceof Parameter ? (parameters.push(x.value), x.array ? x.array[x.type || inferType(x.value)] || x.type || firstIsString(x.value) : x.type) : (parameters.push(x), inferType(x))
305
- );
306
- }
307
- function stringify(q, string, value, parameters, types2, options) {
308
- for (let i = 1; i < q.strings.length; i++) {
309
- string += stringifyValue(string, value, parameters, types2, options) + q.strings[i];
310
- value = q.args[i];
311
- }
312
- return string;
313
- }
314
- function stringifyValue(string, value, parameters, types2, o) {
315
- return value instanceof Builder ? value.build(string, parameters, types2, o) : value instanceof Query ? fragment(value, parameters, types2, o) : value instanceof Identifier ? value.value : value && value[0] instanceof Query ? value.reduce((acc, x) => acc + " " + fragment(x, parameters, types2, o), "") : handleValue(value, parameters, types2, o);
316
- }
317
- function fragment(q, parameters, types2, options) {
318
- q.fragment = true;
319
- return stringify(q, q.strings[0], q.args[0], parameters, types2, options);
320
- }
321
- function valuesBuilder(first, parameters, types2, columns, options) {
322
- return first.map(
323
- (row) => "(" + columns.map(
324
- (column) => stringifyValue("values", row[column], parameters, types2, options)
325
- ).join(",") + ")"
326
- ).join(",");
327
- }
328
- function values(first, rest, parameters, types2, options) {
329
- const multi = Array.isArray(first[0]);
330
- const columns = rest.length ? rest.flat() : Object.keys(multi ? first[0] : first);
331
- return valuesBuilder(multi ? first : [first], parameters, types2, columns, options);
332
- }
333
- function select(first, rest, parameters, types2, options) {
334
- typeof first === "string" && (first = [first].concat(rest));
335
- if (Array.isArray(first))
336
- return escapeIdentifiers(first, options);
337
- let value;
338
- const columns = rest.length ? rest.flat() : Object.keys(first);
339
- return columns.map((x) => {
340
- value = first[x];
341
- return (value instanceof Query ? fragment(value, parameters, types2, options) : value instanceof Identifier ? value.value : handleValue(value, parameters, types2, options)) + " as " + escapeIdentifier(options.transform.column.to ? options.transform.column.to(x) : x);
342
- }).join(",");
343
- }
344
- function notTagged() {
345
- throw Errors.generic("NOT_TAGGED_CALL", "Query not called as a tagged template literal");
346
- }
347
- function firstIsString(x) {
348
- if (Array.isArray(x))
349
- return firstIsString(x[0]);
350
- return typeof x === "string" ? 1009 : 0;
351
- }
352
- function typeHandlers(types2) {
353
- return Object.keys(types2).reduce((acc, k) => {
354
- types2[k].from && [].concat(types2[k].from).forEach((x) => acc.parsers[x] = types2[k].parse);
355
- if (types2[k].serialize) {
356
- acc.serializers[types2[k].to] = types2[k].serialize;
357
- types2[k].from && [].concat(types2[k].from).forEach((x) => acc.serializers[x] = types2[k].serialize);
358
- }
359
- return acc;
360
- }, { parsers: {}, serializers: {} });
361
- }
362
- function escapeIdentifiers(xs, { transform: { column } }) {
363
- return xs.map((x) => escapeIdentifier(column.to ? column.to(x) : x)).join(",");
364
- }
365
- function arrayEscape(x) {
366
- return x.replace(escapeBackslash, "\\\\").replace(escapeQuote, '\\"');
367
- }
368
- function arrayParserLoop(s, x, parser, typarray) {
369
- const xs = [];
370
- const delimiter = typarray === 1020 ? ";" : ",";
371
- for (; s.i < x.length; s.i++) {
372
- s.char = x[s.i];
373
- if (s.quoted) {
374
- if (s.char === "\\") {
375
- s.str += x[++s.i];
376
- } else if (s.char === '"') {
377
- xs.push(parser ? parser(s.str) : s.str);
378
- s.str = "";
379
- s.quoted = x[s.i + 1] === '"';
380
- s.last = s.i + 2;
381
- } else {
382
- s.str += s.char;
383
- }
384
- } else if (s.char === '"') {
385
- s.quoted = true;
386
- } else if (s.char === "{") {
387
- s.last = ++s.i;
388
- xs.push(arrayParserLoop(s, x, parser, typarray));
389
- } else if (s.char === "}") {
390
- s.quoted = false;
391
- s.last < s.i && xs.push(parser ? parser(x.slice(s.last, s.i)) : x.slice(s.last, s.i));
392
- s.last = s.i + 1;
393
- break;
394
- } else if (s.char === delimiter && s.p !== "}" && s.p !== '"') {
395
- xs.push(parser ? parser(x.slice(s.last, s.i)) : x.slice(s.last, s.i));
396
- s.last = s.i + 1;
397
- }
398
- s.p = s.char;
399
- }
400
- s.last < s.i && xs.push(parser ? parser(x.slice(s.last, s.i + 1)) : x.slice(s.last, s.i + 1));
401
- return xs;
402
- }
403
- function createJsonTransform(fn) {
404
- return function jsonTransform(x, column) {
405
- return typeof x === "object" && x !== null && (column.type === 114 || column.type === 3802) ? Array.isArray(x) ? x.map((x2) => jsonTransform(x2, column)) : Object.entries(x).reduce((acc, [k, v]) => Object.assign(acc, { [fn(k)]: jsonTransform(v, column) }), {}) : x;
406
- };
407
- }
408
- var types, NotTagged, Identifier, Parameter, Builder, defaultHandlers, builders, serializers, parsers, mergeUserTypes, escapeIdentifier, inferType, escapeBackslash, escapeQuote, arraySerializer, arrayParserState, arrayParser, toCamel, toPascal, toKebab, fromCamel, fromPascal, fromKebab, camel, pascal, kebab;
409
- var init_types = __esm({
410
- "node_modules/postgres/src/types.js"() {
411
- init_query();
412
- init_errors();
413
- types = {
414
- string: {
415
- to: 25,
416
- from: null,
417
- // defaults to string
418
- serialize: (x) => "" + x
419
- },
420
- number: {
421
- to: 0,
422
- from: [21, 23, 26, 700, 701],
423
- serialize: (x) => "" + x,
424
- parse: (x) => +x
425
- },
426
- json: {
427
- to: 114,
428
- from: [114, 3802],
429
- serialize: (x) => JSON.stringify(x),
430
- parse: (x) => JSON.parse(x)
431
- },
432
- boolean: {
433
- to: 16,
434
- from: 16,
435
- serialize: (x) => x === true ? "t" : "f",
436
- parse: (x) => x === "t"
437
- },
438
- date: {
439
- to: 1184,
440
- from: [1082, 1114, 1184],
441
- serialize: (x) => (x instanceof Date ? x : new Date(x)).toISOString(),
442
- parse: (x) => new Date(x)
443
- },
444
- bytea: {
445
- to: 17,
446
- from: 17,
447
- serialize: (x) => "\\x" + Buffer.from(x).toString("hex"),
448
- parse: (x) => Buffer.from(x.slice(2), "hex")
449
- }
450
- };
451
- NotTagged = class {
452
- then() {
453
- notTagged();
454
- }
455
- catch() {
456
- notTagged();
457
- }
458
- finally() {
459
- notTagged();
460
- }
461
- };
462
- Identifier = class extends NotTagged {
463
- constructor(value) {
464
- super();
465
- this.value = escapeIdentifier(value);
466
- }
467
- };
468
- Parameter = class extends NotTagged {
469
- constructor(value, type, array) {
470
- super();
471
- this.value = value;
472
- this.type = type;
473
- this.array = array;
474
- }
475
- };
476
- Builder = class extends NotTagged {
477
- constructor(first, rest) {
478
- super();
479
- this.first = first;
480
- this.rest = rest;
481
- }
482
- build(before, parameters, types2, options) {
483
- const keyword = builders.map(([x, fn]) => ({ fn, i: before.search(x) })).sort((a, b2) => a.i - b2.i).pop();
484
- return keyword.i === -1 ? escapeIdentifiers(this.first, options) : keyword.fn(this.first, this.rest, parameters, types2, options);
485
- }
486
- };
487
- defaultHandlers = typeHandlers(types);
488
- builders = Object.entries({
489
- values,
490
- in: (...xs) => {
491
- const x = values(...xs);
492
- return x === "()" ? "(null)" : x;
493
- },
494
- select,
495
- as: select,
496
- returning: select,
497
- "\\(": select,
498
- update(first, rest, parameters, types2, options) {
499
- return (rest.length ? rest.flat() : Object.keys(first)).map(
500
- (x) => escapeIdentifier(options.transform.column.to ? options.transform.column.to(x) : x) + "=" + stringifyValue("values", first[x], parameters, types2, options)
501
- );
502
- },
503
- insert(first, rest, parameters, types2, options) {
504
- const columns = rest.length ? rest.flat() : Object.keys(Array.isArray(first) ? first[0] : first);
505
- return "(" + escapeIdentifiers(columns, options) + ")values" + valuesBuilder(Array.isArray(first) ? first : [first], parameters, types2, columns, options);
506
- }
507
- }).map(([x, fn]) => [new RegExp("((?:^|[\\s(])" + x + "(?:$|[\\s(]))(?![\\s\\S]*\\1)", "i"), fn]);
508
- serializers = defaultHandlers.serializers;
509
- parsers = defaultHandlers.parsers;
510
- mergeUserTypes = function(types2) {
511
- const user = typeHandlers(types2 || {});
512
- return {
513
- serializers: Object.assign({}, serializers, user.serializers),
514
- parsers: Object.assign({}, parsers, user.parsers)
515
- };
516
- };
517
- escapeIdentifier = function escape(str) {
518
- return '"' + str.replace(/"/g, '""').replace(/\./g, '"."') + '"';
519
- };
520
- inferType = function inferType2(x) {
521
- return x instanceof Parameter ? x.type : x instanceof Date ? 1184 : x instanceof Uint8Array ? 17 : x === true || x === false ? 16 : typeof x === "bigint" ? 20 : Array.isArray(x) ? inferType2(x[0]) : 0;
522
- };
523
- escapeBackslash = /\\/g;
524
- escapeQuote = /"/g;
525
- arraySerializer = function arraySerializer2(xs, serializer, options, typarray) {
526
- if (Array.isArray(xs) === false)
527
- return xs;
528
- if (!xs.length)
529
- return "{}";
530
- const first = xs[0];
531
- const delimiter = typarray === 1020 ? ";" : ",";
532
- if (Array.isArray(first) && !first.type)
533
- return "{" + xs.map((x) => arraySerializer2(x, serializer, options, typarray)).join(delimiter) + "}";
534
- return "{" + xs.map((x) => {
535
- if (x === void 0) {
536
- x = options.transform.undefined;
537
- if (x === void 0)
538
- throw Errors.generic("UNDEFINED_VALUE", "Undefined values are not allowed");
539
- }
540
- return x === null ? "null" : '"' + arrayEscape(serializer ? serializer(x.type ? x.value : x) : "" + x) + '"';
541
- }).join(delimiter) + "}";
542
- };
543
- arrayParserState = {
544
- i: 0,
545
- char: null,
546
- str: "",
547
- quoted: false,
548
- last: 0
549
- };
550
- arrayParser = function arrayParser2(x, parser, typarray) {
551
- arrayParserState.i = arrayParserState.last = 0;
552
- return arrayParserLoop(arrayParserState, x, parser, typarray);
553
- };
554
- toCamel = (x) => {
555
- let str = x[0];
556
- for (let i = 1; i < x.length; i++)
557
- str += x[i] === "_" ? x[++i].toUpperCase() : x[i];
558
- return str;
559
- };
560
- toPascal = (x) => {
561
- let str = x[0].toUpperCase();
562
- for (let i = 1; i < x.length; i++)
563
- str += x[i] === "_" ? x[++i].toUpperCase() : x[i];
564
- return str;
565
- };
566
- toKebab = (x) => x.replace(/_/g, "-");
567
- fromCamel = (x) => x.replace(/([A-Z])/g, "_$1").toLowerCase();
568
- fromPascal = (x) => (x.slice(0, 1) + x.slice(1).replace(/([A-Z])/g, "_$1")).toLowerCase();
569
- fromKebab = (x) => x.replace(/-/g, "_");
570
- toCamel.column = { from: toCamel };
571
- toCamel.value = { from: createJsonTransform(toCamel) };
572
- fromCamel.column = { to: fromCamel };
573
- camel = __spreadValues({}, toCamel);
574
- camel.column.to = fromCamel;
575
- toPascal.column = { from: toPascal };
576
- toPascal.value = { from: createJsonTransform(toPascal) };
577
- fromPascal.column = { to: fromPascal };
578
- pascal = __spreadValues({}, toPascal);
579
- pascal.column.to = fromPascal;
580
- toKebab.column = { from: toKebab };
581
- toKebab.value = { from: createJsonTransform(toKebab) };
582
- fromKebab.column = { to: fromKebab };
583
- kebab = __spreadValues({}, toKebab);
584
- kebab.column.to = fromKebab;
585
- }
586
- });
587
-
588
- // node_modules/postgres/src/result.js
589
- var Result;
590
- var init_result = __esm({
591
- "node_modules/postgres/src/result.js"() {
592
- Result = class extends Array {
593
- constructor() {
594
- super();
595
- Object.defineProperties(this, {
596
- count: { value: null, writable: true },
597
- state: { value: null, writable: true },
598
- command: { value: null, writable: true },
599
- columns: { value: null, writable: true },
600
- statement: { value: null, writable: true }
601
- });
602
- }
603
- static get [Symbol.species]() {
604
- return Array;
605
- }
606
- };
607
- }
608
- });
609
-
610
- // node_modules/postgres/src/queue.js
611
- function Queue(initial = []) {
612
- let xs = initial.slice();
613
- let index = 0;
614
- return {
615
- get length() {
616
- return xs.length - index;
617
- },
618
- remove: (x) => {
619
- const index2 = xs.indexOf(x);
620
- return index2 === -1 ? null : (xs.splice(index2, 1), x);
621
- },
622
- push: (x) => (xs.push(x), x),
623
- shift: () => {
624
- const out = xs[index++];
625
- if (index === xs.length) {
626
- index = 0;
627
- xs = [];
628
- } else {
629
- xs[index - 1] = void 0;
630
- }
631
- return out;
632
- }
633
- };
634
- }
635
- var queue_default;
636
- var init_queue = __esm({
637
- "node_modules/postgres/src/queue.js"() {
638
- queue_default = Queue;
639
- }
640
- });
641
-
642
- // node_modules/postgres/src/bytes.js
643
- function fit(x) {
644
- if (buffer.length - b.i < x) {
645
- const prev = buffer, length = prev.length;
646
- buffer = Buffer.allocUnsafe(length + (length >> 1) + x);
647
- prev.copy(buffer);
648
- }
649
- }
650
- function reset() {
651
- b.i = 0;
652
- return b;
653
- }
654
- var size, buffer, messages, b, bytes_default;
655
- var init_bytes = __esm({
656
- "node_modules/postgres/src/bytes.js"() {
657
- size = 256;
658
- buffer = Buffer.allocUnsafe(size);
659
- messages = "BCcDdEFfHPpQSX".split("").reduce((acc, x) => {
660
- const v = x.charCodeAt(0);
661
- acc[x] = () => {
662
- buffer[0] = v;
663
- b.i = 5;
664
- return b;
665
- };
666
- return acc;
667
- }, {});
668
- b = Object.assign(reset, messages, {
669
- N: String.fromCharCode(0),
670
- i: 0,
671
- inc(x) {
672
- b.i += x;
673
- return b;
674
- },
675
- str(x) {
676
- const length = Buffer.byteLength(x);
677
- fit(length);
678
- b.i += buffer.write(x, b.i, length, "utf8");
679
- return b;
680
- },
681
- i16(x) {
682
- fit(2);
683
- buffer.writeUInt16BE(x, b.i);
684
- b.i += 2;
685
- return b;
686
- },
687
- i32(x, i) {
688
- if (i || i === 0) {
689
- buffer.writeUInt32BE(x, i);
690
- return b;
691
- }
692
- fit(4);
693
- buffer.writeUInt32BE(x, b.i);
694
- b.i += 4;
695
- return b;
696
- },
697
- z(x) {
698
- fit(x);
699
- buffer.fill(0, b.i, b.i + x);
700
- b.i += x;
701
- return b;
702
- },
703
- raw(x) {
704
- buffer = Buffer.concat([buffer.subarray(0, b.i), x]);
705
- b.i = buffer.length;
706
- return b;
707
- },
708
- end(at = 1) {
709
- buffer.writeUInt32BE(b.i - at, at);
710
- const out = buffer.subarray(0, b.i);
711
- b.i = 0;
712
- buffer = Buffer.allocUnsafe(size);
713
- return out;
714
- }
715
- });
716
- bytes_default = b;
717
- }
718
- });
719
- function Connection(options, queues = {}, { onopen = noop, onend = noop, onclose = noop } = {}) {
720
- const {
721
- sslnegotiation,
722
- ssl,
723
- max,
724
- user,
725
- host,
726
- port,
727
- database,
728
- parsers: parsers2,
729
- transform,
730
- onnotice,
731
- onnotify,
732
- onparameter,
733
- max_pipeline,
734
- keep_alive,
735
- backoff: backoff2,
736
- target_session_attrs
737
- } = options;
738
- const sent = queue_default(), id = uid++, backend = { pid: null, secret: null }, idleTimer = timer(end, options.idle_timeout), lifeTimer = timer(end, options.max_lifetime), connectTimer = timer(connectTimedOut, options.connect_timeout);
739
- let socket = null, cancelMessage, errorResponse = null, result = new Result(), incoming = Buffer.alloc(0), needsTypes = options.fetch_types, backendParameters = {}, statements = {}, statementId = Math.random().toString(36).slice(2), statementCount = 1, closedTime = 0, remaining = 0, hostIndex = 0, retries = 0, length = 0, delay = 0, rows = 0, serverSignature = null, nextWriteTimer = null, terminated = false, incomings = null, results = null, initial = null, ending = null, stream = null, chunk = null, ended = null, nonce = null, query = null, final = null;
740
- const connection2 = {
741
- queue: queues.closed,
742
- idleTimer,
743
- connect(query2) {
744
- initial = query2;
745
- reconnect();
746
- },
747
- terminate,
748
- execute,
749
- cancel,
750
- end,
751
- count: 0,
752
- id
753
- };
754
- queues.closed && queues.closed.push(connection2);
755
- return connection2;
756
- function createSocket() {
757
- return __async(this, null, function* () {
758
- let x;
759
- try {
760
- x = options.socket ? yield Promise.resolve(options.socket(options)) : new net__default.default.Socket();
761
- } catch (e) {
762
- error(e);
763
- return;
764
- }
765
- x.on("error", error);
766
- x.on("close", closed);
767
- x.on("drain", drain);
768
- return x;
769
- });
770
- }
771
- function cancel(_0, _1, _2) {
772
- return __async(this, arguments, function* ({ pid, secret }, resolve3, reject) {
773
- try {
774
- cancelMessage = bytes_default().i32(16).i32(80877102).i32(pid).i32(secret).end(16);
775
- yield connect();
776
- socket.once("error", reject);
777
- socket.once("close", resolve3);
778
- } catch (error2) {
779
- reject(error2);
780
- }
781
- });
782
- }
783
- function execute(q) {
784
- if (terminated)
785
- return queryError(q, Errors.connection("CONNECTION_DESTROYED", options));
786
- if (stream)
787
- return queryError(q, Errors.generic("COPY_IN_PROGRESS", "You cannot execute queries during copy"));
788
- if (q.cancelled)
789
- return;
790
- try {
791
- q.state = backend;
792
- query ? sent.push(q) : (query = q, query.active = true);
793
- build(q);
794
- return write(toBuffer(q)) && !q.describeFirst && !q.cursorFn && sent.length < max_pipeline && (!q.options.onexecute || q.options.onexecute(connection2));
795
- } catch (error2) {
796
- sent.length === 0 && write(Sync);
797
- errored(error2);
798
- return true;
799
- }
800
- }
801
- function toBuffer(q) {
802
- if (q.parameters.length >= 65534)
803
- throw Errors.generic("MAX_PARAMETERS_EXCEEDED", "Max number of parameters (65534) exceeded");
804
- return q.options.simple ? bytes_default().Q().str(q.statement.string + bytes_default.N).end() : q.describeFirst ? Buffer.concat([describe(q), Flush]) : q.prepare ? q.prepared ? prepared(q) : Buffer.concat([describe(q), prepared(q)]) : unnamed(q);
805
- }
806
- function describe(q) {
807
- return Buffer.concat([
808
- Parse(q.statement.string, q.parameters, q.statement.types, q.statement.name),
809
- Describe("S", q.statement.name)
810
- ]);
811
- }
812
- function prepared(q) {
813
- return Buffer.concat([
814
- Bind(q.parameters, q.statement.types, q.statement.name, q.cursorName),
815
- q.cursorFn ? Execute("", q.cursorRows) : ExecuteUnnamed
816
- ]);
817
- }
818
- function unnamed(q) {
819
- return Buffer.concat([
820
- Parse(q.statement.string, q.parameters, q.statement.types),
821
- DescribeUnnamed,
822
- prepared(q)
823
- ]);
824
- }
825
- function build(q) {
826
- const parameters = [], types2 = [];
827
- const string = stringify(q, q.strings[0], q.args[0], parameters, types2, options);
828
- !q.tagged && q.args.forEach((x) => handleValue(x, parameters, types2, options));
829
- q.prepare = options.prepare && ("prepare" in q.options ? q.options.prepare : true);
830
- q.string = string;
831
- q.signature = q.prepare && types2 + string;
832
- q.onlyDescribe && delete statements[q.signature];
833
- q.parameters = q.parameters || parameters;
834
- q.prepared = q.prepare && q.signature in statements;
835
- q.describeFirst = q.onlyDescribe || parameters.length && !q.prepared;
836
- q.statement = q.prepared ? statements[q.signature] : { string, types: types2, name: q.prepare ? statementId + statementCount++ : "" };
837
- typeof options.debug === "function" && options.debug(id, string, parameters, types2);
838
- }
839
- function write(x, fn) {
840
- chunk = chunk ? Buffer.concat([chunk, x]) : Buffer.from(x);
841
- if (chunk.length >= 1024)
842
- return nextWrite(fn);
843
- nextWriteTimer === null && (nextWriteTimer = setImmediate(nextWrite));
844
- return true;
845
- }
846
- function nextWrite(fn) {
847
- const x = socket.write(chunk, fn);
848
- nextWriteTimer !== null && clearImmediate(nextWriteTimer);
849
- chunk = nextWriteTimer = null;
850
- return x;
851
- }
852
- function connectTimedOut() {
853
- errored(Errors.connection("CONNECT_TIMEOUT", options, socket));
854
- socket.destroy();
855
- }
856
- function secure() {
857
- return __async(this, null, function* () {
858
- if (sslnegotiation !== "direct") {
859
- write(SSLRequest);
860
- const canSSL = yield new Promise((r) => socket.once("data", (x) => r(x[0] === 83)));
861
- if (!canSSL && ssl === "prefer")
862
- return connected();
863
- }
864
- const options2 = {
865
- socket,
866
- servername: net__default.default.isIP(socket.host) ? void 0 : socket.host
867
- };
868
- if (sslnegotiation === "direct")
869
- options2.ALPNProtocols = ["postgresql"];
870
- if (ssl === "require" || ssl === "allow" || ssl === "prefer")
871
- options2.rejectUnauthorized = false;
872
- else if (typeof ssl === "object")
873
- Object.assign(options2, ssl);
874
- socket.removeAllListeners();
875
- socket = tls__default.default.connect(options2);
876
- socket.on("secureConnect", connected);
877
- socket.on("error", error);
878
- socket.on("close", closed);
879
- socket.on("drain", drain);
880
- });
881
- }
882
- function drain() {
883
- !query && onopen(connection2);
884
- }
885
- function data(x) {
886
- if (incomings) {
887
- incomings.push(x);
888
- remaining -= x.length;
889
- if (remaining > 0)
890
- return;
891
- }
892
- incoming = incomings ? Buffer.concat(incomings, length - remaining) : incoming.length === 0 ? x : Buffer.concat([incoming, x], incoming.length + x.length);
893
- while (incoming.length > 4) {
894
- length = incoming.readUInt32BE(1);
895
- if (length >= incoming.length) {
896
- remaining = length - incoming.length;
897
- incomings = [incoming];
898
- break;
899
- }
900
- try {
901
- handle(incoming.subarray(0, length + 1));
902
- } catch (e) {
903
- query && (query.cursorFn || query.describeFirst) && write(Sync);
904
- errored(e);
905
- }
906
- incoming = incoming.subarray(length + 1);
907
- remaining = 0;
908
- incomings = null;
909
- }
910
- }
911
- function connect() {
912
- return __async(this, null, function* () {
913
- terminated = false;
914
- backendParameters = {};
915
- socket || (socket = yield createSocket());
916
- if (!socket)
917
- return;
918
- connectTimer.start();
919
- if (options.socket)
920
- return ssl ? secure() : connected();
921
- socket.on("connect", ssl ? secure : connected);
922
- if (options.path)
923
- return socket.connect(options.path);
924
- socket.ssl = ssl;
925
- socket.connect(port[hostIndex], host[hostIndex]);
926
- socket.host = host[hostIndex];
927
- socket.port = port[hostIndex];
928
- hostIndex = (hostIndex + 1) % port.length;
929
- });
930
- }
931
- function reconnect() {
932
- setTimeout(connect, closedTime ? Math.max(0, closedTime + delay - perf_hooks.performance.now()) : 0);
933
- }
934
- function connected() {
935
- try {
936
- statements = {};
937
- needsTypes = options.fetch_types;
938
- statementId = Math.random().toString(36).slice(2);
939
- statementCount = 1;
940
- lifeTimer.start();
941
- socket.on("data", data);
942
- keep_alive && socket.setKeepAlive && socket.setKeepAlive(true, 1e3 * keep_alive);
943
- const s = StartupMessage();
944
- write(s);
945
- } catch (err) {
946
- error(err);
947
- }
948
- }
949
- function error(err) {
950
- if (connection2.queue === queues.connecting && options.host[retries + 1])
951
- return;
952
- errored(err);
953
- while (sent.length)
954
- queryError(sent.shift(), err);
955
- }
956
- function errored(err) {
957
- stream && (stream.destroy(err), stream = null);
958
- query && queryError(query, err);
959
- initial && (queryError(initial, err), initial = null);
960
- }
961
- function queryError(query2, err) {
962
- if (query2.reserve)
963
- return query2.reject(err);
964
- if (!err || typeof err !== "object")
965
- err = new Error(err);
966
- "query" in err || "parameters" in err || Object.defineProperties(err, {
967
- stack: { value: err.stack + query2.origin.replace(/.*\n/, "\n"), enumerable: options.debug },
968
- query: { value: query2.string, enumerable: options.debug },
969
- parameters: { value: query2.parameters, enumerable: options.debug },
970
- args: { value: query2.args, enumerable: options.debug },
971
- types: { value: query2.statement && query2.statement.types, enumerable: options.debug }
972
- });
973
- query2.reject(err);
974
- }
975
- function end() {
976
- return ending || (!connection2.reserved && onend(connection2), !connection2.reserved && !initial && !query && sent.length === 0 ? (terminate(), new Promise((r) => socket && socket.readyState !== "closed" ? socket.once("close", r) : r())) : ending = new Promise((r) => ended = r));
977
- }
978
- function terminate() {
979
- terminated = true;
980
- if (stream || query || initial || sent.length)
981
- error(Errors.connection("CONNECTION_DESTROYED", options));
982
- clearImmediate(nextWriteTimer);
983
- if (socket) {
984
- socket.removeListener("data", data);
985
- socket.removeListener("connect", connected);
986
- socket.readyState === "open" && socket.end(bytes_default().X().end());
987
- }
988
- ended && (ended(), ending = ended = null);
989
- }
990
- function closed(hadError) {
991
- return __async(this, null, function* () {
992
- incoming = Buffer.alloc(0);
993
- remaining = 0;
994
- incomings = null;
995
- clearImmediate(nextWriteTimer);
996
- socket.removeListener("data", data);
997
- socket.removeListener("connect", connected);
998
- idleTimer.cancel();
999
- lifeTimer.cancel();
1000
- connectTimer.cancel();
1001
- socket.removeAllListeners();
1002
- socket = null;
1003
- if (initial)
1004
- return reconnect();
1005
- !hadError && (query || sent.length) && error(Errors.connection("CONNECTION_CLOSED", options, socket));
1006
- closedTime = perf_hooks.performance.now();
1007
- hadError && options.shared.retries++;
1008
- delay = (typeof backoff2 === "function" ? backoff2(options.shared.retries) : backoff2) * 1e3;
1009
- onclose(connection2, Errors.connection("CONNECTION_CLOSED", options, socket));
1010
- });
1011
- }
1012
- function handle(xs, x = xs[0]) {
1013
- (x === 68 ? DataRow : (
1014
- // D
1015
- x === 100 ? CopyData : (
1016
- // d
1017
- x === 65 ? NotificationResponse : (
1018
- // A
1019
- x === 83 ? ParameterStatus : (
1020
- // S
1021
- x === 90 ? ReadyForQuery : (
1022
- // Z
1023
- x === 67 ? CommandComplete : (
1024
- // C
1025
- x === 50 ? BindComplete : (
1026
- // 2
1027
- x === 49 ? ParseComplete : (
1028
- // 1
1029
- x === 116 ? ParameterDescription : (
1030
- // t
1031
- x === 84 ? RowDescription : (
1032
- // T
1033
- x === 82 ? Authentication : (
1034
- // R
1035
- x === 110 ? NoData : (
1036
- // n
1037
- x === 75 ? BackendKeyData : (
1038
- // K
1039
- x === 69 ? ErrorResponse : (
1040
- // E
1041
- x === 115 ? PortalSuspended : (
1042
- // s
1043
- x === 51 ? CloseComplete : (
1044
- // 3
1045
- x === 71 ? CopyInResponse : (
1046
- // G
1047
- x === 78 ? NoticeResponse : (
1048
- // N
1049
- x === 72 ? CopyOutResponse : (
1050
- // H
1051
- x === 99 ? CopyDone : (
1052
- // c
1053
- x === 73 ? EmptyQueryResponse : (
1054
- // I
1055
- x === 86 ? FunctionCallResponse : (
1056
- // V
1057
- x === 118 ? NegotiateProtocolVersion : (
1058
- // v
1059
- x === 87 ? CopyBothResponse : (
1060
- // W
1061
- /* c8 ignore next */
1062
- UnknownMessage
1063
- )
1064
- )
1065
- )
1066
- )
1067
- )
1068
- )
1069
- )
1070
- )
1071
- )
1072
- )
1073
- )
1074
- )
1075
- )
1076
- )
1077
- )
1078
- )
1079
- )
1080
- )
1081
- )
1082
- )
1083
- )
1084
- )
1085
- )
1086
- ))(xs);
1087
- }
1088
- function DataRow(x) {
1089
- let index = 7;
1090
- let length2;
1091
- let column;
1092
- let value;
1093
- const row = query.isRaw ? new Array(query.statement.columns.length) : {};
1094
- for (let i = 0; i < query.statement.columns.length; i++) {
1095
- column = query.statement.columns[i];
1096
- length2 = x.readInt32BE(index);
1097
- index += 4;
1098
- value = length2 === -1 ? null : query.isRaw === true ? x.subarray(index, index += length2) : column.parser === void 0 ? x.toString("utf8", index, index += length2) : column.parser.array === true ? column.parser(x.toString("utf8", index + 1, index += length2)) : column.parser(x.toString("utf8", index, index += length2));
1099
- query.isRaw ? row[i] = query.isRaw === true ? value : transform.value.from ? transform.value.from(value, column) : value : row[column.name] = transform.value.from ? transform.value.from(value, column) : value;
1100
- }
1101
- query.forEachFn ? query.forEachFn(transform.row.from ? transform.row.from(row) : row, result) : result[rows++] = transform.row.from ? transform.row.from(row) : row;
1102
- }
1103
- function ParameterStatus(x) {
1104
- const [k, v] = x.toString("utf8", 5, x.length - 1).split(bytes_default.N);
1105
- backendParameters[k] = v;
1106
- if (options.parameters[k] !== v) {
1107
- options.parameters[k] = v;
1108
- onparameter && onparameter(k, v);
1109
- }
1110
- }
1111
- function ReadyForQuery(x) {
1112
- if (query) {
1113
- if (errorResponse) {
1114
- query.retried ? errored(query.retried) : query.prepared && retryRoutines.has(errorResponse.routine) ? retry(query, errorResponse) : errored(errorResponse);
1115
- } else {
1116
- query.resolve(results || result);
1117
- }
1118
- } else if (errorResponse) {
1119
- errored(errorResponse);
1120
- }
1121
- query = results = errorResponse = null;
1122
- result = new Result();
1123
- connectTimer.cancel();
1124
- if (initial) {
1125
- if (target_session_attrs) {
1126
- if (!backendParameters.in_hot_standby || !backendParameters.default_transaction_read_only)
1127
- return fetchState();
1128
- else if (tryNext(target_session_attrs, backendParameters))
1129
- return terminate();
1130
- }
1131
- if (needsTypes) {
1132
- initial.reserve && (initial = null);
1133
- return fetchArrayTypes();
1134
- }
1135
- initial && !initial.reserve && execute(initial);
1136
- options.shared.retries = retries = 0;
1137
- initial = null;
1138
- return;
1139
- }
1140
- while (sent.length && (query = sent.shift()) && (query.active = true, query.cancelled))
1141
- Connection(options).cancel(query.state, query.cancelled.resolve, query.cancelled.reject);
1142
- if (query)
1143
- return;
1144
- connection2.reserved ? !connection2.reserved.release && x[5] === 73 ? ending ? terminate() : (connection2.reserved = null, onopen(connection2)) : connection2.reserved() : ending ? terminate() : onopen(connection2);
1145
- }
1146
- function CommandComplete(x) {
1147
- rows = 0;
1148
- for (let i = x.length - 1; i > 0; i--) {
1149
- if (x[i] === 32 && x[i + 1] < 58 && result.count === null)
1150
- result.count = +x.toString("utf8", i + 1, x.length - 1);
1151
- if (x[i - 1] >= 65) {
1152
- result.command = x.toString("utf8", 5, i);
1153
- result.state = backend;
1154
- break;
1155
- }
1156
- }
1157
- final && (final(), final = null);
1158
- if (result.command === "BEGIN" && max !== 1 && !connection2.reserved)
1159
- return errored(Errors.generic("UNSAFE_TRANSACTION", "Only use sql.begin, sql.reserved or max: 1"));
1160
- if (query.options.simple)
1161
- return BindComplete();
1162
- if (query.cursorFn) {
1163
- result.count && query.cursorFn(result);
1164
- write(Sync);
1165
- }
1166
- }
1167
- function ParseComplete() {
1168
- query.parsing = false;
1169
- }
1170
- function BindComplete() {
1171
- !result.statement && (result.statement = query.statement);
1172
- result.columns = query.statement.columns;
1173
- }
1174
- function ParameterDescription(x) {
1175
- const length2 = x.readUInt16BE(5);
1176
- for (let i = 0; i < length2; ++i)
1177
- !query.statement.types[i] && (query.statement.types[i] = x.readUInt32BE(7 + i * 4));
1178
- query.prepare && (statements[query.signature] = query.statement);
1179
- query.describeFirst && !query.onlyDescribe && (write(prepared(query)), query.describeFirst = false);
1180
- }
1181
- function RowDescription(x) {
1182
- if (result.command) {
1183
- results = results || [result];
1184
- results.push(result = new Result());
1185
- result.count = null;
1186
- query.statement.columns = null;
1187
- }
1188
- const length2 = x.readUInt16BE(5);
1189
- let index = 7;
1190
- let start;
1191
- query.statement.columns = Array(length2);
1192
- for (let i = 0; i < length2; ++i) {
1193
- start = index;
1194
- while (x[index++] !== 0) ;
1195
- const table = x.readUInt32BE(index);
1196
- const number = x.readUInt16BE(index + 4);
1197
- const type = x.readUInt32BE(index + 6);
1198
- query.statement.columns[i] = {
1199
- name: transform.column.from ? transform.column.from(x.toString("utf8", start, index - 1)) : x.toString("utf8", start, index - 1),
1200
- parser: parsers2[type],
1201
- table,
1202
- number,
1203
- type
1204
- };
1205
- index += 18;
1206
- }
1207
- result.statement = query.statement;
1208
- if (query.onlyDescribe)
1209
- return query.resolve(query.statement), write(Sync);
1210
- }
1211
- function Authentication(_0) {
1212
- return __async(this, arguments, function* (x, type = x.readUInt32BE(5)) {
1213
- (type === 3 ? AuthenticationCleartextPassword : type === 5 ? AuthenticationMD5Password : type === 10 ? SASL : type === 11 ? SASLContinue : type === 12 ? SASLFinal : type !== 0 ? UnknownAuth : noop)(x, type);
1214
- });
1215
- }
1216
- function AuthenticationCleartextPassword() {
1217
- return __async(this, null, function* () {
1218
- const payload = yield Pass();
1219
- write(
1220
- bytes_default().p().str(payload).z(1).end()
1221
- );
1222
- });
1223
- }
1224
- function AuthenticationMD5Password(x) {
1225
- return __async(this, null, function* () {
1226
- const payload = "md5" + (yield md5(
1227
- Buffer.concat([
1228
- Buffer.from(yield md5((yield Pass()) + user)),
1229
- x.subarray(9)
1230
- ])
1231
- ));
1232
- write(
1233
- bytes_default().p().str(payload).z(1).end()
1234
- );
1235
- });
1236
- }
1237
- function SASL() {
1238
- return __async(this, null, function* () {
1239
- nonce = (yield crypto__default.default.randomBytes(18)).toString("base64");
1240
- bytes_default().p().str("SCRAM-SHA-256" + bytes_default.N);
1241
- const i = bytes_default.i;
1242
- write(bytes_default.inc(4).str("n,,n=*,r=" + nonce).i32(bytes_default.i - i - 4, i).end());
1243
- });
1244
- }
1245
- function SASLContinue(x) {
1246
- return __async(this, null, function* () {
1247
- const res = x.toString("utf8", 9).split(",").reduce((acc, x2) => (acc[x2[0]] = x2.slice(2), acc), {});
1248
- const saltedPassword = yield crypto__default.default.pbkdf2Sync(
1249
- yield Pass(),
1250
- Buffer.from(res.s, "base64"),
1251
- parseInt(res.i),
1252
- 32,
1253
- "sha256"
1254
- );
1255
- const clientKey = yield hmac(saltedPassword, "Client Key");
1256
- const auth = "n=*,r=" + nonce + ",r=" + res.r + ",s=" + res.s + ",i=" + res.i + ",c=biws,r=" + res.r;
1257
- serverSignature = (yield hmac(yield hmac(saltedPassword, "Server Key"), auth)).toString("base64");
1258
- const payload = "c=biws,r=" + res.r + ",p=" + xor(
1259
- clientKey,
1260
- Buffer.from(yield hmac(yield sha256(clientKey), auth))
1261
- ).toString("base64");
1262
- write(
1263
- bytes_default().p().str(payload).end()
1264
- );
1265
- });
1266
- }
1267
- function SASLFinal(x) {
1268
- if (x.toString("utf8", 9).split(bytes_default.N, 1)[0].slice(2) === serverSignature)
1269
- return;
1270
- errored(Errors.generic("SASL_SIGNATURE_MISMATCH", "The server did not return the correct signature"));
1271
- socket.destroy();
1272
- }
1273
- function Pass() {
1274
- return Promise.resolve(
1275
- typeof options.pass === "function" ? options.pass() : options.pass
1276
- );
1277
- }
1278
- function NoData() {
1279
- result.statement = query.statement;
1280
- result.statement.columns = [];
1281
- if (query.onlyDescribe)
1282
- return query.resolve(query.statement), write(Sync);
1283
- }
1284
- function BackendKeyData(x) {
1285
- backend.pid = x.readUInt32BE(5);
1286
- backend.secret = x.readUInt32BE(9);
1287
- }
1288
- function fetchArrayTypes() {
1289
- return __async(this, null, function* () {
1290
- needsTypes = false;
1291
- const types2 = yield new Query([`
1292
- select b.oid, b.typarray
1293
- from pg_catalog.pg_type a
1294
- left join pg_catalog.pg_type b on b.oid = a.typelem
1295
- where a.typcategory = 'A'
1296
- group by b.oid, b.typarray
1297
- order by b.oid
1298
- `], [], execute);
1299
- types2.forEach(({ oid, typarray }) => addArrayType(oid, typarray));
1300
- });
1301
- }
1302
- function addArrayType(oid, typarray) {
1303
- if (!!options.parsers[typarray] && !!options.serializers[typarray]) return;
1304
- const parser = options.parsers[oid];
1305
- options.shared.typeArrayMap[oid] = typarray;
1306
- options.parsers[typarray] = (xs) => arrayParser(xs, parser, typarray);
1307
- options.parsers[typarray].array = true;
1308
- options.serializers[typarray] = (xs) => arraySerializer(xs, options.serializers[oid], options, typarray);
1309
- }
1310
- function tryNext(x, xs) {
1311
- return x === "read-write" && xs.default_transaction_read_only === "on" || x === "read-only" && xs.default_transaction_read_only === "off" || x === "primary" && xs.in_hot_standby === "on" || x === "standby" && xs.in_hot_standby === "off" || x === "prefer-standby" && xs.in_hot_standby === "off" && options.host[retries];
1312
- }
1313
- function fetchState() {
1314
- const query2 = new Query([`
1315
- show transaction_read_only;
1316
- select pg_catalog.pg_is_in_recovery()
1317
- `], [], execute, null, { simple: true });
1318
- query2.resolve = ([[a], [b2]]) => {
1319
- backendParameters.default_transaction_read_only = a.transaction_read_only;
1320
- backendParameters.in_hot_standby = b2.pg_is_in_recovery ? "on" : "off";
1321
- };
1322
- query2.execute();
1323
- }
1324
- function ErrorResponse(x) {
1325
- if (query) {
1326
- (query.cursorFn || query.describeFirst) && write(Sync);
1327
- errorResponse = Errors.postgres(parseError(x));
1328
- } else {
1329
- errored(Errors.postgres(parseError(x)));
1330
- }
1331
- }
1332
- function retry(q, error2) {
1333
- delete statements[q.signature];
1334
- q.retried = error2;
1335
- execute(q);
1336
- }
1337
- function NotificationResponse(x) {
1338
- if (!onnotify)
1339
- return;
1340
- let index = 9;
1341
- while (x[index++] !== 0) ;
1342
- onnotify(
1343
- x.toString("utf8", 9, index - 1),
1344
- x.toString("utf8", index, x.length - 1)
1345
- );
1346
- }
1347
- function PortalSuspended() {
1348
- return __async(this, null, function* () {
1349
- try {
1350
- const x = yield Promise.resolve(query.cursorFn(result));
1351
- rows = 0;
1352
- x === CLOSE ? write(Close(query.portal)) : (result = new Result(), write(Execute("", query.cursorRows)));
1353
- } catch (err) {
1354
- write(Sync);
1355
- query.reject(err);
1356
- }
1357
- });
1358
- }
1359
- function CloseComplete() {
1360
- result.count && query.cursorFn(result);
1361
- query.resolve(result);
1362
- }
1363
- function CopyInResponse() {
1364
- stream = new Stream__default.default.Writable({
1365
- autoDestroy: true,
1366
- write(chunk2, encoding, callback) {
1367
- socket.write(bytes_default().d().raw(chunk2).end(), callback);
1368
- },
1369
- destroy(error2, callback) {
1370
- callback(error2);
1371
- socket.write(bytes_default().f().str(error2 + bytes_default.N).end());
1372
- stream = null;
1373
- },
1374
- final(callback) {
1375
- socket.write(bytes_default().c().end());
1376
- final = callback;
1377
- stream = null;
1378
- }
1379
- });
1380
- query.resolve(stream);
1381
- }
1382
- function CopyOutResponse() {
1383
- stream = new Stream__default.default.Readable({
1384
- read() {
1385
- socket.resume();
1386
- }
1387
- });
1388
- query.resolve(stream);
1389
- }
1390
- function CopyBothResponse() {
1391
- stream = new Stream__default.default.Duplex({
1392
- autoDestroy: true,
1393
- read() {
1394
- socket.resume();
1395
- },
1396
- /* c8 ignore next 11 */
1397
- write(chunk2, encoding, callback) {
1398
- socket.write(bytes_default().d().raw(chunk2).end(), callback);
1399
- },
1400
- destroy(error2, callback) {
1401
- callback(error2);
1402
- socket.write(bytes_default().f().str(error2 + bytes_default.N).end());
1403
- stream = null;
1404
- },
1405
- final(callback) {
1406
- socket.write(bytes_default().c().end());
1407
- final = callback;
1408
- }
1409
- });
1410
- query.resolve(stream);
1411
- }
1412
- function CopyData(x) {
1413
- stream && (stream.push(x.subarray(5)) || socket.pause());
1414
- }
1415
- function CopyDone() {
1416
- stream && stream.push(null);
1417
- stream = null;
1418
- }
1419
- function NoticeResponse(x) {
1420
- onnotice ? onnotice(parseError(x)) : console.log(parseError(x));
1421
- }
1422
- function EmptyQueryResponse() {
1423
- }
1424
- function FunctionCallResponse() {
1425
- errored(Errors.notSupported("FunctionCallResponse"));
1426
- }
1427
- function NegotiateProtocolVersion() {
1428
- errored(Errors.notSupported("NegotiateProtocolVersion"));
1429
- }
1430
- function UnknownMessage(x) {
1431
- console.error("Postgres.js : Unknown Message:", x[0]);
1432
- }
1433
- function UnknownAuth(x, type) {
1434
- console.error("Postgres.js : Unknown Auth:", type);
1435
- }
1436
- function Bind(parameters, types2, statement = "", portal = "") {
1437
- let prev, type;
1438
- bytes_default().B().str(portal + bytes_default.N).str(statement + bytes_default.N).i16(0).i16(parameters.length);
1439
- parameters.forEach((x, i) => {
1440
- if (x === null)
1441
- return bytes_default.i32(4294967295);
1442
- type = types2[i];
1443
- parameters[i] = x = type in options.serializers ? options.serializers[type](x) : "" + x;
1444
- prev = bytes_default.i;
1445
- bytes_default.inc(4).str(x).i32(bytes_default.i - prev - 4, prev);
1446
- });
1447
- bytes_default.i16(0);
1448
- return bytes_default.end();
1449
- }
1450
- function Parse(str, parameters, types2, name = "") {
1451
- bytes_default().P().str(name + bytes_default.N).str(str + bytes_default.N).i16(parameters.length);
1452
- parameters.forEach((x, i) => bytes_default.i32(types2[i] || 0));
1453
- return bytes_default.end();
1454
- }
1455
- function Describe(x, name = "") {
1456
- return bytes_default().D().str(x).str(name + bytes_default.N).end();
1457
- }
1458
- function Execute(portal = "", rows2 = 0) {
1459
- return Buffer.concat([
1460
- bytes_default().E().str(portal + bytes_default.N).i32(rows2).end(),
1461
- Flush
1462
- ]);
1463
- }
1464
- function Close(portal = "") {
1465
- return Buffer.concat([
1466
- bytes_default().C().str("P").str(portal + bytes_default.N).end(),
1467
- bytes_default().S().end()
1468
- ]);
1469
- }
1470
- function StartupMessage() {
1471
- return cancelMessage || bytes_default().inc(4).i16(3).z(2).str(
1472
- Object.entries(Object.assign(
1473
- {
1474
- user,
1475
- database,
1476
- client_encoding: "UTF8"
1477
- },
1478
- options.connection
1479
- )).filter(([, v]) => v).map(([k, v]) => k + bytes_default.N + v).join(bytes_default.N)
1480
- ).z(2).end(0);
1481
- }
1482
- }
1483
- function parseError(x) {
1484
- const error = {};
1485
- let start = 5;
1486
- for (let i = 5; i < x.length - 1; i++) {
1487
- if (x[i] === 0) {
1488
- error[errorFields[x[start]]] = x.toString("utf8", start + 1, i);
1489
- start = i + 1;
1490
- }
1491
- }
1492
- return error;
1493
- }
1494
- function md5(x) {
1495
- return crypto__default.default.createHash("md5").update(x).digest("hex");
1496
- }
1497
- function hmac(key, x) {
1498
- return crypto__default.default.createHmac("sha256", key).update(x).digest();
1499
- }
1500
- function sha256(x) {
1501
- return crypto__default.default.createHash("sha256").update(x).digest();
1502
- }
1503
- function xor(a, b2) {
1504
- const length = Math.max(a.length, b2.length);
1505
- const buffer2 = Buffer.allocUnsafe(length);
1506
- for (let i = 0; i < length; i++)
1507
- buffer2[i] = a[i] ^ b2[i];
1508
- return buffer2;
1509
- }
1510
- function timer(fn, seconds) {
1511
- seconds = typeof seconds === "function" ? seconds() : seconds;
1512
- if (!seconds)
1513
- return { cancel: noop, start: noop };
1514
- let timer2;
1515
- return {
1516
- cancel() {
1517
- timer2 && (clearTimeout(timer2), timer2 = null);
1518
- },
1519
- start() {
1520
- timer2 && clearTimeout(timer2);
1521
- timer2 = setTimeout(done, seconds * 1e3, arguments);
1522
- }
1523
- };
1524
- function done(args) {
1525
- fn.apply(null, args);
1526
- timer2 = null;
1527
- }
1528
- }
1529
- var connection_default, uid, Sync, Flush, SSLRequest, ExecuteUnnamed, DescribeUnnamed, noop, retryRoutines, errorFields;
1530
- var init_connection = __esm({
1531
- "node_modules/postgres/src/connection.js"() {
1532
- init_types();
1533
- init_errors();
1534
- init_result();
1535
- init_queue();
1536
- init_query();
1537
- init_bytes();
1538
- connection_default = Connection;
1539
- uid = 1;
1540
- Sync = bytes_default().S().end();
1541
- Flush = bytes_default().H().end();
1542
- SSLRequest = bytes_default().i32(8).i32(80877103).end(8);
1543
- ExecuteUnnamed = Buffer.concat([bytes_default().E().str(bytes_default.N).i32(0).end(), Sync]);
1544
- DescribeUnnamed = bytes_default().D().str("S").str(bytes_default.N).end();
1545
- noop = () => {
1546
- };
1547
- retryRoutines = /* @__PURE__ */ new Set([
1548
- "FetchPreparedStatement",
1549
- "RevalidateCachedQuery",
1550
- "transformAssignedExpr"
1551
- ]);
1552
- errorFields = {
1553
- 83: "severity_local",
1554
- // S
1555
- 86: "severity",
1556
- // V
1557
- 67: "code",
1558
- // C
1559
- 77: "message",
1560
- // M
1561
- 68: "detail",
1562
- // D
1563
- 72: "hint",
1564
- // H
1565
- 80: "position",
1566
- // P
1567
- 112: "internal_position",
1568
- // p
1569
- 113: "internal_query",
1570
- // q
1571
- 87: "where",
1572
- // W
1573
- 115: "schema_name",
1574
- // s
1575
- 116: "table_name",
1576
- // t
1577
- 99: "column_name",
1578
- // c
1579
- 100: "data type_name",
1580
- // d
1581
- 110: "constraint_name",
1582
- // n
1583
- 70: "file",
1584
- // F
1585
- 76: "line",
1586
- // L
1587
- 82: "routine"
1588
- // R
1589
- };
1590
- }
1591
- });
1592
-
1593
- // node_modules/postgres/src/subscribe.js
1594
- function Subscribe(postgres2, options) {
1595
- const subscribers = /* @__PURE__ */ new Map(), slot = "postgresjs_" + Math.random().toString(36).slice(2), state = {};
1596
- let connection2, stream, ended = false;
1597
- const sql = subscribe.sql = postgres2(__spreadProps(__spreadValues({}, options), {
1598
- transform: { column: {}, value: {}, row: {} },
1599
- max: 1,
1600
- fetch_types: false,
1601
- idle_timeout: null,
1602
- max_lifetime: null,
1603
- connection: __spreadProps(__spreadValues({}, options.connection), {
1604
- replication: "database"
1605
- }),
1606
- onclose: function() {
1607
- return __async(this, null, function* () {
1608
- if (ended)
1609
- return;
1610
- stream = null;
1611
- state.pid = state.secret = void 0;
1612
- connected(yield init(sql, slot, options.publications));
1613
- subscribers.forEach((event) => event.forEach(({ onsubscribe }) => onsubscribe()));
1614
- });
1615
- },
1616
- no_subscribe: true
1617
- }));
1618
- const end = sql.end, close = sql.close;
1619
- sql.end = () => __async(null, null, function* () {
1620
- ended = true;
1621
- stream && (yield new Promise((r) => (stream.once("close", r), stream.end())));
1622
- return end();
1623
- });
1624
- sql.close = () => __async(null, null, function* () {
1625
- stream && (yield new Promise((r) => (stream.once("close", r), stream.end())));
1626
- return close();
1627
- });
1628
- return subscribe;
1629
- function subscribe(_0, _1) {
1630
- return __async(this, arguments, function* (event, fn, onsubscribe = noop2, onerror = noop2) {
1631
- event = parseEvent(event);
1632
- if (!connection2)
1633
- connection2 = init(sql, slot, options.publications);
1634
- const subscriber = { fn, onsubscribe };
1635
- const fns = subscribers.has(event) ? subscribers.get(event).add(subscriber) : subscribers.set(event, /* @__PURE__ */ new Set([subscriber])).get(event);
1636
- const unsubscribe = () => {
1637
- fns.delete(subscriber);
1638
- fns.size === 0 && subscribers.delete(event);
1639
- };
1640
- return connection2.then((x) => {
1641
- connected(x);
1642
- onsubscribe();
1643
- stream && stream.on("error", onerror);
1644
- return { unsubscribe, state, sql };
1645
- });
1646
- });
1647
- }
1648
- function connected(x) {
1649
- stream = x.stream;
1650
- state.pid = x.state.pid;
1651
- state.secret = x.state.secret;
1652
- }
1653
- function init(sql2, slot2, publications) {
1654
- return __async(this, null, function* () {
1655
- if (!publications)
1656
- throw new Error("Missing publication names");
1657
- const xs = yield sql2.unsafe(
1658
- `CREATE_REPLICATION_SLOT ${slot2} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`
1659
- );
1660
- const [x] = xs;
1661
- const stream2 = yield sql2.unsafe(
1662
- `START_REPLICATION SLOT ${slot2} LOGICAL ${x.consistent_point} (proto_version '1', publication_names '${publications}')`
1663
- ).writable();
1664
- const state2 = {
1665
- lsn: Buffer.concat(x.consistent_point.split("/").map((x2) => Buffer.from(("00000000" + x2).slice(-8), "hex")))
1666
- };
1667
- stream2.on("data", data);
1668
- stream2.on("error", error);
1669
- stream2.on("close", sql2.close);
1670
- return { stream: stream2, state: xs.state };
1671
- function error(e) {
1672
- console.error("Unexpected error during logical streaming - reconnecting", e);
1673
- }
1674
- function data(x2) {
1675
- if (x2[0] === 119) {
1676
- parse(x2.subarray(25), state2, sql2.options.parsers, handle, options.transform);
1677
- } else if (x2[0] === 107 && x2[17]) {
1678
- state2.lsn = x2.subarray(1, 9);
1679
- pong();
1680
- }
1681
- }
1682
- function handle(a, b2) {
1683
- const path = b2.relation.schema + "." + b2.relation.table;
1684
- call("*", a, b2);
1685
- call("*:" + path, a, b2);
1686
- b2.relation.keys.length && call("*:" + path + "=" + b2.relation.keys.map((x2) => a[x2.name]), a, b2);
1687
- call(b2.command, a, b2);
1688
- call(b2.command + ":" + path, a, b2);
1689
- b2.relation.keys.length && call(b2.command + ":" + path + "=" + b2.relation.keys.map((x2) => a[x2.name]), a, b2);
1690
- }
1691
- function pong() {
1692
- const x2 = Buffer.alloc(34);
1693
- x2[0] = "r".charCodeAt(0);
1694
- x2.fill(state2.lsn, 1);
1695
- x2.writeBigInt64BE(BigInt(Date.now() - Date.UTC(2e3, 0, 1)) * BigInt(1e3), 25);
1696
- stream2.write(x2);
1697
- }
1698
- });
1699
- }
1700
- function call(x, a, b2) {
1701
- subscribers.has(x) && subscribers.get(x).forEach(({ fn }) => fn(a, b2, x));
1702
- }
1703
- }
1704
- function Time(x) {
1705
- return new Date(Date.UTC(2e3, 0, 1) + Number(x / BigInt(1e3)));
1706
- }
1707
- function parse(x, state, parsers2, handle, transform) {
1708
- const char = (acc, [k, v]) => (acc[k.charCodeAt(0)] = v, acc);
1709
- Object.entries({
1710
- R: (x2) => {
1711
- let i = 1;
1712
- const r = state[x2.readUInt32BE(i)] = {
1713
- schema: x2.toString("utf8", i += 4, i = x2.indexOf(0, i)) || "pg_catalog",
1714
- table: x2.toString("utf8", i + 1, i = x2.indexOf(0, i + 1)),
1715
- columns: Array(x2.readUInt16BE(i += 2)),
1716
- keys: []
1717
- };
1718
- i += 2;
1719
- let columnIndex = 0, column;
1720
- while (i < x2.length) {
1721
- column = r.columns[columnIndex++] = {
1722
- key: x2[i++],
1723
- name: transform.column.from ? transform.column.from(x2.toString("utf8", i, i = x2.indexOf(0, i))) : x2.toString("utf8", i, i = x2.indexOf(0, i)),
1724
- type: x2.readUInt32BE(i += 1),
1725
- parser: parsers2[x2.readUInt32BE(i)],
1726
- atttypmod: x2.readUInt32BE(i += 4)
1727
- };
1728
- column.key && r.keys.push(column);
1729
- i += 4;
1730
- }
1731
- },
1732
- Y: () => {
1733
- },
1734
- // Type
1735
- O: () => {
1736
- },
1737
- // Origin
1738
- B: (x2) => {
1739
- state.date = Time(x2.readBigInt64BE(9));
1740
- state.lsn = x2.subarray(1, 9);
1741
- },
1742
- I: (x2) => {
1743
- let i = 1;
1744
- const relation = state[x2.readUInt32BE(i)];
1745
- const { row } = tuples(x2, relation.columns, i += 7, transform);
1746
- handle(row, {
1747
- command: "insert",
1748
- relation
1749
- });
1750
- },
1751
- D: (x2) => {
1752
- let i = 1;
1753
- const relation = state[x2.readUInt32BE(i)];
1754
- i += 4;
1755
- const key = x2[i] === 75;
1756
- handle(
1757
- key || x2[i] === 79 ? tuples(x2, relation.columns, i += 3, transform).row : null,
1758
- {
1759
- command: "delete",
1760
- relation,
1761
- key
1762
- }
1763
- );
1764
- },
1765
- U: (x2) => {
1766
- let i = 1;
1767
- const relation = state[x2.readUInt32BE(i)];
1768
- i += 4;
1769
- const key = x2[i] === 75;
1770
- const xs = key || x2[i] === 79 ? tuples(x2, relation.columns, i += 3, transform) : null;
1771
- xs && (i = xs.i);
1772
- const { row } = tuples(x2, relation.columns, i + 3, transform);
1773
- handle(row, {
1774
- command: "update",
1775
- relation,
1776
- key,
1777
- old: xs && xs.row
1778
- });
1779
- },
1780
- T: () => {
1781
- },
1782
- // Truncate,
1783
- C: () => {
1784
- }
1785
- // Commit
1786
- }).reduce(char, {})[x[0]](x);
1787
- }
1788
- function tuples(x, columns, xi, transform) {
1789
- let type, column, value;
1790
- const row = transform.raw ? new Array(columns.length) : {};
1791
- for (let i = 0; i < columns.length; i++) {
1792
- type = x[xi++];
1793
- column = columns[i];
1794
- value = type === 110 ? null : type === 117 ? void 0 : column.parser === void 0 ? x.toString("utf8", xi + 4, xi += 4 + x.readUInt32BE(xi)) : column.parser.array === true ? column.parser(x.toString("utf8", xi + 5, xi += 4 + x.readUInt32BE(xi))) : column.parser(x.toString("utf8", xi + 4, xi += 4 + x.readUInt32BE(xi)));
1795
- transform.raw ? row[i] = transform.raw === true ? value : transform.value.from ? transform.value.from(value, column) : value : row[column.name] = transform.value.from ? transform.value.from(value, column) : value;
1796
- }
1797
- return { i: xi, row: transform.row.from ? transform.row.from(row) : row };
1798
- }
1799
- function parseEvent(x) {
1800
- const xs = x.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i) || [];
1801
- if (!xs)
1802
- throw new Error("Malformed subscribe pattern: " + x);
1803
- const [, command, path, key] = xs;
1804
- return (command || "*") + (path ? ":" + (path.indexOf(".") === -1 ? "public." + path : path) : "") + (key ? "=" + key : "");
1805
- }
1806
- var noop2;
1807
- var init_subscribe = __esm({
1808
- "node_modules/postgres/src/subscribe.js"() {
1809
- noop2 = () => {
1810
- };
1811
- }
1812
- });
1813
- function largeObject(sql, oid, mode = 131072 | 262144) {
1814
- return new Promise((resolve3, reject) => __async(null, null, function* () {
1815
- yield sql.begin((sql2) => __async(null, null, function* () {
1816
- let finish;
1817
- !oid && ([{ oid }] = yield sql2`select lo_creat(-1) as oid`);
1818
- const [{ fd }] = yield sql2`select lo_open(${oid}, ${mode}) as fd`;
1819
- const lo = {
1820
- writable,
1821
- readable,
1822
- close: () => sql2`select lo_close(${fd})`.then(finish),
1823
- tell: () => sql2`select lo_tell64(${fd})`,
1824
- read: (x) => sql2`select loread(${fd}, ${x}) as data`,
1825
- write: (x) => sql2`select lowrite(${fd}, ${x})`,
1826
- truncate: (x) => sql2`select lo_truncate64(${fd}, ${x})`,
1827
- seek: (x, whence = 0) => sql2`select lo_lseek64(${fd}, ${x}, ${whence})`,
1828
- size: () => sql2`
1829
- select
1830
- lo_lseek64(${fd}, location, 0) as position,
1831
- seek.size
1832
- from (
1833
- select
1834
- lo_lseek64($1, 0, 2) as size,
1835
- tell.location
1836
- from (select lo_tell64($1) as location) tell
1837
- ) seek
1838
- `
1839
- };
1840
- resolve3(lo);
1841
- return new Promise((r) => __async(null, null, function* () {
1842
- return finish = r;
1843
- }));
1844
- function readable() {
1845
- return __async(this, arguments, function* ({
1846
- highWaterMark = 2048 * 8,
1847
- start = 0,
1848
- end = Infinity
1849
- } = {}) {
1850
- let max = end - start;
1851
- start && (yield lo.seek(start));
1852
- return new Stream__default.default.Readable({
1853
- highWaterMark,
1854
- read(size2) {
1855
- return __async(this, null, function* () {
1856
- const l = size2 > max ? size2 - max : size2;
1857
- max -= size2;
1858
- const [{ data }] = yield lo.read(l);
1859
- this.push(data);
1860
- if (data.length < size2)
1861
- this.push(null);
1862
- });
1863
- }
1864
- });
1865
- });
1866
- }
1867
- function writable() {
1868
- return __async(this, arguments, function* ({
1869
- highWaterMark = 2048 * 8,
1870
- start = 0
1871
- } = {}) {
1872
- start && (yield lo.seek(start));
1873
- return new Stream__default.default.Writable({
1874
- highWaterMark,
1875
- write(chunk, encoding, callback) {
1876
- lo.write(chunk).then(() => callback(), callback);
1877
- }
1878
- });
1879
- });
1880
- }
1881
- })).catch(reject);
1882
- }));
1883
- }
1884
- var init_large = __esm({
1885
- "node_modules/postgres/src/large.js"() {
1886
- }
1887
- });
1888
-
1889
- // node_modules/postgres/src/index.js
1890
- var src_exports = {};
1891
- __export(src_exports, {
1892
- default: () => src_default
1893
- });
1894
- function Postgres(a, b2) {
1895
- const options = parseOptions(a, b2), subscribe = options.no_subscribe || Subscribe(Postgres, __spreadValues({}, options));
1896
- let ending = false;
1897
- const queries = queue_default(), connecting = queue_default(), reserved = queue_default(), closed = queue_default(), ended = queue_default(), open = queue_default(), busy = queue_default(), full = queue_default(), queues = { connecting, reserved, closed, ended, open, busy, full };
1898
- const connections = [...Array(options.max)].map(() => connection_default(options, queues, { onopen, onend, onclose }));
1899
- const sql = Sql(handler);
1900
- Object.assign(sql, {
1901
- get parameters() {
1902
- return options.parameters;
1903
- },
1904
- largeObject: largeObject.bind(null, sql),
1905
- subscribe,
1906
- CLOSE,
1907
- END: CLOSE,
1908
- PostgresError,
1909
- options,
1910
- reserve,
1911
- listen,
1912
- begin,
1913
- close,
1914
- end
1915
- });
1916
- return sql;
1917
- function Sql(handler2) {
1918
- handler2.debug = options.debug;
1919
- Object.entries(options.types).reduce((acc, [name, type]) => {
1920
- acc[name] = (x) => new Parameter(x, type.to);
1921
- return acc;
1922
- }, typed);
1923
- Object.assign(sql2, {
1924
- types: typed,
1925
- typed,
1926
- unsafe,
1927
- notify,
1928
- array,
1929
- json,
1930
- file
1931
- });
1932
- return sql2;
1933
- function typed(value, type) {
1934
- return new Parameter(value, type);
1935
- }
1936
- function sql2(strings, ...args) {
1937
- const query = strings && Array.isArray(strings.raw) ? new Query(strings, args, handler2, cancel) : typeof strings === "string" && !args.length ? new Identifier(options.transform.column.to ? options.transform.column.to(strings) : strings) : new Builder(strings, args);
1938
- return query;
1939
- }
1940
- function unsafe(string, args = [], options2 = {}) {
1941
- arguments.length === 2 && !Array.isArray(args) && (options2 = args, args = []);
1942
- const query = new Query([string], args, handler2, cancel, __spreadProps(__spreadValues({
1943
- prepare: false
1944
- }, options2), {
1945
- simple: "simple" in options2 ? options2.simple : args.length === 0
1946
- }));
1947
- return query;
1948
- }
1949
- function file(path, args = [], options2 = {}) {
1950
- arguments.length === 2 && !Array.isArray(args) && (options2 = args, args = []);
1951
- const query = new Query([], args, (query2) => {
1952
- fs__default.default.readFile(path, "utf8", (err, string) => {
1953
- if (err)
1954
- return query2.reject(err);
1955
- query2.strings = [string];
1956
- handler2(query2);
1957
- });
1958
- }, cancel, __spreadProps(__spreadValues({}, options2), {
1959
- simple: "simple" in options2 ? options2.simple : args.length === 0
1960
- }));
1961
- return query;
1962
- }
1963
- }
1964
- function listen(name, fn, onlisten) {
1965
- return __async(this, null, function* () {
1966
- const listener = { fn, onlisten };
1967
- const sql2 = listen.sql || (listen.sql = Postgres(__spreadProps(__spreadValues({}, options), {
1968
- max: 1,
1969
- idle_timeout: null,
1970
- max_lifetime: null,
1971
- fetch_types: false,
1972
- onclose() {
1973
- Object.entries(listen.channels).forEach(([name2, { listeners }]) => {
1974
- delete listen.channels[name2];
1975
- Promise.all(listeners.map((l) => listen(name2, l.fn, l.onlisten).catch(() => {
1976
- })));
1977
- });
1978
- },
1979
- onnotify(c, x) {
1980
- c in listen.channels && listen.channels[c].listeners.forEach((l) => l.fn(x));
1981
- }
1982
- })));
1983
- const channels = listen.channels || (listen.channels = {}), exists = name in channels;
1984
- if (exists) {
1985
- channels[name].listeners.push(listener);
1986
- const result2 = yield channels[name].result;
1987
- listener.onlisten && listener.onlisten();
1988
- return { state: result2.state, unlisten };
1989
- }
1990
- channels[name] = { result: sql2`listen ${sql2.unsafe('"' + name.replace(/"/g, '""') + '"')}`, listeners: [listener] };
1991
- const result = yield channels[name].result;
1992
- listener.onlisten && listener.onlisten();
1993
- return { state: result.state, unlisten };
1994
- function unlisten() {
1995
- return __async(this, null, function* () {
1996
- if (name in channels === false)
1997
- return;
1998
- channels[name].listeners = channels[name].listeners.filter((x) => x !== listener);
1999
- if (channels[name].listeners.length)
2000
- return;
2001
- delete channels[name];
2002
- return sql2`unlisten ${sql2.unsafe('"' + name.replace(/"/g, '""') + '"')}`;
2003
- });
2004
- }
2005
- });
2006
- }
2007
- function notify(channel, payload) {
2008
- return __async(this, null, function* () {
2009
- return yield sql`select pg_notify(${channel}, ${"" + payload})`;
2010
- });
2011
- }
2012
- function reserve() {
2013
- return __async(this, null, function* () {
2014
- const queue = queue_default();
2015
- const c = open.length ? open.shift() : yield new Promise((resolve3, reject) => {
2016
- const query = { reserve: resolve3, reject };
2017
- queries.push(query);
2018
- closed.length && connect(closed.shift(), query);
2019
- });
2020
- move(c, reserved);
2021
- c.reserved = () => queue.length ? c.execute(queue.shift()) : move(c, reserved);
2022
- c.reserved.release = true;
2023
- const sql2 = Sql(handler2);
2024
- sql2.release = () => {
2025
- c.reserved = null;
2026
- onopen(c);
2027
- };
2028
- return sql2;
2029
- function handler2(q) {
2030
- c.queue === full ? queue.push(q) : c.execute(q) || move(c, full);
2031
- }
2032
- });
2033
- }
2034
- function begin(options2, fn) {
2035
- return __async(this, null, function* () {
2036
- !fn && (fn = options2, options2 = "");
2037
- const queries2 = queue_default();
2038
- let savepoints = 0, connection2, prepare = null;
2039
- try {
2040
- yield sql.unsafe("begin " + options2.replace(/[^a-z ]/ig, ""), [], { onexecute }).execute();
2041
- return yield Promise.race([
2042
- scope(connection2, fn),
2043
- new Promise((_, reject) => connection2.onclose = reject)
2044
- ]);
2045
- } catch (error) {
2046
- throw error;
2047
- }
2048
- function scope(c, fn2, name) {
2049
- return __async(this, null, function* () {
2050
- const sql2 = Sql(handler2);
2051
- sql2.savepoint = savepoint;
2052
- sql2.prepare = (x) => prepare = x.replace(/[^a-z0-9$-_. ]/gi);
2053
- let uncaughtError, result;
2054
- name && (yield sql2`savepoint ${sql2(name)}`);
2055
- try {
2056
- result = yield new Promise((resolve3, reject) => {
2057
- const x = fn2(sql2);
2058
- Promise.resolve(Array.isArray(x) ? Promise.all(x) : x).then(resolve3, reject);
2059
- });
2060
- if (uncaughtError)
2061
- throw uncaughtError;
2062
- } catch (e) {
2063
- yield name ? sql2`rollback to ${sql2(name)}` : sql2`rollback`;
2064
- throw e instanceof PostgresError && e.code === "25P02" && uncaughtError || e;
2065
- }
2066
- if (!name) {
2067
- prepare ? yield sql2`prepare transaction '${sql2.unsafe(prepare)}'` : yield sql2`commit`;
2068
- }
2069
- return result;
2070
- function savepoint(name2, fn3) {
2071
- if (name2 && Array.isArray(name2.raw))
2072
- return savepoint((sql3) => sql3.apply(sql3, arguments));
2073
- arguments.length === 1 && (fn3 = name2, name2 = null);
2074
- return scope(c, fn3, "s" + savepoints++ + (name2 ? "_" + name2 : ""));
2075
- }
2076
- function handler2(q) {
2077
- q.catch((e) => uncaughtError || (uncaughtError = e));
2078
- c.queue === full ? queries2.push(q) : c.execute(q) || move(c, full);
2079
- }
2080
- });
2081
- }
2082
- function onexecute(c) {
2083
- connection2 = c;
2084
- move(c, reserved);
2085
- c.reserved = () => queries2.length ? c.execute(queries2.shift()) : move(c, reserved);
2086
- }
2087
- });
2088
- }
2089
- function move(c, queue) {
2090
- c.queue.remove(c);
2091
- queue.push(c);
2092
- c.queue = queue;
2093
- queue === open ? c.idleTimer.start() : c.idleTimer.cancel();
2094
- return c;
2095
- }
2096
- function json(x) {
2097
- return new Parameter(x, 3802);
2098
- }
2099
- function array(x, type) {
2100
- if (!Array.isArray(x))
2101
- return array(Array.from(arguments));
2102
- return new Parameter(x, type || (x.length ? inferType(x) || 25 : 0), options.shared.typeArrayMap);
2103
- }
2104
- function handler(query) {
2105
- if (ending)
2106
- return query.reject(Errors.connection("CONNECTION_ENDED", options, options));
2107
- if (open.length)
2108
- return go(open.shift(), query);
2109
- if (closed.length)
2110
- return connect(closed.shift(), query);
2111
- busy.length ? go(busy.shift(), query) : queries.push(query);
2112
- }
2113
- function go(c, query) {
2114
- return c.execute(query) ? move(c, busy) : move(c, full);
2115
- }
2116
- function cancel(query) {
2117
- return new Promise((resolve3, reject) => {
2118
- query.state ? query.active ? connection_default(options).cancel(query.state, resolve3, reject) : query.cancelled = { resolve: resolve3, reject } : (queries.remove(query), query.cancelled = true, query.reject(Errors.generic("57014", "canceling statement due to user request")), resolve3());
2119
- });
2120
- }
2121
- function end() {
2122
- return __async(this, arguments, function* ({ timeout = null } = {}) {
2123
- if (ending)
2124
- return ending;
2125
- yield 1;
2126
- let timer2;
2127
- return ending = Promise.race([
2128
- new Promise((r) => timeout !== null && (timer2 = setTimeout(destroy, timeout * 1e3, r))),
2129
- Promise.all(connections.map((c) => c.end()).concat(
2130
- listen.sql ? listen.sql.end({ timeout: 0 }) : [],
2131
- subscribe.sql ? subscribe.sql.end({ timeout: 0 }) : []
2132
- ))
2133
- ]).then(() => clearTimeout(timer2));
2134
- });
2135
- }
2136
- function close() {
2137
- return __async(this, null, function* () {
2138
- yield Promise.all(connections.map((c) => c.end()));
2139
- });
2140
- }
2141
- function destroy(resolve3) {
2142
- return __async(this, null, function* () {
2143
- yield Promise.all(connections.map((c) => c.terminate()));
2144
- while (queries.length)
2145
- queries.shift().reject(Errors.connection("CONNECTION_DESTROYED", options));
2146
- resolve3();
2147
- });
2148
- }
2149
- function connect(c, query) {
2150
- move(c, connecting);
2151
- c.connect(query);
2152
- return c;
2153
- }
2154
- function onend(c) {
2155
- move(c, ended);
2156
- }
2157
- function onopen(c) {
2158
- if (queries.length === 0)
2159
- return move(c, open);
2160
- let max = Math.ceil(queries.length / (connecting.length + 1)), ready = true;
2161
- while (ready && queries.length && max-- > 0) {
2162
- const query = queries.shift();
2163
- if (query.reserve)
2164
- return query.reserve(c);
2165
- ready = c.execute(query);
2166
- }
2167
- ready ? move(c, busy) : move(c, full);
2168
- }
2169
- function onclose(c, e) {
2170
- move(c, closed);
2171
- c.reserved = null;
2172
- c.onclose && (c.onclose(e), c.onclose = null);
2173
- options.onclose && options.onclose(c.id);
2174
- queries.length && connect(c, queries.shift());
2175
- }
2176
- }
2177
- function parseOptions(a, b2) {
2178
- if (a && a.shared)
2179
- return a;
2180
- const env = process.env, o = (!a || typeof a === "string" ? b2 : a) || {}, { url, multihost } = parseUrl(a), query = [...url.searchParams].reduce((a2, [b3, c]) => (a2[b3] = c, a2), {}), host = o.hostname || o.host || multihost || url.hostname || env.PGHOST || "localhost", port = o.port || url.port || env.PGPORT || 5432, user = o.user || o.username || url.username || env.PGUSERNAME || env.PGUSER || osUsername();
2181
- o.no_prepare && (o.prepare = false);
2182
- query.sslmode && (query.ssl = query.sslmode, delete query.sslmode);
2183
- "timeout" in o && (console.log("The timeout option is deprecated, use idle_timeout instead"), o.idle_timeout = o.timeout);
2184
- query.sslrootcert === "system" && (query.ssl = "verify-full");
2185
- const ints = ["idle_timeout", "connect_timeout", "max_lifetime", "max_pipeline", "backoff", "keep_alive"];
2186
- const defaults = {
2187
- max: globalThis.Cloudflare ? 3 : 10,
2188
- ssl: false,
2189
- sslnegotiation: null,
2190
- idle_timeout: null,
2191
- connect_timeout: 30,
2192
- max_lifetime,
2193
- max_pipeline: 100,
2194
- backoff,
2195
- keep_alive: 60,
2196
- prepare: true,
2197
- debug: false,
2198
- fetch_types: true,
2199
- publications: "alltables",
2200
- target_session_attrs: null
2201
- };
2202
- return __spreadValues(__spreadProps(__spreadValues({
2203
- host: Array.isArray(host) ? host : host.split(",").map((x) => x.split(":")[0]),
2204
- port: Array.isArray(port) ? port : host.split(",").map((x) => parseInt(x.split(":")[1] || port)),
2205
- path: o.path || host.indexOf("/") > -1 && host + "/.s.PGSQL." + port,
2206
- database: o.database || o.db || (url.pathname || "").slice(1) || env.PGDATABASE || user,
2207
- user,
2208
- pass: o.pass || o.password || url.password || env.PGPASSWORD || ""
2209
- }, Object.entries(defaults).reduce(
2210
- (acc, [k, d]) => {
2211
- const value = k in o ? o[k] : k in query ? query[k] === "disable" || query[k] === "false" ? false : query[k] : env["PG" + k.toUpperCase()] || d;
2212
- acc[k] = typeof value === "string" && ints.includes(k) ? +value : value;
2213
- return acc;
2214
- },
2215
- {}
2216
- )), {
2217
- connection: __spreadValues(__spreadValues({
2218
- application_name: env.PGAPPNAME || "postgres.js"
2219
- }, o.connection), Object.entries(query).reduce((acc, [k, v]) => (k in defaults || (acc[k] = v), acc), {})),
2220
- types: o.types || {},
2221
- target_session_attrs: tsa(o, url, env),
2222
- onnotice: o.onnotice,
2223
- onnotify: o.onnotify,
2224
- onclose: o.onclose,
2225
- onparameter: o.onparameter,
2226
- socket: o.socket,
2227
- transform: parseTransform(o.transform || { undefined: void 0 }),
2228
- parameters: {},
2229
- shared: { retries: 0, typeArrayMap: {} }
2230
- }), mergeUserTypes(o.types));
2231
- }
2232
- function tsa(o, url, env) {
2233
- const x = o.target_session_attrs || url.searchParams.get("target_session_attrs") || env.PGTARGETSESSIONATTRS;
2234
- if (!x || ["read-write", "read-only", "primary", "standby", "prefer-standby"].includes(x))
2235
- return x;
2236
- throw new Error("target_session_attrs " + x + " is not supported");
2237
- }
2238
- function backoff(retries) {
2239
- return (0.5 + Math.random() / 2) * Math.min(__pow(3, retries) / 100, 20);
2240
- }
2241
- function max_lifetime() {
2242
- return 60 * (30 + Math.random() * 30);
2243
- }
2244
- function parseTransform(x) {
2245
- return {
2246
- undefined: x.undefined,
2247
- column: {
2248
- from: typeof x.column === "function" ? x.column : x.column && x.column.from,
2249
- to: x.column && x.column.to
2250
- },
2251
- value: {
2252
- from: typeof x.value === "function" ? x.value : x.value && x.value.from,
2253
- to: x.value && x.value.to
2254
- },
2255
- row: {
2256
- from: typeof x.row === "function" ? x.row : x.row && x.row.from,
2257
- to: x.row && x.row.to
2258
- }
2259
- };
2260
- }
2261
- function parseUrl(url) {
2262
- if (!url || typeof url !== "string")
2263
- return { url: { searchParams: /* @__PURE__ */ new Map() } };
2264
- let host = url;
2265
- host = host.slice(host.indexOf("://") + 3).split(/[?/]/)[0];
2266
- host = decodeURIComponent(host.slice(host.indexOf("@") + 1));
2267
- const urlObj = new URL(url.replace(host, host.split(",")[0]));
2268
- return {
2269
- url: {
2270
- username: decodeURIComponent(urlObj.username),
2271
- password: decodeURIComponent(urlObj.password),
2272
- host: urlObj.host,
2273
- hostname: urlObj.hostname,
2274
- port: urlObj.port,
2275
- pathname: urlObj.pathname,
2276
- searchParams: urlObj.searchParams
2277
- },
2278
- multihost: host.indexOf(",") > -1 && host
2279
- };
2280
- }
2281
- function osUsername() {
2282
- try {
2283
- return os__default.default.userInfo().username;
2284
- } catch (_) {
2285
- return process.env.USERNAME || process.env.USER || process.env.LOGNAME;
2286
- }
2287
- }
2288
- var src_default;
2289
- var init_src = __esm({
2290
- "node_modules/postgres/src/index.js"() {
2291
- init_types();
2292
- init_connection();
2293
- init_query();
2294
- init_queue();
2295
- init_errors();
2296
- init_subscribe();
2297
- init_large();
2298
- Object.assign(Postgres, {
2299
- PostgresError,
2300
- toPascal,
2301
- pascal,
2302
- toCamel,
2303
- camel,
2304
- toKebab,
2305
- kebab,
2306
- fromPascal,
2307
- fromCamel,
2308
- fromKebab,
2309
- BigInt: {
2310
- to: 20,
2311
- from: [20],
2312
- parse: (x) => BigInt(x),
2313
- // eslint-disable-line
2314
- serialize: (x) => x.toString()
2315
- }
2316
- });
2317
- src_default = Postgres;
2318
- }
2319
- });
2320
-
2321
68
  // package.json
2322
69
  var require_package = __commonJS({
2323
70
  "package.json"(exports$1, module) {
2324
71
  module.exports = {
2325
72
  name: "prisma-sql",
2326
- version: "1.75.5",
73
+ version: "1.75.7",
2327
74
  description: "Convert Prisma queries to optimized SQL with type safety. 2-7x faster than Prisma Client.",
2328
75
  main: "dist/index.cjs",
2329
76
  module: "dist/index.js",
2330
77
  types: "dist/index.d.ts",
2331
78
  bin: {
2332
- "prisma-sql-generator": "./dist/generator.cjs"
79
+ "prisma-sql-generator": "./dist/generator.cjs",
80
+ "prisma-sql-collect-stats": "./dist/collect-planner-stats.cjs"
2333
81
  },
2334
82
  exports: {
2335
83
  ".": {
@@ -2390,7 +138,8 @@ var require_package = __commonJS({
2390
138
  dependencies: {
2391
139
  "@dee-wan/schema-parser": "1.4.0",
2392
140
  "@prisma/generator-helper": "^7.4.0",
2393
- "@prisma/internals": "^7.4.0"
141
+ "@prisma/internals": "^7.4.0",
142
+ postgres: "^3.4.8"
2394
143
  },
2395
144
  devDependencies: {
2396
145
  "@faker-js/faker": "^10.2.0",
@@ -2404,7 +153,6 @@ var require_package = __commonJS({
2404
153
  "better-sqlite3": "^12.6.2",
2405
154
  "drizzle-kit": "^0.31.8",
2406
155
  "drizzle-orm": "^0.45.1",
2407
- postgres: "^3.4.8",
2408
156
  tsup: "^8.5.1",
2409
157
  tsx: "^4.21.0",
2410
158
  typescript: "^5.9.3",
@@ -3690,9 +1438,9 @@ function findTiebreakerField(model) {
3690
1438
  if (scalarSet.has("id")) return "id";
3691
1439
  return null;
3692
1440
  }
3693
- function hasTiebreaker(orderBy, parse2, field) {
1441
+ function hasTiebreaker(orderBy, parse, field) {
3694
1442
  if (!isNotNullish(orderBy)) return false;
3695
- const normalized = normalizeOrderByInput(orderBy, parse2);
1443
+ const normalized = normalizeOrderByInput(orderBy, parse);
3696
1444
  return normalized.some(
3697
1445
  (obj) => Object.prototype.hasOwnProperty.call(obj, field)
3698
1446
  );
@@ -5000,7 +2748,7 @@ function extractReferencedParams(whereClause, specParams) {
5000
2748
  return { cleanWhere: whereClause, params: [] };
5001
2749
  }
5002
2750
  const allParams = Array.isArray(specParams) ? specParams : typeof specParams.snapshot === "function" ? specParams.snapshot().params : [];
5003
- const refs = Array.from(refSet).sort((a, b2) => a - b2);
2751
+ const refs = Array.from(refSet).sort((a, b) => a - b);
5004
2752
  const params = [];
5005
2753
  const indexMap = /* @__PURE__ */ new Map();
5006
2754
  for (const oldIdx of refs) {
@@ -5008,7 +2756,7 @@ function extractReferencedParams(whereClause, specParams) {
5008
2756
  indexMap.set(oldIdx, params.length);
5009
2757
  }
5010
2758
  let cleanWhere = whereClause;
5011
- const sorted = Array.from(indexMap.entries()).sort((a, b2) => b2[0] - a[0]);
2759
+ const sorted = Array.from(indexMap.entries()).sort((a, b) => b[0] - a[0]);
5012
2760
  for (const [oldIdx, newIdx] of sorted) {
5013
2761
  cleanWhere = cleanWhere.split(`$${oldIdx}`).join(`$${newIdx}`);
5014
2762
  }
@@ -5016,7 +2764,7 @@ function extractReferencedParams(whereClause, specParams) {
5016
2764
  }
5017
2765
  function buildFlatJoinSql(spec) {
5018
2766
  const {
5019
- select: select2,
2767
+ select,
5020
2768
  from,
5021
2769
  whereClause,
5022
2770
  whereJoins,
@@ -5084,7 +2832,7 @@ function buildFlatJoinSql(spec) {
5084
2832
  if (built.joins.length === 0) {
5085
2833
  return emptyResult;
5086
2834
  }
5087
- const baseSelect = (select2 != null ? select2 : "").trim();
2835
+ const baseSelect = (select != null ? select : "").trim();
5088
2836
  const allSelects = [baseSelect, ...built.selects].filter((s) => s && s.trim().length > 0).join(SQL_SEPARATORS.FIELD_LIST);
5089
2837
  if (!allSelects) {
5090
2838
  throw new Error("Flat-join SELECT requires at least one selected field");
@@ -6344,12 +4092,12 @@ function maybeReverseNegativeTake(takeVal, hasOrderBy, orderByInput) {
6344
4092
 
6345
4093
  // src/builder/select/lateral-join.ts
6346
4094
  function createParamCollector() {
6347
- const values2 = [];
4095
+ const values = [];
6348
4096
  return {
6349
- values: values2,
4097
+ values,
6350
4098
  add(value) {
6351
- values2.push(value);
6352
- return `$${values2.length}`;
4099
+ values.push(value);
4100
+ return `$${values.length}`;
6353
4101
  }
6354
4102
  };
6355
4103
  }
@@ -6376,14 +4124,14 @@ function reindexWhereParams(whereClause, specParams, collector) {
6376
4124
  }
6377
4125
  if (refSet.size === 0) return whereClause;
6378
4126
  const allParams = Array.isArray(specParams) ? specParams : typeof specParams.snapshot === "function" ? specParams.snapshot().params : [];
6379
- const refs = Array.from(refSet).sort((a, b2) => a - b2);
4127
+ const refs = Array.from(refSet).sort((a, b) => a - b);
6380
4128
  const indexMap = /* @__PURE__ */ new Map();
6381
4129
  for (const oldIdx of refs) {
6382
4130
  collector.values.push(allParams[oldIdx - 1]);
6383
4131
  indexMap.set(oldIdx, collector.values.length);
6384
4132
  }
6385
4133
  let clean = whereClause;
6386
- const sorted = Array.from(indexMap.entries()).sort((a, b2) => b2[0] - a[0]);
4134
+ const sorted = Array.from(indexMap.entries()).sort((a, b) => b[0] - a[0]);
6387
4135
  for (const [oldIdx, newIdx] of sorted) {
6388
4136
  clean = clean.split(`$${oldIdx}`).join(`$${newIdx}`);
6389
4137
  }
@@ -6714,8 +4462,8 @@ Hint: When using distinct with SQLite:
6714
4462
  }
6715
4463
  return unquoteIdent(column);
6716
4464
  }
6717
- function parseSimpleScalarSelect(select2, fromAlias) {
6718
- const raw = select2.trim();
4465
+ function parseSimpleScalarSelect(select, fromAlias) {
4466
+ const raw = select.trim();
6719
4467
  if (raw.length === 0) return [];
6720
4468
  const parts = raw.split(SQL_SEPARATORS.FIELD_LIST);
6721
4469
  const names = [];
@@ -6928,8 +4676,8 @@ function resolveCountSelect(countSelectRaw, model) {
6928
4676
  }
6929
4677
  function buildIncludeColumns(spec) {
6930
4678
  var _a3, _b, _c, _d, _e;
6931
- const { select: select2, includes, dialect, model, schemas, from, params } = spec;
6932
- const baseSelect = (select2 != null ? select2 : "").trim();
4679
+ const { select, includes, dialect, model, schemas, from, params } = spec;
4680
+ const baseSelect = (select != null ? select : "").trim();
6933
4681
  let countCols = "";
6934
4682
  let countJoins = [];
6935
4683
  const countSelectRaw = (_e = (_b = (_a3 = spec.args) == null ? void 0 : _a3.select) == null ? void 0 : _b[COUNT_SELECT_KEY]) != null ? _e : (_d = (_c = spec.args) == null ? void 0 : _c.include) == null ? void 0 : _d[COUNT_SELECT_KEY];
@@ -7089,7 +4837,7 @@ function hasNestedIncludes(includeSpec) {
7089
4837
  }
7090
4838
  function constructFinalSql(spec) {
7091
4839
  const {
7092
- select: select2,
4840
+ select,
7093
4841
  from,
7094
4842
  whereClause,
7095
4843
  whereJoins,
@@ -7172,7 +4920,7 @@ function constructFinalSql(spec) {
7172
4920
  parts.push(SQL_TEMPLATES.SELECT);
7173
4921
  const distinctOn = dialect === "postgres" ? buildPostgresDistinctOnClause(from.alias, distinct, model) : null;
7174
4922
  if (distinctOn) parts.push(distinctOn);
7175
- const baseSelect = (select2 != null ? select2 : "").trim();
4923
+ const baseSelect = (select != null ? select : "").trim();
7176
4924
  const fullSelectList = buildSelectList(baseSelect, includeCols);
7177
4925
  if (!isNonEmptyString(fullSelectList)) {
7178
4926
  throw new Error("SELECT requires at least one selected field or include");
@@ -7208,9 +4956,9 @@ function constructFinalSql(spec) {
7208
4956
 
7209
4957
  // src/builder/select/fields.ts
7210
4958
  var DEFAULT_SELECT_CACHE = /* @__PURE__ */ new WeakMap();
7211
- function toSelectEntries(select2) {
4959
+ function toSelectEntries(select) {
7212
4960
  const out = [];
7213
- for (const [k, v] of Object.entries(select2)) {
4961
+ for (const [k, v] of Object.entries(select)) {
7214
4962
  if (v !== false && v !== void 0) out.push([k, v]);
7215
4963
  }
7216
4964
  return out;
@@ -7933,7 +5681,7 @@ function resolveRelationOrderByChain(relationFieldName, value, currentModel, cur
7933
5681
  `Relation orderBy nesting too deep (max ${MAX_RELATION_ORDER_BY_DEPTH} levels)`
7934
5682
  );
7935
5683
  }
7936
- if ("_count" in value) {
5684
+ if ("_count" in value && value._count !== void 0) {
7937
5685
  throw new Error(
7938
5686
  `Relation orderBy with _count on '${relationFieldName}' is not yet supported by prisma-sql`
7939
5687
  );
@@ -7962,7 +5710,7 @@ function resolveRelationOrderByChain(relationFieldName, value, currentModel, cur
7962
5710
  ctx.joins.push(`LEFT JOIN ${tableRef} ${joinAlias} ON ${cond}`);
7963
5711
  const relScalarSet = getScalarFieldSet(relatedModel);
7964
5712
  const relRelationSet = getRelationFieldSet(relatedModel);
7965
- const nestedEntries = Object.entries(value);
5713
+ const nestedEntries = Object.entries(value).filter(([, v]) => v !== void 0);
7966
5714
  const orderFragments = [];
7967
5715
  for (const [nestedField, nestedValue] of nestedEntries) {
7968
5716
  if (relScalarSet.has(nestedField)) {
@@ -8821,11 +6569,11 @@ function buildCountSql(whereResult, tableName, alias, argsOrSkip, dialect, model
8821
6569
  if (selectFields.length === 0) {
8822
6570
  return buildSimpleCountSql(whereResult, tableName, alias, d);
8823
6571
  }
8824
- const select2 = {};
8825
- for (const f of selectFields) select2[f] = true;
6572
+ const select = {};
6573
+ for (const f of selectFields) select[f] = true;
8826
6574
  const subArgs = __spreadProps(__spreadValues({}, args), {
8827
6575
  include: void 0,
8828
- select: select2
6576
+ select
8829
6577
  });
8830
6578
  const subSchemas = Array.isArray(schemas) && schemas.length > 0 ? schemas : [model];
8831
6579
  const sub = buildSelectSql({
@@ -9048,7 +6796,7 @@ function normalizeSqlAndMappingsForDialect(sql, paramMappings, dialect) {
9048
6796
  return { sql: normalizedSql, paramMappings: expandedMappings };
9049
6797
  }
9050
6798
  function buildParamsFromMappings(mappings) {
9051
- const sorted = [...mappings].sort((a, b2) => a.index - b2.index);
6799
+ const sorted = [...mappings].sort((a, b) => a.index - b.index);
9052
6800
  const staticParams = [];
9053
6801
  const dynamicKeys = [];
9054
6802
  let paramOrder = "";
@@ -9590,9 +7338,9 @@ function createDatabaseExecutor(params) {
9590
7338
  return __async(this, null, function* () {
9591
7339
  const { databaseUrl, dialect } = params;
9592
7340
  if (dialect === "postgres") {
9593
- const postgres2 = yield Promise.resolve().then(() => (init_src(), src_exports));
7341
+ const postgres = yield import('postgres');
9594
7342
  cleanDatabaseUrl(databaseUrl);
9595
- const sql = postgres2.default(databaseUrl, { max: 1 });
7343
+ const sql = postgres.default(databaseUrl, { max: 1 });
9596
7344
  return {
9597
7345
  executor: {
9598
7346
  query: (sqlStr, params2) => __async(null, null, function* () {
@@ -9764,7 +7512,7 @@ function measureRoundtripCost(params) {
9764
7512
  yield executor.query("SELECT 1");
9765
7513
  roundtripTimes.push(performance.now() - start);
9766
7514
  }
9767
- roundtripTimes.sort((a, b2) => a - b2);
7515
+ roundtripTimes.sort((a, b) => a - b);
9768
7516
  const medianRoundtrip = roundtripTimes[Math.floor(SAMPLES / 2)];
9769
7517
  console.log(
9770
7518
  ` [roundtrip] SELECT 1 times (ms): min=${roundtripTimes[0].toFixed(3)} median=${medianRoundtrip.toFixed(3)} max=${roundtripTimes[SAMPLES - 1].toFixed(3)}`
@@ -9802,7 +7550,7 @@ function estimateFromQueryPairRatio(params) {
9802
7550
  yield executor.query(`SELECT * FROM ${tableName} LIMIT ${smallLimit}`);
9803
7551
  smallTimes.push(performance.now() - start);
9804
7552
  }
9805
- smallTimes.sort((a, b2) => a - b2);
7553
+ smallTimes.sort((a, b) => a - b);
9806
7554
  const medianSmall = smallTimes[Math.floor(SAMPLES / 2)];
9807
7555
  const largeTimes = [];
9808
7556
  let actualLargeRows = 0;
@@ -9814,7 +7562,7 @@ function estimateFromQueryPairRatio(params) {
9814
7562
  largeTimes.push(performance.now() - start);
9815
7563
  actualLargeRows = rows.length;
9816
7564
  }
9817
- largeTimes.sort((a, b2) => a - b2);
7565
+ largeTimes.sort((a, b) => a - b);
9818
7566
  const medianLarge = largeTimes[Math.floor(SAMPLES / 2)];
9819
7567
  const rowDiff = actualLargeRows - smallLimit;
9820
7568
  const timeDiff = medianLarge - medianSmall;
@@ -9842,7 +7590,7 @@ function estimateFromQueryPairRatio(params) {
9842
7590
  yield executor.query(`SELECT * FROM ${tableName} LIMIT ${smallLimit}`);
9843
7591
  sequentialTimes.push(performance.now() - start);
9844
7592
  }
9845
- sequentialTimes.sort((a, b2) => a - b2);
7593
+ sequentialTimes.sort((a, b) => a - b);
9846
7594
  const median3Sequential = sequentialTimes[Math.floor(SAMPLES / 2)];
9847
7595
  const marginalQueryCost = (median3Sequential - medianSmall) / 2;
9848
7596
  console.log(
@@ -9889,7 +7637,7 @@ function measureJsonOverhead(params) {
9889
7637
  yield executor.query(rawSql);
9890
7638
  rawTimes.push(performance.now() - start);
9891
7639
  }
9892
- rawTimes.sort((a, b2) => a - b2);
7640
+ rawTimes.sort((a, b) => a - b);
9893
7641
  const medianRaw = rawTimes[Math.floor(SAMPLES / 2)];
9894
7642
  const aggTimes = [];
9895
7643
  for (let i = 0; i < SAMPLES; i++) {
@@ -9897,7 +7645,7 @@ function measureJsonOverhead(params) {
9897
7645
  yield executor.query(aggSql);
9898
7646
  aggTimes.push(performance.now() - start);
9899
7647
  }
9900
- aggTimes.sort((a, b2) => a - b2);
7648
+ aggTimes.sort((a, b) => a - b);
9901
7649
  const medianAgg = aggTimes[Math.floor(SAMPLES / 2)];
9902
7650
  const factor = medianRaw > 0.01 ? medianAgg / medianRaw : 3;
9903
7651
  console.log(` [json] Raw ${limit} rows: ${medianRaw.toFixed(3)}ms`);
@@ -10145,6 +7893,7 @@ function processAllModelDirectives(directiveResults, config) {
10145
7893
  }
10146
7894
  return { queries, skippedCount };
10147
7895
  }
7896
+ var DB_CONNECT_TIMEOUT_MS = 5e3;
10148
7897
  function generateClient(options) {
10149
7898
  return __async(this, null, function* () {
10150
7899
  var _a3;
@@ -10155,9 +7904,7 @@ function generateClient(options) {
10155
7904
  const directiveResults = schemaParser.processAllDirectives(
10156
7905
  datamodel.models,
10157
7906
  datamodel,
10158
- {
10159
- skipInvalid: config.skipInvalid
10160
- }
7907
+ { skipInvalid: config.skipInvalid }
10161
7908
  );
10162
7909
  const { queries, skippedCount } = processAllModelDirectives(
10163
7910
  directiveResults,
@@ -10170,13 +7917,31 @@ function generateClient(options) {
10170
7917
  let executor = options.executor;
10171
7918
  let cleanup;
10172
7919
  if (!executor && datasourceUrl) {
7920
+ let timedOut = false;
7921
+ const timeoutHandle = new Promise((_, reject) => {
7922
+ var _a4;
7923
+ const id = setTimeout(() => {
7924
+ timedOut = true;
7925
+ reject(
7926
+ new Error(
7927
+ `DB connection timed out after ${DB_CONNECT_TIMEOUT_MS}ms`
7928
+ )
7929
+ );
7930
+ }, DB_CONNECT_TIMEOUT_MS);
7931
+ (_a4 = id.unref) == null ? void 0 : _a4.call(id);
7932
+ });
10173
7933
  try {
10174
- const dbConn = yield createDatabaseExecutor({
10175
- databaseUrl: datasourceUrl,
10176
- dialect: config.dialect
10177
- });
10178
- executor = dbConn.executor;
10179
- cleanup = dbConn.cleanup;
7934
+ const dbConn = yield Promise.race([
7935
+ createDatabaseExecutor({
7936
+ databaseUrl: datasourceUrl,
7937
+ dialect: config.dialect
7938
+ }),
7939
+ timeoutHandle
7940
+ ]);
7941
+ if (!timedOut) {
7942
+ executor = dbConn.executor;
7943
+ cleanup = dbConn.cleanup;
7944
+ }
10180
7945
  } catch (error) {
10181
7946
  console.warn(
10182
7947
  "\u26A0 Failed to connect:",