tedious 16.4.1 → 16.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/benchmarks/bulk-load/iterable.js +1 -1
  2. package/benchmarks/common.js +2 -4
  3. package/benchmarks/package-lock.json +21173 -0
  4. package/benchmarks/package.json +11 -0
  5. package/benchmarks/query/call-tvp.js +1 -1
  6. package/benchmarks/query/insert-varbinary.js +1 -1
  7. package/benchmarks/query/select-many-rows.js +1 -1
  8. package/benchmarks/query/select-nvarchar.js +1 -1
  9. package/benchmarks/query/select-varbinary.js +1 -1
  10. package/benchmarks/request/rpcrequest-payload-tvp.js +2 -2
  11. package/benchmarks/request/rpcrequest-payload-varbinary.js +2 -2
  12. package/benchmarks/token-parser/colmetadata-token.js +4 -2
  13. package/benchmarks/token-parser/done-token.js +5 -2
  14. package/benchmarks/token-parser/simple-tokens.js +8 -2
  15. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +1 -8
  16. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -1
  17. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +1 -8
  18. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -1
  19. package/lib/always-encrypted/cek-entry.js +1 -7
  20. package/lib/always-encrypted/cek-entry.js.map +1 -1
  21. package/lib/always-encrypted/keystore-provider-azure-key-vault.js +1 -8
  22. package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -1
  23. package/lib/always-encrypted/symmetric-key.js +1 -2
  24. package/lib/always-encrypted/symmetric-key.js.map +1 -1
  25. package/lib/bulk-load-payload.js +1 -3
  26. package/lib/bulk-load-payload.js.map +1 -1
  27. package/lib/bulk-load.js +15 -23
  28. package/lib/bulk-load.js.map +1 -1
  29. package/lib/collation.js +1 -7
  30. package/lib/collation.js.map +1 -1
  31. package/lib/connection.js +22 -28
  32. package/lib/connection.js.map +1 -1
  33. package/lib/debug.js +1 -4
  34. package/lib/debug.js.map +1 -1
  35. package/lib/errors/abort-error.js +1 -2
  36. package/lib/errors/abort-error.js.map +1 -1
  37. package/lib/errors/timeout-error.js +1 -2
  38. package/lib/errors/timeout-error.js.map +1 -1
  39. package/lib/errors.js +1 -10
  40. package/lib/errors.js.map +1 -1
  41. package/lib/incoming-message-stream.js +1 -4
  42. package/lib/incoming-message-stream.js.map +1 -1
  43. package/lib/login7-payload.js +1 -23
  44. package/lib/login7-payload.js.map +1 -1
  45. package/lib/message-io.js +1 -8
  46. package/lib/message-io.js.map +1 -1
  47. package/lib/message.js +1 -4
  48. package/lib/message.js.map +1 -1
  49. package/lib/metadata-parser.js +361 -241
  50. package/lib/metadata-parser.js.map +1 -1
  51. package/lib/ntlm-payload.js +1 -2
  52. package/lib/ntlm-payload.js.map +1 -1
  53. package/lib/outgoing-message-stream.js +1 -5
  54. package/lib/outgoing-message-stream.js.map +1 -1
  55. package/lib/packet.js +1 -2
  56. package/lib/packet.js.map +1 -1
  57. package/lib/prelogin-payload.js +1 -11
  58. package/lib/prelogin-payload.js.map +1 -1
  59. package/lib/request.js +13 -19
  60. package/lib/request.js.map +1 -1
  61. package/lib/rpcrequest-payload.js +1 -6
  62. package/lib/rpcrequest-payload.js.map +1 -1
  63. package/lib/sqlbatch-payload.js +1 -4
  64. package/lib/sqlbatch-payload.js.map +1 -1
  65. package/lib/token/colmetadata-token-parser.js +103 -74
  66. package/lib/token/colmetadata-token-parser.js.map +1 -1
  67. package/lib/token/done-token-parser.js +52 -40
  68. package/lib/token/done-token-parser.js.map +1 -1
  69. package/lib/token/env-change-token-parser.js +110 -81
  70. package/lib/token/env-change-token-parser.js.map +1 -1
  71. package/lib/token/feature-ext-ack-parser.js +30 -22
  72. package/lib/token/feature-ext-ack-parser.js.map +1 -1
  73. package/lib/token/fedauth-info-parser.js +47 -30
  74. package/lib/token/fedauth-info-parser.js.map +1 -1
  75. package/lib/token/handler.js +3 -13
  76. package/lib/token/handler.js.map +1 -1
  77. package/lib/token/helpers.js +205 -0
  78. package/lib/token/helpers.js.map +1 -0
  79. package/lib/token/infoerror-token-parser.js +69 -36
  80. package/lib/token/infoerror-token-parser.js.map +1 -1
  81. package/lib/token/loginack-token-parser.js +59 -31
  82. package/lib/token/loginack-token-parser.js.map +1 -1
  83. package/lib/token/nbcrow-token-parser.js +60 -23
  84. package/lib/token/nbcrow-token-parser.js.map +1 -1
  85. package/lib/token/order-token-parser.js +22 -20
  86. package/lib/token/order-token-parser.js.map +1 -1
  87. package/lib/token/returnstatus-token-parser.js +9 -5
  88. package/lib/token/returnstatus-token-parser.js.map +1 -1
  89. package/lib/token/returnvalue-token-parser.js +79 -22
  90. package/lib/token/returnvalue-token-parser.js.map +1 -1
  91. package/lib/token/row-token-parser.js +50 -20
  92. package/lib/token/row-token-parser.js.map +1 -1
  93. package/lib/token/sspi-token-parser.js +14 -5
  94. package/lib/token/sspi-token-parser.js.map +1 -1
  95. package/lib/token/stream-parser.js +289 -330
  96. package/lib/token/stream-parser.js.map +1 -1
  97. package/lib/token/token-stream-parser.js +1 -4
  98. package/lib/token/token-stream-parser.js.map +1 -1
  99. package/lib/token/token.js +2 -88
  100. package/lib/token/token.js.map +1 -1
  101. package/lib/tracking-buffer/writable-tracking-buffer.js +1 -7
  102. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
  103. package/lib/transaction.js +1 -4
  104. package/lib/transaction.js.map +1 -1
  105. package/lib/value-parser.js +655 -438
  106. package/lib/value-parser.js.map +1 -1
  107. package/package.json +1 -1
  108. package/benchmarks/bulk-load/stream.js +0 -62
  109. package/benchmarks/bulk-load/sync.js +0 -59
@@ -5,20 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _token = require("./token");
8
- var _valueParser = _interopRequireDefault(require("../value-parser"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ var iconv = _interopRequireWildcard(require("iconv-lite"));
9
+ var _valueParser = require("../value-parser");
10
+ var _helpers = require("./helpers");
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
13
  // s2.2.7.13 (introduced in TDS 7.3.B)
11
14
 
12
- function nullHandler(_parser, _columnMetadata, _options, callback) {
13
- callback(null);
14
- }
15
15
  async function nbcRowParser(parser) {
16
16
  const colMetadata = parser.colMetadata;
17
- const bitmapByteLength = Math.ceil(colMetadata.length / 8);
18
17
  const columns = [];
19
18
  const bitmap = [];
19
+ const bitmapByteLength = Math.ceil(colMetadata.length / 8);
20
20
  while (parser.buffer.length - parser.position < bitmapByteLength) {
21
- await parser.streamBuffer.waitForChunk();
21
+ await parser.waitForChunk();
22
22
  }
23
23
  const bytes = parser.buffer.slice(parser.position, parser.position + bitmapByteLength);
24
24
  parser.position += bitmapByteLength;
@@ -34,24 +34,61 @@ async function nbcRowParser(parser) {
34
34
  bitmap.push(byte & 0b10000000 ? true : false);
35
35
  }
36
36
  for (let i = 0; i < colMetadata.length; i++) {
37
- const currColMetadata = colMetadata[i];
38
- let value;
39
- (bitmap[i] ? nullHandler : _valueParser.default)(parser, currColMetadata, parser.options, v => {
40
- value = v;
41
- });
42
- while (parser.suspended) {
43
- await parser.streamBuffer.waitForChunk();
44
- parser.suspended = false;
45
- const next = parser.next;
46
- next();
37
+ const metadata = colMetadata[i];
38
+ if (bitmap[i]) {
39
+ columns.push({
40
+ value: null,
41
+ metadata
42
+ });
43
+ continue;
44
+ }
45
+ while (true) {
46
+ if ((0, _valueParser.isPLPStream)(metadata)) {
47
+ const chunks = await (0, _valueParser.readPLPStream)(parser);
48
+ if (chunks === null) {
49
+ columns.push({
50
+ value: chunks,
51
+ metadata
52
+ });
53
+ } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {
54
+ columns.push({
55
+ value: Buffer.concat(chunks).toString('ucs2'),
56
+ metadata
57
+ });
58
+ } else if (metadata.type.name === 'VarChar') {
59
+ var _metadata$collation;
60
+ columns.push({
61
+ value: iconv.decode(Buffer.concat(chunks), ((_metadata$collation = metadata.collation) === null || _metadata$collation === void 0 ? void 0 : _metadata$collation.codepage) ?? 'utf8'),
62
+ metadata
63
+ });
64
+ } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {
65
+ columns.push({
66
+ value: Buffer.concat(chunks),
67
+ metadata
68
+ });
69
+ }
70
+ } else {
71
+ let result;
72
+ try {
73
+ result = (0, _valueParser.readValue)(parser.buffer, parser.position, metadata, parser.options);
74
+ } catch (err) {
75
+ if (err instanceof _helpers.NotEnoughDataError) {
76
+ await parser.waitForChunk();
77
+ continue;
78
+ }
79
+ throw err;
80
+ }
81
+ parser.position = result.offset;
82
+ columns.push({
83
+ value: result.value,
84
+ metadata
85
+ });
86
+ }
87
+ break;
47
88
  }
48
- columns.push({
49
- value,
50
- metadata: currColMetadata
51
- });
52
89
  }
53
90
  if (parser.options.useColumnNames) {
54
- const columnsMap = {};
91
+ const columnsMap = Object.create(null);
55
92
  columns.forEach(column => {
56
93
  const colName = column.metadata.colName;
57
94
  if (columnsMap[colName] == null) {
@@ -66,4 +103,4 @@ async function nbcRowParser(parser) {
66
103
  var _default = nbcRowParser;
67
104
  exports.default = _default;
68
105
  module.exports = nbcRowParser;
69
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX3ZhbHVlUGFyc2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwibnVsbEhhbmRsZXIiLCJfcGFyc2VyIiwiX2NvbHVtbk1ldGFkYXRhIiwiX29wdGlvbnMiLCJjYWxsYmFjayIsIm5iY1Jvd1BhcnNlciIsInBhcnNlciIsImNvbE1ldGFkYXRhIiwiYml0bWFwQnl0ZUxlbmd0aCIsIk1hdGgiLCJjZWlsIiwibGVuZ3RoIiwiY29sdW1ucyIsImJpdG1hcCIsImJ1ZmZlciIsInBvc2l0aW9uIiwic3RyZWFtQnVmZmVyIiwid2FpdEZvckNodW5rIiwiYnl0ZXMiLCJzbGljZSIsImkiLCJsZW4iLCJieXRlIiwicHVzaCIsImN1cnJDb2xNZXRhZGF0YSIsInZhbHVlIiwidmFsdWVQYXJzZSIsIm9wdGlvbnMiLCJ2Iiwic3VzcGVuZGVkIiwibmV4dCIsIm1ldGFkYXRhIiwidXNlQ29sdW1uTmFtZXMiLCJjb2x1bW5zTWFwIiwiZm9yRWFjaCIsImNvbHVtbiIsImNvbE5hbWUiLCJOQkNSb3dUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9uYmNyb3ctdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4xMyAoaW50cm9kdWNlZCBpbiBURFMgNy4zLkIpXG5cbmltcG9ydCBQYXJzZXIsIHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcbmltcG9ydCB7IHR5cGUgQ29sdW1uTWV0YWRhdGEgfSBmcm9tICcuL2NvbG1ldGFkYXRhLXRva2VuLXBhcnNlcic7XG5cbmltcG9ydCB7IE5CQ1Jvd1Rva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCB2YWx1ZVBhcnNlIGZyb20gJy4uL3ZhbHVlLXBhcnNlcic7XG5cbmZ1bmN0aW9uIG51bGxIYW5kbGVyKF9wYXJzZXI6IFBhcnNlciwgX2NvbHVtbk1ldGFkYXRhOiBDb2x1bW5NZXRhZGF0YSwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNhbGxiYWNrOiAodmFsdWU6IHVua25vd24pID0+IHZvaWQpIHtcbiAgY2FsbGJhY2sobnVsbCk7XG59XG5cbmludGVyZmFjZSBDb2x1bW4ge1xuICB2YWx1ZTogdW5rbm93bjtcbiAgbWV0YWRhdGE6IENvbHVtbk1ldGFkYXRhO1xufVxuXG5hc3luYyBmdW5jdGlvbiBuYmNSb3dQYXJzZXIocGFyc2VyOiBQYXJzZXIpOiBQcm9taXNlPE5CQ1Jvd1Rva2VuPiB7XG4gIGNvbnN0IGNvbE1ldGFkYXRhID0gcGFyc2VyLmNvbE1ldGFkYXRhO1xuICBjb25zdCBiaXRtYXBCeXRlTGVuZ3RoID0gTWF0aC5jZWlsKGNvbE1ldGFkYXRhLmxlbmd0aCAvIDgpO1xuICBjb25zdCBjb2x1bW5zOiBDb2x1bW5bXSA9IFtdO1xuICBjb25zdCBiaXRtYXA6IGJvb2xlYW5bXSA9IFtdO1xuXG4gIHdoaWxlIChwYXJzZXIuYnVmZmVyLmxlbmd0aCAtIHBhcnNlci5wb3NpdGlvbiA8IGJpdG1hcEJ5dGVMZW5ndGgpIHtcbiAgICBhd2FpdCBwYXJzZXIuc3RyZWFtQnVmZmVyLndhaXRGb3JDaHVuaygpO1xuICB9XG5cbiAgY29uc3QgYnl0ZXMgPSBwYXJzZXIuYnVmZmVyLnNsaWNlKHBhcnNlci5wb3NpdGlvbiwgcGFyc2VyLnBvc2l0aW9uICsgYml0bWFwQnl0ZUxlbmd0aCk7XG4gIHBhcnNlci5wb3NpdGlvbiArPSBiaXRtYXBCeXRlTGVuZ3RoO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBieXRlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGJ5dGUgPSBieXRlc1tpXTtcblxuICAgIGJpdG1hcC5wdXNoKGJ5dGUgJiAwYjEgPyB0cnVlIDogZmFsc2UpO1xuICAgIGJpdG1hcC5wdXNoKGJ5dGUgJiAwYjEwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAgPyB0cnVlIDogZmFsc2UpO1xuICAgIGJpdG1hcC5wdXNoKGJ5dGUgJiAwYjEwMDAgPyB0cnVlIDogZmFsc2UpO1xuICAgIGJpdG1hcC5wdXNoKGJ5dGUgJiAwYjEwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAgPyB0cnVlIDogZmFsc2UpO1xuICAgIGJpdG1hcC5wdXNoKGJ5dGUgJiAwYjEwMDAwMDAgPyB0cnVlIDogZmFsc2UpO1xuICAgIGJpdG1hcC5wdXNoKGJ5dGUgJiAwYjEwMDAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29sTWV0YWRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjdXJyQ29sTWV0YWRhdGEgPSBjb2xNZXRhZGF0YVtpXTtcbiAgICBsZXQgdmFsdWU7XG4gICAgKGJpdG1hcFtpXSA/IG51bGxIYW5kbGVyIDogdmFsdWVQYXJzZSkocGFyc2VyLCBjdXJyQ29sTWV0YWRhdGEsIHBhcnNlci5vcHRpb25zLCAodikgPT4ge1xuICAgICAgdmFsdWUgPSB2O1xuICAgIH0pO1xuXG4gICAgd2hpbGUgKHBhcnNlci5zdXNwZW5kZWQpIHtcbiAgICAgIGF3YWl0IHBhcnNlci5zdHJlYW1CdWZmZXIud2FpdEZvckNodW5rKCk7XG5cbiAgICAgIHBhcnNlci5zdXNwZW5kZWQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IG5leHQgPSBwYXJzZXIubmV4dCE7XG5cbiAgICAgIG5leHQoKTtcbiAgICB9XG4gICAgY29sdW1ucy5wdXNoKHtcbiAgICAgIHZhbHVlLFxuICAgICAgbWV0YWRhdGE6IGN1cnJDb2xNZXRhZGF0YVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBhcnNlci5vcHRpb25zLnVzZUNvbHVtbk5hbWVzKSB7XG4gICAgY29uc3QgY29sdW1uc01hcDogeyBba2V5OiBzdHJpbmddOiBDb2x1bW4gfSA9IHt9O1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgIGNvbnN0IGNvbE5hbWUgPSBjb2x1bW4ubWV0YWRhdGEuY29sTmFtZTtcbiAgICAgIGlmIChjb2x1bW5zTWFwW2NvbE5hbWVdID09IG51bGwpIHtcbiAgICAgICAgY29sdW1uc01hcFtjb2xOYW1lXSA9IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgTkJDUm93VG9rZW4oY29sdW1uc01hcCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBOQkNSb3dUb2tlbihjb2x1bW5zKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuYmNSb3dQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IG5iY1Jvd1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsWUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQXlDLFNBQUFFLHVCQUFBQyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBUHpDOztBQVNBLFNBQVNHLFdBQVdBLENBQUNDLE9BQWUsRUFBRUMsZUFBK0IsRUFBRUMsUUFBdUIsRUFBRUMsUUFBa0MsRUFBRTtFQUNsSUEsUUFBUSxDQUFDLElBQUksQ0FBQztBQUNoQjtBQU9BLGVBQWVDLFlBQVlBLENBQUNDLE1BQWMsRUFBd0I7RUFDaEUsTUFBTUMsV0FBVyxHQUFHRCxNQUFNLENBQUNDLFdBQVc7RUFDdEMsTUFBTUMsZ0JBQWdCLEdBQUdDLElBQUksQ0FBQ0MsSUFBSSxDQUFDSCxXQUFXLENBQUNJLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDMUQsTUFBTUMsT0FBaUIsR0FBRyxFQUFFO0VBQzVCLE1BQU1DLE1BQWlCLEdBQUcsRUFBRTtFQUU1QixPQUFPUCxNQUFNLENBQUNRLE1BQU0sQ0FBQ0gsTUFBTSxHQUFHTCxNQUFNLENBQUNTLFFBQVEsR0FBR1AsZ0JBQWdCLEVB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
106
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiaWNvbnYiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92YWx1ZVBhcnNlciIsIl9oZWxwZXJzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm5iY1Jvd1BhcnNlciIsInBhcnNlciIsImNvbE1ldGFkYXRhIiwiY29sdW1ucyIsImJpdG1hcCIsImJpdG1hcEJ5dGVMZW5ndGgiLCJNYXRoIiwiY2VpbCIsImxlbmd0aCIsImJ1ZmZlciIsInBvc2l0aW9uIiwid2FpdEZvckNodW5rIiwiYnl0ZXMiLCJzbGljZSIsImkiLCJsZW4iLCJieXRlIiwicHVzaCIsIm1ldGFkYXRhIiwidmFsdWUiLCJpc1BMUFN0cmVhbSIsImNodW5rcyIsInJlYWRQTFBTdHJlYW0iLCJ0eXBlIiwibmFtZSIsIkJ1ZmZlciIsImNvbmNhdCIsInRvU3RyaW5nIiwiX21ldGFkYXRhJGNvbGxhdGlvbiIsImRlY29kZSIsImNvbGxhdGlvbiIsImNvZGVwYWdlIiwicmVzdWx0IiwicmVhZFZhbHVlIiwib3B0aW9ucyIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9mZnNldCIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1uc01hcCIsImNyZWF0ZSIsImZvckVhY2giLCJjb2x1bW4iLCJjb2xOYW1lIiwiTkJDUm93VG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vbmJjcm93LXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTMgKGludHJvZHVjZWQgaW4gVERTIDcuMy5CKVxuXG5pbXBvcnQgUGFyc2VyIGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyB0eXBlIENvbHVtbk1ldGFkYXRhIH0gZnJvbSAnLi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXInO1xuXG5pbXBvcnQgeyBOQkNSb3dUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0ICogYXMgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IGlzUExQU3RyZWFtLCByZWFkUExQU3RyZWFtLCByZWFkVmFsdWUgfSBmcm9tICcuLi92YWx1ZS1wYXJzZXInO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIENvbHVtbiB7XG4gIHZhbHVlOiB1bmtub3duO1xuICBtZXRhZGF0YTogQ29sdW1uTWV0YWRhdGE7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5iY1Jvd1BhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8TkJDUm93VG9rZW4+IHtcbiAgY29uc3QgY29sTWV0YWRhdGEgPSBwYXJzZXIuY29sTWV0YWRhdGE7XG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gW107XG4gIGNvbnN0IGJpdG1hcDogYm9vbGVhbltdID0gW107XG4gIGNvbnN0IGJpdG1hcEJ5dGVMZW5ndGggPSBNYXRoLmNlaWwoY29sTWV0YWRhdGEubGVuZ3RoIC8gOCk7XG5cbiAgd2hpbGUgKHBhcnNlci5idWZmZXIubGVuZ3RoIC0gcGFyc2VyLnBvc2l0aW9uIDwgYml0bWFwQnl0ZUxlbmd0aCkge1xuICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgfVxuXG4gIGNvbnN0IGJ5dGVzID0gcGFyc2VyLmJ1ZmZlci5zbGljZShwYXJzZXIucG9zaXRpb24sIHBhcnNlci5wb3NpdGlvbiArIGJpdG1hcEJ5dGVMZW5ndGgpO1xuICBwYXJzZXIucG9zaXRpb24gKz0gYml0bWFwQnl0ZUxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYnl0ZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gYnl0ZXNbaV07XG5cbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbE1ldGFkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBjb2xNZXRhZGF0YVtpXTtcbiAgICBpZiAoYml0bWFwW2ldKSB7XG4gICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogbnVsbCwgbWV0YWRhdGEgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGlzUExQU3RyZWFtKG1ldGFkYXRhKSkge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgICAgaWYgKGNodW5rcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBjaHVua3MsIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHsgdmFsdWU6IEJ1ZmZlci5jb25jYXQoY2h1bmtzKS50b1N0cmluZygndWNzMicpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJDaGFyJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBpY29udi5kZWNvZGUoQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YS5jb2xsYXRpb24/LmNvZGVwYWdlID8/ICd1dGY4JyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckJpbmFyeScgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnVURUJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBCdWZmZXIuY29uY2F0KGNodW5rcyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlYWRWYWx1ZShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24sIG1ldGFkYXRhLCBwYXJzZXIub3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiByZXN1bHQudmFsdWUsIG1ldGFkYXRhIH0pO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAocGFyc2VyLm9wdGlvbnMudXNlQ29sdW1uTmFtZXMpIHtcbiAgICBjb25zdCBjb2x1bW5zTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb2xOYW1lID0gY29sdW1uLm1ldGFkYXRhLmNvbE5hbWU7XG4gICAgICBpZiAoY29sdW1uc01hcFtjb2xOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbHVtbnNNYXBbY29sTmFtZV0gPSBjb2x1bW47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IE5CQ1Jvd1Rva2VuKGNvbHVtbnNNYXApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgTkJDUm93VG9rZW4oY29sdW1ucyk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBuYmNSb3dQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IG5iY1Jvd1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQStDLFNBQUFLLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"nbcrow-token-parser.js","names":["_token","require","_valueParser","_interopRequireDefault","obj","__esModule","default","nullHandler","_parser","_columnMetadata","_options","callback","nbcRowParser","parser","colMetadata","bitmapByteLength","Math","ceil","length","columns","bitmap","buffer","position","streamBuffer","waitForChunk","bytes","slice","i","len","byte","push","currColMetadata","value","valueParse","options","v","suspended","next","metadata","useColumnNames","columnsMap","forEach","column","colName","NBCRowToken","_default","exports","module"],"sources":["../../src/token/nbcrow-token-parser.ts"],"sourcesContent":["// s2.2.7.13 (introduced in TDS 7.3.B)\n\nimport Parser, { type ParserOptions } from './stream-parser';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\n\nimport { NBCRowToken } from './token';\n\nimport valueParse from '../value-parser';\n\nfunction nullHandler(_parser: Parser, _columnMetadata: ColumnMetadata, _options: ParserOptions, callback: (value: unknown) => void) {\n callback(null);\n}\n\ninterface Column {\n value: unknown;\n metadata: ColumnMetadata;\n}\n\nasync function nbcRowParser(parser: Parser): Promise<NBCRowToken> {\n const colMetadata = parser.colMetadata;\n const bitmapByteLength = Math.ceil(colMetadata.length / 8);\n const columns: Column[] = [];\n const bitmap: boolean[] = [];\n\n while (parser.buffer.length - parser.position < bitmapByteLength) {\n await parser.streamBuffer.waitForChunk();\n }\n\n const bytes = parser.buffer.slice(parser.position, parser.position + bitmapByteLength);\n parser.position += bitmapByteLength;\n\n for (let i = 0, len = bytes.length; i < len; i++) {\n const byte = bytes[i];\n\n bitmap.push(byte & 0b1 ? true : false);\n bitmap.push(byte & 0b10 ? true : false);\n bitmap.push(byte & 0b100 ? true : false);\n bitmap.push(byte & 0b1000 ? true : false);\n bitmap.push(byte & 0b10000 ? true : false);\n bitmap.push(byte & 0b100000 ? true : false);\n bitmap.push(byte & 0b1000000 ? true : false);\n bitmap.push(byte & 0b10000000 ? true : false);\n }\n\n for (let i = 0; i < colMetadata.length; i++) {\n const currColMetadata = colMetadata[i];\n let value;\n (bitmap[i] ? nullHandler : valueParse)(parser, currColMetadata, parser.options, (v) => {\n value = v;\n });\n\n while (parser.suspended) {\n await parser.streamBuffer.waitForChunk();\n\n parser.suspended = false;\n const next = parser.next!;\n\n next();\n }\n columns.push({\n value,\n metadata: currColMetadata\n });\n }\n\n if (parser.options.useColumnNames) {\n const columnsMap: { [key: string]: Column } = {};\n\n columns.forEach((column) => {\n const colName = column.metadata.colName;\n if (columnsMap[colName] == null) {\n columnsMap[colName] = column;\n }\n });\n\n return new NBCRowToken(columnsMap);\n } else {\n return new NBCRowToken(columns);\n }\n}\n\nexport default nbcRowParser;\nmodule.exports = nbcRowParser;\n"],"mappings":"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"}
1
+ {"version":3,"file":"nbcrow-token-parser.js","names":["_token","require","iconv","_interopRequireWildcard","_valueParser","_helpers","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","nbcRowParser","parser","colMetadata","columns","bitmap","bitmapByteLength","Math","ceil","length","buffer","position","waitForChunk","bytes","slice","i","len","byte","push","metadata","value","isPLPStream","chunks","readPLPStream","type","name","Buffer","concat","toString","_metadata$collation","decode","collation","codepage","result","readValue","options","err","NotEnoughDataError","offset","useColumnNames","columnsMap","create","forEach","column","colName","NBCRowToken","_default","exports","module"],"sources":["../../src/token/nbcrow-token-parser.ts"],"sourcesContent":["// s2.2.7.13 (introduced in TDS 7.3.B)\n\nimport Parser from './stream-parser';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\n\nimport { NBCRowToken } from './token';\nimport * as iconv from 'iconv-lite';\n\nimport { isPLPStream, readPLPStream, readValue } from '../value-parser';\nimport { NotEnoughDataError } from './helpers';\n\ninterface Column {\n value: unknown;\n metadata: ColumnMetadata;\n}\n\nasync function nbcRowParser(parser: Parser): Promise<NBCRowToken> {\n const colMetadata = parser.colMetadata;\n const columns: Column[] = [];\n const bitmap: boolean[] = [];\n const bitmapByteLength = Math.ceil(colMetadata.length / 8);\n\n while (parser.buffer.length - parser.position < bitmapByteLength) {\n await parser.waitForChunk();\n }\n\n const bytes = parser.buffer.slice(parser.position, parser.position + bitmapByteLength);\n parser.position += bitmapByteLength;\n\n for (let i = 0, len = bytes.length; i < len; i++) {\n const byte = bytes[i];\n\n bitmap.push(byte & 0b1 ? true : false);\n bitmap.push(byte & 0b10 ? true : false);\n bitmap.push(byte & 0b100 ? true : false);\n bitmap.push(byte & 0b1000 ? true : false);\n bitmap.push(byte & 0b10000 ? true : false);\n bitmap.push(byte & 0b100000 ? true : false);\n bitmap.push(byte & 0b1000000 ? true : false);\n bitmap.push(byte & 0b10000000 ? true : false);\n }\n\n for (let i = 0; i < colMetadata.length; i++) {\n const metadata = colMetadata[i];\n if (bitmap[i]) {\n columns.push({ value: null, metadata });\n continue;\n }\n\n while (true) {\n if (isPLPStream(metadata)) {\n const chunks = await readPLPStream(parser);\n\n if (chunks === null) {\n columns.push({ value: chunks, metadata });\n } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {\n columns.push({ value: Buffer.concat(chunks).toString('ucs2'), metadata });\n } else if (metadata.type.name === 'VarChar') {\n columns.push({ value: iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8'), metadata });\n } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {\n columns.push({ value: Buffer.concat(chunks), metadata });\n }\n } else {\n let result;\n try {\n result = readValue(parser.buffer, parser.position, metadata, parser.options);\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = result.offset;\n columns.push({ value: result.value, metadata });\n }\n\n break;\n }\n }\n\n if (parser.options.useColumnNames) {\n const columnsMap: { [key: string]: Column } = Object.create(null);\n\n columns.forEach((column) => {\n const colName = column.metadata.colName;\n if (columnsMap[colName] == null) {\n columnsMap[colName] = column;\n }\n });\n\n return new NBCRowToken(columnsMap);\n } else {\n return new NBCRowToken(columns);\n }\n}\n\n\nexport default nbcRowParser;\nmodule.exports = nbcRowParser;\n"],"mappings":"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"}
@@ -5,29 +5,31 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _token = require("./token");
8
+ var _helpers = require("./helpers");
8
9
  // s2.2.7.14
9
10
 
10
- function orderParser(parser, _options, callback) {
11
- parser.readUInt16LE(length => {
12
- const columnCount = length / 2;
13
- const orderColumns = [];
14
- let i = 0;
15
- function next(done) {
16
- if (i === columnCount) {
17
- return done();
18
- }
19
- parser.readUInt16LE(column => {
20
- orderColumns.push(column);
21
- i++;
22
- next(done);
23
- });
24
- }
25
- next(() => {
26
- callback(new _token.OrderToken(orderColumns));
27
- });
28
- });
11
+ function orderParser(buf, offset, _options) {
12
+ // length
13
+ let tokenLength;
14
+ ({
15
+ offset,
16
+ value: tokenLength
17
+ } = (0, _helpers.readUInt16LE)(buf, offset));
18
+ if (buf.length < offset + tokenLength) {
19
+ throw new _helpers.NotEnoughDataError(offset + tokenLength);
20
+ }
21
+ const orderColumns = [];
22
+ for (let i = 0; i < tokenLength; i += 2) {
23
+ let column;
24
+ ({
25
+ offset,
26
+ value: column
27
+ } = (0, _helpers.readUInt16LE)(buf, offset));
28
+ orderColumns.push(column);
29
+ }
30
+ return new _helpers.Result(new _token.OrderToken(orderColumns), offset);
29
31
  }
30
32
  var _default = orderParser;
31
33
  exports.default = _default;
32
34
  module.exports = orderParser;
33
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwib3JkZXJQYXJzZXIiLCJwYXJzZXIiLCJfb3B0aW9ucyIsImNhbGxiYWNrIiwicmVhZFVJbnQxNkxFIiwibGVuZ3RoIiwiY29sdW1uQ291bnQiLCJvcmRlckNvbHVtbnMiLCJpIiwibmV4dCIsImRvbmUiLCJjb2x1bW4iLCJwdXNoIiwiT3JkZXJUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vb3JkZXItdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4xNFxuaW1wb3J0IFBhcnNlciwgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuXG5pbXBvcnQgeyBPcmRlclRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmZ1bmN0aW9uIG9yZGVyUGFyc2VyKHBhcnNlcjogUGFyc2VyLCBfb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY2FsbGJhY2s6ICh0b2tlbjogT3JkZXJUb2tlbikgPT4gdm9pZCkge1xuICBwYXJzZXIucmVhZFVJbnQxNkxFKChsZW5ndGgpID0+IHtcbiAgICBjb25zdCBjb2x1bW5Db3VudCA9IGxlbmd0aCAvIDI7XG4gICAgY29uc3Qgb3JkZXJDb2x1bW5zOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgbGV0IGkgPSAwO1xuICAgIGZ1bmN0aW9uIG5leHQoZG9uZTogKCkgPT4gdm9pZCkge1xuICAgICAgaWYgKGkgPT09IGNvbHVtbkNvdW50KSB7XG4gICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICB9XG5cbiAgICAgIHBhcnNlci5yZWFkVUludDE2TEUoKGNvbHVtbikgPT4ge1xuICAgICAgICBvcmRlckNvbHVtbnMucHVzaChjb2x1bW4pO1xuXG4gICAgICAgIGkrKztcblxuICAgICAgICBuZXh0KGRvbmUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmV4dCgoKSA9PiB7XG4gICAgICBjYWxsYmFjayhuZXcgT3JkZXJUb2tlbihvcmRlckNvbHVtbnMpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9yZGVyUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBvcmRlclBhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBSEE7O0FBS0EsU0FBU0MsV0FBV0EsQ0FBQ0MsTUFBYyxFQUFFQyxRQUF1QixFQUFFQyxRQUFxQyxFQUFFO0VBQ25HRixNQUFNLENBQUNHLFlBQVksQ0FBRUMsTUFBTSxJQUFLO0lBQzlCLE1BQU1DLFdBQVcsR0FBR0QsTUFBTSxHQUFHLENBQUM7SUFDOUIsTUFBTUUsWUFBc0IsR0FBRyxFQUFFO0lBRWpDLElBQUlDLENBQUMsR0FBRyxDQUFDO0lBQ1QsU0FBU0MsSUFBSUEsQ0FBQ0MsSUFBZ0IsRUFBRTtNQUM5QixJQUFJRixDQUFDLEtBQUtGLFdBQVcsRUFBRTtRQUNyQixPQUFPSSxJQUFJLENBQUMsQ0FBQztNQUNmO01BRUFULE1BQU0sQ0FBQ0csWUFBWSxDQUFFTyxNQUFNLElBQUs7UUFDOUJKLFlBQVksQ0FBQ0ssSUFBSSxDQUFDRCxNQUFNLENBQUM7UUFFekJILENBQUMsRUFBRTtRQUVIQyxJQUFJLENBQUNDLElBQUksQ0FBQztNQUNaLENBQUMsQ0FBQztJQUNKO0lBRUFELElBQUksQ0FBQyxNQUFNO01BQ1ROLFFBQVEsQ0FBQyxJQUFJVSxpQkFBVSxDQUFDTixZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSjtBQUFDLElBQUFPLFFBQUEsR0FFY2QsV0FBVztBQUFBZSxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQTtBQUMxQkcsTUFBTSxDQUFDRixPQUFPLEdBQUdmLFdBQVcifQ==
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2hlbHBlcnMiLCJvcmRlclBhcnNlciIsImJ1ZiIsIm9mZnNldCIsIl9vcHRpb25zIiwidG9rZW5MZW5ndGgiLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsImxlbmd0aCIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9yZGVyQ29sdW1ucyIsImkiLCJjb2x1bW4iLCJwdXNoIiwiUmVzdWx0IiwiT3JkZXJUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vb3JkZXItdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4xNFxuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgT3JkZXJUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yLCByZWFkVUludDE2TEUsIFJlc3VsdCB9IGZyb20gJy4vaGVscGVycyc7XG5cbmZ1bmN0aW9uIG9yZGVyUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8T3JkZXJUb2tlbj4ge1xuICAvLyBsZW5ndGhcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyB0b2tlbkxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgdG9rZW5MZW5ndGgpO1xuICB9XG5cbiAgY29uc3Qgb3JkZXJDb2x1bW5zOiBudW1iZXJbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5MZW5ndGg7IGkgKz0gMikge1xuICAgIGxldCBjb2x1bW47XG4gICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sdW1uIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICAgIG9yZGVyQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgT3JkZXJUb2tlbihvcmRlckNvbHVtbnMpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBvcmRlclBhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gb3JkZXJQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUpBOztBQU1BLFNBQVNFLFdBQVdBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUF1QixFQUFzQjtFQUM3RjtFQUNBLElBQUlDLFdBQVc7RUFDZixDQUFDO0lBQUVGLE1BQU07SUFBRUcsS0FBSyxFQUFFRDtFQUFZLENBQUMsR0FBRyxJQUFBRSxxQkFBWSxFQUFDTCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUUzRCxJQUFJRCxHQUFHLENBQUNNLE1BQU0sR0FBR0wsTUFBTSxHQUFHRSxXQUFXLEVBQUU7SUFDckMsTUFBTSxJQUFJSSwyQkFBa0IsQ0FBQ04sTUFBTSxHQUFHRSxXQUFXLENBQUM7RUFDcEQ7RUFFQSxNQUFNSyxZQUFzQixHQUFHLEVBQUU7RUFFakMsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdOLFdBQVcsRUFBRU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUN2QyxJQUFJQyxNQUFNO0lBQ1YsQ0FBQztNQUFFVCxNQUFNO01BQUVHLEtBQUssRUFBRU07SUFBTyxDQUFDLEdBQUcsSUFBQUwscUJBQVksRUFBQ0wsR0FBRyxFQUFFQyxNQUFNLENBQUM7SUFFdERPLFlBQVksQ0FBQ0csSUFBSSxDQUFDRCxNQUFNLENBQUM7RUFDM0I7RUFFQSxPQUFPLElBQUlFLGVBQU0sQ0FBQyxJQUFJQyxpQkFBVSxDQUFDTCxZQUFZLENBQUMsRUFBRVAsTUFBTSxDQUFDO0FBQ3pEO0FBQUMsSUFBQWEsUUFBQSxHQUVjZixXQUFXO0FBQUFnQixPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQTtBQUMxQkcsTUFBTSxDQUFDRixPQUFPLEdBQUdoQixXQUFXIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"order-token-parser.js","names":["_token","require","orderParser","parser","_options","callback","readUInt16LE","length","columnCount","orderColumns","i","next","done","column","push","OrderToken","_default","exports","default","module"],"sources":["../../src/token/order-token-parser.ts"],"sourcesContent":["// s2.2.7.14\nimport Parser, { type ParserOptions } from './stream-parser';\n\nimport { OrderToken } from './token';\n\nfunction orderParser(parser: Parser, _options: ParserOptions, callback: (token: OrderToken) => void) {\n parser.readUInt16LE((length) => {\n const columnCount = length / 2;\n const orderColumns: number[] = [];\n\n let i = 0;\n function next(done: () => void) {\n if (i === columnCount) {\n return done();\n }\n\n parser.readUInt16LE((column) => {\n orderColumns.push(column);\n\n i++;\n\n next(done);\n });\n }\n\n next(() => {\n callback(new OrderToken(orderColumns));\n });\n });\n}\n\nexport default orderParser;\nmodule.exports = orderParser;\n"],"mappings":";;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAHA;;AAKA,SAASC,WAAWA,CAACC,MAAc,EAAEC,QAAuB,EAAEC,QAAqC,EAAE;EACnGF,MAAM,CAACG,YAAY,CAAEC,MAAM,IAAK;IAC9B,MAAMC,WAAW,GAAGD,MAAM,GAAG,CAAC;IAC9B,MAAME,YAAsB,GAAG,EAAE;IAEjC,IAAIC,CAAC,GAAG,CAAC;IACT,SAASC,IAAIA,CAACC,IAAgB,EAAE;MAC9B,IAAIF,CAAC,KAAKF,WAAW,EAAE;QACrB,OAAOI,IAAI,CAAC,CAAC;MACf;MAEAT,MAAM,CAACG,YAAY,CAAEO,MAAM,IAAK;QAC9BJ,YAAY,CAACK,IAAI,CAACD,MAAM,CAAC;QAEzBH,CAAC,EAAE;QAEHC,IAAI,CAACC,IAAI,CAAC;MACZ,CAAC,CAAC;IACJ;IAEAD,IAAI,CAAC,MAAM;MACTN,QAAQ,CAAC,IAAIU,iBAAU,CAACN,YAAY,CAAC,CAAC;IACxC,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAAC,IAAAO,QAAA,GAEcd,WAAW;AAAAe,OAAA,CAAAC,OAAA,GAAAF,QAAA;AAC1BG,MAAM,CAACF,OAAO,GAAGf,WAAW"}
1
+ {"version":3,"file":"order-token-parser.js","names":["_token","require","_helpers","orderParser","buf","offset","_options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","orderColumns","i","column","push","Result","OrderToken","_default","exports","default","module"],"sources":["../../src/token/order-token-parser.ts"],"sourcesContent":["// s2.2.7.14\nimport { type ParserOptions } from './stream-parser';\n\nimport { OrderToken } from './token';\nimport { NotEnoughDataError, readUInt16LE, Result } from './helpers';\n\nfunction orderParser(buf: Buffer, offset: number, _options: ParserOptions): Result<OrderToken> {\n // length\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < offset + tokenLength) {\n throw new NotEnoughDataError(offset + tokenLength);\n }\n\n const orderColumns: number[] = [];\n\n for (let i = 0; i < tokenLength; i += 2) {\n let column;\n ({ offset, value: column } = readUInt16LE(buf, offset));\n\n orderColumns.push(column);\n }\n\n return new Result(new OrderToken(orderColumns), offset);\n}\n\nexport default orderParser;\nmodule.exports = orderParser;\n"],"mappings":";;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAJA;;AAMA,SAASE,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAAsB;EAC7F;EACA,IAAIC,WAAW;EACf,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAY,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAE3D,IAAID,GAAG,CAACM,MAAM,GAAGL,MAAM,GAAGE,WAAW,EAAE;IACrC,MAAM,IAAII,2BAAkB,CAACN,MAAM,GAAGE,WAAW,CAAC;EACpD;EAEA,MAAMK,YAAsB,GAAG,EAAE;EAEjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,WAAW,EAAEM,CAAC,IAAI,CAAC,EAAE;IACvC,IAAIC,MAAM;IACV,CAAC;MAAET,MAAM;MAAEG,KAAK,EAAEM;IAAO,CAAC,GAAG,IAAAL,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;IAEtDO,YAAY,CAACG,IAAI,CAACD,MAAM,CAAC;EAC3B;EAEA,OAAO,IAAIE,eAAM,CAAC,IAAIC,iBAAU,CAACL,YAAY,CAAC,EAAEP,MAAM,CAAC;AACzD;AAAC,IAAAa,QAAA,GAEcf,WAAW;AAAAgB,OAAA,CAAAC,OAAA,GAAAF,QAAA;AAC1BG,MAAM,CAACF,OAAO,GAAGhB,WAAW"}
@@ -4,15 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _helpers = require("./helpers");
7
8
  var _token = require("./token");
8
9
  // s2.2.7.16
9
10
 
10
- function returnStatusParser(parser, _options, callback) {
11
- parser.readInt32LE(value => {
12
- callback(new _token.ReturnStatusToken(value));
13
- });
11
+ function returnStatusParser(buf, offset, _options) {
12
+ let value;
13
+ ({
14
+ value,
15
+ offset
16
+ } = (0, _helpers.readInt32LE)(buf, offset));
17
+ return new _helpers.Result(new _token.ReturnStatusToken(value), offset);
14
18
  }
15
19
  var _default = returnStatusParser;
16
20
  exports.default = _default;
17
21
  module.exports = returnStatusParser;
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwicmV0dXJuU3RhdHVzUGFyc2VyIiwicGFyc2VyIiwiX29wdGlvbnMiLCJjYWxsYmFjayIsInJlYWRJbnQzMkxFIiwidmFsdWUiLCJSZXR1cm5TdGF0dXNUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vcmV0dXJuc3RhdHVzLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTZcbmltcG9ydCBQYXJzZXIsIHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgUmV0dXJuU3RhdHVzVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuZnVuY3Rpb24gcmV0dXJuU3RhdHVzUGFyc2VyKHBhcnNlcjogUGFyc2VyLCBfb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY2FsbGJhY2s6ICh0b2tlbjogUmV0dXJuU3RhdHVzVG9rZW4pID0+IHZvaWQpIHtcbiAgcGFyc2VyLnJlYWRJbnQzMkxFKCh2YWx1ZSkgPT4ge1xuICAgIGNhbGxiYWNrKG5ldyBSZXR1cm5TdGF0dXNUb2tlbih2YWx1ZSkpO1xuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgcmV0dXJuU3RhdHVzUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSByZXR1cm5TdGF0dXNQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUhBOztBQUtBLFNBQVNDLGtCQUFrQkEsQ0FBQ0MsTUFBYyxFQUFFQyxRQUF1QixFQUFFQyxRQUE0QyxFQUFFO0VBQ2pIRixNQUFNLENBQUNHLFdBQVcsQ0FBRUMsS0FBSyxJQUFLO0lBQzVCRixRQUFRLENBQUMsSUFBSUcsd0JBQWlCLENBQUNELEtBQUssQ0FBQyxDQUFDO0VBQ3hDLENBQUMsQ0FBQztBQUNKO0FBQUMsSUFBQUUsUUFBQSxHQUVjUCxrQkFBa0I7QUFBQVEsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUE7QUFDakNHLE1BQU0sQ0FBQ0YsT0FBTyxHQUFHUixrQkFBa0IifQ==
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaGVscGVycyIsInJlcXVpcmUiLCJfdG9rZW4iLCJyZXR1cm5TdGF0dXNQYXJzZXIiLCJidWYiLCJvZmZzZXQiLCJfb3B0aW9ucyIsInZhbHVlIiwicmVhZEludDMyTEUiLCJSZXN1bHQiLCJSZXR1cm5TdGF0dXNUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vcmV0dXJuc3RhdHVzLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTZcbmltcG9ydCB7IHJlYWRJbnQzMkxFLCBSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgUmV0dXJuU3RhdHVzVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuZnVuY3Rpb24gcmV0dXJuU3RhdHVzUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8UmV0dXJuU3RhdHVzVG9rZW4+IHtcbiAgbGV0IHZhbHVlO1xuICAoeyB2YWx1ZSwgb2Zmc2V0IH0gPSByZWFkSW50MzJMRShidWYsIG9mZnNldCkpO1xuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgUmV0dXJuU3RhdHVzVG9rZW4odmFsdWUpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCByZXR1cm5TdGF0dXNQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IHJldHVyblN0YXR1c1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBSkE7O0FBTUEsU0FBU0Usa0JBQWtCQSxDQUFDQyxHQUFXLEVBQUVDLE1BQWMsRUFBRUMsUUFBdUIsRUFBNkI7RUFDM0csSUFBSUMsS0FBSztFQUNULENBQUM7SUFBRUEsS0FBSztJQUFFRjtFQUFPLENBQUMsR0FBRyxJQUFBRyxvQkFBVyxFQUFDSixHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUM3QyxPQUFPLElBQUlJLGVBQU0sQ0FBQyxJQUFJQyx3QkFBaUIsQ0FBQ0gsS0FBSyxDQUFDLEVBQUVGLE1BQU0sQ0FBQztBQUN6RDtBQUFDLElBQUFNLFFBQUEsR0FFY1Isa0JBQWtCO0FBQUFTLE9BQUEsQ0FBQUMsT0FBQSxHQUFBRixRQUFBO0FBQ2pDRyxNQUFNLENBQUNGLE9BQU8sR0FBR1Qsa0JBQWtCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"returnstatus-token-parser.js","names":["_token","require","returnStatusParser","parser","_options","callback","readInt32LE","value","ReturnStatusToken","_default","exports","default","module"],"sources":["../../src/token/returnstatus-token-parser.ts"],"sourcesContent":["// s2.2.7.16\nimport Parser, { type ParserOptions } from './stream-parser';\n\nimport { ReturnStatusToken } from './token';\n\nfunction returnStatusParser(parser: Parser, _options: ParserOptions, callback: (token: ReturnStatusToken) => void) {\n parser.readInt32LE((value) => {\n callback(new ReturnStatusToken(value));\n });\n}\n\nexport default returnStatusParser;\nmodule.exports = returnStatusParser;\n"],"mappings":";;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAHA;;AAKA,SAASC,kBAAkBA,CAACC,MAAc,EAAEC,QAAuB,EAAEC,QAA4C,EAAE;EACjHF,MAAM,CAACG,WAAW,CAAEC,KAAK,IAAK;IAC5BF,QAAQ,CAAC,IAAIG,wBAAiB,CAACD,KAAK,CAAC,CAAC;EACxC,CAAC,CAAC;AACJ;AAAC,IAAAE,QAAA,GAEcP,kBAAkB;AAAAQ,OAAA,CAAAC,OAAA,GAAAF,QAAA;AACjCG,MAAM,CAACF,OAAO,GAAGR,kBAAkB"}
1
+ {"version":3,"file":"returnstatus-token-parser.js","names":["_helpers","require","_token","returnStatusParser","buf","offset","_options","value","readInt32LE","Result","ReturnStatusToken","_default","exports","default","module"],"sources":["../../src/token/returnstatus-token-parser.ts"],"sourcesContent":["// s2.2.7.16\nimport { readInt32LE, Result } from './helpers';\nimport { type ParserOptions } from './stream-parser';\n\nimport { ReturnStatusToken } from './token';\n\nfunction returnStatusParser(buf: Buffer, offset: number, _options: ParserOptions): Result<ReturnStatusToken> {\n let value;\n ({ value, offset } = readInt32LE(buf, offset));\n return new Result(new ReturnStatusToken(value), offset);\n}\n\nexport default returnStatusParser;\nmodule.exports = returnStatusParser;\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAJA;;AAMA,SAASE,kBAAkBA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAA6B;EAC3G,IAAIC,KAAK;EACT,CAAC;IAAEA,KAAK;IAAEF;EAAO,CAAC,GAAG,IAAAG,oBAAW,EAACJ,GAAG,EAAEC,MAAM,CAAC;EAC7C,OAAO,IAAII,eAAM,CAAC,IAAIC,wBAAiB,CAACH,KAAK,CAAC,EAAEF,MAAM,CAAC;AACzD;AAAC,IAAAM,QAAA,GAEcR,kBAAkB;AAAAS,OAAA,CAAAC,OAAA,GAAAF,QAAA;AACjCG,MAAM,CAACF,OAAO,GAAGT,kBAAkB"}
@@ -5,35 +5,92 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _token = require("./token");
8
- var _metadataParser = _interopRequireDefault(require("../metadata-parser"));
9
- var _valueParser = _interopRequireDefault(require("../value-parser"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ var _metadataParser = require("../metadata-parser");
9
+ var _valueParser = require("../value-parser");
10
+ var _helpers = require("./helpers");
11
+ var iconv = _interopRequireWildcard(require("iconv-lite"));
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
14
  // s2.2.7.16
12
15
 
13
- function returnParser(parser, options, callback) {
14
- parser.readUInt16LE(paramOrdinal => {
15
- parser.readBVarChar(paramName => {
16
+ async function returnParser(parser) {
17
+ let paramName;
18
+ let paramOrdinal;
19
+ let metadata;
20
+ while (true) {
21
+ const buf = parser.buffer;
22
+ let offset = parser.position;
23
+ try {
24
+ ({
25
+ offset,
26
+ value: paramOrdinal
27
+ } = (0, _helpers.readUInt16LE)(buf, offset));
28
+ ({
29
+ offset,
30
+ value: paramName
31
+ } = (0, _helpers.readBVarChar)(buf, offset));
32
+ // status
33
+ ({
34
+ offset
35
+ } = (0, _helpers.readUInt8)(buf, offset));
36
+ ({
37
+ offset,
38
+ value: metadata
39
+ } = (0, _metadataParser.readMetadata)(buf, offset, parser.options));
16
40
  if (paramName.charAt(0) === '@') {
17
41
  paramName = paramName.slice(1);
18
42
  }
19
-
20
- // status
21
- parser.readUInt8(() => {
22
- (0, _metadataParser.default)(parser, options, metadata => {
23
- (0, _valueParser.default)(parser, metadata, options, value => {
24
- callback(new _token.ReturnValueToken({
25
- paramOrdinal: paramOrdinal,
26
- paramName: paramName,
27
- metadata: metadata,
28
- value: value
29
- }));
30
- });
31
- });
32
- });
33
- });
43
+ } catch (err) {
44
+ if (err instanceof _helpers.NotEnoughDataError) {
45
+ await parser.waitForChunk();
46
+ continue;
47
+ }
48
+ throw err;
49
+ }
50
+ parser.position = offset;
51
+ break;
52
+ }
53
+ let value;
54
+ while (true) {
55
+ const buf = parser.buffer;
56
+ let offset = parser.position;
57
+ if ((0, _valueParser.isPLPStream)(metadata)) {
58
+ const chunks = await (0, _valueParser.readPLPStream)(parser);
59
+ if (chunks === null) {
60
+ value = chunks;
61
+ } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {
62
+ value = Buffer.concat(chunks).toString('ucs2');
63
+ } else if (metadata.type.name === 'VarChar') {
64
+ var _metadata$collation;
65
+ value = iconv.decode(Buffer.concat(chunks), ((_metadata$collation = metadata.collation) === null || _metadata$collation === void 0 ? void 0 : _metadata$collation.codepage) ?? 'utf8');
66
+ } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {
67
+ value = Buffer.concat(chunks);
68
+ }
69
+ } else {
70
+ try {
71
+ ({
72
+ value,
73
+ offset
74
+ } = (0, _valueParser.readValue)(buf, offset, metadata, parser.options));
75
+ } catch (err) {
76
+ if (err instanceof _helpers.NotEnoughDataError) {
77
+ await parser.waitForChunk();
78
+ continue;
79
+ }
80
+ throw err;
81
+ }
82
+ parser.position = offset;
83
+ }
84
+ break;
85
+ }
86
+ return new _token.ReturnValueToken({
87
+ paramOrdinal: paramOrdinal,
88
+ paramName: paramName,
89
+ metadata: metadata,
90
+ value: value
34
91
  });
35
92
  }
36
93
  var _default = returnParser;
37
94
  exports.default = _default;
38
95
  module.exports = returnParser;
39
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX21ldGFkYXRhUGFyc2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl92YWx1ZVBhcnNlciIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwicmV0dXJuUGFyc2VyIiwicGFyc2VyIiwib3B0aW9ucyIsImNhbGxiYWNrIiwicmVhZFVJbnQxNkxFIiwicGFyYW1PcmRpbmFsIiwicmVhZEJWYXJDaGFyIiwicGFyYW1OYW1lIiwiY2hhckF0Iiwic2xpY2UiLCJyZWFkVUludDgiLCJtZXRhZGF0YVBhcnNlIiwibWV0YWRhdGEiLCJ2YWx1ZVBhcnNlIiwidmFsdWUiLCJSZXR1cm5WYWx1ZVRva2VuIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3JldHVybnZhbHVlLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTZcblxuaW1wb3J0IFBhcnNlciwgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuXG5pbXBvcnQgeyBSZXR1cm5WYWx1ZVRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCBtZXRhZGF0YVBhcnNlIGZyb20gJy4uL21ldGFkYXRhLXBhcnNlcic7XG5pbXBvcnQgdmFsdWVQYXJzZSBmcm9tICcuLi92YWx1ZS1wYXJzZXInO1xuXG5mdW5jdGlvbiByZXR1cm5QYXJzZXIocGFyc2VyOiBQYXJzZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNhbGxiYWNrOiAodG9rZW46IFJldHVyblZhbHVlVG9rZW4pID0+IHZvaWQpIHtcbiAgcGFyc2VyLnJlYWRVSW50MTZMRSgocGFyYW1PcmRpbmFsKSA9PiB7XG4gICAgcGFyc2VyLnJlYWRCVmFyQ2hhcigocGFyYW1OYW1lKSA9PiB7XG4gICAgICBpZiAocGFyYW1OYW1lLmNoYXJBdCgwKSA9PT0gJ0AnKSB7XG4gICAgICAgIHBhcmFtTmFtZSA9IHBhcmFtTmFtZS5zbGljZSgxKTtcbiAgICAgIH1cblxuICAgICAgLy8gc3RhdHVzXG4gICAgICBwYXJzZXIucmVhZFVJbnQ4KCgpID0+IHtcbiAgICAgICAgbWV0YWRhdGFQYXJzZShwYXJzZXIsIG9wdGlvbnMsIChtZXRhZGF0YSkgPT4ge1xuICAgICAgICAgIHZhbHVlUGFyc2UocGFyc2VyLCBtZXRhZGF0YSwgb3B0aW9ucywgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgUmV0dXJuVmFsdWVUb2tlbih7XG4gICAgICAgICAgICAgIHBhcmFtT3JkaW5hbDogcGFyYW1PcmRpbmFsLFxuICAgICAgICAgICAgICBwYXJhbU5hbWU6IHBhcmFtTmFtZSxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IG1ldGFkYXRhLFxuICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHJldHVyblBhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gcmV0dXJuUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxlQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFBeUMsU0FBQUUsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFQekM7O0FBU0EsU0FBU0csWUFBWUEsQ0FBQ0MsTUFBYyxFQUFFQyxPQUFzQixFQUFFQyxRQUEyQyxFQUFFO0VBQ3pHRixNQUFNLENBQUNHLFlBQVksQ0FBRUMsWUFBWSxJQUFLO0lBQ3BDSixNQUFNLENBQUNLLFlBQVksQ0FBRUMsU0FBUyxJQUFLO01BQ2pDLElBQUlBLFNBQVMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUMvQkQsU0FBUyxHQUFHQSxTQUFTLENBQUNFLEtBQUssQ0FBQyxDQUFDLENBQUM7TUFDaEM7O01BRUE7TUFDQVIsTUFBTSxDQUFDUyxTQUFTLENBQUMsTUFBTTtRQUNyQixJQUFBQyx1QkFBYSxFQUFDVixNQUFNLEVBQUVDLE9BQU8sRUFBR1UsUUFBUSxJQUFLO1VBQzNDLElBQUFDLG9CQUFVLEVBQUNaLE1BQU0sRUFBRVcsUUFBUSxFQUFFVixPQUFPLEVBQUdZLEtBQUssSUFBSztZQUMvQ1gsUUFBUSxDQUFDLElBQUlZLHVCQUFnQixDQUFDO2NBQzVCVixZQUFZLEVBQUVBLFlBQVk7Y0FDMUJFLFNBQVMsRUFBRUEsU0FBUztjQUNwQkssUUFBUSxFQUFFQSxRQUFRO2NBQ2xCRSxLQUFLLEVBQUVBO1lBQ1QsQ0FBQyxDQUFDLENBQUM7VUFDTCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSjtBQUFDLElBQUFFLFFBQUEsR0FFY2hCLFlBQVk7QUFBQWlCLE9BQUEsQ0FBQWxCLE9BQUEsR0FBQWlCLFFBQUE7QUFDM0JFLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHakIsWUFBWSJ9
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX21ldGFkYXRhUGFyc2VyIiwiX3ZhbHVlUGFyc2VyIiwiX2hlbHBlcnMiLCJpY29udiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsInJldHVyblBhcnNlciIsInBhcnNlciIsInBhcmFtTmFtZSIsInBhcmFtT3JkaW5hbCIsIm1ldGFkYXRhIiwiYnVmIiwiYnVmZmVyIiwib2Zmc2V0IiwicG9zaXRpb24iLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsInJlYWRCVmFyQ2hhciIsInJlYWRVSW50OCIsInJlYWRNZXRhZGF0YSIsIm9wdGlvbnMiLCJjaGFyQXQiLCJzbGljZSIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIndhaXRGb3JDaHVuayIsImlzUExQU3RyZWFtIiwiY2h1bmtzIiwicmVhZFBMUFN0cmVhbSIsInR5cGUiLCJuYW1lIiwiQnVmZmVyIiwiY29uY2F0IiwidG9TdHJpbmciLCJfbWV0YWRhdGEkY29sbGF0aW9uIiwiZGVjb2RlIiwiY29sbGF0aW9uIiwiY29kZXBhZ2UiLCJyZWFkVmFsdWUiLCJSZXR1cm5WYWx1ZVRva2VuIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3JldHVybnZhbHVlLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTZcblxuaW1wb3J0IFBhcnNlciBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuXG5pbXBvcnQgeyBSZXR1cm5WYWx1ZVRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCB7IHJlYWRNZXRhZGF0YSB9IGZyb20gJy4uL21ldGFkYXRhLXBhcnNlcic7XG5pbXBvcnQgeyBpc1BMUFN0cmVhbSwgcmVhZFBMUFN0cmVhbSwgcmVhZFZhbHVlIH0gZnJvbSAnLi4vdmFsdWUtcGFyc2VyJztcbmltcG9ydCB7IE5vdEVub3VnaERhdGFFcnJvciwgcmVhZEJWYXJDaGFyLCByZWFkVUludDE2TEUsIHJlYWRVSW50OCB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgKiBhcyBpY29udiBmcm9tICdpY29udi1saXRlJztcblxuYXN5bmMgZnVuY3Rpb24gcmV0dXJuUGFyc2VyKHBhcnNlcjogUGFyc2VyKTogUHJvbWlzZTxSZXR1cm5WYWx1ZVRva2VuPiB7XG4gIGxldCBwYXJhbU5hbWU7XG4gIGxldCBwYXJhbU9yZGluYWw7XG4gIGxldCBtZXRhZGF0YTtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IGJ1ZiA9IHBhcnNlci5idWZmZXI7XG4gICAgbGV0IG9mZnNldCA9IHBhcnNlci5wb3NpdGlvbjtcblxuICAgIHRyeSB7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBwYXJhbU9yZGluYWwgfSA9IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkpO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogcGFyYW1OYW1lIH0gPSByZWFkQlZhckNoYXIoYnVmLCBvZmZzZXQpKTtcbiAgICAgIC8vIHN0YXR1c1xuICAgICAgKHsgb2Zmc2V0IH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IG1ldGFkYXRhIH0gPSByZWFkTWV0YWRhdGEoYnVmLCBvZmZzZXQsIHBhcnNlci5vcHRpb25zKSk7XG5cbiAgICAgIGlmIChwYXJhbU5hbWUuY2hhckF0KDApID09PSAnQCcpIHtcbiAgICAgICAgcGFyYW1OYW1lID0gcGFyYW1OYW1lLnNsaWNlKDEpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICBhd2FpdCBwYXJzZXIud2FpdEZvckNodW5rKCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgcGFyc2VyLnBvc2l0aW9uID0gb2Zmc2V0O1xuICAgIGJyZWFrO1xuICB9XG5cbiAgbGV0IHZhbHVlO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IGJ1ZiA9IHBhcnNlci5idWZmZXI7XG4gICAgbGV0IG9mZnNldCA9IHBhcnNlci5wb3NpdGlvbjtcblxuICAgIGlmIChpc1BMUFN0cmVhbShtZXRhZGF0YSkpIHtcbiAgICAgIGNvbnN0IGNodW5rcyA9IGF3YWl0IHJlYWRQTFBTdHJlYW0ocGFyc2VyKTtcblxuICAgICAgaWYgKGNodW5rcyA9PT0gbnVsbCkge1xuICAgICAgICB2YWx1ZSA9IGNodW5rcztcbiAgICAgIH0gZWxzZSBpZiAobWV0YWRhdGEudHlwZS5uYW1lID09PSAnTlZhckNoYXInIHx8IG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1htbCcpIHtcbiAgICAgICAgdmFsdWUgPSBCdWZmZXIuY29uY2F0KGNodW5rcykudG9TdHJpbmcoJ3VjczInKTtcbiAgICAgIH0gZWxzZSBpZiAobWV0YWRhdGEudHlwZS5uYW1lID09PSAnVmFyQ2hhcicpIHtcbiAgICAgICAgdmFsdWUgPSBpY29udi5kZWNvZGUoQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YS5jb2xsYXRpb24/LmNvZGVwYWdlID8/ICd1dGY4Jyk7XG4gICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckJpbmFyeScgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnVURUJykge1xuICAgICAgICB2YWx1ZSA9IEJ1ZmZlci5jb25jYXQoY2h1bmtzKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgKHsgdmFsdWUsIG9mZnNldCB9ID0gcmVhZFZhbHVlKGJ1Ziwgb2Zmc2V0LCBtZXRhZGF0YSwgcGFyc2VyLm9wdGlvbnMpKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgICAgYXdhaXQgcGFyc2VyLndhaXRGb3JDaHVuaygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICBwYXJzZXIucG9zaXRpb24gPSBvZmZzZXQ7XG4gICAgfVxuXG4gICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gbmV3IFJldHVyblZhbHVlVG9rZW4oe1xuICAgIHBhcmFtT3JkaW5hbDogcGFyYW1PcmRpbmFsLFxuICAgIHBhcmFtTmFtZTogcGFyYW1OYW1lLFxuICAgIG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICB2YWx1ZTogdmFsdWVcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHJldHVyblBhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gcmV0dXJuUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFBb0MsU0FBQU0seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"returnvalue-token-parser.js","names":["_token","require","_metadataParser","_interopRequireDefault","_valueParser","obj","__esModule","default","returnParser","parser","options","callback","readUInt16LE","paramOrdinal","readBVarChar","paramName","charAt","slice","readUInt8","metadataParse","metadata","valueParse","value","ReturnValueToken","_default","exports","module"],"sources":["../../src/token/returnvalue-token-parser.ts"],"sourcesContent":["// s2.2.7.16\n\nimport Parser, { type ParserOptions } from './stream-parser';\n\nimport { ReturnValueToken } from './token';\n\nimport metadataParse from '../metadata-parser';\nimport valueParse from '../value-parser';\n\nfunction returnParser(parser: Parser, options: ParserOptions, callback: (token: ReturnValueToken) => void) {\n parser.readUInt16LE((paramOrdinal) => {\n parser.readBVarChar((paramName) => {\n if (paramName.charAt(0) === '@') {\n paramName = paramName.slice(1);\n }\n\n // status\n parser.readUInt8(() => {\n metadataParse(parser, options, (metadata) => {\n valueParse(parser, metadata, options, (value) => {\n callback(new ReturnValueToken({\n paramOrdinal: paramOrdinal,\n paramName: paramName,\n metadata: metadata,\n value: value\n }));\n });\n });\n });\n });\n });\n}\n\nexport default returnParser;\nmodule.exports = returnParser;\n"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAyC,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAPzC;;AASA,SAASG,YAAYA,CAACC,MAAc,EAAEC,OAAsB,EAAEC,QAA2C,EAAE;EACzGF,MAAM,CAACG,YAAY,CAAEC,YAAY,IAAK;IACpCJ,MAAM,CAACK,YAAY,CAAEC,SAAS,IAAK;MACjC,IAAIA,SAAS,CAACC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC/BD,SAAS,GAAGA,SAAS,CAACE,KAAK,CAAC,CAAC,CAAC;MAChC;;MAEA;MACAR,MAAM,CAACS,SAAS,CAAC,MAAM;QACrB,IAAAC,uBAAa,EAACV,MAAM,EAAEC,OAAO,EAAGU,QAAQ,IAAK;UAC3C,IAAAC,oBAAU,EAACZ,MAAM,EAAEW,QAAQ,EAAEV,OAAO,EAAGY,KAAK,IAAK;YAC/CX,QAAQ,CAAC,IAAIY,uBAAgB,CAAC;cAC5BV,YAAY,EAAEA,YAAY;cAC1BE,SAAS,EAAEA,SAAS;cACpBK,QAAQ,EAAEA,QAAQ;cAClBE,KAAK,EAAEA;YACT,CAAC,CAAC,CAAC;UACL,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAAC,IAAAE,QAAA,GAEchB,YAAY;AAAAiB,OAAA,CAAAlB,OAAA,GAAAiB,QAAA;AAC3BE,MAAM,CAACD,OAAO,GAAGjB,YAAY"}
1
+ {"version":3,"file":"returnvalue-token-parser.js","names":["_token","require","_metadataParser","_valueParser","_helpers","iconv","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","returnParser","parser","paramName","paramOrdinal","metadata","buf","buffer","offset","position","value","readUInt16LE","readBVarChar","readUInt8","readMetadata","options","charAt","slice","err","NotEnoughDataError","waitForChunk","isPLPStream","chunks","readPLPStream","type","name","Buffer","concat","toString","_metadata$collation","decode","collation","codepage","readValue","ReturnValueToken","_default","exports","module"],"sources":["../../src/token/returnvalue-token-parser.ts"],"sourcesContent":["// s2.2.7.16\n\nimport Parser from './stream-parser';\n\nimport { ReturnValueToken } from './token';\n\nimport { readMetadata } from '../metadata-parser';\nimport { isPLPStream, readPLPStream, readValue } from '../value-parser';\nimport { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt8 } from './helpers';\nimport * as iconv from 'iconv-lite';\n\nasync function returnParser(parser: Parser): Promise<ReturnValueToken> {\n let paramName;\n let paramOrdinal;\n let metadata;\n\n while (true) {\n const buf = parser.buffer;\n let offset = parser.position;\n\n try {\n ({ offset, value: paramOrdinal } = readUInt16LE(buf, offset));\n ({ offset, value: paramName } = readBVarChar(buf, offset));\n // status\n ({ offset } = readUInt8(buf, offset));\n ({ offset, value: metadata } = readMetadata(buf, offset, parser.options));\n\n if (paramName.charAt(0) === '@') {\n paramName = paramName.slice(1);\n }\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = offset;\n break;\n }\n\n let value;\n while (true) {\n const buf = parser.buffer;\n let offset = parser.position;\n\n if (isPLPStream(metadata)) {\n const chunks = await readPLPStream(parser);\n\n if (chunks === null) {\n value = chunks;\n } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {\n value = Buffer.concat(chunks).toString('ucs2');\n } else if (metadata.type.name === 'VarChar') {\n value = iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8');\n } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {\n value = Buffer.concat(chunks);\n }\n } else {\n try {\n ({ value, offset } = readValue(buf, offset, metadata, parser.options));\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = offset;\n }\n\n break;\n }\n\n return new ReturnValueToken({\n paramOrdinal: paramOrdinal,\n paramName: paramName,\n metadata: metadata,\n value: value\n });\n}\n\nexport default returnParser;\nmodule.exports = returnParser;\n"],"mappings":"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"}
@@ -5,30 +5,60 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _token = require("./token");
8
- var _valueParser = _interopRequireDefault(require("../value-parser"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ var iconv = _interopRequireWildcard(require("iconv-lite"));
9
+ var _valueParser = require("../value-parser");
10
+ var _helpers = require("./helpers");
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
13
  // s2.2.7.17
11
14
 
12
15
  async function rowParser(parser) {
13
- const colMetadata = parser.colMetadata;
14
- const length = colMetadata.length;
15
16
  const columns = [];
16
- for (let i = 0; i < length; i++) {
17
- const currColMetadata = colMetadata[i];
18
- let value;
19
- (0, _valueParser.default)(parser, currColMetadata, parser.options, v => {
20
- value = v;
21
- });
22
- while (parser.suspended) {
23
- await parser.streamBuffer.waitForChunk();
24
- parser.suspended = false;
25
- const next = parser.next;
26
- next();
17
+ for (const metadata of parser.colMetadata) {
18
+ while (true) {
19
+ if ((0, _valueParser.isPLPStream)(metadata)) {
20
+ const chunks = await (0, _valueParser.readPLPStream)(parser);
21
+ if (chunks === null) {
22
+ columns.push({
23
+ value: chunks,
24
+ metadata
25
+ });
26
+ } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {
27
+ columns.push({
28
+ value: Buffer.concat(chunks).toString('ucs2'),
29
+ metadata
30
+ });
31
+ } else if (metadata.type.name === 'VarChar') {
32
+ var _metadata$collation;
33
+ columns.push({
34
+ value: iconv.decode(Buffer.concat(chunks), ((_metadata$collation = metadata.collation) === null || _metadata$collation === void 0 ? void 0 : _metadata$collation.codepage) ?? 'utf8'),
35
+ metadata
36
+ });
37
+ } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {
38
+ columns.push({
39
+ value: Buffer.concat(chunks),
40
+ metadata
41
+ });
42
+ }
43
+ } else {
44
+ let result;
45
+ try {
46
+ result = (0, _valueParser.readValue)(parser.buffer, parser.position, metadata, parser.options);
47
+ } catch (err) {
48
+ if (err instanceof _helpers.NotEnoughDataError) {
49
+ await parser.waitForChunk();
50
+ continue;
51
+ }
52
+ throw err;
53
+ }
54
+ parser.position = result.offset;
55
+ columns.push({
56
+ value: result.value,
57
+ metadata
58
+ });
59
+ }
60
+ break;
27
61
  }
28
- columns.push({
29
- value,
30
- metadata: currColMetadata
31
- });
32
62
  }
33
63
  if (parser.options.useColumnNames) {
34
64
  const columnsMap = Object.create(null);
@@ -46,4 +76,4 @@ async function rowParser(parser) {
46
76
  var _default = rowParser;
47
77
  exports.default = _default;
48
78
  module.exports = rowParser;
49
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX3ZhbHVlUGFyc2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwicm93UGFyc2VyIiwicGFyc2VyIiwiY29sTWV0YWRhdGEiLCJsZW5ndGgiLCJjb2x1bW5zIiwiaSIsImN1cnJDb2xNZXRhZGF0YSIsInZhbHVlIiwidmFsdWVQYXJzZSIsIm9wdGlvbnMiLCJ2Iiwic3VzcGVuZGVkIiwic3RyZWFtQnVmZmVyIiwid2FpdEZvckNodW5rIiwibmV4dCIsInB1c2giLCJtZXRhZGF0YSIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1uc01hcCIsIk9iamVjdCIsImNyZWF0ZSIsImZvckVhY2giLCJjb2x1bW4iLCJjb2xOYW1lIiwiUm93VG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vcm93LXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTdcblxuaW1wb3J0IFBhcnNlciBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuaW1wb3J0IHsgdHlwZSBDb2x1bW5NZXRhZGF0YSB9IGZyb20gJy4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyJztcblxuaW1wb3J0IHsgUm93VG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuaW1wb3J0IHZhbHVlUGFyc2UgZnJvbSAnLi4vdmFsdWUtcGFyc2VyJztcblxuaW50ZXJmYWNlIENvbHVtbiB7XG4gIHZhbHVlOiB1bmtub3duO1xuICBtZXRhZGF0YTogQ29sdW1uTWV0YWRhdGE7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJvd1BhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8Um93VG9rZW4+IHtcbiAgY29uc3QgY29sTWV0YWRhdGEgPSBwYXJzZXIuY29sTWV0YWRhdGE7XG4gIGNvbnN0IGxlbmd0aCA9IGNvbE1ldGFkYXRhLmxlbmd0aDtcbiAgY29uc3QgY29sdW1uczogQ29sdW1uW10gPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY3VyckNvbE1ldGFkYXRhID0gY29sTWV0YWRhdGFbaV07XG4gICAgbGV0IHZhbHVlO1xuICAgIHZhbHVlUGFyc2UocGFyc2VyLCBjdXJyQ29sTWV0YWRhdGEsIHBhcnNlci5vcHRpb25zLCAodikgPT4ge1xuICAgICAgdmFsdWUgPSB2O1xuICAgIH0pO1xuXG4gICAgd2hpbGUgKHBhcnNlci5zdXNwZW5kZWQpIHtcbiAgICAgIGF3YWl0IHBhcnNlci5zdHJlYW1CdWZmZXIud2FpdEZvckNodW5rKCk7XG5cbiAgICAgIHBhcnNlci5zdXNwZW5kZWQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IG5leHQgPSBwYXJzZXIubmV4dCE7XG5cbiAgICAgIG5leHQoKTtcbiAgICB9XG4gICAgY29sdW1ucy5wdXNoKHtcbiAgICAgIHZhbHVlLFxuICAgICAgbWV0YWRhdGE6IGN1cnJDb2xNZXRhZGF0YVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBhcnNlci5vcHRpb25zLnVzZUNvbHVtbk5hbWVzKSB7XG4gICAgY29uc3QgY29sdW1uc01hcDogeyBba2V5OiBzdHJpbmddOiBDb2x1bW4gfSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgY29sTmFtZSA9IGNvbHVtbi5tZXRhZGF0YS5jb2xOYW1lO1xuICAgICAgaWYgKGNvbHVtbnNNYXBbY29sTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBjb2x1bW5zTWFwW2NvbE5hbWVdID0gY29sdW1uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBSb3dUb2tlbihjb2x1bW5zTWFwKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IFJvd1Rva2VuKGNvbHVtbnMpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHJvd1BhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gcm93UGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBeUMsU0FBQUUsdUJBQUFDLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFQekM7O0FBY0EsZUFBZUcsU0FBU0EsQ0FBQ0MsTUFBYyxFQUFxQjtFQUMxRCxNQUFNQyxXQUFXLEdBQUdELE1BQU0sQ0FBQ0MsV0FBVztFQUN0QyxNQUFNQyxNQUFNLEdBQUdELFdBQVcsQ0FBQ0MsTUFBTTtFQUNqQyxNQUFNQyxPQUFpQixHQUFHLEVBQUU7RUFFNUIsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdGLE1BQU0sRUFBRUUsQ0FBQyxFQUFFLEVBQUU7SUFDL0IsTUFBTUMsZUFBZSxHQUFHSixXQUFXLENBQUNHLENBQUMsQ0FBQztJQUN0QyxJQUFJRSxLQUFLO0lBQ1QsSUFBQUMsb0JBQVUsRUFBQ1AsTUFBTSxFQUFFSyxlQUFlLEVBQUVMLE1BQU0sQ0FBQ1EsT0FBTyxFQUFHQyxDQUFDLElBQUs7TUFDekRILEtBQUssR0FBR0csQ0FBQztJQUNYLENBQUMsQ0FBQztJQUVGLE9BQU9ULE1BQU0sQ0FBQ1UsU0FBUyxFQUFFO01BQ3ZCLE1BQU1WLE1BQU0sQ0FBQ1csWUFBWSxDQUFDQyxZQUFZLENBQUMsQ0FBQztNQUV4Q1osTUFBTSxDQUFDVSxTQUFTLEdBQUcsS0FBSztNQUN4QixNQUFNRyxJQUFJLEdBQUdiLE1BQU0sQ0FBQ2EsSUFBSztNQUV6QkEsSUFBSSxDQUFDLENBQUM7SUFDUjtJQUNBVixPQUFPLENBQUNXLElBQUksQ0FBQztNQUNYUixLQUFLO01BQ0xTLFFBQVEsRUFBRVY7SUFDWixDQUFDLENBQUM7RUFDSjtFQUVBLElBQUlMLE1BQU0sQ0FBQ1EsT0FBTyxDQUFDUSxjQUFjLEVBQUU7SUFDakMsTUFBTUMsVUFBcUMsR0FBR0MsTUFBTSxDQUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBRWpFaEIsT0FBTyxDQUFDaUIsT0FBTyxDQUFFQyxNQUFNLElBQUs7TUFDMUIsTUFBTUMsT0FBTyxHQUFHRCxNQUFNLENBQUNOLFFBQVEsQ0FBQ08sT0FBTztNQUN2QyxJQUFJTCxVQUFVLENBQUNLLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTtRQUMvQkwsVUFBVSxDQUFDSyxPQUFPLENBQUMsR0FBR0QsTUFBTTtNQUM5QjtJQUNGLENBQUMsQ0FBQztJQUVGLE9BQU8sSUFBSUUsZUFBUSxDQUFDTixVQUFVLENBQUM7RUFDakMsQ0FBQyxNQUFNO0lBQ0wsT0FBTyxJQUFJTSxlQUFRLENBQUNwQixPQUFPLENBQUM7RUFDOUI7QUFDRjtBQUFDLElBQUFxQixRQUFBLEdBRWN6QixTQUFTO0FBQUEwQixPQUFBLENBQUEzQixPQUFBLEdBQUEwQixRQUFBO0FBQ3hCRSxNQUFNLENBQUNELE9BQU8sR0FBRzFCLFNBQVMifQ==
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiaWNvbnYiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92YWx1ZVBhcnNlciIsIl9oZWxwZXJzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsInJvd1BhcnNlciIsInBhcnNlciIsImNvbHVtbnMiLCJtZXRhZGF0YSIsImNvbE1ldGFkYXRhIiwiaXNQTFBTdHJlYW0iLCJjaHVua3MiLCJyZWFkUExQU3RyZWFtIiwicHVzaCIsInZhbHVlIiwidHlwZSIsIm5hbWUiLCJCdWZmZXIiLCJjb25jYXQiLCJ0b1N0cmluZyIsIl9tZXRhZGF0YSRjb2xsYXRpb24iLCJkZWNvZGUiLCJjb2xsYXRpb24iLCJjb2RlcGFnZSIsInJlc3VsdCIsInJlYWRWYWx1ZSIsImJ1ZmZlciIsInBvc2l0aW9uIiwib3B0aW9ucyIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIndhaXRGb3JDaHVuayIsIm9mZnNldCIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1uc01hcCIsImNyZWF0ZSIsImZvckVhY2giLCJjb2x1bW4iLCJjb2xOYW1lIiwiUm93VG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vcm93LXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTdcblxuaW1wb3J0IFBhcnNlciBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuaW1wb3J0IHsgdHlwZSBDb2x1bW5NZXRhZGF0YSB9IGZyb20gJy4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyJztcblxuaW1wb3J0IHsgUm93VG9rZW4gfSBmcm9tICcuL3Rva2VuJztcbmltcG9ydCAqIGFzIGljb252IGZyb20gJ2ljb252LWxpdGUnO1xuXG5pbXBvcnQgeyBpc1BMUFN0cmVhbSwgcmVhZFBMUFN0cmVhbSwgcmVhZFZhbHVlIH0gZnJvbSAnLi4vdmFsdWUtcGFyc2VyJztcbmltcG9ydCB7IE5vdEVub3VnaERhdGFFcnJvciB9IGZyb20gJy4vaGVscGVycyc7XG5cbmludGVyZmFjZSBDb2x1bW4ge1xuICB2YWx1ZTogdW5rbm93bjtcbiAgbWV0YWRhdGE6IENvbHVtbk1ldGFkYXRhO1xufVxuXG5hc3luYyBmdW5jdGlvbiByb3dQYXJzZXIocGFyc2VyOiBQYXJzZXIpOiBQcm9taXNlPFJvd1Rva2VuPiB7XG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gW107XG5cbiAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiBwYXJzZXIuY29sTWV0YWRhdGEpIHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGlzUExQU3RyZWFtKG1ldGFkYXRhKSkge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgICAgaWYgKGNodW5rcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBjaHVua3MsIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHsgdmFsdWU6IEJ1ZmZlci5jb25jYXQoY2h1bmtzKS50b1N0cmluZygndWNzMicpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJDaGFyJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBpY29udi5kZWNvZGUoQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YS5jb2xsYXRpb24/LmNvZGVwYWdlID8/ICd1dGY4JyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckJpbmFyeScgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnVURUJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBCdWZmZXIuY29uY2F0KGNodW5rcyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlYWRWYWx1ZShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24sIG1ldGFkYXRhLCBwYXJzZXIub3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiByZXN1bHQudmFsdWUsIG1ldGFkYXRhIH0pO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAocGFyc2VyLm9wdGlvbnMudXNlQ29sdW1uTmFtZXMpIHtcbiAgICBjb25zdCBjb2x1bW5zTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb2xOYW1lID0gY29sdW1uLm1ldGFkYXRhLmNvbE5hbWU7XG4gICAgICBpZiAoY29sdW1uc01hcFtjb2xOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbHVtbnNNYXBbY29sTmFtZV0gPSBjb2x1bW47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFJvd1Rva2VuKGNvbHVtbnNNYXApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgUm93VG9rZW4oY29sdW1ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgcm93UGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSByb3dQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUtBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUErQyxTQUFBSyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSix3QkFBQVEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFB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