UNPKG

tedious

Version:

A TDS driver, for connecting to MS SQLServer databases.

54 lines (44 loc) 4.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _token = require("./token"); const FEATURE_ID = { SESSIONRECOVERY: 0x01, FEDAUTH: 0x02, COLUMNENCRYPTION: 0x04, GLOBALTRANSACTIONS: 0x05, AZURESQLSUPPORT: 0x08, UTF8_SUPPORT: 0x0A, TERMINATOR: 0xFF }; function featureExtAckParser(parser, _options, callback) { let fedAuth; let utf8Support; function next() { parser.readUInt8(featureId => { if (featureId === FEATURE_ID.TERMINATOR) { return callback(new _token.FeatureExtAckToken(fedAuth, utf8Support)); } parser.readUInt32LE(featureAckDataLen => { parser.readBuffer(featureAckDataLen, featureData => { switch (featureId) { case FEATURE_ID.FEDAUTH: fedAuth = featureData; break; case FEATURE_ID.UTF8_SUPPORT: utf8Support = !!featureData[0]; break; } next(); }); }); }); } next(); } var _default = featureExtAckParser; exports.default = _default; module.exports = featureExtAckParser; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGRUFUVVJFX0lEIiwiU0VTU0lPTlJFQ09WRVJZIiwiRkVEQVVUSCIsIkNPTFVNTkVOQ1JZUFRJT04iLCJHTE9CQUxUUkFOU0FDVElPTlMiLCJBWlVSRVNRTFNVUFBPUlQiLCJVVEY4X1NVUFBPUlQiLCJURVJNSU5BVE9SIiwiZmVhdHVyZUV4dEFja1BhcnNlciIsInBhcnNlciIsIl9vcHRpb25zIiwiY2FsbGJhY2siLCJmZWRBdXRoIiwidXRmOFN1cHBvcnQiLCJuZXh0IiwicmVhZFVJbnQ4IiwiZmVhdHVyZUlkIiwiRmVhdHVyZUV4dEFja1Rva2VuIiwicmVhZFVJbnQzMkxFIiwiZmVhdHVyZUFja0RhdGFMZW4iLCJyZWFkQnVmZmVyIiwiZmVhdHVyZURhdGEiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2ZlYXR1cmUtZXh0LWFjay1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBhcnNlciwgeyBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgRmVhdHVyZUV4dEFja1Rva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmNvbnN0IEZFQVRVUkVfSUQgPSB7XG4gIFNFU1NJT05SRUNPVkVSWTogMHgwMSxcbiAgRkVEQVVUSDogMHgwMixcbiAgQ09MVU1ORU5DUllQVElPTjogMHgwNCxcbiAgR0xPQkFMVFJBTlNBQ1RJT05TOiAweDA1LFxuICBBWlVSRVNRTFNVUFBPUlQ6IDB4MDgsXG4gIFVURjhfU1VQUE9SVDogMHgwQSxcbiAgVEVSTUlOQVRPUjogMHhGRlxufTtcblxuZnVuY3Rpb24gZmVhdHVyZUV4dEFja1BhcnNlcihwYXJzZXI6IFBhcnNlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNhbGxiYWNrOiAodG9rZW46IEZlYXR1cmVFeHRBY2tUb2tlbikgPT4gdm9pZCkge1xuICBsZXQgZmVkQXV0aDogQnVmZmVyIHwgdW5kZWZpbmVkO1xuICBsZXQgdXRmOFN1cHBvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgZnVuY3Rpb24gbmV4dCgpIHtcbiAgICBwYXJzZXIucmVhZFVJbnQ4KChmZWF0dXJlSWQpID0+IHtcbiAgICAgIGlmIChmZWF0dXJlSWQgPT09IEZFQVRVUkVfSUQuVEVSTUlOQVRPUikge1xuICAgICAgICByZXR1cm4gY2FsbGJhY2sobmV3IEZlYXR1cmVFeHRBY2tUb2tlbihmZWRBdXRoLCB1dGY4U3VwcG9ydCkpO1xuICAgICAgfVxuXG4gICAgICBwYXJzZXIucmVhZFVJbnQzMkxFKChmZWF0dXJlQWNrRGF0YUxlbikgPT4ge1xuICAgICAgICBwYXJzZXIucmVhZEJ1ZmZlcihmZWF0dXJlQWNrRGF0YUxlbiwgKGZlYXR1cmVEYXRhKSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChmZWF0dXJlSWQpIHtcbiAgICAgICAgICAgIGNhc2UgRkVBVFVSRV9JRC5GRURBVVRIOlxuICAgICAgICAgICAgICBmZWRBdXRoID0gZmVhdHVyZURhdGE7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGRUFUVVJFX0lELlVURjhfU1VQUE9SVDpcbiAgICAgICAgICAgICAgdXRmOFN1cHBvcnQgPSAhIWZlYXR1cmVEYXRhWzBdO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmV4dCgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmZWF0dXJlRXh0QWNrUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBmZWF0dXJlRXh0QWNrUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUEsTUFBTUEsVUFBVSxHQUFHO0VBQ2pCQyxlQUFlLEVBQUUsSUFEQTtFQUVqQkMsT0FBTyxFQUFFLElBRlE7RUFHakJDLGdCQUFnQixFQUFFLElBSEQ7RUFJakJDLGtCQUFrQixFQUFFLElBSkg7RUFLakJDLGVBQWUsRUFBRSxJQUxBO0VBTWpCQyxZQUFZLEVBQUUsSUFORztFQU9qQkMsVUFBVSxFQUFFO0FBUEssQ0FBbkI7O0FBVUEsU0FBU0MsbUJBQVQsQ0FBNkJDLE1BQTdCLEVBQTZDQyxRQUE3QyxFQUFzRUMsUUFBdEUsRUFBcUg7RUFDbkgsSUFBSUMsT0FBSjtFQUNBLElBQUlDLFdBQUo7O0VBRUEsU0FBU0MsSUFBVCxHQUFnQjtJQUNkTCxNQUFNLENBQUNNLFNBQVAsQ0FBa0JDLFNBQUQsSUFBZTtNQUM5QixJQUFJQSxTQUFTLEtBQUtoQixVQUFVLENBQUNPLFVBQTdCLEVBQXlDO1FBQ3ZDLE9BQU9JLFFBQVEsQ0FBQyxJQUFJTSx5QkFBSixDQUF1QkwsT0FBdkIsRUFBZ0NDLFdBQWhDLENBQUQsQ0FBZjtNQUNEOztNQUVESixNQUFNLENBQUNTLFlBQVAsQ0FBcUJDLGlCQUFELElBQXVCO1FBQ3pDVixNQUFNLENBQUNXLFVBQVAsQ0FBa0JELGlCQUFsQixFQUFzQ0UsV0FBRCxJQUFpQjtVQUNwRCxRQUFRTCxTQUFSO1lBQ0UsS0FBS2hCLFVBQVUsQ0FBQ0UsT0FBaEI7Y0FDRVUsT0FBTyxHQUFHUyxXQUFWO2NBQ0E7O1lBQ0YsS0FBS3JCLFVBQVUsQ0FBQ00sWUFBaEI7Y0FDRU8sV0FBVyxHQUFHLENBQUMsQ0FBQ1EsV0FBVyxDQUFDLENBQUQsQ0FBM0I7Y0FDQTtVQU5KOztVQVFBUCxJQUFJO1FBQ0wsQ0FWRDtNQVdELENBWkQ7SUFhRCxDQWxCRDtFQW1CRDs7RUFFREEsSUFBSTtBQUNMOztlQUVjTixtQjs7QUFDZmMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZixtQkFBakIifQ==