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.
@@ -1,5 +1,5 @@
1
- import * as __WEBPACK_EXTERNAL_MODULE_node_events_0a6aefe7__ from "node:events";
2
1
  import * as __WEBPACK_EXTERNAL_MODULE_node_child_process_27f17141__ from "node:child_process";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_node_events_0a6aefe7__ from "node:events";
3
3
  import * as __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__ from "node:fs";
4
4
  import * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from "node:path";
5
5
  import * as __WEBPACK_EXTERNAL_MODULE_node_os_74b4b876__ from "node:os";
@@ -213,7 +213,8 @@ function createRowStreamParser(onRow) {
213
213
  }
214
214
  index = consumed;
215
215
  if (consumed > 65536) {
216
- this.buffer = buffer.slice(consumed);
216
+ buffer = buffer.slice(consumed);
217
+ this.buffer = buffer;
217
218
  this._consumed = 0;
218
219
  index = 0;
219
220
  consumed = 0;
@@ -264,6 +265,7 @@ function createRowStreamParser(onRow) {
264
265
  var TOKEN_COLUMN = "__sqlite_executor_token__";
265
266
  var DEFAULT_BATCH_SIZE = 10;
266
267
  var DEFAULT_MAX_INFLIGHT = 50;
268
+ var INFLIGHT_COMPACT_THRESHOLD = 128;
267
269
  function _check_private_redeclaration(obj, privateCollection) {
268
270
  if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
269
271
  }
@@ -337,7 +339,7 @@ function _type_of(obj) {
337
339
  }
338
340
  var _computedKey;
339
341
  function setupStreamParser(task) {
340
- var valueParser = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {
342
+ var pipelineOrFeed = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {
341
343
  feed: function() {}
342
344
  };
343
345
  if ("stream" !== task.kind) return null;
@@ -345,7 +347,7 @@ function setupStreamParser(task) {
345
347
  if (task.consumerError) return;
346
348
  try {
347
349
  var row = JSON.parse(rawRow);
348
- if ((void 0 === row ? "undefined" : _type_of(row)) === "object" && null !== row && TOKEN_COLUMN in row) return void valueParser.feed("[".concat(rawRow, "]"));
350
+ if ((void 0 === row ? "undefined" : _type_of(row)) === "object" && null !== row && TOKEN_COLUMN in row) return void pipelineOrFeed.feed("[".concat(rawRow, "]"));
349
351
  task.onRow(row);
350
352
  } catch (error) {
351
353
  task.consumerError = toError(error);
@@ -546,10 +548,12 @@ function createTransactionHandle(scopeId, executor) {
546
548
  };
547
549
  return handle;
548
550
  }
549
- var isWindows = "win32" === __WEBPACK_EXTERNAL_MODULE_node_os_74b4b876__["default"].platform();
551
+ function isWindows() {
552
+ return "win32" === __WEBPACK_EXTERNAL_MODULE_node_os_74b4b876__["default"].platform();
553
+ }
550
554
  function isExecutable(filePath) {
551
555
  try {
552
- if (isWindows) return __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].statSync(filePath).isFile();
556
+ if (isWindows()) return __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].statSync(filePath).isFile();
553
557
  __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].accessSync(filePath, __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].constants.X_OK);
554
558
  return true;
555
559
  } catch (e) {
@@ -557,7 +561,7 @@ function isExecutable(filePath) {
557
561
  }
558
562
  }
559
563
  function getPathExts() {
560
- if (!isWindows) return [
564
+ if (!isWindows()) return [
561
565
  ""
562
566
  ];
563
567
  var ext = process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM;.PS1";
@@ -570,7 +574,7 @@ function which(command) {
570
574
  var pathExts = getPathExts();
571
575
  if (command.includes(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].sep)) {
572
576
  var fullPath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].resolve(command);
573
- if (!isWindows) return isExecutable(fullPath) ? fullPath : null;
577
+ if (!isWindows()) return isExecutable(fullPath) ? fullPath : null;
574
578
  if (__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].extname(fullPath)) return isExecutable(fullPath) ? fullPath : null;
575
579
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
576
580
  try {
@@ -597,7 +601,7 @@ function which(command) {
597
601
  try {
598
602
  for(var _iterator1 = pathDirs[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
599
603
  var dir = _step1.value;
600
- if (dir) if (isWindows) {
604
+ if (dir) if (isWindows()) {
601
605
  var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
602
606
  try {
603
607
  for(var _iterator2 = pathExts[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
@@ -692,6 +696,14 @@ function process_class_private_field_set(receiver, privateMap, value) {
692
696
  process_class_apply_descriptor_set(receiver, descriptor, value);
693
697
  return value;
694
698
  }
699
+ function _class_private_method_get(receiver, privateSet, fn) {
700
+ if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
701
+ return fn;
702
+ }
703
+ function _class_private_method_init(obj, privateSet) {
704
+ process_check_private_redeclaration(obj, privateSet);
705
+ privateSet.add(obj);
706
+ }
695
707
  function process_defineProperties(target, props) {
696
708
  for(var i = 0; i < props.length; i++){
697
709
  var descriptor = props[i];
@@ -798,12 +810,14 @@ function _ts_generator(thisArg, body) {
798
810
  }
799
811
  }
800
812
  var GRACEFUL_SHUTDOWN_TIMEOUT = 5000;
801
- 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();
813
+ 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();
802
814
  var process_ProcessManager = /*#__PURE__*/ function() {
803
815
  "use strict";
804
816
  function ProcessManager() {
805
817
  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;
806
818
  process_class_call_check(this, ProcessManager);
819
+ _class_private_method_init(this, _flushBuffer);
820
+ _class_private_method_init(this, _notifyIfDrained);
807
821
  process_class_private_field_init(this, _binary, {
808
822
  writable: true,
809
823
  value: void 0
@@ -824,6 +838,14 @@ var process_ProcessManager = /*#__PURE__*/ function() {
824
838
  writable: true,
825
839
  value: false
826
840
  });
841
+ process_class_private_field_init(this, _writeBuffer, {
842
+ writable: true,
843
+ value: []
844
+ });
845
+ process_class_private_field_init(this, _drainCallbacks, {
846
+ writable: true,
847
+ value: []
848
+ });
827
849
  process_class_private_field_init(this, _onDrain, {
828
850
  writable: true,
829
851
  value: void 0
@@ -847,6 +869,13 @@ var process_ProcessManager = /*#__PURE__*/ function() {
847
869
  process_class_private_field_set(this, _onDrain, fn);
848
870
  }
849
871
  },
872
+ {
873
+ key: "onDrained",
874
+ value: function(callback) {
875
+ if (!process_class_private_field_get(this, _draining) && 0 === process_class_private_field_get(this, _writeBuffer).length) return void callback();
876
+ process_class_private_field_get(this, _drainCallbacks).push(callback);
877
+ }
878
+ },
850
879
  {
851
880
  key: "binary",
852
881
  get: function() {
@@ -862,9 +891,9 @@ var process_ProcessManager = /*#__PURE__*/ function() {
862
891
  {
863
892
  key: "start",
864
893
  value: function() {
865
- var _proc_stdin, _proc_stdout, _proc_stderr;
894
+ var _proc_stdin, _proc_stdout, _proc_stderr, _proc_stdin1;
866
895
  if (!process_class_private_field_get(this, _binary)) throw new Error("sqlite3 binary path is empty. Provide a valid --binary / binary option.");
867
- if (!__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["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."));
896
+ if (__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].isAbsolute(process_class_private_field_get(this, _binary)) && !__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["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."));
868
897
  var args = [
869
898
  "-json"
870
899
  ];
@@ -881,6 +910,7 @@ var process_ProcessManager = /*#__PURE__*/ function() {
881
910
  null == (_proc_stdin = proc.stdin) || _proc_stdin.setDefaultEncoding("utf-8");
882
911
  null == (_proc_stdout = proc.stdout) || _proc_stdout.setEncoding("utf-8");
883
912
  null == (_proc_stderr = proc.stderr) || _proc_stderr.setEncoding("utf-8");
913
+ null == (_proc_stdin1 = proc.stdin) || _proc_stdin1.on("error", function() {});
884
914
  process_class_private_field_set(this, _proc, proc);
885
915
  return proc;
886
916
  }
@@ -892,11 +922,13 @@ var process_ProcessManager = /*#__PURE__*/ function() {
892
922
  var _$_class_private_field_get;
893
923
  var stream = null == (_$_class_private_field_get = process_class_private_field_get(this, _proc)) ? void 0 : _$_class_private_field_get.stdin;
894
924
  if (!stream) return;
895
- if (process_class_private_field_get(this, _draining)) return;
925
+ if (process_class_private_field_get(this, _draining)) return void process_class_private_field_get(this, _writeBuffer).push(data);
896
926
  if (!stream.write(data)) {
897
927
  process_class_private_field_set(this, _draining, true);
898
928
  stream.once("drain", function() {
899
929
  process_class_private_field_set(_this, _draining, false);
930
+ _class_private_method_get(_this, _flushBuffer, flushBuffer).call(_this);
931
+ _class_private_method_get(_this, _notifyIfDrained, notifyIfDrained).call(_this);
900
932
  process_class_private_field_get(_this, _onDrain).call(_this);
901
933
  });
902
934
  }
@@ -915,40 +947,58 @@ var process_ProcessManager = /*#__PURE__*/ function() {
915
947
  if (!proc) return [
916
948
  2
917
949
  ];
950
+ if (!(process_class_private_field_get(_this, _draining) || process_class_private_field_get(_this, _writeBuffer).length > 0)) return [
951
+ 3,
952
+ 2
953
+ ];
954
+ return [
955
+ 4,
956
+ new Promise(function(resolve) {
957
+ var timer = setTimeout(resolve, GRACEFUL_SHUTDOWN_TIMEOUT);
958
+ _this.onDrained(function() {
959
+ clearTimeout(timer);
960
+ resolve();
961
+ });
962
+ })
963
+ ];
964
+ case 1:
965
+ _state.sent();
966
+ _state.label = 2;
967
+ case 2:
918
968
  timer = setTimeout(function() {
919
969
  proc.kill();
920
- }, GRACEFUL_SHUTDOWN_TIMEOUT);
921
- _state.label = 1;
922
- case 1:
970
+ }, GRACEFUL_SHUTDOWN_TIMEOUT).unref();
971
+ _state.label = 3;
972
+ case 3:
923
973
  _state.trys.push([
924
- 1,
925
974
  3,
926
- 4,
927
- 5
975
+ 5,
976
+ 6,
977
+ 7
928
978
  ]);
929
979
  null == (_proc_stdin = proc.stdin) || _proc_stdin.write(".quit\n");
930
980
  return [
931
981
  4,
932
982
  (0, __WEBPACK_EXTERNAL_MODULE_node_events_0a6aefe7__.once)(proc, "close")
933
983
  ];
934
- case 2:
984
+ case 4:
935
985
  _state.sent();
936
986
  return [
937
987
  3,
938
- 5
988
+ 7
939
989
  ];
940
- case 3:
990
+ case 5:
941
991
  _state.sent();
942
992
  return [
943
993
  3,
944
- 5
994
+ 7
945
995
  ];
946
- case 4:
996
+ case 6:
947
997
  clearTimeout(timer);
948
998
  return [
949
999
  7
950
1000
  ];
951
- case 5:
1001
+ case 7:
952
1002
  return [
953
1003
  2
954
1004
  ];
@@ -965,6 +1015,8 @@ var process_ProcessManager = /*#__PURE__*/ function() {
965
1015
  if (!proc) return null;
966
1016
  process_class_private_field_set(this, _proc, null);
967
1017
  process_class_private_field_set(this, _draining, false);
1018
+ process_class_private_field_set(this, _writeBuffer, []);
1019
+ process_class_private_field_set(this, _drainCallbacks, []);
968
1020
  null == (_proc_stdout = proc.stdout) || _proc_stdout.removeAllListeners();
969
1021
  null == (_proc_stderr = proc.stderr) || _proc_stderr.removeAllListeners();
970
1022
  proc.removeAllListeners();
@@ -976,6 +1028,47 @@ var process_ProcessManager = /*#__PURE__*/ function() {
976
1028
  ]);
977
1029
  return ProcessManager;
978
1030
  }();
1031
+ function flushBuffer() {
1032
+ var buffer = process_class_private_field_get(this, _writeBuffer);
1033
+ process_class_private_field_set(this, _writeBuffer, []);
1034
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1035
+ try {
1036
+ for(var _iterator = buffer[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1037
+ var data = _step.value;
1038
+ this.write(data);
1039
+ }
1040
+ } catch (err) {
1041
+ _didIteratorError = true;
1042
+ _iteratorError = err;
1043
+ } finally{
1044
+ try {
1045
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1046
+ } finally{
1047
+ if (_didIteratorError) throw _iteratorError;
1048
+ }
1049
+ }
1050
+ }
1051
+ function notifyIfDrained() {
1052
+ if (process_class_private_field_get(this, _draining)) return;
1053
+ var callbacks = process_class_private_field_get(this, _drainCallbacks);
1054
+ process_class_private_field_set(this, _drainCallbacks, []);
1055
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1056
+ try {
1057
+ for(var _iterator = callbacks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1058
+ var cb = _step.value;
1059
+ cb();
1060
+ }
1061
+ } catch (err) {
1062
+ _didIteratorError = true;
1063
+ _iteratorError = err;
1064
+ } finally{
1065
+ try {
1066
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1067
+ } finally{
1068
+ if (_didIteratorError) throw _iteratorError;
1069
+ }
1070
+ }
1071
+ }
979
1072
  var _counter = 0;
980
1073
  var _PREFIX = "__executor_end__";
981
1074
  var _PID36 = process.pid.toString(36);
@@ -1073,7 +1166,8 @@ var lruCache_LRUCache = /*#__PURE__*/ function() {
1073
1166
  key: "set",
1074
1167
  value: function(key, value) {
1075
1168
  if ("string" != typeof key || key.length > lruCache_class_private_field_get(this, _maxKeyLength)) return;
1076
- if (value && value.length > lruCache_class_private_field_get(this, _maxValueLength)) return;
1169
+ if ("string" == typeof value && value.length > lruCache_class_private_field_get(this, _maxValueLength)) return;
1170
+ if (Array.isArray(value) && value.length > lruCache_class_private_field_get(this, _maxValueLength)) return;
1077
1171
  if (lruCache_class_private_field_get(this, _map).size >= lruCache_class_private_field_get(this, _maxSize)) {
1078
1172
  var firstKey = lruCache_class_private_field_get(this, _map).keys().next().value;
1079
1173
  lruCache_class_private_field_get(this, _map)["delete"](firstKey);
@@ -1139,7 +1233,19 @@ var constants_STATE_SINGLE_QUOTE = 1;
1139
1233
  var constants_STATE_DOUBLE_QUOTE = 2;
1140
1234
  var constants_STATE_LINE_COMMENT = 3;
1141
1235
  var constants_STATE_BLOCK_COMMENT = 4;
1142
- var _normDecoder = new TextDecoder("utf-16le");
1236
+ function _decodeU16(codes) {
1237
+ var len = codes.length;
1238
+ if (0 === len) return "";
1239
+ var batchSize = 1024;
1240
+ if (len <= batchSize) return String.fromCharCode.apply(null, codes);
1241
+ var parts = new Array(Math.ceil(len / batchSize));
1242
+ for(var i = 0; i < parts.length; i++){
1243
+ var start = i * batchSize;
1244
+ var end = Math.min(start + batchSize, len);
1245
+ parts[i] = String.fromCharCode.apply(null, codes.subarray(start, end));
1246
+ }
1247
+ return parts.join("");
1248
+ }
1143
1249
  var _normCache = new lruCache_LRUCache({
1144
1250
  maxSize: 256,
1145
1251
  maxKeyLength: 4096
@@ -1220,7 +1326,7 @@ function _normalize(sql) {
1220
1326
  else {
1221
1327
  while(writePos > 0 && outCodes[writePos - 1] === CC_SEMICOLON)writePos--;
1222
1328
  outCodes[writePos++] = CC_SEMICOLON;
1223
- normalized = _normDecoder.decode(outCodes.subarray(0, writePos));
1329
+ normalized = _decodeU16(outCodes.subarray(0, writePos));
1224
1330
  }
1225
1331
  var paramCount = questionPositions.length;
1226
1332
  if (0 === paramCount) return {
@@ -1282,8 +1388,8 @@ var _classifyCache = new lruCache_LRUCache({
1282
1388
  });
1283
1389
  function classifySingle(stmt) {
1284
1390
  var trimmed = stmt.trim();
1285
- if (0 === trimmed.length) return "write";
1286
- var kind = trimmed.split(/\s+/)[0].toUpperCase();
1391
+ var firstSpace = trimmed.indexOf(" ");
1392
+ var kind = (-1 === firstSpace ? trimmed : trimmed.slice(0, firstSpace)).toUpperCase();
1287
1393
  return READ_ONLY_KINDS.has(kind) ? "read" : "write";
1288
1394
  }
1289
1395
  function classifySQL(sql) {
@@ -1376,11 +1482,11 @@ function queue_class_private_field_update(receiver, privateMap) {
1376
1482
  var descriptor = queue_class_extract_field_descriptor(receiver, privateMap, "update");
1377
1483
  return queue_class_apply_descriptor_update(receiver, descriptor);
1378
1484
  }
1379
- function _class_private_method_get(receiver, privateSet, fn) {
1485
+ function queue_class_private_method_get(receiver, privateSet, fn) {
1380
1486
  if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
1381
1487
  return fn;
1382
1488
  }
1383
- function _class_private_method_init(obj, privateSet) {
1489
+ function queue_class_private_method_init(obj, privateSet) {
1384
1490
  queue_check_private_redeclaration(obj, privateSet);
1385
1491
  privateSet.add(obj);
1386
1492
  }
@@ -1499,8 +1605,8 @@ var queue_Queue = /*#__PURE__*/ function() {
1499
1605
  "use strict";
1500
1606
  function Queue() {
1501
1607
  queue_class_call_check(this, Queue);
1502
- _class_private_method_init(this, _grow);
1503
- _class_private_method_init(this, _shrinkIfNeeded);
1608
+ queue_class_private_method_init(this, _grow);
1609
+ queue_class_private_method_init(this, _shrinkIfNeeded);
1504
1610
  queue_class_private_field_init(this, _items, {
1505
1611
  writable: true,
1506
1612
  value: new Array(INITIAL_CAPACITY)
@@ -1526,7 +1632,7 @@ var queue_Queue = /*#__PURE__*/ function() {
1526
1632
  {
1527
1633
  key: "enqueue",
1528
1634
  value: function(value) {
1529
- 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);
1635
+ 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);
1530
1636
  queue_class_private_field_get(this, _items)[queue_class_private_field_get(this, _tail)] = value;
1531
1637
  queue_class_private_field_set(this, _tail, queue_class_private_field_get(this, _tail) + 1 & queue_class_private_field_get(this, _mask));
1532
1638
  queue_class_private_field_update(this, _size).value++;
@@ -1550,7 +1656,7 @@ var queue_Queue = /*#__PURE__*/ function() {
1550
1656
  queue_class_private_field_set(this, _head, 0);
1551
1657
  queue_class_private_field_set(this, _tail, 0);
1552
1658
  queue_class_private_field_set(this, _size, 0);
1553
- _class_private_method_get(this, _shrinkIfNeeded, shrinkIfNeeded).call(this);
1659
+ queue_class_private_method_get(this, _shrinkIfNeeded, shrinkIfNeeded).call(this);
1554
1660
  }
1555
1661
  },
1556
1662
  {
@@ -1711,179 +1817,6 @@ function shrinkIfNeeded() {
1711
1817
  queue_class_private_field_set(this, _mask, INITIAL_CAPACITY - 1);
1712
1818
  }
1713
1819
  }
1714
- function buildPayload(sql, token) {
1715
- var _ref = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, _ref_skipNormalize = _ref.skipNormalize, skipNormalize = void 0 === _ref_skipNormalize ? false : _ref_skipNormalize;
1716
- var normalized = skipNormalize ? sql : normalizeSQL(sql);
1717
- var suffix = normalized.endsWith(";") ? "" : ";";
1718
- return "".concat(normalized).concat(suffix, "\nSELECT '").concat(token, "' AS ").concat(TOKEN_COLUMN, ";\n");
1719
- }
1720
- function isTransactionControl(sql) {
1721
- var f = sql.charCodeAt(0);
1722
- if (66 === f || 98 === f) return "BEGIN" === sql || "BEGIN;" === sql || sql.startsWith("BEGIN ") || sql.startsWith("BEGIN;");
1723
- if (67 === f || 99 === f) return "COMMIT" === sql || "COMMIT;" === sql || sql.startsWith("COMMIT ") || sql.startsWith("COMMIT;");
1724
- if (82 === f || 114 === f) return "ROLLBACK" === sql || "ROLLBACK;" === sql || sql.startsWith("ROLLBACK ") || sql.startsWith("ROLLBACK;");
1725
- return false;
1726
- }
1727
- function buildBatchPayload(batch) {
1728
- var useWalBatch = batch.length > 1 && batch.every(function(t) {
1729
- return "execute" === t.kind && !isTransactionControl(t.sql);
1730
- });
1731
- if (useWalBatch) {
1732
- var parts = [
1733
- "BEGIN;\n"
1734
- ];
1735
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1736
- try {
1737
- for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1738
- var task = _step.value;
1739
- parts.push(task.sql, "\n");
1740
- }
1741
- } catch (err) {
1742
- _didIteratorError = true;
1743
- _iteratorError = err;
1744
- } finally{
1745
- try {
1746
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1747
- } finally{
1748
- if (_didIteratorError) throw _iteratorError;
1749
- }
1750
- }
1751
- parts.push("COMMIT;\n");
1752
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
1753
- try {
1754
- for(var _iterator1 = batch[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
1755
- var task1 = _step1.value;
1756
- parts.push("SELECT '".concat(task1.token, "' AS ").concat(TOKEN_COLUMN, ";\n"));
1757
- }
1758
- } catch (err) {
1759
- _didIteratorError1 = true;
1760
- _iteratorError1 = err;
1761
- } finally{
1762
- try {
1763
- if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
1764
- } finally{
1765
- if (_didIteratorError1) throw _iteratorError1;
1766
- }
1767
- }
1768
- return parts.join("");
1769
- }
1770
- var parts1 = [];
1771
- var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
1772
- try {
1773
- for(var _iterator2 = batch[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
1774
- var task2 = _step2.value;
1775
- parts1.push(buildPayload(task2.sql, task2.token, {
1776
- skipNormalize: true
1777
- }));
1778
- }
1779
- } catch (err) {
1780
- _didIteratorError2 = true;
1781
- _iteratorError2 = err;
1782
- } finally{
1783
- try {
1784
- if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
1785
- } finally{
1786
- if (_didIteratorError2) throw _iteratorError2;
1787
- }
1788
- }
1789
- return parts1.join("");
1790
- }
1791
- var TC_FIRST_CHAR = TOKEN_COLUMN.charCodeAt(0);
1792
- function buildSentinelStr(token) {
1793
- return '[{"'.concat(TOKEN_COLUMN, '":"').concat(token, '"}]');
1794
- }
1795
- function isSentinelRaw(raw, token) {
1796
- return raw.charCodeAt(3) === TC_FIRST_CHAR && raw === buildSentinelStr(token);
1797
- }
1798
- function isSentinelRow(value, token) {
1799
- var _value_;
1800
- return Array.isArray(value) && 1 === value.length && (null == (_value_ = value[0]) ? void 0 : _value_[TOKEN_COLUMN]) === token;
1801
- }
1802
- function collectQueryRows(task, parsed) {
1803
- if (Array.isArray(parsed)) {
1804
- if (!task.rows) task.rows = [];
1805
- for(var i = 0; i < parsed.length; i++)task.rows.push(parsed[i]);
1806
- }
1807
- }
1808
- function processStreamRows(task, parsed) {
1809
- if (!Array.isArray(parsed)) return;
1810
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1811
- try {
1812
- for(var _iterator = parsed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1813
- var row = _step.value;
1814
- if (task.consumerError) break;
1815
- try {
1816
- task.onRow(row);
1817
- } catch (error) {
1818
- task.consumerError = toError(error);
1819
- }
1820
- }
1821
- } catch (err) {
1822
- _didIteratorError = true;
1823
- _iteratorError = err;
1824
- } finally{
1825
- try {
1826
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1827
- } finally{
1828
- if (_didIteratorError) throw _iteratorError;
1829
- }
1830
- }
1831
- }
1832
- function settleTask(task, error, value, metrics) {
1833
- var _ref = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {}, _ref_resetRowParser = _ref.resetRowParser, resetRowParser = void 0 === _ref_resetRowParser ? false : _ref_resetRowParser;
1834
- if (task.settled) return;
1835
- task.settled = true;
1836
- if (resetRowParser) {
1837
- var _task_rowParser_reset, _task_rowParser;
1838
- null == (_task_rowParser = task.rowParser) || null == (_task_rowParser_reset = _task_rowParser.reset) || _task_rowParser_reset.call(_task_rowParser);
1839
- }
1840
- if (error) {
1841
- null == metrics || metrics.incrementTasksFailed();
1842
- task.reject(toError(error));
1843
- return;
1844
- }
1845
- var duration = task.startTime > 0 ? performance.now() - task.startTime : 0;
1846
- null == metrics || metrics.incrementTasksSuccess(duration);
1847
- task.resolve(value);
1848
- }
1849
- function finalizePendingTasks(tasks, settle, pumpQueue) {
1850
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
1851
- try {
1852
- for(var _iterator = tasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1853
- var task = _step.value;
1854
- if (task.stderrText) {
1855
- settle(task, new Error(task.stderrText.trim()), void 0);
1856
- continue;
1857
- }
1858
- if (task.consumerError) {
1859
- settle(task, task.consumerError, void 0);
1860
- continue;
1861
- }
1862
- if ("query" === task.kind) {
1863
- settle(task, null, task.rows);
1864
- continue;
1865
- }
1866
- settle(task, null, void 0);
1867
- }
1868
- } catch (err) {
1869
- _didIteratorError = true;
1870
- _iteratorError = err;
1871
- } finally{
1872
- try {
1873
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
1874
- } finally{
1875
- if (_didIteratorError) throw _iteratorError;
1876
- }
1877
- }
1878
- tasks.clear();
1879
- pumpQueue();
1880
- }
1881
- function prepareTaskTimeout(task, metrics) {
1882
- if (task.settled) return null;
1883
- task.timedout = true;
1884
- null == metrics || metrics.incrementTasksTimeout();
1885
- return createTimeoutError(task.timeout, task.sql);
1886
- }
1887
1820
  function _array_like_to_array(arr, len) {
1888
1821
  if (null == len || len > arr.length) len = arr.length;
1889
1822
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -1892,21 +1825,21 @@ function _array_like_to_array(arr, len) {
1892
1825
  function _array_without_holes(arr) {
1893
1826
  if (Array.isArray(arr)) return _array_like_to_array(arr);
1894
1827
  }
1895
- function taskWorker_check_private_redeclaration(obj, privateCollection) {
1828
+ function inflightTracker_check_private_redeclaration(obj, privateCollection) {
1896
1829
  if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
1897
1830
  }
1898
- function taskWorker_class_apply_descriptor_get(receiver, descriptor) {
1831
+ function inflightTracker_class_apply_descriptor_get(receiver, descriptor) {
1899
1832
  if (descriptor.get) return descriptor.get.call(receiver);
1900
1833
  return descriptor.value;
1901
1834
  }
1902
- function taskWorker_class_apply_descriptor_set(receiver, descriptor, value) {
1835
+ function inflightTracker_class_apply_descriptor_set(receiver, descriptor, value) {
1903
1836
  if (descriptor.set) descriptor.set.call(receiver, value);
1904
1837
  else {
1905
1838
  if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
1906
1839
  descriptor.value = value;
1907
1840
  }
1908
1841
  }
1909
- function taskWorker_class_apply_descriptor_update(receiver, descriptor) {
1842
+ function inflightTracker_class_apply_descriptor_update(receiver, descriptor) {
1910
1843
  if (descriptor.set) {
1911
1844
  if (!descriptor.get) throw new TypeError("attempted to read set only private field");
1912
1845
  if (!("__destrWrapper" in descriptor)) descriptor.__destrWrapper = {
@@ -1922,39 +1855,31 @@ function taskWorker_class_apply_descriptor_update(receiver, descriptor) {
1922
1855
  if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
1923
1856
  return descriptor;
1924
1857
  }
1925
- function taskWorker_class_call_check(instance, Constructor) {
1858
+ function inflightTracker_class_call_check(instance, Constructor) {
1926
1859
  if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
1927
1860
  }
1928
- function taskWorker_class_extract_field_descriptor(receiver, privateMap, action) {
1861
+ function inflightTracker_class_extract_field_descriptor(receiver, privateMap, action) {
1929
1862
  if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
1930
1863
  return privateMap.get(receiver);
1931
1864
  }
1932
- function taskWorker_class_private_field_get(receiver, privateMap) {
1933
- var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "get");
1934
- return taskWorker_class_apply_descriptor_get(receiver, descriptor);
1865
+ function inflightTracker_class_private_field_get(receiver, privateMap) {
1866
+ var descriptor = inflightTracker_class_extract_field_descriptor(receiver, privateMap, "get");
1867
+ return inflightTracker_class_apply_descriptor_get(receiver, descriptor);
1935
1868
  }
1936
- function taskWorker_class_private_field_init(obj, privateMap, value) {
1937
- taskWorker_check_private_redeclaration(obj, privateMap);
1869
+ function inflightTracker_class_private_field_init(obj, privateMap, value) {
1870
+ inflightTracker_check_private_redeclaration(obj, privateMap);
1938
1871
  privateMap.set(obj, value);
1939
1872
  }
1940
- function taskWorker_class_private_field_set(receiver, privateMap, value) {
1941
- var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "set");
1942
- taskWorker_class_apply_descriptor_set(receiver, descriptor, value);
1873
+ function inflightTracker_class_private_field_set(receiver, privateMap, value) {
1874
+ var descriptor = inflightTracker_class_extract_field_descriptor(receiver, privateMap, "set");
1875
+ inflightTracker_class_apply_descriptor_set(receiver, descriptor, value);
1943
1876
  return value;
1944
1877
  }
1945
- function taskWorker_class_private_field_update(receiver, privateMap) {
1946
- var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "update");
1947
- return taskWorker_class_apply_descriptor_update(receiver, descriptor);
1948
- }
1949
- function taskWorker_class_private_method_get(receiver, privateSet, fn) {
1950
- if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
1951
- return fn;
1878
+ function inflightTracker_class_private_field_update(receiver, privateMap) {
1879
+ var descriptor = inflightTracker_class_extract_field_descriptor(receiver, privateMap, "update");
1880
+ return inflightTracker_class_apply_descriptor_update(receiver, descriptor);
1952
1881
  }
1953
- function taskWorker_class_private_method_init(obj, privateSet) {
1954
- taskWorker_check_private_redeclaration(obj, privateSet);
1955
- privateSet.add(obj);
1956
- }
1957
- function taskWorker_defineProperties(target, props) {
1882
+ function inflightTracker_defineProperties(target, props) {
1958
1883
  for(var i = 0; i < props.length; i++){
1959
1884
  var descriptor = props[i];
1960
1885
  descriptor.enumerable = descriptor.enumerable || false;
@@ -1963,9 +1888,9 @@ function taskWorker_defineProperties(target, props) {
1963
1888
  Object.defineProperty(target, descriptor.key, descriptor);
1964
1889
  }
1965
1890
  }
1966
- function taskWorker_create_class(Constructor, protoProps, staticProps) {
1967
- if (protoProps) taskWorker_defineProperties(Constructor.prototype, protoProps);
1968
- if (staticProps) taskWorker_defineProperties(Constructor, staticProps);
1891
+ function inflightTracker_create_class(Constructor, protoProps, staticProps) {
1892
+ if (protoProps) inflightTracker_defineProperties(Constructor.prototype, protoProps);
1893
+ if (staticProps) inflightTracker_defineProperties(Constructor, staticProps);
1969
1894
  return Constructor;
1970
1895
  }
1971
1896
  function _iterable_to_array(iter) {
@@ -1985,7 +1910,660 @@ function _unsupported_iterable_to_array(o, minLen) {
1985
1910
  if ("Map" === n || "Set" === n) return Array.from(n);
1986
1911
  if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
1987
1912
  }
1988
- 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();
1913
+ var _tasks = /*#__PURE__*/ new WeakMap(), inflightTracker_head = /*#__PURE__*/ new WeakMap();
1914
+ var inflightTracker_InflightTracker = /*#__PURE__*/ function() {
1915
+ "use strict";
1916
+ function InflightTracker() {
1917
+ inflightTracker_class_call_check(this, InflightTracker);
1918
+ inflightTracker_class_private_field_init(this, _tasks, {
1919
+ writable: true,
1920
+ value: []
1921
+ });
1922
+ inflightTracker_class_private_field_init(this, inflightTracker_head, {
1923
+ writable: true,
1924
+ value: 0
1925
+ });
1926
+ }
1927
+ inflightTracker_create_class(InflightTracker, [
1928
+ {
1929
+ key: "count",
1930
+ get: function() {
1931
+ return inflightTracker_class_private_field_get(this, _tasks).length - inflightTracker_class_private_field_get(this, inflightTracker_head);
1932
+ }
1933
+ },
1934
+ {
1935
+ key: "first",
1936
+ get: function() {
1937
+ 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;
1938
+ }
1939
+ },
1940
+ {
1941
+ key: "push",
1942
+ value: function() {
1943
+ for(var _len = arguments.length, items = new Array(_len), _key = 0; _key < _len; _key++)items[_key] = arguments[_key];
1944
+ var _$_class_private_field_get;
1945
+ (_$_class_private_field_get = inflightTracker_class_private_field_get(this, _tasks)).push.apply(_$_class_private_field_get, _to_consumable_array(items));
1946
+ }
1947
+ },
1948
+ {
1949
+ key: "shift",
1950
+ value: function() {
1951
+ if (inflightTracker_class_private_field_get(this, _tasks).length === inflightTracker_class_private_field_get(this, inflightTracker_head)) return null;
1952
+ var task = inflightTracker_class_private_field_get(this, _tasks)[inflightTracker_class_private_field_get(this, inflightTracker_head)];
1953
+ inflightTracker_class_private_field_get(this, _tasks)[inflightTracker_class_private_field_get(this, inflightTracker_head)] = null;
1954
+ inflightTracker_class_private_field_update(this, inflightTracker_head).value++;
1955
+ if (inflightTracker_class_private_field_get(this, inflightTracker_head) >= inflightTracker_class_private_field_get(this, _tasks).length) {
1956
+ inflightTracker_class_private_field_set(this, _tasks, []);
1957
+ inflightTracker_class_private_field_set(this, inflightTracker_head, 0);
1958
+ } else if (inflightTracker_class_private_field_get(this, inflightTracker_head) > INFLIGHT_COMPACT_THRESHOLD) {
1959
+ inflightTracker_class_private_field_set(this, _tasks, inflightTracker_class_private_field_get(this, _tasks).slice(inflightTracker_class_private_field_get(this, inflightTracker_head)));
1960
+ inflightTracker_class_private_field_set(this, inflightTracker_head, 0);
1961
+ }
1962
+ return task;
1963
+ }
1964
+ },
1965
+ {
1966
+ key: "clear",
1967
+ value: function() {
1968
+ inflightTracker_class_private_field_set(this, _tasks, []);
1969
+ inflightTracker_class_private_field_set(this, inflightTracker_head, 0);
1970
+ }
1971
+ },
1972
+ {
1973
+ key: "forEach",
1974
+ value: function(fn) {
1975
+ 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]);
1976
+ }
1977
+ },
1978
+ {
1979
+ key: "toArray",
1980
+ value: function() {
1981
+ return inflightTracker_class_private_field_get(this, _tasks).slice(inflightTracker_class_private_field_get(this, inflightTracker_head));
1982
+ }
1983
+ },
1984
+ {
1985
+ key: "_tasksLength",
1986
+ get: function() {
1987
+ return inflightTracker_class_private_field_get(this, _tasks).length;
1988
+ }
1989
+ },
1990
+ {
1991
+ key: "_head",
1992
+ get: function() {
1993
+ return inflightTracker_class_private_field_get(this, inflightTracker_head);
1994
+ }
1995
+ }
1996
+ ]);
1997
+ return InflightTracker;
1998
+ }();
1999
+ function collectQueryRows(task, parsed) {
2000
+ if (Array.isArray(parsed)) for(var i = 0; i < parsed.length; i++)task.rows.push(parsed[i]);
2001
+ }
2002
+ function processStreamRows(task, parsed) {
2003
+ if (!Array.isArray(parsed)) return;
2004
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2005
+ try {
2006
+ for(var _iterator = parsed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2007
+ var row = _step.value;
2008
+ if (task.consumerError) break;
2009
+ try {
2010
+ task.onRow(row);
2011
+ } catch (error) {
2012
+ task.consumerError = toError(error);
2013
+ }
2014
+ }
2015
+ } catch (err) {
2016
+ _didIteratorError = true;
2017
+ _iteratorError = err;
2018
+ } finally{
2019
+ try {
2020
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2021
+ } finally{
2022
+ if (_didIteratorError) throw _iteratorError;
2023
+ }
2024
+ }
2025
+ }
2026
+ function settleUtils_settleTask(task, error, value, metrics) {
2027
+ var _ref = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {}, _ref_resetRowParser = _ref.resetRowParser, resetRowParser = void 0 === _ref_resetRowParser ? false : _ref_resetRowParser;
2028
+ if (task.settled) return;
2029
+ task.settled = true;
2030
+ if (resetRowParser) {
2031
+ var _task_rowParser_reset, _task_rowParser;
2032
+ null == (_task_rowParser = task.rowParser) || null == (_task_rowParser_reset = _task_rowParser.reset) || _task_rowParser_reset.call(_task_rowParser);
2033
+ }
2034
+ if (error) {
2035
+ null == metrics || metrics.incrementTasksFailed();
2036
+ task.reject(toError(error));
2037
+ return;
2038
+ }
2039
+ var duration = task.startTime > 0 ? performance.now() - task.startTime : 0;
2040
+ null == metrics || metrics.incrementTasksSuccess(duration);
2041
+ task.resolve(value);
2042
+ }
2043
+ function buildPayload(sql, token) {
2044
+ var _ref = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, _ref_skipNormalize = _ref.skipNormalize, skipNormalize = void 0 === _ref_skipNormalize ? false : _ref_skipNormalize;
2045
+ var normalized = skipNormalize ? sql : normalizeSQL(sql);
2046
+ var suffix = normalized.endsWith(";") ? "" : ";";
2047
+ return "".concat(normalized).concat(suffix, "\nSELECT '").concat(token, "' AS ").concat(TOKEN_COLUMN, ";\n");
2048
+ }
2049
+ function isTransactionControl(sql) {
2050
+ var f = sql.charCodeAt(0);
2051
+ if (66 === f || 98 === f) return "BEGIN" === sql || "BEGIN;" === sql || sql.startsWith("BEGIN ") || sql.startsWith("BEGIN;");
2052
+ if (67 === f || 99 === f) return "COMMIT" === sql || "COMMIT;" === sql || sql.startsWith("COMMIT ") || sql.startsWith("COMMIT;");
2053
+ if (82 === f || 114 === f) return "ROLLBACK" === sql || "ROLLBACK;" === sql || sql.startsWith("ROLLBACK ") || sql.startsWith("ROLLBACK;");
2054
+ return false;
2055
+ }
2056
+ function buildBatchPayload(batch) {
2057
+ var useWalBatch = batch.length > 1 && batch.every(function(t) {
2058
+ return "execute" === t.kind && !isTransactionControl(t.sql);
2059
+ });
2060
+ if (useWalBatch) {
2061
+ var parts = [
2062
+ "BEGIN;\n"
2063
+ ];
2064
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2065
+ try {
2066
+ for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2067
+ var task = _step.value;
2068
+ parts.push(task.sql, "\n");
2069
+ parts.push("SELECT '".concat(task.token, "' AS ").concat(TOKEN_COLUMN, ";\n"));
2070
+ }
2071
+ } catch (err) {
2072
+ _didIteratorError = true;
2073
+ _iteratorError = err;
2074
+ } finally{
2075
+ try {
2076
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2077
+ } finally{
2078
+ if (_didIteratorError) throw _iteratorError;
2079
+ }
2080
+ }
2081
+ parts.push("COMMIT;\n");
2082
+ return parts.join("");
2083
+ }
2084
+ var parts1 = [];
2085
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2086
+ try {
2087
+ for(var _iterator1 = batch[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2088
+ var task1 = _step1.value;
2089
+ parts1.push(buildPayload(task1.sql, task1.token, {
2090
+ skipNormalize: true
2091
+ }));
2092
+ }
2093
+ } catch (err) {
2094
+ _didIteratorError1 = true;
2095
+ _iteratorError1 = err;
2096
+ } finally{
2097
+ try {
2098
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2099
+ } finally{
2100
+ if (_didIteratorError1) throw _iteratorError1;
2101
+ }
2102
+ }
2103
+ return parts1.join("");
2104
+ }
2105
+ var TC_FIRST_CHAR = TOKEN_COLUMN.charCodeAt(0);
2106
+ function buildSentinelStr(token) {
2107
+ return '[{"'.concat(TOKEN_COLUMN, '":"').concat(token, '"}]');
2108
+ }
2109
+ function isSentinelRaw(raw, token) {
2110
+ return raw.charCodeAt(3) === TC_FIRST_CHAR && raw === buildSentinelStr(token);
2111
+ }
2112
+ function isSentinelRow(value, token) {
2113
+ var _value_;
2114
+ return Array.isArray(value) && 1 === value.length && (null == (_value_ = value[0]) ? void 0 : _value_[TOKEN_COLUMN]) === token;
2115
+ }
2116
+ function pipelineUtils_array_like_to_array(arr, len) {
2117
+ if (null == len || len > arr.length) len = arr.length;
2118
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
2119
+ return arr2;
2120
+ }
2121
+ function pipelineUtils_array_without_holes(arr) {
2122
+ if (Array.isArray(arr)) return pipelineUtils_array_like_to_array(arr);
2123
+ }
2124
+ function pipelineUtils_iterable_to_array(iter) {
2125
+ if ("undefined" != typeof Symbol && null != iter[Symbol.iterator] || null != iter["@@iterator"]) return Array.from(iter);
2126
+ }
2127
+ function pipelineUtils_non_iterable_spread() {
2128
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2129
+ }
2130
+ function pipelineUtils_to_consumable_array(arr) {
2131
+ return pipelineUtils_array_without_holes(arr) || pipelineUtils_iterable_to_array(arr) || pipelineUtils_unsupported_iterable_to_array(arr) || pipelineUtils_non_iterable_spread();
2132
+ }
2133
+ function pipelineUtils_unsupported_iterable_to_array(o, minLen) {
2134
+ if (!o) return;
2135
+ if ("string" == typeof o) return pipelineUtils_array_like_to_array(o, minLen);
2136
+ var n = Object.prototype.toString.call(o).slice(8, -1);
2137
+ if ("Object" === n && o.constructor) n = o.constructor.name;
2138
+ if ("Map" === n || "Set" === n) return Array.from(n);
2139
+ if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pipelineUtils_array_like_to_array(o, minLen);
2140
+ }
2141
+ function finalizePendingTasks(tasks, settle, pumpQueue, pendingStderr, inflight) {
2142
+ var hasStderrBuffer = pendingStderr && pendingStderr.length > 0;
2143
+ if (hasStderrBuffer) {
2144
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2145
+ try {
2146
+ for(var _iterator = pendingStderr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2147
+ var chunk = _step.value;
2148
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2149
+ try {
2150
+ for(var _iterator1 = tasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2151
+ var t = _step1.value;
2152
+ if ("query" === t.kind && 0 === t.rows.length) t.stderrText += chunk;
2153
+ }
2154
+ } catch (err) {
2155
+ _didIteratorError1 = true;
2156
+ _iteratorError1 = err;
2157
+ } finally{
2158
+ try {
2159
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2160
+ } finally{
2161
+ if (_didIteratorError1) throw _iteratorError1;
2162
+ }
2163
+ }
2164
+ }
2165
+ } catch (err) {
2166
+ _didIteratorError = true;
2167
+ _iteratorError = err;
2168
+ } finally{
2169
+ try {
2170
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2171
+ } finally{
2172
+ if (_didIteratorError) throw _iteratorError;
2173
+ }
2174
+ }
2175
+ if (!inflight || 0 === inflight.count) pendingStderr.length = 0;
2176
+ }
2177
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
2178
+ try {
2179
+ for(var _iterator2 = tasks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
2180
+ var task = _step2.value;
2181
+ if (task.stderrText) {
2182
+ settle(task, new Error(task.stderrText.trim()), void 0);
2183
+ continue;
2184
+ }
2185
+ if (task.consumerError) {
2186
+ settle(task, task.consumerError, void 0);
2187
+ continue;
2188
+ }
2189
+ if ("query" === task.kind) {
2190
+ settle(task, null, task.rows);
2191
+ continue;
2192
+ }
2193
+ settle(task, null, void 0);
2194
+ }
2195
+ } catch (err) {
2196
+ _didIteratorError2 = true;
2197
+ _iteratorError2 = err;
2198
+ } finally{
2199
+ try {
2200
+ if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
2201
+ } finally{
2202
+ if (_didIteratorError2) throw _iteratorError2;
2203
+ }
2204
+ }
2205
+ tasks.clear();
2206
+ pumpQueue();
2207
+ }
2208
+ function prepareTaskTimeout(task, metrics) {
2209
+ if (task.settled) return null;
2210
+ task.timedout = true;
2211
+ null == metrics || metrics.incrementTasksTimeout();
2212
+ return createTimeoutError(task.timeout, task.sql);
2213
+ }
2214
+ function createSweeper(param) {
2215
+ var inflight = param.inflight, sweepIntervalMs = param.sweepIntervalMs, handleTaskTimeout = param.handleTaskTimeout;
2216
+ var sweepTimer = null;
2217
+ var schedule = function() {
2218
+ if (sweepTimer) return;
2219
+ sweepTimer = setTimeout(function() {
2220
+ sweepTimer = null;
2221
+ var now = performance.now();
2222
+ inflight.forEach(function(task) {
2223
+ if (now - task.startTime > task.timeout) handleTaskTimeout(task);
2224
+ });
2225
+ if (inflight.count > 0) schedule();
2226
+ }, sweepIntervalMs).unref();
2227
+ };
2228
+ var clear = function() {
2229
+ clearTimeout(sweepTimer);
2230
+ sweepTimer = null;
2231
+ };
2232
+ return {
2233
+ schedule: schedule,
2234
+ clear: clear,
2235
+ getSweepTimer: function() {
2236
+ return sweepTimer;
2237
+ }
2238
+ };
2239
+ }
2240
+ function createFinalizeScheduler(param) {
2241
+ var pendingFinalizeTasks = param.pendingFinalizeTasks, settle = param.settleTask, pumpQueue = param.pumpQueue, pendingStderr = param.pendingStderr, inflight = param.inflight;
2242
+ var scheduled = false;
2243
+ var immediate = null;
2244
+ var cancelled = false;
2245
+ var cancel = function() {
2246
+ cancelled = true;
2247
+ if (immediate) {
2248
+ clearImmediate(immediate);
2249
+ immediate = null;
2250
+ }
2251
+ };
2252
+ var check = function() {
2253
+ if (cancelled) return;
2254
+ if (scheduled) return;
2255
+ if (0 === pendingFinalizeTasks.size) return;
2256
+ scheduled = true;
2257
+ immediate = setImmediate(function() {
2258
+ immediate = null;
2259
+ if (cancelled) return;
2260
+ finalizePendingTasks(pendingFinalizeTasks, settle, pumpQueue, pendingStderr, inflight);
2261
+ scheduled = false;
2262
+ });
2263
+ };
2264
+ check.cancel = cancel;
2265
+ return check;
2266
+ }
2267
+ function advanceNextInflightStartTime(inflight) {
2268
+ var next = inflight.first;
2269
+ if (next && next.startTime > 0) {
2270
+ var now = performance.now();
2271
+ if (now > next.startTime) next.startTime = now;
2272
+ }
2273
+ }
2274
+ function handleParsedValue(raw, inflight, param) {
2275
+ var afterSentinel = param.afterSentinel, rejectAll = param.rejectAll;
2276
+ var task = inflight.first;
2277
+ if (!task) return;
2278
+ if (isSentinelRaw(raw, task.token)) {
2279
+ inflight.shift();
2280
+ advanceNextInflightStartTime(inflight);
2281
+ afterSentinel(task);
2282
+ return;
2283
+ }
2284
+ if ("[]" === raw) return;
2285
+ var parsed;
2286
+ try {
2287
+ parsed = JSON.parse(raw);
2288
+ } catch (error) {
2289
+ rejectAll(new Error("Invalid JSON from sqlite3: ".concat(toError(error).message)));
2290
+ return;
2291
+ }
2292
+ if (isSentinelRow(parsed, task.token)) {
2293
+ inflight.shift();
2294
+ advanceNextInflightStartTime(inflight);
2295
+ afterSentinel(task);
2296
+ return;
2297
+ }
2298
+ if (task.timedout) return;
2299
+ if ("query" === task.kind) return void collectQueryRows(task, parsed);
2300
+ if ("stream" === task.kind) processStreamRows(task, parsed);
2301
+ }
2302
+ function createPumpQueue(param) {
2303
+ var queue = param.queue, inflight = param.inflight, processManager = param.processManager, sweeper = param.sweeper, batchSize = param.batchSize, maxInflight = param.maxInflight;
2304
+ var nextBatchId = 1;
2305
+ return function pump() {
2306
+ var _inflight;
2307
+ if (processManager.draining) return void processManager.onDrained(function() {
2308
+ return pump();
2309
+ });
2310
+ if (inflight.count >= maxInflight) return;
2311
+ var batch = [];
2312
+ while(batch.length < batchSize && !queue.isEmpty() && inflight.count + batch.length < maxInflight){
2313
+ var task = queue.peek();
2314
+ if ("stream" === task.kind && (batch.length > 0 || inflight.count > 0)) break;
2315
+ queue.dequeue();
2316
+ batch.push(task);
2317
+ }
2318
+ if (0 === batch.length) return;
2319
+ var now = performance.now();
2320
+ var payload = buildBatchPayload(batch);
2321
+ var batchId = nextBatchId++;
2322
+ var useWalBatch = payload.startsWith("BEGIN;");
2323
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2324
+ try {
2325
+ for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2326
+ var task1 = _step.value;
2327
+ task1.startTime = now;
2328
+ task1.batchId = batchId;
2329
+ task1.walBatch = useWalBatch;
2330
+ }
2331
+ } catch (err) {
2332
+ _didIteratorError = true;
2333
+ _iteratorError = err;
2334
+ } finally{
2335
+ try {
2336
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2337
+ } finally{
2338
+ if (_didIteratorError) throw _iteratorError;
2339
+ }
2340
+ }
2341
+ (_inflight = inflight).push.apply(_inflight, pipelineUtils_to_consumable_array(batch));
2342
+ sweeper.schedule();
2343
+ processManager.write(payload);
2344
+ };
2345
+ }
2346
+ function handleSentinelTask(task, param) {
2347
+ var settleTask = param.settleTask, pendingFinalizeTasks = param.pendingFinalizeTasks, scheduleFinalizeCheck = param.scheduleFinalizeCheck, pumpQueue = param.pumpQueue;
2348
+ if (task.timedout) return void pumpQueue();
2349
+ if (task.consumerError) {
2350
+ settleTask(task, task.consumerError, void 0);
2351
+ pumpQueue();
2352
+ return;
2353
+ }
2354
+ pendingFinalizeTasks.add(task);
2355
+ scheduleFinalizeCheck();
2356
+ pumpQueue();
2357
+ }
2358
+ function handleStderrChunk(chunk, param) {
2359
+ var inflight = param.inflight, pendingFinalizeTasks = param.pendingFinalizeTasks, logger = param.logger, pendingStderr = param.pendingStderr;
2360
+ var inflightFirst = inflight.first;
2361
+ var firstPending = pendingFinalizeTasks.values().next().value;
2362
+ var zeroRowMatch = false;
2363
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2364
+ try {
2365
+ for(var _iterator = pendingFinalizeTasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2366
+ var t = _step.value;
2367
+ if ("query" === t.kind && 0 === t.rows.length) {
2368
+ t.stderrText += chunk;
2369
+ zeroRowMatch = true;
2370
+ }
2371
+ }
2372
+ } catch (err) {
2373
+ _didIteratorError = true;
2374
+ _iteratorError = err;
2375
+ } finally{
2376
+ try {
2377
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2378
+ } finally{
2379
+ if (_didIteratorError) throw _iteratorError;
2380
+ }
2381
+ }
2382
+ if (zeroRowMatch) return;
2383
+ var task = null != inflightFirst ? inflightFirst : firstPending;
2384
+ if (!task) {
2385
+ var _logger_error;
2386
+ null == logger || null == (_logger_error = logger.error) || _logger_error.call(logger, chunk.trim());
2387
+ return;
2388
+ }
2389
+ if (null == task.batchId) {
2390
+ task.stderrText += chunk;
2391
+ return;
2392
+ }
2393
+ if (task.walBatch) {
2394
+ task.stderrText += chunk;
2395
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2396
+ try {
2397
+ for(var _iterator1 = pendingFinalizeTasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2398
+ var t1 = _step1.value;
2399
+ if (t1 !== task) t1.stderrText += chunk;
2400
+ }
2401
+ } catch (err) {
2402
+ _didIteratorError1 = true;
2403
+ _iteratorError1 = err;
2404
+ } finally{
2405
+ try {
2406
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2407
+ } finally{
2408
+ if (_didIteratorError1) throw _iteratorError1;
2409
+ }
2410
+ }
2411
+ inflight.forEach(function(t) {
2412
+ if (t !== task) t.stderrText += chunk;
2413
+ });
2414
+ return;
2415
+ }
2416
+ if (task === inflightFirst) {
2417
+ if (inflight.count > 1) null == pendingStderr || pendingStderr.push(chunk);
2418
+ else if (pendingFinalizeTasks.size > 0) {
2419
+ var hasZeroRowQuery = false;
2420
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
2421
+ try {
2422
+ for(var _iterator2 = pendingFinalizeTasks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
2423
+ var t2 = _step2.value;
2424
+ if ("query" === t2.kind && 0 === t2.rows.length) {
2425
+ hasZeroRowQuery = true;
2426
+ break;
2427
+ }
2428
+ }
2429
+ } catch (err) {
2430
+ _didIteratorError2 = true;
2431
+ _iteratorError2 = err;
2432
+ } finally{
2433
+ try {
2434
+ if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
2435
+ } finally{
2436
+ if (_didIteratorError2) throw _iteratorError2;
2437
+ }
2438
+ }
2439
+ if (hasZeroRowQuery) null == pendingStderr || pendingStderr.push(chunk);
2440
+ else if ("query" === task.kind && task.rows.length > 0) {
2441
+ var _logger_error1;
2442
+ null == logger || null == (_logger_error1 = logger.error) || _logger_error1.call(logger, chunk.trim());
2443
+ } else task.stderrText += chunk;
2444
+ } else if ("query" === task.kind && task.rows.length > 0) {
2445
+ var _logger_error2;
2446
+ null == logger || null == (_logger_error2 = logger.error) || _logger_error2.call(logger, chunk.trim());
2447
+ } else task.stderrText += chunk;
2448
+ return;
2449
+ }
2450
+ var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;
2451
+ try {
2452
+ for(var _iterator3 = pendingFinalizeTasks[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true){
2453
+ var t3 = _step3.value;
2454
+ t3.stderrText += chunk;
2455
+ }
2456
+ } catch (err) {
2457
+ _didIteratorError3 = true;
2458
+ _iteratorError3 = err;
2459
+ } finally{
2460
+ try {
2461
+ if (!_iteratorNormalCompletion3 && null != _iterator3["return"]) _iterator3["return"]();
2462
+ } finally{
2463
+ if (_didIteratorError3) throw _iteratorError3;
2464
+ }
2465
+ }
2466
+ }
2467
+ function rejectAllTasks(param) {
2468
+ var inflight = param.inflight, queue = param.queue, pendingFinalizeTasks = param.pendingFinalizeTasks, settleTask = param.settleTask, error = param.error;
2469
+ var all = inflight.toArray();
2470
+ inflight.clear();
2471
+ var queued = queue.dequeue();
2472
+ while(queued){
2473
+ settleTask(queued, error, void 0);
2474
+ queued = queue.dequeue();
2475
+ }
2476
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2477
+ try {
2478
+ for(var _iterator = all[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2479
+ var task = _step.value;
2480
+ settleTask(task, error, void 0);
2481
+ }
2482
+ } catch (err) {
2483
+ _didIteratorError = true;
2484
+ _iteratorError = err;
2485
+ } finally{
2486
+ try {
2487
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2488
+ } finally{
2489
+ if (_didIteratorError) throw _iteratorError;
2490
+ }
2491
+ }
2492
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2493
+ try {
2494
+ for(var _iterator1 = pendingFinalizeTasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2495
+ var task1 = _step1.value;
2496
+ settleTask(task1, error, void 0);
2497
+ }
2498
+ } catch (err) {
2499
+ _didIteratorError1 = true;
2500
+ _iteratorError1 = err;
2501
+ } finally{
2502
+ try {
2503
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2504
+ } finally{
2505
+ if (_didIteratorError1) throw _iteratorError1;
2506
+ }
2507
+ }
2508
+ pendingFinalizeTasks.clear();
2509
+ }
2510
+ function taskWorker_check_private_redeclaration(obj, privateCollection) {
2511
+ if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
2512
+ }
2513
+ function taskWorker_class_apply_descriptor_get(receiver, descriptor) {
2514
+ if (descriptor.get) return descriptor.get.call(receiver);
2515
+ return descriptor.value;
2516
+ }
2517
+ function taskWorker_class_apply_descriptor_set(receiver, descriptor, value) {
2518
+ if (descriptor.set) descriptor.set.call(receiver, value);
2519
+ else {
2520
+ if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
2521
+ descriptor.value = value;
2522
+ }
2523
+ }
2524
+ function taskWorker_class_call_check(instance, Constructor) {
2525
+ if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
2526
+ }
2527
+ function taskWorker_class_extract_field_descriptor(receiver, privateMap, action) {
2528
+ if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
2529
+ return privateMap.get(receiver);
2530
+ }
2531
+ function taskWorker_class_private_field_get(receiver, privateMap) {
2532
+ var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "get");
2533
+ return taskWorker_class_apply_descriptor_get(receiver, descriptor);
2534
+ }
2535
+ function taskWorker_class_private_field_init(obj, privateMap, value) {
2536
+ taskWorker_check_private_redeclaration(obj, privateMap);
2537
+ privateMap.set(obj, value);
2538
+ }
2539
+ function taskWorker_class_private_field_set(receiver, privateMap, value) {
2540
+ var descriptor = taskWorker_class_extract_field_descriptor(receiver, privateMap, "set");
2541
+ taskWorker_class_apply_descriptor_set(receiver, descriptor, value);
2542
+ return value;
2543
+ }
2544
+ function taskWorker_class_private_method_get(receiver, privateSet, fn) {
2545
+ if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
2546
+ return fn;
2547
+ }
2548
+ function taskWorker_class_private_method_init(obj, privateSet) {
2549
+ taskWorker_check_private_redeclaration(obj, privateSet);
2550
+ privateSet.add(obj);
2551
+ }
2552
+ function taskWorker_defineProperties(target, props) {
2553
+ for(var i = 0; i < props.length; i++){
2554
+ var descriptor = props[i];
2555
+ descriptor.enumerable = descriptor.enumerable || false;
2556
+ descriptor.configurable = true;
2557
+ if ("value" in descriptor) descriptor.writable = true;
2558
+ Object.defineProperty(target, descriptor.key, descriptor);
2559
+ }
2560
+ }
2561
+ function taskWorker_create_class(Constructor, protoProps, staticProps) {
2562
+ if (protoProps) taskWorker_defineProperties(Constructor.prototype, protoProps);
2563
+ if (staticProps) taskWorker_defineProperties(Constructor, staticProps);
2564
+ return Constructor;
2565
+ }
2566
+ 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();
1989
2567
  var taskWorker_TaskWorker = /*#__PURE__*/ function() {
1990
2568
  "use strict";
1991
2569
  function TaskWorker(param) {
@@ -1993,15 +2571,9 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
1993
2571
  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;
1994
2572
  taskWorker_class_call_check(this, TaskWorker);
1995
2573
  taskWorker_class_private_method_init(this, _startProcess);
1996
- taskWorker_class_private_method_init(this, _inflightCount);
1997
- taskWorker_class_private_method_init(this, _firstInflight);
1998
- taskWorker_class_private_method_init(this, _shiftInflight);
1999
2574
  taskWorker_class_private_method_init(this, _pumpQueue);
2000
- taskWorker_class_private_method_init(this, _handleParsedValue);
2001
- taskWorker_class_private_method_init(this, _scheduleFinalizeCheck);
2575
+ taskWorker_class_private_method_init(this, _afterSentinel);
2002
2576
  taskWorker_class_private_method_init(this, _handleStderrChunk);
2003
- taskWorker_class_private_method_init(this, _scheduleSweep);
2004
- taskWorker_class_private_method_init(this, _handleTaskTimeout);
2005
2577
  taskWorker_class_private_method_init(this, _settleTask);
2006
2578
  taskWorker_class_private_method_init(this, _rejectAll);
2007
2579
  taskWorker_class_private_field_init(this, _processManager, {
@@ -2012,22 +2584,14 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2012
2584
  writable: true,
2013
2585
  value: new queue_Queue()
2014
2586
  });
2015
- taskWorker_class_private_field_init(this, _inflightTasks, {
2587
+ taskWorker_class_private_field_init(this, taskWorker_inflight, {
2016
2588
  writable: true,
2017
- value: []
2018
- });
2019
- taskWorker_class_private_field_init(this, _inflightHead, {
2020
- writable: true,
2021
- value: 0
2589
+ value: new inflightTracker_InflightTracker()
2022
2590
  });
2023
2591
  taskWorker_class_private_field_init(this, _pendingFinalizeTasks, {
2024
2592
  writable: true,
2025
2593
  value: new Set()
2026
2594
  });
2027
- taskWorker_class_private_field_init(this, _scheduledFinalize, {
2028
- writable: true,
2029
- value: false
2030
- });
2031
2595
  taskWorker_class_private_field_init(this, _valueParser, {
2032
2596
  writable: true,
2033
2597
  value: void 0
@@ -2056,31 +2620,72 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2056
2620
  writable: true,
2057
2621
  value: void 0
2058
2622
  });
2059
- taskWorker_class_private_field_init(this, _sweepTimer, {
2623
+ taskWorker_class_private_field_init(this, _sweeper, {
2060
2624
  writable: true,
2061
- value: null
2625
+ value: void 0
2062
2626
  });
2063
- taskWorker_class_private_field_init(this, _sweepIntervalMs, {
2627
+ taskWorker_class_private_field_init(this, _scheduleFinalizeCheck, {
2064
2628
  writable: true,
2065
2629
  value: void 0
2066
2630
  });
2631
+ taskWorker_class_private_field_init(this, _pump, {
2632
+ writable: true,
2633
+ value: void 0
2634
+ });
2635
+ taskWorker_class_private_field_init(this, _pendingStderr, {
2636
+ writable: true,
2637
+ value: []
2638
+ });
2067
2639
  taskWorker_class_private_field_set(this, _name, null != name ? name : "worker");
2068
2640
  taskWorker_class_private_field_set(this, _statementTimeout, statementTimeout);
2069
2641
  taskWorker_class_private_field_set(this, _logger, logger);
2070
2642
  taskWorker_class_private_field_set(this, _batchSize, batchSize);
2071
2643
  taskWorker_class_private_field_set(this, _maxInflight, maxInflight);
2072
2644
  taskWorker_class_private_field_set(this, _metrics, metrics);
2073
- taskWorker_class_private_field_set(this, _sweepIntervalMs, sweepInterval);
2074
2645
  taskWorker_class_private_field_set(this, _processManager, new process_ProcessManager({
2075
2646
  binary: binary,
2076
2647
  database: database,
2077
- initMode: initMode,
2078
- onDrain: function() {
2079
- return taskWorker_class_private_method_get(_this, _pumpQueue, taskWorker_pumpQueue).call(_this);
2648
+ initMode: initMode
2649
+ }));
2650
+ taskWorker_class_private_field_get(this, _processManager).setOnDrainCallback(function() {
2651
+ return taskWorker_class_private_method_get(_this, _pumpQueue, taskWorker_pumpQueue).call(_this);
2652
+ });
2653
+ taskWorker_class_private_field_set(this, _sweeper, createSweeper({
2654
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight),
2655
+ sweepIntervalMs: sweepInterval,
2656
+ handleTaskTimeout: function(task) {
2657
+ var error = prepareTaskTimeout(task, taskWorker_class_private_field_get(_this, _metrics));
2658
+ if (error) taskWorker_class_private_method_get(_this, _settleTask, settleTask1).call(_this, task, error, void 0);
2080
2659
  }
2081
2660
  }));
2661
+ taskWorker_class_private_field_set(this, _pump, createPumpQueue({
2662
+ queue: taskWorker_class_private_field_get(this, _pendingQueue),
2663
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight),
2664
+ processManager: taskWorker_class_private_field_get(this, _processManager),
2665
+ sweeper: taskWorker_class_private_field_get(this, _sweeper),
2666
+ batchSize: taskWorker_class_private_field_get(this, _batchSize),
2667
+ maxInflight: taskWorker_class_private_field_get(this, _maxInflight)
2668
+ }));
2669
+ taskWorker_class_private_field_set(this, _scheduleFinalizeCheck, createFinalizeScheduler({
2670
+ pendingFinalizeTasks: taskWorker_class_private_field_get(this, _pendingFinalizeTasks),
2671
+ settleTask: function(t, e, v1) {
2672
+ return taskWorker_class_private_method_get(_this, _settleTask, settleTask1).call(_this, t, e, v1);
2673
+ },
2674
+ pumpQueue: function() {
2675
+ return taskWorker_class_private_method_get(_this, _pumpQueue, taskWorker_pumpQueue).call(_this);
2676
+ },
2677
+ pendingStderr: taskWorker_class_private_field_get(this, _pendingStderr),
2678
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight)
2679
+ }));
2082
2680
  taskWorker_class_private_field_set(this, _valueParser, createJsonValueParser(function(raw) {
2083
- return taskWorker_class_private_method_get(_this, _handleParsedValue, handleParsedValue).call(_this, raw);
2681
+ handleParsedValue(raw, taskWorker_class_private_field_get(_this, taskWorker_inflight), {
2682
+ afterSentinel: function(task) {
2683
+ return taskWorker_class_private_method_get(_this, _afterSentinel, taskWorker_afterSentinel).call(_this, task);
2684
+ },
2685
+ rejectAll: function(error) {
2686
+ return taskWorker_class_private_method_get(_this, _rejectAll, taskWorker_rejectAll).call(_this, error);
2687
+ }
2688
+ });
2084
2689
  }));
2085
2690
  taskWorker_class_private_method_get(this, _startProcess, startProcess).call(this);
2086
2691
  }
@@ -2094,13 +2699,13 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2094
2699
  {
2095
2700
  key: "idle",
2096
2701
  get: function() {
2097
- 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;
2702
+ 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;
2098
2703
  }
2099
2704
  },
2100
2705
  {
2101
2706
  key: "pendingStatements",
2102
2707
  get: function() {
2103
- 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;
2708
+ 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;
2104
2709
  }
2105
2710
  },
2106
2711
  {
@@ -2130,7 +2735,9 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2130
2735
  {
2131
2736
  key: "_sweepTimer",
2132
2737
  get: function() {
2133
- return taskWorker_class_private_field_get(this, _sweepTimer);
2738
+ var _$_class_private_field_get;
2739
+ var _class_private_field_get_getSweepTimer;
2740
+ 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;
2134
2741
  }
2135
2742
  },
2136
2743
  {
@@ -2142,8 +2749,9 @@ var taskWorker_TaskWorker = /*#__PURE__*/ function() {
2142
2749
  {
2143
2750
  key: "kill",
2144
2751
  value: function() {
2145
- clearTimeout(taskWorker_class_private_field_get(this, _sweepTimer));
2146
- taskWorker_class_private_field_set(this, _sweepTimer, null);
2752
+ var _class_private_field_get_cancel, _$_class_private_field_get;
2753
+ taskWorker_class_private_field_get(this, _sweeper).clear();
2754
+ 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);
2147
2755
  taskWorker_class_private_method_get(this, _rejectAll, taskWorker_rejectAll).call(this, new Error("".concat(taskWorker_class_private_field_get(this, _name), " is killed")));
2148
2756
  taskWorker_class_private_field_get(this, _processManager).kill();
2149
2757
  }
@@ -2158,7 +2766,7 @@ function startProcess() {
2158
2766
  taskWorker_class_private_field_get(_this, _valueParser).feed(chunk);
2159
2767
  });
2160
2768
  proc.stderr.on("data", function(chunk) {
2161
- taskWorker_class_private_method_get(_this, _handleStderrChunk, taskWorker_handleStderrChunk).call(_this, chunk);
2769
+ taskWorker_class_private_method_get(_this, _handleStderrChunk, taskWorker_handleStderrChunk1).call(_this, chunk);
2162
2770
  });
2163
2771
  proc.on("error", function(error) {
2164
2772
  var _class_private_field_get_error, _$_class_private_field_get;
@@ -2172,200 +2780,47 @@ function startProcess() {
2172
2780
  taskWorker_class_private_method_get(_this, _rejectAll, taskWorker_rejectAll).call(_this, err);
2173
2781
  });
2174
2782
  }
2175
- function inflightCount() {
2176
- return taskWorker_class_private_field_get(this, _inflightTasks).length - taskWorker_class_private_field_get(this, _inflightHead);
2177
- }
2178
- function firstInflight() {
2179
- 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;
2180
- }
2181
- function shiftInflight() {
2182
- var task = taskWorker_class_private_field_get(this, _inflightTasks)[taskWorker_class_private_field_get(this, _inflightHead)];
2183
- taskWorker_class_private_field_get(this, _inflightTasks)[taskWorker_class_private_field_get(this, _inflightHead)] = null;
2184
- taskWorker_class_private_field_update(this, _inflightHead).value++;
2185
- if (taskWorker_class_private_field_get(this, _inflightHead) >= taskWorker_class_private_field_get(this, _inflightTasks).length) {
2186
- taskWorker_class_private_field_set(this, _inflightTasks, []);
2187
- taskWorker_class_private_field_set(this, _inflightHead, 0);
2188
- } else if (taskWorker_class_private_field_get(this, _inflightHead) > 128) {
2189
- taskWorker_class_private_field_set(this, _inflightTasks, taskWorker_class_private_field_get(this, _inflightTasks).slice(taskWorker_class_private_field_get(this, _inflightHead)));
2190
- taskWorker_class_private_field_set(this, _inflightHead, 0);
2191
- }
2192
- return task;
2193
- }
2194
2783
  function taskWorker_pumpQueue() {
2195
- var _$_class_private_field_get;
2196
- if (taskWorker_class_private_field_get(this, _processManager).draining) return;
2197
- if (taskWorker_class_private_method_get(this, _inflightCount, inflightCount).call(this) >= taskWorker_class_private_field_get(this, _maxInflight)) return;
2198
- var batch = [];
2199
- 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)){
2200
- var task = taskWorker_class_private_field_get(this, _pendingQueue).peek();
2201
- if ("stream" === task.kind && (batch.length > 0 || taskWorker_class_private_method_get(this, _inflightCount, inflightCount).call(this) > 0)) break;
2202
- taskWorker_class_private_field_get(this, _pendingQueue).dequeue();
2203
- batch.push(task);
2204
- }
2205
- if (0 === batch.length) return;
2206
- var now = performance.now();
2207
- var payload = buildBatchPayload(batch);
2208
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2209
- try {
2210
- for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2211
- var task1 = _step.value;
2212
- task1.startTime = now;
2213
- }
2214
- } catch (err) {
2215
- _didIteratorError = true;
2216
- _iteratorError = err;
2217
- } finally{
2218
- try {
2219
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2220
- } finally{
2221
- if (_didIteratorError) throw _iteratorError;
2222
- }
2223
- }
2224
- (_$_class_private_field_get = taskWorker_class_private_field_get(this, _inflightTasks)).push.apply(_$_class_private_field_get, _to_consumable_array(batch));
2225
- taskWorker_class_private_method_get(this, _scheduleSweep, scheduleSweep).call(this);
2226
- taskWorker_class_private_field_get(this, _processManager).write(payload);
2227
- }
2228
- function handleParsedValue(raw) {
2229
- var task = taskWorker_class_private_method_get(this, _firstInflight, firstInflight).call(this);
2230
- if (!task) return;
2231
- if (isSentinelRaw(raw, task.token)) {
2232
- taskWorker_class_private_method_get(this, _shiftInflight, shiftInflight).call(this);
2233
- if (task.timedout) return void taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2234
- if (task.stderrText) {
2235
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, new Error(task.stderrText.trim()), void 0);
2236
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2237
- return;
2238
- }
2239
- if (task.consumerError) {
2240
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, task.consumerError, void 0);
2241
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2242
- return;
2243
- }
2244
- taskWorker_class_private_field_get(this, _pendingFinalizeTasks).add(task);
2245
- taskWorker_class_private_method_get(this, _scheduleFinalizeCheck, scheduleFinalizeCheck).call(this);
2246
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2247
- return;
2248
- }
2249
- if ("[]" === raw) return;
2250
- var parsed;
2251
- try {
2252
- parsed = JSON.parse(raw);
2253
- } catch (error) {
2254
- taskWorker_class_private_method_get(this, _rejectAll, taskWorker_rejectAll).call(this, new Error("Invalid JSON from sqlite3: ".concat(toError(error).message)));
2255
- return;
2256
- }
2257
- if (isSentinelRow(parsed, task.token)) {
2258
- taskWorker_class_private_method_get(this, _shiftInflight, shiftInflight).call(this);
2259
- if (task.timedout) return void taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2260
- if (task.stderrText) {
2261
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, new Error(task.stderrText.trim()), void 0);
2262
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2263
- return;
2264
- }
2265
- if (task.consumerError) {
2266
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, task.consumerError, void 0);
2267
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2268
- return;
2269
- }
2270
- taskWorker_class_private_field_get(this, _pendingFinalizeTasks).add(task);
2271
- taskWorker_class_private_method_get(this, _scheduleFinalizeCheck, scheduleFinalizeCheck).call(this);
2272
- taskWorker_class_private_method_get(this, _pumpQueue, taskWorker_pumpQueue).call(this);
2273
- return;
2274
- }
2275
- if (task.timedout) return;
2276
- if ("query" === task.kind) return void collectQueryRows(task, parsed);
2277
- if ("stream" === task.kind) processStreamRows(task, parsed);
2784
+ taskWorker_class_private_field_get(this, _pump).call(this);
2278
2785
  }
2279
- function scheduleFinalizeCheck() {
2786
+ function taskWorker_afterSentinel(task) {
2280
2787
  var _this = this;
2281
- if (taskWorker_class_private_field_get(this, _scheduledFinalize)) return;
2282
- taskWorker_class_private_field_set(this, _scheduledFinalize, true);
2283
- setImmediate(function() {
2284
- taskWorker_class_private_field_set(_this, _scheduledFinalize, false);
2285
- finalizePendingTasks(taskWorker_class_private_field_get(_this, _pendingFinalizeTasks), function(t, e, v1) {
2788
+ handleSentinelTask(task, {
2789
+ settleTask: function(t, e, v1) {
2286
2790
  return taskWorker_class_private_method_get(_this, _settleTask, settleTask1).call(_this, t, e, v1);
2287
- }, function() {
2791
+ },
2792
+ pendingFinalizeTasks: taskWorker_class_private_field_get(this, _pendingFinalizeTasks),
2793
+ scheduleFinalizeCheck: function() {
2794
+ return taskWorker_class_private_field_get(_this, _scheduleFinalizeCheck).call(_this);
2795
+ },
2796
+ pumpQueue: function() {
2288
2797
  return taskWorker_class_private_method_get(_this, _pumpQueue, taskWorker_pumpQueue).call(_this);
2289
- });
2290
- });
2291
- }
2292
- function taskWorker_handleStderrChunk(chunk) {
2293
- var _class_private_field_get_values_next_value;
2294
- 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);
2295
- if (!task) {
2296
- var _class_private_field_get_error, _$_class_private_field_get;
2297
- 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());
2298
- return;
2299
- }
2300
- task.stderrText += chunk;
2301
- }
2302
- function scheduleSweep() {
2303
- var _this = this;
2304
- if (taskWorker_class_private_field_get(this, _sweepTimer)) return;
2305
- taskWorker_class_private_field_set(this, _sweepTimer, setTimeout(function() {
2306
- taskWorker_class_private_field_set(_this, _sweepTimer, null);
2307
- var tasks = taskWorker_class_private_field_get(_this, _inflightTasks);
2308
- var head = taskWorker_class_private_field_get(_this, _inflightHead);
2309
- var now = performance.now();
2310
- for(var i = head; i < tasks.length; i++){
2311
- var task = tasks[i];
2312
- if (now - task.startTime > task.timeout) taskWorker_class_private_method_get(_this, _handleTaskTimeout, handleTaskTimeout).call(_this, task);
2313
2798
  }
2314
- if (taskWorker_class_private_method_get(_this, _inflightCount, inflightCount).call(_this) > 0) taskWorker_class_private_method_get(_this, _scheduleSweep, scheduleSweep).call(_this);
2315
- }, taskWorker_class_private_field_get(this, _sweepIntervalMs)).unref());
2799
+ });
2316
2800
  }
2317
- function handleTaskTimeout(task) {
2318
- var error = prepareTaskTimeout(task, taskWorker_class_private_field_get(this, _metrics));
2319
- if (error) taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, error, void 0);
2801
+ function taskWorker_handleStderrChunk1(chunk) {
2802
+ handleStderrChunk(chunk, {
2803
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight),
2804
+ pendingFinalizeTasks: taskWorker_class_private_field_get(this, _pendingFinalizeTasks),
2805
+ logger: taskWorker_class_private_field_get(this, _logger),
2806
+ pendingStderr: taskWorker_class_private_field_get(this, _pendingStderr)
2807
+ });
2320
2808
  }
2321
2809
  function settleTask1(task, error, value) {
2322
- settleTask(task, error, value, taskWorker_class_private_field_get(this, _metrics));
2810
+ settleUtils_settleTask(task, error, value, taskWorker_class_private_field_get(this, _metrics));
2323
2811
  }
2324
2812
  function taskWorker_rejectAll(error) {
2325
- clearTimeout(taskWorker_class_private_field_get(this, _sweepTimer));
2326
- taskWorker_class_private_field_set(this, _sweepTimer, null);
2327
- var activeCount = taskWorker_class_private_field_get(this, _inflightTasks).length - taskWorker_class_private_field_get(this, _inflightHead);
2328
- var all = activeCount > 0 ? taskWorker_class_private_field_get(this, _inflightTasks).slice(taskWorker_class_private_field_get(this, _inflightHead)) : [];
2329
- taskWorker_class_private_field_set(this, _inflightTasks, []);
2330
- taskWorker_class_private_field_set(this, _inflightHead, 0);
2331
- var queued = taskWorker_class_private_field_get(this, _pendingQueue).dequeue();
2332
- while(queued){
2333
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, queued, error, void 0);
2334
- queued = taskWorker_class_private_field_get(this, _pendingQueue).dequeue();
2335
- }
2336
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2337
- try {
2338
- for(var _iterator = all[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2339
- var task = _step.value;
2340
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task, error, void 0);
2341
- }
2342
- } catch (err) {
2343
- _didIteratorError = true;
2344
- _iteratorError = err;
2345
- } finally{
2346
- try {
2347
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2348
- } finally{
2349
- if (_didIteratorError) throw _iteratorError;
2350
- }
2351
- }
2352
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2353
- try {
2354
- for(var _iterator1 = taskWorker_class_private_field_get(this, _pendingFinalizeTasks)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2355
- var task1 = _step1.value;
2356
- taskWorker_class_private_method_get(this, _settleTask, settleTask1).call(this, task1, error, void 0);
2357
- }
2358
- } catch (err) {
2359
- _didIteratorError1 = true;
2360
- _iteratorError1 = err;
2361
- } finally{
2362
- try {
2363
- if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2364
- } finally{
2365
- if (_didIteratorError1) throw _iteratorError1;
2366
- }
2367
- }
2368
- taskWorker_class_private_field_get(this, _pendingFinalizeTasks).clear();
2813
+ var _this = this;
2814
+ taskWorker_class_private_field_get(this, _sweeper).clear();
2815
+ rejectAllTasks({
2816
+ inflight: taskWorker_class_private_field_get(this, taskWorker_inflight),
2817
+ queue: taskWorker_class_private_field_get(this, _pendingQueue),
2818
+ pendingFinalizeTasks: taskWorker_class_private_field_get(this, _pendingFinalizeTasks),
2819
+ settleTask: function(t, e, v1) {
2820
+ return taskWorker_class_private_method_get(_this, _settleTask, settleTask1).call(_this, t, e, v1);
2821
+ },
2822
+ error: error
2823
+ });
2369
2824
  }
2370
2825
  function readerPool_check_private_redeclaration(obj, privateCollection) {
2371
2826
  if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
@@ -2438,7 +2893,7 @@ var readerPool_ReaderPool = /*#__PURE__*/ function() {
2438
2893
  logger: logger,
2439
2894
  metrics: metrics,
2440
2895
  name: "reader-".concat(i),
2441
- initMode: ":memory:" !== database ? "none" : "wal"
2896
+ initMode: ":memory:" !== database ? "none" : "none"
2442
2897
  });
2443
2898
  readerPool_class_private_field_get(this, _workers).push(worker);
2444
2899
  }
@@ -2719,6 +3174,10 @@ var metrics_Metrics = /*#__PURE__*/ function() {
2719
3174
  key: "snapshot",
2720
3175
  value: function() {
2721
3176
  var elapsed = (Date.now() - metrics_class_private_field_get(this, _startTime)) / 1000;
3177
+ var avgTaskDuration;
3178
+ avgTaskDuration = metrics_class_private_field_get(this, _tasksSuccess) > 0 ? metrics_class_private_field_get(this, _totalDuration) / metrics_class_private_field_get(this, _tasksSuccess) : 0;
3179
+ var throughput;
3180
+ throughput = elapsed > 0 ? metrics_class_private_field_get(this, _tasksTotal) / elapsed : 0;
2722
3181
  return {
2723
3182
  tasksTotal: metrics_class_private_field_get(this, _tasksTotal),
2724
3183
  tasksSuccess: metrics_class_private_field_get(this, _tasksSuccess),
@@ -2728,8 +3187,8 @@ var metrics_Metrics = /*#__PURE__*/ function() {
2728
3187
  executeCount: metrics_class_private_field_get(this, _executeCount),
2729
3188
  queryCount: metrics_class_private_field_get(this, _queryCount),
2730
3189
  streamCount: metrics_class_private_field_get(this, _streamCount),
2731
- avgQueryTime: metrics_class_private_field_get(this, _tasksSuccess) > 0 ? metrics_class_private_field_get(this, _totalDuration) / metrics_class_private_field_get(this, _tasksSuccess) : 0,
2732
- qps: elapsed > 0 ? metrics_class_private_field_get(this, _tasksTotal) / elapsed : 0,
3190
+ avgTaskDuration: avgTaskDuration,
3191
+ throughput: throughput,
2733
3192
  uptime: elapsed
2734
3193
  };
2735
3194
  }
@@ -3003,7 +3462,7 @@ var transactionScope_TransactionScope = /*#__PURE__*/ function() {
3003
3462
  value: function(error) {
3004
3463
  var task = transactionScope_class_private_field_get(this, _deferredQueue).dequeue();
3005
3464
  while(task){
3006
- settleTask(task, error, void 0, null);
3465
+ settleUtils_settleTask(task, error, void 0, null);
3007
3466
  task = transactionScope_class_private_field_get(this, _deferredQueue).dequeue();
3008
3467
  }
3009
3468
  }
@@ -3011,14 +3470,6 @@ var transactionScope_TransactionScope = /*#__PURE__*/ function() {
3011
3470
  ]);
3012
3471
  return TransactionScope;
3013
3472
  }();
3014
- function pipelineEngine_array_like_to_array(arr, len) {
3015
- if (null == len || len > arr.length) len = arr.length;
3016
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
3017
- return arr2;
3018
- }
3019
- function pipelineEngine_array_without_holes(arr) {
3020
- if (Array.isArray(arr)) return pipelineEngine_array_like_to_array(arr);
3021
- }
3022
3473
  function pipelineEngine_check_private_redeclaration(obj, privateCollection) {
3023
3474
  if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
3024
3475
  }
@@ -3033,22 +3484,6 @@ function pipelineEngine_class_apply_descriptor_set(receiver, descriptor, value)
3033
3484
  descriptor.value = value;
3034
3485
  }
3035
3486
  }
3036
- function pipelineEngine_class_apply_descriptor_update(receiver, descriptor) {
3037
- if (descriptor.set) {
3038
- if (!descriptor.get) throw new TypeError("attempted to read set only private field");
3039
- if (!("__destrWrapper" in descriptor)) descriptor.__destrWrapper = {
3040
- set value (v){
3041
- descriptor.set.call(receiver, v);
3042
- },
3043
- get value () {
3044
- return descriptor.get.call(receiver);
3045
- }
3046
- };
3047
- return descriptor.__destrWrapper;
3048
- }
3049
- if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
3050
- return descriptor;
3051
- }
3052
3487
  function pipelineEngine_class_call_check(instance, Constructor) {
3053
3488
  if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
3054
3489
  }
@@ -3069,10 +3504,6 @@ function pipelineEngine_class_private_field_set(receiver, privateMap, value) {
3069
3504
  pipelineEngine_class_apply_descriptor_set(receiver, descriptor, value);
3070
3505
  return value;
3071
3506
  }
3072
- function pipelineEngine_class_private_field_update(receiver, privateMap) {
3073
- var descriptor = pipelineEngine_class_extract_field_descriptor(receiver, privateMap, "update");
3074
- return pipelineEngine_class_apply_descriptor_update(receiver, descriptor);
3075
- }
3076
3507
  function pipelineEngine_class_private_method_get(receiver, privateSet, fn) {
3077
3508
  if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
3078
3509
  return fn;
@@ -3095,59 +3526,29 @@ function pipelineEngine_create_class(Constructor, protoProps, staticProps) {
3095
3526
  if (staticProps) pipelineEngine_defineProperties(Constructor, staticProps);
3096
3527
  return Constructor;
3097
3528
  }
3098
- function pipelineEngine_iterable_to_array(iter) {
3099
- if ("undefined" != typeof Symbol && null != iter[Symbol.iterator] || null != iter["@@iterator"]) return Array.from(iter);
3100
- }
3101
- function pipelineEngine_non_iterable_spread() {
3102
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3103
- }
3104
- function pipelineEngine_to_consumable_array(arr) {
3105
- return pipelineEngine_array_without_holes(arr) || pipelineEngine_iterable_to_array(arr) || pipelineEngine_unsupported_iterable_to_array(arr) || pipelineEngine_non_iterable_spread();
3106
- }
3107
- function pipelineEngine_unsupported_iterable_to_array(o, minLen) {
3108
- if (!o) return;
3109
- if ("string" == typeof o) return pipelineEngine_array_like_to_array(o, minLen);
3110
- var n = Object.prototype.toString.call(o).slice(8, -1);
3111
- if ("Object" === n && o.constructor) n = o.constructor.name;
3112
- if ("Map" === n || "Set" === n) return Array.from(n);
3113
- if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pipelineEngine_array_like_to_array(o, minLen);
3114
- }
3115
- 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();
3529
+ 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();
3116
3530
  var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3117
3531
  "use strict";
3118
3532
  function PipelineEngine(processManager, param) {
3119
3533
  var _this = this;
3120
3534
  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;
3121
3535
  pipelineEngine_class_call_check(this, PipelineEngine);
3122
- pipelineEngine_class_private_method_init(this, pipelineEngine_inflightCount);
3123
- pipelineEngine_class_private_method_init(this, core_pipelineEngine_firstInflight);
3124
- pipelineEngine_class_private_method_init(this, core_pipelineEngine_shiftInflight);
3536
+ var _this1, _this2;
3125
3537
  pipelineEngine_class_private_method_init(this, core_pipelineEngine_pumpQueue);
3126
- pipelineEngine_class_private_method_init(this, pipelineEngine_handleParsedValue);
3127
- pipelineEngine_class_private_method_init(this, core_pipelineEngine_scheduleFinalizeCheck);
3128
- pipelineEngine_class_private_method_init(this, pipelineEngine_scheduleSweep);
3129
- pipelineEngine_class_private_method_init(this, core_pipelineEngine_handleTaskTimeout);
3538
+ pipelineEngine_class_private_method_init(this, core_pipelineEngine_afterSentinel);
3130
3539
  pipelineEngine_class_private_method_init(this, pipelineEngine_settleTask);
3131
3540
  pipelineEngine_class_private_field_init(this, _queue, {
3132
3541
  writable: true,
3133
3542
  value: new queue_Queue()
3134
3543
  });
3135
- pipelineEngine_class_private_field_init(this, pipelineEngine_inflightTasks, {
3136
- writable: true,
3137
- value: []
3138
- });
3139
- pipelineEngine_class_private_field_init(this, pipelineEngine_inflightHead, {
3544
+ pipelineEngine_class_private_field_init(this, pipelineEngine_inflight, {
3140
3545
  writable: true,
3141
- value: 0
3546
+ value: new inflightTracker_InflightTracker()
3142
3547
  });
3143
3548
  pipelineEngine_class_private_field_init(this, pipelineEngine_pendingFinalizeTasks, {
3144
3549
  writable: true,
3145
3550
  value: new Set()
3146
3551
  });
3147
- pipelineEngine_class_private_field_init(this, pipelineEngine_scheduledFinalize, {
3148
- writable: true,
3149
- value: false
3150
- });
3151
3552
  pipelineEngine_class_private_field_init(this, _sharedValueParser, {
3152
3553
  writable: true,
3153
3554
  value: void 0
@@ -3184,14 +3585,22 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3184
3585
  writable: true,
3185
3586
  value: false
3186
3587
  });
3187
- pipelineEngine_class_private_field_init(this, pipelineEngine_sweepTimer, {
3588
+ pipelineEngine_class_private_field_init(this, pipelineEngine_sweeper, {
3188
3589
  writable: true,
3189
- value: null
3590
+ value: void 0
3190
3591
  });
3191
- pipelineEngine_class_private_field_init(this, pipelineEngine_sweepIntervalMs, {
3592
+ pipelineEngine_class_private_field_init(this, pipelineEngine_scheduleFinalizeCheck, {
3192
3593
  writable: true,
3193
3594
  value: void 0
3194
3595
  });
3596
+ pipelineEngine_class_private_field_init(this, pipelineEngine_pump, {
3597
+ writable: true,
3598
+ value: void 0
3599
+ });
3600
+ pipelineEngine_class_private_field_init(this, pipelineEngine_pendingStderr, {
3601
+ writable: true,
3602
+ value: []
3603
+ });
3195
3604
  pipelineEngine_class_private_field_set(this, pipelineEngine_processManager, processManager);
3196
3605
  pipelineEngine_class_private_field_set(this, pipelineEngine_metrics, metrics);
3197
3606
  pipelineEngine_class_private_field_set(this, pipelineEngine_statementTimeout, statementTimeout);
@@ -3199,19 +3608,57 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3199
3608
  pipelineEngine_class_private_field_set(this, pipelineEngine_batchSize, batchSize);
3200
3609
  pipelineEngine_class_private_field_set(this, pipelineEngine_maxInflight, maxInflight);
3201
3610
  pipelineEngine_class_private_field_set(this, _onTaskTimeout, null != onTaskTimeout ? onTaskTimeout : function() {});
3611
+ pipelineEngine_class_private_field_set(this, pipelineEngine_sweeper, createSweeper({
3612
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3613
+ sweepIntervalMs: sweepInterval,
3614
+ handleTaskTimeout: function(task) {
3615
+ var error = prepareTaskTimeout(task, pipelineEngine_class_private_field_get(_this, pipelineEngine_metrics));
3616
+ if (error) {
3617
+ pipelineEngine_class_private_method_get(_this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(_this, task, error, void 0);
3618
+ null == (_this1 = pipelineEngine_class_private_field_get(_this2 = _this, _onTaskTimeout)) || _this1.call(_this2, task);
3619
+ }
3620
+ }
3621
+ }));
3622
+ pipelineEngine_class_private_field_set(this, pipelineEngine_pump, createPumpQueue({
3623
+ queue: pipelineEngine_class_private_field_get(this, _queue),
3624
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3625
+ processManager: pipelineEngine_class_private_field_get(this, pipelineEngine_processManager),
3626
+ sweeper: pipelineEngine_class_private_field_get(this, pipelineEngine_sweeper),
3627
+ batchSize: pipelineEngine_class_private_field_get(this, pipelineEngine_batchSize),
3628
+ maxInflight: pipelineEngine_class_private_field_get(this, pipelineEngine_maxInflight)
3629
+ }));
3630
+ pipelineEngine_class_private_field_set(this, pipelineEngine_scheduleFinalizeCheck, createFinalizeScheduler({
3631
+ pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3632
+ settleTask: function(t, e, v1) {
3633
+ return pipelineEngine_class_private_method_get(_this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(_this, t, e, v1);
3634
+ },
3635
+ pumpQueue: function() {
3636
+ return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(_this);
3637
+ },
3638
+ pendingStderr: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingStderr),
3639
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight)
3640
+ }));
3202
3641
  pipelineEngine_class_private_field_set(this, _sharedValueParser, createJsonValueParser(function(raw) {
3203
- return pipelineEngine_class_private_method_get(_this, pipelineEngine_handleParsedValue, core_pipelineEngine_handleParsedValue).call(_this, raw);
3642
+ handleParsedValue(raw, pipelineEngine_class_private_field_get(_this, pipelineEngine_inflight), {
3643
+ afterSentinel: function(task) {
3644
+ return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_afterSentinel, pipelineEngine_afterSentinel).call(_this, task);
3645
+ },
3646
+ rejectAll: function(error) {
3647
+ return _this.rejectAll(error);
3648
+ }
3649
+ });
3204
3650
  }));
3205
3651
  pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).setOnDrainCallback(function() {
3206
3652
  return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(_this);
3207
3653
  });
3208
- pipelineEngine_class_private_field_set(this, pipelineEngine_sweepIntervalMs, sweepInterval);
3209
3654
  }
3210
3655
  pipelineEngine_create_class(PipelineEngine, [
3211
3656
  {
3212
3657
  key: "_sweepTimer",
3213
3658
  get: function() {
3214
- return pipelineEngine_class_private_field_get(this, pipelineEngine_sweepTimer);
3659
+ var _$_class_private_field_get;
3660
+ var _class_private_field_get_getSweepTimer;
3661
+ 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;
3215
3662
  }
3216
3663
  },
3217
3664
  {
@@ -3229,7 +3676,7 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3229
3676
  {
3230
3677
  key: "pendingStatements",
3231
3678
  get: function() {
3232
- 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;
3679
+ 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;
3233
3680
  }
3234
3681
  },
3235
3682
  {
@@ -3262,7 +3709,7 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3262
3709
  {
3263
3710
  key: "handleStdoutChunk",
3264
3711
  value: function(chunk) {
3265
- var task = pipelineEngine_class_private_method_get(this, core_pipelineEngine_firstInflight, pipelineEngine_firstInflight).call(this);
3712
+ var task = pipelineEngine_class_private_field_get(this, pipelineEngine_inflight).first;
3266
3713
  if (!task) return;
3267
3714
  if ("stream" === task.kind && task.rowParser && !task.rowParser.finished && !task.timedout) {
3268
3715
  var leftover = task.rowParser.feed(chunk);
@@ -3275,209 +3722,64 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3275
3722
  {
3276
3723
  key: "handleStderrChunk",
3277
3724
  value: function(chunk) {
3278
- var _class_private_field_get_values_next_value;
3279
- 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);
3280
- if (!task) {
3281
- var _class_private_field_get_error, _$_class_private_field_get;
3282
- 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());
3283
- return;
3284
- }
3285
- task.stderrText += chunk;
3725
+ handleStderrChunk(chunk, {
3726
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3727
+ pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3728
+ logger: pipelineEngine_class_private_field_get(this, pipelineEngine_logger),
3729
+ pendingStderr: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingStderr)
3730
+ });
3286
3731
  }
3287
3732
  },
3288
3733
  {
3289
3734
  key: "rejectAll",
3290
3735
  value: function(error) {
3736
+ var _this = this;
3291
3737
  pipelineEngine_class_private_field_get(this, _sharedValueParser).reset();
3292
- var activeCount = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).length - pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead);
3293
- var all = activeCount > 0 ? pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).slice(pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)) : [];
3294
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightTasks, []);
3295
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightHead, 0);
3296
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
3297
- try {
3298
- for(var _iterator = all[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
3299
- var task = _step.value;
3300
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task, error, void 0);
3301
- }
3302
- } catch (err) {
3303
- _didIteratorError = true;
3304
- _iteratorError = err;
3305
- } finally{
3306
- try {
3307
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
3308
- } finally{
3309
- if (_didIteratorError) throw _iteratorError;
3310
- }
3311
- }
3312
- var queued = pipelineEngine_class_private_field_get(this, _queue).dequeue();
3313
- while(queued){
3314
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, queued, error, void 0);
3315
- queued = pipelineEngine_class_private_field_get(this, _queue).dequeue();
3316
- }
3317
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
3318
- try {
3319
- for(var _iterator1 = pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
3320
- var task1 = _step1.value;
3321
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task1, error, void 0);
3322
- }
3323
- } catch (err) {
3324
- _didIteratorError1 = true;
3325
- _iteratorError1 = err;
3326
- } finally{
3327
- try {
3328
- if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
3329
- } finally{
3330
- if (_didIteratorError1) throw _iteratorError1;
3331
- }
3332
- }
3333
- pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).clear();
3738
+ rejectAllTasks({
3739
+ inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3740
+ queue: pipelineEngine_class_private_field_get(this, _queue),
3741
+ pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3742
+ settleTask: function(t, e, v1) {
3743
+ return pipelineEngine_class_private_method_get(_this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(_this, t, e, v1);
3744
+ },
3745
+ error: error
3746
+ });
3334
3747
  }
3335
3748
  },
3336
3749
  {
3337
3750
  key: "kill",
3338
3751
  value: function() {
3752
+ var _class_private_field_get_cancel, _$_class_private_field_get;
3339
3753
  pipelineEngine_class_private_field_set(this, _active, false);
3340
- clearTimeout(pipelineEngine_class_private_field_get(this, pipelineEngine_sweepTimer));
3341
- pipelineEngine_class_private_field_set(this, pipelineEngine_sweepTimer, null);
3754
+ pipelineEngine_class_private_field_get(this, pipelineEngine_sweeper).clear();
3755
+ 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);
3342
3756
  this.rejectAll(new Error("PipelineEngine is killed"));
3343
3757
  }
3344
3758
  }
3345
3759
  ]);
3346
3760
  return PipelineEngine;
3347
3761
  }();
3348
- function core_pipelineEngine_inflightCount() {
3349
- return pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).length - pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead);
3350
- }
3351
- function pipelineEngine_firstInflight() {
3352
- 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;
3353
- }
3354
- function pipelineEngine_shiftInflight() {
3355
- var task = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)];
3356
- pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead)] = null;
3357
- pipelineEngine_class_private_field_update(this, pipelineEngine_inflightHead).value++;
3358
- if (pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead) >= pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).length) {
3359
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightTasks, []);
3360
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightHead, 0);
3361
- } else if (pipelineEngine_class_private_field_get(this, pipelineEngine_inflightHead) > 128) {
3362
- 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)));
3363
- pipelineEngine_class_private_field_set(this, pipelineEngine_inflightHead, 0);
3364
- }
3365
- return task;
3366
- }
3367
3762
  function pipelineEngine_pumpQueue() {
3368
- var _$_class_private_field_get;
3369
3763
  if (!pipelineEngine_class_private_field_get(this, _active)) return;
3370
- if (pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).draining) return;
3371
- if (pipelineEngine_class_private_method_get(this, pipelineEngine_inflightCount, core_pipelineEngine_inflightCount).call(this) >= pipelineEngine_class_private_field_get(this, pipelineEngine_maxInflight)) return;
3372
- var batch = [];
3373
- 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)){
3374
- var task = pipelineEngine_class_private_field_get(this, _queue).peek();
3375
- if ("stream" === task.kind && (batch.length > 0 || pipelineEngine_class_private_method_get(this, pipelineEngine_inflightCount, core_pipelineEngine_inflightCount).call(this) > 0)) break;
3376
- pipelineEngine_class_private_field_get(this, _queue).dequeue();
3377
- batch.push(task);
3378
- }
3379
- if (0 === batch.length) return;
3380
- var now = performance.now();
3381
- var payload = buildBatchPayload(batch);
3382
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
3383
- try {
3384
- for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
3385
- var task1 = _step.value;
3386
- task1.startTime = now;
3387
- }
3388
- } catch (err) {
3389
- _didIteratorError = true;
3390
- _iteratorError = err;
3391
- } finally{
3392
- try {
3393
- if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
3394
- } finally{
3395
- if (_didIteratorError) throw _iteratorError;
3396
- }
3397
- }
3398
- (_$_class_private_field_get = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)).push.apply(_$_class_private_field_get, pipelineEngine_to_consumable_array(batch));
3399
- pipelineEngine_class_private_method_get(this, pipelineEngine_scheduleSweep, core_pipelineEngine_scheduleSweep).call(this);
3400
- pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).write(payload);
3401
- }
3402
- function core_pipelineEngine_handleParsedValue(raw) {
3403
- var task = pipelineEngine_class_private_method_get(this, core_pipelineEngine_firstInflight, pipelineEngine_firstInflight).call(this);
3404
- if (!task) return;
3405
- if (isSentinelRaw(raw, task.token)) {
3406
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_shiftInflight, pipelineEngine_shiftInflight).call(this);
3407
- if (task.timedout) return void pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3408
- if (task.consumerError) {
3409
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task, task.consumerError, void 0);
3410
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3411
- return;
3412
- }
3413
- pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).add(task);
3414
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_scheduleFinalizeCheck, pipelineEngine_scheduleFinalizeCheck).call(this);
3415
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3416
- return;
3417
- }
3418
- if ("[]" === raw) return;
3419
- var parsed;
3420
- try {
3421
- parsed = JSON.parse(raw);
3422
- } catch (error) {
3423
- this.rejectAll(new Error("Invalid JSON from sqlite3: ".concat(toError(error).message)));
3424
- return;
3425
- }
3426
- if (isSentinelRow(parsed, task.token)) {
3427
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_shiftInflight, pipelineEngine_shiftInflight).call(this);
3428
- if (task.timedout) return void pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3429
- if (task.consumerError) {
3430
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task, task.consumerError, void 0);
3431
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3432
- return;
3433
- }
3434
- pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks).add(task);
3435
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_scheduleFinalizeCheck, pipelineEngine_scheduleFinalizeCheck).call(this);
3436
- pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
3437
- return;
3438
- }
3439
- if (task.timedout) return;
3440
- if ("query" === task.kind) return void collectQueryRows(task, parsed);
3441
- if ("stream" === task.kind) processStreamRows(task, parsed);
3764
+ pipelineEngine_class_private_field_get(this, pipelineEngine_pump).call(this);
3442
3765
  }
3443
- function pipelineEngine_scheduleFinalizeCheck() {
3766
+ function pipelineEngine_afterSentinel(task) {
3444
3767
  var _this = this;
3445
- if (pipelineEngine_class_private_field_get(this, pipelineEngine_scheduledFinalize)) return;
3446
- pipelineEngine_class_private_field_set(this, pipelineEngine_scheduledFinalize, true);
3447
- setImmediate(function() {
3448
- pipelineEngine_class_private_field_set(_this, pipelineEngine_scheduledFinalize, false);
3449
- finalizePendingTasks(pipelineEngine_class_private_field_get(_this, pipelineEngine_pendingFinalizeTasks), function(t, e, v1) {
3768
+ handleSentinelTask(task, {
3769
+ settleTask: function(t, e, v1) {
3450
3770
  return pipelineEngine_class_private_method_get(_this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(_this, t, e, v1);
3451
- }, function() {
3771
+ },
3772
+ pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3773
+ scheduleFinalizeCheck: function() {
3774
+ return pipelineEngine_class_private_field_get(_this, pipelineEngine_scheduleFinalizeCheck).call(_this);
3775
+ },
3776
+ pumpQueue: function() {
3452
3777
  return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(_this);
3453
- });
3454
- });
3455
- }
3456
- function core_pipelineEngine_scheduleSweep() {
3457
- var _this = this;
3458
- if (pipelineEngine_class_private_field_get(this, pipelineEngine_sweepTimer)) return;
3459
- pipelineEngine_class_private_field_set(this, pipelineEngine_sweepTimer, setTimeout(function() {
3460
- pipelineEngine_class_private_field_set(_this, pipelineEngine_sweepTimer, null);
3461
- var tasks = pipelineEngine_class_private_field_get(_this, pipelineEngine_inflightTasks);
3462
- var head = pipelineEngine_class_private_field_get(_this, pipelineEngine_inflightHead);
3463
- var now = performance.now();
3464
- for(var i = head; i < tasks.length; i++){
3465
- var task = tasks[i];
3466
- if (now - task.startTime > task.timeout) pipelineEngine_class_private_method_get(_this, core_pipelineEngine_handleTaskTimeout, pipelineEngine_handleTaskTimeout).call(_this, task);
3467
3778
  }
3468
- 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);
3469
- }, pipelineEngine_class_private_field_get(this, pipelineEngine_sweepIntervalMs)).unref());
3470
- }
3471
- function pipelineEngine_handleTaskTimeout(task) {
3472
- var _this, _this1;
3473
- var error = prepareTaskTimeout(task, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics));
3474
- if (error) {
3475
- pipelineEngine_class_private_method_get(this, pipelineEngine_settleTask, pipelineEngine_settleTask1).call(this, task, error, void 0);
3476
- null == (_this = pipelineEngine_class_private_field_get(_this1 = this, _onTaskTimeout)) || _this.call(_this1, task);
3477
- }
3779
+ });
3478
3780
  }
3479
3781
  function pipelineEngine_settleTask1(task, error, value) {
3480
- settleTask(task, error, value, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics), {
3782
+ settleUtils_settleTask(task, error, value, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics), {
3481
3783
  resetRowParser: true
3482
3784
  });
3483
3785
  }
@@ -3984,31 +4286,6 @@ var executor_SQLiteExecutor = /*#__PURE__*/ function() {
3984
4286
  case 1:
3985
4287
  _state.sent();
3986
4288
  executor_class_private_field_get(_this, executor_processManager).kill();
3987
- _state.label = 2;
3988
- case 2:
3989
- _state.trys.push([
3990
- 2,
3991
- 4,
3992
- ,
3993
- 5
3994
- ]);
3995
- return [
3996
- 4,
3997
- (0, __WEBPACK_EXTERNAL_MODULE_node_events_0a6aefe7__.once)(executor_class_private_field_get(_this, executor_processManager).process, "close")
3998
- ];
3999
- case 3:
4000
- _state.sent();
4001
- return [
4002
- 3,
4003
- 5
4004
- ];
4005
- case 4:
4006
- _state.sent();
4007
- return [
4008
- 3,
4009
- 5
4010
- ];
4011
- case 5:
4012
4289
  return [
4013
4290
  2
4014
4291
  ];