tedious 20.3.2 → 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.
- package/lib/connection.js +8 -1
- package/lib/connection.js.map +1 -1
- package/lib/metadata-parser.d.ts +1 -3
- package/lib/metadata-parser.js +1 -22
- package/lib/metadata-parser.js.map +1 -1
- package/lib/token/colmetadata-token-parser.d.ts +11 -3
- package/lib/token/colmetadata-token-parser.js +29 -42
- package/lib/token/colmetadata-token-parser.js.map +1 -1
- package/lib/token/nbcrow-token-parser.d.ts +11 -3
- package/lib/token/nbcrow-token-parser.js +22 -89
- package/lib/token/nbcrow-token-parser.js.map +1 -1
- package/lib/token/returnvalue-token-parser.d.ts +19 -3
- package/lib/token/returnvalue-token-parser.js +67 -73
- package/lib/token/returnvalue-token-parser.js.map +1 -1
- package/lib/token/row-token-parser.d.ts +33 -3
- package/lib/token/row-token-parser.js +62 -60
- package/lib/token/row-token-parser.js.map +1 -1
- package/lib/token/stream-parser.d.ts +59 -27
- package/lib/token/stream-parser.js +157 -325
- package/lib/token/stream-parser.js.map +1 -1
- package/lib/token/token-stream-parser.d.ts +12 -5
- package/lib/token/token-stream-parser.js +46 -17
- package/lib/token/token-stream-parser.js.map +1 -1
- package/lib/value-parser.d.ts +19 -2
- package/lib/value-parser.js +73 -30
- package/lib/value-parser.js.map +1 -1
- package/package.json +1 -1
package/lib/metadata-parser.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Collation } from './collation';
|
|
2
|
-
import
|
|
2
|
+
import { type ParserOptions } from './token/stream-parser';
|
|
3
3
|
import { type DataType } from './data-type';
|
|
4
4
|
import { type CryptoMetadata } from './always-encrypted/types';
|
|
5
5
|
import { Result } from './token/helpers';
|
|
@@ -43,6 +43,4 @@ export type Metadata = {
|
|
|
43
43
|
} & BaseMetadata;
|
|
44
44
|
declare function readCollation(buf: Buffer, offset: number): Result<Collation>;
|
|
45
45
|
declare function readMetadata(buf: Buffer, offset: number, options: ParserOptions): Result<Metadata>;
|
|
46
|
-
declare function metadataParse(parser: Parser, options: ParserOptions, callback: (metadata: Metadata) => void): void;
|
|
47
|
-
export default metadataParse;
|
|
48
46
|
export { readCollation, readMetadata };
|
package/lib/metadata-parser.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = void 0;
|
|
7
6
|
exports.readCollation = readCollation;
|
|
8
7
|
exports.readMetadata = readMetadata;
|
|
9
8
|
var _collation = require("./collation");
|
|
@@ -355,26 +354,6 @@ function readMetadata(buf, offset, options) {
|
|
|
355
354
|
throw new Error((0, _sprintfJs.sprintf)('Unrecognised type %s', type.name));
|
|
356
355
|
}
|
|
357
356
|
}
|
|
358
|
-
function metadataParse(parser, options, callback) {
|
|
359
|
-
(async () => {
|
|
360
|
-
while (true) {
|
|
361
|
-
let result;
|
|
362
|
-
try {
|
|
363
|
-
result = readMetadata(parser.buffer, parser.position, options);
|
|
364
|
-
} catch (err) {
|
|
365
|
-
if (err instanceof _helpers.NotEnoughDataError) {
|
|
366
|
-
await parser.waitForChunk();
|
|
367
|
-
continue;
|
|
368
|
-
}
|
|
369
|
-
throw err;
|
|
370
|
-
}
|
|
371
|
-
parser.position = result.offset;
|
|
372
|
-
return callback(result.value);
|
|
373
|
-
}
|
|
374
|
-
})();
|
|
375
|
-
}
|
|
376
|
-
var _default = exports.default = metadataParse;
|
|
377
|
-
module.exports = metadataParse;
|
|
378
357
|
module.exports.readCollation = readCollation;
|
|
379
358
|
module.exports.readMetadata = readMetadata;
|
|
380
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29sbGF0aW9uIiwicmVxdWlyZSIsIl9kYXRhVHlwZSIsIl9zcHJpbnRmSnMiLCJfaGVscGVycyIsInJlYWRDb2xsYXRpb24iLCJidWYiLCJvZmZzZXQiLCJsZW5ndGgiLCJOb3RFbm91Z2hEYXRhRXJyb3IiLCJjb2xsYXRpb24iLCJDb2xsYXRpb24iLCJmcm9tQnVmZmVyIiwic2xpY2UiLCJSZXN1bHQiLCJyZWFkU2NoZW1hIiwic2NoZW1hUHJlc2VudCIsInZhbHVlIiwicmVhZFVJbnQ4IiwidW5kZWZpbmVkIiwiZGJuYW1lIiwicmVhZEJWYXJDaGFyIiwib3duaW5nU2NoZW1hIiwieG1sU2NoZW1hQ29sbGVjdGlvbiIsInJlYWRVc1ZhckNoYXIiLCJyZWFkVURUSW5mbyIsIm1heEJ5dGVTaXplIiwicmVhZFVJbnQxNkxFIiwidHlwZU5hbWUiLCJhc3NlbWJseU5hbWUiLCJyZWFkTWV0YWRhdGEiLCJvcHRpb25zIiwidXNlclR5cGUiLCJ0ZHNWZXJzaW9uIiwicmVhZFVJbnQzMkxFIiwiZmxhZ3MiLCJ0eXBlTnVtYmVyIiwidHlwZSIsIlRZUEUiLCJFcnJvciIsInNwcmludGYiLCJuYW1lIiwicHJlY2lzaW9uIiwic2NhbGUiLCJkYXRhTGVuZ3RoIiwic2NoZW1hIiwidWR0SW5mbyIsIm1ldGFkYXRhUGFyc2UiLCJwYXJzZXIiLCJjYWxsYmFjayIsInJlc3VsdCIsImJ1ZmZlciIsInBvc2l0aW9uIiwiZXJyIiwid2FpdEZvckNodW5rIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhZGF0YS1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGF0aW9uIH0gZnJvbSAnLi9jb2xsYXRpb24nO1xuaW1wb3J0IFBhcnNlciwgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3Rva2VuL3N0cmVhbS1wYXJzZXInO1xuaW1wb3J0IHsgVFlQRSwgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4vZGF0YS10eXBlJztcbmltcG9ydCB7IHR5cGUgQ3J5cHRvTWV0YWRhdGEgfSBmcm9tICcuL2Fsd2F5cy1lbmNyeXB0ZWQvdHlwZXMnO1xuXG5pbXBvcnQgeyBzcHJpbnRmIH0gZnJvbSAnc3ByaW50Zi1qcyc7XG5cbmltcG9ydCB7IFJlc3VsdCwgTm90RW5vdWdoRGF0YUVycm9yLCByZWFkVUludDgsIHJlYWRCVmFyQ2hhciwgcmVhZFVzVmFyQ2hhciwgcmVhZFVJbnQxNkxFLCByZWFkVUludDMyTEUgfSBmcm9tICcuL3Rva2VuL2hlbHBlcnMnO1xuXG5pbnRlcmZhY2UgWG1sU2NoZW1hIHtcbiAgZGJuYW1lOiBzdHJpbmc7XG4gIG93bmluZ1NjaGVtYTogc3RyaW5nO1xuICB4bWxTY2hlbWFDb2xsZWN0aW9uOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBVZHRJbmZvIHtcbiAgbWF4Qnl0ZVNpemU6IG51bWJlcjtcbiAgZGJuYW1lOiBzdHJpbmc7XG4gIG93bmluZ1NjaGVtYTogc3RyaW5nO1xuICB0eXBlTmFtZTogc3RyaW5nO1xuICBhc3NlbWJseU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQmFzZU1ldGFkYXRhID0ge1xuICB1c2VyVHlwZTogbnVtYmVyO1xuXG4gIGZsYWdzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY29sdW1uJ3MgdHlwZSwgc3VjaCBhcyBWYXJDaGFyLCBJbnQgb3IgQmluYXJ5LlxuICAgKi9cbiAgdHlwZTogRGF0YVR5cGU7XG5cbiAgY29sbGF0aW9uOiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgcHJlY2lzaW9uLiBPbmx5IGFwcGxpY2FibGUgdG8gbnVtZXJpYyBhbmQgZGVjaW1hbC5cbiAgICovXG4gIHByZWNpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NhbGUuIE9ubHkgYXBwbGljYWJsZSB0byBudW1lcmljLCBkZWNpbWFsLCB0aW1lLCBkYXRldGltZTIgYW5kIGRhdGV0aW1lb2Zmc2V0LlxuICAgKi9cbiAgc2NhbGU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGxlbmd0aCwgZm9yIGNoYXIsIHZhcmNoYXIsIG52YXJjaGFyIGFuZCB2YXJiaW5hcnkuXG4gICAqL1xuICBkYXRhTGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgc2NoZW1hOiBYbWxTY2hlbWEgfCB1bmRlZmluZWQ7XG5cbiAgdWR0SW5mbzogVWR0SW5mbyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgTWV0YWRhdGEgPSB7XG4gIGNyeXB0b01ldGFkYXRhPzogQ3J5cHRvTWV0YWRhdGE7XG59ICYgQmFzZU1ldGFkYXRhO1xuXG5mdW5jdGlvbiByZWFkQ29sbGF0aW9uKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxDb2xsYXRpb24+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDUpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDUpO1xuICB9XG5cbiAgY29uc3QgY29sbGF0aW9uID0gQ29sbGF0aW9uLmZyb21CdWZmZXIoYnVmLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgNSkpO1xuICByZXR1cm4gbmV3IFJlc3VsdChjb2xsYXRpb24sIG9mZnNldCArIDUpO1xufVxuXG5mdW5jdGlvbiByZWFkU2NoZW1hKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxYbWxTY2hlbWEgfCB1bmRlZmluZWQ+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBsZXQgc2NoZW1hUHJlc2VudDtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogc2NoZW1hUHJlc2VudCB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKHNjaGVtYVByZXNlbnQgIT09IDB4MDEpIHtcbiAgICByZXR1cm4gbmV3IFJlc3VsdCh1bmRlZmluZWQsIG9mZnNldCk7XG4gIH1cblxuICBsZXQgZGJuYW1lO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBkYm5hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBvd25pbmdTY2hlbWE7XG4gICh7IG9mZnNldCwgdmFsdWU6IG93bmluZ1NjaGVtYSB9ID0gcmVhZEJWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgbGV0IHhtbFNjaGVtYUNvbGxlY3Rpb247XG4gICh7IG9mZnNldCwgdmFsdWU6IHhtbFNjaGVtYUNvbGxlY3Rpb24gfSA9IHJlYWRVc1ZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdCh7IGRibmFtZSwgb3duaW5nU2NoZW1hLCB4bWxTY2hlbWFDb2xsZWN0aW9uIH0sIG9mZnNldCk7XG59XG5cbmZ1bmN0aW9uIHJlYWRVRFRJbmZvKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxVZHRJbmZvPiB7XG4gIGxldCBtYXhCeXRlU2l6ZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWF4Qnl0ZVNpemUgfSA9IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkpO1xuXG4gIGxldCBkYm5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IGRibmFtZSB9ID0gcmVhZEJWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgbGV0IG93bmluZ1NjaGVtYTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogb3duaW5nU2NoZW1hIH0gPSByZWFkQlZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgdHlwZU5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IHR5cGVOYW1lIH0gPSByZWFkQlZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgYXNzZW1ibHlOYW1lO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBhc3NlbWJseU5hbWUgfSA9IHJlYWRVc1ZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgbWF4Qnl0ZVNpemU6IG1heEJ5dGVTaXplLFxuICAgIGRibmFtZTogZGJuYW1lLFxuICAgIG93bmluZ1NjaGVtYTogb3duaW5nU2NoZW1hLFxuICAgIHR5cGVOYW1lOiB0eXBlTmFtZSxcbiAgICBhc3NlbWJseU5hbWU6IGFzc2VtYmx5TmFtZVxuICB9LCBvZmZzZXQpO1xufVxuXG5mdW5jdGlvbiByZWFkTWV0YWRhdGEoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKTogUmVzdWx0PE1ldGFkYXRhPiB7XG4gIGxldCB1c2VyVHlwZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogdXNlclR5cGUgfSA9IChvcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJyA/IHJlYWRVSW50MTZMRSA6IHJlYWRVSW50MzJMRSkoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgZmxhZ3M7XG4gICh7IG9mZnNldCwgdmFsdWU6IGZsYWdzIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgdHlwZU51bWJlcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogdHlwZU51bWJlciB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgY29uc3QgdHlwZTogRGF0YVR5cGUgPSBUWVBFW3R5cGVOdW1iZXJdO1xuICBpZiAoIXR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3Ioc3ByaW50ZignVW5yZWNvZ25pc2VkIGRhdGEgdHlwZSAweCUwMlgnLCB0eXBlTnVtYmVyKSk7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUubmFtZSkge1xuICAgIGNhc2UgJ051bGwnOlxuICAgIGNhc2UgJ1RpbnlJbnQnOlxuICAgIGNhc2UgJ1NtYWxsSW50JzpcbiAgICBjYXNlICdJbnQnOlxuICAgIGNhc2UgJ0JpZ0ludCc6XG4gICAgY2FzZSAnUmVhbCc6XG4gICAgY2FzZSAnRmxvYXQnOlxuICAgIGNhc2UgJ1NtYWxsTW9uZXknOlxuICAgIGNhc2UgJ01vbmV5JzpcbiAgICBjYXNlICdCaXQnOlxuICAgIGNhc2UgJ1NtYWxsRGF0ZVRpbWUnOlxuICAgIGNhc2UgJ0RhdGVUaW1lJzpcbiAgICBjYXNlICdEYXRlJzpcbiAgICAgIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICAgICAgdXNlclR5cGU6IHVzZXJUeXBlLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbGxhdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICBwcmVjaXNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgc2NhbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGF0YUxlbmd0aDogdW5kZWZpbmVkLFxuICAgICAgICBzY2hlbWE6IHVuZGVmaW5lZCxcbiAgICAgICAgdWR0SW5mbzogdW5kZWZpbmVkXG4gICAgICB9LCBvZmZzZXQpO1xuXG4gICAgY2FzZSAnSW50Tic6XG4gICAgY2FzZSAnRmxvYXROJzpcbiAgICBjYXNlICdNb25leU4nOlxuICAgIGNhc2UgJ0JpdE4nOlxuICAgIGNhc2UgJ1VuaXF1ZUlkZW50aWZpZXInOlxuICAgIGNhc2UgJ0RhdGVUaW1lTic6IHtcbiAgICAgIGxldCBkYXRhTGVuZ3RoO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogZGF0YUxlbmd0aCB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICAgICAgdXNlclR5cGU6IHVzZXJUeXBlLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbGxhdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICBwcmVjaXNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgc2NhbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGF0YUxlbmd0aDogZGF0YUxlbmd0aCxcbiAgICAgICAgc2NoZW1hOiB1bmRlZmluZWQsXG4gICAgICAgIHVkdEluZm86IHVuZGVmaW5lZFxuICAgICAgfSwgb2Zmc2V0KTtcbiAgICB9XG5cbiAgICBjYXNlICdWYXJpYW50Jzoge1xuICAgICAgbGV0IGRhdGFMZW5ndGg7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBkYXRhTGVuZ3RoIH0gPSByZWFkVUludDMyTEUoYnVmLCBvZmZzZXQpKTtcblxuICAgICAgcmV0dXJuIG5ldyBSZXN1bHQoe1xuICAgICAgICB1c2VyVHlwZTogdXNlclR5cGUsXG4gICAgICAgIGZsYWdzOiBmbGFncyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgY29sbGF0aW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHByZWNpc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICBzY2FsZTogdW5kZWZpbmVkLFxuICAgICAgICBkYXRhTGVuZ3RoOiBkYXRhTGVuZ3RoLFxuICAgICAgICBzY2hlbWE6IHVuZGVmaW5lZCxcbiAgICAgICAgdWR0SW5mbzogdW5kZWZpbmVkXG4gICAgICB9LCBvZmZzZXQpO1xuICAgIH1cblxuICAgIGNhc2UgJ1ZhckNoYXInOlxuICAgIGNhc2UgJ0NoYXInOlxuICAgIGNhc2UgJ05WYXJDaGFyJzpcbiAgICBjYXNlICdOQ2hhcic6IHtcbiAgICAgIGxldCBkYXRhTGVuZ3RoO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogZGF0YUxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIGxldCBjb2xsYXRpb247XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBjb2xsYXRpb24gfSA9IHJlYWRDb2xsYXRpb24oYnVmLCBvZmZzZXQpKTtcblxuICAgICAgcmV0dXJuIG5ldyBSZXN1bHQoe1xuICAgICAgICB1c2VyVHlwZTogdXNlclR5cGUsXG4gICAgICAgIGZsYWdzOiBmbGFncyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgY29sbGF0aW9uOiBjb2xsYXRpb24sXG4gICAgICAgIHByZWNpc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICBzY2FsZTogdW5kZWZpbmVkLFxuICAgICAgICBkYXRhTGVuZ3RoOiBkYXRhTGVuZ3RoLFxuICAgICAgICBzY2hlbWE6IHVuZGVmaW5lZCxcbiAgICAgICAgdWR0SW5mbzogdW5kZWZpbmVkXG4gICAgICB9LCBvZmZzZXQpO1xuICAgIH1cblxuICAgIGNhc2UgJ1RleHQnOlxuICAgIGNhc2UgJ05UZXh0Jzoge1xuICAgICAgbGV0IGRhdGFMZW5ndGg7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBkYXRhTGVuZ3RoIH0gPSByZWFkVUludDMyTEUoYnVmLCBvZmZzZXQpKTtcblxuICAgICAgbGV0IGNvbGxhdGlvbjtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IGNvbGxhdGlvbiB9ID0gcmVhZENvbGxhdGlvbihidWYsIG9mZnNldCkpO1xuXG4gICAgICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgICAgIHVzZXJUeXBlOiB1c2VyVHlwZSxcbiAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjb2xsYXRpb246IGNvbGxhdGlvbixcbiAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHNjYWxlOiB1bmRlZmluZWQsXG4gICAgICAgIGRhdGFMZW5ndGg6IGRhdGFMZW5ndGgsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH0sIG9mZnNldCk7XG4gICAgfVxuXG4gICAgY2FzZSAnVmFyQmluYXJ5JzpcbiAgICBjYXNlICdCaW5hcnknOiB7XG4gICAgICBsZXQgZGF0YUxlbmd0aDtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IGRhdGFMZW5ndGggfSA9IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkpO1xuXG4gICAgICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgICAgIHVzZXJUeXBlOiB1c2VyVHlwZSxcbiAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjb2xsYXRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHNjYWxlOiB1bmRlZmluZWQsXG4gICAgICAgIGRhdGFMZW5ndGg6IGRhdGFMZW5ndGgsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH0sIG9mZnNldCk7XG4gICAgfVxuXG4gICAgY2FzZSAnSW1hZ2UnOiB7XG4gICAgICBsZXQgZGF0YUxlbmd0aDtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IGRhdGFMZW5ndGggfSA9IHJlYWRVSW50MzJMRShidWYsIG9mZnNldCkpO1xuXG4gICAgICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgICAgIHVzZXJUeXBlOiB1c2VyVHlwZSxcbiAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjb2xsYXRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHNjYWxlOiB1bmRlZmluZWQsXG4gICAgICAgIGRhdGFMZW5ndGg6IGRhdGFMZW5ndGgsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH0sIG9mZnNldCk7XG4gICAgfVxuXG4gICAgY2FzZSAnWG1sJzoge1xuICAgICAgbGV0IHNjaGVtYTtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IHNjaGVtYSB9ID0gcmVhZFNjaGVtYShidWYsIG9mZnNldCkpO1xuXG4gICAgICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgICAgIHVzZXJUeXBlOiB1c2VyVHlwZSxcbiAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjb2xsYXRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHNjYWxlOiB1bmRlZmluZWQsXG4gICAgICAgIGRhdGFMZW5ndGg6IHVuZGVmaW5lZCxcbiAgICAgICAgc2NoZW1hOiBzY2hlbWEsXG4gICAgICAgIHVkdEluZm86IHVuZGVmaW5lZFxuICAgICAgfSwgb2Zmc2V0KTtcbiAgICB9XG5cbiAgICBjYXNlICdUaW1lJzpcbiAgICBjYXNlICdEYXRlVGltZTInOlxuICAgIGNhc2UgJ0RhdGVUaW1lT2Zmc2V0Jzoge1xuICAgICAgbGV0IHNjYWxlO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogc2NhbGUgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gICAgICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgICAgIHVzZXJUeXBlOiB1c2VyVHlwZSxcbiAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjb2xsYXRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHNjYWxlOiBzY2FsZSxcbiAgICAgICAgZGF0YUxlbmd0aDogdW5kZWZpbmVkLFxuICAgICAgICBzY2hlbWE6IHVuZGVmaW5lZCxcbiAgICAgICAgdWR0SW5mbzogdW5kZWZpbmVkXG4gICAgICB9LCBvZmZzZXQpO1xuICAgIH1cblxuICAgIGNhc2UgJ051bWVyaWNOJzpcbiAgICBjYXNlICdEZWNpbWFsTic6IHtcbiAgICAgIGxldCBkYXRhTGVuZ3RoO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogZGF0YUxlbmd0aCB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIGxldCBwcmVjaXNpb247XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBwcmVjaXNpb24gfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gICAgICBsZXQgc2NhbGU7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBzY2FsZSB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICAgICAgdXNlclR5cGU6IHVzZXJUeXBlLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbGxhdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICBwcmVjaXNpb246IHByZWNpc2lvbixcbiAgICAgICAgc2NhbGU6IHNjYWxlLFxuICAgICAgICBkYXRhTGVuZ3RoOiBkYXRhTGVuZ3RoLFxuICAgICAgICBzY2hlbWE6IHVuZGVmaW5lZCxcbiAgICAgICAgdWR0SW5mbzogdW5kZWZpbmVkXG4gICAgICB9LCBvZmZzZXQpO1xuICAgIH1cblxuICAgIGNhc2UgJ1VEVCc6IHtcbiAgICAgIGxldCB1ZHRJbmZvO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogdWR0SW5mbyB9ID0gcmVhZFVEVEluZm8oYnVmLCBvZmZzZXQpKTtcblxuICAgICAgcmV0dXJuIG5ldyBSZXN1bHQoe1xuICAgICAgICB1c2VyVHlwZTogdXNlclR5cGUsXG4gICAgICAgIGZsYWdzOiBmbGFncyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgY29sbGF0aW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHByZWNpc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICBzY2FsZTogdW5kZWZpbmVkLFxuICAgICAgICBkYXRhTGVuZ3RoOiB1bmRlZmluZWQsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1ZHRJbmZvXG4gICAgICB9LCBvZmZzZXQpO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3Ioc3ByaW50ZignVW5yZWNvZ25pc2VkIHR5cGUgJXMnLCB0eXBlLm5hbWUpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXRhZGF0YVBhcnNlKHBhcnNlcjogUGFyc2VyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjYWxsYmFjazogKG1ldGFkYXRhOiBNZXRhZGF0YSkgPT4gdm9pZCkge1xuICAoYXN5bmMgKCkgPT4ge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBsZXQgcmVzdWx0O1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzdWx0ID0gcmVhZE1ldGFkYXRhKHBhcnNlci5idWZmZXIsIHBhcnNlci5wb3NpdGlvbiwgb3B0aW9ucyk7XG4gICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgICAgYXdhaXQgcGFyc2VyLndhaXRGb3JDaHVuaygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICBwYXJzZXIucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3VsdC52YWx1ZSk7XG4gICAgfVxuICB9KSgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtZXRhZGF0YVBhcnNlO1xuZXhwb3J0IHsgcmVhZENvbGxhdGlvbiwgcmVhZE1ldGFkYXRhIH07XG5cbm1vZHVsZS5leHBvcnRzID0gbWV0YWRhdGFQYXJzZTtcbm1vZHVsZS5leHBvcnRzLnJlYWRDb2xsYXRpb24gPSByZWFkQ29sbGF0aW9uO1xubW9kdWxlLmV4cG9ydHMucmVhZE1ldGFkYXRhID0gcmVhZE1ldGFkYXRhO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQWtEQSxTQUFTSSxhQUFhQSxDQUFDQyxHQUFXLEVBQUVDLE1BQWMsRUFBcUI7RUFDckVBLE1BQU0sR0FBRyxDQUFDQSxNQUFNO0VBRWhCLElBQUlELEdBQUcsQ0FBQ0UsTUFBTSxHQUFHRCxNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQzNCLE1BQU0sSUFBSUUsMkJBQWtCLENBQUNGLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDMUM7RUFFQSxNQUFNRyxTQUFTLEdBQUdDLG9C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
|
|
359
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29sbGF0aW9uIiwicmVxdWlyZSIsIl9kYXRhVHlwZSIsIl9zcHJpbnRmSnMiLCJfaGVscGVycyIsInJlYWRDb2xsYXRpb24iLCJidWYiLCJvZmZzZXQiLCJsZW5ndGgiLCJOb3RFbm91Z2hEYXRhRXJyb3IiLCJjb2xsYXRpb24iLCJDb2xsYXRpb24iLCJmcm9tQnVmZmVyIiwic2xpY2UiLCJSZXN1bHQiLCJyZWFkU2NoZW1hIiwic2NoZW1hUHJlc2VudCIsInZhbHVlIiwicmVhZFVJbnQ4IiwidW5kZWZpbmVkIiwiZGJuYW1lIiwicmVhZEJWYXJDaGFyIiwib3duaW5nU2NoZW1hIiwieG1sU2NoZW1hQ29sbGVjdGlvbiIsInJlYWRVc1ZhckNoYXIiLCJyZWFkVURUSW5mbyIsIm1heEJ5dGVTaXplIiwicmVhZFVJbnQxNkxFIiwidHlwZU5hbWUiLCJhc3NlbWJseU5hbWUiLCJyZWFkTWV0YWRhdGEiLCJvcHRpb25zIiwidXNlclR5cGUiLCJ0ZHNWZXJzaW9uIiwicmVhZFVJbnQzMkxFIiwiZmxhZ3MiLCJ0eXBlTnVtYmVyIiwidHlwZSIsIlRZUEUiLCJFcnJvciIsInNwcmludGYiLCJuYW1lIiwicHJlY2lzaW9uIiwic2NhbGUiLCJkYXRhTGVuZ3RoIiwic2NoZW1hIiwidWR0SW5mbyIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvbWV0YWRhdGEtcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxhdGlvbiB9IGZyb20gJy4vY29sbGF0aW9uJztcbmltcG9ydCB7IHR5cGUgUGFyc2VyT3B0aW9ucyB9IGZyb20gJy4vdG9rZW4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyBUWVBFLCB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgdHlwZSBDcnlwdG9NZXRhZGF0YSB9IGZyb20gJy4vYWx3YXlzLWVuY3J5cHRlZC90eXBlcyc7XG5cbmltcG9ydCB7IHNwcmludGYgfSBmcm9tICdzcHJpbnRmLWpzJztcblxuaW1wb3J0IHsgUmVzdWx0LCBOb3RFbm91Z2hEYXRhRXJyb3IsIHJlYWRVSW50OCwgcmVhZEJWYXJDaGFyLCByZWFkVXNWYXJDaGFyLCByZWFkVUludDE2TEUsIHJlYWRVSW50MzJMRSB9IGZyb20gJy4vdG9rZW4vaGVscGVycyc7XG5cbmludGVyZmFjZSBYbWxTY2hlbWEge1xuICBkYm5hbWU6IHN0cmluZztcbiAgb3duaW5nU2NoZW1hOiBzdHJpbmc7XG4gIHhtbFNjaGVtYUNvbGxlY3Rpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFVkdEluZm8ge1xuICBtYXhCeXRlU2l6ZTogbnVtYmVyO1xuICBkYm5hbWU6IHN0cmluZztcbiAgb3duaW5nU2NoZW1hOiBzdHJpbmc7XG4gIHR5cGVOYW1lOiBzdHJpbmc7XG4gIGFzc2VtYmx5TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBCYXNlTWV0YWRhdGEgPSB7XG4gIHVzZXJUeXBlOiBudW1iZXI7XG5cbiAgZmxhZ3M6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb2x1bW4ncyB0eXBlLCBzdWNoIGFzIFZhckNoYXIsIEludCBvciBCaW5hcnkuXG4gICAqL1xuICB0eXBlOiBEYXRhVHlwZTtcblxuICBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBwcmVjaXNpb24uIE9ubHkgYXBwbGljYWJsZSB0byBudW1lcmljIGFuZCBkZWNpbWFsLlxuICAgKi9cbiAgcHJlY2lzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzY2FsZS4gT25seSBhcHBsaWNhYmxlIHRvIG51bWVyaWMsIGRlY2ltYWwsIHRpbWUsIGRhdGV0aW1lMiBhbmQgZGF0ZXRpbWVvZmZzZXQuXG4gICAqL1xuICBzY2FsZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoLCBmb3IgY2hhciwgdmFyY2hhciwgbnZhcmNoYXIgYW5kIHZhcmJpbmFyeS5cbiAgICovXG4gIGRhdGFMZW5ndGg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBzY2hlbWE6IFhtbFNjaGVtYSB8IHVuZGVmaW5lZDtcblxuICB1ZHRJbmZvOiBVZHRJbmZvIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgdHlwZSBNZXRhZGF0YSA9IHtcbiAgY3J5cHRvTWV0YWRhdGE/OiBDcnlwdG9NZXRhZGF0YTtcbn0gJiBCYXNlTWV0YWRhdGE7XG5cbmZ1bmN0aW9uIHJlYWRDb2xsYXRpb24oYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PENvbGxhdGlvbj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgNSkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgNSk7XG4gIH1cblxuICBjb25zdCBjb2xsYXRpb24gPSBDb2xsYXRpb24uZnJvbUJ1ZmZlcihidWYuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyA1KSk7XG4gIHJldHVybiBuZXcgUmVzdWx0KGNvbGxhdGlvbiwgb2Zmc2V0ICsgNSk7XG59XG5cbmZ1bmN0aW9uIHJlYWRTY2hlbWEoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PFhtbFNjaGVtYSB8IHVuZGVmaW5lZD4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGxldCBzY2hlbWFQcmVzZW50O1xuICAoeyBvZmZzZXQsIHZhbHVlOiBzY2hlbWFQcmVzZW50IH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAoc2NoZW1hUHJlc2VudCAhPT0gMHgwMSkge1xuICAgIHJldHVybiBuZXcgUmVzdWx0KHVuZGVmaW5lZCwgb2Zmc2V0KTtcbiAgfVxuXG4gIGxldCBkYm5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IGRibmFtZSB9ID0gcmVhZEJWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgbGV0IG93bmluZ1NjaGVtYTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogb3duaW5nU2NoZW1hIH0gPSByZWFkQlZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgeG1sU2NoZW1hQ29sbGVjdGlvbjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogeG1sU2NoZW1hQ29sbGVjdGlvbiB9ID0gcmVhZFVzVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KHsgZGJuYW1lLCBvd25pbmdTY2hlbWEsIHhtbFNjaGVtYUNvbGxlY3Rpb24gfSwgb2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gcmVhZFVEVEluZm8oYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PFVkdEluZm8+IHtcbiAgbGV0IG1heEJ5dGVTaXplO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBtYXhCeXRlU2l6ZSB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgbGV0IGRibmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogZGJuYW1lIH0gPSByZWFkQlZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgb3duaW5nU2NoZW1hO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBvd25pbmdTY2hlbWEgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCB0eXBlTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogdHlwZU5hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBhc3NlbWJseU5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IGFzc2VtYmx5TmFtZSB9ID0gcmVhZFVzVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICBtYXhCeXRlU2l6ZTogbWF4Qnl0ZVNpemUsXG4gICAgZGJuYW1lOiBkYm5hbWUsXG4gICAgb3duaW5nU2NoZW1hOiBvd25pbmdTY2hlbWEsXG4gICAgdHlwZU5hbWU6IHR5cGVOYW1lLFxuICAgIGFzc2VtYmx5TmFtZTogYXNzZW1ibHlOYW1lXG4gIH0sIG9mZnNldCk7XG59XG5cbmZ1bmN0aW9uIHJlYWRNZXRhZGF0YShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8TWV0YWRhdGE+IHtcbiAgbGV0IHVzZXJUeXBlO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB1c2VyVHlwZSB9ID0gKG9wdGlvbnMudGRzVmVyc2lvbiA8ICc3XzInID8gcmVhZFVJbnQxNkxFIDogcmVhZFVJbnQzMkxFKShidWYsIG9mZnNldCkpO1xuXG4gIGxldCBmbGFncztcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogZmxhZ3MgfSA9IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkpO1xuXG4gIGxldCB0eXBlTnVtYmVyO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0eXBlTnVtYmVyIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBjb25zdCB0eXBlOiBEYXRhVHlwZSA9IFRZUEVbdHlwZU51bWJlcl07XG4gIGlmICghdHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihzcHJpbnRmKCdVbnJlY29nbmlzZWQgZGF0YSB0eXBlIDB4JTAyWCcsIHR5cGVOdW1iZXIpKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZS5uYW1lKSB7XG4gICAgY2FzZSAnTnVsbCc6XG4gICAgY2FzZSAnVGlueUludCc6XG4gICAgY2FzZSAnU21hbGxJbnQnOlxuICAgIGNhc2UgJ0ludCc6XG4gICAgY2FzZSAnQmlnSW50JzpcbiAgICBjYXNlICdSZWFsJzpcbiAgICBjYXNlICdGbG9hdCc6XG4gICAgY2FzZSAnU21hbGxNb25leSc6XG4gICAgY2FzZSAnTW9uZXknOlxuICAgIGNhc2UgJ0JpdCc6XG4gICAgY2FzZSAnU21hbGxEYXRlVGltZSc6XG4gICAgY2FzZSAnRGF0ZVRpbWUnOlxuICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgcmV0dXJuIG5ldyBSZXN1bHQoe1xuICAgICAgICB1c2VyVHlwZTogdXNlclR5cGUsXG4gICAgICAgIGZsYWdzOiBmbGFncyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgY29sbGF0aW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHByZWNpc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICBzY2FsZTogdW5kZWZpbmVkLFxuICAgICAgICBkYXRhTGVuZ3RoOiB1bmRlZmluZWQsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH0sIG9mZnNldCk7XG5cbiAgICBjYXNlICdJbnROJzpcbiAgICBjYXNlICdGbG9hdE4nOlxuICAgIGNhc2UgJ01vbmV5Tic6XG4gICAgY2FzZSAnQml0Tic6XG4gICAgY2FzZSAnVW5pcXVlSWRlbnRpZmllcic6XG4gICAgY2FzZSAnRGF0ZVRpbWVOJzoge1xuICAgICAgbGV0IGRhdGFMZW5ndGg7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBkYXRhTGVuZ3RoIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICAgICAgcmV0dXJuIG5ldyBSZXN1bHQoe1xuICAgICAgICB1c2VyVHlwZTogdXNlclR5cGUsXG4gICAgICAgIGZsYWdzOiBmbGFncyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgY29sbGF0aW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHByZWNpc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICBzY2FsZTogdW5kZWZpbmVkLFxuICAgICAgICBkYXRhTGVuZ3RoOiBkYXRhTGVuZ3RoLFxuICAgICAgICBzY2hlbWE6IHVuZGVmaW5lZCxcbiAgICAgICAgdWR0SW5mbzogdW5kZWZpbmVkXG4gICAgICB9LCBvZmZzZXQpO1xuICAgIH1cblxuICAgIGNhc2UgJ1ZhcmlhbnQnOiB7XG4gICAgICBsZXQgZGF0YUxlbmd0aDtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IGRhdGFMZW5ndGggfSA9IHJlYWRVSW50MzJMRShidWYsIG9mZnNldCkpO1xuXG4gICAgICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgICAgIHVzZXJUeXBlOiB1c2VyVHlwZSxcbiAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjb2xsYXRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHNjYWxlOiB1bmRlZmluZWQsXG4gICAgICAgIGRhdGFMZW5ndGg6IGRhdGFMZW5ndGgsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH0sIG9mZnNldCk7XG4gICAgfVxuXG4gICAgY2FzZSAnVmFyQ2hhcic6XG4gICAgY2FzZSAnQ2hhcic6XG4gICAgY2FzZSAnTlZhckNoYXInOlxuICAgIGNhc2UgJ05DaGFyJzoge1xuICAgICAgbGV0IGRhdGFMZW5ndGg7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBkYXRhTGVuZ3RoIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICAgICAgbGV0IGNvbGxhdGlvbjtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IGNvbGxhdGlvbiB9ID0gcmVhZENvbGxhdGlvbihidWYsIG9mZnNldCkpO1xuXG4gICAgICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgICAgIHVzZXJUeXBlOiB1c2VyVHlwZSxcbiAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjb2xsYXRpb246IGNvbGxhdGlvbixcbiAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHNjYWxlOiB1bmRlZmluZWQsXG4gICAgICAgIGRhdGFMZW5ndGg6IGRhdGFMZW5ndGgsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH0sIG9mZnNldCk7XG4gICAgfVxuXG4gICAgY2FzZSAnVGV4dCc6XG4gICAgY2FzZSAnTlRleHQnOiB7XG4gICAgICBsZXQgZGF0YUxlbmd0aDtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IGRhdGFMZW5ndGggfSA9IHJlYWRVSW50MzJMRShidWYsIG9mZnNldCkpO1xuXG4gICAgICBsZXQgY29sbGF0aW9uO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sbGF0aW9uIH0gPSByZWFkQ29sbGF0aW9uKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICAgICAgdXNlclR5cGU6IHVzZXJUeXBlLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbGxhdGlvbjogY29sbGF0aW9uLFxuICAgICAgICBwcmVjaXNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgc2NhbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGF0YUxlbmd0aDogZGF0YUxlbmd0aCxcbiAgICAgICAgc2NoZW1hOiB1bmRlZmluZWQsXG4gICAgICAgIHVkdEluZm86IHVuZGVmaW5lZFxuICAgICAgfSwgb2Zmc2V0KTtcbiAgICB9XG5cbiAgICBjYXNlICdWYXJCaW5hcnknOlxuICAgIGNhc2UgJ0JpbmFyeSc6IHtcbiAgICAgIGxldCBkYXRhTGVuZ3RoO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogZGF0YUxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICAgICAgdXNlclR5cGU6IHVzZXJUeXBlLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbGxhdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICBwcmVjaXNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgc2NhbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGF0YUxlbmd0aDogZGF0YUxlbmd0aCxcbiAgICAgICAgc2NoZW1hOiB1bmRlZmluZWQsXG4gICAgICAgIHVkdEluZm86IHVuZGVmaW5lZFxuICAgICAgfSwgb2Zmc2V0KTtcbiAgICB9XG5cbiAgICBjYXNlICdJbWFnZSc6IHtcbiAgICAgIGxldCBkYXRhTGVuZ3RoO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogZGF0YUxlbmd0aCB9ID0gcmVhZFVJbnQzMkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICAgICAgdXNlclR5cGU6IHVzZXJUeXBlLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbGxhdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICBwcmVjaXNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgc2NhbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGF0YUxlbmd0aDogZGF0YUxlbmd0aCxcbiAgICAgICAgc2NoZW1hOiB1bmRlZmluZWQsXG4gICAgICAgIHVkdEluZm86IHVuZGVmaW5lZFxuICAgICAgfSwgb2Zmc2V0KTtcbiAgICB9XG5cbiAgICBjYXNlICdYbWwnOiB7XG4gICAgICBsZXQgc2NoZW1hO1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogc2NoZW1hIH0gPSByZWFkU2NoZW1hKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICAgICAgdXNlclR5cGU6IHVzZXJUeXBlLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbGxhdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICBwcmVjaXNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgc2NhbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGF0YUxlbmd0aDogdW5kZWZpbmVkLFxuICAgICAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICAgICAgdWR0SW5mbzogdW5kZWZpbmVkXG4gICAgICB9LCBvZmZzZXQpO1xuICAgIH1cblxuICAgIGNhc2UgJ1RpbWUnOlxuICAgIGNhc2UgJ0RhdGVUaW1lMic6XG4gICAgY2FzZSAnRGF0ZVRpbWVPZmZzZXQnOiB7XG4gICAgICBsZXQgc2NhbGU7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBzY2FsZSB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICAgICAgdXNlclR5cGU6IHVzZXJUeXBlLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbGxhdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICBwcmVjaXNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgc2NhbGU6IHNjYWxlLFxuICAgICAgICBkYXRhTGVuZ3RoOiB1bmRlZmluZWQsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH0sIG9mZnNldCk7XG4gICAgfVxuXG4gICAgY2FzZSAnTnVtZXJpY04nOlxuICAgIGNhc2UgJ0RlY2ltYWxOJzoge1xuICAgICAgbGV0IGRhdGFMZW5ndGg7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBkYXRhTGVuZ3RoIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICAgICAgbGV0IHByZWNpc2lvbjtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IHByZWNpc2lvbiB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICAgIGxldCBzY2FsZTtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IHNjYWxlIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICAgICAgcmV0dXJuIG5ldyBSZXN1bHQoe1xuICAgICAgICB1c2VyVHlwZTogdXNlclR5cGUsXG4gICAgICAgIGZsYWdzOiBmbGFncyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgY29sbGF0aW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHByZWNpc2lvbjogcHJlY2lzaW9uLFxuICAgICAgICBzY2FsZTogc2NhbGUsXG4gICAgICAgIGRhdGFMZW5ndGg6IGRhdGFMZW5ndGgsXG4gICAgICAgIHNjaGVtYTogdW5kZWZpbmVkLFxuICAgICAgICB1ZHRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH0sIG9mZnNldCk7XG4gICAgfVxuXG4gICAgY2FzZSAnVURUJzoge1xuICAgICAgbGV0IHVkdEluZm87XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiB1ZHRJbmZvIH0gPSByZWFkVURUSW5mbyhidWYsIG9mZnNldCkpO1xuXG4gICAgICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgICAgIHVzZXJUeXBlOiB1c2VyVHlwZSxcbiAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjb2xsYXRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHNjYWxlOiB1bmRlZmluZWQsXG4gICAgICAgIGRhdGFMZW5ndGg6IHVuZGVmaW5lZCxcbiAgICAgICAgc2NoZW1hOiB1bmRlZmluZWQsXG4gICAgICAgIHVkdEluZm86IHVkdEluZm9cbiAgICAgIH0sIG9mZnNldCk7XG4gICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihzcHJpbnRmKCdVbnJlY29nbmlzZWQgdHlwZSAlcycsIHR5cGUubmFtZSkpO1xuICB9XG59XG5cbmV4cG9ydCB7IHJlYWRDb2xsYXRpb24sIHJlYWRNZXRhZGF0YSB9O1xuXG5tb2R1bGUuZXhwb3J0cy5yZWFkQ29sbGF0aW9uID0gcmVhZENvbGxhdGlvbjtcbm1vZHVsZS5leHBvcnRzLnJlYWRNZXRhZGF0YSA9IHJlYWRNZXRhZGF0YTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQWtEQSxTQUFTSSxhQUFhQSxD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-parser.js","names":["_collation","require","_dataType","_sprintfJs","_helpers","readCollation","buf","offset","length","NotEnoughDataError","collation","Collation","fromBuffer","slice","Result","readSchema","schemaPresent","value","readUInt8","undefined","dbname","readBVarChar","owningSchema","xmlSchemaCollection","readUsVarChar","readUDTInfo","maxByteSize","readUInt16LE","typeName","assemblyName","readMetadata","options","userType","tdsVersion","readUInt32LE","flags","typeNumber","type","TYPE","Error","sprintf","name","precision","scale","dataLength","schema","udtInfo","metadataParse","parser","callback","result","buffer","position","err","waitForChunk","_default","exports","default","module"],"sources":["../src/metadata-parser.ts"],"sourcesContent":["import { Collation } from './collation';\nimport Parser, { type ParserOptions } from './token/stream-parser';\nimport { TYPE, type DataType } from './data-type';\nimport { type CryptoMetadata } from './always-encrypted/types';\n\nimport { sprintf } from 'sprintf-js';\n\nimport { Result, NotEnoughDataError, readUInt8, readBVarChar, readUsVarChar, readUInt16LE, readUInt32LE } from './token/helpers';\n\ninterface XmlSchema {\n dbname: string;\n owningSchema: string;\n xmlSchemaCollection: string;\n}\n\ninterface UdtInfo {\n maxByteSize: number;\n dbname: string;\n owningSchema: string;\n typeName: string;\n assemblyName: string;\n}\n\nexport type BaseMetadata = {\n userType: number;\n\n flags: number;\n /**\n * The column's type, such as VarChar, Int or Binary.\n */\n type: DataType;\n\n collation: Collation | undefined;\n /**\n * The precision. Only applicable to numeric and decimal.\n */\n precision: number | undefined;\n\n /**\n * The scale. Only applicable to numeric, decimal, time, datetime2 and datetimeoffset.\n */\n scale: number | undefined;\n\n /**\n * The length, for char, varchar, nvarchar and varbinary.\n */\n dataLength: number | undefined;\n\n schema: XmlSchema | undefined;\n\n udtInfo: UdtInfo | undefined;\n}\n\nexport type Metadata = {\n cryptoMetadata?: CryptoMetadata;\n} & BaseMetadata;\n\nfunction readCollation(buf: Buffer, offset: number): Result<Collation> {\n offset = +offset;\n\n if (buf.length < offset + 5) {\n throw new NotEnoughDataError(offset + 5);\n }\n\n const collation = Collation.fromBuffer(buf.slice(offset, offset + 5));\n return new Result(collation, offset + 5);\n}\n\nfunction readSchema(buf: Buffer, offset: number): Result<XmlSchema | undefined> {\n offset = +offset;\n\n let schemaPresent;\n ({ offset, value: schemaPresent } = readUInt8(buf, offset));\n\n if (schemaPresent !== 0x01) {\n return new Result(undefined, offset);\n }\n\n let dbname;\n ({ offset, value: dbname } = readBVarChar(buf, offset));\n\n let owningSchema;\n ({ offset, value: owningSchema } = readBVarChar(buf, offset));\n\n let xmlSchemaCollection;\n ({ offset, value: xmlSchemaCollection } = readUsVarChar(buf, offset));\n\n return new Result({ dbname, owningSchema, xmlSchemaCollection }, offset);\n}\n\nfunction readUDTInfo(buf: Buffer, offset: number): Result<UdtInfo> {\n let maxByteSize;\n ({ offset, value: maxByteSize } = readUInt16LE(buf, offset));\n\n let dbname;\n ({ offset, value: dbname } = readBVarChar(buf, offset));\n\n let owningSchema;\n ({ offset, value: owningSchema } = readBVarChar(buf, offset));\n\n let typeName;\n ({ offset, value: typeName } = readBVarChar(buf, offset));\n\n let assemblyName;\n ({ offset, value: assemblyName } = readUsVarChar(buf, offset));\n\n return new Result({\n maxByteSize: maxByteSize,\n dbname: dbname,\n owningSchema: owningSchema,\n typeName: typeName,\n assemblyName: assemblyName\n }, offset);\n}\n\nfunction readMetadata(buf: Buffer, offset: number, options: ParserOptions): Result<Metadata> {\n let userType;\n ({ offset, value: userType } = (options.tdsVersion < '7_2' ? readUInt16LE : readUInt32LE)(buf, offset));\n\n let flags;\n ({ offset, value: flags } = readUInt16LE(buf, offset));\n\n let typeNumber;\n ({ offset, value: typeNumber } = readUInt8(buf, offset));\n\n const type: DataType = TYPE[typeNumber];\n if (!type) {\n throw new Error(sprintf('Unrecognised data type 0x%02X', typeNumber));\n }\n\n switch (type.name) {\n case 'Null':\n case 'TinyInt':\n case 'SmallInt':\n case 'Int':\n case 'BigInt':\n case 'Real':\n case 'Float':\n case 'SmallMoney':\n case 'Money':\n case 'Bit':\n case 'SmallDateTime':\n case 'DateTime':\n case 'Date':\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: undefined,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n\n case 'IntN':\n case 'FloatN':\n case 'MoneyN':\n case 'BitN':\n case 'UniqueIdentifier':\n case 'DateTimeN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Variant': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'VarChar':\n case 'Char':\n case 'NVarChar':\n case 'NChar': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n let collation;\n ({ offset, value: collation } = readCollation(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: collation,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Text':\n case 'NText': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n let collation;\n ({ offset, value: collation } = readCollation(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: collation,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'VarBinary':\n case 'Binary': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Image': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Xml': {\n let schema;\n ({ offset, value: schema } = readSchema(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: undefined,\n schema: schema,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Time':\n case 'DateTime2':\n case 'DateTimeOffset': {\n let scale;\n ({ offset, value: scale } = readUInt8(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: scale,\n dataLength: undefined,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'NumericN':\n case 'DecimalN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n let precision;\n ({ offset, value: precision } = readUInt8(buf, offset));\n\n let scale;\n ({ offset, value: scale } = readUInt8(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: precision,\n scale: scale,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'UDT': {\n let udtInfo;\n ({ offset, value: udtInfo } = readUDTInfo(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: undefined,\n schema: undefined,\n udtInfo: udtInfo\n }, offset);\n }\n\n default:\n throw new Error(sprintf('Unrecognised type %s', type.name));\n }\n}\n\nfunction metadataParse(parser: Parser, options: ParserOptions, callback: (metadata: Metadata) => void) {\n (async () => {\n while (true) {\n let result;\n try {\n result = readMetadata(parser.buffer, parser.position, options);\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 = result.offset;\n return callback(result.value);\n }\n })();\n}\n\nexport default metadataParse;\nexport { readCollation, readMetadata };\n\nmodule.exports = metadataParse;\nmodule.exports.readCollation = readCollation;\nmodule.exports.readMetadata = readMetadata;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"metadata-parser.js","names":["_collation","require","_dataType","_sprintfJs","_helpers","readCollation","buf","offset","length","NotEnoughDataError","collation","Collation","fromBuffer","slice","Result","readSchema","schemaPresent","value","readUInt8","undefined","dbname","readBVarChar","owningSchema","xmlSchemaCollection","readUsVarChar","readUDTInfo","maxByteSize","readUInt16LE","typeName","assemblyName","readMetadata","options","userType","tdsVersion","readUInt32LE","flags","typeNumber","type","TYPE","Error","sprintf","name","precision","scale","dataLength","schema","udtInfo","module","exports"],"sources":["../src/metadata-parser.ts"],"sourcesContent":["import { Collation } from './collation';\nimport { type ParserOptions } from './token/stream-parser';\nimport { TYPE, type DataType } from './data-type';\nimport { type CryptoMetadata } from './always-encrypted/types';\n\nimport { sprintf } from 'sprintf-js';\n\nimport { Result, NotEnoughDataError, readUInt8, readBVarChar, readUsVarChar, readUInt16LE, readUInt32LE } from './token/helpers';\n\ninterface XmlSchema {\n dbname: string;\n owningSchema: string;\n xmlSchemaCollection: string;\n}\n\ninterface UdtInfo {\n maxByteSize: number;\n dbname: string;\n owningSchema: string;\n typeName: string;\n assemblyName: string;\n}\n\nexport type BaseMetadata = {\n userType: number;\n\n flags: number;\n /**\n * The column's type, such as VarChar, Int or Binary.\n */\n type: DataType;\n\n collation: Collation | undefined;\n /**\n * The precision. Only applicable to numeric and decimal.\n */\n precision: number | undefined;\n\n /**\n * The scale. Only applicable to numeric, decimal, time, datetime2 and datetimeoffset.\n */\n scale: number | undefined;\n\n /**\n * The length, for char, varchar, nvarchar and varbinary.\n */\n dataLength: number | undefined;\n\n schema: XmlSchema | undefined;\n\n udtInfo: UdtInfo | undefined;\n}\n\nexport type Metadata = {\n cryptoMetadata?: CryptoMetadata;\n} & BaseMetadata;\n\nfunction readCollation(buf: Buffer, offset: number): Result<Collation> {\n offset = +offset;\n\n if (buf.length < offset + 5) {\n throw new NotEnoughDataError(offset + 5);\n }\n\n const collation = Collation.fromBuffer(buf.slice(offset, offset + 5));\n return new Result(collation, offset + 5);\n}\n\nfunction readSchema(buf: Buffer, offset: number): Result<XmlSchema | undefined> {\n offset = +offset;\n\n let schemaPresent;\n ({ offset, value: schemaPresent } = readUInt8(buf, offset));\n\n if (schemaPresent !== 0x01) {\n return new Result(undefined, offset);\n }\n\n let dbname;\n ({ offset, value: dbname } = readBVarChar(buf, offset));\n\n let owningSchema;\n ({ offset, value: owningSchema } = readBVarChar(buf, offset));\n\n let xmlSchemaCollection;\n ({ offset, value: xmlSchemaCollection } = readUsVarChar(buf, offset));\n\n return new Result({ dbname, owningSchema, xmlSchemaCollection }, offset);\n}\n\nfunction readUDTInfo(buf: Buffer, offset: number): Result<UdtInfo> {\n let maxByteSize;\n ({ offset, value: maxByteSize } = readUInt16LE(buf, offset));\n\n let dbname;\n ({ offset, value: dbname } = readBVarChar(buf, offset));\n\n let owningSchema;\n ({ offset, value: owningSchema } = readBVarChar(buf, offset));\n\n let typeName;\n ({ offset, value: typeName } = readBVarChar(buf, offset));\n\n let assemblyName;\n ({ offset, value: assemblyName } = readUsVarChar(buf, offset));\n\n return new Result({\n maxByteSize: maxByteSize,\n dbname: dbname,\n owningSchema: owningSchema,\n typeName: typeName,\n assemblyName: assemblyName\n }, offset);\n}\n\nfunction readMetadata(buf: Buffer, offset: number, options: ParserOptions): Result<Metadata> {\n let userType;\n ({ offset, value: userType } = (options.tdsVersion < '7_2' ? readUInt16LE : readUInt32LE)(buf, offset));\n\n let flags;\n ({ offset, value: flags } = readUInt16LE(buf, offset));\n\n let typeNumber;\n ({ offset, value: typeNumber } = readUInt8(buf, offset));\n\n const type: DataType = TYPE[typeNumber];\n if (!type) {\n throw new Error(sprintf('Unrecognised data type 0x%02X', typeNumber));\n }\n\n switch (type.name) {\n case 'Null':\n case 'TinyInt':\n case 'SmallInt':\n case 'Int':\n case 'BigInt':\n case 'Real':\n case 'Float':\n case 'SmallMoney':\n case 'Money':\n case 'Bit':\n case 'SmallDateTime':\n case 'DateTime':\n case 'Date':\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: undefined,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n\n case 'IntN':\n case 'FloatN':\n case 'MoneyN':\n case 'BitN':\n case 'UniqueIdentifier':\n case 'DateTimeN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Variant': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'VarChar':\n case 'Char':\n case 'NVarChar':\n case 'NChar': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n let collation;\n ({ offset, value: collation } = readCollation(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: collation,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Text':\n case 'NText': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n let collation;\n ({ offset, value: collation } = readCollation(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: collation,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'VarBinary':\n case 'Binary': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Image': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Xml': {\n let schema;\n ({ offset, value: schema } = readSchema(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: undefined,\n schema: schema,\n udtInfo: undefined\n }, offset);\n }\n\n case 'Time':\n case 'DateTime2':\n case 'DateTimeOffset': {\n let scale;\n ({ offset, value: scale } = readUInt8(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: scale,\n dataLength: undefined,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'NumericN':\n case 'DecimalN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n let precision;\n ({ offset, value: precision } = readUInt8(buf, offset));\n\n let scale;\n ({ offset, value: scale } = readUInt8(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: precision,\n scale: scale,\n dataLength: dataLength,\n schema: undefined,\n udtInfo: undefined\n }, offset);\n }\n\n case 'UDT': {\n let udtInfo;\n ({ offset, value: udtInfo } = readUDTInfo(buf, offset));\n\n return new Result({\n userType: userType,\n flags: flags,\n type: type,\n collation: undefined,\n precision: undefined,\n scale: undefined,\n dataLength: undefined,\n schema: undefined,\n udtInfo: udtInfo\n }, offset);\n }\n\n default:\n throw new Error(sprintf('Unrecognised type %s', type.name));\n }\n}\n\nexport { readCollation, readMetadata };\n\nmodule.exports.readCollation = readCollation;\nmodule.exports.readMetadata = readMetadata;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Metadata } from '../metadata-parser';
|
|
2
|
-
import Parser from './stream-parser';
|
|
2
|
+
import Parser, { type TokenReader } from './stream-parser';
|
|
3
3
|
import { ColMetadataToken } from './token';
|
|
4
4
|
export interface ColumnMetadata extends Metadata {
|
|
5
5
|
/**
|
|
@@ -8,5 +8,13 @@ export interface ColumnMetadata extends Metadata {
|
|
|
8
8
|
colName: string;
|
|
9
9
|
tableName?: string | string[] | undefined;
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Reads a `COLMETADATA` token column by column, so that tokens describing many
|
|
13
|
+
* columns are not parsed again from the start whenever they span chunks.
|
|
14
|
+
*/
|
|
15
|
+
export declare class ColMetadataTokenReader implements TokenReader {
|
|
16
|
+
columnCount: number | undefined;
|
|
17
|
+
columns: ColumnMetadata[];
|
|
18
|
+
constructor();
|
|
19
|
+
read(parser: Parser): ColMetadataToken;
|
|
20
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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(
|
|
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
|
-
|
|
123
|
-
|
|
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","
|
|
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
|
-
|
|
4
|
-
|
|
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
|
+
}
|