Comparing version 8.3.0 to 8.3.1
@@ -24,2 +24,8 @@ "use strict"; | ||
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } | ||
const FLAGS = { | ||
@@ -88,8 +94,8 @@ nullable: 1 << 0, | ||
}; | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
var _iterator = _createForOfIteratorHelper(c.type.generateParameterData(parameter, this.mainOptions)), | ||
_step; | ||
try { | ||
for (var _iterator = c.type.generateParameterData(parameter, this.mainOptions)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
for (_iterator.s(); !(_step = _iterator.n()).done;) { | ||
const chunk = _step.value; | ||
@@ -99,14 +105,5 @@ this.push(chunk); | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
_iterator.e(err); | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return != null) { | ||
_iterator.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
_iterator.f(); | ||
} | ||
@@ -113,0 +110,0 @@ } |
@@ -20,2 +20,8 @@ "use strict"; | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
class ParallelConnectionStrategy { | ||
@@ -61,6 +67,5 @@ constructor(addresses, options) { | ||
for (let i = 0, len = addresses.length; i < len; i++) { | ||
const socket = sockets[i] = _net.default.connect(Object.create(this.options, { | ||
host: { | ||
value: addresses[i].address | ||
} | ||
const socket = sockets[i] = _net.default.connect(_objectSpread(_objectSpread({}, this.options), {}, { | ||
host: addresses[i].address, | ||
family: addresses[i].family | ||
})); | ||
@@ -92,6 +97,5 @@ | ||
const socket = _net.default.connect(Object.create(this.options, { | ||
host: { | ||
value: next.address | ||
} | ||
const socket = _net.default.connect(_objectSpread(_objectSpread({}, this.options), {}, { | ||
host: next.address, | ||
family: next.family | ||
})); | ||
@@ -122,5 +126,9 @@ | ||
constructor(options, multiSubnetFailover) { | ||
var _options$lookup; | ||
this.options = void 0; | ||
this.multiSubnetFailover = void 0; | ||
this.lookup = void 0; | ||
this.options = options; | ||
this.lookup = (_options$lookup = options.lookup) !== null && _options$lookup !== void 0 ? _options$lookup : _dns.default.lookup; | ||
this.multiSubnetFailover = multiSubnetFailover; | ||
@@ -130,33 +138,3 @@ } | ||
execute(cb) { | ||
if (_net.default.isIP(this.options.host)) { | ||
this.executeForIP(cb); | ||
} else { | ||
this.executeForHostname(cb); | ||
} | ||
} | ||
executeForIP(cb) { | ||
const socket = _net.default.connect(this.options); | ||
const onError = err => { | ||
socket.removeListener('error', onError); | ||
socket.removeListener('connect', onConnect); | ||
socket.destroy(); | ||
cb(err); | ||
}; | ||
const onConnect = () => { | ||
socket.removeListener('error', onError); | ||
socket.removeListener('connect', onConnect); | ||
cb(null, socket); | ||
}; | ||
socket.on('error', onError); | ||
socket.on('connect', onConnect); | ||
} | ||
executeForHostname(cb) { | ||
_dns.default.lookup(punycode.toASCII(this.options.host), { | ||
all: true | ||
}, (err, addresses) => { | ||
this.lookupAllAddresses(this.options.host, (err, addresses) => { | ||
if (err) { | ||
@@ -174,4 +152,22 @@ return cb(err); | ||
lookupAllAddresses(host, callback) { | ||
if (_net.default.isIPv6(host)) { | ||
process.nextTick(callback, null, [{ | ||
address: host, | ||
family: 6 | ||
}]); | ||
} else if (_net.default.isIPv4(host)) { | ||
process.nextTick(callback, null, [{ | ||
address: host, | ||
family: 4 | ||
}]); | ||
} else { | ||
this.lookup.call(null, punycode.toASCII(host), { | ||
all: true | ||
}, callback); | ||
} | ||
} | ||
} | ||
exports.Connector = Connector; |
@@ -25,7 +25,7 @@ "use strict"; | ||
generateTypeInfo(parameter) { | ||
var _ref, _parameter$value, _ref2, _parameter$value2; | ||
var _parameter$value$sche, _parameter$value, _parameter$value$name, _parameter$value2; | ||
const databaseName = ''; | ||
const schema = (_ref = (_parameter$value = parameter.value) === null || _parameter$value === void 0 ? void 0 : _parameter$value.schema) !== null && _ref !== void 0 ? _ref : ''; | ||
const typeName = (_ref2 = (_parameter$value2 = parameter.value) === null || _parameter$value2 === void 0 ? void 0 : _parameter$value2.name) !== null && _ref2 !== void 0 ? _ref2 : ''; | ||
const schema = (_parameter$value$sche = (_parameter$value = parameter.value) === null || _parameter$value === void 0 ? void 0 : _parameter$value.schema) !== null && _parameter$value$sche !== void 0 ? _parameter$value$sche : ''; | ||
const typeName = (_parameter$value$name = (_parameter$value2 = parameter.value) === null || _parameter$value2 === void 0 ? void 0 : _parameter$value2.name) !== null && _parameter$value$name !== void 0 ? _parameter$value$name : ''; | ||
const bufferLength = 1 + 1 + Buffer.byteLength(databaseName, 'ucs2') + 1 + Buffer.byteLength(schema, 'ucs2') + 1 + Buffer.byteLength(typeName, 'ucs2'); | ||
@@ -32,0 +32,0 @@ const buffer = new _writableTrackingBuffer.default(bufferLength, 'ucs2'); |
@@ -10,2 +10,6 @@ "use strict"; | ||
var _dns = _interopRequireDefault(require("dns")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
const SQL_SERVER_BROWSER_PORT = 1434; | ||
@@ -15,11 +19,14 @@ const TIMEOUT = 2 * 1000; | ||
const MYSTERY_HEADER_LENGTH = 3; // Most of the functionality has been determined from from jTDS's MSSqlServerInfo class. | ||
const MYSTERY_HEADER_LENGTH = 3; | ||
// Most of the functionality has been determined from from jTDS's MSSqlServerInfo class. | ||
class InstanceLookup { | ||
// Wrapper allows for stubbing Sender when unit testing instance-lookup. | ||
createSender(host, port, request) { | ||
return new _sender.Sender(host, port, request); | ||
createSender(host, port, lookup, request) { | ||
return new _sender.Sender(host, port, lookup, request); | ||
} | ||
instanceLookup(options, callback) { | ||
var _options$lookup, _options$port; | ||
const server = options.server; | ||
@@ -49,2 +56,14 @@ | ||
if (options.lookup !== undefined && typeof options.lookup !== 'function') { | ||
throw new TypeError('Invalid arguments: "lookup" must be a function'); | ||
} | ||
const lookup = (_options$lookup = options.lookup) !== null && _options$lookup !== void 0 ? _options$lookup : _dns.default.lookup; | ||
if (options.port !== undefined && typeof options.port !== 'number') { | ||
throw new TypeError('Invalid arguments: "port" must be a number'); | ||
} | ||
const port = (_options$port = options.port) !== null && _options$port !== void 0 ? _options$port : SQL_SERVER_BROWSER_PORT; | ||
if (typeof callback !== 'function') { | ||
@@ -54,16 +73,18 @@ throw new TypeError('Invalid arguments: "callback" must be a function'); | ||
let sender; | ||
let timer; | ||
let retriesLeft = retries; | ||
const onTimeout = () => { | ||
sender.cancel(); | ||
makeAttempt(); | ||
}; | ||
const makeAttempt = () => { | ||
let sender; | ||
let timer; | ||
const makeAttempt = () => { | ||
const onTimeout = () => { | ||
sender.cancel(); | ||
makeAttempt(); | ||
}; | ||
if (retriesLeft > 0) { | ||
retriesLeft--; | ||
const request = Buffer.from([0x02]); | ||
sender = this.createSender(options.server, SQL_SERVER_BROWSER_PORT, request); | ||
sender = this.createSender(options.server, port, lookup, request); | ||
timer = setTimeout(onTimeout, timeout); | ||
sender.execute((err, response) => { | ||
@@ -85,3 +106,2 @@ clearTimeout(timer); | ||
}); | ||
timer = setTimeout(onTimeout, timeout); | ||
} else { | ||
@@ -88,0 +108,0 @@ callback('Failed to get response from SQL Server Browser on ' + server); |
@@ -10,4 +10,2 @@ "use strict"; | ||
var _dns = _interopRequireDefault(require("dns")); | ||
var _net = _interopRequireDefault(require("net")); | ||
@@ -120,3 +118,3 @@ | ||
class Sender { | ||
constructor(host, port, request) { | ||
constructor(host, port, lookup, request) { | ||
this.host = void 0; | ||
@@ -126,5 +124,7 @@ this.port = void 0; | ||
this.parallelSendStrategy = void 0; | ||
this.lookup = void 0; | ||
this.host = host; | ||
this.port = port; | ||
this.request = request; | ||
this.lookup = lookup; | ||
this.parallelSendStrategy = null; | ||
@@ -150,3 +150,3 @@ } | ||
invokeLookupAll(host, cb) { | ||
_dns.default.lookup(punycode.toASCII(host), { | ||
this.lookup.call(null, punycode.toASCII(host), { | ||
all: true | ||
@@ -153,0 +153,0 @@ }, cb); |
@@ -81,3 +81,3 @@ "use strict"; | ||
function colMetadataParser(parser, _colMetadata, options, callback) { | ||
function colMetadataParser(parser, options, callback) { | ||
parser.readUInt16LE(columnCount => { | ||
@@ -84,0 +84,0 @@ const columns = []; |
@@ -57,3 +57,3 @@ "use strict"; | ||
function doneParser(parser, _colMetadata, options, callback) { | ||
function doneParser(parser, options, callback) { | ||
parseToken(parser, options, data => { | ||
@@ -64,3 +64,3 @@ callback(new _token.DoneToken(data)); | ||
function doneInProcParser(parser, _colMetadata, options, callback) { | ||
function doneInProcParser(parser, options, callback) { | ||
parseToken(parser, options, data => { | ||
@@ -71,3 +71,3 @@ callback(new _token.DoneInProcToken(data)); | ||
function doneProcParser(parser, _colMetadata, options, callback) { | ||
function doneProcParser(parser, options, callback) { | ||
parseToken(parser, options, data => { | ||
@@ -74,0 +74,0 @@ callback(new _token.DoneProcToken(data)); |
@@ -154,3 +154,3 @@ "use strict"; | ||
function envChangeParser(parser, _colMetadata, _options, callback) { | ||
function envChangeParser(parser, _options, callback) { | ||
parser.readUInt16LE(length => { | ||
@@ -157,0 +157,0 @@ parser.readUInt8(typeNumber => { |
@@ -19,3 +19,3 @@ "use strict"; | ||
function featureExtAckParser(parser, _colMetadata, _options, callback) { | ||
function featureExtAckParser(parser, _options, callback) { | ||
let fedAuth; | ||
@@ -22,0 +22,0 @@ |
@@ -15,3 +15,3 @@ "use strict"; | ||
function fedAuthInfoParser(parser, _colMetadata, _options, callback) { | ||
function fedAuthInfoParser(parser, _options, callback) { | ||
parser.readUInt32LE(tokenLength => { | ||
@@ -18,0 +18,0 @@ parser.readBuffer(tokenLength, data => { |
@@ -40,3 +40,3 @@ "use strict"; | ||
function infoParser(parser, _colMetadata, options, callback) { | ||
function infoParser(parser, options, callback) { | ||
parseToken(parser, options, data => { | ||
@@ -47,3 +47,3 @@ callback(new _token.InfoMessageToken(data)); | ||
function errorParser(parser, _colMetadata, options, callback) { | ||
function errorParser(parser, options, callback) { | ||
parseToken(parser, options, data => { | ||
@@ -50,0 +50,0 @@ callback(new _token.ErrorMessageToken(data)); |
@@ -17,3 +17,3 @@ "use strict"; | ||
function loginAckParser(parser, _colMetadata, _options, callback) { | ||
function loginAckParser(parser, _options, callback) { | ||
// length | ||
@@ -20,0 +20,0 @@ parser.readUInt16LE(() => { |
@@ -19,3 +19,4 @@ "use strict"; | ||
function nbcRowParser(parser, columnsMetaData, options, callback) { | ||
function nbcRowParser(parser, options, callback) { | ||
const columnsMetaData = parser.colMetadata; | ||
const length = Math.ceil(columnsMetaData.length / 8); | ||
@@ -22,0 +23,0 @@ parser.readBuffer(length, bytes => { |
@@ -11,3 +11,3 @@ "use strict"; | ||
// s2.2.7.14 | ||
function orderParser(parser, _colMetadata, _options, callback) { | ||
function orderParser(parser, _options, callback) { | ||
parser.readUInt16LE(length => { | ||
@@ -14,0 +14,0 @@ const columnCount = length / 2; |
@@ -11,3 +11,3 @@ "use strict"; | ||
// s2.2.7.16 | ||
function returnStatusParser(parser, _colMetadata, _options, callback) { | ||
function returnStatusParser(parser, _options, callback) { | ||
parser.readInt32LE(value => { | ||
@@ -14,0 +14,0 @@ callback(new _token.ReturnStatusToken(value)); |
@@ -17,3 +17,3 @@ "use strict"; | ||
// s2.2.7.16 | ||
function returnParser(parser, _colMetadata, options, callback) { | ||
function returnParser(parser, options, callback) { | ||
parser.readUInt16LE(paramOrdinal => { | ||
@@ -20,0 +20,0 @@ parser.readBVarChar(paramName => { |
@@ -15,3 +15,4 @@ "use strict"; | ||
// s2.2.7.17 | ||
function rowParser(parser, colMetadata, options, callback) { | ||
function rowParser(parser, options, callback) { | ||
const colMetadata = parser.colMetadata; | ||
const columns = []; | ||
@@ -18,0 +19,0 @@ const len = colMetadata.length; |
@@ -29,3 +29,3 @@ "use strict"; | ||
function sspiParser(parser, _colMetadata, _options, callback) { | ||
function sspiParser(parser, _options, callback) { | ||
parser.readUsVarByte(buffer => { | ||
@@ -32,0 +32,0 @@ callback(new _token.SSPIToken(parseChallenge(buffer), buffer)); |
@@ -64,3 +64,3 @@ "use strict"; | ||
class Parser extends _readableStream.Transform { | ||
constructor(debug, colMetadata, options) { | ||
constructor(debug, options) { | ||
super({ | ||
@@ -78,3 +78,3 @@ objectMode: true | ||
this.debug = debug; | ||
this.colMetadata = colMetadata; | ||
this.colMetadata = []; | ||
this.options = options; | ||
@@ -133,3 +133,3 @@ this.endOfMessageMarker = new EndOfMessageMarker(); | ||
if (tokenParsers[type]) { | ||
tokenParsers[type](this, this.colMetadata, this.options, doneParsing); | ||
tokenParsers[type](this, this.options, doneParsing); | ||
} else { | ||
@@ -136,0 +136,0 @@ this.emit('error', new Error('Unknown type: ' + type)); |
@@ -25,12 +25,10 @@ "use strict"; | ||
class Parser extends _events.EventEmitter { | ||
constructor(debug, colMetadata, options) { | ||
constructor(debug, options) { | ||
super(); | ||
this.debug = void 0; | ||
this.colMetadata = void 0; | ||
this.options = void 0; | ||
this.parser = void 0; | ||
this.debug = debug; | ||
this.colMetadata = colMetadata; | ||
this.options = options; | ||
this.parser = new _streamParser.default(this.debug, this.colMetadata, this.options); | ||
this.parser = new _streamParser.default(this.debug, this.options); | ||
this.parser.on('data', token => { | ||
@@ -37,0 +35,0 @@ if (token.event) { |
@@ -30,3 +30,3 @@ { | ||
"license": "MIT", | ||
"version": "8.3.0", | ||
"version": "8.3.1", | ||
"main": "./lib/tedious.js", | ||
@@ -57,8 +57,8 @@ "repository": { | ||
"@babel/cli": "^7.8.4", | ||
"@babel/core": "^7.8.6", | ||
"@babel/node": "^7.8.4", | ||
"@babel/core": "^7.9.6", | ||
"@babel/node": "^7.8.7", | ||
"@babel/plugin-proposal-class-properties": "^7.8.3", | ||
"@babel/preset-env": "^7.8.6", | ||
"@babel/preset-typescript": "^7.8.3", | ||
"@babel/register": "^7.8.6", | ||
"@babel/preset-env": "^7.9.6", | ||
"@babel/preset-typescript": "^7.9.0", | ||
"@babel/register": "^7.9.0", | ||
"@commitlint/cli": "^8.3.5", | ||
@@ -68,3 +68,5 @@ "@commitlint/config-conventional": "^8.3.4", | ||
"@types/bl": "^2.1.0", | ||
"@types/chai": "^4.2.11", | ||
"@types/depd": "^1.1.32", | ||
"@types/mocha": "^7.0.2", | ||
"@types/node": "^13.5.1", | ||
@@ -71,0 +73,0 @@ "@types/readable-stream": "^2.3.5", |
@@ -15,4 +15,5 @@ { | ||
"include": [ | ||
"src/**/*.ts", "src/data-types/bitn.js", "src/data-types/bit.js" | ||
"src/**/*.ts", | ||
"test/**/*.ts", | ||
] | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
401551
10820
31