tedious 20.0.7 → 20.2.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.
- package/README.md +1 -1
- package/lib/connection.d.ts +1 -1
- package/lib/connection.js +1 -1
- package/lib/connection.js.map +1 -1
- package/lib/request.d.ts +33 -0
- package/lib/request.js +20 -1
- package/lib/request.js.map +1 -1
- package/lib/token/colinfo-token-parser.d.ts +5 -0
- package/lib/token/colinfo-token-parser.js +68 -0
- package/lib/token/colinfo-token-parser.js.map +1 -0
- package/lib/token/handler.d.ts +15 -1
- package/lib/token/handler.js +41 -2
- package/lib/token/handler.js.map +1 -1
- package/lib/token/stream-parser.d.ts +3 -1
- package/lib/token/stream-parser.js +41 -1
- package/lib/token/stream-parser.js.map +1 -1
- package/lib/token/tabname-token-parser.d.ts +5 -0
- package/lib/token/tabname-token-parser.js +51 -0
- package/lib/token/tabname-token-parser.js.map +1 -0
- package/lib/token/token.d.ts +47 -0
- package/lib/token/token.js +22 -2
- package/lib/token/token.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _token = require("./token");
|
|
8
|
+
var _colinfoTokenParser = _interopRequireDefault(require("./colinfo-token-parser"));
|
|
8
9
|
var _colmetadataTokenParser = _interopRequireDefault(require("./colmetadata-token-parser"));
|
|
9
10
|
var _doneTokenParser = require("./done-token-parser");
|
|
10
11
|
var _envChangeTokenParser = _interopRequireDefault(require("./env-change-token-parser"));
|
|
@@ -18,6 +19,7 @@ var _returnvalueTokenParser = _interopRequireDefault(require("./returnvalue-toke
|
|
|
18
19
|
var _rowTokenParser = _interopRequireDefault(require("./row-token-parser"));
|
|
19
20
|
var _nbcrowTokenParser = _interopRequireDefault(require("./nbcrow-token-parser"));
|
|
20
21
|
var _sspiTokenParser = _interopRequireDefault(require("./sspi-token-parser"));
|
|
22
|
+
var _tabnameTokenParser = _interopRequireDefault(require("./tabname-token-parser"));
|
|
21
23
|
var _helpers = require("./helpers");
|
|
22
24
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
25
|
class Parser {
|
|
@@ -115,6 +117,14 @@ class Parser {
|
|
|
115
117
|
{
|
|
116
118
|
return this.readFeatureExtAckToken();
|
|
117
119
|
}
|
|
120
|
+
case _token.TYPE.TABNAME:
|
|
121
|
+
{
|
|
122
|
+
return this.readTabNameToken();
|
|
123
|
+
}
|
|
124
|
+
case _token.TYPE.COLINFO:
|
|
125
|
+
{
|
|
126
|
+
return this.readColInfoToken();
|
|
127
|
+
}
|
|
118
128
|
default:
|
|
119
129
|
{
|
|
120
130
|
throw new Error('Unknown type: ' + type);
|
|
@@ -136,6 +146,36 @@ class Parser {
|
|
|
136
146
|
this.position = result.offset;
|
|
137
147
|
return result.value;
|
|
138
148
|
}
|
|
149
|
+
readTabNameToken() {
|
|
150
|
+
let result;
|
|
151
|
+
try {
|
|
152
|
+
result = (0, _tabnameTokenParser.default)(this.buffer, this.position, this.options);
|
|
153
|
+
} catch (err) {
|
|
154
|
+
if (err instanceof _helpers.NotEnoughDataError) {
|
|
155
|
+
return this.waitForChunk().then(() => {
|
|
156
|
+
return this.readTabNameToken();
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
throw err;
|
|
160
|
+
}
|
|
161
|
+
this.position = result.offset;
|
|
162
|
+
return result.value;
|
|
163
|
+
}
|
|
164
|
+
readColInfoToken() {
|
|
165
|
+
let result;
|
|
166
|
+
try {
|
|
167
|
+
result = (0, _colinfoTokenParser.default)(this.buffer, this.position, this.options);
|
|
168
|
+
} catch (err) {
|
|
169
|
+
if (err instanceof _helpers.NotEnoughDataError) {
|
|
170
|
+
return this.waitForChunk().then(() => {
|
|
171
|
+
return this.readColInfoToken();
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
throw err;
|
|
175
|
+
}
|
|
176
|
+
this.position = result.offset;
|
|
177
|
+
return result.value;
|
|
178
|
+
}
|
|
139
179
|
async readNbcRowToken() {
|
|
140
180
|
return await (0, _nbcrowTokenParser.default)(this);
|
|
141
181
|
}
|
|
@@ -338,4 +378,4 @@ class Parser {
|
|
|
338
378
|
}
|
|
339
379
|
var _default = exports.default = Parser;
|
|
340
380
|
module.exports = Parser;
|
|
341
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2NvbG1ldGFkYXRhVG9rZW5QYXJzZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RvbmVUb2tlblBhcnNlciIsIl9lbnZDaGFuZ2VUb2tlblBhcnNlciIsIl9pbmZvZXJyb3JUb2tlblBhcnNlciIsIl9mZWRhdXRoSW5mb1BhcnNlciIsIl9mZWF0dXJlRXh0QWNrUGFyc2VyIiwiX2xvZ2luYWNrVG9rZW5QYXJzZXIiLCJfb3JkZXJUb2tlblBhcnNlciIsIl9yZXR1cm5zdGF0dXNUb2tlblBhcnNlciIsIl9yZXR1cm52YWx1ZVRva2VuUGFyc2VyIiwiX3Jvd1Rva2VuUGFyc2VyIiwiX25iY3Jvd1Rva2VuUGFyc2VyIiwiX3NzcGlUb2tlblBhcnNlciIsIl9oZWxwZXJzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiUGFyc2VyIiwiZGVidWciLCJjb2xNZXRhZGF0YSIsIm9wdGlvbnMiLCJpdGVyYXRvciIsImJ1ZmZlciIsInBvc2l0aW9uIiwicGFyc2VUb2tlbnMiLCJpdGVyYWJsZSIsInBhcnNlciIsIndhaXRGb3JDaHVuayIsImVyciIsImxlbmd0aCIsInR5cGUiLCJyZWFkVUludDgiLCJ0b2tlbiIsInJlYWRUb2tlbiIsInVuZGVmaW5lZCIsIlRZUEUiLCJET05FIiwicmVhZERvbmVUb2tlbiIsIkRPTkVQUk9DIiwicmVhZERvbmVQcm9jVG9rZW4iLCJET05FSU5QUk9DIiwicmVhZERvbmVJblByb2NUb2tlbiIsIkVSUk9SIiwicmVhZEVycm9yVG9rZW4iLCJJTkZPIiwicmVhZEluZm9Ub2tlbiIsIkVOVkNIQU5HRSIsInJlYWRFbnZDaGFuZ2VUb2tlbiIsIkxPR0lOQUNLIiwicmVhZExvZ2luQWNrVG9rZW4iLCJSRVRVUk5TVEFUVVMiLCJyZWFkUmV0dXJuU3RhdHVzVG9rZW4iLCJPUkRFUiIsInJlYWRPcmRlclRva2VuIiwiRkVEQVVUSElORk8iLCJyZWFkRmVkQXV0aEluZm9Ub2tlbiIsIlNTUEkiLCJyZWFkU1NQSVRva2VuIiwiQ09MTUVUQURBVEEiLCJyZWFkQ29sTWV0YWRhdGFUb2tlbiIsIlJFVFVSTlZBTFVFIiwicmVhZFJldHVyblZhbHVlVG9rZW4iLCJST1ciLCJyZWFkUm93VG9rZW4iLCJOQkNST1ciLCJyZWFkTmJjUm93VG9rZW4iLCJGRUFUVVJFRVhUQUNLIiwicmVhZEZlYXR1cmVFeHRBY2tUb2tlbiIsIkVycm9yIiwicmVzdWx0IiwiZmVhdHVyZUV4dEFja1BhcnNlciIsIk5vdEVub3VnaERhdGFFcnJvciIsInRoZW4iLCJvZmZzZXQiLCJ2YWx1ZSIsIm5iY1Jvd1BhcnNlciIsInJldHVyblZhbHVlUGFyc2VyIiwiY29sTWV0YWRhdGFQYXJzZXIiLCJjb2x1bW5zIiwic3NwaVBhcnNlciIsImZlZEF1dGhJbmZvUGFyc2VyIiwib3JkZXJQYXJzZXIiLCJyZXR1cm5TdGF0dXNQYXJzZXIiLCJsb2dpbkFja1BhcnNlciIsImVudkNoYW5nZVBhcnNlciIsInJvd1BhcnNlciIsImluZm9QYXJzZXIiLCJlcnJvclBhcnNlciIsImRvbmVJblByb2NQYXJzZXIiLCJkb25lUHJvY1BhcnNlciIsImRvbmVQYXJzZXIiLCJjb25zdHJ1Y3RvciIsIlN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJjYWxsIiwiQnVmZmVyIiwiYWxsb2MiLCJuZXh0IiwiZG9uZSIsImNvbmNhdCIsInNsaWNlIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3N0cmVhbS1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERlYnVnIGZyb20gJy4uL2RlYnVnJztcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Nvbm5lY3Rpb24nO1xuXG5pbXBvcnQgeyBUWVBFLCBDb2xNZXRhZGF0YVRva2VuLCBEb25lUHJvY1Rva2VuLCBEb25lVG9rZW4sIERvbmVJblByb2NUb2tlbiwgRXJyb3JNZXNzYWdlVG9rZW4sIEluZm9NZXNzYWdlVG9rZW4sIFJvd1Rva2VuLCB0eXBlIEVudkNoYW5nZVRva2VuLCBMb2dpbkFja1Rva2VuLCBSZXR1cm5TdGF0dXNUb2tlbiwgT3JkZXJUb2tlbiwgRmVkQXV0aEluZm9Ub2tlbiwgU1NQSVRva2VuLCBSZXR1cm5WYWx1ZVRva2VuLCBOQkNSb3dUb2tlbiwgRmVhdHVyZUV4dEFja1Rva2VuLCBUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG5pbXBvcnQgY29sTWV0YWRhdGFQYXJzZXIsIHsgdHlwZSBDb2x1bW5NZXRhZGF0YSB9IGZyb20gJy4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyJztcbmltcG9ydCB7IGRvbmVQYXJzZXIsIGRvbmVJblByb2NQYXJzZXIsIGRvbmVQcm9jUGFyc2VyIH0gZnJvbSAnLi9kb25lLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgZW52Q2hhbmdlUGFyc2VyIGZyb20gJy4vZW52LWNoYW5nZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHsgZXJyb3JQYXJzZXIsIGluZm9QYXJzZXIgfSBmcm9tICcuL2luZm9lcnJvci10b2tlbi1wYXJzZXInO1xuaW1wb3J0IGZlZEF1dGhJbmZvUGFyc2VyIGZyb20gJy4vZmVkYXV0aC1pbmZvLXBhcnNlcic7XG5pbXBvcnQgZmVhdHVyZUV4dEFja1BhcnNlciBmcm9tICcuL2ZlYXR1cmUtZXh0LWFjay1wYXJzZXInO1xuaW1wb3J0IGxvZ2luQWNrUGFyc2VyIGZyb20gJy4vbG9naW5hY2stdG9rZW4tcGFyc2VyJztcbmltcG9ydCBvcmRlclBhcnNlciBmcm9tICcuL29yZGVyLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcmV0dXJuU3RhdHVzUGFyc2VyIGZyb20gJy4vcmV0dXJuc3RhdHVzLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcmV0dXJuVmFsdWVQYXJzZXIgZnJvbSAnLi9yZXR1cm52YWx1ZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHJvd1BhcnNlciBmcm9tICcuL3Jvdy10b2tlbi1wYXJzZXInO1xuaW1wb3J0IG5iY1Jvd1BhcnNlciBmcm9tICcuL25iY3Jvdy10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHNzcGlQYXJzZXIgZnJvbSAnLi9zc3BpLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgdHlwZSBQYXJzZXJPcHRpb25zID0gUGljazxJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zLCAndXNlVVRDJyB8ICdsb3dlckNhc2VHdWlkcycgfCAndGRzVmVyc2lvbicgfCAndXNlQ29sdW1uTmFtZXMnIHwgJ2NvbHVtbk5hbWVSZXBsYWNlcicgfCAnY2FtZWxDYXNlQ29sdW1ucyc+O1xuXG5jbGFzcyBQYXJzZXIge1xuICBkZWJ1ZzogRGVidWc7XG4gIGNvbE1ldGFkYXRhOiBDb2x1bW5NZXRhZGF0YVtdO1xuICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuXG4gIGl0ZXJhdG9yOiBBc3luY0l0ZXJhdG9yPEJ1ZmZlciwgYW55LCB1bmRlZmluZWQ+IHwgSXRlcmF0b3I8QnVmZmVyLCBhbnksIHVuZGVmaW5lZD47XG4gIGJ1ZmZlcjogQnVmZmVyO1xuICBwb3NpdGlvbjogbnVtYmVyO1xuXG4gIHN0YXRpYyBhc3luYyAqcGFyc2VUb2tlbnMoaXRlcmFibGU6IEFzeW5jSXRlcmFibGU8QnVmZmVyPiB8IEl0ZXJhYmxlPEJ1ZmZlcj4sIGRlYnVnOiBEZWJ1Zywgb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY29sTWV0YWRhdGE6IENvbHVtbk1ldGFkYXRhW10gPSBbXSkge1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIoaXRlcmFibGUsIGRlYnVnLCBvcHRpb25zKTtcbiAgICBwYXJzZXIuY29sTWV0YWRhdGEgPSBjb2xNZXRhZGF0YTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBwYXJzZXIud2FpdEZvckNodW5rKCk7XG4gICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgaWYgKHBhcnNlci5wb3NpdGlvbiA9PT0gcGFyc2VyLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChwYXJzZXIuYnVmZmVyLmxlbmd0aCA+PSBwYXJzZXIucG9zaXRpb24gKyAxKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBwYXJzZXIuYnVmZmVyLnJlYWRVSW50OChwYXJzZXIucG9zaXRpb24pO1xuICAgICAgICBwYXJzZXIucG9zaXRpb24gKz0gMTtcblxuICAgICAgICBjb25zdCB0b2tlbiA9IHBhcnNlci5yZWFkVG9rZW4odHlwZSk7XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZWFkVG9rZW4odHlwZTogbnVtYmVyKTogVG9rZW4gfCB1bmRlZmluZWQgfCBQcm9taXNlPFRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFRZUEUuRE9ORToge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5ET05FUFJPQzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZVByb2NUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuRE9ORUlOUFJPQzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZUluUHJvY1Rva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5FUlJPUjoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRXJyb3JUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuSU5GTzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkSW5mb1Rva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5FTlZDSEFOR0U6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZEVudkNoYW5nZVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5MT0dJTkFDSzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkTG9naW5BY2tUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuUkVUVVJOU1RBVFVTOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRSZXR1cm5TdGF0dXNUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuT1JERVI6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZE9yZGVyVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLkZFREFVVEhJTkZPOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRGZWRBdXRoSW5mb1Rva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5TU1BJOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRTU1BJVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLkNPTE1FVEFEQVRBOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRDb2xNZXRhZGF0YVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5SRVRVUk5WQUxVRToge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkUmV0dXJuVmFsdWVUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuUk9XOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRSb3dUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuTkJDUk9XOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWROYmNSb3dUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuRkVBVFVSRUVYVEFDSzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRmVhdHVyZUV4dEFja1Rva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHR5cGU6ICcgKyB0eXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZWFkRmVhdHVyZUV4dEFja1Rva2VuKCk6IEZlYXR1cmVFeHRBY2tUb2tlbiB8IFByb21pc2U8RmVhdHVyZUV4dEFja1Rva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBmZWF0dXJlRXh0QWNrUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRGZWF0dXJlRXh0QWNrVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgYXN5bmMgcmVhZE5iY1Jvd1Rva2VuKCk6IFByb21pc2U8TkJDUm93VG9rZW4+IHtcbiAgICByZXR1cm4gYXdhaXQgbmJjUm93UGFyc2VyKHRoaXMpO1xuICB9XG5cbiAgYXN5bmMgcmVhZFJldHVyblZhbHVlVG9rZW4oKTogUHJvbWlzZTxSZXR1cm5WYWx1ZVRva2VuPiB7XG4gICAgcmV0dXJuIGF3YWl0IHJldHVyblZhbHVlUGFyc2VyKHRoaXMpO1xuICB9XG5cbiAgYXN5bmMgcmVhZENvbE1ldGFkYXRhVG9rZW4oKTogUHJvbWlzZTxDb2xNZXRhZGF0YVRva2VuPiB7XG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCBjb2xNZXRhZGF0YVBhcnNlcih0aGlzKTtcbiAgICB0aGlzLmNvbE1ldGFkYXRhID0gdG9rZW4uY29sdW1ucztcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICByZWFkU1NQSVRva2VuKCk6IFNTUElUb2tlbiB8IFByb21pc2U8U1NQSVRva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBzc3BpUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRTU1BJVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZEZlZEF1dGhJbmZvVG9rZW4oKTogRmVkQXV0aEluZm9Ub2tlbiB8IFByb21pc2U8RmVkQXV0aEluZm9Ub2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZmVkQXV0aEluZm9QYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZEZlZEF1dGhJbmZvVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZE9yZGVyVG9rZW4oKTogT3JkZXJUb2tlbiB8IFByb21pc2U8T3JkZXJUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gb3JkZXJQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZE9yZGVyVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZFJldHVyblN0YXR1c1Rva2VuKCk6IFJldHVyblN0YXR1c1Rva2VuIHwgUHJvbWlzZTxSZXR1cm5TdGF0dXNUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gcmV0dXJuU3RhdHVzUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRSZXR1cm5TdGF0dXNUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICByZWFkTG9naW5BY2tUb2tlbigpOiBMb2dpbkFja1Rva2VuIHwgUHJvbWlzZTxMb2dpbkFja1Rva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBsb2dpbkFja1BhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkTG9naW5BY2tUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICByZWFkRW52Q2hhbmdlVG9rZW4oKTogRW52Q2hhbmdlVG9rZW4gfCB1bmRlZmluZWQgfCBQcm9taXNlPEVudkNoYW5nZVRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBlbnZDaGFuZ2VQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZEVudkNoYW5nZVRva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIHJlYWRSb3dUb2tlbigpOiBSb3dUb2tlbiB8IFByb21pc2U8Um93VG9rZW4+IHtcbiAgICByZXR1cm4gcm93UGFyc2VyKHRoaXMpO1xuICB9XG5cbiAgcmVhZEluZm9Ub2tlbigpOiBJbmZvTWVzc2FnZVRva2VuIHwgUHJvbWlzZTxJbmZvTWVzc2FnZVRva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBpbmZvUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRJbmZvVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZEVycm9yVG9rZW4oKTogRXJyb3JNZXNzYWdlVG9rZW4gfCBQcm9taXNlPEVycm9yTWVzc2FnZVRva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBlcnJvclBhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkRXJyb3JUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICByZWFkRG9uZUluUHJvY1Rva2VuKCk6IERvbmVJblByb2NUb2tlbiB8IFByb21pc2U8RG9uZUluUHJvY1Rva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBkb25lSW5Qcm9jUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWREb25lSW5Qcm9jVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZERvbmVQcm9jVG9rZW4oKTogRG9uZVByb2NUb2tlbiB8IFByb21pc2U8RG9uZVByb2NUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZG9uZVByb2NQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZERvbmVQcm9jVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZERvbmVUb2tlbigpOiBEb25lVG9rZW4gfCBQcm9taXNlPERvbmVUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZG9uZVBhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZVRva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGl0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPEJ1ZmZlcj4gfCBJdGVyYWJsZTxCdWZmZXI+LCBkZWJ1ZzogRGVidWcsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpIHtcbiAgICB0aGlzLmRlYnVnID0gZGVidWc7XG4gICAgdGhpcy5jb2xNZXRhZGF0YSA9IFtdO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLml0ZXJhdG9yID0gKChpdGVyYWJsZSBhcyBBc3luY0l0ZXJhYmxlPEJ1ZmZlcj4pW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSB8fCAoaXRlcmFibGUgYXMgSXRlcmFibGU8QnVmZmVyPilbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChpdGVyYWJsZSk7XG5cbiAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygwKTtcbiAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JDaHVuaygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLml0ZXJhdG9yLm5leHQoKTtcbiAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlbmQgb2YgZGF0YScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSB0aGlzLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYnVmZmVyID0gcmVzdWx0LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoW3RoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zaXRpb24pLCByZXN1bHQudmFsdWVdKTtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IFBhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsdUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxxQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUsscUJBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGtCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxvQkFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFB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
|
|
381
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2NvbGluZm9Ub2tlblBhcnNlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29sbWV0YWRhdGFUb2tlblBhcnNlciIsIl9kb25lVG9rZW5QYXJzZXIiLCJfZW52Q2hhbmdlVG9rZW5QYXJzZXIiLCJfaW5mb2Vycm9yVG9rZW5QYXJzZXIiLCJfZmVkYXV0aEluZm9QYXJzZXIiLCJfZmVhdHVyZUV4dEFja1BhcnNlciIsIl9sb2dpbmFja1Rva2VuUGFyc2VyIiwiX29yZGVyVG9rZW5QYXJzZXIiLCJfcmV0dXJuc3RhdHVzVG9rZW5QYXJzZXIiLCJfcmV0dXJudmFsdWVUb2tlblBhcnNlciIsIl9yb3dUb2tlblBhcnNlciIsIl9uYmNyb3dUb2tlblBhcnNlciIsIl9zc3BpVG9rZW5QYXJzZXIiLCJfdGFibmFtZVRva2VuUGFyc2VyIiwiX2hlbHBlcnMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJQYXJzZXIiLCJkZWJ1ZyIsImNvbE1ldGFkYXRhIiwib3B0aW9ucyIsIml0ZXJhdG9yIiwiYnVmZmVyIiwicG9zaXRpb24iLCJwYXJzZVRva2VucyIsIml0ZXJhYmxlIiwicGFyc2VyIiwid2FpdEZvckNodW5rIiwiZXJyIiwibGVuZ3RoIiwidHlwZSIsInJlYWRVSW50OCIsInRva2VuIiwicmVhZFRva2VuIiwidW5kZWZpbmVkIiwiVFlQRSIsIkRPTkUiLCJyZWFkRG9uZVRva2VuIiwiRE9ORVBST0MiLCJyZWFkRG9uZVByb2NUb2tlbiIsIkRPTkVJTlBST0MiLCJyZWFkRG9uZUluUHJvY1Rva2VuIiwiRVJST1IiLCJyZWFkRXJyb3JUb2tlbiIsIklORk8iLCJyZWFkSW5mb1Rva2VuIiwiRU5WQ0hBTkdFIiwicmVhZEVudkNoYW5nZVRva2VuIiwiTE9HSU5BQ0siLCJyZWFkTG9naW5BY2tUb2tlbiIsIlJFVFVSTlNUQVRVUyIsInJlYWRSZXR1cm5TdGF0dXNUb2tlbiIsIk9SREVSIiwicmVhZE9yZGVyVG9rZW4iLCJGRURBVVRISU5GTyIsInJlYWRGZWRBdXRoSW5mb1Rva2VuIiwiU1NQSSIsInJlYWRTU1BJVG9rZW4iLCJDT0xNRVRBREFUQSIsInJlYWRDb2xNZXRhZGF0YVRva2VuIiwiUkVUVVJOVkFMVUUiLCJyZWFkUmV0dXJuVmFsdWVUb2tlbiIsIlJPVyIsInJlYWRSb3dUb2tlbiIsIk5CQ1JPVyIsInJlYWROYmNSb3dUb2tlbiIsIkZFQVRVUkVFWFRBQ0siLCJyZWFkRmVhdHVyZUV4dEFja1Rva2VuIiwiVEFCTkFNRSIsInJlYWRUYWJOYW1lVG9rZW4iLCJDT0xJTkZPIiwicmVhZENvbEluZm9Ub2tlbiIsIkVycm9yIiwicmVzdWx0IiwiZmVhdHVyZUV4dEFja1BhcnNlciIsIk5vdEVub3VnaERhdGFFcnJvciIsInRoZW4iLCJvZmZzZXQiLCJ2YWx1ZSIsInRhYk5hbWVQYXJzZXIiLCJjb2xJbmZvUGFyc2VyIiwibmJjUm93UGFyc2VyIiwicmV0dXJuVmFsdWVQYXJzZXIiLCJjb2xNZXRhZGF0YVBhcnNlciIsImNvbHVtbnMiLCJzc3BpUGFyc2VyIiwiZmVkQXV0aEluZm9QYXJzZXIiLCJvcmRlclBhcnNlciIsInJldHVyblN0YXR1c1BhcnNlciIsImxvZ2luQWNrUGFyc2VyIiwiZW52Q2hhbmdlUGFyc2VyIiwicm93UGFyc2VyIiwiaW5mb1BhcnNlciIsImVycm9yUGFyc2VyIiwiZG9uZUluUHJvY1BhcnNlciIsImRvbmVQcm9jUGFyc2VyIiwiZG9uZVBhcnNlciIsImNvbnN0cnVjdG9yIiwiU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsImNhbGwiLCJCdWZmZXIiLCJhbGxvYyIsIm5leHQiLCJkb25lIiwiY29uY2F0Iiwic2xpY2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vc3RyZWFtLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGVidWcgZnJvbSAnLi4vZGVidWcnO1xuaW1wb3J0IHsgdHlwZSBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vY29ubmVjdGlvbic7XG5cbmltcG9ydCB7IFRZUEUsIENvbEluZm9Ub2tlbiwgQ29sTWV0YWRhdGFUb2tlbiwgRG9uZVByb2NUb2tlbiwgRG9uZVRva2VuLCBEb25lSW5Qcm9jVG9rZW4sIEVycm9yTWVzc2FnZVRva2VuLCBJbmZvTWVzc2FnZVRva2VuLCBSb3dUb2tlbiwgdHlwZSBFbnZDaGFuZ2VUb2tlbiwgTG9naW5BY2tUb2tlbiwgUmV0dXJuU3RhdHVzVG9rZW4sIE9yZGVyVG9rZW4sIEZlZEF1dGhJbmZvVG9rZW4sIFNTUElUb2tlbiwgUmV0dXJuVmFsdWVUb2tlbiwgTkJDUm93VG9rZW4sIEZlYXR1cmVFeHRBY2tUb2tlbiwgVGFiTmFtZVRva2VuLCBUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG5pbXBvcnQgY29sSW5mb1BhcnNlciBmcm9tICcuL2NvbGluZm8tdG9rZW4tcGFyc2VyJztcbmltcG9ydCBjb2xNZXRhZGF0YVBhcnNlciwgeyB0eXBlIENvbHVtbk1ldGFkYXRhIH0gZnJvbSAnLi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHsgZG9uZVBhcnNlciwgZG9uZUluUHJvY1BhcnNlciwgZG9uZVByb2NQYXJzZXIgfSBmcm9tICcuL2RvbmUtdG9rZW4tcGFyc2VyJztcbmltcG9ydCBlbnZDaGFuZ2VQYXJzZXIgZnJvbSAnLi9lbnYtY2hhbmdlLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgeyBlcnJvclBhcnNlciwgaW5mb1BhcnNlciB9IGZyb20gJy4vaW5mb2Vycm9yLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgZmVkQXV0aEluZm9QYXJzZXIgZnJvbSAnLi9mZWRhdXRoLWluZm8tcGFyc2VyJztcbmltcG9ydCBmZWF0dXJlRXh0QWNrUGFyc2VyIGZyb20gJy4vZmVhdHVyZS1leHQtYWNrLXBhcnNlcic7XG5pbXBvcnQgbG9naW5BY2tQYXJzZXIgZnJvbSAnLi9sb2dpbmFjay10b2tlbi1wYXJzZXInO1xuaW1wb3J0IG9yZGVyUGFyc2VyIGZyb20gJy4vb3JkZXItdG9rZW4tcGFyc2VyJztcbmltcG9ydCByZXR1cm5TdGF0dXNQYXJzZXIgZnJvbSAnLi9yZXR1cm5zdGF0dXMtdG9rZW4tcGFyc2VyJztcbmltcG9ydCByZXR1cm5WYWx1ZVBhcnNlciBmcm9tICcuL3JldHVybnZhbHVlLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcm93UGFyc2VyIGZyb20gJy4vcm93LXRva2VuLXBhcnNlcic7XG5pbXBvcnQgbmJjUm93UGFyc2VyIGZyb20gJy4vbmJjcm93LXRva2VuLXBhcnNlcic7XG5pbXBvcnQgc3NwaVBhcnNlciBmcm9tICcuL3NzcGktdG9rZW4tcGFyc2VyJztcbmltcG9ydCB0YWJOYW1lUGFyc2VyIGZyb20gJy4vdGFibmFtZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuZXhwb3J0IHR5cGUgUGFyc2VyT3B0aW9ucyA9IFBpY2s8SW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucywgJ3VzZVVUQycgfCAnbG93ZXJDYXNlR3VpZHMnIHwgJ3Rkc1ZlcnNpb24nIHwgJ3VzZUNvbHVtbk5hbWVzJyB8ICdjb2x1bW5OYW1lUmVwbGFjZXInIHwgJ2NhbWVsQ2FzZUNvbHVtbnMnPjtcblxuY2xhc3MgUGFyc2VyIHtcbiAgZGVidWc6IERlYnVnO1xuICBjb2xNZXRhZGF0YTogQ29sdW1uTWV0YWRhdGFbXTtcbiAgb3B0aW9uczogUGFyc2VyT3B0aW9ucztcblxuICBpdGVyYXRvcjogQXN5bmNJdGVyYXRvcjxCdWZmZXIsIGFueSwgdW5kZWZpbmVkPiB8IEl0ZXJhdG9yPEJ1ZmZlciwgYW55LCB1bmRlZmluZWQ+O1xuICBidWZmZXI6IEJ1ZmZlcjtcbiAgcG9zaXRpb246IG51bWJlcjtcblxuICBzdGF0aWMgYXN5bmMgKnBhcnNlVG9rZW5zKGl0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPEJ1ZmZlcj4gfCBJdGVyYWJsZTxCdWZmZXI+LCBkZWJ1ZzogRGVidWcsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNvbE1ldGFkYXRhOiBDb2x1bW5NZXRhZGF0YVtdID0gW10pIHtcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKGl0ZXJhYmxlLCBkZWJ1Zywgb3B0aW9ucyk7XG4gICAgcGFyc2VyLmNvbE1ldGFkYXRhID0gY29sTWV0YWRhdGE7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgcGFyc2VyLndhaXRGb3JDaHVuaygpO1xuICAgICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICAgIGlmIChwYXJzZXIucG9zaXRpb24gPT09IHBhcnNlci5idWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAocGFyc2VyLmJ1ZmZlci5sZW5ndGggPj0gcGFyc2VyLnBvc2l0aW9uICsgMSkge1xuICAgICAgICBjb25zdCB0eXBlID0gcGFyc2VyLmJ1ZmZlci5yZWFkVUludDgocGFyc2VyLnBvc2l0aW9uKTtcbiAgICAgICAgcGFyc2VyLnBvc2l0aW9uICs9IDE7XG5cbiAgICAgICAgY29uc3QgdG9rZW4gPSBwYXJzZXIucmVhZFRva2VuKHR5cGUpO1xuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHlpZWxkIHRva2VuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVhZFRva2VuKHR5cGU6IG51bWJlcik6IFRva2VuIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxUb2tlbiB8IHVuZGVmaW5lZD4ge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBUWVBFLkRPTkU6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZERvbmVUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuRE9ORVBST0M6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZERvbmVQcm9jVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLkRPTkVJTlBST0M6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZERvbmVJblByb2NUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuRVJST1I6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZEVycm9yVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLklORk86IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZEluZm9Ub2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuRU5WQ0hBTkdFOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRFbnZDaGFuZ2VUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuTE9HSU5BQ0s6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZExvZ2luQWNrVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLlJFVFVSTlNUQVRVUzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkUmV0dXJuU3RhdHVzVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLk9SREVSOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRPcmRlclRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5GRURBVVRISU5GTzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRmVkQXV0aEluZm9Ub2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuU1NQSToge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkU1NQSVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5DT0xNRVRBREFUQToge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkQ29sTWV0YWRhdGFUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuUkVUVVJOVkFMVUU6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFJldHVyblZhbHVlVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLlJPVzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkUm93VG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLk5CQ1JPVzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkTmJjUm93VG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLkZFQVRVUkVFWFRBQ0s6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZEZlYXR1cmVFeHRBY2tUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuVEFCTkFNRToge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkVGFiTmFtZVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5DT0xJTkZPOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRDb2xJbmZvVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gdHlwZTogJyArIHR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlYWRGZWF0dXJlRXh0QWNrVG9rZW4oKTogRmVhdHVyZUV4dEFja1Rva2VuIHwgUHJvbWlzZTxGZWF0dXJlRXh0QWNrVG9rZW4+IHtcbiAgICBsZXQgcmVzdWx0O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGZlYXR1cmVFeHRBY2tQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZEZlYXR1cmVFeHRBY2tUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICByZWFkVGFiTmFtZVRva2VuKCk6IFRhYk5hbWVUb2tlbiB8IFByb21pc2U8VGFiTmFtZVRva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSB0YWJOYW1lUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRUYWJOYW1lVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZENvbEluZm9Ub2tlbigpOiBDb2xJbmZvVG9rZW4gfCBQcm9taXNlPENvbEluZm9Ub2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gY29sSW5mb1BhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkQ29sSW5mb1Rva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIGFzeW5jIHJlYWROYmNSb3dUb2tlbigpOiBQcm9taXNlPE5CQ1Jvd1Rva2VuPiB7XG4gICAgcmV0dXJuIGF3YWl0IG5iY1Jvd1BhcnNlcih0aGlzKTtcbiAgfVxuXG4gIGFzeW5jIHJlYWRSZXR1cm5WYWx1ZVRva2VuKCk6IFByb21pc2U8UmV0dXJuVmFsdWVUb2tlbj4ge1xuICAgIHJldHVybiBhd2FpdCByZXR1cm5WYWx1ZVBhcnNlcih0aGlzKTtcbiAgfVxuXG4gIGFzeW5jIHJlYWRDb2xNZXRhZGF0YVRva2VuKCk6IFByb21pc2U8Q29sTWV0YWRhdGFUb2tlbj4ge1xuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgY29sTWV0YWRhdGFQYXJzZXIodGhpcyk7XG4gICAgdGhpcy5jb2xNZXRhZGF0YSA9IHRva2VuLmNvbHVtbnM7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgcmVhZFNTUElUb2tlbigpOiBTU1BJVG9rZW4gfCBQcm9taXNlPFNTUElUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gc3NwaVBhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU1NQSVRva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIHJlYWRGZWRBdXRoSW5mb1Rva2VuKCk6IEZlZEF1dGhJbmZvVG9rZW4gfCBQcm9taXNlPEZlZEF1dGhJbmZvVG9rZW4+IHtcbiAgICBsZXQgcmVzdWx0O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGZlZEF1dGhJbmZvUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRGZWRBdXRoSW5mb1Rva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIHJlYWRPcmRlclRva2VuKCk6IE9yZGVyVG9rZW4gfCBQcm9taXNlPE9yZGVyVG9rZW4+IHtcbiAgICBsZXQgcmVzdWx0O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IG9yZGVyUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRPcmRlclRva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIHJlYWRSZXR1cm5TdGF0dXNUb2tlbigpOiBSZXR1cm5TdGF0dXNUb2tlbiB8IFByb21pc2U8UmV0dXJuU3RhdHVzVG9rZW4+IHtcbiAgICBsZXQgcmVzdWx0O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IHJldHVyblN0YXR1c1BhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkUmV0dXJuU3RhdHVzVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZExvZ2luQWNrVG9rZW4oKTogTG9naW5BY2tUb2tlbiB8IFByb21pc2U8TG9naW5BY2tUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gbG9naW5BY2tQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZExvZ2luQWNrVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZEVudkNoYW5nZVRva2VuKCk6IEVudkNoYW5nZVRva2VuIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxFbnZDaGFuZ2VUb2tlbiB8IHVuZGVmaW5lZD4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZW52Q2hhbmdlUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRFbnZDaGFuZ2VUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICByZWFkUm93VG9rZW4oKTogUm93VG9rZW4gfCBQcm9taXNlPFJvd1Rva2VuPiB7XG4gICAgcmV0dXJuIHJvd1BhcnNlcih0aGlzKTtcbiAgfVxuXG4gIHJlYWRJbmZvVG9rZW4oKTogSW5mb01lc3NhZ2VUb2tlbiB8IFByb21pc2U8SW5mb01lc3NhZ2VUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gaW5mb1BhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkSW5mb1Rva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIHJlYWRFcnJvclRva2VuKCk6IEVycm9yTWVzc2FnZVRva2VuIHwgUHJvbWlzZTxFcnJvck1lc3NhZ2VUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZXJyb3JQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZEVycm9yVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZERvbmVJblByb2NUb2tlbigpOiBEb25lSW5Qcm9jVG9rZW4gfCBQcm9taXNlPERvbmVJblByb2NUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZG9uZUluUHJvY1BhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZUluUHJvY1Rva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIHJlYWREb25lUHJvY1Rva2VuKCk6IERvbmVQcm9jVG9rZW4gfCBQcm9taXNlPERvbmVQcm9jVG9rZW4+IHtcbiAgICBsZXQgcmVzdWx0O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGRvbmVQcm9jUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWREb25lUHJvY1Rva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIHJlYWREb25lVG9rZW4oKTogRG9uZVRva2VuIHwgUHJvbWlzZTxEb25lVG9rZW4+IHtcbiAgICBsZXQgcmVzdWx0O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGRvbmVQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZERvbmVUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihpdGVyYWJsZTogQXN5bmNJdGVyYWJsZTxCdWZmZXI+IHwgSXRlcmFibGU8QnVmZmVyPiwgZGVidWc6IERlYnVnLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKSB7XG4gICAgdGhpcy5kZWJ1ZyA9IGRlYnVnO1xuICAgIHRoaXMuY29sTWV0YWRhdGEgPSBbXTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgdGhpcy5pdGVyYXRvciA9ICgoaXRlcmFibGUgYXMgQXN5bmNJdGVyYWJsZTxCdWZmZXI+KVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gfHwgKGl0ZXJhYmxlIGFzIEl0ZXJhYmxlPEJ1ZmZlcj4pW1N5bWJvbC5pdGVyYXRvcl0pLmNhbGwoaXRlcmFibGUpO1xuXG4gICAgdGhpcy5idWZmZXIgPSBCdWZmZXIuYWxsb2MoMCk7XG4gICAgdGhpcy5wb3NpdGlvbiA9IDA7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yQ2h1bmsoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5pdGVyYXRvci5uZXh0KCk7XG4gICAgaWYgKHJlc3VsdC5kb25lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgZW5kIG9mIGRhdGEnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gdGhpcy5idWZmZXIubGVuZ3RoKSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IHJlc3VsdC52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5idWZmZXIgPSBCdWZmZXIuY29uY2F0KFt0aGlzLmJ1ZmZlci5zbGljZSh0aGlzLnBvc2l0aW9uKSwgcmVzdWx0LnZhbHVlXSk7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IDA7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyx1QkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLHFCQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxxQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sa0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLG9CQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxvQkFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsaUJBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFXLHdCQUFBLEdBQUFULHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBWSx1QkFBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWEsZUFBQSxHQUFBWCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWMsa0JBQUEsR0FBQVosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFlLGdCQUFBLEdBQUFiLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBZ0IsbUJBQUEsR0FBQWQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFpQixRQUFBLEdBQUFqQixPQUFBO0FBQStDLFNBQUFFLHVCQUFBZ0IsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-parser.js","names":["_token","require","_colmetadataTokenParser","_interopRequireDefault","_doneTokenParser","_envChangeTokenParser","_infoerrorTokenParser","_fedauthInfoParser","_featureExtAckParser","_loginackTokenParser","_orderTokenParser","_returnstatusTokenParser","_returnvalueTokenParser","_rowTokenParser","_nbcrowTokenParser","_sspiTokenParser","_helpers","e","__esModule","default","Parser","debug","colMetadata","options","iterator","buffer","position","parseTokens","iterable","parser","waitForChunk","err","length","type","readUInt8","token","readToken","undefined","TYPE","DONE","readDoneToken","DONEPROC","readDoneProcToken","DONEINPROC","readDoneInProcToken","ERROR","readErrorToken","INFO","readInfoToken","ENVCHANGE","readEnvChangeToken","LOGINACK","readLoginAckToken","RETURNSTATUS","readReturnStatusToken","ORDER","readOrderToken","FEDAUTHINFO","readFedAuthInfoToken","SSPI","readSSPIToken","COLMETADATA","readColMetadataToken","RETURNVALUE","readReturnValueToken","ROW","readRowToken","NBCROW","readNbcRowToken","FEATUREEXTACK","readFeatureExtAckToken","Error","result","featureExtAckParser","NotEnoughDataError","then","offset","value","nbcRowParser","returnValueParser","colMetadataParser","columns","sspiParser","fedAuthInfoParser","orderParser","returnStatusParser","loginAckParser","envChangeParser","rowParser","infoParser","errorParser","doneInProcParser","doneProcParser","doneParser","constructor","Symbol","asyncIterator","call","Buffer","alloc","next","done","concat","slice","_default","exports","module"],"sources":["../../src/token/stream-parser.ts"],"sourcesContent":["import Debug from '../debug';\nimport { type InternalConnectionOptions } from '../connection';\n\nimport { TYPE, ColMetadataToken, DoneProcToken, DoneToken, DoneInProcToken, ErrorMessageToken, InfoMessageToken, RowToken, type EnvChangeToken, LoginAckToken, ReturnStatusToken, OrderToken, FedAuthInfoToken, SSPIToken, ReturnValueToken, NBCRowToken, FeatureExtAckToken, Token } from './token';\n\nimport colMetadataParser, { type ColumnMetadata } from './colmetadata-token-parser';\nimport { doneParser, doneInProcParser, doneProcParser } from './done-token-parser';\nimport envChangeParser from './env-change-token-parser';\nimport { errorParser, infoParser } from './infoerror-token-parser';\nimport fedAuthInfoParser from './fedauth-info-parser';\nimport featureExtAckParser from './feature-ext-ack-parser';\nimport loginAckParser from './loginack-token-parser';\nimport orderParser from './order-token-parser';\nimport returnStatusParser from './returnstatus-token-parser';\nimport returnValueParser from './returnvalue-token-parser';\nimport rowParser from './row-token-parser';\nimport nbcRowParser from './nbcrow-token-parser';\nimport sspiParser from './sspi-token-parser';\nimport { NotEnoughDataError } from './helpers';\n\nexport type ParserOptions = Pick<InternalConnectionOptions, 'useUTC' | 'lowerCaseGuids' | 'tdsVersion' | 'useColumnNames' | 'columnNameReplacer' | 'camelCaseColumns'>;\n\nclass Parser {\n debug: Debug;\n colMetadata: ColumnMetadata[];\n options: ParserOptions;\n\n iterator: AsyncIterator<Buffer, any, undefined> | Iterator<Buffer, any, undefined>;\n buffer: Buffer;\n position: number;\n\n static async *parseTokens(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions, colMetadata: ColumnMetadata[] = []) {\n const parser = new Parser(iterable, debug, options);\n parser.colMetadata = colMetadata;\n\n while (true) {\n try {\n await parser.waitForChunk();\n } catch (err: unknown) {\n if (parser.position === parser.buffer.length) {\n return;\n }\n\n throw err;\n }\n\n while (parser.buffer.length >= parser.position + 1) {\n const type = parser.buffer.readUInt8(parser.position);\n parser.position += 1;\n\n const token = parser.readToken(type);\n if (token !== undefined) {\n yield token;\n }\n }\n }\n }\n\n readToken(type: number): Token | undefined | Promise<Token | undefined> {\n switch (type) {\n case TYPE.DONE: {\n return this.readDoneToken();\n }\n\n case TYPE.DONEPROC: {\n return this.readDoneProcToken();\n }\n\n case TYPE.DONEINPROC: {\n return this.readDoneInProcToken();\n }\n\n case TYPE.ERROR: {\n return this.readErrorToken();\n }\n\n case TYPE.INFO: {\n return this.readInfoToken();\n }\n\n case TYPE.ENVCHANGE: {\n return this.readEnvChangeToken();\n }\n\n case TYPE.LOGINACK: {\n return this.readLoginAckToken();\n }\n\n case TYPE.RETURNSTATUS: {\n return this.readReturnStatusToken();\n }\n\n case TYPE.ORDER: {\n return this.readOrderToken();\n }\n\n case TYPE.FEDAUTHINFO: {\n return this.readFedAuthInfoToken();\n }\n\n case TYPE.SSPI: {\n return this.readSSPIToken();\n }\n\n case TYPE.COLMETADATA: {\n return this.readColMetadataToken();\n }\n\n case TYPE.RETURNVALUE: {\n return this.readReturnValueToken();\n }\n\n case TYPE.ROW: {\n return this.readRowToken();\n }\n\n case TYPE.NBCROW: {\n return this.readNbcRowToken();\n }\n\n case TYPE.FEATUREEXTACK: {\n return this.readFeatureExtAckToken();\n }\n\n default: {\n throw new Error('Unknown type: ' + type);\n }\n }\n }\n\n readFeatureExtAckToken(): FeatureExtAckToken | Promise<FeatureExtAckToken> {\n let result;\n\n try {\n result = featureExtAckParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readFeatureExtAckToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n async readNbcRowToken(): Promise<NBCRowToken> {\n return await nbcRowParser(this);\n }\n\n async readReturnValueToken(): Promise<ReturnValueToken> {\n return await returnValueParser(this);\n }\n\n async readColMetadataToken(): Promise<ColMetadataToken> {\n const token = await colMetadataParser(this);\n this.colMetadata = token.columns;\n return token;\n }\n\n readSSPIToken(): SSPIToken | Promise<SSPIToken> {\n let result;\n\n try {\n result = sspiParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readSSPIToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readFedAuthInfoToken(): FedAuthInfoToken | Promise<FedAuthInfoToken> {\n let result;\n\n try {\n result = fedAuthInfoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readFedAuthInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readOrderToken(): OrderToken | Promise<OrderToken> {\n let result;\n\n try {\n result = orderParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readOrderToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readReturnStatusToken(): ReturnStatusToken | Promise<ReturnStatusToken> {\n let result;\n\n try {\n result = returnStatusParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readReturnStatusToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readLoginAckToken(): LoginAckToken | Promise<LoginAckToken> {\n let result;\n\n try {\n result = loginAckParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readLoginAckToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readEnvChangeToken(): EnvChangeToken | undefined | Promise<EnvChangeToken | undefined> {\n let result;\n\n try {\n result = envChangeParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readEnvChangeToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readRowToken(): RowToken | Promise<RowToken> {\n return rowParser(this);\n }\n\n readInfoToken(): InfoMessageToken | Promise<InfoMessageToken> {\n let result;\n\n try {\n result = infoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readErrorToken(): ErrorMessageToken | Promise<ErrorMessageToken> {\n let result;\n\n try {\n result = errorParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readErrorToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneInProcToken(): DoneInProcToken | Promise<DoneInProcToken> {\n let result;\n\n try {\n result = doneInProcParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneInProcToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneProcToken(): DoneProcToken | Promise<DoneProcToken> {\n let result;\n\n try {\n result = doneProcParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneProcToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneToken(): DoneToken | Promise<DoneToken> {\n let result;\n\n try {\n result = doneParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n constructor(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions) {\n this.debug = debug;\n this.colMetadata = [];\n this.options = options;\n\n this.iterator = ((iterable as AsyncIterable<Buffer>)[Symbol.asyncIterator] || (iterable as Iterable<Buffer>)[Symbol.iterator]).call(iterable);\n\n this.buffer = Buffer.alloc(0);\n this.position = 0;\n }\n\n async waitForChunk() {\n const result = await this.iterator.next();\n if (result.done) {\n throw new Error('unexpected end of data');\n }\n\n if (this.position === this.buffer.length) {\n this.buffer = result.value;\n } else {\n this.buffer = Buffer.concat([this.buffer.slice(this.position), result.value]);\n }\n\n this.position = 0;\n }\n}\n\nexport default Parser;\nmodule.exports = Parser;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"stream-parser.js","names":["_token","require","_colinfoTokenParser","_interopRequireDefault","_colmetadataTokenParser","_doneTokenParser","_envChangeTokenParser","_infoerrorTokenParser","_fedauthInfoParser","_featureExtAckParser","_loginackTokenParser","_orderTokenParser","_returnstatusTokenParser","_returnvalueTokenParser","_rowTokenParser","_nbcrowTokenParser","_sspiTokenParser","_tabnameTokenParser","_helpers","e","__esModule","default","Parser","debug","colMetadata","options","iterator","buffer","position","parseTokens","iterable","parser","waitForChunk","err","length","type","readUInt8","token","readToken","undefined","TYPE","DONE","readDoneToken","DONEPROC","readDoneProcToken","DONEINPROC","readDoneInProcToken","ERROR","readErrorToken","INFO","readInfoToken","ENVCHANGE","readEnvChangeToken","LOGINACK","readLoginAckToken","RETURNSTATUS","readReturnStatusToken","ORDER","readOrderToken","FEDAUTHINFO","readFedAuthInfoToken","SSPI","readSSPIToken","COLMETADATA","readColMetadataToken","RETURNVALUE","readReturnValueToken","ROW","readRowToken","NBCROW","readNbcRowToken","FEATUREEXTACK","readFeatureExtAckToken","TABNAME","readTabNameToken","COLINFO","readColInfoToken","Error","result","featureExtAckParser","NotEnoughDataError","then","offset","value","tabNameParser","colInfoParser","nbcRowParser","returnValueParser","colMetadataParser","columns","sspiParser","fedAuthInfoParser","orderParser","returnStatusParser","loginAckParser","envChangeParser","rowParser","infoParser","errorParser","doneInProcParser","doneProcParser","doneParser","constructor","Symbol","asyncIterator","call","Buffer","alloc","next","done","concat","slice","_default","exports","module"],"sources":["../../src/token/stream-parser.ts"],"sourcesContent":["import Debug from '../debug';\nimport { type InternalConnectionOptions } from '../connection';\n\nimport { TYPE, ColInfoToken, ColMetadataToken, DoneProcToken, DoneToken, DoneInProcToken, ErrorMessageToken, InfoMessageToken, RowToken, type EnvChangeToken, LoginAckToken, ReturnStatusToken, OrderToken, FedAuthInfoToken, SSPIToken, ReturnValueToken, NBCRowToken, FeatureExtAckToken, TabNameToken, Token } from './token';\n\nimport colInfoParser from './colinfo-token-parser';\nimport colMetadataParser, { type ColumnMetadata } from './colmetadata-token-parser';\nimport { doneParser, doneInProcParser, doneProcParser } from './done-token-parser';\nimport envChangeParser from './env-change-token-parser';\nimport { errorParser, infoParser } from './infoerror-token-parser';\nimport fedAuthInfoParser from './fedauth-info-parser';\nimport featureExtAckParser from './feature-ext-ack-parser';\nimport loginAckParser from './loginack-token-parser';\nimport orderParser from './order-token-parser';\nimport returnStatusParser from './returnstatus-token-parser';\nimport returnValueParser from './returnvalue-token-parser';\nimport rowParser from './row-token-parser';\nimport nbcRowParser from './nbcrow-token-parser';\nimport sspiParser from './sspi-token-parser';\nimport tabNameParser from './tabname-token-parser';\nimport { NotEnoughDataError } from './helpers';\n\nexport type ParserOptions = Pick<InternalConnectionOptions, 'useUTC' | 'lowerCaseGuids' | 'tdsVersion' | 'useColumnNames' | 'columnNameReplacer' | 'camelCaseColumns'>;\n\nclass Parser {\n debug: Debug;\n colMetadata: ColumnMetadata[];\n options: ParserOptions;\n\n iterator: AsyncIterator<Buffer, any, undefined> | Iterator<Buffer, any, undefined>;\n buffer: Buffer;\n position: number;\n\n static async *parseTokens(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions, colMetadata: ColumnMetadata[] = []) {\n const parser = new Parser(iterable, debug, options);\n parser.colMetadata = colMetadata;\n\n while (true) {\n try {\n await parser.waitForChunk();\n } catch (err: unknown) {\n if (parser.position === parser.buffer.length) {\n return;\n }\n\n throw err;\n }\n\n while (parser.buffer.length >= parser.position + 1) {\n const type = parser.buffer.readUInt8(parser.position);\n parser.position += 1;\n\n const token = parser.readToken(type);\n if (token !== undefined) {\n yield token;\n }\n }\n }\n }\n\n readToken(type: number): Token | undefined | Promise<Token | undefined> {\n switch (type) {\n case TYPE.DONE: {\n return this.readDoneToken();\n }\n\n case TYPE.DONEPROC: {\n return this.readDoneProcToken();\n }\n\n case TYPE.DONEINPROC: {\n return this.readDoneInProcToken();\n }\n\n case TYPE.ERROR: {\n return this.readErrorToken();\n }\n\n case TYPE.INFO: {\n return this.readInfoToken();\n }\n\n case TYPE.ENVCHANGE: {\n return this.readEnvChangeToken();\n }\n\n case TYPE.LOGINACK: {\n return this.readLoginAckToken();\n }\n\n case TYPE.RETURNSTATUS: {\n return this.readReturnStatusToken();\n }\n\n case TYPE.ORDER: {\n return this.readOrderToken();\n }\n\n case TYPE.FEDAUTHINFO: {\n return this.readFedAuthInfoToken();\n }\n\n case TYPE.SSPI: {\n return this.readSSPIToken();\n }\n\n case TYPE.COLMETADATA: {\n return this.readColMetadataToken();\n }\n\n case TYPE.RETURNVALUE: {\n return this.readReturnValueToken();\n }\n\n case TYPE.ROW: {\n return this.readRowToken();\n }\n\n case TYPE.NBCROW: {\n return this.readNbcRowToken();\n }\n\n case TYPE.FEATUREEXTACK: {\n return this.readFeatureExtAckToken();\n }\n\n case TYPE.TABNAME: {\n return this.readTabNameToken();\n }\n\n case TYPE.COLINFO: {\n return this.readColInfoToken();\n }\n\n default: {\n throw new Error('Unknown type: ' + type);\n }\n }\n }\n\n readFeatureExtAckToken(): FeatureExtAckToken | Promise<FeatureExtAckToken> {\n let result;\n\n try {\n result = featureExtAckParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readFeatureExtAckToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readTabNameToken(): TabNameToken | Promise<TabNameToken> {\n let result;\n\n try {\n result = tabNameParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readTabNameToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readColInfoToken(): ColInfoToken | Promise<ColInfoToken> {\n let result;\n\n try {\n result = colInfoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readColInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n async readNbcRowToken(): Promise<NBCRowToken> {\n return await nbcRowParser(this);\n }\n\n async readReturnValueToken(): Promise<ReturnValueToken> {\n return await returnValueParser(this);\n }\n\n async readColMetadataToken(): Promise<ColMetadataToken> {\n const token = await colMetadataParser(this);\n this.colMetadata = token.columns;\n return token;\n }\n\n readSSPIToken(): SSPIToken | Promise<SSPIToken> {\n let result;\n\n try {\n result = sspiParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readSSPIToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readFedAuthInfoToken(): FedAuthInfoToken | Promise<FedAuthInfoToken> {\n let result;\n\n try {\n result = fedAuthInfoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readFedAuthInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readOrderToken(): OrderToken | Promise<OrderToken> {\n let result;\n\n try {\n result = orderParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readOrderToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readReturnStatusToken(): ReturnStatusToken | Promise<ReturnStatusToken> {\n let result;\n\n try {\n result = returnStatusParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readReturnStatusToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readLoginAckToken(): LoginAckToken | Promise<LoginAckToken> {\n let result;\n\n try {\n result = loginAckParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readLoginAckToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readEnvChangeToken(): EnvChangeToken | undefined | Promise<EnvChangeToken | undefined> {\n let result;\n\n try {\n result = envChangeParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readEnvChangeToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readRowToken(): RowToken | Promise<RowToken> {\n return rowParser(this);\n }\n\n readInfoToken(): InfoMessageToken | Promise<InfoMessageToken> {\n let result;\n\n try {\n result = infoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readErrorToken(): ErrorMessageToken | Promise<ErrorMessageToken> {\n let result;\n\n try {\n result = errorParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readErrorToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneInProcToken(): DoneInProcToken | Promise<DoneInProcToken> {\n let result;\n\n try {\n result = doneInProcParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneInProcToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneProcToken(): DoneProcToken | Promise<DoneProcToken> {\n let result;\n\n try {\n result = doneProcParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneProcToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneToken(): DoneToken | Promise<DoneToken> {\n let result;\n\n try {\n result = doneParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n constructor(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions) {\n this.debug = debug;\n this.colMetadata = [];\n this.options = options;\n\n this.iterator = ((iterable as AsyncIterable<Buffer>)[Symbol.asyncIterator] || (iterable as Iterable<Buffer>)[Symbol.iterator]).call(iterable);\n\n this.buffer = Buffer.alloc(0);\n this.position = 0;\n }\n\n async waitForChunk() {\n const result = await this.iterator.next();\n if (result.done) {\n throw new Error('unexpected end of data');\n }\n\n if (this.position === this.buffer.length) {\n this.buffer = result.value;\n } else {\n this.buffer = Buffer.concat([this.buffer.slice(this.position), result.value]);\n }\n\n this.position = 0;\n }\n}\n\nexport default Parser;\nmodule.exports = Parser;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ParserOptions } from './stream-parser';
|
|
2
|
+
import { TabNameToken } from './token';
|
|
3
|
+
import { Result } from './helpers';
|
|
4
|
+
declare function tabNameParser(buf: Buffer, offset: number, _options: ParserOptions): Result<TabNameToken>;
|
|
5
|
+
export default tabNameParser;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _token = require("./token");
|
|
8
|
+
var _helpers = require("./helpers");
|
|
9
|
+
// s2.2.7.20
|
|
10
|
+
|
|
11
|
+
function tabNameParser(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 end = offset + tokenLength;
|
|
22
|
+
const tableNames = [];
|
|
23
|
+
|
|
24
|
+
// Table names are sent as their individual parts. (While TDS versions
|
|
25
|
+
// before 7.1 Revision 1 sent each name as a single string, all servers
|
|
26
|
+
// that speak TDS 7.1 or newer use the multi-part format.)
|
|
27
|
+
while (offset < end) {
|
|
28
|
+
let numberOfTableNameParts;
|
|
29
|
+
({
|
|
30
|
+
offset,
|
|
31
|
+
value: numberOfTableNameParts
|
|
32
|
+
} = (0, _helpers.readUInt8)(buf, offset));
|
|
33
|
+
const tableName = [];
|
|
34
|
+
for (let i = 0; i < numberOfTableNameParts; i++) {
|
|
35
|
+
let tableNamePart;
|
|
36
|
+
({
|
|
37
|
+
offset,
|
|
38
|
+
value: tableNamePart
|
|
39
|
+
} = (0, _helpers.readUsVarChar)(buf, offset));
|
|
40
|
+
tableName.push(tableNamePart);
|
|
41
|
+
}
|
|
42
|
+
tableNames.push(tableName);
|
|
43
|
+
}
|
|
44
|
+
if (offset !== end) {
|
|
45
|
+
throw new Error('Malformed TABNAME token');
|
|
46
|
+
}
|
|
47
|
+
return new _helpers.Result(new _token.TabNameToken(tableNames), offset);
|
|
48
|
+
}
|
|
49
|
+
var _default = exports.default = tabNameParser;
|
|
50
|
+
module.exports = tabNameParser;
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2hlbHBlcnMiLCJ0YWJOYW1lUGFyc2VyIiwiYnVmIiwib2Zmc2V0IiwiX29wdGlvbnMiLCJ0b2tlbkxlbmd0aCIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwibGVuZ3RoIiwiTm90RW5vdWdoRGF0YUVycm9yIiwiZW5kIiwidGFibGVOYW1lcyIsIm51bWJlck9mVGFibGVOYW1lUGFydHMiLCJyZWFkVUludDgiLCJ0YWJsZU5hbWUiLCJpIiwidGFibGVOYW1lUGFydCIsInJlYWRVc1ZhckNoYXIiLCJwdXNoIiwiRXJyb3IiLCJSZXN1bHQiLCJUYWJOYW1lVG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3RhYm5hbWUtdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4yMFxuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgVGFiTmFtZVRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IsIHJlYWRVSW50MTZMRSwgcmVhZFVJbnQ4LCByZWFkVXNWYXJDaGFyLCBSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5mdW5jdGlvbiB0YWJOYW1lUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8VGFiTmFtZVRva2VuPiB7XG4gIC8vIGxlbmd0aFxuICBsZXQgdG9rZW5MZW5ndGg7XG4gICh7IG9mZnNldCwgdmFsdWU6IHRva2VuTGVuZ3RoIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIHRva2VuTGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyB0b2tlbkxlbmd0aCk7XG4gIH1cblxuICBjb25zdCBlbmQgPSBvZmZzZXQgKyB0b2tlbkxlbmd0aDtcbiAgY29uc3QgdGFibGVOYW1lczogc3RyaW5nW11bXSA9IFtdO1xuXG4gIC8vIFRhYmxlIG5hbWVzIGFyZSBzZW50IGFzIHRoZWlyIGluZGl2aWR1YWwgcGFydHMuIChXaGlsZSBURFMgdmVyc2lvbnNcbiAgLy8gYmVmb3JlIDcuMSBSZXZpc2lvbiAxIHNlbnQgZWFjaCBuYW1lIGFzIGEgc2luZ2xlIHN0cmluZywgYWxsIHNlcnZlcnNcbiAgLy8gdGhhdCBzcGVhayBURFMgNy4xIG9yIG5ld2VyIHVzZSB0aGUgbXVsdGktcGFydCBmb3JtYXQuKVxuICB3aGlsZSAob2Zmc2V0IDwgZW5kKSB7XG4gICAgbGV0IG51bWJlck9mVGFibGVOYW1lUGFydHM7XG4gICAgKHsgb2Zmc2V0LCB2YWx1ZTogbnVtYmVyT2ZUYWJsZU5hbWVQYXJ0cyB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICBjb25zdCB0YWJsZU5hbWU6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJPZlRhYmxlTmFtZVBhcnRzOyBpKyspIHtcbiAgICAgIGxldCB0YWJsZU5hbWVQYXJ0O1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogdGFibGVOYW1lUGFydCB9ID0gcmVhZFVzVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gICAgICB0YWJsZU5hbWUucHVzaCh0YWJsZU5hbWVQYXJ0KTtcbiAgICB9XG5cbiAgICB0YWJsZU5hbWVzLnB1c2godGFibGVOYW1lKTtcbiAgfVxuXG4gIGlmIChvZmZzZXQgIT09IGVuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWFsZm9ybWVkIFRBQk5BTUUgdG9rZW4nKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVzdWx0KG5ldyBUYWJOYW1lVG9rZW4odGFibGVOYW1lcyksIG9mZnNldCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRhYk5hbWVQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IHRhYk5hbWVQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUpBOztBQU1BLFNBQVNFLGFBQWFBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUF1QixFQUF3QjtFQUNqRztFQUNBLElBQUlDLFdBQVc7RUFDZixDQUFDO0lBQUVGLE1BQU07SUFBRUcsS0FBSyxFQUFFRDtFQUFZLENBQUMsR0FBRyxJQUFBRSxxQkFBWSxFQUFDTCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUUzRCxJQUFJRCxHQUFHLENBQUNNLE1BQU0sR0FBR0wsTUFBTSxHQUFHRSxXQUFXLEVBQUU7SUFDckMsTUFBTSxJQUFJSSwyQkFBa0IsQ0FBQ04sTUFBTSxHQUFHRSxXQUFXLENBQUM7RUFDcEQ7RUFFQSxNQUFNSyxHQUFHLEdBQUdQLE1BQU0sR0FBR0UsV0FBVztFQUNoQyxNQUFNTSxVQUFzQixHQUFHLEVBQUU7O0VBRWpDO0VBQ0E7RUFDQTtFQUNBLE9BQU9SLE1BQU0sR0FBR08sR0FBRyxFQUFFO0lBQ25CLElBQUlFLHNCQUFzQjtJQUMxQixDQUFDO01BQUVULE1BQU07TUFBRUcsS0FBSyxFQUFFTTtJQUF1QixDQUFDLEdBQUcsSUFBQUMsa0JBQVMsRUFBQ1gsR0FBRyxFQUFFQyxNQUFNLENBQUM7SUFFbkUsTUFBTVcsU0FBbUIsR0FBRyxFQUFFO0lBQzlCLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHSCxzQkFBc0IsRUFBRUcsQ0FBQyxFQUFFLEVBQUU7TUFDL0MsSUFBSUMsYUFBYTtNQUNqQixDQUFDO1FBQUViLE1BQU07UUFBRUcsS0FBSyxFQUFFVTtNQUFjLENBQUMsR0FBRyxJQUFBQyxzQkFBYSxFQUFDZixHQUFHLEVBQUVDLE1BQU0sQ0FBQztNQUU5RFcsU0FBUyxDQUFDSSxJQUFJLENBQUNGLGFBQWEsQ0FBQztJQUMvQjtJQUVBTCxVQUFVLENBQUNPLElBQUksQ0FBQ0osU0FBUyxDQUFDO0VBQzVCO0VBRUEsSUFBSVgsTUFBTSxLQUFLTyxHQUFHLEVBQUU7SUFDbEIsTUFBTSxJQUFJUyxLQUFLLENBQUMseUJBQXlCLENBQUM7RUFDNUM7RUFFQSxPQUFPLElBQUlDLGVBQU0sQ0FBQyxJQUFJQyxtQkFBWSxDQUFDVixVQUFVLENBQUMsRUFBRVIsTUFBTSxDQUFDO0FBQ3pEO0FBQUMsSUFBQW1CLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWN2QixhQUFhO0FBQzVCd0IsTUFBTSxDQUFDRixPQUFPLEdBQUd0QixhQUFhIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabname-token-parser.js","names":["_token","require","_helpers","tabNameParser","buf","offset","_options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","end","tableNames","numberOfTableNameParts","readUInt8","tableName","i","tableNamePart","readUsVarChar","push","Error","Result","TabNameToken","_default","exports","default","module"],"sources":["../../src/token/tabname-token-parser.ts"],"sourcesContent":["// s2.2.7.20\nimport { type ParserOptions } from './stream-parser';\n\nimport { TabNameToken } from './token';\nimport { NotEnoughDataError, readUInt16LE, readUInt8, readUsVarChar, Result } from './helpers';\n\nfunction tabNameParser(buf: Buffer, offset: number, _options: ParserOptions): Result<TabNameToken> {\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 end = offset + tokenLength;\n const tableNames: string[][] = [];\n\n // Table names are sent as their individual parts. (While TDS versions\n // before 7.1 Revision 1 sent each name as a single string, all servers\n // that speak TDS 7.1 or newer use the multi-part format.)\n while (offset < end) {\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 tableNames.push(tableName);\n }\n\n if (offset !== end) {\n throw new Error('Malformed TABNAME token');\n }\n\n return new Result(new TabNameToken(tableNames), offset);\n}\n\nexport default tabNameParser;\nmodule.exports = tabNameParser;\n"],"mappings":";;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAJA;;AAMA,SAASE,aAAaA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAAwB;EACjG;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,GAAG,GAAGP,MAAM,GAAGE,WAAW;EAChC,MAAMM,UAAsB,GAAG,EAAE;;EAEjC;EACA;EACA;EACA,OAAOR,MAAM,GAAGO,GAAG,EAAE;IACnB,IAAIE,sBAAsB;IAC1B,CAAC;MAAET,MAAM;MAAEG,KAAK,EAAEM;IAAuB,CAAC,GAAG,IAAAC,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;IAEnE,MAAMW,SAAmB,GAAG,EAAE;IAC9B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,sBAAsB,EAAEG,CAAC,EAAE,EAAE;MAC/C,IAAIC,aAAa;MACjB,CAAC;QAAEb,MAAM;QAAEG,KAAK,EAAEU;MAAc,CAAC,GAAG,IAAAC,sBAAa,EAACf,GAAG,EAAEC,MAAM,CAAC;MAE9DW,SAAS,CAACI,IAAI,CAACF,aAAa,CAAC;IAC/B;IAEAL,UAAU,CAACO,IAAI,CAACJ,SAAS,CAAC;EAC5B;EAEA,IAAIX,MAAM,KAAKO,GAAG,EAAE;IAClB,MAAM,IAAIS,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EAEA,OAAO,IAAIC,eAAM,CAAC,IAAIC,mBAAY,CAACV,UAAU,CAAC,EAAER,MAAM,CAAC;AACzD;AAAC,IAAAmB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcvB,aAAa;AAC5BwB,MAAM,CAACF,OAAO,GAAGtB,aAAa","ignoreList":[]}
|
package/lib/token/token.d.ts
CHANGED
|
@@ -31,6 +31,42 @@ export declare abstract class Token {
|
|
|
31
31
|
handlerName: keyof TokenHandler;
|
|
32
32
|
constructor(name: string, handlerName: HandlerName);
|
|
33
33
|
}
|
|
34
|
+
export interface ColumnInfo {
|
|
35
|
+
/**
|
|
36
|
+
* The column's ordinal position in the result set.
|
|
37
|
+
*/
|
|
38
|
+
colNum: number;
|
|
39
|
+
/**
|
|
40
|
+
* The number of the base table this column was derived from, as a
|
|
41
|
+
* one-based index into the table list reported by the `TABNAME` token.
|
|
42
|
+
* `0` if the column is the result of an expression.
|
|
43
|
+
*/
|
|
44
|
+
tableNum: number;
|
|
45
|
+
/**
|
|
46
|
+
* Whether the column was the result of an expression.
|
|
47
|
+
*/
|
|
48
|
+
expression: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the column is part of a key for the associated table.
|
|
51
|
+
*/
|
|
52
|
+
key: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the column was not requested, but was added because it was
|
|
55
|
+
* part of a key for the associated table.
|
|
56
|
+
*/
|
|
57
|
+
hidden: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* The column's name in the base table. Only set if it differs from the
|
|
60
|
+
* name in the result set (e.g. because a column alias was used).
|
|
61
|
+
*/
|
|
62
|
+
colName: string | undefined;
|
|
63
|
+
}
|
|
64
|
+
export declare class ColInfoToken extends Token {
|
|
65
|
+
name: 'COLINFO';
|
|
66
|
+
handlerName: 'onColInfo';
|
|
67
|
+
columns: ColumnInfo[];
|
|
68
|
+
constructor(columns: ColumnInfo[]);
|
|
69
|
+
}
|
|
34
70
|
export declare class ColMetadataToken extends Token {
|
|
35
71
|
name: 'COLMETADATA';
|
|
36
72
|
handlerName: 'onColMetadata';
|
|
@@ -302,6 +338,17 @@ export declare class RowToken extends Token {
|
|
|
302
338
|
columns: any;
|
|
303
339
|
constructor(columns: any);
|
|
304
340
|
}
|
|
341
|
+
export declare class TabNameToken extends Token {
|
|
342
|
+
name: 'TABNAME';
|
|
343
|
+
handlerName: 'onTabName';
|
|
344
|
+
/**
|
|
345
|
+
* The names of the base tables referenced in the query, in the order the
|
|
346
|
+
* `COLINFO` token's `tableNum` values refer to them. Each name is given
|
|
347
|
+
* as its individual parts (e.g. `['dbo', 'employees']`).
|
|
348
|
+
*/
|
|
349
|
+
tableNames: string[][];
|
|
350
|
+
constructor(tableNames: string[][]);
|
|
351
|
+
}
|
|
305
352
|
export declare class SSPIToken extends Token {
|
|
306
353
|
name: 'SSPICHALLENGE';
|
|
307
354
|
handlerName: 'onSSPI';
|