tedious 20.3.1 → 20.3.3

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.
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.ColMetadataTokenReader = void 0;
7
7
  var _metadataParser = require("../metadata-parser");
8
8
  var _token = require("./token");
9
9
  var _helpers = require("./helpers");
@@ -76,49 +76,36 @@ function readColumn(buf, offset, options, index) {
76
76
  tableName: tableName
77
77
  }, offset);
78
78
  }
79
- async function colMetadataParser(parser) {
80
- let columnCount;
81
- while (true) {
82
- let offset;
83
- try {
84
- ({
85
- offset,
86
- value: columnCount
87
- } = (0, _helpers.readUInt16LE)(parser.buffer, parser.position));
88
- } catch (err) {
89
- if (err instanceof _helpers.NotEnoughDataError) {
90
- await parser.waitForChunk();
91
- continue;
92
- }
93
- throw err;
94
- }
95
- parser.position = offset;
96
- break;
79
+
80
+ /**
81
+ * Reads a `COLMETADATA` token column by column, so that tokens describing many
82
+ * columns are not parsed again from the start whenever they span chunks.
83
+ */
84
+ class ColMetadataTokenReader {
85
+ constructor() {
86
+ this.columnCount = undefined;
87
+ this.columns = [];
97
88
  }
98
- const columns = [];
99
- for (let i = 0; i < columnCount; i++) {
100
- while (true) {
101
- let column;
102
- let offset;
103
- try {
104
- ({
105
- offset,
106
- value: column
107
- } = readColumn(parser.buffer, parser.position, parser.options, i));
108
- } catch (err) {
109
- if (err instanceof _helpers.NotEnoughDataError) {
110
- await parser.waitForChunk();
111
- continue;
112
- }
113
- throw err;
114
- }
89
+ read(parser) {
90
+ if (this.columnCount === undefined) {
91
+ const {
92
+ value,
93
+ offset
94
+ } = (0, _helpers.readUInt16LE)(parser.buffer, parser.position);
95
+ parser.position = offset;
96
+ this.columnCount = value;
97
+ }
98
+ while (this.columns.length < this.columnCount) {
99
+ const {
100
+ value,
101
+ offset
102
+ } = readColumn(parser.buffer, parser.position, parser.options, this.columns.length);
115
103
  parser.position = offset;
116
- columns.push(column);
117
- break;
104
+ this.columns.push(value);
118
105
  }
106
+ parser.colMetadata = this.columns;
107
+ return new _token.ColMetadataToken(this.columns);
119
108
  }
120
- return new _token.ColMetadataToken(columns);
121
109
  }
122
- var _default = exports.default = colMetadataParser;
123
- module.exports = colMetadataParser;
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWV0YWRhdGFQYXJzZXIiLCJyZXF1aXJlIiwiX3Rva2VuIiwiX2hlbHBlcnMiLCJyZWFkVGFibGVOYW1lIiwiYnVmIiwib2Zmc2V0IiwibWV0YWRhdGEiLCJvcHRpb25zIiwidHlwZSIsImhhc1RhYmxlTmFtZSIsIlJlc3VsdCIsInVuZGVmaW5lZCIsInRkc1ZlcnNpb24iLCJyZWFkVXNWYXJDaGFyIiwibnVtYmVyT2ZUYWJsZU5hbWVQYXJ0cyIsInZhbHVlIiwicmVhZFVJbnQ4IiwidGFibGVOYW1lIiwiaSIsInRhYmxlTmFtZVBhcnQiLCJwdXNoIiwicmVhZENvbHVtbk5hbWUiLCJpbmRleCIsImNvbE5hbWUiLCJyZWFkQlZhckNoYXIiLCJjb2x1bW5OYW1lUmVwbGFjZXIiLCJjYW1lbENhc2VDb2x1bW5zIiwicmVwbGFjZSIsInMiLCJ0b0xvd2VyQ2FzZSIsInJlYWRDb2x1bW4iLCJyZWFkTWV0YWRhdGEiLCJ1c2VyVHlwZSIsImZsYWdzIiwiY29sbGF0aW9uIiwicHJlY2lzaW9uIiwic2NhbGUiLCJ1ZHRJbmZvIiwiZGF0YUxlbmd0aCIsInNjaGVtYSIsImNvbE1ldGFkYXRhUGFyc2VyIiwicGFyc2VyIiwiY29sdW1uQ291bnQiLCJyZWFkVUludDE2TEUiLCJidWZmZXIiLCJwb3NpdGlvbiIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIndhaXRGb3JDaHVuayIsImNvbHVtbnMiLCJjb2x1bW4iLCJDb2xNZXRhZGF0YVRva2VuIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZE1ldGFkYXRhLCB0eXBlIE1ldGFkYXRhIH0gZnJvbSAnLi4vbWV0YWRhdGEtcGFyc2VyJztcblxuaW1wb3J0IFBhcnNlciwgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuaW1wb3J0IHsgQ29sTWV0YWRhdGFUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yLCBSZXN1bHQsIHJlYWRCVmFyQ2hhciwgcmVhZFVJbnQxNkxFLCByZWFkVUludDgsIHJlYWRVc1ZhckNoYXIgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk1ldGFkYXRhIGV4dGVuZHMgTWV0YWRhdGEge1xuICAvKipcbiAgICogVGhlIGNvbHVtbidzIG5hbWXjgIJcbiAgICovXG4gIGNvbE5hbWU6IHN0cmluZztcblxuICB0YWJsZU5hbWU/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcmVhZFRhYmxlTmFtZShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG1ldGFkYXRhOiBNZXRhZGF0YSwgb3B0aW9uczogUGFyc2VyT3B0aW9ucyk6IFJlc3VsdDxzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4ge1xuICBpZiAoIW1ldGFkYXRhLnR5cGUuaGFzVGFibGVOYW1lKSB7XG4gICAgcmV0dXJuIG5ldyBSZXN1bHQodW5kZWZpbmVkLCBvZmZzZXQpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMudGRzVmVyc2lvbiA8ICc3XzInKSB7XG4gICAgcmV0dXJuIHJlYWRVc1ZhckNoYXIoYnVmLCBvZmZzZXQpO1xuICB9XG5cbiAgbGV0IG51bWJlck9mVGFibGVOYW1lUGFydHM7XG4gICh7IG9mZnNldCwgdmFsdWU6IG51bWJlck9mVGFibGVOYW1lUGFydHMgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGNvbnN0IHRhYmxlTmFtZTogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJPZlRhYmxlTmFtZVBhcnRzOyBpKyspIHtcbiAgICBsZXQgdGFibGVOYW1lUGFydDtcbiAgICAoeyBvZmZzZXQsIHZhbHVlOiB0YWJsZU5hbWVQYXJ0IH0gPSByZWFkVXNWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICB0YWJsZU5hbWUucHVzaCh0YWJsZU5hbWVQYXJ0KTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVzdWx0KHRhYmxlTmFtZSwgb2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gcmVhZENvbHVtbk5hbWUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBtZXRhZGF0YTogTWV0YWRhdGEsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8c3RyaW5nPiB7XG4gIGxldCBjb2xOYW1lO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjb2xOYW1lIH0gPSByZWFkQlZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAob3B0aW9ucy5jb2x1bW5OYW1lUmVwbGFjZXIpIHtcbiAgICByZXR1cm4gbmV3IFJlc3VsdChvcHRpb25zLmNvbHVtbk5hbWVSZXBsYWNlcihjb2xOYW1lLCBpbmRleCwgbWV0YWRhdGEpLCBvZmZzZXQpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuY2FtZWxDYXNlQ29sdW1ucykge1xuICAgIHJldHVybiBuZXcgUmVzdWx0KGNvbE5hbWUucmVwbGFjZSgvXltBLVpdLywgZnVuY3Rpb24ocykge1xuICAgICAgcmV0dXJuIHMudG9Mb3dlckNhc2UoKTtcbiAgICB9KSwgb2Zmc2V0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IFJlc3VsdChjb2xOYW1lLCBvZmZzZXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRDb2x1bW4oYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBpbmRleDogbnVtYmVyKSB7XG4gIGxldCBtZXRhZGF0YTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWV0YWRhdGEgfSA9IHJlYWRNZXRhZGF0YShidWYsIG9mZnNldCwgb3B0aW9ucykpO1xuXG4gIGxldCB0YWJsZU5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IHRhYmxlTmFtZSB9ID0gcmVhZFRhYmxlTmFtZShidWYsIG9mZnNldCwgbWV0YWRhdGEsIG9wdGlvbnMpKTtcblxuICBsZXQgY29sTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sTmFtZSB9ID0gcmVhZENvbHVtbk5hbWUoYnVmLCBvZmZzZXQsIGluZGV4LCBtZXRhZGF0YSwgb3B0aW9ucykpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICB1c2VyVHlwZTogbWV0YWRhdGEudXNlclR5cGUsXG4gICAgZmxhZ3M6IG1ldGFkYXRhLmZsYWdzLFxuICAgIHR5cGU6IG1ldGFkYXRhLnR5cGUsXG4gICAgY29sbGF0aW9uOiBtZXRhZGF0YS5jb2xsYXRpb24sXG4gICAgcHJlY2lzaW9uOiBtZXRhZGF0YS5wcmVjaXNpb24sXG4gICAgc2NhbGU6IG1ldGFkYXRhLnNjYWxlLFxuICAgIHVkdEluZm86IG1ldGFkYXRhLnVkdEluZm8sXG4gICAgZGF0YUxlbmd0aDogbWV0YWRhdGEuZGF0YUxlbmd0aCxcbiAgICBzY2hlbWE6IG1ldGFkYXRhLnNjaGVtYSxcbiAgICBjb2xOYW1lOiBjb2xOYW1lLFxuICAgIHRhYmxlTmFtZTogdGFibGVOYW1lXG4gIH0sIG9mZnNldCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbE1ldGFkYXRhUGFyc2VyKHBhcnNlcjogUGFyc2VyKTogUHJvbWlzZTxDb2xNZXRhZGF0YVRva2VuPiB7XG4gIGxldCBjb2x1bW5Db3VudDtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGxldCBvZmZzZXQ7XG5cbiAgICB0cnkge1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sdW1uQ291bnQgfSA9IHJlYWRVSW50MTZMRShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24pKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgYXdhaXQgcGFyc2VyLndhaXRGb3JDaHVuaygpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHBhcnNlci5wb3NpdGlvbiA9IG9mZnNldDtcbiAgICBicmVhaztcbiAgfVxuXG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbk1ldGFkYXRhW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5Db3VudDsgaSsrKSB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGxldCBjb2x1bW46IENvbHVtbk1ldGFkYXRhO1xuICAgICAgbGV0IG9mZnNldDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sdW1uIH0gPSByZWFkQ29sdW1uKHBhcnNlci5idWZmZXIsIHBhcnNlci5wb3NpdGlvbiwgcGFyc2VyLm9wdGlvbnMsIGkpKTtcbiAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICBhd2FpdCBwYXJzZXIud2FpdEZvckNodW5rKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIHBhcnNlci5wb3NpdGlvbiA9IG9mZnNldDtcbiAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pO1xuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IENvbE1ldGFkYXRhVG9rZW4oY29sdW1ucyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbE1ldGFkYXRhUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBjb2xNZXRhZGF0YVBhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZUFBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBV0EsU0FBU0csYUFBYUEsQ0FBQ0MsR0FBVyxF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
110
+ exports.ColMetadataTokenReader = ColMetadataTokenReader;
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWV0YWRhdGFQYXJzZXIiLCJyZXF1aXJlIiwiX3Rva2VuIiwiX2hlbHBlcnMiLCJyZWFkVGFibGVOYW1lIiwiYnVmIiwib2Zmc2V0IiwibWV0YWRhdGEiLCJvcHRpb25zIiwidHlwZSIsImhhc1RhYmxlTmFtZSIsIlJlc3VsdCIsInVuZGVmaW5lZCIsInRkc1ZlcnNpb24iLCJyZWFkVXNWYXJDaGFyIiwibnVtYmVyT2ZUYWJsZU5hbWVQYXJ0cyIsInZhbHVlIiwicmVhZFVJbnQ4IiwidGFibGVOYW1lIiwiaSIsInRhYmxlTmFtZVBhcnQiLCJwdXNoIiwicmVhZENvbHVtbk5hbWUiLCJpbmRleCIsImNvbE5hbWUiLCJyZWFkQlZhckNoYXIiLCJjb2x1bW5OYW1lUmVwbGFjZXIiLCJjYW1lbENhc2VDb2x1bW5zIiwicmVwbGFjZSIsInMiLCJ0b0xvd2VyQ2FzZSIsInJlYWRDb2x1bW4iLCJyZWFkTWV0YWRhdGEiLCJ1c2VyVHlwZSIsImZsYWdzIiwiY29sbGF0aW9uIiwicHJlY2lzaW9uIiwic2NhbGUiLCJ1ZHRJbmZvIiwiZGF0YUxlbmd0aCIsInNjaGVtYSIsIkNvbE1ldGFkYXRhVG9rZW5SZWFkZXIiLCJjb25zdHJ1Y3RvciIsImNvbHVtbkNvdW50IiwiY29sdW1ucyIsInJlYWQiLCJwYXJzZXIiLCJyZWFkVUludDE2TEUiLCJidWZmZXIiLCJwb3NpdGlvbiIsImxlbmd0aCIsImNvbE1ldGFkYXRhIiwiQ29sTWV0YWRhdGFUb2tlbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRNZXRhZGF0YSwgdHlwZSBNZXRhZGF0YSB9IGZyb20gJy4uL21ldGFkYXRhLXBhcnNlcic7XG5cbmltcG9ydCBQYXJzZXIsIHsgdHlwZSBQYXJzZXJPcHRpb25zLCB0eXBlIFRva2VuUmVhZGVyIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcbmltcG9ydCB7IENvbE1ldGFkYXRhVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcbmltcG9ydCB7IFJlc3VsdCwgcmVhZEJWYXJDaGFyLCByZWFkVUludDE2TEUsIHJlYWRVSW50OCwgcmVhZFVzVmFyQ2hhciB9IGZyb20gJy4vaGVscGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uTWV0YWRhdGEgZXh0ZW5kcyBNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgY29sdW1uJ3MgbmFtZeOAglxuICAgKi9cbiAgY29sTmFtZTogc3RyaW5nO1xuXG4gIHRhYmxlTmFtZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiByZWFkVGFibGVOYW1lKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgbWV0YWRhdGE6IE1ldGFkYXRhLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKTogUmVzdWx0PHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPiB7XG4gIGlmICghbWV0YWRhdGEudHlwZS5oYXNUYWJsZU5hbWUpIHtcbiAgICByZXR1cm4gbmV3IFJlc3VsdCh1bmRlZmluZWQsIG9mZnNldCk7XG4gIH1cblxuICBpZiAob3B0aW9ucy50ZHNWZXJzaW9uIDwgJzdfMicpIHtcbiAgICByZXR1cm4gcmVhZFVzVmFyQ2hhcihidWYsIG9mZnNldCk7XG4gIH1cblxuICBsZXQgbnVtYmVyT2ZUYWJsZU5hbWVQYXJ0cztcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbnVtYmVyT2ZUYWJsZU5hbWVQYXJ0cyB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgY29uc3QgdGFibGVOYW1lOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bWJlck9mVGFibGVOYW1lUGFydHM7IGkrKykge1xuICAgIGxldCB0YWJsZU5hbWVQYXJ0O1xuICAgICh7IG9mZnNldCwgdmFsdWU6IHRhYmxlTmFtZVBhcnQgfSA9IHJlYWRVc1ZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICAgIHRhYmxlTmFtZS5wdXNoKHRhYmxlTmFtZVBhcnQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQodGFibGVOYW1lLCBvZmZzZXQpO1xufVxuXG5mdW5jdGlvbiByZWFkQ29sdW1uTmFtZShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG1ldGFkYXRhOiBNZXRhZGF0YSwgb3B0aW9uczogUGFyc2VyT3B0aW9ucyk6IFJlc3VsdDxzdHJpbmc+IHtcbiAgbGV0IGNvbE5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IGNvbE5hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGlmIChvcHRpb25zLmNvbHVtbk5hbWVSZXBsYWNlcikge1xuICAgIHJldHVybiBuZXcgUmVzdWx0KG9wdGlvbnMuY29sdW1uTmFtZVJlcGxhY2VyKGNvbE5hbWUsIGluZGV4LCBtZXRhZGF0YSksIG9mZnNldCk7XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5jYW1lbENhc2VDb2x1bW5zKSB7XG4gICAgcmV0dXJuIG5ldyBSZXN1bHQoY29sTmFtZS5yZXBsYWNlKC9eW0EtWl0vLCBmdW5jdGlvbihzKSB7XG4gICAgICByZXR1cm4gcy50b0xvd2VyQ2FzZSgpO1xuICAgIH0pLCBvZmZzZXQpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgUmVzdWx0KGNvbE5hbWUsIG9mZnNldCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhZENvbHVtbihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGluZGV4OiBudW1iZXIpIHtcbiAgbGV0IG1ldGFkYXRhO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBtZXRhZGF0YSB9ID0gcmVhZE1ldGFkYXRhKGJ1Ziwgb2Zmc2V0LCBvcHRpb25zKSk7XG5cbiAgbGV0IHRhYmxlTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogdGFibGVOYW1lIH0gPSByZWFkVGFibGVOYW1lKGJ1Ziwgb2Zmc2V0LCBtZXRhZGF0YSwgb3B0aW9ucykpO1xuXG4gIGxldCBjb2xOYW1lO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjb2xOYW1lIH0gPSByZWFkQ29sdW1uTmFtZShidWYsIG9mZnNldCwgaW5kZXgsIG1ldGFkYXRhLCBvcHRpb25zKSk7XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoe1xuICAgIHVzZXJUeXBlOiBtZXRhZGF0YS51c2VyVHlwZSxcbiAgICBmbGFnczogbWV0YWRhdGEuZmxhZ3MsXG4gICAgdHlwZTogbWV0YWRhdGEudHlwZSxcbiAgICBjb2xsYXRpb246IG1ldGFkYXRhLmNvbGxhdGlvbixcbiAgICBwcmVjaXNpb246IG1ldGFkYXRhLnByZWNpc2lvbixcbiAgICBzY2FsZTogbWV0YWRhdGEuc2NhbGUsXG4gICAgdWR0SW5mbzogbWV0YWRhdGEudWR0SW5mbyxcbiAgICBkYXRhTGVuZ3RoOiBtZXRhZGF0YS5kYXRhTGVuZ3RoLFxuICAgIHNjaGVtYTogbWV0YWRhdGEuc2NoZW1hLFxuICAgIGNvbE5hbWU6IGNvbE5hbWUsXG4gICAgdGFibGVOYW1lOiB0YWJsZU5hbWVcbiAgfSwgb2Zmc2V0KTtcbn1cblxuLyoqXG4gKiBSZWFkcyBhIGBDT0xNRVRBREFUQWAgdG9rZW4gY29sdW1uIGJ5IGNvbHVtbiwgc28gdGhhdCB0b2tlbnMgZGVzY3JpYmluZyBtYW55XG4gKiBjb2x1bW5zIGFyZSBub3QgcGFyc2VkIGFnYWluIGZyb20gdGhlIHN0YXJ0IHdoZW5ldmVyIHRoZXkgc3BhbiBjaHVua3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2xNZXRhZGF0YVRva2VuUmVhZGVyIGltcGxlbWVudHMgVG9rZW5SZWFkZXIge1xuICBkZWNsYXJlIGNvbHVtbkNvdW50OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGRlY2xhcmUgY29sdW1uczogQ29sdW1uTWV0YWRhdGFbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNvbHVtbkNvdW50ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY29sdW1ucyA9IFtdO1xuICB9XG5cbiAgcmVhZChwYXJzZXI6IFBhcnNlcik6IENvbE1ldGFkYXRhVG9rZW4ge1xuICAgIGlmICh0aGlzLmNvbHVtbkNvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIG9mZnNldCB9ID0gcmVhZFVJbnQxNkxFKHBhcnNlci5idWZmZXIsIHBhcnNlci5wb3NpdGlvbik7XG4gICAgICBwYXJzZXIucG9zaXRpb24gPSBvZmZzZXQ7XG4gICAgICB0aGlzLmNvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgd2hpbGUgKHRoaXMuY29sdW1ucy5sZW5ndGggPCB0aGlzLmNvbHVtbkNvdW50KSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBvZmZzZXQgfSA9IHJlYWRDb2x1bW4ocGFyc2VyLmJ1ZmZlciwgcGFyc2VyLnBvc2l0aW9uLCBwYXJzZXIub3B0aW9ucywgdGhpcy5jb2x1bW5zLmxlbmd0aCk7XG4gICAgICBwYXJzZXIucG9zaXRpb24gPSBvZmZzZXQ7XG4gICAgICB0aGlzLmNvbHVtbnMucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcGFyc2VyLmNvbE1ldGFkYXRhID0gdGhpcy5jb2x1bW5zO1xuICAgIHJldHVybiBuZXcgQ29sTWV0YWRhdGFUb2tlbih0aGlzLmNvbHVtbnMpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGVBQUEsR0FBQUMsT0FBQTtBQUdBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQVdBLFNBQVNHLGFBQWFBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUFrQixFQUFFQyxPQUFzQixFQUF5QztFQUNySSxJQUFJLENBQUNELFFBQVEsQ0FBQ0UsSUFBSSxDQUFDQyxZQUFZLEVBQUU7SUFDL0IsT0FBTyxJQUFJQyxlQUFNLENBQUNDLFNBQVMsRUFBRU4sTUFBTSxDQUFDO0VBQ3RDO0VBRUEsSUFBSUUsT0FBTyxDQUFDSyxVQUFVLEdBQUcs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
@@ -1 +1 @@
1
- {"version":3,"file":"colmetadata-token-parser.js","names":["_metadataParser","require","_token","_helpers","readTableName","buf","offset","metadata","options","type","hasTableName","Result","undefined","tdsVersion","readUsVarChar","numberOfTableNameParts","value","readUInt8","tableName","i","tableNamePart","push","readColumnName","index","colName","readBVarChar","columnNameReplacer","camelCaseColumns","replace","s","toLowerCase","readColumn","readMetadata","userType","flags","collation","precision","scale","udtInfo","dataLength","schema","colMetadataParser","parser","columnCount","readUInt16LE","buffer","position","err","NotEnoughDataError","waitForChunk","columns","column","ColMetadataToken","_default","exports","default","module"],"sources":["../../src/token/colmetadata-token-parser.ts"],"sourcesContent":["import { readMetadata, type Metadata } from '../metadata-parser';\n\nimport Parser, { type ParserOptions } from './stream-parser';\nimport { ColMetadataToken } from './token';\nimport { NotEnoughDataError, Result, readBVarChar, readUInt16LE, readUInt8, readUsVarChar } from './helpers';\n\nexport interface ColumnMetadata extends Metadata {\n /**\n * The column's name。\n */\n colName: string;\n\n tableName?: string | string[] | undefined;\n}\n\nfunction readTableName(buf: Buffer, offset: number, metadata: Metadata, options: ParserOptions): Result<string | string[] | undefined> {\n if (!metadata.type.hasTableName) {\n return new Result(undefined, offset);\n }\n\n if (options.tdsVersion < '7_2') {\n return readUsVarChar(buf, offset);\n }\n\n let numberOfTableNameParts;\n ({ offset, value: numberOfTableNameParts } = readUInt8(buf, offset));\n\n const tableName: string[] = [];\n for (let i = 0; i < numberOfTableNameParts; i++) {\n let tableNamePart;\n ({ offset, value: tableNamePart } = readUsVarChar(buf, offset));\n\n tableName.push(tableNamePart);\n }\n\n return new Result(tableName, offset);\n}\n\nfunction readColumnName(buf: Buffer, offset: number, index: number, metadata: Metadata, options: ParserOptions): Result<string> {\n let colName;\n ({ offset, value: colName } = readBVarChar(buf, offset));\n\n if (options.columnNameReplacer) {\n return new Result(options.columnNameReplacer(colName, index, metadata), offset);\n } else if (options.camelCaseColumns) {\n return new Result(colName.replace(/^[A-Z]/, function(s) {\n return s.toLowerCase();\n }), offset);\n } else {\n return new Result(colName, offset);\n }\n}\n\nfunction readColumn(buf: Buffer, offset: number, options: ParserOptions, index: number) {\n let metadata;\n ({ offset, value: metadata } = readMetadata(buf, offset, options));\n\n let tableName;\n ({ offset, value: tableName } = readTableName(buf, offset, metadata, options));\n\n let colName;\n ({ offset, value: colName } = readColumnName(buf, offset, index, metadata, options));\n\n return new Result({\n userType: metadata.userType,\n flags: metadata.flags,\n type: metadata.type,\n collation: metadata.collation,\n precision: metadata.precision,\n scale: metadata.scale,\n udtInfo: metadata.udtInfo,\n dataLength: metadata.dataLength,\n schema: metadata.schema,\n colName: colName,\n tableName: tableName\n }, offset);\n}\n\nasync function colMetadataParser(parser: Parser): Promise<ColMetadataToken> {\n let columnCount;\n\n while (true) {\n let offset;\n\n try {\n ({ offset, value: columnCount } = readUInt16LE(parser.buffer, parser.position));\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 const columns: ColumnMetadata[] = [];\n for (let i = 0; i < columnCount; i++) {\n while (true) {\n let column: ColumnMetadata;\n let offset;\n\n try {\n ({ offset, value: column } = readColumn(parser.buffer, parser.position, parser.options, i));\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = offset;\n columns.push(column);\n\n break;\n }\n }\n\n return new ColMetadataToken(columns);\n}\n\nexport default colMetadataParser;\nmodule.exports = colMetadataParser;\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAWA,SAASG,aAAaA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAkB,EAAEC,OAAsB,EAAyC;EACrI,IAAI,CAACD,QAAQ,CAACE,IAAI,CAACC,YAAY,EAAE;IAC/B,OAAO,IAAIC,eAAM,CAACC,SAAS,EAAEN,MAAM,CAAC;EACtC;EAEA,IAAIE,OAAO,CAACK,UAAU,GAAG,KAAK,EAAE;IAC9B,OAAO,IAAAC,sBAAa,EAACT,GAAG,EAAEC,MAAM,CAAC;EACnC;EAEA,IAAIS,sBAAsB;EAC1B,CAAC;IAAET,MAAM;IAAEU,KAAK,EAAED;EAAuB,CAAC,GAAG,IAAAE,kBAAS,EAACZ,GAAG,EAAEC,MAAM,CAAC;EAEnE,MAAMY,SAAmB,GAAG,EAAE;EAC9B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,sBAAsB,EAAEI,CAAC,EAAE,EAAE;IAC/C,IAAIC,aAAa;IACjB,CAAC;MAAEd,MAAM;MAAEU,KAAK,EAAEI;IAAc,CAAC,GAAG,IAAAN,sBAAa,EAACT,GAAG,EAAEC,MAAM,CAAC;IAE9DY,SAAS,CAACG,IAAI,CAACD,aAAa,CAAC;EAC/B;EAEA,OAAO,IAAIT,eAAM,CAACO,SAAS,EAAEZ,MAAM,CAAC;AACtC;AAEA,SAASgB,cAAcA,CAACjB,GAAW,EAAEC,MAAc,EAAEiB,KAAa,EAAEhB,QAAkB,EAAEC,OAAsB,EAAkB;EAC9H,IAAIgB,OAAO;EACX,CAAC;IAAElB,MAAM;IAAEU,KAAK,EAAEQ;EAAQ,CAAC,GAAG,IAAAC,qBAAY,EAACpB,GAAG,EAAEC,MAAM,CAAC;EAEvD,IAAIE,OAAO,CAACkB,kBAAkB,EAAE;IAC9B,OAAO,IAAIf,eAAM,CAACH,OAAO,CAACkB,kBAAkB,CAACF,OAAO,EAAED,KAAK,EAAEhB,QAAQ,CAAC,EAAED,MAAM,CAAC;EACjF,CAAC,MAAM,IAAIE,OAAO,CAACmB,gBAAgB,EAAE;IACnC,OAAO,IAAIhB,eAAM,CAACa,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,UAASC,CAAC,EAAE;MACtD,OAAOA,CAAC,CAACC,WAAW,CAAC,CAAC;IACxB,CAAC,CAAC,EAAExB,MAAM,CAAC;EACb,CAAC,MAAM;IACL,OAAO,IAAIK,eAAM,CAACa,OAAO,EAAElB,MAAM,CAAC;EACpC;AACF;AAEA,SAASyB,UAAUA,CAAC1B,GAAW,EAAEC,MAAc,EAAEE,OAAsB,EAAEe,KAAa,EAAE;EACtF,IAAIhB,QAAQ;EACZ,CAAC;IAAED,MAAM;IAAEU,KAAK,EAAET;EAAS,CAAC,GAAG,IAAAyB,4BAAY,EAAC3B,GAAG,EAAEC,MAAM,EAAEE,OAAO,CAAC;EAEjE,IAAIU,SAAS;EACb,CAAC;IAAEZ,MAAM;IAAEU,KAAK,EAAEE;EAAU,CAAC,GAAGd,aAAa,CAACC,GAAG,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,CAAC;EAE7E,IAAIgB,OAAO;EACX,CAAC;IAAElB,MAAM;IAAEU,KAAK,EAAEQ;EAAQ,CAAC,GAAGF,cAAc,CAACjB,GAAG,EAAEC,MAAM,EAAEiB,KAAK,EAAEhB,QAAQ,EAAEC,OAAO,CAAC;EAEnF,OAAO,IAAIG,eAAM,CAAC;IAChBsB,QAAQ,EAAE1B,QAAQ,CAAC0B,QAAQ;IAC3BC,KAAK,EAAE3B,QAAQ,CAAC2B,KAAK;IACrBzB,IAAI,EAAEF,QAAQ,CAACE,IAAI;IACnB0B,SAAS,EAAE5B,QAAQ,CAAC4B,SAAS;IAC7BC,SAAS,EAAE7B,QAAQ,CAAC6B,SAAS;IAC7BC,KAAK,EAAE9B,QAAQ,CAAC8B,KAAK;IACrBC,OAAO,EAAE/B,QAAQ,CAAC+B,OAAO;IACzBC,UAAU,EAAEhC,QAAQ,CAACgC,UAAU;IAC/BC,MAAM,EAAEjC,QAAQ,CAACiC,MAAM;IACvBhB,OAAO,EAAEA,OAAO;IAChBN,SAAS,EAAEA;EACb,CAAC,EAAEZ,MAAM,CAAC;AACZ;AAEA,eAAemC,iBAAiBA,CAACC,MAAc,EAA6B;EAC1E,IAAIC,WAAW;EAEf,OAAO,IAAI,EAAE;IACX,IAAIrC,MAAM;IAEV,IAAI;MACF,CAAC;QAAEA,MAAM;QAAEU,KAAK,EAAE2B;MAAY,CAAC,GAAG,IAAAC,qBAAY,EAACF,MAAM,CAACG,MAAM,EAAEH,MAAM,CAACI,QAAQ,CAAC;IAChF,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ,IAAIA,GAAG,YAAYC,2BAAkB,EAAE;QACrC,MAAMN,MAAM,CAACO,YAAY,CAAC,CAAC;QAC3B;MACF;MAEA,MAAMF,GAAG;IACX;IAEAL,MAAM,CAACI,QAAQ,GAAGxC,MAAM;IACxB;EACF;EAEA,MAAM4C,OAAyB,GAAG,EAAE;EACpC,KAAK,IAAI/B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwB,WAAW,EAAExB,CAAC,EAAE,EAAE;IACpC,OAAO,IAAI,EAAE;MACX,IAAIgC,MAAsB;MAC1B,IAAI7C,MAAM;MAEV,IAAI;QACF,CAAC;UAAEA,MAAM;UAAEU,KAAK,EAAEmC;QAAO,CAAC,GAAGpB,UAAU,CAACW,MAAM,CAACG,MAAM,EAAEH,MAAM,CAACI,QAAQ,EAAEJ,MAAM,CAAClC,OAAO,EAAEW,CAAC,CAAC;MAC5F,CAAC,CAAC,OAAO4B,GAAQ,EAAE;QACjB,IAAIA,GAAG,YAAYC,2BAAkB,EAAE;UACrC,MAAMN,MAAM,CAACO,YAAY,CAAC,CAAC;UAC3B;QACF;QAEA,MAAMF,GAAG;MACX;MAEAL,MAAM,CAACI,QAAQ,GAAGxC,MAAM;MACxB4C,OAAO,CAAC7B,IAAI,CAAC8B,MAAM,CAAC;MAEpB;IACF;EACF;EAEA,OAAO,IAAIC,uBAAgB,CAACF,OAAO,CAAC;AACtC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcd,iBAAiB;AAChCe,MAAM,CAACF,OAAO,GAAGb,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"colmetadata-token-parser.js","names":["_metadataParser","require","_token","_helpers","readTableName","buf","offset","metadata","options","type","hasTableName","Result","undefined","tdsVersion","readUsVarChar","numberOfTableNameParts","value","readUInt8","tableName","i","tableNamePart","push","readColumnName","index","colName","readBVarChar","columnNameReplacer","camelCaseColumns","replace","s","toLowerCase","readColumn","readMetadata","userType","flags","collation","precision","scale","udtInfo","dataLength","schema","ColMetadataTokenReader","constructor","columnCount","columns","read","parser","readUInt16LE","buffer","position","length","colMetadata","ColMetadataToken","exports"],"sources":["../../src/token/colmetadata-token-parser.ts"],"sourcesContent":["import { readMetadata, type Metadata } from '../metadata-parser';\n\nimport Parser, { type ParserOptions, type TokenReader } from './stream-parser';\nimport { ColMetadataToken } from './token';\nimport { Result, readBVarChar, readUInt16LE, readUInt8, readUsVarChar } from './helpers';\n\nexport interface ColumnMetadata extends Metadata {\n /**\n * The column's name。\n */\n colName: string;\n\n tableName?: string | string[] | undefined;\n}\n\nfunction readTableName(buf: Buffer, offset: number, metadata: Metadata, options: ParserOptions): Result<string | string[] | undefined> {\n if (!metadata.type.hasTableName) {\n return new Result(undefined, offset);\n }\n\n if (options.tdsVersion < '7_2') {\n return readUsVarChar(buf, offset);\n }\n\n let numberOfTableNameParts;\n ({ offset, value: numberOfTableNameParts } = readUInt8(buf, offset));\n\n const tableName: string[] = [];\n for (let i = 0; i < numberOfTableNameParts; i++) {\n let tableNamePart;\n ({ offset, value: tableNamePart } = readUsVarChar(buf, offset));\n\n tableName.push(tableNamePart);\n }\n\n return new Result(tableName, offset);\n}\n\nfunction readColumnName(buf: Buffer, offset: number, index: number, metadata: Metadata, options: ParserOptions): Result<string> {\n let colName;\n ({ offset, value: colName } = readBVarChar(buf, offset));\n\n if (options.columnNameReplacer) {\n return new Result(options.columnNameReplacer(colName, index, metadata), offset);\n } else if (options.camelCaseColumns) {\n return new Result(colName.replace(/^[A-Z]/, function(s) {\n return s.toLowerCase();\n }), offset);\n } else {\n return new Result(colName, offset);\n }\n}\n\nfunction readColumn(buf: Buffer, offset: number, options: ParserOptions, index: number) {\n let metadata;\n ({ offset, value: metadata } = readMetadata(buf, offset, options));\n\n let tableName;\n ({ offset, value: tableName } = readTableName(buf, offset, metadata, options));\n\n let colName;\n ({ offset, value: colName } = readColumnName(buf, offset, index, metadata, options));\n\n return new Result({\n userType: metadata.userType,\n flags: metadata.flags,\n type: metadata.type,\n collation: metadata.collation,\n precision: metadata.precision,\n scale: metadata.scale,\n udtInfo: metadata.udtInfo,\n dataLength: metadata.dataLength,\n schema: metadata.schema,\n colName: colName,\n tableName: tableName\n }, offset);\n}\n\n/**\n * Reads a `COLMETADATA` token column by column, so that tokens describing many\n * columns are not parsed again from the start whenever they span chunks.\n */\nexport class ColMetadataTokenReader implements TokenReader {\n declare columnCount: number | undefined;\n declare columns: ColumnMetadata[];\n\n constructor() {\n this.columnCount = undefined;\n this.columns = [];\n }\n\n read(parser: Parser): ColMetadataToken {\n if (this.columnCount === undefined) {\n const { value, offset } = readUInt16LE(parser.buffer, parser.position);\n parser.position = offset;\n this.columnCount = value;\n }\n\n while (this.columns.length < this.columnCount) {\n const { value, offset } = readColumn(parser.buffer, parser.position, parser.options, this.columns.length);\n parser.position = offset;\n this.columns.push(value);\n }\n\n parser.colMetadata = this.columns;\n return new ColMetadataToken(this.columns);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,12 @@
1
- import Parser from './stream-parser';
1
+ import Parser, { type TokenReader } from './stream-parser';
2
2
  import { NBCRowToken } from './token';
3
- declare function nbcRowParser(parser: Parser): Promise<NBCRowToken>;
4
- export default nbcRowParser;
3
+ import { ColumnValuesReader } from './row-token-parser';
4
+ /**
5
+ * Reads an `NBCROW` token - a `ROW` token prefixed with a bitmap that flags
6
+ * `null` columns, which then have no data.
7
+ */
8
+ export declare class NBCRowTokenReader extends ColumnValuesReader implements TokenReader {
9
+ nullBitmap: Buffer | undefined;
10
+ constructor();
11
+ read(parser: Parser): NBCRowToken;
12
+ }
@@ -3,101 +3,34 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.NBCRowTokenReader = void 0;
7
7
  var _token = require("./token");
8
- var iconv = _interopRequireWildcard(require("iconv-lite"));
9
- var _valueParser = require("../value-parser");
10
8
  var _helpers = require("./helpers");
11
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
9
+ var _rowTokenParser = require("./row-token-parser");
12
10
  // s2.2.7.13 (introduced in TDS 7.3.B)
13
11
 
14
- async function nbcRowParser(parser) {
15
- const colMetadata = parser.colMetadata;
16
- const columns = [];
17
- const bitmap = [];
18
- const bitmapByteLength = Math.ceil(colMetadata.length / 8);
19
- while (parser.buffer.length - parser.position < bitmapByteLength) {
20
- await parser.waitForChunk();
12
+ /**
13
+ * Reads an `NBCROW` token - a `ROW` token prefixed with a bitmap that flags
14
+ * `null` columns, which then have no data.
15
+ */
16
+ class NBCRowTokenReader extends _rowTokenParser.ColumnValuesReader {
17
+ constructor() {
18
+ super();
19
+ this.nullBitmap = undefined;
21
20
  }
22
- const bytes = parser.buffer.slice(parser.position, parser.position + bitmapByteLength);
23
- parser.position += bitmapByteLength;
24
- for (let i = 0, len = bytes.length; i < len; i++) {
25
- const byte = bytes[i];
26
- bitmap.push(byte & 0b1 ? true : false);
27
- bitmap.push(byte & 0b10 ? true : false);
28
- bitmap.push(byte & 0b100 ? true : false);
29
- bitmap.push(byte & 0b1000 ? true : false);
30
- bitmap.push(byte & 0b10000 ? true : false);
31
- bitmap.push(byte & 0b100000 ? true : false);
32
- bitmap.push(byte & 0b1000000 ? true : false);
33
- bitmap.push(byte & 0b10000000 ? true : false);
34
- }
35
- for (let i = 0; i < colMetadata.length; i++) {
36
- const metadata = colMetadata[i];
37
- if (bitmap[i]) {
38
- columns.push({
39
- value: null,
40
- metadata
41
- });
42
- continue;
43
- }
44
- while (true) {
45
- if ((0, _valueParser.isPLPStream)(metadata)) {
46
- const chunks = await (0, _valueParser.readPLPStream)(parser);
47
- if (chunks === null) {
48
- columns.push({
49
- value: chunks,
50
- metadata
51
- });
52
- } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {
53
- columns.push({
54
- value: Buffer.concat(chunks).toString('ucs2'),
55
- metadata
56
- });
57
- } else if (metadata.type.name === 'VarChar') {
58
- columns.push({
59
- value: iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8'),
60
- metadata
61
- });
62
- } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {
63
- columns.push({
64
- value: Buffer.concat(chunks),
65
- metadata
66
- });
67
- }
68
- } else {
69
- let result;
70
- try {
71
- result = (0, _valueParser.readValue)(parser.buffer, parser.position, metadata, parser.options);
72
- } catch (err) {
73
- if (err instanceof _helpers.NotEnoughDataError) {
74
- await parser.waitForChunk();
75
- continue;
76
- }
77
- throw err;
78
- }
79
- parser.position = result.offset;
80
- columns.push({
81
- value: result.value,
82
- metadata
83
- });
21
+ read(parser) {
22
+ if (this.nullBitmap === undefined) {
23
+ const start = parser.position;
24
+ const end = start + Math.ceil(parser.colMetadata.length / 8);
25
+ if (parser.buffer.length < end) {
26
+ throw new _helpers.NotEnoughDataError(end);
84
27
  }
85
- break;
28
+ this.nullBitmap = parser.buffer.subarray(start, end);
29
+ parser.position = end;
86
30
  }
87
- }
88
- if (parser.options.useColumnNames) {
89
- const columnsMap = Object.create(null);
90
- columns.forEach(column => {
91
- const colName = column.metadata.colName;
92
- if (columnsMap[colName] == null) {
93
- columnsMap[colName] = column;
94
- }
95
- });
96
- return new _token.NBCRowToken(columnsMap);
97
- } else {
98
- return new _token.NBCRowToken(columns);
31
+ this.readColumns(parser, this.nullBitmap);
32
+ return new _token.NBCRowToken(parser.options.useColumnNames ? (0, _rowTokenParser.toColumnsMap)(this.columns) : this.columns);
99
33
  }
100
34
  }
101
- var _default = exports.default = nbcRowParser;
102
- module.exports = nbcRowParser;
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiaWNvbnYiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92YWx1ZVBhcnNlciIsIl9oZWxwZXJzIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwibmJjUm93UGFyc2VyIiwicGFyc2VyIiwiY29sTWV0YWRhdGEiLCJjb2x1bW5zIiwiYml0bWFwIiwiYml0bWFwQnl0ZUxlbmd0aCIsIk1hdGgiLCJjZWlsIiwibGVuZ3RoIiwiYnVmZmVyIiwicG9zaXRpb24iLCJ3YWl0Rm9yQ2h1bmsiLCJieXRlcyIsInNsaWNlIiwibGVuIiwiYnl0ZSIsInB1c2giLCJtZXRhZGF0YSIsInZhbHVlIiwiaXNQTFBTdHJlYW0iLCJjaHVua3MiLCJyZWFkUExQU3RyZWFtIiwidHlwZSIsIm5hbWUiLCJCdWZmZXIiLCJjb25jYXQiLCJ0b1N0cmluZyIsImRlY29kZSIsImNvbGxhdGlvbiIsImNvZGVwYWdlIiwicmVzdWx0IiwicmVhZFZhbHVlIiwib3B0aW9ucyIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9mZnNldCIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1uc01hcCIsImNyZWF0ZSIsImZvckVhY2giLCJjb2x1bW4iLCJjb2xOYW1lIiwiTkJDUm93VG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vbmJjcm93LXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTMgKGludHJvZHVjZWQgaW4gVERTIDcuMy5CKVxuXG5pbXBvcnQgUGFyc2VyIGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyB0eXBlIENvbHVtbk1ldGFkYXRhIH0gZnJvbSAnLi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXInO1xuXG5pbXBvcnQgeyBOQkNSb3dUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0ICogYXMgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IGlzUExQU3RyZWFtLCByZWFkUExQU3RyZWFtLCByZWFkVmFsdWUgfSBmcm9tICcuLi92YWx1ZS1wYXJzZXInO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIENvbHVtbiB7XG4gIHZhbHVlOiB1bmtub3duO1xuICBtZXRhZGF0YTogQ29sdW1uTWV0YWRhdGE7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5iY1Jvd1BhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8TkJDUm93VG9rZW4+IHtcbiAgY29uc3QgY29sTWV0YWRhdGEgPSBwYXJzZXIuY29sTWV0YWRhdGE7XG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gW107XG4gIGNvbnN0IGJpdG1hcDogYm9vbGVhbltdID0gW107XG4gIGNvbnN0IGJpdG1hcEJ5dGVMZW5ndGggPSBNYXRoLmNlaWwoY29sTWV0YWRhdGEubGVuZ3RoIC8gOCk7XG5cbiAgd2hpbGUgKHBhcnNlci5idWZmZXIubGVuZ3RoIC0gcGFyc2VyLnBvc2l0aW9uIDwgYml0bWFwQnl0ZUxlbmd0aCkge1xuICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgfVxuXG4gIGNvbnN0IGJ5dGVzID0gcGFyc2VyLmJ1ZmZlci5zbGljZShwYXJzZXIucG9zaXRpb24sIHBhcnNlci5wb3NpdGlvbiArIGJpdG1hcEJ5dGVMZW5ndGgpO1xuICBwYXJzZXIucG9zaXRpb24gKz0gYml0bWFwQnl0ZUxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYnl0ZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gYnl0ZXNbaV07XG5cbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbE1ldGFkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBjb2xNZXRhZGF0YVtpXTtcbiAgICBpZiAoYml0bWFwW2ldKSB7XG4gICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogbnVsbCwgbWV0YWRhdGEgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGlzUExQU3RyZWFtKG1ldGFkYXRhKSkge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgICAgaWYgKGNodW5rcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBjaHVua3MsIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHsgdmFsdWU6IEJ1ZmZlci5jb25jYXQoY2h1bmtzKS50b1N0cmluZygndWNzMicpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJDaGFyJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBpY29udi5kZWNvZGUoQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YS5jb2xsYXRpb24/LmNvZGVwYWdlID8/ICd1dGY4JyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckJpbmFyeScgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnVURUJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBCdWZmZXIuY29uY2F0KGNodW5rcyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlYWRWYWx1ZShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24sIG1ldGFkYXRhLCBwYXJzZXIub3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiByZXN1bHQudmFsdWUsIG1ldGFkYXRhIH0pO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAocGFyc2VyLm9wdGlvbnMudXNlQ29sdW1uTmFtZXMpIHtcbiAgICBjb25zdCBjb2x1bW5zTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb2xOYW1lID0gY29sdW1uLm1ldGFkYXRhLmNvbE5hbWU7XG4gICAgICBpZiAoY29sdW1uc01hcFtjb2xOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbHVtbnNNYXBbY29sTmFtZV0gPSBjb2x1bW47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IE5CQ1Jvd1Rva2VuKGNvbHVtbnNNYXApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgTkJDUm93VG9rZW4oY29sdW1ucyk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBuYmNSb3dQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IG5iY1Jvd1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQStDLFNBQUFFLHdCQUFBRyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTCx1QkFBQSxZQUFBQSxDQUFBRyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEs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UUFBUSxDQUFDSyxJQUFJLENBQUNDLElBQUksS0FBSyxLQUFLLEVBQUU7VUFDN0VwQixPQUFPLENBQUNhLElBQUksQ0FBQztZQUFFRSxLQUFLLEVBQUVNLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDTCxNQUFNLENBQUM7WUFBRUg7VUFBUyxDQUFDLENBQUM7UUFDMUQ7TUFDRixDQUFDLE1BQU07UUFDTCxJQUFJYSxNQUFNO1FBQ1YsSUFBSTtVQUNGQSxNQUFNLEdBQUcsSUFBQUMsc0JBQVMsRUFBQzlCLE1BQU0sQ0FBQ1EsTUFBTSxFQUFFUixNQUFNLENBQUNTLFFBQVEsRUFBRU8sUUFBUSxFQUFFaEIsTUFBTSxDQUFDK0IsT0FBTyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxPQUFPQyxHQUFHLEVBQUU7VUFDWixJQUFJQSxHQUFHLFlBQVlDLDJCQUFrQixFQUFFO1lBQ3JDLE1BQU1qQyxNQUFNLENBQUNVLFlBQVksQ0FBQyxDQUFDO1lBQzNCO1VBQ0Y7VUFFQSxNQUFNc0IsR0FBRztRQUNYO1FBRUFoQyxNQUFNLENBQUNTLFFBQVEsR0FBR29CLE1BQU0sQ0FBQ0ssTUFBTTtRQUMvQmhDLE9BQU8sQ0FBQ2EsSUFBSSxDQUFDO1VBQUVFLEtBQUssRUFBRVksTUFBTSxDQUFDWixLQUFLO1VBQUVEO1FBQVMsQ0FBQyxDQUFDO01BQ2pEO01BRUE7SUFDRjtFQUNGO0VBRUEsSUFBSWhCLE1BQU0sQ0FBQytCLE9BQU8sQ0FBQ0ksY0FBYyxFQUFFO0lBQ2pDLE1BQU1DLFVBQXFDLEdBQUd4QyxNQUFNLENBQUN5QyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBRWpFbkMsT0FBTyxDQUFDb0MsT0FBTyxDQUFFQyxNQUFNLElBQUs7TUFDMUIsTUFBTUMsT0FBTyxHQUFHRCxNQUFNLENBQUN2QixRQUFRLENBQUN3QixPQUFPO01BQ3ZDLElBQUlKLFVBQVUsQ0FBQ0ksT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFO1FBQy9CSixVQUFVLENBQUNJLE9BQU8sQ0FBQyxHQUFHRCxNQUFNO01BQzlCO0lBQ0YsQ0FBQyxDQUFDO0lBRUYsT0FBTyxJQUFJRSxrQkFBVyxDQUFDTCxVQUFVLENBQUM7RUFDcEMsQ0FBQyxNQUFNO0lBQ0wsT0FBTyxJQUFJSyxrQkFBVyxDQUFDdkMsT0FBTyxDQUFDO0VBQ2pDO0FBQ0Y7QUFBQyxJQUFBd0MsUUFBQSxHQUFBQyxPQUFBLENBQUFyRCxPQUFBLEdBR2NTLFlBQVk7QUFDM0I2QyxNQUFNLENBQUNELE9BQU8sR0FBRzVDLFlBQVkiLCJpZ25vcmVMaXN0IjpbXX0=
35
+ exports.NBCRowTokenReader = NBCRowTokenReader;
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2hlbHBlcnMiLCJfcm93VG9rZW5QYXJzZXIiLCJOQkNSb3dUb2tlblJlYWRlciIsIkNvbHVtblZhbHVlc1JlYWRlciIsImNvbnN0cnVjdG9yIiwibnVsbEJpdG1hcCIsInVuZGVmaW5lZCIsInJlYWQiLCJwYXJzZXIiLCJzdGFydCIsInBvc2l0aW9uIiwiZW5kIiwiTWF0aCIsImNlaWwiLCJjb2xNZXRhZGF0YSIsImxlbmd0aCIsImJ1ZmZlciIsIk5vdEVub3VnaERhdGFFcnJvciIsInN1YmFycmF5IiwicmVhZENvbHVtbnMiLCJOQkNSb3dUb2tlbiIsIm9wdGlvbnMiLCJ1c2VDb2x1bW5OYW1lcyIsInRvQ29sdW1uc01hcCIsImNvbHVtbnMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL25iY3Jvdy10b2tlbi1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gczIuMi43LjEzIChpbnRyb2R1Y2VkIGluIFREUyA3LjMuQilcblxuaW1wb3J0IFBhcnNlciwgeyB0eXBlIFRva2VuUmVhZGVyIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgTkJDUm93VG9rZW4gfSBmcm9tICcuL3Rva2VuJztcbmltcG9ydCB7IE5vdEVub3VnaERhdGFFcnJvciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBDb2x1bW5WYWx1ZXNSZWFkZXIsIHRvQ29sdW1uc01hcCB9IGZyb20gJy4vcm93LXRva2VuLXBhcnNlcic7XG5cbi8qKlxuICogUmVhZHMgYW4gYE5CQ1JPV2AgdG9rZW4gLSBhIGBST1dgIHRva2VuIHByZWZpeGVkIHdpdGggYSBiaXRtYXAgdGhhdCBmbGFnc1xuICogYG51bGxgIGNvbHVtbnMsIHdoaWNoIHRoZW4gaGF2ZSBubyBkYXRhLlxuICovXG5leHBvcnQgY2xhc3MgTkJDUm93VG9rZW5SZWFkZXIgZXh0ZW5kcyBDb2x1bW5WYWx1ZXNSZWFkZXIgaW1wbGVtZW50cyBUb2tlblJlYWRlciB7XG4gIGRlY2xhcmUgbnVsbEJpdG1hcDogQnVmZmVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5udWxsQml0bWFwID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVhZChwYXJzZXI6IFBhcnNlcik6IE5CQ1Jvd1Rva2VuIHtcbiAgICBpZiAodGhpcy5udWxsQml0bWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gcGFyc2VyLnBvc2l0aW9uO1xuICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyBNYXRoLmNlaWwocGFyc2VyLmNvbE1ldGFkYXRhLmxlbmd0aCAvIDgpO1xuICAgICAgaWYgKHBhcnNlci5idWZmZXIubGVuZ3RoIDwgZW5kKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3IoZW5kKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5udWxsQml0bWFwID0gcGFyc2VyLmJ1ZmZlci5zdWJhcnJheShzdGFydCwgZW5kKTtcbiAgICAgIHBhcnNlci5wb3NpdGlvbiA9IGVuZDtcbiAgICB9XG5cbiAgICB0aGlzLnJlYWRDb2x1bW5zKHBhcnNlciwgdGhpcy5udWxsQml0bWFwKTtcbiAgICByZXR1cm4gbmV3IE5CQ1Jvd1Rva2VuKHBhcnNlci5vcHRpb25zLnVzZUNvbHVtbk5hbWVzID8gdG9Db2x1bW5zTWFwKHRoaXMuY29sdW1ucykgOiB0aGlzLmNvbHVtbnMpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUlBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQU5BOztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUcsaUJBQWlCLFNBQVNDLGtDQUFrQixDQUF3QjtFQUcvRUMsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osS0FBSyxDQUFDLENBQUM7SUFDUCxJQUFJLENBQUNDLFVBQVUsR0FBR0MsU0FBUztFQUM3QjtFQUVBQyxJQUFJQSxDQUFDQyxNQUFjLEVBQWU7SUFDaEMsSUFBSSxJQUFJLENBQUNILFVBQVUsS0FBS0MsU0FBUyxFQUFFO01BQ2pDLE1BQU1HLEtBQUssR0FBR0QsTUFBTSxDQUFDRSxRQUFRO01BQzdCLE1BQU1DLEdBQUcsR0FBR0YsS0FBSyxHQUFHRyxJQUFJLENBQUNDLElBQUksQ0FBQ0wsTUFBTSxDQUFDTSxXQUFXLENBQUNDLE1BQU0sR0FBRyxDQUFDLENBQUM7TUFDNUQsSUFBSVAsTUFBTSxDQUFDUSxNQUFNLENBQUNELE1BQU0sR0FBR0osR0FBRyxFQUFFO1FBQzlCLE1BQU0sSUFBSU0sMkJBQWtCLENBQUNOLEdBQUcsQ0FBQztNQUNuQztNQUVBLElBQUksQ0FBQ04sVUFBVSxHQUFHRyxNQUFNLENBQUNRLE1BQU0sQ0FBQ0UsUUFBUSxDQUFDVCxLQUFLLEVBQUVFLEdBQUcsQ0FBQztNQUNwREgsTUFBTSxDQUFDRSxRQUFRLEdBQUdDLEdBQUc7SUFDdkI7SUFFQSxJQUFJLENBQUNRLFdBQVcsQ0FBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQ0gsVUFBVSxDQUFDO0lBQ3pDLE9BQU8sSUFBSWUsa0JBQVcsQ0FBQ1osTUFBTSxDQUFDYSxPQUFPLENBQUNDLGNBQWMsR0FBRyxJQUFBQyw0QkFBWSxFQUFDLElBQUksQ0FBQ0MsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDQSxPQUFPLENBQUM7RUFDbkc7QUFDRjtBQUFDQyxPQUFBLENBQUF2QixpQkFBQSxHQUFBQSxpQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"nbcrow-token-parser.js","names":["_token","require","iconv","_interopRequireWildcard","_valueParser","_helpers","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","nbcRowParser","parser","colMetadata","columns","bitmap","bitmapByteLength","Math","ceil","length","buffer","position","waitForChunk","bytes","slice","len","byte","push","metadata","value","isPLPStream","chunks","readPLPStream","type","name","Buffer","concat","toString","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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","ignoreList":[]}
1
+ {"version":3,"file":"nbcrow-token-parser.js","names":["_token","require","_helpers","_rowTokenParser","NBCRowTokenReader","ColumnValuesReader","constructor","nullBitmap","undefined","read","parser","start","position","end","Math","ceil","colMetadata","length","buffer","NotEnoughDataError","subarray","readColumns","NBCRowToken","options","useColumnNames","toColumnsMap","columns","exports"],"sources":["../../src/token/nbcrow-token-parser.ts"],"sourcesContent":["// s2.2.7.13 (introduced in TDS 7.3.B)\n\nimport Parser, { type TokenReader } from './stream-parser';\n\nimport { NBCRowToken } from './token';\nimport { NotEnoughDataError } from './helpers';\nimport { ColumnValuesReader, toColumnsMap } from './row-token-parser';\n\n/**\n * Reads an `NBCROW` token - a `ROW` token prefixed with a bitmap that flags\n * `null` columns, which then have no data.\n */\nexport class NBCRowTokenReader extends ColumnValuesReader implements TokenReader {\n declare nullBitmap: Buffer | undefined;\n\n constructor() {\n super();\n this.nullBitmap = undefined;\n }\n\n read(parser: Parser): NBCRowToken {\n if (this.nullBitmap === undefined) {\n const start = parser.position;\n const end = start + Math.ceil(parser.colMetadata.length / 8);\n if (parser.buffer.length < end) {\n throw new NotEnoughDataError(end);\n }\n\n this.nullBitmap = parser.buffer.subarray(start, end);\n parser.position = end;\n }\n\n this.readColumns(parser, this.nullBitmap);\n return new NBCRowToken(parser.options.useColumnNames ? toColumnsMap(this.columns) : this.columns);\n }\n}\n"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AANA;;AAQA;AACA;AACA;AACA;AACO,MAAMG,iBAAiB,SAASC,kCAAkB,CAAwB;EAG/EC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,UAAU,GAAGC,SAAS;EAC7B;EAEAC,IAAIA,CAACC,MAAc,EAAe;IAChC,IAAI,IAAI,CAACH,UAAU,KAAKC,SAAS,EAAE;MACjC,MAAMG,KAAK,GAAGD,MAAM,CAACE,QAAQ;MAC7B,MAAMC,GAAG,GAAGF,KAAK,GAAGG,IAAI,CAACC,IAAI,CAACL,MAAM,CAACM,WAAW,CAACC,MAAM,GAAG,CAAC,CAAC;MAC5D,IAAIP,MAAM,CAACQ,MAAM,CAACD,MAAM,GAAGJ,GAAG,EAAE;QAC9B,MAAM,IAAIM,2BAAkB,CAACN,GAAG,CAAC;MACnC;MAEA,IAAI,CAACN,UAAU,GAAGG,MAAM,CAACQ,MAAM,CAACE,QAAQ,CAACT,KAAK,EAAEE,GAAG,CAAC;MACpDH,MAAM,CAACE,QAAQ,GAAGC,GAAG;IACvB;IAEA,IAAI,CAACQ,WAAW,CAACX,MAAM,EAAE,IAAI,CAACH,UAAU,CAAC;IACzC,OAAO,IAAIe,kBAAW,CAACZ,MAAM,CAACa,OAAO,CAACC,cAAc,GAAG,IAAAC,4BAAY,EAAC,IAAI,CAACC,OAAO,CAAC,GAAG,IAAI,CAACA,OAAO,CAAC;EACnG;AACF;AAACC,OAAA,CAAAvB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,4 +1,20 @@
1
- import Parser from './stream-parser';
1
+ import Parser, { type TokenReader } from './stream-parser';
2
2
  import { ReturnValueToken } from './token';
3
- declare function returnParser(parser: Parser): Promise<ReturnValueToken>;
4
- export default returnParser;
3
+ import { type Metadata } from '../metadata-parser';
4
+ import { PLPReader } from '../value-parser';
5
+ interface ReturnValueHeader {
6
+ paramOrdinal: number;
7
+ paramName: string;
8
+ metadata: Metadata;
9
+ }
10
+ /**
11
+ * Reads a `RETURNVALUE` token. The returned value can be an arbitrarily large
12
+ * PLP value, so the progress is kept across chunks.
13
+ */
14
+ export declare class ReturnValueTokenReader implements TokenReader {
15
+ header: ReturnValueHeader | undefined;
16
+ plpReader: PLPReader | undefined;
17
+ constructor();
18
+ read(parser: Parser): ReturnValueToken;
19
+ }
20
+ export {};
@@ -3,91 +3,85 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.ReturnValueTokenReader = void 0;
7
7
  var _token = require("./token");
8
8
  var _metadataParser = require("../metadata-parser");
9
9
  var _valueParser = require("../value-parser");
10
10
  var _helpers = require("./helpers");
11
- var iconv = _interopRequireWildcard(require("iconv-lite"));
12
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
11
  // s2.2.7.16
14
12
 
15
- async function returnParser(parser) {
16
- let paramName;
13
+ function readHeader(buf, offset, options) {
17
14
  let paramOrdinal;
15
+ ({
16
+ offset,
17
+ value: paramOrdinal
18
+ } = (0, _helpers.readUInt16LE)(buf, offset));
19
+ let paramName;
20
+ ({
21
+ offset,
22
+ value: paramName
23
+ } = (0, _helpers.readBVarChar)(buf, offset));
24
+ if (paramName.charAt(0) === '@') {
25
+ paramName = paramName.slice(1);
26
+ }
27
+
28
+ // status
29
+ ({
30
+ offset
31
+ } = (0, _helpers.readUInt8)(buf, offset));
18
32
  let metadata;
19
- while (true) {
20
- const buf = parser.buffer;
21
- let offset = parser.position;
22
- try {
23
- ({
24
- offset,
25
- value: paramOrdinal
26
- } = (0, _helpers.readUInt16LE)(buf, offset));
27
- ({
28
- offset,
29
- value: paramName
30
- } = (0, _helpers.readBVarChar)(buf, offset));
31
- // status
32
- ({
33
+ ({
34
+ offset,
35
+ value: metadata
36
+ } = (0, _metadataParser.readMetadata)(buf, offset, options));
37
+ return new _helpers.Result({
38
+ paramOrdinal,
39
+ paramName,
40
+ metadata
41
+ }, offset);
42
+ }
43
+
44
+ /**
45
+ * Reads a `RETURNVALUE` token. The returned value can be an arbitrarily large
46
+ * PLP value, so the progress is kept across chunks.
47
+ */
48
+ class ReturnValueTokenReader {
49
+ // The reader of a PLP value that is not complete yet.
50
+
51
+ constructor() {
52
+ this.header = undefined;
53
+ this.plpReader = undefined;
54
+ }
55
+ read(parser) {
56
+ if (this.header === undefined) {
57
+ const {
58
+ value,
33
59
  offset
34
- } = (0, _helpers.readUInt8)(buf, offset));
35
- ({
36
- offset,
37
- value: metadata
38
- } = (0, _metadataParser.readMetadata)(buf, offset, parser.options));
39
- if (paramName.charAt(0) === '@') {
40
- paramName = paramName.slice(1);
41
- }
42
- } catch (err) {
43
- if (err instanceof _helpers.NotEnoughDataError) {
44
- await parser.waitForChunk();
45
- continue;
46
- }
47
- throw err;
60
+ } = readHeader(parser.buffer, parser.position, parser.options);
61
+ parser.position = offset;
62
+ this.header = value;
48
63
  }
49
- parser.position = offset;
50
- break;
51
- }
52
- let value;
53
- while (true) {
54
- const buf = parser.buffer;
55
- let offset = parser.position;
64
+ const {
65
+ paramOrdinal,
66
+ paramName,
67
+ metadata
68
+ } = this.header;
69
+ let value;
56
70
  if ((0, _valueParser.isPLPStream)(metadata)) {
57
- const chunks = await (0, _valueParser.readPLPStream)(parser);
58
- if (chunks === null) {
59
- value = chunks;
60
- } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {
61
- value = Buffer.concat(chunks).toString('ucs2');
62
- } else if (metadata.type.name === 'VarChar') {
63
- value = iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8');
64
- } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {
65
- value = Buffer.concat(chunks);
66
- }
71
+ this.plpReader ??= new _valueParser.PLPReader(metadata);
72
+ value = this.plpReader.read(parser);
67
73
  } else {
68
- try {
69
- ({
70
- value,
71
- offset
72
- } = (0, _valueParser.readValue)(buf, offset, metadata, parser.options));
73
- } catch (err) {
74
- if (err instanceof _helpers.NotEnoughDataError) {
75
- await parser.waitForChunk();
76
- continue;
77
- }
78
- throw err;
79
- }
80
- parser.position = offset;
74
+ const result = (0, _valueParser.readValue)(parser.buffer, parser.position, metadata, parser.options);
75
+ parser.position = result.offset;
76
+ value = result.value;
81
77
  }
82
- break;
78
+ return new _token.ReturnValueToken({
79
+ paramOrdinal,
80
+ paramName,
81
+ metadata,
82
+ value
83
+ });
83
84
  }
84
- return new _token.ReturnValueToken({
85
- paramOrdinal: paramOrdinal,
86
- paramName: paramName,
87
- metadata: metadata,
88
- value: value
89
- });
90
85
  }
91
- var _default = exports.default = returnParser;
92
- module.exports = returnParser;
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX21ldGFkYXRhUGFyc2VyIiwiX3ZhbHVlUGFyc2VyIiwiX2hlbHBlcnMiLCJpY29udiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwicmV0dXJuUGFyc2VyIiwicGFyc2VyIiwicGFyYW1OYW1lIiwicGFyYW1PcmRpbmFsIiwibWV0YWRhdGEiLCJidWYiLCJidWZmZXIiLCJvZmZzZXQiLCJwb3NpdGlvbiIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwicmVhZEJWYXJDaGFyIiwicmVhZFVJbnQ4IiwicmVhZE1ldGFkYXRhIiwib3B0aW9ucyIsImNoYXJBdCIsInNsaWNlIiwiZXJyIiwiTm90RW5vdWdoRGF0YUVycm9yIiwid2FpdEZvckNodW5rIiwiaXNQTFBTdHJlYW0iLCJjaHVua3MiLCJyZWFkUExQU3RyZWFtIiwidHlwZSIsIm5hbWUiLCJCdWZmZXIiLCJjb25jYXQiLCJ0b1N0cmluZyIsImRlY29kZSIsImNvbGxhdGlvbiIsImNvZGVwYWdlIiwicmVhZFZhbHVlIiwiUmV0dXJuVmFsdWVUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9yZXR1cm52YWx1ZS10b2tlbi1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gczIuMi43LjE2XG5cbmltcG9ydCBQYXJzZXIgZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgUmV0dXJuVmFsdWVUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG5pbXBvcnQgeyByZWFkTWV0YWRhdGEgfSBmcm9tICcuLi9tZXRhZGF0YS1wYXJzZXInO1xuaW1wb3J0IHsgaXNQTFBTdHJlYW0sIHJlYWRQTFBTdHJlYW0sIHJlYWRWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlLXBhcnNlcic7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IsIHJlYWRCVmFyQ2hhciwgcmVhZFVJbnQxNkxFLCByZWFkVUludDggfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0ICogYXMgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHVyblBhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8UmV0dXJuVmFsdWVUb2tlbj4ge1xuICBsZXQgcGFyYW1OYW1lO1xuICBsZXQgcGFyYW1PcmRpbmFsO1xuICBsZXQgbWV0YWRhdGE7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBidWYgPSBwYXJzZXIuYnVmZmVyO1xuICAgIGxldCBvZmZzZXQgPSBwYXJzZXIucG9zaXRpb247XG5cbiAgICB0cnkge1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogcGFyYW1PcmRpbmFsIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IHBhcmFtTmFtZSB9ID0gcmVhZEJWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG4gICAgICAvLyBzdGF0dXNcbiAgICAgICh7IG9mZnNldCB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBtZXRhZGF0YSB9ID0gcmVhZE1ldGFkYXRhKGJ1Ziwgb2Zmc2V0LCBwYXJzZXIub3B0aW9ucykpO1xuXG4gICAgICBpZiAocGFyYW1OYW1lLmNoYXJBdCgwKSA9PT0gJ0AnKSB7XG4gICAgICAgIHBhcmFtTmFtZSA9IHBhcmFtTmFtZS5zbGljZSgxKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgYXdhaXQgcGFyc2VyLndhaXRGb3JDaHVuaygpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHBhcnNlci5wb3NpdGlvbiA9IG9mZnNldDtcbiAgICBicmVhaztcbiAgfVxuXG4gIGxldCB2YWx1ZTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBidWYgPSBwYXJzZXIuYnVmZmVyO1xuICAgIGxldCBvZmZzZXQgPSBwYXJzZXIucG9zaXRpb247XG5cbiAgICBpZiAoaXNQTFBTdHJlYW0obWV0YWRhdGEpKSB7XG4gICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgIGlmIChjaHVua3MgPT09IG51bGwpIHtcbiAgICAgICAgdmFsdWUgPSBjaHVua3M7XG4gICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgIHZhbHVlID0gQnVmZmVyLmNvbmNhdChjaHVua3MpLnRvU3RyaW5nKCd1Y3MyJyk7XG4gICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckNoYXInKSB7XG4gICAgICAgIHZhbHVlID0gaWNvbnYuZGVjb2RlKEJ1ZmZlci5jb25jYXQoY2h1bmtzKSwgbWV0YWRhdGEuY29sbGF0aW9uPy5jb2RlcGFnZSA/PyAndXRmOCcpO1xuICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJCaW5hcnknIHx8IG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1VEVCcpIHtcbiAgICAgICAgdmFsdWUgPSBCdWZmZXIuY29uY2F0KGNodW5rcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgICh7IHZhbHVlLCBvZmZzZXQgfSA9IHJlYWRWYWx1ZShidWYsIG9mZnNldCwgbWV0YWRhdGEsIHBhcnNlci5vcHRpb25zKSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cblxuICAgICAgcGFyc2VyLnBvc2l0aW9uID0gb2Zmc2V0O1xuICAgIH1cblxuICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXR1cm5WYWx1ZVRva2VuKHtcbiAgICBwYXJhbU9yZGluYWw6IHBhcmFtT3JkaW5hbCxcbiAgICBwYXJhbU5hbWU6IHBhcmFtTmFtZSxcbiAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgdmFsdWU6IHZhbHVlXG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCByZXR1cm5QYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IHJldHVyblBhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBSUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBQyx1QkFBQSxDQUFBTCxPQUFBO0FBQW9DLFNBQUFLLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSCx1QkFBQSxZQUFBQSxDQUFBQyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlC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
86
+ exports.ReturnValueTokenReader = ReturnValueTokenReader;
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX21ldGFkYXRhUGFyc2VyIiwiX3ZhbHVlUGFyc2VyIiwiX2hlbHBlcnMiLCJyZWFkSGVhZGVyIiwiYnVmIiwib2Zmc2V0Iiwib3B0aW9ucyIsInBhcmFtT3JkaW5hbCIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwicGFyYW1OYW1lIiwicmVhZEJWYXJDaGFyIiwiY2hhckF0Iiwic2xpY2UiLCJyZWFkVUludDgiLCJtZXRhZGF0YSIsInJlYWRNZXRhZGF0YSIsIlJlc3VsdCIsIlJldHVyblZhbHVlVG9rZW5SZWFkZXIiLCJjb25zdHJ1Y3RvciIsImhlYWRlciIsInVuZGVmaW5lZCIsInBscFJlYWRlciIsInJlYWQiLCJwYXJzZXIiLCJidWZmZXIiLCJwb3NpdGlvbiIsImlzUExQU3RyZWFtIiwiUExQUmVhZGVyIiwicmVzdWx0IiwicmVhZFZhbHVlIiwiUmV0dXJuVmFsdWVUb2tlbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vcmV0dXJudmFsdWUtdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4xNlxuXG5pbXBvcnQgUGFyc2VyLCB7IHR5cGUgUGFyc2VyT3B0aW9ucywgdHlwZSBUb2tlblJlYWRlciB9IGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5cbmltcG9ydCB7IFJldHVyblZhbHVlVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuaW1wb3J0IHsgcmVhZE1ldGFkYXRhLCB0eXBlIE1ldGFkYXRhIH0gZnJvbSAnLi4vbWV0YWRhdGEtcGFyc2VyJztcbmltcG9ydCB7IGlzUExQU3RyZWFtLCBQTFBSZWFkZXIsIHJlYWRWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlLXBhcnNlcic7XG5pbXBvcnQgeyByZWFkQlZhckNoYXIsIHJlYWRVSW50MTZMRSwgcmVhZFVJbnQ4LCBSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5pbnRlcmZhY2UgUmV0dXJuVmFsdWVIZWFkZXIge1xuICBwYXJhbU9yZGluYWw6IG51bWJlcjtcbiAgcGFyYW1OYW1lOiBzdHJpbmc7XG4gIG1ldGFkYXRhOiBNZXRhZGF0YTtcbn1cblxuZnVuY3Rpb24gcmVhZEhlYWRlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8UmV0dXJuVmFsdWVIZWFkZXI+IHtcbiAgbGV0IHBhcmFtT3JkaW5hbDtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogcGFyYW1PcmRpbmFsIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgcGFyYW1OYW1lO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBwYXJhbU5hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGlmIChwYXJhbU5hbWUuY2hhckF0KDApID09PSAnQCcpIHtcbiAgICBwYXJhbU5hbWUgPSBwYXJhbU5hbWUuc2xpY2UoMSk7XG4gIH1cblxuICAvLyBzdGF0dXNcbiAgKHsgb2Zmc2V0IH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgbWV0YWRhdGE7XG4gICh7IG9mZnNldCwgdmFsdWU6IG1ldGFkYXRhIH0gPSByZWFkTWV0YWRhdGEoYnVmLCBvZmZzZXQsIG9wdGlvbnMpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdCh7IHBhcmFtT3JkaW5hbCwgcGFyYW1OYW1lLCBtZXRhZGF0YSB9LCBvZmZzZXQpO1xufVxuXG4vKipcbiAqIFJlYWRzIGEgYFJFVFVSTlZBTFVFYCB0b2tlbi4gVGhlIHJldHVybmVkIHZhbHVlIGNhbiBiZSBhbiBhcmJpdHJhcmlseSBsYXJnZVxuICogUExQIHZhbHVlLCBzbyB0aGUgcHJvZ3Jlc3MgaXMga2VwdCBhY3Jvc3MgY2h1bmtzLlxuICovXG5leHBvcnQgY2xhc3MgUmV0dXJuVmFsdWVUb2tlblJlYWRlciBpbXBsZW1lbnRzIFRva2VuUmVhZGVyIHtcbiAgZGVjbGFyZSBoZWFkZXI6IFJldHVyblZhbHVlSGVhZGVyIHwgdW5kZWZpbmVkO1xuXG4gIC8vIFRoZSByZWFkZXIgb2YgYSBQTFAgdmFsdWUgdGhhdCBpcyBub3QgY29tcGxldGUgeWV0LlxuICBkZWNsYXJlIHBscFJlYWRlcjogUExQUmVhZGVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaGVhZGVyID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucGxwUmVhZGVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVhZChwYXJzZXI6IFBhcnNlcik6IFJldHVyblZhbHVlVG9rZW4ge1xuICAgIGlmICh0aGlzLmhlYWRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBvZmZzZXQgfSA9IHJlYWRIZWFkZXIocGFyc2VyLmJ1ZmZlciwgcGFyc2VyLnBvc2l0aW9uLCBwYXJzZXIub3B0aW9ucyk7XG4gICAgICBwYXJzZXIucG9zaXRpb24gPSBvZmZzZXQ7XG4gICAgICB0aGlzLmhlYWRlciA9IHZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcGFyYW1PcmRpbmFsLCBwYXJhbU5hbWUsIG1ldGFkYXRhIH0gPSB0aGlzLmhlYWRlcjtcblxuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAoaXNQTFBTdHJlYW0obWV0YWRhdGEpKSB7XG4gICAgICB0aGlzLnBscFJlYWRlciA/Pz0gbmV3IFBMUFJlYWRlcihtZXRhZGF0YSk7XG4gICAgICB2YWx1ZSA9IHRoaXMucGxwUmVhZGVyLnJlYWQocGFyc2VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVzdWx0ID0gcmVhZFZhbHVlKHBhcnNlci5idWZmZXIsIHBhcnNlci5wb3NpdGlvbiwgbWV0YWRhdGEsIHBhcnNlci5vcHRpb25zKTtcbiAgICAgIHBhcnNlci5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgICB2YWx1ZSA9IHJlc3VsdC52YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJldHVyblZhbHVlVG9rZW4oeyBwYXJhbU9yZGluYWwsIHBh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