sqlite-executor 4.0.6 → 4.0.8

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.
@@ -55,7 +55,6 @@ __webpack_require__.d(__webpack_exports__, {
55
55
  return metrics_Metrics;
56
56
  }
57
57
  });
58
- var external_node_events_namespaceObject = require("node:events");
59
58
  var DEFAULT_STATEMENT_TIMEOUT = 30000;
60
59
  function createTimeoutError(timeout, sql) {
61
60
  return new Error("SQLite statement timed out after ".concat(timeout, "ms: ").concat(sql));
@@ -266,7 +265,8 @@ function createRowStreamParser(onRow) {
266
265
  }
267
266
  index = consumed;
268
267
  if (consumed > 65536) {
269
- this.buffer = buffer.slice(consumed);
268
+ buffer = buffer.slice(consumed);
269
+ this.buffer = buffer;
270
270
  this._consumed = 0;
271
271
  index = 0;
272
272
  consumed = 0;
@@ -317,6 +317,7 @@ function createRowStreamParser(onRow) {
317
317
  var TOKEN_COLUMN = "__sqlite_executor_token__";
318
318
  var DEFAULT_BATCH_SIZE = 10;
319
319
  var DEFAULT_MAX_INFLIGHT = 50;
320
+ var INFLIGHT_COMPACT_THRESHOLD = 128;
320
321
  function _check_private_redeclaration(obj, privateCollection) {
321
322
  if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
322
323
  }
@@ -390,7 +391,7 @@ function _type_of(obj) {
390
391
  }
391
392
  var _computedKey;
392
393
  function setupStreamParser(task) {
393
- var valueParser = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {
394
+ var pipelineOrFeed = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {
394
395
  feed: function() {}
395
396
  };
396
397
  if ("stream" !== task.kind) return null;
@@ -398,7 +399,7 @@ function setupStreamParser(task) {
398
399
  if (task.consumerError) return;
399
400
  try {
400
401
  var row = JSON.parse(rawRow);
401
- if ((void 0 === row ? "undefined" : _type_of(row)) === "object" && null !== row && TOKEN_COLUMN in row) return void valueParser.feed("[".concat(rawRow, "]"));
402
+ if ((void 0 === row ? "undefined" : _type_of(row)) === "object" && null !== row && TOKEN_COLUMN in row) return void pipelineOrFeed.feed("[".concat(rawRow, "]"));
402
403
  task.onRow(row);
403
404
  } catch (error) {
404
405
  task.consumerError = toError(error);
@@ -600,16 +601,19 @@ function createTransactionHandle(scopeId, executor) {
600
601
  return handle;
601
602
  }
602
603
  var external_node_child_process_namespaceObject = require("node:child_process");
604
+ var external_node_events_namespaceObject = require("node:events");
603
605
  var external_node_fs_namespaceObject = require("node:fs");
604
606
  var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
605
607
  var external_node_path_namespaceObject = require("node:path");
606
608
  var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
607
609
  var external_node_os_namespaceObject = require("node:os");
608
610
  var external_node_os_default = /*#__PURE__*/ __webpack_require__.n(external_node_os_namespaceObject);
609
- var isWindows = "win32" === external_node_os_default().platform();
611
+ function isWindows() {
612
+ return "win32" === external_node_os_default().platform();
613
+ }
610
614
  function isExecutable(filePath) {
611
615
  try {
612
- if (isWindows) return external_node_fs_default().statSync(filePath).isFile();
616
+ if (isWindows()) return external_node_fs_default().statSync(filePath).isFile();
613
617
  external_node_fs_default().accessSync(filePath, external_node_fs_default().constants.X_OK);
614
618
  return true;
615
619
  } catch (e) {
@@ -617,7 +621,7 @@ function isExecutable(filePath) {
617
621
  }
618
622
  }
619
623
  function getPathExts() {
620
- if (!isWindows) return [
624
+ if (!isWindows()) return [
621
625
  ""
622
626
  ];
623
627
  var ext = process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM;.PS1";
@@ -630,7 +634,7 @@ function which(command) {
630
634
  var pathExts = getPathExts();
631
635
  if (command.includes(external_node_path_default().sep)) {
632
636
  var fullPath = external_node_path_default().resolve(command);
633
- if (!isWindows) return isExecutable(fullPath) ? fullPath : null;
637
+ if (!isWindows()) return isExecutable(fullPath) ? fullPath : null;
634
638
  if (external_node_path_default().extname(fullPath)) return isExecutable(fullPath) ? fullPath : null;
635
639
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
636
640
  try {
@@ -657,7 +661,7 @@ function which(command) {
657
661
  try {
658
662
  for(var _iterator1 = pathDirs[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
659
663
  var dir = _step1.value;
660
- if (dir) if (isWindows) {
664
+ if (dir) if (isWindows()) {
661
665
  var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
662
666
  try {
663
667
  for(var _iterator2 = pathExts[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
@@ -752,6 +756,14 @@ function process_class_private_field_set(receiver, privateMap, value) {
752
756
  process_class_apply_descriptor_set(receiver, descriptor, value);
753
757
  return value;
754
758
  }
759
+ function _class_private_method_get(receiver, privateSet, fn) {
760
+ if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
761
+ return fn;
762
+ }
763
+ function _class_private_method_init(obj, privateSet) {
764
+ process_check_private_redeclaration(obj, privateSet);
765
+ privateSet.add(obj);
766
+ }
755
767
  function process_defineProperties(target, props) {
756
768
  for(var i = 0; i < props.length; i++){
757
769
  var descriptor = props[i];
@@ -858,12 +870,14 @@ function _ts_generator(thisArg, body) {
858
870
  }
859
871
  }
860
872
  var GRACEFUL_SHUTDOWN_TIMEOUT = 5000;
861
- var _binary = /*#__PURE__*/ new WeakMap(), _database = /*#__PURE__*/ new WeakMap(), _proc = /*#__PURE__*/ new WeakMap(), _initMode = /*#__PURE__*/ new WeakMap(), _draining = /*#__PURE__*/ new WeakMap(), _onDrain = /*#__PURE__*/ new WeakMap();
873
+ var _binary = /*#__PURE__*/ new WeakMap(), _database = /*#__PURE__*/ new WeakMap(), _proc = /*#__PURE__*/ new WeakMap(), _initMode = /*#__PURE__*/ new WeakMap(), _draining = /*#__PURE__*/ new WeakMap(), _writeBuffer = /*#__PURE__*/ new WeakMap(), _drainCallbacks = /*#__PURE__*/ new WeakMap(), _onDrain = /*#__PURE__*/ new WeakMap(), _flushBuffer = /*#__PURE__*/ new WeakSet(), _notifyIfDrained = /*#__PURE__*/ new WeakSet();
862
874
  var process_ProcessManager = /*#__PURE__*/ function() {
863
875
  "use strict";
864
876
  function ProcessManager() {
865
877
  var _ref = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, binary = _ref.binary, database = _ref.database, _ref_initMode = _ref.initMode, initMode = void 0 === _ref_initMode ? "wal" : _ref_initMode, onDrain = _ref.onDrain;
866
878
  process_class_call_check(this, ProcessManager);
879
+ _class_private_method_init(this, _flushBuffer);
880
+ _class_private_method_init(this, _notifyIfDrained);
867
881
  process_class_private_field_init(this, _binary, {
868
882
  writable: true,
869
883
  value: void 0
@@ -884,6 +898,14 @@ var process_ProcessManager = /*#__PURE__*/ function() {
884
898
  writable: true,
885
899
  value: false
886
900
  });
901
+ process_class_private_field_init(this, _writeBuffer, {
902
+ writable: true,
903
+ value: []
904
+ });
905
+ process_class_private_field_init(this, _drainCallbacks, {
906
+ writable: true,
907
+ value: []
908
+ });
887
909
  process_class_private_field_init(this, _onDrain, {
888
910
  writable: true,
889
911
  value: void 0
@@ -907,6 +929,13 @@ var process_ProcessManager = /*#__PURE__*/ function() {
907
929
  process_class_private_field_set(this, _onDrain, fn);
908
930
  }
909
931
  },
932
+ {
933
+ key: "onDrained",
934
+ value: function(callback) {
935
+ if (!process_class_private_field_get(this, _draining) && 0 === process_class_private_field_get(this, _writeBuffer).length) return void callback();
936
+ process_class_private_field_get(this, _drainCallbacks).push(callback);
937
+ }
938
+ },
910
939
  {
911
940
  key: "binary",
912
941
  get: function() {
@@ -922,9 +951,9 @@ var process_ProcessManager = /*#__PURE__*/ function() {
922
951
  {
923
952
  key: "start",
924
953
  value: function() {
925
- var _proc_stdin, _proc_stdout, _proc_stderr;
954
+ var _proc_stdin, _proc_stdout, _proc_stderr, _proc_stdin1;
926
955
  if (!process_class_private_field_get(this, _binary)) throw new Error("sqlite3 binary path is empty. Provide a valid --binary / binary option.");
927
- if (!external_node_fs_default().existsSync(process_class_private_field_get(this, _binary))) throw new Error("sqlite3 binary not found: ".concat(process_class_private_field_get(this, _binary), ". Make sure sqlite3 is installed or provide a valid --binary / binary option."));
956
+ if (external_node_path_default().isAbsolute(process_class_private_field_get(this, _binary)) && !external_node_fs_default().existsSync(process_class_private_field_get(this, _binary))) throw new Error("sqlite3 binary not found: ".concat(process_class_private_field_get(this, _binary), ". Make sure sqlite3 is installed or provide a valid --binary / binary option."));
928
957
  var args = [
929
958
  "-json"
930
959
  ];
@@ -941,6 +970,7 @@ var process_ProcessManager = /*#__PURE__*/ function() {
941
970
  null == (_proc_stdin = proc.stdin) || _proc_stdin.setDefaultEncoding("utf-8");
942
971
  null == (_proc_stdout = proc.stdout) || _proc_stdout.setEncoding("utf-8");
943
972
  null == (_proc_stderr = proc.stderr) || _proc_stderr.setEncoding("utf-8");
973
+ null == (_proc_stdin1 = proc.stdin) || _proc_stdin1.on("error", function() {});
944
974
  process_class_private_field_set(this, _proc, proc);
945
975
  return proc;
946
976
  }
@@ -952,11 +982,13 @@ var process_ProcessManager = /*#__PURE__*/ function() {
952
982
  var _$_class_private_field_get;
953
983
  var stream = null == (_$_class_private_field_get = process_class_private_field_get(this, _proc)) ? void 0 : _$_class_private_field_get.stdin;
954
984
  if (!stream) return;
955
- if (process_class_private_field_get(this, _draining)) return;
985
+ if (process_class_private_field_get(this, _draining)) return void process_class_private_field_get(this, _writeBuffer).push(data);
956
986
  if (!stream.write(data)) {
957
987
  process_class_private_field_set(this, _draining, true);
958
988
  stream.once("drain", function() {
959
989
  process_class_private_field_set(_this, _draining, false);
990
+ _class_private_method_get(_this, _flushBuffer, flushBuffer).call(_this);
991
+ _class_private_method_get(_this, _notifyIfDrained, notifyIfDrained).call(_this);
960
992
  process_class_private_field_get(_this, _onDrain).call(_this);
961
993
  });
962
994
  }
@@ -975,40 +1007,58 @@ var process_ProcessManager = /*#__PURE__*/ function() {
975
1007
  if (!proc) return [
976
1008
  2
977
1009
  ];
1010
+ if (!(process_class_private_field_get(_this, _draining) || process_class_private_field_get(_this, _writeBuffer).length > 0)) return [
1011
+ 3,
1012
+ 2
1013
+ ];
1014
+ return [
1015
+ 4,
1016
+ new Promise(function(resolve) {
1017
+ var timer = setTimeout(resolve, GRACEFUL_SHUTDOWN_TIMEOUT);
1018
+ _this.onDrained(function() {
1019
+ clearTimeout(timer);
1020
+ resolve();
1021
+ });
1022
+ })
1023
+ ];
1024
+ case 1:
1025
+ _state.sent();
1026
+ _state.label = 2;
1027
+ case 2:
978
1028
  timer = setTimeout(function() {
979
1029
  proc.kill();
980
- }, GRACEFUL_SHUTDOWN_TIMEOUT);
981
- _state.label = 1;
982
- case 1:
1030
+ }, GRACEFUL_SHUTDOWN_TIMEOUT).unref();
1031
+ _state.label = 3;
1032
+ case 3:
983
1033
  _state.trys.push([
984
- 1,
985
1034
  3,
986
- 4,
987
- 5
1035
+ 5,
1036
+ 6,
1037
+ 7
988
1038
  ]);
989
1039
  null == (_proc_stdin = proc.stdin) || _proc_stdin.write(".quit\n");
990
1040
  return [
991
1041
  4,
992
1042
  (0, external_node_events_namespaceObject.once)(proc, "close")
993
1043
  ];
994
- case 2:
1044
+ case 4:
995
1045
  _state.sent();
996
1046
  return [
997
1047
  3,
998
- 5
1048
+ 7
999
1049
  ];
1000
- case 3:
1050
+ case 5:
1001
1051
  _state.sent();
1002
1052
  return [
1003
1053
  3,
1004
- 5
1054
+ 7
1005
1055
  ];
1006
- case 4:
1056
+ case 6:
1007
1057
  clearTimeout(timer);
1008
1058
  return [
1009
1059
  7
1010
1060
  ];
1011
- case 5:
1061
+ case 7:
1012
1062
  return [
1013
1063
  2
1014
1064
  ];
@@ -1025,6 +1075,8 @@ var process_ProcessManager = /*#__PURE__*/ function() {
1025
1075
  if (!proc) return null;
1026
1076
  process_class_private_field_set(this, _proc, null);
1027
1077
  process_class_private_field_set(this, _draining, false);
1078
+ process_class_private_field_set(this, _writeBuffer, []);
1079
+ process_class_private_field_set(this, _drainCallbacks, []);
1028
1080
  null == (_proc_stdout = proc.stdout) || _proc_stdout.removeAllListeners();
1029
1081
  null == (_proc_stderr = proc.stderr) || _proc_stderr.removeAllListeners();
1030
1082
  proc.removeAllListeners();
@@ -1036,6 +1088,47 @@ var process_ProcessManager = /*#__PURE__*/ function() {
1036
1088
  ]);
1037
1089
  return ProcessManager;
1038
1090
  }();
1091
+ function flushBuffer() {
1092
+ var buffer = process_class_private_field_get(this, _writeBuffer);
1093
+ process_class_private_field_set(this, _writeBuffer, []);
1094
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1095
+ try {
1096
+ for(var _iterator = buffer[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1097
+ var data = _step.value;
1098
+ this.write(data);
1099
+ }
1100
+ } catch (err) {
1101
+ _didIteratorError = true;
1102
+ _iteratorError = err;
1103
+ } finally{
1104
+ try {
1105
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1106
+ } finally{
1107
+ if (_didIteratorError) throw _iteratorError;
1108
+ }
1109
+ }
1110
+ }
1111
+ function notifyIfDrained() {
1112
+ if (process_class_private_field_get(this, _draining)) return;
1113
+ var callbacks = process_class_private_field_get(this, _drainCallbacks);
1114
+ process_class_private_field_set(this, _drainCallbacks, []);
1115
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1116
+ try {
1117
+ for(var _iterator = callbacks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1118
+ var cb = _step.value;
1119
+ cb();
1120
+ }
1121
+ } catch (err) {
1122
+ _didIteratorError = true;
1123
+ _iteratorError = err;
1124
+ } finally{
1125
+ try {
1126
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1127
+ } finally{
1128
+ if (_didIteratorError) throw _iteratorError;
1129
+ }
1130
+ }
1131
+ }
1039
1132
  var _counter = 0;
1040
1133
  var _PREFIX = "__executor_end__";
1041
1134
  var _PID36 = process.pid.toString(36);
@@ -1133,7 +1226,8 @@ var lruCache_LRUCache = /*#__PURE__*/ function() {
1133
1226
  key: "set",
1134
1227
  value: function(key, value) {
1135
1228
  if ("string" != typeof key || key.length > lruCache_class_private_field_get(this, _maxKeyLength)) return;
1136
- if (value && value.length > lruCache_class_private_field_get(this, _maxValueLength)) return;
1229
+ if ("string" == typeof value && value.length > lruCache_class_private_field_get(this, _maxValueLength)) return;
1230
+ if (Array.isArray(value) && value.length > lruCache_class_private_field_get(this, _maxValueLength)) return;
1137
1231
  if (lruCache_class_private_field_get(this, _map).size >= lruCache_class_private_field_get(this, _maxSize)) {
1138
1232
  var firstKey = lruCache_class_private_field_get(this, _map).keys().next().value;
1139
1233
  lruCache_class_private_field_get(this, _map)["delete"](firstKey);
@@ -1199,7 +1293,19 @@ var constants_STATE_SINGLE_QUOTE = 1;
1199
1293
  var constants_STATE_DOUBLE_QUOTE = 2;
1200
1294
  var constants_STATE_LINE_COMMENT = 3;
1201
1295
  var constants_STATE_BLOCK_COMMENT = 4;
1202
- var _normDecoder = new TextDecoder("utf-16le");
1296
+ function _decodeU16(codes) {
1297
+ var len = codes.length;
1298
+ if (0 === len) return "";
1299
+ var batchSize = 1024;
1300
+ if (len <= batchSize) return String.fromCharCode.apply(null, codes);
1301
+ var parts = new Array(Math.ceil(len / batchSize));
1302
+ for(var i = 0; i < parts.length; i++){
1303
+ var start = i * batchSize;
1304
+ var end = Math.min(start + batchSize, len);
1305
+ parts[i] = String.fromCharCode.apply(null, codes.subarray(start, end));
1306
+ }
1307
+ return parts.join("");
1308
+ }
1203
1309
  var _normCache = new lruCache_LRUCache({
1204
1310
  maxSize: 256,
1205
1311
  maxKeyLength: 4096
@@ -1280,7 +1386,7 @@ function _normalize(sql) {
1280
1386
  else {
1281
1387
  while(writePos > 0 && outCodes[writePos - 1] === CC_SEMICOLON)writePos--;
1282
1388
  outCodes[writePos++] = CC_SEMICOLON;
1283
- normalized = _normDecoder.decode(outCodes.subarray(0, writePos));
1389
+ normalized = _decodeU16(outCodes.subarray(0, writePos));
1284
1390
  }
1285
1391
  var paramCount = questionPositions.length;
1286
1392
  if (0 === paramCount) return {
@@ -1342,8 +1448,8 @@ var _classifyCache = new lruCache_LRUCache({
1342
1448
  });
1343
1449
  function classifySingle(stmt) {
1344
1450
  var trimmed = stmt.trim();
1345
- if (0 === trimmed.length) return "write";
1346
- var kind = trimmed.split(/\s+/)[0].toUpperCase();
1451
+ var firstSpace = trimmed.indexOf(" ");
1452
+ var kind = (-1 === firstSpace ? trimmed : trimmed.slice(0, firstSpace)).toUpperCase();
1347
1453
  return READ_ONLY_KINDS.has(kind) ? "read" : "write";
1348
1454
  }
1349
1455
  function classifySQL(sql) {
@@ -1436,11 +1542,11 @@ function queue_class_private_field_update(receiver, privateMap) {
1436
1542
  var descriptor = queue_class_extract_field_descriptor(receiver, privateMap, "update");
1437
1543
  return queue_class_apply_descriptor_update(receiver, descriptor);
1438
1544
  }
1439
- function _class_private_method_get(receiver, privateSet, fn) {
1545
+ function queue_class_private_method_get(receiver, privateSet, fn) {
1440
1546
  if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
1441
1547
  return fn;
1442
1548
  }
1443
- function _class_private_method_init(obj, privateSet) {
1549
+ function queue_class_private_method_init(obj, privateSet) {
1444
1550
  queue_check_private_redeclaration(obj, privateSet);
1445
1551
  privateSet.add(obj);
1446
1552
  }
@@ -1559,8 +1665,8 @@ var queue_Queue = /*#__PURE__*/ function() {
1559
1665
  "use strict";
1560
1666
  function Queue() {
1561
1667
  queue_class_call_check(this, Queue);
1562
- _class_private_method_init(this, _grow);
1563
- _class_private_method_init(this, _shrinkIfNeeded);
1668
+ queue_class_private_method_init(this, _grow);
1669
+ queue_class_private_method_init(this, _shrinkIfNeeded);
1564
1670
  queue_class_private_field_init(this, _items, {
1565
1671
  writable: true,
1566
1672
  value: new Array(INITIAL_CAPACITY)
@@ -1586,7 +1692,7 @@ var queue_Queue = /*#__PURE__*/ function() {
1586
1692
  {
1587
1693
  key: "enqueue",
1588
1694
  value: function(value) {
1589
- if (queue_class_private_field_get(this, _size) === queue_class_private_field_get(this, _items).length) _class_private_method_get(this, _grow, grow).call(this);
1695
+ if (queue_class_private_field_get(this, _size) === queue_class_private_field_get(this, _items).length) queue_class_private_method_get(this, _grow, grow).call(this);
1590
1696
  queue_class_private_field_get(this, _items)[queue_class_private_field_get(this, _tail)] = value;
1591
1697
  queue_class_private_field_set(this, _tail, queue_class_private_field_get(this, _tail) + 1 & queue_class_private_field_get(this, _mask));
1592
1698
  queue_class_private_field_update(this, _size).value++;
@@ -1610,7 +1716,7 @@ var queue_Queue = /*#__PURE__*/ function() {
1610
1716
  queue_class_private_field_set(this, _head, 0);
1611
1717
  queue_class_private_field_set(this, _tail, 0);
1612
1718
  queue_class_private_field_set(this, _size, 0);
1613
- _class_private_method_get(this, _shrinkIfNeeded, shrinkIfNeeded).call(this);
1719
+ queue_class_private_method_get(this, _shrinkIfNeeded, shrinkIfNeeded).call(this);
1614
1720
  }
1615
1721
  },
1616
1722
  {
@@ -1771,179 +1877,6 @@ function shrinkIfNeeded() {
1771
1877
  queue_class_private_field_set(this, _mask, INITIAL_CAPACITY - 1);
1772
1878
  }
1773
1879
  }
1774
- function buildPayload(sql, token) {
1775
- var _ref = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, _ref_skipNormalize = _ref.skipNormalize, skipNormalize = void 0 === _ref_skipNormalize ? false : _ref_skipNormalize;
1776
- var normalized = skipNormalize ? sql : normalizeSQL(sql);
1777
- var suffix = normalized.endsWith(";") ? "" : ";";
1778
- return "".concat(normalized).concat(suffix, "\nSELECT '").concat(token, "' AS ").concat(TOKEN_COLUMN, ";\n");
1779
- }
1780
- function isTransactionControl(sql) {
1781
- var f = sql.charCodeAt(0);
1782
- if (66 === f || 98 === f) return "BEGIN" === sql || "BEGIN;" === sql || sql.startsWith("BEGIN ") || sql.startsWith("BEGIN;");
1783
- if (67 === f || 99 === f) return "COMMIT" === sql || "COMMIT;" === sql || sql.startsWith("COMMIT ") || sql.startsWith("COMMIT;");
1784
- if (82 === f || 114 === f) return "ROLLBACK" === sql || "ROLLBACK;" === sql || sql.startsWith("ROLLBACK ") || sql.startsWith("ROLLBACK;");
1785
- return false;
1786
- }
1787
- function buildBatchPayload(batch) {
1788
- var useWalBatch = batch.length > 1 && batch.every(function(t) {
1789
- return "execute" === t.kind && !isTransactionControl(t.sql);
1790
- });
1791
- if (useWalBatch) {
1792
- var parts = [
1793
- "BEGIN;\n"
1794
- ];
1795
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1796
- try {
1797
- for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1798
- var task = _step.value;
1799
- parts.push(task.sql, "\n");
1800
- }
1801
- } catch (err) {
1802
- _didIteratorError = true;
1803
- _iteratorError = err;
1804
- } finally{
1805
- try {
1806
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1807
- } finally{
1808
- if (_didIteratorError) throw _iteratorError;
1809
- }
1810
- }
1811
- parts.push("COMMIT;\n");
1812
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
1813
- try {
1814
- for(var _iterator1 = batch[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
1815
- var task1 = _step1.value;
1816
- parts.push("SELECT '".concat(task1.token, "' AS ").concat(TOKEN_COLUMN, ";\n"));
1817
- }
1818
- } catch (err) {
1819
- _didIteratorError1 = true;
1820
- _iteratorError1 = err;
1821
- } finally{
1822
- try {
1823
- if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
1824
- } finally{
1825
- if (_didIteratorError1) throw _iteratorError1;
1826
- }
1827
- }
1828
- return parts.join("");
1829
- }
1830
- var parts1 = [];
1831
- var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
1832
- try {
1833
- for(var _iterator2 = batch[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
1834
- var task2 = _step2.value;
1835
- parts1.push(buildPayload(task2.sql, task2.token, {
1836
- skipNormalize: true
1837
- }));
1838
- }
1839
- } catch (err) {
1840
- _didIteratorError2 = true;
1841
- _iteratorError2 = err;
1842
- } finally{
1843
- try {
1844
- if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
1845
- } finally{
1846
- if (_didIteratorError2) throw _iteratorError2;
1847
- }
1848
- }
1849
- return parts1.join("");
1850
- }
1851
- var TC_FIRST_CHAR = TOKEN_COLUMN.charCodeAt(0);
1852
- function buildSentinelStr(token) {
1853
- return '[{"'.concat(TOKEN_COLUMN, '":"').concat(token, '"}]');
1854
- }
1855
- function isSentinelRaw(raw, token) {
1856
- return raw.charCodeAt(3) === TC_FIRST_CHAR && raw === buildSentinelStr(token);
1857
- }
1858
- function isSentinelRow(value, token) {
1859
- var _value_;
1860
- return Array.isArray(value) && 1 === value.length && (null == (_value_ = value[0]) ? void 0 : _value_[TOKEN_COLUMN]) === token;
1861
- }
1862
- function collectQueryRows(task, parsed) {
1863
- if (Array.isArray(parsed)) {
1864
- if (!task.rows) task.rows = [];
1865
- for(var i = 0; i < parsed.length; i++)task.rows.push(parsed[i]);
1866
- }
1867
- }
1868
- function processStreamRows(task, parsed) {
1869
- if (!Array.isArray(parsed)) return;
1870
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1871
- try {
1872
- for(var _iterator = parsed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1873
- var row = _step.value;
1874
- if (task.consumerError) break;
1875
- try {
1876
- task.onRow(row);
1877
- } catch (error) {
1878
- task.consumerError = toError(error);
1879
- }
1880
- }
1881
- } catch (err) {
1882
- _didIteratorError = true;
1883
- _iteratorError = err;
1884
- } finally{
1885
- try {
1886
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1887
- } finally{
1888
- if (_didIteratorError) throw _iteratorError;
1889
- }
1890
- }
1891
- }
1892
- function settleTask(task, error, value, metrics) {
1893
- var _ref = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {}, _ref_resetRowParser = _ref.resetRowParser, resetRowParser = void 0 === _ref_resetRowParser ? false : _ref_resetRowParser;
1894
- if (task.settled) return;
1895
- task.settled = true;
1896
- if (resetRowParser) {
1897
- var _task_rowParser_reset, _task_rowParser;
1898
- null == (_task_rowParser = task.rowParser) || null == (_task_rowParser_reset = _task_rowParser.reset) || _task_rowParser_reset.call(_task_rowParser);
1899
- }
1900
- if (error) {
1901
- null == metrics || metrics.incrementTasksFailed();
1902
- task.reject(toError(error));
1903
- return;
1904
- }
1905
- var duration = task.startTime > 0 ? performance.now() - task.startTime : 0;
1906
- null == metrics || metrics.incrementTasksSuccess(duration);
1907
- task.resolve(value);
1908
- }
1909
- function finalizePendingTasks(tasks, settle, pumpQueue) {
1910
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1911
- try {
1912
- for(var _iterator = tasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1913
- var task = _step.value;
1914
- if (task.stderrText) {
1915
- settle(task, new Error(task.stderrText.trim()), void 0);
1916
- continue;
1917
- }
1918
- if (task.consumerError) {
1919
- settle(task, task.consumerError, void 0);
1920
- continue;
1921
- }
1922
- if ("query" === task.kind) {
1923
- settle(task, null, task.rows);
1924
- continue;
1925
- }
1926
- settle(task, null, void 0);
1927
- }
1928
- } catch (err) {
1929
- _didIteratorError = true;
1930
- _iteratorError = err;
1931
- } finally{
1932
- try {
1933
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1934
- } finally{
1935
- if (_didIteratorError) throw _iteratorError;
1936
- }
1937
- }
1938
- tasks.clear();
1939
- pumpQueue();
1940
- }
1941
- function prepareTaskTimeout(task, metrics) {
1942
- if (task.settled) return null;
1943
- task.timedout = true;
1944
- null == metrics || metrics.incrementTasksTimeout();
1945
- return createTimeoutError(task.timeout, task.sql);
1946
- }
1947
1880
  function _array_like_to_array(arr, len) {
1948
1881
  if (null == len || len > arr.length) len = arr.length;
1949
1882
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -1952,21 +1885,21 @@ function _array_like_to_array(arr, len) {
1952
1885
  function _array_without_holes(arr) {
1953
1886
  if (Array.isArray(arr)) return _array_like_to_array(arr);
1954
1887
  }
1955
- function taskWorker_check_private_redeclaration(obj, privateCollection) {
1888
+ function inflightTracker_check_private_redeclaration(obj, privateCollection) {
1956
1889
  if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
1957
1890
  }
1958
- function taskWorker_class_apply_descriptor_get(receiver, descriptor) {
1891
+ function inflightTracker_class_apply_descriptor_get(receiver, descriptor) {
1959
1892
  if (descriptor.get) return descriptor.get.call(receiver);
1960
1893
  return descriptor.value;
1961
1894
  }
1962
- function taskWorker_class_apply_descriptor_set(receiver, descriptor, value) {
1895
+ function inflightTracker_class_apply_descriptor_set(receiver, descriptor, value) {
1963
1896
  if (descriptor.set) descriptor.set.call(receiver, value);
1964
1897
  else {
1965
1898
  if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
1966
1899
  descriptor.value = value;
1967
1900
  }
1968
1901
  }
1969
- function taskWorker_class_apply_descriptor_update(receiver, descriptor) {
1902
+ function inflightTracker_class_apply_descriptor_update(receiver, descriptor) {
1970
1903
  if (descriptor.set) {
1971
1904
  if (!descriptor.get) throw new TypeError("attempted to read set only private field");
1972
1905
  if (!("__destrWrapper" in descriptor)) descriptor.__destrWrapper = {
@@ -1982,39 +1915,31 @@ function taskWorker_class_apply_descriptor_update(receiver, descriptor) {
1982
1915
  if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
1983
1916
  return descriptor;
1984
1917
  }
1985
- function taskWorker_class_call_check(instance, Constructor) {
1918
+ function inflightTracker_class_call_check(instance, Constructor) {
1986
1919
  if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
1987
1920
  }
1988
- function taskWorker_class_extract_field_descriptor(receiver, privateMap, action) {
1921
+ function inflightTracker_class_extract_field_descriptor(receiver, privateMap, action) {
1989
1922
  if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
1990
1923
  return privateMap.get(receiver);
1991
1924
  }
1992
- function taskWorker_class_private_field_get(receiver, privateMap) {
1993
- var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "get");
1994
- return taskWorker_class_apply_descriptor_get(receiver, descriptor);
1925
+ function inflightTracker_class_private_field_get(receiver, privateMap) {
1926
+ var descriptor = inflightTracker_class_extract_field_descriptor(receiver, privateMap, "get");
1927
+ return inflightTracker_class_apply_descriptor_get(receiver, descriptor);
1995
1928
  }
1996
- function taskWorker_class_private_field_init(obj, privateMap, value) {
1997
- taskWorker_check_private_redeclaration(obj, privateMap);
1929
+ function inflightTracker_class_private_field_init(obj, privateMap, value) {
1930
+ inflightTracker_check_private_redeclaration(obj, privateMap);
1998
1931
  privateMap.set(obj, value);
1999
1932
  }
2000
- function taskWorker_class_private_field_set(receiver, privateMap, value) {
2001
- var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "set");
2002
- taskWorker_class_apply_descriptor_set(receiver, descriptor, value);
1933
+ function inflightTracker_class_private_field_set(receiver, privateMap, value) {
1934
+ var descriptor = inflightTracker_class_extract_field_descriptor(receiver, privateMap, "set");
1935
+ inflightTracker_class_apply_descriptor_set(receiver, descriptor, value);
2003
1936
  return value;
2004
1937
  }
2005
- function taskWorker_class_private_field_update(receiver, privateMap) {
2006
- var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "update");
2007
- return taskWorker_class_apply_descriptor_update(receiver, descriptor);
2008
- }
2009
- function taskWorker_class_private_method_get(receiver, privateSet, fn) {
2010
- if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
2011
- return fn;
1938
+ function inflightTracker_class_private_field_update(receiver, privateMap) {
1939
+ var descriptor = inflightTracker_class_extract_field_descriptor(receiver, privateMap, "update");
1940
+ return inflightTracker_class_apply_descriptor_update(receiver, descriptor);
2012
1941
  }
2013
- function taskWorker_class_private_method_init(obj, privateSet) {
2014
- taskWorker_check_private_redeclaration(obj, privateSet);
2015
- privateSet.add(obj);
2016
- }
2017
- function taskWorker_defineProperties(target, props) {
1942
+ function inflightTracker_defineProperties(target, props) {
2018
1943
  for(var i = 0; i < props.length; i++){
2019
1944
  var descriptor = props[i];
2020
1945
  descriptor.enumerable = descriptor.enumerable || false;
@@ -2023,9 +1948,9 @@ function taskWorker_defineProperties(target, props) {
2023
1948
  Object.defineProperty(target, descriptor.key, descriptor);
2024
1949
  }
2025
1950
  }
2026
- function taskWorker_create_class(Constructor, protoProps, staticProps) {
2027
- if (protoProps) taskWorker_defineProperties(Constructor.prototype, protoProps);
2028
- if (staticProps) taskWorker_defineProperties(Constructor, staticProps);
1951
+ function inflightTracker_create_class(Constructor, protoProps, staticProps) {
1952
+ if (protoProps) inflightTracker_defineProperties(Constructor.prototype, protoProps);
1953
+ if (staticProps) inflightTracker_defineProperties(Constructor, staticProps);
2029
1954
  return Constructor;
2030
1955
  }
2031
1956
  function _iterable_to_array(iter) {
@@ -2045,7 +1970,660 @@ function _unsupported_iterable_to_array(o, minLen) {
2045
1970
  if ("Map" === n || "Set" === n) return Array.from(n);
2046
1971
  if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2047
1972
  }
2048
- var _processManager = /*#__PURE__*/ new WeakMap(), _pendingQueue = /*#__PURE__*/ new WeakMap(), _inflightTasks = /*#__PURE__*/ new WeakMap(), _inflightHead = /*#__PURE__*/ new WeakMap(), _pendingFinalizeTasks = /*#__PURE__*/ new WeakMap(), _scheduledFinalize = /*#__PURE__*/ new WeakMap(), _valueParser = /*#__PURE__*/ new WeakMap(), _statementTimeout = /*#__PURE__*/ new WeakMap(), _logger = /*#__PURE__*/ new WeakMap(), _name = /*#__PURE__*/ new WeakMap(), _batchSize = /*#__PURE__*/ new WeakMap(), _maxInflight = /*#__PURE__*/ new WeakMap(), _metrics = /*#__PURE__*/ new WeakMap(), _sweepTimer = /*#__PURE__*/ new WeakMap(), _sweepIntervalMs = /*#__PURE__*/ new WeakMap(), _startProcess = /*#__PURE__*/ new WeakSet(), _inflightCount = /*#__PURE__*/ new WeakSet(), _firstInflight = /*#__PURE__*/ new WeakSet(), _shiftInflight = /*#__PURE__*/ new WeakSet(), _pumpQueue = /*#__PURE__*/ new WeakSet(), _handleParsedValue = /*#__PURE__*/ new WeakSet(), _scheduleFinalizeCheck = /*#__PURE__*/ new WeakSet(), _handleStderrChunk = /*#__PURE__*/ new WeakSet(), _scheduleSweep = /*#__PURE__*/ new WeakSet(), _handleTaskTimeout = /*#__PURE__*/ new WeakSet(), _settleTask = /*#__PURE__*/ new WeakSet(), _rejectAll = /*#__PURE__*/ new WeakSet();
1973
+ var _tasks = /*#__PURE__*/ new WeakMap(), inflightTracker_head = /*#__PURE__*/ new WeakMap();
1974
+ var inflightTracker_InflightTracker = /*#__PURE__*/ function() {
1975
+ "use strict";
1976
+ function InflightTracker() {
1977
+ inflightTracker_class_call_check(this, InflightTracker);
1978
+ inflightTracker_class_private_field_init(this, _tasks, {
1979
+ writable: true,
1980
+ value: []
1981
+ });
1982
+ inflightTracker_class_private_field_init(this, inflightTracker_head, {
1983
+ writable: true,
1984
+ value: 0
1985
+ });
1986
+ }
1987
+ inflightTracker_create_class(InflightTracker, [
1988
+ {
1989
+ key: "count",
1990
+ get: function() {
1991
+ return inflightTracker_class_private_field_get(this, _tasks).length - inflightTracker_class_private_field_get(this, inflightTracker_head);
1992
+ }
1993
+ },
1994
+ {
1995
+ key: "first",
1996
+ get: function() {
1997
+ return inflightTracker_class_private_field_get(this, inflightTracker_head) < inflightTracker_class_private_field_get(this, _tasks).length ? inflightTracker_class_private_field_get(this, _tasks)[inflightTracker_class_private_field_get(this, inflightTracker_head)] : null;
1998
+ }
1999
+ },
2000
+ {
2001
+ key: "push",
2002
+ value: function() {
2003
+ for(var _len = arguments.length, items = new Array(_len), _key = 0; _key < _len; _key++)items[_key] = arguments[_key];
2004
+ var _$_class_private_field_get;
2005
+ (_$_class_private_field_get = inflightTracker_class_private_field_get(this, _tasks)).push.apply(_$_class_private_field_get, _to_consumable_array(items));
2006
+ }
2007
+ },
2008
+ {
2009
+ key: "shift",
2010
+ value: function() {
2011
+ if (inflightTracker_class_private_field_get(this, _tasks).length === inflightTracker_class_private_field_get(this, inflightTracker_head)) return null;
2012
+ var task = inflightTracker_class_private_field_get(this, _tasks)[inflightTracker_class_private_field_get(this, inflightTracker_head)];
2013
+ inflightTracker_class_private_field_get(this, _tasks)[inflightTracker_class_private_field_get(this, inflightTracker_head)] = null;
2014
+ inflightTracker_class_private_field_update(this, inflightTracker_head).value++;
2015
+ if (inflightTracker_class_private_field_get(this, inflightTracker_head) >= inflightTracker_class_private_field_get(this, _tasks).length) {
2016
+ inflightTracker_class_private_field_set(this, _tasks, []);
2017
+ inflightTracker_class_private_field_set(this, inflightTracker_head, 0);
2018
+ } else if (inflightTracker_class_private_field_get(this, inflightTracker_head) > INFLIGHT_COMPACT_THRESHOLD) {
2019
+ inflightTracker_class_private_field_set(this, _tasks, inflightTracker_class_private_field_get(this, _tasks).slice(inflightTracker_class_private_field_get(this, inflightTracker_head)));
2020
+ inflightTracker_class_private_field_set(this, inflightTracker_head, 0);
2021
+ }
2022
+ return task;
2023
+ }
2024
+ },
2025
+ {
2026
+ key: "clear",
2027
+ value: function() {
2028
+ inflightTracker_class_private_field_set(this, _tasks, []);
2029
+ inflightTracker_class_private_field_set(this, inflightTracker_head, 0);
2030
+ }
2031
+ },
2032
+ {
2033
+ key: "forEach",
2034
+ value: function(fn) {
2035
+ for(var i = inflightTracker_class_private_field_get(this, inflightTracker_head); i < inflightTracker_class_private_field_get(this, _tasks).length; i++)fn(inflightTracker_class_private_field_get(this, _tasks)[i]);
2036
+ }
2037
+ },
2038
+ {
2039
+ key: "toArray",
2040
+ value: function() {
2041
+ return inflightTracker_class_private_field_get(this, _tasks).slice(inflightTracker_class_private_field_get(this, inflightTracker_head));
2042
+ }
2043
+ },
2044
+ {
2045
+ key: "_tasksLength",
2046
+ get: function() {
2047
+ return inflightTracker_class_private_field_get(this, _tasks).length;
2048
+ }
2049
+ },
2050
+ {
2051
+ key: "_head",
2052
+ get: function() {
2053
+ return inflightTracker_class_private_field_get(this, inflightTracker_head);
2054
+ }
2055
+ }
2056
+ ]);
2057
+ return InflightTracker;
2058
+ }();
2059
+ function collectQueryRows(task, parsed) {
2060
+ if (Array.isArray(parsed)) for(var i = 0; i < parsed.length; i++)task.rows.push(parsed[i]);
2061
+ }
2062
+ function processStreamRows(task, parsed) {
2063
+ if (!Array.isArray(parsed)) return;
2064
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2065
+ try {
2066
+ for(var _iterator = parsed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2067
+ var row = _step.value;
2068
+ if (task.consumerError) break;
2069
+ try {
2070
+ task.onRow(row);
2071
+ } catch (error) {
2072
+ task.consumerError = toError(error);
2073
+ }
2074
+ }
2075
+ } catch (err) {
2076
+ _didIteratorError = true;
2077
+ _iteratorError = err;
2078
+ } finally{
2079
+ try {
2080
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2081
+ } finally{
2082
+ if (_didIteratorError) throw _iteratorError;
2083
+ }
2084
+ }
2085
+ }
2086
+ function settleUtils_settleTask(task, error, value, metrics) {
2087
+ var _ref = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {}, _ref_resetRowParser = _ref.resetRowParser, resetRowParser = void 0 === _ref_resetRowParser ? false : _ref_resetRowParser;
2088
+ if (task.settled) return;
2089
+ task.settled = true;
2090
+ if (resetRowParser) {
2091
+ var _task_rowParser_reset, _task_rowParser;
2092
+ null == (_task_rowParser = task.rowParser) || null == (_task_rowParser_reset = _task_rowParser.reset) || _task_rowParser_reset.call(_task_rowParser);
2093
+ }
2094
+ if (error) {
2095
+ null == metrics || metrics.incrementTasksFailed();
2096
+ task.reject(toError(error));
2097
+ return;
2098
+ }
2099
+ var duration = task.startTime > 0 ? performance.now() - task.startTime : 0;
2100
+ null == metrics || metrics.incrementTasksSuccess(duration);
2101
+ task.resolve(value);
2102
+ }
2103
+ function buildPayload(sql, token) {
2104
+ var _ref = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, _ref_skipNormalize = _ref.skipNormalize, skipNormalize = void 0 === _ref_skipNormalize ? false : _ref_skipNormalize;
2105
+ var normalized = skipNormalize ? sql : normalizeSQL(sql);
2106
+ var suffix = normalized.endsWith(";") ? "" : ";";
2107
+ return "".concat(normalized).concat(suffix, "\nSELECT '").concat(token, "' AS ").concat(TOKEN_COLUMN, ";\n");
2108
+ }
2109
+ function isTransactionControl(sql) {
2110
+ var f = sql.charCodeAt(0);
2111
+ if (66 === f || 98 === f) return "BEGIN" === sql || "BEGIN;" === sql || sql.startsWith("BEGIN ") || sql.startsWith("BEGIN;");
2112
+ if (67 === f || 99 === f) return "COMMIT" === sql || "COMMIT;" === sql || sql.startsWith("COMMIT ") || sql.startsWith("COMMIT;");
2113
+ if (82 === f || 114 === f) return "ROLLBACK" === sql || "ROLLBACK;" === sql || sql.startsWith("ROLLBACK ") || sql.startsWith("ROLLBACK;");
2114
+ return false;
2115
+ }
2116
+ function buildBatchPayload(batch) {
2117
+ var useWalBatch = batch.length > 1 && batch.every(function(t) {
2118
+ return "execute" === t.kind && !isTransactionControl(t.sql);
2119
+ });
2120
+ if (useWalBatch) {
2121
+ var parts = [
2122
+ "BEGIN;\n"
2123
+ ];
2124
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2125
+ try {
2126
+ for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2127
+ var task = _step.value;
2128
+ parts.push(task.sql, "\n");
2129
+ parts.push("SELECT '".concat(task.token, "' AS ").concat(TOKEN_COLUMN, ";\n"));
2130
+ }
2131
+ } catch (err) {
2132
+ _didIteratorError = true;
2133
+ _iteratorError = err;
2134
+ } finally{
2135
+ try {
2136
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2137
+ } finally{
2138
+ if (_didIteratorError) throw _iteratorError;
2139
+ }
2140
+ }
2141
+ parts.push("COMMIT;\n");
2142
+ return parts.join("");
2143
+ }
2144
+ var parts1 = [];
2145
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2146
+ try {
2147
+ for(var _iterator1 = batch[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2148
+ var task1 = _step1.value;
2149
+ parts1.push(buildPayload(task1.sql, task1.token, {
2150
+ skipNormalize: true
2151
+ }));
2152
+ }
2153
+ } catch (err) {
2154
+ _didIteratorError1 = true;
2155
+ _iteratorError1 = err;
2156
+ } finally{
2157
+ try {
2158
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2159
+ } finally{
2160
+ if (_didIteratorError1) throw _iteratorError1;
2161
+ }
2162
+ }
2163
+ return parts1.join("");
2164
+ }
2165
+ var TC_FIRST_CHAR = TOKEN_COLUMN.charCodeAt(0);
2166
+ function buildSentinelStr(token) {
2167
+ return '[{"'.concat(TOKEN_COLUMN, '":"').concat(token, '"}]');
2168
+ }
2169
+ function isSentinelRaw(raw, token) {
2170
+ return raw.charCodeAt(3) === TC_FIRST_CHAR && raw === buildSentinelStr(token);
2171
+ }
2172
+ function isSentinelRow(value, token) {
2173
+ var _value_;
2174
+ return Array.isArray(value) && 1 === value.length && (null == (_value_ = value[0]) ? void 0 : _value_[TOKEN_COLUMN]) === token;
2175
+ }
2176
+ function pipelineUtils_array_like_to_array(arr, len) {
2177
+ if (null == len || len > arr.length) len = arr.length;
2178
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
2179
+ return arr2;
2180
+ }
2181
+ function pipelineUtils_array_without_holes(arr) {
2182
+ if (Array.isArray(arr)) return pipelineUtils_array_like_to_array(arr);
2183
+ }
2184
+ function pipelineUtils_iterable_to_array(iter) {
2185
+ if ("undefined" != typeof Symbol && null != iter[Symbol.iterator] || null != iter["@@iterator"]) return Array.from(iter);
2186
+ }
2187
+ function pipelineUtils_non_iterable_spread() {
2188
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2189
+ }
2190
+ function pipelineUtils_to_consumable_array(arr) {
2191
+ return pipelineUtils_array_without_holes(arr) || pipelineUtils_iterable_to_array(arr) || pipelineUtils_unsupported_iterable_to_array(arr) || pipelineUtils_non_iterable_spread();
2192
+ }
2193
+ function pipelineUtils_unsupported_iterable_to_array(o, minLen) {
2194
+ if (!o) return;
2195
+ if ("string" == typeof o) return pipelineUtils_array_like_to_array(o, minLen);
2196
+ var n = Object.prototype.toString.call(o).slice(8, -1);
2197
+ if ("Object" === n && o.constructor) n = o.constructor.name;
2198
+ if ("Map" === n || "Set" === n) return Array.from(n);
2199
+ if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pipelineUtils_array_like_to_array(o, minLen);
2200
+ }
2201
+ function finalizePendingTasks(tasks, settle, pumpQueue, pendingStderr, inflight) {
2202
+ var hasStderrBuffer = pendingStderr && pendingStderr.length > 0;
2203
+ if (hasStderrBuffer) {
2204
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2205
+ try {
2206
+ for(var _iterator = pendingStderr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2207
+ var chunk = _step.value;
2208
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2209
+ try {
2210
+ for(var _iterator1 = tasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2211
+ var t = _step1.value;
2212
+ if ("query" === t.kind && 0 === t.rows.length) t.stderrText += chunk;
2213
+ }
2214
+ } catch (err) {
2215
+ _didIteratorError1 = true;
2216
+ _iteratorError1 = err;
2217
+ } finally{
2218
+ try {
2219
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2220
+ } finally{
2221
+ if (_didIteratorError1) throw _iteratorError1;
2222
+ }
2223
+ }
2224
+ }
2225
+ } catch (err) {
2226
+ _didIteratorError = true;
2227
+ _iteratorError = err;
2228
+ } finally{
2229
+ try {
2230
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2231
+ } finally{
2232
+ if (_didIteratorError) throw _iteratorError;
2233
+ }
2234
+ }
2235
+ if (!inflight || 0 === inflight.count) pendingStderr.length = 0;
2236
+ }
2237
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
2238
+ try {
2239
+ for(var _iterator2 = tasks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
2240
+ var task = _step2.value;
2241
+ if (task.stderrText) {
2242
+ settle(task, new Error(task.stderrText.trim()), void 0);
2243
+ continue;
2244
+ }
2245
+ if (task.consumerError) {
2246
+ settle(task, task.consumerError, void 0);
2247
+ continue;
2248
+ }
2249
+ if ("query" === task.kind) {
2250
+ settle(task, null, task.rows);
2251
+ continue;
2252
+ }
2253
+ settle(task, null, void 0);
2254
+ }
2255
+ } catch (err) {
2256
+ _didIteratorError2 = true;
2257
+ _iteratorError2 = err;
2258
+ } finally{
2259
+ try {
2260
+ if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
2261
+ } finally{
2262
+ if (_didIteratorError2) throw _iteratorError2;
2263
+ }
2264
+ }
2265
+ tasks.clear();
2266
+ pumpQueue();
2267
+ }
2268
+ function prepareTaskTimeout(task, metrics) {
2269
+ if (task.settled) return null;
2270
+ task.timedout = true;
2271
+ null == metrics || metrics.incrementTasksTimeout();
2272
+ return createTimeoutError(task.timeout, task.sql);
2273
+ }
2274
+ function createSweeper(param) {
2275
+ var inflight = param.inflight, sweepIntervalMs = param.sweepIntervalMs, handleTaskTimeout = param.handleTaskTimeout;
2276
+ var sweepTimer = null;
2277
+ var schedule = function() {
2278
+ if (sweepTimer) return;
2279
+ sweepTimer = setTimeout(function() {
2280
+ sweepTimer = null;
2281
+ var now = performance.now();
2282
+ inflight.forEach(function(task) {
2283
+ if (now - task.startTime > task.timeout) handleTaskTimeout(task);
2284
+ });
2285
+ if (inflight.count > 0) schedule();
2286
+ }, sweepIntervalMs).unref();
2287
+ };
2288
+ var clear = function() {
2289
+ clearTimeout(sweepTimer);
2290
+ sweepTimer = null;
2291
+ };
2292
+ return {
2293
+ schedule: schedule,
2294
+ clear: clear,
2295
+ getSweepTimer: function() {
2296
+ return sweepTimer;
2297
+ }
2298
+ };
2299
+ }
2300
+ function createFinalizeScheduler(param) {
2301
+ var pendingFinalizeTasks = param.pendingFinalizeTasks, settle = param.settleTask, pumpQueue = param.pumpQueue, pendingStderr = param.pendingStderr, inflight = param.inflight;
2302
+ var scheduled = false;
2303
+ var immediate = null;
2304
+ var cancelled = false;
2305
+ var cancel = function() {
2306
+ cancelled = true;
2307
+ if (immediate) {
2308
+ clearImmediate(immediate);
2309
+ immediate = null;
2310
+ }
2311
+ };
2312
+ var check = function() {
2313
+ if (cancelled) return;
2314
+ if (scheduled) return;
2315
+ if (0 === pendingFinalizeTasks.size) return;
2316
+ scheduled = true;
2317
+ immediate = setImmediate(function() {
2318
+ immediate = null;
2319
+ if (cancelled) return;
2320
+ finalizePendingTasks(pendingFinalizeTasks, settle, pumpQueue, pendingStderr, inflight);
2321
+ scheduled = false;
2322
+ });
2323
+ };
2324
+ check.cancel = cancel;
2325
+ return check;
2326
+ }
2327
+ function advanceNextInflightStartTime(inflight) {
2328
+ var next = inflight.first;
2329
+ if (next && next.startTime > 0) {
2330
+ var now = performance.now();
2331
+ if (now > next.startTime) next.startTime = now;
2332
+ }
2333
+ }
2334
+ function handleParsedValue(raw, inflight, param) {
2335
+ var afterSentinel = param.afterSentinel, rejectAll = param.rejectAll;
2336
+ var task = inflight.first;
2337
+ if (!task) return;
2338
+ if (isSentinelRaw(raw, task.token)) {
2339
+ inflight.shift();
2340
+ advanceNextInflightStartTime(inflight);
2341
+ afterSentinel(task);
2342
+ return;
2343
+ }
2344
+ if ("[]" === raw) return;
2345
+ var parsed;
2346
+ try {
2347
+ parsed = JSON.parse(raw);
2348
+ } catch (error) {
2349
+ rejectAll(new Error("Invalid JSON from sqlite3: ".concat(toError(error).message)));
2350
+ return;
2351
+ }
2352
+ if (isSentinelRow(parsed, task.token)) {
2353
+ inflight.shift();
2354
+ advanceNextInflightStartTime(inflight);
2355
+ afterSentinel(task);
2356
+ return;
2357
+ }
2358
+ if (task.timedout) return;
2359
+ if ("query" === task.kind) return void collectQueryRows(task, parsed);
2360
+ if ("stream" === task.kind) processStreamRows(task, parsed);
2361
+ }
2362
+ function createPumpQueue(param) {
2363
+ var queue = param.queue, inflight = param.inflight, processManager = param.processManager, sweeper = param.sweeper, batchSize = param.batchSize, maxInflight = param.maxInflight;
2364
+ var nextBatchId = 1;
2365
+ return function pump() {
2366
+ var _inflight;
2367
+ if (processManager.draining) return void processManager.onDrained(function() {
2368
+ return pump();
2369
+ });
2370
+ if (inflight.count >= maxInflight) return;
2371
+ var batch = [];
2372
+ while(batch.length < batchSize && !queue.isEmpty() && inflight.count + batch.length < maxInflight){
2373
+ var task = queue.peek();
2374
+ if ("stream" === task.kind && (batch.length > 0 || inflight.count > 0)) break;
2375
+ queue.dequeue();
2376
+ batch.push(task);
2377
+ }
2378
+ if (0 === batch.length) return;
2379
+ var now = performance.now();
2380
+ var payload = buildBatchPayload(batch);
2381
+ var batchId = nextBatchId++;
2382
+ var useWalBatch = payload.startsWith("BEGIN;");
2383
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2384
+ try {
2385
+ for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2386
+ var task1 = _step.value;
2387
+ task1.startTime = now;
2388
+ task1.batchId = batchId;
2389
+ task1.walBatch = useWalBatch;
2390
+ }
2391
+ } catch (err) {
2392
+ _didIteratorError = true;
2393
+ _iteratorError = err;
2394
+ } finally{
2395
+ try {
2396
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2397
+ } finally{
2398
+ if (_didIteratorError) throw _iteratorError;
2399
+ }
2400
+ }
2401
+ (_inflight = inflight).push.apply(_inflight, pipelineUtils_to_consumable_array(batch));
2402
+ sweeper.schedule();
2403
+ processManager.write(payload);
2404
+ };
2405
+ }
2406
+ function handleSentinelTask(task, param) {
2407
+ var settleTask = param.settleTask, pendingFinalizeTasks = param.pendingFinalizeTasks, scheduleFinalizeCheck = param.scheduleFinalizeCheck, pumpQueue = param.pumpQueue;
2408
+ if (task.timedout) return void pumpQueue();
2409
+ if (task.consumerError) {
2410
+ settleTask(task, task.consumerError, void 0);
2411
+ pumpQueue();
2412
+ return;
2413
+ }
2414
+ pendingFinalizeTasks.add(task);
2415
+ scheduleFinalizeCheck();
2416
+ pumpQueue();
2417
+ }
2418
+ function handleStderrChunk(chunk, param) {
2419
+ var inflight = param.inflight, pendingFinalizeTasks = param.pendingFinalizeTasks, logger = param.logger, pendingStderr = param.pendingStderr;
2420
+ var inflightFirst = inflight.first;
2421
+ var firstPending = pendingFinalizeTasks.values().next().value;
2422
+ var zeroRowMatch = false;
2423
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2424
+ try {
2425
+ for(var _iterator = pendingFinalizeTasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2426
+ var t = _step.value;
2427
+ if ("query" === t.kind && 0 === t.rows.length) {
2428
+ t.stderrText += chunk;
2429
+ zeroRowMatch = true;
2430
+ }
2431
+ }
2432
+ } catch (err) {
2433
+ _didIteratorError = true;
2434
+ _iteratorError = err;
2435
+ } finally{
2436
+ try {
2437
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2438
+ } finally{
2439
+ if (_didIteratorError) throw _iteratorError;
2440
+ }
2441
+ }
2442
+ if (zeroRowMatch) return;
2443
+ var task = null != inflightFirst ? inflightFirst : firstPending;
2444
+ if (!task) {
2445
+ var _logger_error;
2446
+ null == logger || null == (_logger_error = logger.error) || _logger_error.call(logger, chunk.trim());
2447
+ return;
2448
+ }
2449
+ if (null == task.batchId) {
2450
+ task.stderrText += chunk;
2451
+ return;
2452
+ }
2453
+ if (task.walBatch) {
2454
+ task.stderrText += chunk;
2455
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2456
+ try {
2457
+ for(var _iterator1 = pendingFinalizeTasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2458
+ var t1 = _step1.value;
2459
+ if (t1 !== task) t1.stderrText += chunk;
2460
+ }
2461
+ } catch (err) {
2462
+ _didIteratorError1 = true;
2463
+ _iteratorError1 = err;
2464
+ } finally{
2465
+ try {
2466
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2467
+ } finally{
2468
+ if (_didIteratorError1) throw _iteratorError1;
2469
+ }
2470
+ }
2471
+ inflight.forEach(function(t) {
2472
+ if (t !== task) t.stderrText += chunk;
2473
+ });
2474
+ return;
2475
+ }
2476
+ if (task === inflightFirst) {
2477
+ if (inflight.count > 1) null == pendingStderr || pendingStderr.push(chunk);
2478
+ else if (pendingFinalizeTasks.size > 0) {
2479
+ var hasZeroRowQuery = false;
2480
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
2481
+ try {
2482
+ for(var _iterator2 = pendingFinalizeTasks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
2483
+ var t2 = _step2.value;
2484
+ if ("query" === t2.kind && 0 === t2.rows.length) {
2485
+ hasZeroRowQuery = true;
2486
+ break;
2487
+ }
2488
+ }
2489
+ } catch (err) {
2490
+ _didIteratorError2 = true;
2491
+ _iteratorError2 = err;
2492
+ } finally{
2493
+ try {
2494
+ if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
2495
+ } finally{
2496
+ if (_didIteratorError2) throw _iteratorError2;
2497
+ }
2498
+ }
2499
+ if (hasZeroRowQuery) null == pendingStderr || pendingStderr.push(chunk);
2500
+ else if ("query" === task.kind && task.rows.length > 0) {
2501
+ var _logger_error1;
2502
+ null == logger || null == (_logger_error1 = logger.error) || _logger_error1.call(logger, chunk.trim());
2503
+ } else task.stderrText += chunk;
2504
+ } else if ("query" === task.kind && task.rows.length > 0) {
2505
+ var _logger_error2;
2506
+ null == logger || null == (_logger_error2 = logger.error) || _logger_error2.call(logger, chunk.trim());
2507
+ } else task.stderrText += chunk;
2508
+ return;
2509
+ }
2510
+ var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;
2511
+ try {
2512
+ for(var _iterator3 = pendingFinalizeTasks[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true){
2513
+ var t3 = _step3.value;
2514
+ t3.stderrText += chunk;
2515
+ }
2516
+ } catch (err) {
2517
+ _didIteratorError3 = true;
2518
+ _iteratorError3 = err;
2519
+ } finally{
2520
+ try {
2521
+ if (!_iteratorNormalCompletion3 && null != _iterator3["return"]) _iterator3["return"]();
2522
+ } finally{
2523
+ if (_didIteratorError3) throw _iteratorError3;
2524
+ }
2525
+ }
2526
+ }
2527
+ function rejectAllTasks(param) {
2528
+ var inflight = param.inflight, queue = param.queue, pendingFinalizeTasks = param.pendingFinalizeTasks, settleTask = param.settleTask, error = param.error;
2529
+ var all = inflight.toArray();
2530
+ inflight.clear();
2531
+ var queued = queue.dequeue();
2532
+ while(queued){
2533
+ settleTask(queued, error, void 0);
2534
+ queued = queue.dequeue();
2535
+ }
2536
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2537
+ try {
2538
+ for(var _iterator = all[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2539
+ var task = _step.value;
2540
+ settleTask(task, error, void 0);
2541
+ }
2542
+ } catch (err) {
2543
+ _didIteratorError = true;
2544
+ _iteratorError = err;
2545
+ } finally{
2546
+ try {
2547
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2548
+ } finally{
2549
+ if (_didIteratorError) throw _iteratorError;
2550
+ }
2551
+ }
2552
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2553
+ try {
2554
+ for(var _iterator1 = pendingFinalizeTasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2555
+ var task1 = _step1.value;
2556
+ settleTask(task1, error, void 0);
2557
+ }
2558
+ } catch (err) {
2559
+ _didIteratorError1 = true;
2560
+ _iteratorError1 = err;
2561
+ } finally{
2562
+ try {
2563
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2564
+ } finally{
2565
+ if (_didIteratorError1) throw _iteratorError1;
2566
+ }
2567
+ }
2568
+ pendingFinalizeTasks.clear();
2569
+ }
2570
+ function taskWorker_check_private_redeclaration(obj, privateCollection) {
2571
+ if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
2572
+ }
2573
+ function taskWorker_class_apply_descriptor_get(receiver, descriptor) {
2574
+ if (descriptor.get) return descriptor.get.call(receiver);
2575
+ return descriptor.value;
2576
+ }
2577
+ function taskWorker_class_apply_descriptor_set(receiver, descriptor, value) {
2578
+ if (descriptor.set) descriptor.set.call(receiver, value);
2579
+ else {
2580
+ if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
2581
+ descriptor.value = value;
2582
+ }
2583
+ }
2584
+ function taskWorker_class_call_check(instance, Constructor) {
2585
+ if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
2586
+ }
2587
+ function taskWorker_class_extract_field_descriptor(receiver, privateMap, action) {
2588
+ if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
2589
+ return privateMap.get(receiver);
2590
+ }
2591
+ function taskWorker_class_private_field_get(receiver, privateMap) {
2592
+ var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "get");
2593
+ return taskWorker_class_apply_descriptor_get(receiver, descriptor);
2594
+ }
2595
+ function taskWorker_class_private_field_init(obj, privateMap, value) {
2596
+ taskWorker_check_private_redeclaration(obj, privateMap);
2597
+ privateMap.set(obj, value);
2598
+ }
2599
+ function taskWorker_class_private_field_set(receiver, privateMap, value) {
2600
+ var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "set");
2601
+ taskWorker_class_apply_descriptor_set(receiver, descriptor, value);
2602
+ return value;
2603
+ }
2604
+ function taskWorker_class_private_method_get(receiver, privateSet, fn) {
2605
+ if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
2606
+ return fn;
2607
+ }
2608
+ function taskWorker_class_private_method_init(obj, privateSet) {
2609
+ taskWorker_check_private_redeclaration(obj, privateSet);
2610
+ privateSet.add(obj);
2611
+ }
2612
+ function taskWorker_defineProperties(target, props) {
2613
+ for(var i = 0; i < props.length; i++){
2614
+ var descriptor = props[i];
2615
+ descriptor.enumerable = descriptor.enumerable || false;
2616
+ descriptor.configurable = true;
2617
+ if ("value" in descriptor) descriptor.writable = true;
2618
+ Object.defineProperty(target, descriptor.key, descriptor);
2619
+ }
2620
+ }
2621
+ function taskWorker_create_class(Constructor, protoProps, staticProps) {
2622
+ if (protoProps) taskWorker_defineProperties(Constructor.prototype, protoProps);
2623
+ if (staticProps) taskWorker_defineProperties(Constructor, staticProps);
2624
+ return Constructor;
2625
+ }
2626
+ var _processManager = /*#__PURE__*/ new WeakMap(), _pendingQueue = /*#__PURE__*/ new WeakMap(), taskWorker_inflight = /*#__PURE__*/ new WeakMap(), _pendingFinalizeTasks = /*#__PURE__*/ new WeakMap(), _valueParser = /*#__PURE__*/ new WeakMap(), _statementTimeout = /*#__PURE__*/ new WeakMap(), _logger = /*#__PURE__*/ new WeakMap(), _name = /*#__PURE__*/ new WeakMap(), _batchSize = /*#__PURE__*/ new WeakMap(), _maxInflight = /*#__PURE__*/ new WeakMap(), _metrics = /*#__PURE__*/ new WeakMap(), _sweeper = /*#__PURE__*/ new WeakMap(), _scheduleFinalizeCheck = /*#__PURE__*/ new WeakMap(), _pump = /*#__PURE__*/ new WeakMap(), _pendingStderr = /*#__PURE__*/ new WeakMap(), _startProcess = /*#__PURE__*/ new WeakSet(), _pumpQueue = /*#__PURE__*/ new WeakSet(), _afterSentinel = /*#__PURE__*/ new WeakSet(), _handleStderrChunk = /*#__PURE__*/ new WeakSet(), _settleTask = /*#__PURE__*/ new WeakSet(), _rejectAll = /*#__PURE__*/ new WeakSet();
2049
2627
  var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2050
2628
  "use strict";
2051
2629
  function TaskWorker(param) {
@@ -2053,15 +2631,9 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2053
2631
  var binary = param.binary, database = param.database, statementTimeout = param.statementTimeout, logger = param.logger, name = param.name, initMode = param.initMode, _param_batchSize = param.batchSize, batchSize = void 0 === _param_batchSize ? DEFAULT_BATCH_SIZE : _param_batchSize, _param_maxInflight = param.maxInflight, maxInflight = void 0 === _param_maxInflight ? DEFAULT_MAX_INFLIGHT : _param_maxInflight, metrics = param.metrics, _param_sweepInterval = param.sweepInterval, sweepInterval = void 0 === _param_sweepInterval ? 100 : _param_sweepInterval;
2054
2632
  taskWorker_class_call_check(this, TaskWorker);
2055
2633
  taskWorker_class_private_method_init(this, _startProcess);
2056
- taskWorker_class_private_method_init(this, _inflightCount);
2057
- taskWorker_class_private_method_init(this, _firstInflight);
2058
- taskWorker_class_private_method_init(this, _shiftInflight);
2059
2634
  taskWorker_class_private_method_init(this, _pumpQueue);
2060
- taskWorker_class_private_method_init(this, _handleParsedValue);
2061
- taskWorker_class_private_method_init(this, _scheduleFinalizeCheck);
2635
+ taskWorker_class_private_method_init(this, _afterSentinel);
2062
2636
  taskWorker_class_private_method_init(this, _handleStderrChunk);
2063
- taskWorker_class_private_method_init(this, _scheduleSweep);
2064
- taskWorker_class_private_method_init(this, _handleTaskTimeout);
2065
2637
  taskWorker_class_private_method_init(this, _settleTask);
2066
2638
  taskWorker_class_private_method_init(this, _rejectAll);
2067
2639
  taskWorker_class_private_field_init(this, _processManager, {
@@ -2072,22 +2644,14 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2072
2644
  writable: true,
2073
2645
  value: new queue_Queue()
2074
2646
  });
2075
- taskWorker_class_private_field_init(this, _inflightTasks, {
2647
+ taskWorker_class_private_field_init(this, taskWorker_inflight, {
2076
2648
  writable: true,
2077
- value: []
2078
- });
2079
- taskWorker_class_private_field_init(this, _inflightHead, {
2080
- writable: true,
2081
- value: 0
2649
+ value: new inflightTracker_InflightTracker()
2082
2650
  });
2083
2651
  taskWorker_class_private_field_init(this, _pendingFinalizeTasks, {
2084
2652
  writable: true,
2085
2653
  value: new Set()
2086
2654
  });
2087
- taskWorker_class_private_field_init(this, _scheduledFinalize, {
2088
- writable: true,
2089
- value: false
2090
- });
2091
2655
  taskWorker_class_private_field_init(this, _valueParser, {
2092
2656
  writable: true,
2093
2657
  value: void 0
@@ -2116,31 +2680,72 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2116
2680
  writable: true,
2117
2681
  value: void 0
2118
2682
  });
2119
- taskWorker_class_private_field_init(this, _sweepTimer, {
2683
+ taskWorker_class_private_field_init(this, _sweeper, {
2120
2684
  writable: true,
2121
- value: null
2685
+ value: void 0
2122
2686
  });
2123
- taskWorker_class_private_field_init(this, _sweepIntervalMs, {
2687
+ taskWorker_class_private_field_init(this, _scheduleFinalizeCheck, {
2124
2688
  writable: true,
2125
2689
  value: void 0
2126
2690
  });
2691
+ taskWorker_class_private_field_init(this, _pump, {
2692
+ writable: true,
2693
+ value: void 0
2694
+ });
2695
+ taskWorker_class_private_field_init(this, _pendingStderr, {
2696
+ writable: true,
2697
+ value: []
2698
+ });
2127
2699
  taskWorker_class_private_field_set(this, _name, null != name ? name : "worker");
2128
2700
  taskWorker_class_private_field_set(this, _statementTimeout, statementTimeout);
2129
2701
  taskWorker_class_private_field_set(this, _logger, logger);
2130
2702
  taskWorker_class_private_field_set(this, _batchSize, batchSize);
2131
2703
  taskWorker_class_private_field_set(this, _maxInflight, maxInflight);
2132
2704
  taskWorker_class_private_field_set(this, _metrics, metrics);
2133
- taskWorker_class_private_field_set(this, _sweepIntervalMs, sweepInterval);
2134
2705
  taskWorker_class_private_field_set(this, _processManager, new process_ProcessManager({
2135
2706
  binary: binary,
2136
2707
  database: database,
2137
- initMode: initMode,
2138
- onDrain: function() {
2139
- return taskWorker_class_private_method_get(_this, _pumpQueue, taskWorker_pumpQueue).call(_this);
2708
+ initMode: initMode
2709
+ }));
2710
+ taskWorker_class_private_field_get(this, _processManager).setOnDrainCallback(function() {
2711
+ return taskWorker_class_private_method_get(_this, _pumpQueue, taskWorker_pumpQueue).call(_this);
2712
+ });
2713
+ taskWorker_class_private_field_set(this, _sweeper, createSweeper({
2714
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight),
2715
+ sweepIntervalMs: sweepInterval,
2716
+ handleTaskTimeout: function(task) {
2717
+ var error = prepareTaskTimeout(task, taskWorker_class_private_field_get(_this, _metrics));
2718
+ if (error) taskWorker_class_private_method_get(_this, _settleTask, settleTask1).call(_this, task, error, void 0);
2140
2719
  }
2141
2720
  }));
2721
+ taskWorker_class_private_field_set(this, _pump, createPumpQueue({
2722
+ queue: taskWorker_class_private_field_get(this, _pendingQueue),
2723
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight),
2724
+ processManager: taskWorker_class_private_field_get(this, _processManager),
2725
+ sweeper: taskWorker_class_private_field_get(this, _sweeper),
2726
+ batchSize: taskWorker_class_private_field_get(this, _batchSize),
2727
+ maxInflight: taskWorker_class_private_field_get(this, _maxInflight)
2728
+ }));
2729
+ taskWorker_class_private_field_set(this, _scheduleFinalizeCheck, createFinalizeScheduler({
2730
+ pendingFinalizeTasks: taskWorker_class_private_field_get(this, _pendingFinalizeTasks),
2731
+ settleTask: function(t, e, v1) {
2732
+ return taskWorker_class_private_method_get(_this, _settleTask, settleTask1).call(_this, t, e, v1);
2733
+ },
2734
+ pumpQueue: function() {
2735
+ return taskWorker_class_private_method_get(_this, _pumpQueue, taskWorker_pumpQueue).call(_this);
2736
+ },
2737
+ pendingStderr: taskWorker_class_private_field_get(this, _pendingStderr),
2738
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight)
2739
+ }));
2142
2740
  taskWorker_class_private_field_set(this, _valueParser, createJsonValueParser(function(raw) {
2143
- return taskWorker_class_private_method_get(_this, _handleParsedValue, handleParsedValue).call(_this, raw);
2741
+ handleParsedValue(raw, taskWorker_class_private_field_get(_this, taskWorker_inflight), {
2742
+ afterSentinel: function(task) {
2743
+ return taskWorker_class_private_method_get(_this, _afterSentinel, taskWorker_afterSentinel).call(_this, task);
2744
+ },
2745
+ rejectAll: function(error) {
2746
+ return taskWorker_class_private_method_get(_this, _rejectAll, taskWorker_rejectAll).call(_this, error);
2747
+ }
2748
+ });
2144
2749
  }));
2145
2750
  taskWorker_class_private_method_get(this, _startProcess, startProcess).call(this);
2146
2751
  }
@@ -2154,13 +2759,13 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2154
2759
  {
2155
2760
  key: "idle",
2156
2761
  get: function() {
2157
- return taskWorker_class_private_field_get(this, _inflightTasks).length === taskWorker_class_private_field_get(this, _inflightHead) && taskWorker_class_private_field_get(this, _pendingQueue).isEmpty() && 0 === taskWorker_class_private_field_get(this, _pendingFinalizeTasks).size;
2762
+ return 0 === taskWorker_class_private_field_get(this, taskWorker_inflight).count && taskWorker_class_private_field_get(this, _pendingQueue).isEmpty() && 0 === taskWorker_class_private_field_get(this, _pendingFinalizeTasks).size;
2158
2763
  }
2159
2764
  },
2160
2765
  {
2161
2766
  key: "pendingStatements",
2162
2767
  get: function() {
2163
- return taskWorker_class_private_field_get(this, _pendingQueue).size + (taskWorker_class_private_field_get(this, _inflightTasks).length - taskWorker_class_private_field_get(this, _inflightHead)) + taskWorker_class_private_field_get(this, _pendingFinalizeTasks).size;
2768
+ return taskWorker_class_private_field_get(this, _pendingQueue).size + taskWorker_class_private_field_get(this, taskWorker_inflight).count + taskWorker_class_private_field_get(this, _pendingFinalizeTasks).size;
2164
2769
  }
2165
2770
  },
2166
2771
  {
@@ -2190,7 +2795,9 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2190
2795
  {
2191
2796
  key: "_sweepTimer",
2192
2797
  get: function() {
2193
- return taskWorker_class_private_field_get(this, _sweepTimer);
2798
+ var _$_class_private_field_get;
2799
+ var _class_private_field_get_getSweepTimer;
2800
+ return null != (_class_private_field_get_getSweepTimer = null == (_$_class_private_field_get = taskWorker_class_private_field_get(this, _sweeper)) ? void 0 : _$_class_private_field_get.getSweepTimer()) ? _class_private_field_get_getSweepTimer : null;
2194
2801
  }
2195
2802
  },
2196
2803
  {
@@ -2202,8 +2809,9 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2202
2809
  {
2203
2810
  key: "kill",
2204
2811
  value: function() {
2205
- clearTimeout(taskWorker_class_private_field_get(this, _sweepTimer));
2206
- taskWorker_class_private_field_set(this, _sweepTimer, null);
2812
+ var _class_private_field_get_cancel, _$_class_private_field_get;
2813
+ taskWorker_class_private_field_get(this, _sweeper).clear();
2814
+ null == (_class_private_field_get_cancel = (_$_class_private_field_get = taskWorker_class_private_field_get(this, _scheduleFinalizeCheck)).cancel) || _class_private_field_get_cancel.call(_$_class_private_field_get);
2207
2815
  taskWorker_class_private_method_get(this, _rejectAll, taskWorker_rejectAll).call(this, new Error("".concat(taskWorker_class_private_field_get(this, _name), " is killed")));
2208
2816
  taskWorker_class_private_field_get(this, _processManager).kill();
2209
2817
  }
@@ -2218,7 +2826,7 @@ function startProcess() {
2218
2826
  taskWorker_class_private_field_get(_this, _valueParser).feed(chunk);
2219
2827
  });
2220
2828
  proc.stderr.on("data", function(chunk) {
2221
- taskWorker_class_private_method_get(_this, _handleStderrChunk, taskWorker_handleStderrChunk).call(_this, chunk);
2829
+ taskWorker_class_private_method_get(_this, _handleStderrChunk, taskWorker_handleStderrChunk1).call(_this, chunk);
2222
2830
  });
2223
2831
  proc.on("error", function(error) {
2224
2832
  var _class_private_field_get_error, _$_class_private_field_get;
@@ -2232,200 +2840,47 @@ function startProcess() {
2232
2840
  taskWorker_class_private_method_get(_this, _rejectAll, taskWorker_rejectAll).call(_this, err);
2233
2841
  });
2234
2842
  }
2235
- function inflightCount() {
2236
- return taskWorker_class_private_field_get(this, _inflightTasks).length - taskWorker_class_private_field_get(this, _inflightHead);
2237
- }
2238
- function firstInflight() {
2239
- return taskWorker_class_private_field_get(this, _inflightHead) < taskWorker_class_private_field_get(this, _inflightTasks).length ? taskWorker_class_private_field_get(this, _inflightTasks)[taskWorker_class_private_field_get(this, _inflightHead)] : null;
2240
- }
2241
- function shiftInflight() {
2242
- var task = taskWorker_class_private_field_get(this, _inflightTasks)[taskWorker_class_private_field_get(this, _inflightHead)];
2243
- taskWorker_class_private_field_get(this, _inflightTasks)[taskWorker_class_private_field_get(this, _inflightHead)] = null;
2244
- taskWorker_class_private_field_update(this, _inflightHead).value++;
2245
- if (taskWorker_class_private_field_get(this, _inflightHead) >= taskWorker_class_private_field_get(this, _inflightTasks).length) {
2246
- taskWorker_class_private_field_set(this, _inflightTasks, []);
2247
- taskWorker_class_private_field_set(this, _inflightHead, 0);
2248
- } else if (taskWorker_class_private_field_get(this, _inflightHead) > 128) {
2249
- taskWorker_class_private_field_set(this, _inflightTasks, taskWorker_class_private_field_get(this, _inflightTasks).slice(taskWorker_class_private_field_get(this, _inflightHead)));
2250
- taskWorker_class_private_field_set(this, _inflightHead, 0);
2251
- }
2252
- return task;
2253
- }
2254
2843
  function taskWorker_pumpQueue() {
2255
- var _$_class_private_field_get;
2256
- if (taskWorker_class_private_field_get(this, _processManager).draining) return;
2257
- if (taskWorker_class_private_method_get(this, _inflightCount, inflightCount).call(this) >= taskWorker_class_private_field_get(this, _maxInflight)) return;
2258
- var batch = [];
2259
- while(batch.length < taskWorker_class_private_field_get(this, _batchSize) && !taskWorker_class_private_field_get(this, _pendingQueue).isEmpty() && taskWorker_class_private_method_get(this, _inflightCount, inflightCount).call(this) + batch.length < taskWorker_class_private_field_get(this, _maxInflight)){
2260
- var task = taskWorker_class_private_field_get(this, _pendingQueue).peek();
2261
- if ("stream" === task.kind && (batch.length > 0 || taskWorker_class_private_method_get(this, _inflightCount, inflightCount).call(this) > 0)) break;
2262
- taskWorker_class_private_field_get(this, _pendingQueue).dequeue();
2263
- batch.push(task);
2264
- }
2265
- if (0 === batch.length) return;
2266
- var now = performance.now();
2267
- var payload = buildBatchPayload(batch);
2268
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2269
- try {
2270
- for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2271
- var task1 = _step.value;
2272
- task1.startTime = now;
2273
- }
2274
- } catch (err) {
2275
- _didIteratorError = true;
2276
- _iteratorError = err;
2277
- } finally{
2278
- try {
2279
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2280
- } finally{
2281
- if (_didIteratorError) throw _iteratorError;
2282
- }
2283
- }
2284
- (_$_class_private_field_get = taskWorker_class_private_field_get(this, _inflightTasks)).push.apply(_$_class_private_field_get, _to_consumable_array(batch));
2285
- taskWorker_class_private_method_get(this, _scheduleSweep, scheduleSweep).call(this);
2286
- taskWorker_class_private_field_get(this, _processManager).write(payload);
2287
- }
2288
- function handleParsedValue(raw) {
2289
- var task = taskWorker_class_private_method_get(this, _firstInflight, firstInflight).call(this);
2290
- if (!task) return;
2291
- if (isSentinelRaw(raw, task.token)) {
2292
- taskWorker_class_private_method_get(this, _shiftInflight, shiftInflight).call(this);
2293
- if (task.timedout) return void taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2294
- if (task.stderrText) {
2295
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, new Error(task.stderrText.trim()), void 0);
2296
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2297
- return;
2298
- }
2299
- if (task.consumerError) {
2300
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, task.consumerError, void 0);
2301
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2302
- return;
2303
- }
2304
- taskWorker_class_private_field_get(this, _pendingFinalizeTasks).add(task);
2305
- taskWorker_class_private_method_get(this, _scheduleFinalizeCheck, scheduleFinalizeCheck).call(this);
2306
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2307
- return;
2308
- }
2309
- if ("[]" === raw) return;
2310
- var parsed;
2311
- try {
2312
- parsed = JSON.parse(raw);
2313
- } catch (error) {
2314
- taskWorker_class_private_method_get(this, _rejectAll, taskWorker_rejectAll).call(this, new Error("Invalid JSON from sqlite3: ".concat(toError(error).message)));
2315
- return;
2316
- }
2317
- if (isSentinelRow(parsed, task.token)) {
2318
- taskWorker_class_private_method_get(this, _shiftInflight, shiftInflight).call(this);
2319
- if (task.timedout) return void taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2320
- if (task.stderrText) {
2321
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, new Error(task.stderrText.trim()), void 0);
2322
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2323
- return;
2324
- }
2325
- if (task.consumerError) {
2326
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, task.consumerError, void 0);
2327
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2328
- return;
2329
- }
2330
- taskWorker_class_private_field_get(this, _pendingFinalizeTasks).add(task);
2331
- taskWorker_class_private_method_get(this, _scheduleFinalizeCheck, scheduleFinalizeCheck).call(this);
2332
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2333
- return;
2334
- }
2335
- if (task.timedout) return;
2336
- if ("query" === task.kind) return void collectQueryRows(task, parsed);
2337
- if ("stream" === task.kind) processStreamRows(task, parsed);
2844
+ taskWorker_class_private_field_get(this, _pump).call(this);
2338
2845
  }
2339
- function scheduleFinalizeCheck() {
2846
+ function taskWorker_afterSentinel(task) {
2340
2847
  var _this = this;
2341
- if (taskWorker_class_private_field_get(this, _scheduledFinalize)) return;
2342
- taskWorker_class_private_field_set(this, _scheduledFinalize, true);
2343
- setImmediate(function() {
2344
- taskWorker_class_private_field_set(_this, _scheduledFinalize, false);
2345
- finalizePendingTasks(taskWorker_class_private_field_get(_this, _pendingFinalizeTasks), function(t, e, v1) {
2848
+ handleSentinelTask(task, {
2849
+ settleTask: function(t, e, v1) {
2346
2850
  return taskWorker_class_private_method_get(_this, _settleTask, settleTask1).call(_this, t, e, v1);
2347
- }, function() {
2851
+ },
2852
+ pendingFinalizeTasks: taskWorker_class_private_field_get(this, _pendingFinalizeTasks),
2853
+ scheduleFinalizeCheck: function() {
2854
+ return taskWorker_class_private_field_get(_this, _scheduleFinalizeCheck).call(_this);
2855
+ },
2856
+ pumpQueue: function() {
2348
2857
  return taskWorker_class_private_method_get(_this, _pumpQueue, taskWorker_pumpQueue).call(_this);
2349
- });
2350
- });
2351
- }
2352
- function taskWorker_handleStderrChunk(chunk) {
2353
- var _class_private_field_get_values_next_value;
2354
- var task = null != (_class_private_field_get_values_next_value = taskWorker_class_private_field_get(this, _pendingFinalizeTasks).values().next().value) ? _class_private_field_get_values_next_value : taskWorker_class_private_method_get(this, _firstInflight, firstInflight).call(this);
2355
- if (!task) {
2356
- var _class_private_field_get_error, _$_class_private_field_get;
2357
- null == (_$_class_private_field_get = taskWorker_class_private_field_get(this, _logger)) || null == (_class_private_field_get_error = _$_class_private_field_get.error) || _class_private_field_get_error.call(_$_class_private_field_get, chunk.trim());
2358
- return;
2359
- }
2360
- task.stderrText += chunk;
2361
- }
2362
- function scheduleSweep() {
2363
- var _this = this;
2364
- if (taskWorker_class_private_field_get(this, _sweepTimer)) return;
2365
- taskWorker_class_private_field_set(this, _sweepTimer, setTimeout(function() {
2366
- taskWorker_class_private_field_set(_this, _sweepTimer, null);
2367
- var tasks = taskWorker_class_private_field_get(_this, _inflightTasks);
2368
- var head = taskWorker_class_private_field_get(_this, _inflightHead);
2369
- var now = performance.now();
2370
- for(var i = head; i < tasks.length; i++){
2371
- var task = tasks[i];
2372
- if (now - task.startTime > task.timeout) taskWorker_class_private_method_get(_this, _handleTaskTimeout, handleTaskTimeout).call(_this, task);
2373
2858
  }
2374
- if (taskWorker_class_private_method_get(_this, _inflightCount, inflightCount).call(_this) > 0) taskWorker_class_private_method_get(_this, _scheduleSweep, scheduleSweep).call(_this);
2375
- }, taskWorker_class_private_field_get(this, _sweepIntervalMs)).unref());
2859
+ });
2376
2860
  }
2377
- function handleTaskTimeout(task) {
2378
- var error = prepareTaskTimeout(task, taskWorker_class_private_field_get(this, _metrics));
2379
- if (error) taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, error, void 0);
2861
+ function taskWorker_handleStderrChunk1(chunk) {
2862
+ handleStderrChunk(chunk, {
2863
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight),
2864
+ pendingFinalizeTasks: taskWorker_class_private_field_get(this, _pendingFinalizeTasks),
2865
+ logger: taskWorker_class_private_field_get(this, _logger),
2866
+ pendingStderr: taskWorker_class_private_field_get(this, _pendingStderr)
2867
+ });
2380
2868
  }
2381
2869
  function settleTask1(task, error, value) {
2382
- settleTask(task, error, value, taskWorker_class_private_field_get(this, _metrics));
2870
+ settleUtils_settleTask(task, error, value, taskWorker_class_private_field_get(this, _metrics));
2383
2871
  }
2384
2872
  function taskWorker_rejectAll(error) {
2385
- clearTimeout(taskWorker_class_private_field_get(this, _sweepTimer));
2386
- taskWorker_class_private_field_set(this, _sweepTimer, null);
2387
- var activeCount = taskWorker_class_private_field_get(this, _inflightTasks).length - taskWorker_class_private_field_get(this, _inflightHead);
2388
- var all = activeCount > 0 ? taskWorker_class_private_field_get(this, _inflightTasks).slice(taskWorker_class_private_field_get(this, _inflightHead)) : [];
2389
- taskWorker_class_private_field_set(this, _inflightTasks, []);
2390
- taskWorker_class_private_field_set(this, _inflightHead, 0);
2391
- var queued = taskWorker_class_private_field_get(this, _pendingQueue).dequeue();
2392
- while(queued){
2393
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, queued, error, void 0);
2394
- queued = taskWorker_class_private_field_get(this, _pendingQueue).dequeue();
2395
- }
2396
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2397
- try {
2398
- for(var _iterator = all[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2399
- var task = _step.value;
2400
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, error, void 0);
2401
- }
2402
- } catch (err) {
2403
- _didIteratorError = true;
2404
- _iteratorError = err;
2405
- } finally{
2406
- try {
2407
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2408
- } finally{
2409
- if (_didIteratorError) throw _iteratorError;
2410
- }
2411
- }
2412
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2413
- try {
2414
- for(var _iterator1 = taskWorker_class_private_field_get(this, _pendingFinalizeTasks)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2415
- var task1 = _step1.value;
2416
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task1, error, void 0);
2417
- }
2418
- } catch (err) {
2419
- _didIteratorError1 = true;
2420
- _iteratorError1 = err;
2421
- } finally{
2422
- try {
2423
- if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2424
- } finally{
2425
- if (_didIteratorError1) throw _iteratorError1;
2426
- }
2427
- }
2428
- taskWorker_class_private_field_get(this, _pendingFinalizeTasks).clear();
2873
+ var _this = this;
2874
+ taskWorker_class_private_field_get(this, _sweeper).clear();
2875
+ rejectAllTasks({
2876
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight),
2877
+ queue: taskWorker_class_private_field_get(this, _pendingQueue),
2878
+ pendingFinalizeTasks: taskWorker_class_private_field_get(this, _pendingFinalizeTasks),
2879
+ settleTask: function(t, e, v1) {
2880
+ return taskWorker_class_private_method_get(_this, _settleTask, settleTask1).call(_this, t, e, v1);
2881
+ },
2882
+ error: error
2883
+ });
2429
2884
  }
2430
2885
  function readerPool_check_private_redeclaration(obj, privateCollection) {
2431
2886
  if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
@@ -2498,7 +2953,7 @@ var readerPool_ReaderPool = /*#__PURE__*/ function() {
2498
2953
  logger: logger,
2499
2954
  metrics: metrics,
2500
2955
  name: "reader-".concat(i),
2501
- initMode: ":memory:" !== database ? "none" : "wal"
2956
+ initMode: ":memory:" !== database ? "none" : "none"
2502
2957
  });
2503
2958
  readerPool_class_private_field_get(this, _workers).push(worker);
2504
2959
  }
@@ -2779,6 +3234,10 @@ var metrics_Metrics = /*#__PURE__*/ function() {
2779
3234
  key: "snapshot",
2780
3235
  value: function() {
2781
3236
  var elapsed = (Date.now() - metrics_class_private_field_get(this, _startTime)) / 1000;
3237
+ var avgTaskDuration;
3238
+ avgTaskDuration = metrics_class_private_field_get(this, _tasksSuccess) > 0 ? metrics_class_private_field_get(this, _totalDuration) / metrics_class_private_field_get(this, _tasksSuccess) : 0;
3239
+ var throughput;
3240
+ throughput = elapsed > 0 ? metrics_class_private_field_get(this, _tasksTotal) / elapsed : 0;
2782
3241
  return {
2783
3242
  tasksTotal: metrics_class_private_field_get(this, _tasksTotal),
2784
3243
  tasksSuccess: metrics_class_private_field_get(this, _tasksSuccess),
@@ -2788,8 +3247,8 @@ var metrics_Metrics = /*#__PURE__*/ function() {
2788
3247
  executeCount: metrics_class_private_field_get(this, _executeCount),
2789
3248
  queryCount: metrics_class_private_field_get(this, _queryCount),
2790
3249
  streamCount: metrics_class_private_field_get(this, _streamCount),
2791
- avgQueryTime: metrics_class_private_field_get(this, _tasksSuccess) > 0 ? metrics_class_private_field_get(this, _totalDuration) / metrics_class_private_field_get(this, _tasksSuccess) : 0,
2792
- qps: elapsed > 0 ? metrics_class_private_field_get(this, _tasksTotal) / elapsed : 0,
3250
+ avgTaskDuration: avgTaskDuration,
3251
+ throughput: throughput,
2793
3252
  uptime: elapsed
2794
3253
  };
2795
3254
  }
@@ -3063,7 +3522,7 @@ var transactionScope_TransactionScope = /*#__PURE__*/ function() {
3063
3522
  value: function(error) {
3064
3523
  var task = transactionScope_class_private_field_get(this, _deferredQueue).dequeue();
3065
3524
  while(task){
3066
- settleTask(task, error, void 0, null);
3525
+ settleUtils_settleTask(task, error, void 0, null);
3067
3526
  task = transactionScope_class_private_field_get(this, _deferredQueue).dequeue();
3068
3527
  }
3069
3528
  }
@@ -3071,14 +3530,6 @@ var transactionScope_TransactionScope = /*#__PURE__*/ function() {
3071
3530
  ]);
3072
3531
  return TransactionScope;
3073
3532
  }();
3074
- function pipelineEngine_array_like_to_array(arr, len) {
3075
- if (null == len || len > arr.length) len = arr.length;
3076
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
3077
- return arr2;
3078
- }
3079
- function pipelineEngine_array_without_holes(arr) {
3080
- if (Array.isArray(arr)) return pipelineEngine_array_like_to_array(arr);
3081
- }
3082
3533
  function pipelineEngine_check_private_redeclaration(obj, privateCollection) {
3083
3534
  if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
3084
3535
  }
@@ -3093,22 +3544,6 @@ function pipelineEngine_class_apply_descriptor_set(receiver, descriptor, value)
3093
3544
  descriptor.value = value;
3094
3545
  }
3095
3546
  }
3096
- function pipelineEngine_class_apply_descriptor_update(receiver, descriptor) {
3097
- if (descriptor.set) {
3098
- if (!descriptor.get) throw new TypeError("attempted to read set only private field");
3099
- if (!("__destrWrapper" in descriptor)) descriptor.__destrWrapper = {
3100
- set value (v){
3101
- descriptor.set.call(receiver, v);
3102
- },
3103
- get value () {
3104
- return descriptor.get.call(receiver);
3105
- }
3106
- };
3107
- return descriptor.__destrWrapper;
3108
- }
3109
- if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
3110
- return descriptor;
3111
- }
3112
3547
  function pipelineEngine_class_call_check(instance, Constructor) {
3113
3548
  if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
3114
3549
  }
@@ -3129,10 +3564,6 @@ function pipelineEngine_class_private_field_set(receiver, privateMap, value) {
3129
3564
  pipelineEngine_class_apply_descriptor_set(receiver, descriptor, value);
3130
3565
  return value;
3131
3566
  }
3132
- function pipelineEngine_class_private_field_update(receiver, privateMap) {
3133
- var descriptor = pipelineEngine_class_extract_field_descriptor(receiver, privateMap, "update");
3134
- return pipelineEngine_class_apply_descriptor_update(receiver, descriptor);
3135
- }
3136
3567
  function pipelineEngine_class_private_method_get(receiver, privateSet, fn) {
3137
3568
  if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
3138
3569
  return fn;
@@ -3155,59 +3586,29 @@ function pipelineEngine_create_class(Constructor, protoProps, staticProps) {
3155
3586
  if (staticProps) pipelineEngine_defineProperties(Constructor, staticProps);
3156
3587
  return Constructor;
3157
3588
  }
3158
- function pipelineEngine_iterable_to_array(iter) {
3159
- if ("undefined" != typeof Symbol && null != iter[Symbol.iterator] || null != iter["@@iterator"]) return Array.from(iter);
3160
- }
3161
- function pipelineEngine_non_iterable_spread() {
3162
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3163
- }
3164
- function pipelineEngine_to_consumable_array(arr) {
3165
- return pipelineEngine_array_without_holes(arr) || pipelineEngine_iterable_to_array(arr) || pipelineEngine_unsupported_iterable_to_array(arr) || pipelineEngine_non_iterable_spread();
3166
- }
3167
- function pipelineEngine_unsupported_iterable_to_array(o, minLen) {
3168
- if (!o) return;
3169
- if ("string" == typeof o) return pipelineEngine_array_like_to_array(o, minLen);
3170
- var n = Object.prototype.toString.call(o).slice(8, -1);
3171
- if ("Object" === n && o.constructor) n = o.constructor.name;
3172
- if ("Map" === n || "Set" === n) return Array.from(n);
3173
- if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pipelineEngine_array_like_to_array(o, minLen);
3174
- }
3175
- var _queue = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflightTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflightHead = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingFinalizeTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_scheduledFinalize = /*#__PURE__*/ new WeakMap(), _sharedValueParser = /*#__PURE__*/ new WeakMap(), pipelineEngine_processManager = /*#__PURE__*/ new WeakMap(), pipelineEngine_metrics = /*#__PURE__*/ new WeakMap(), pipelineEngine_statementTimeout = /*#__PURE__*/ new WeakMap(), pipelineEngine_logger = /*#__PURE__*/ new WeakMap(), pipelineEngine_batchSize = /*#__PURE__*/ new WeakMap(), pipelineEngine_maxInflight = /*#__PURE__*/ new WeakMap(), _onTaskTimeout = /*#__PURE__*/ new WeakMap(), _active = /*#__PURE__*/ new WeakMap(), pipelineEngine_sweepTimer = /*#__PURE__*/ new WeakMap(), pipelineEngine_sweepIntervalMs = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflightCount = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_firstInflight = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_shiftInflight = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_pumpQueue = /*#__PURE__*/ new WeakSet(), pipelineEngine_handleParsedValue = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_scheduleFinalizeCheck = /*#__PURE__*/ new WeakSet(), pipelineEngine_scheduleSweep = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_handleTaskTimeout = /*#__PURE__*/ new WeakSet(), pipelineEngine_settleTask = /*#__PURE__*/ new WeakSet();
3589
+ var _queue = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflight = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingFinalizeTasks = /*#__PURE__*/ new WeakMap(), _sharedValueParser = /*#__PURE__*/ new WeakMap(), pipelineEngine_processManager = /*#__PURE__*/ new WeakMap(), pipelineEngine_metrics = /*#__PURE__*/ new WeakMap(), pipelineEngine_statementTimeout = /*#__PURE__*/ new WeakMap(), pipelineEngine_logger = /*#__PURE__*/ new WeakMap(), pipelineEngine_batchSize = /*#__PURE__*/ new WeakMap(), pipelineEngine_maxInflight = /*#__PURE__*/ new WeakMap(), _onTaskTimeout = /*#__PURE__*/ new WeakMap(), _active = /*#__PURE__*/ new WeakMap(), pipelineEngine_sweeper = /*#__PURE__*/ new WeakMap(), pipelineEngine_scheduleFinalizeCheck = /*#__PURE__*/ new WeakMap(), pipelineEngine_pump = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingStderr = /*#__PURE__*/ new WeakMap(), core_pipelineEngine_pumpQueue = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_afterSentinel = /*#__PURE__*/ new WeakSet(), pipelineEngine_settleTask = /*#__PURE__*/ new WeakSet();
3176
3590
  var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3177
3591
  "use strict";
3178
3592
  function PipelineEngine(processManager, param) {
3179
3593
  var _this = this;
3180
3594
  var metrics = param.metrics, statementTimeout = param.statementTimeout, logger = param.logger, _param_batchSize = param.batchSize, batchSize = void 0 === _param_batchSize ? DEFAULT_BATCH_SIZE : _param_batchSize, _param_maxInflight = param.maxInflight, maxInflight = void 0 === _param_maxInflight ? DEFAULT_MAX_INFLIGHT : _param_maxInflight, onTaskTimeout = param.onTaskTimeout, _param_sweepInterval = param.sweepInterval, sweepInterval = void 0 === _param_sweepInterval ? 100 : _param_sweepInterval;
3181
3595
  pipelineEngine_class_call_check(this, PipelineEngine);
3182
- pipelineEngine_class_private_method_init(this, pipelineEngine_inflightCount);
3183
- pipelineEngine_class_private_method_init(this, core_pipelineEngine_firstInflight);
3184
- pipelineEngine_class_private_method_init(this, core_pipelineEngine_shiftInflight);
3596
+ var _this1, _this2;
3185
3597
  pipelineEngine_class_private_method_init(this, core_pipelineEngine_pumpQueue);
3186
- pipelineEngine_class_private_method_init(this, pipelineEngine_handleParsedValue);
3187
- pipelineEngine_class_private_method_init(this, core_pipelineEngine_scheduleFinalizeCheck);
3188
- pipelineEngine_class_private_method_init(this, pipelineEngine_scheduleSweep);
3189
- pipelineEngine_class_private_method_init(this, core_pipelineEngine_handleTaskTimeout);
3598
+ pipelineEngine_class_private_method_init(this, core_pipelineEngine_afterSentinel);
3190
3599
  pipelineEngine_class_private_method_init(this, pipelineEngine_settleTask);
3191
3600
  pipelineEngine_class_private_field_init(this, _queue, {
3192
3601
  writable: true,
3193
3602
  value: new queue_Queue()
3194
3603
  });
3195
- pipelineEngine_class_private_field_init(this, pipelineEngine_inflightTasks, {
3196
- writable: true,
3197
- value: []
3198
- });
3199
- pipelineEngine_class_private_field_init(this, pipelineEngine_inflightHead, {
3604
+ pipelineEngine_class_private_field_init(this, pipelineEngine_inflight, {
3200
3605
  writable: true,
3201
- value: 0
3606
+ value: new inflightTracker_InflightTracker()
3202
3607
  });
3203
3608
  pipelineEngine_class_private_field_init(this, pipelineEngine_pendingFinalizeTasks, {
3204
3609
  writable: true,
3205
3610
  value: new Set()
3206
3611
  });
3207
- pipelineEngine_class_private_field_init(this, pipelineEngine_scheduledFinalize, {
3208
- writable: true,
3209
- value: false
3210
- });
3211
3612
  pipelineEngine_class_private_field_init(this, _sharedValueParser, {
3212
3613
  writable: true,
3213
3614
  value: void 0
@@ -3244,14 +3645,22 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3244
3645
  writable: true,
3245
3646
  value: false
3246
3647
  });
3247
- pipelineEngine_class_private_field_init(this, pipelineEngine_sweepTimer, {
3648
+ pipelineEngine_class_private_field_init(this, pipelineEngine_sweeper, {
3248
3649
  writable: true,
3249
- value: null
3650
+ value: void 0
3250
3651
  });
3251
- pipelineEngine_class_private_field_init(this, pipelineEngine_sweepIntervalMs, {
3652
+ pipelineEngine_class_private_field_init(this, pipelineEngine_scheduleFinalizeCheck, {
3252
3653
  writable: true,
3253
3654
  value: void 0
3254
3655
  });
3656
+ pipelineEngine_class_private_field_init(this, pipelineEngine_pump, {
3657
+ writable: true,
3658
+ value: void 0
3659
+ });
3660
+ pipelineEngine_class_private_field_init(this, pipelineEngine_pendingStderr, {
3661
+ writable: true,
3662
+ value: []
3663
+ });
3255
3664
  pipelineEngine_class_private_field_set(this, pipelineEngine_processManager, processManager);
3256
3665
  pipelineEngine_class_private_field_set(this, pipelineEngine_metrics, metrics);
3257
3666
  pipelineEngine_class_private_field_set(this, pipelineEngine_statementTimeout, statementTimeout);
@@ -3259,19 +3668,57 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3259
3668
  pipelineEngine_class_private_field_set(this, pipelineEngine_batchSize, batchSize);
3260
3669
  pipelineEngine_class_private_field_set(this, pipelineEngine_maxInflight, maxInflight);
3261
3670
  pipelineEngine_class_private_field_set(this, _onTaskTimeout, null != onTaskTimeout ? onTaskTimeout : function() {});
3671
+ pipelineEngine_class_private_field_set(this, pipelineEngine_sweeper, createSweeper({
3672
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3673
+ sweepIntervalMs: sweepInterval,
3674
+ handleTaskTimeout: function(task) {
3675
+ var error = prepareTaskTimeout(task, pipelineEngine_class_private_field_get(_this, pipelineEngine_metrics));
3676
+ if (error) {
3677
+ pipelineEngine_class_private_method_get(_this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(_this, task, error, void 0);
3678
+ null == (_this1 = pipelineEngine_class_private_field_get(_this2 = _this, _onTaskTimeout)) || _this1.call(_this2, task);
3679
+ }
3680
+ }
3681
+ }));
3682
+ pipelineEngine_class_private_field_set(this, pipelineEngine_pump, createPumpQueue({
3683
+ queue: pipelineEngine_class_private_field_get(this, _queue),
3684
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3685
+ processManager: pipelineEngine_class_private_field_get(this, pipelineEngine_processManager),
3686
+ sweeper: pipelineEngine_class_private_field_get(this, pipelineEngine_sweeper),
3687
+ batchSize: pipelineEngine_class_private_field_get(this, pipelineEngine_batchSize),
3688
+ maxInflight: pipelineEngine_class_private_field_get(this, pipelineEngine_maxInflight)
3689
+ }));
3690
+ pipelineEngine_class_private_field_set(this, pipelineEngine_scheduleFinalizeCheck, createFinalizeScheduler({
3691
+ pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3692
+ settleTask: function(t, e, v1) {
3693
+ return pipelineEngine_class_private_method_get(_this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(_this, t, e, v1);
3694
+ },
3695
+ pumpQueue: function() {
3696
+ return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(_this);
3697
+ },
3698
+ pendingStderr: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingStderr),
3699
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight)
3700
+ }));
3262
3701
  pipelineEngine_class_private_field_set(this, _sharedValueParser, createJsonValueParser(function(raw) {
3263
- return pipelineEngine_class_private_method_get(_this, pipelineEngine_handleParsedValue, core_pipelineEngine_handleParsedValue).call(_this, raw);
3702
+ handleParsedValue(raw, pipelineEngine_class_private_field_get(_this, pipelineEngine_inflight), {
3703
+ afterSentinel: function(task) {
3704
+ return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_afterSentinel, pipelineEngine_afterSentinel).call(_this, task);
3705
+ },
3706
+ rejectAll: function(error) {
3707
+ return _this.rejectAll(error);
3708
+ }
3709
+ });
3264
3710
  }));
3265
3711
  pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).setOnDrainCallback(function() {
3266
3712
  return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(_this);
3267
3713
  });
3268
- pipelineEngine_class_private_field_set(this, pipelineEngine_sweepIntervalMs, sweepInterval);
3269
3714
  }
3270
3715
  pipelineEngine_create_class(PipelineEngine, [
3271
3716
  {
3272
3717
  key: "_sweepTimer",
3273
3718
  get: function() {
3274
- return pipelineEngine_class_private_field_get(this, pipelineEngine_sweepTimer);
3719
+ var _$_class_private_field_get;
3720
+ var _class_private_field_get_getSweepTimer;
3721
+ return null != (_class_private_field_get_getSweepTimer = null == (_$_class_private_field_get = pipelineEngine_class_private_field_get(this, pipelineEngine_sweeper)) ? void 0 : _$_class_private_field_get.getSweepTimer()) ? _class_private_field_get_getSweepTimer : null;
3275
3722
  }
3276
3723
  },
3277
3724
  {
@@ -3289,7 +3736,7 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3289
3736
  {
3290
3737
  key: "pendingStatements",
3291
3738
  get: function() {
3292
- return pipelineEngine_class_private_field_get(this, _queue).size + (pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).length - pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)) + pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).size;
3739
+ return pipelineEngine_class_private_field_get(this, _queue).size + pipelineEngine_class_private_field_get(this, pipelineEngine_inflight).count + pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).size;
3293
3740
  }
3294
3741
  },
3295
3742
  {
@@ -3322,7 +3769,7 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3322
3769
  {
3323
3770
  key: "handleStdoutChunk",
3324
3771
  value: function(chunk) {
3325
- var task = pipelineEngine_class_private_method_get(this, core_pipelineEngine_firstInflight, pipelineEngine_firstInflight).call(this);
3772
+ var task = pipelineEngine_class_private_field_get(this, pipelineEngine_inflight).first;
3326
3773
  if (!task) return;
3327
3774
  if ("stream" === task.kind && task.rowParser && !task.rowParser.finished && !task.timedout) {
3328
3775
  var leftover = task.rowParser.feed(chunk);
@@ -3335,209 +3782,64 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3335
3782
  {
3336
3783
  key: "handleStderrChunk",
3337
3784
  value: function(chunk) {
3338
- var _class_private_field_get_values_next_value;
3339
- var task = null != (_class_private_field_get_values_next_value = pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).values().next().value) ? _class_private_field_get_values_next_value : pipelineEngine_class_private_method_get(this, core_pipelineEngine_firstInflight, pipelineEngine_firstInflight).call(this);
3340
- if (!task) {
3341
- var _class_private_field_get_error, _$_class_private_field_get;
3342
- null == (_$_class_private_field_get = pipelineEngine_class_private_field_get(this, pipelineEngine_logger)) || null == (_class_private_field_get_error = _$_class_private_field_get.error) || _class_private_field_get_error.call(_$_class_private_field_get, chunk.trim());
3343
- return;
3344
- }
3345
- task.stderrText += chunk;
3785
+ handleStderrChunk(chunk, {
3786
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3787
+ pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3788
+ logger: pipelineEngine_class_private_field_get(this, pipelineEngine_logger),
3789
+ pendingStderr: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingStderr)
3790
+ });
3346
3791
  }
3347
3792
  },
3348
3793
  {
3349
3794
  key: "rejectAll",
3350
3795
  value: function(error) {
3796
+ var _this = this;
3351
3797
  pipelineEngine_class_private_field_get(this, _sharedValueParser).reset();
3352
- var activeCount = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).length - pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead);
3353
- var all = activeCount > 0 ? pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).slice(pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)) : [];
3354
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightTasks, []);
3355
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightHead, 0);
3356
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
3357
- try {
3358
- for(var _iterator = all[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
3359
- var task = _step.value;
3360
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task, error, void 0);
3361
- }
3362
- } catch (err) {
3363
- _didIteratorError = true;
3364
- _iteratorError = err;
3365
- } finally{
3366
- try {
3367
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
3368
- } finally{
3369
- if (_didIteratorError) throw _iteratorError;
3370
- }
3371
- }
3372
- var queued = pipelineEngine_class_private_field_get(this, _queue).dequeue();
3373
- while(queued){
3374
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, queued, error, void 0);
3375
- queued = pipelineEngine_class_private_field_get(this, _queue).dequeue();
3376
- }
3377
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
3378
- try {
3379
- for(var _iterator1 = pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
3380
- var task1 = _step1.value;
3381
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task1, error, void 0);
3382
- }
3383
- } catch (err) {
3384
- _didIteratorError1 = true;
3385
- _iteratorError1 = err;
3386
- } finally{
3387
- try {
3388
- if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
3389
- } finally{
3390
- if (_didIteratorError1) throw _iteratorError1;
3391
- }
3392
- }
3393
- pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).clear();
3798
+ rejectAllTasks({
3799
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3800
+ queue: pipelineEngine_class_private_field_get(this, _queue),
3801
+ pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3802
+ settleTask: function(t, e, v1) {
3803
+ return pipelineEngine_class_private_method_get(_this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(_this, t, e, v1);
3804
+ },
3805
+ error: error
3806
+ });
3394
3807
  }
3395
3808
  },
3396
3809
  {
3397
3810
  key: "kill",
3398
3811
  value: function() {
3812
+ var _class_private_field_get_cancel, _$_class_private_field_get;
3399
3813
  pipelineEngine_class_private_field_set(this, _active, false);
3400
- clearTimeout(pipelineEngine_class_private_field_get(this, pipelineEngine_sweepTimer));
3401
- pipelineEngine_class_private_field_set(this, pipelineEngine_sweepTimer, null);
3814
+ pipelineEngine_class_private_field_get(this, pipelineEngine_sweeper).clear();
3815
+ null == (_class_private_field_get_cancel = (_$_class_private_field_get = pipelineEngine_class_private_field_get(this, pipelineEngine_scheduleFinalizeCheck)).cancel) || _class_private_field_get_cancel.call(_$_class_private_field_get);
3402
3816
  this.rejectAll(new Error("PipelineEngine is killed"));
3403
3817
  }
3404
3818
  }
3405
3819
  ]);
3406
3820
  return PipelineEngine;
3407
3821
  }();
3408
- function core_pipelineEngine_inflightCount() {
3409
- return pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).length - pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead);
3410
- }
3411
- function pipelineEngine_firstInflight() {
3412
- return pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead) < pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).length ? pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)] : null;
3413
- }
3414
- function pipelineEngine_shiftInflight() {
3415
- var task = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)];
3416
- pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)] = null;
3417
- pipelineEngine_class_private_field_update(this, pipelineEngine_inflightHead).value++;
3418
- if (pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead) >= pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).length) {
3419
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightTasks, []);
3420
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightHead, 0);
3421
- } else if (pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead) > 128) {
3422
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightTasks, pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).slice(pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)));
3423
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightHead, 0);
3424
- }
3425
- return task;
3426
- }
3427
3822
  function pipelineEngine_pumpQueue() {
3428
- var _$_class_private_field_get;
3429
3823
  if (!pipelineEngine_class_private_field_get(this, _active)) return;
3430
- if (pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).draining) return;
3431
- if (pipelineEngine_class_private_method_get(this, pipelineEngine_inflightCount, core_pipelineEngine_inflightCount).call(this) >= pipelineEngine_class_private_field_get(this, pipelineEngine_maxInflight)) return;
3432
- var batch = [];
3433
- while(batch.length < pipelineEngine_class_private_field_get(this, pipelineEngine_batchSize) && !pipelineEngine_class_private_field_get(this, _queue).isEmpty() && pipelineEngine_class_private_method_get(this, pipelineEngine_inflightCount, core_pipelineEngine_inflightCount).call(this) + batch.length < pipelineEngine_class_private_field_get(this, pipelineEngine_maxInflight)){
3434
- var task = pipelineEngine_class_private_field_get(this, _queue).peek();
3435
- if ("stream" === task.kind && (batch.length > 0 || pipelineEngine_class_private_method_get(this, pipelineEngine_inflightCount, core_pipelineEngine_inflightCount).call(this) > 0)) break;
3436
- pipelineEngine_class_private_field_get(this, _queue).dequeue();
3437
- batch.push(task);
3438
- }
3439
- if (0 === batch.length) return;
3440
- var now = performance.now();
3441
- var payload = buildBatchPayload(batch);
3442
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
3443
- try {
3444
- for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
3445
- var task1 = _step.value;
3446
- task1.startTime = now;
3447
- }
3448
- } catch (err) {
3449
- _didIteratorError = true;
3450
- _iteratorError = err;
3451
- } finally{
3452
- try {
3453
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
3454
- } finally{
3455
- if (_didIteratorError) throw _iteratorError;
3456
- }
3457
- }
3458
- (_$_class_private_field_get = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)).push.apply(_$_class_private_field_get, pipelineEngine_to_consumable_array(batch));
3459
- pipelineEngine_class_private_method_get(this, pipelineEngine_scheduleSweep, core_pipelineEngine_scheduleSweep).call(this);
3460
- pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).write(payload);
3461
- }
3462
- function core_pipelineEngine_handleParsedValue(raw) {
3463
- var task = pipelineEngine_class_private_method_get(this, core_pipelineEngine_firstInflight, pipelineEngine_firstInflight).call(this);
3464
- if (!task) return;
3465
- if (isSentinelRaw(raw, task.token)) {
3466
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_shiftInflight, pipelineEngine_shiftInflight).call(this);
3467
- if (task.timedout) return void pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3468
- if (task.consumerError) {
3469
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task, task.consumerError, void 0);
3470
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3471
- return;
3472
- }
3473
- pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).add(task);
3474
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_scheduleFinalizeCheck, pipelineEngine_scheduleFinalizeCheck).call(this);
3475
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3476
- return;
3477
- }
3478
- if ("[]" === raw) return;
3479
- var parsed;
3480
- try {
3481
- parsed = JSON.parse(raw);
3482
- } catch (error) {
3483
- this.rejectAll(new Error("Invalid JSON from sqlite3: ".concat(toError(error).message)));
3484
- return;
3485
- }
3486
- if (isSentinelRow(parsed, task.token)) {
3487
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_shiftInflight, pipelineEngine_shiftInflight).call(this);
3488
- if (task.timedout) return void pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3489
- if (task.consumerError) {
3490
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task, task.consumerError, void 0);
3491
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3492
- return;
3493
- }
3494
- pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).add(task);
3495
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_scheduleFinalizeCheck, pipelineEngine_scheduleFinalizeCheck).call(this);
3496
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3497
- return;
3498
- }
3499
- if (task.timedout) return;
3500
- if ("query" === task.kind) return void collectQueryRows(task, parsed);
3501
- if ("stream" === task.kind) processStreamRows(task, parsed);
3824
+ pipelineEngine_class_private_field_get(this, pipelineEngine_pump).call(this);
3502
3825
  }
3503
- function pipelineEngine_scheduleFinalizeCheck() {
3826
+ function pipelineEngine_afterSentinel(task) {
3504
3827
  var _this = this;
3505
- if (pipelineEngine_class_private_field_get(this, pipelineEngine_scheduledFinalize)) return;
3506
- pipelineEngine_class_private_field_set(this, pipelineEngine_scheduledFinalize, true);
3507
- setImmediate(function() {
3508
- pipelineEngine_class_private_field_set(_this, pipelineEngine_scheduledFinalize, false);
3509
- finalizePendingTasks(pipelineEngine_class_private_field_get(_this, pipelineEngine_pendingFinalizeTasks), function(t, e, v1) {
3828
+ handleSentinelTask(task, {
3829
+ settleTask: function(t, e, v1) {
3510
3830
  return pipelineEngine_class_private_method_get(_this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(_this, t, e, v1);
3511
- }, function() {
3831
+ },
3832
+ pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3833
+ scheduleFinalizeCheck: function() {
3834
+ return pipelineEngine_class_private_field_get(_this, pipelineEngine_scheduleFinalizeCheck).call(_this);
3835
+ },
3836
+ pumpQueue: function() {
3512
3837
  return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(_this);
3513
- });
3514
- });
3515
- }
3516
- function core_pipelineEngine_scheduleSweep() {
3517
- var _this = this;
3518
- if (pipelineEngine_class_private_field_get(this, pipelineEngine_sweepTimer)) return;
3519
- pipelineEngine_class_private_field_set(this, pipelineEngine_sweepTimer, setTimeout(function() {
3520
- pipelineEngine_class_private_field_set(_this, pipelineEngine_sweepTimer, null);
3521
- var tasks = pipelineEngine_class_private_field_get(_this, pipelineEngine_inflightTasks);
3522
- var head = pipelineEngine_class_private_field_get(_this, pipelineEngine_inflightHead);
3523
- var now = performance.now();
3524
- for(var i = head; i < tasks.length; i++){
3525
- var task = tasks[i];
3526
- if (now - task.startTime > task.timeout) pipelineEngine_class_private_method_get(_this, core_pipelineEngine_handleTaskTimeout, pipelineEngine_handleTaskTimeout).call(_this, task);
3527
3838
  }
3528
- if (pipelineEngine_class_private_method_get(_this, pipelineEngine_inflightCount, core_pipelineEngine_inflightCount).call(_this) > 0) pipelineEngine_class_private_method_get(_this, pipelineEngine_scheduleSweep, core_pipelineEngine_scheduleSweep).call(_this);
3529
- }, pipelineEngine_class_private_field_get(this, pipelineEngine_sweepIntervalMs)).unref());
3530
- }
3531
- function pipelineEngine_handleTaskTimeout(task) {
3532
- var _this, _this1;
3533
- var error = prepareTaskTimeout(task, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics));
3534
- if (error) {
3535
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task, error, void 0);
3536
- null == (_this = pipelineEngine_class_private_field_get(_this1 = this, _onTaskTimeout)) || _this.call(_this1, task);
3537
- }
3839
+ });
3538
3840
  }
3539
3841
  function pipelineEngine_settleTask1(task, error, value) {
3540
- settleTask(task, error, value, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics), {
3842
+ settleUtils_settleTask(task, error, value, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics), {
3541
3843
  resetRowParser: true
3542
3844
  });
3543
3845
  }
@@ -4044,31 +4346,6 @@ var executor_SQLiteExecutor = /*#__PURE__*/ function() {
4044
4346
  case 1:
4045
4347
  _state.sent();
4046
4348
  executor_class_private_field_get(_this, executor_processManager).kill();
4047
- _state.label = 2;
4048
- case 2:
4049
- _state.trys.push([
4050
- 2,
4051
- 4,
4052
- ,
4053
- 5
4054
- ]);
4055
- return [
4056
- 4,
4057
- (0, external_node_events_namespaceObject.once)(executor_class_private_field_get(_this, executor_processManager).process, "close")
4058
- ];
4059
- case 3:
4060
- _state.sent();
4061
- return [
4062
- 3,
4063
- 5
4064
- ];
4065
- case 4:
4066
- _state.sent();
4067
- return [
4068
- 3,
4069
- 5
4070
- ];
4071
- case 5:
4072
4349
  return [
4073
4350
  2
4074
4351
  ];