tedious 1.13.2 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/appveyor.yml +2 -0
  2. package/lib/all-headers.js +2 -5
  3. package/lib/buffertools.js +1 -1
  4. package/lib/bulk-load.js +18 -27
  5. package/lib/collation.js +78 -6
  6. package/lib/connection.js +120 -159
  7. package/lib/data-type.js +73 -72
  8. package/lib/debug.js +5 -17
  9. package/lib/errors.js +8 -16
  10. package/lib/guid-parser.js +2 -5
  11. package/lib/instance-lookup.js +7 -16
  12. package/lib/library.js +1 -5
  13. package/lib/login7-payload.js +16 -34
  14. package/lib/message-io.js +21 -35
  15. package/lib/metadata-parser.js +22 -18
  16. package/lib/ntlm-payload.js +9 -24
  17. package/lib/packet.js +11 -18
  18. package/lib/prelogin-payload.js +10 -19
  19. package/lib/request.js +15 -24
  20. package/lib/rpcrequest-payload.js +7 -16
  21. package/lib/special-stored-procedure.js +3 -7
  22. package/lib/sqlbatch-payload.js +7 -16
  23. package/lib/stream-parser.js +24 -36
  24. package/lib/tds-versions.js +2 -8
  25. package/lib/tedious.js +8 -52
  26. package/lib/token/colmetadata-token-parser.js +4 -14
  27. package/lib/token/done-token-parser.js +6 -9
  28. package/lib/token/env-change-token-parser.js +4 -9
  29. package/lib/token/infoerror-token-parser.js +9 -12
  30. package/lib/token/loginack-token-parser.js +8 -8
  31. package/lib/token/nbcrow-token-parser.js +5 -15
  32. package/lib/token/order-token-parser.js +3 -9
  33. package/lib/token/returnstatus-token-parser.js +3 -9
  34. package/lib/token/returnvalue-token-parser.js +7 -20
  35. package/lib/token/row-token-parser.js +5 -15
  36. package/lib/token/sspi-token-parser.js +3 -8
  37. package/lib/token/stream-parser.js +60 -58
  38. package/lib/token/token-stream-parser.js +14 -23
  39. package/lib/token/token.js +3 -7
  40. package/lib/tracking-buffer/bigint.js +2 -5
  41. package/lib/tracking-buffer/readable-tracking-buffer.js +6 -13
  42. package/lib/tracking-buffer/tracking-buffer.js +2 -16
  43. package/lib/tracking-buffer/writable-tracking-buffer.js +3 -15
  44. package/lib/transaction.js +7 -12
  45. package/lib/value-parser.js +95 -69
  46. package/package.json +6 -1
package/lib/connection.js CHANGED
@@ -8,67 +8,27 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
8
8
 
9
9
  var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
10
10
 
11
- var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
12
-
13
- Object.defineProperty(exports, '__esModule', {
14
- value: true
15
- });
16
-
17
11
  require('./buffertools');
18
12
 
19
- var _bulkLoad = require('./bulk-load');
20
-
21
- var _bulkLoad2 = _interopRequireDefault(_bulkLoad);
22
-
23
- var _debug = require('./debug');
24
-
25
- var _debug2 = _interopRequireDefault(_debug);
26
-
27
- var _events = require('events');
28
-
29
- var _instanceLookup = require('./instance-lookup');
30
-
31
- var _packet = require('./packet');
32
-
33
- var _preloginPayload = require('./prelogin-payload');
34
-
35
- var _preloginPayload2 = _interopRequireDefault(_preloginPayload);
36
-
37
- var _login7Payload = require('./login7-payload');
38
-
39
- var _login7Payload2 = _interopRequireDefault(_login7Payload);
40
-
41
- var _ntlmPayload = require('./ntlm-payload');
42
-
43
- var _ntlmPayload2 = _interopRequireDefault(_ntlmPayload);
44
-
45
- var _request = require('./request');
46
-
47
- var _request2 = _interopRequireDefault(_request);
48
-
49
- var _rpcrequestPayload = require('./rpcrequest-payload');
50
-
51
- var _rpcrequestPayload2 = _interopRequireDefault(_rpcrequestPayload);
52
-
53
- var _sqlbatchPayload = require('./sqlbatch-payload');
54
-
55
- var _sqlbatchPayload2 = _interopRequireDefault(_sqlbatchPayload);
56
-
57
- var _messageIo = require('./message-io');
58
-
59
- var _messageIo2 = _interopRequireDefault(_messageIo);
60
-
61
- var _net = require('net');
62
-
63
- var _tokenTokenStreamParser = require('./token/token-stream-parser');
64
-
65
- var _transaction = require('./transaction');
66
-
67
- var _crypto = require('crypto');
68
-
69
- var _crypto2 = _interopRequireDefault(_crypto);
70
-
71
- var _errors = require('./errors');
13
+ var BulkLoad = require('./bulk-load');
14
+ var Debug = require('./debug');
15
+ var EventEmitter = require('events').EventEmitter;
16
+ var instanceLookup = require('./instance-lookup').instanceLookup;
17
+ var TYPE = require('./packet').TYPE;
18
+ var PreloginPayload = require('./prelogin-payload');
19
+ var Login7Payload = require('./login7-payload');
20
+ var NTLMResponsePayload = require('./ntlm-payload');
21
+ var Request = require('./request');
22
+ var RpcRequestPayload = require('./rpcrequest-payload');
23
+ var SqlBatchPayload = require('./sqlbatch-payload');
24
+ var MessageIO = require('./message-io');
25
+ var Socket = require('net').Socket;
26
+ var TokenStreamParser = require('./token/token-stream-parser').Parser;
27
+ var Transaction = require('./transaction').Transaction;
28
+ var ISOLATION_LEVEL = require('./transaction').ISOLATION_LEVEL;
29
+ var crypto = require('crypto');
30
+ var ConnectionError = require('./errors').ConnectionError;
31
+ var RequestError = require('./errors').RequestError;
72
32
 
73
33
  // A rather basic state machine for managing a connection.
74
34
  // Implements something approximating s3.2.1.
@@ -167,7 +127,7 @@ var Connection = (function (_EventEmitter) {
167
127
  }
168
128
 
169
129
  if (!this.config.options.isolationLevel) {
170
- this.config.options.isolationLevel = _transaction.ISOLATION_LEVEL.READ_COMMITTED;
130
+ this.config.options.isolationLevel = ISOLATION_LEVEL.READ_COMMITTED;
171
131
  }
172
132
 
173
133
  if (this.config.options.encrypt == undefined) {
@@ -187,7 +147,7 @@ var Connection = (function (_EventEmitter) {
187
147
  }
188
148
 
189
149
  if (!this.config.options.connectionIsolationLevel) {
190
- this.config.options.connectionIsolationLevel = _transaction.ISOLATION_LEVEL.READ_COMMITTED;
150
+ this.config.options.connectionIsolationLevel = ISOLATION_LEVEL.READ_COMMITTED;
191
151
  }
192
152
 
193
153
  if (this.config.options.readOnlyIntent == undefined) {
@@ -201,10 +161,10 @@ var Connection = (function (_EventEmitter) {
201
161
  if (!this.config.options.port && !this.config.options.instanceName) {
202
162
  this.config.options.port = DEFAULT_PORT;
203
163
  } else if (this.config.options.port && this.config.options.instanceName) {
204
- throw new Error("Port and instanceName are mutually exclusive, but " + this.config.options.port + " and " + this.config.options.instanceName + " provided");
164
+ throw new Error('Port and instanceName are mutually exclusive, but ' + this.config.options.port + ' and ' + this.config.options.instanceName + ' provided');
205
165
  } else if (this.config.options.port) {
206
166
  if (this.config.options.port < 0 || this.config.options.port > 65536) {
207
- throw new RangeError("Port should be > 0 and < 65536");
167
+ throw new RangeError('Port should be > 0 and < 65536');
208
168
  }
209
169
  }
210
170
 
@@ -217,7 +177,7 @@ var Connection = (function (_EventEmitter) {
217
177
  value: function createDebug() {
218
178
  var _this = this;
219
179
 
220
- this.debug = new _debug2['default'](this.config.options.debug);
180
+ this.debug = new Debug(this.config.options.debug);
221
181
  return this.debug.on('debug', function (message) {
222
182
  return _this.emit('debug', message);
223
183
  });
@@ -227,7 +187,7 @@ var Connection = (function (_EventEmitter) {
227
187
  value: function createTokenStreamParser() {
228
188
  var _this2 = this;
229
189
 
230
- this.tokenStreamParser = new _tokenTokenStreamParser.Parser(this.debug, void 0, this.config.options);
190
+ this.tokenStreamParser = new TokenStreamParser(this.debug, void 0, this.config.options);
231
191
 
232
192
  this.tokenStreamParser.on('infoMessage', function (token) {
233
193
  return _this2.emit('infoMessage', token);
@@ -244,16 +204,16 @@ var Connection = (function (_EventEmitter) {
244
204
  _this2.emit('errorMessage', token);
245
205
  if (_this2.loggedIn) {
246
206
  if (_this2.request) {
247
- _this2.request.error = (0, _errors.RequestError)(token.message, 'EREQUEST');
207
+ _this2.request.error = RequestError(token.message, 'EREQUEST');
248
208
  _this2.request.error.number = token.number;
249
209
  _this2.request.error.state = token.state;
250
- _this2.request.error["class"] = token["class"];
210
+ _this2.request.error['class'] = token['class'];
251
211
  _this2.request.error.serverName = token.serverName;
252
212
  _this2.request.error.procName = token.procName;
253
213
  return _this2.request.error.lineNumber = token.lineNumber;
254
214
  }
255
215
  } else {
256
- return _this2.loginError = (0, _errors.ConnectionError)(token.message, 'ELOGIN');
216
+ return _this2.loginError = ConnectionError(token.message, 'ELOGIN');
257
217
  }
258
218
  });
259
219
 
@@ -272,14 +232,14 @@ var Connection = (function (_EventEmitter) {
272
232
  this.tokenStreamParser.on('loginack', function (token) {
273
233
  if (!token.tdsVersion) {
274
234
  // unsupported TDS version
275
- _this2.loginError = (0, _errors.ConnectionError)("Server responded with unknown TDS version.", 'ETDS');
235
+ _this2.loginError = ConnectionError('Server responded with unknown TDS version.', 'ETDS');
276
236
  _this2.loggedIn = false;
277
237
  return;
278
238
  }
279
239
 
280
- if (!token["interface"]) {
240
+ if (!token['interface']) {
281
241
  // unsupported interface
282
- _this2.loginError = (0, _errors.ConnectionError)("Server responded with unsupported interface.", 'EINTERFACENOTSUPP');
242
+ _this2.loginError = ConnectionError('Server responded with unsupported interface.', 'EINTERFACENOTSUPP');
283
243
  _this2.loggedIn = false;
284
244
  return;
285
245
  }
@@ -408,11 +368,11 @@ var Connection = (function (_EventEmitter) {
408
368
  this.tokenStreamParser.on('done', function (token) {
409
369
  if (_this2.request) {
410
370
  if (token.attention) {
411
- _this2.dispatchEvent("attention");
371
+ _this2.dispatchEvent('attention');
412
372
  }
413
373
  if (token.sqlError && !_this2.request.error) {
414
374
  // check if the DONE_ERROR flags was set, but an ERROR token was not sent.
415
- _this2.request.error = (0, _errors.RequestError)('An unknown error has occurred.', 'UNKNOWN');
375
+ _this2.request.error = RequestError('An unknown error has occurred.', 'UNKNOWN');
416
376
  }
417
377
  _this2.request.emit('done', token.rowCount, token.more, _this2.request.rst);
418
378
  if (token.rowCount !== void 0) {
@@ -441,12 +401,12 @@ var Connection = (function (_EventEmitter) {
441
401
  if (this.config.options.port) {
442
402
  return this.connectOnPort(this.config.options.port);
443
403
  } else {
444
- return (0, _instanceLookup.instanceLookup)(this.config.server, this.config.options.instanceName, function (message, port) {
404
+ return instanceLookup(this.config.server, this.config.options.instanceName, function (message, port) {
445
405
  if (_this3.state === _this3.STATE.FINAL) {
446
406
  return;
447
407
  }
448
408
  if (message) {
449
- return _this3.emit('connect', (0, _errors.ConnectionError)(message, 'EINSTLOOKUP'));
409
+ return _this3.emit('connect', ConnectionError(message, 'EINSTLOOKUP'));
450
410
  } else {
451
411
  return _this3.connectOnPort(port);
452
412
  }
@@ -458,7 +418,7 @@ var Connection = (function (_EventEmitter) {
458
418
  value: function connectOnPort(port) {
459
419
  var _this4 = this;
460
420
 
461
- this.socket = new _net.Socket({});
421
+ this.socket = new Socket({});
462
422
  var connectOpts = {
463
423
  host: this.routingData ? this.routingData.server : this.config.server,
464
424
  port: this.routingData ? this.routingData.port : port
@@ -471,7 +431,7 @@ var Connection = (function (_EventEmitter) {
471
431
  this.socket.on('connect', this.socketConnect);
472
432
  this.socket.on('close', this.socketClose);
473
433
  this.socket.on('end', this.socketEnd);
474
- this.messageIo = new _messageIo2['default'](this.socket, this.config.options.packetSize, this.debug);
434
+ this.messageIo = new MessageIO(this.socket, this.config.options.packetSize, this.debug);
475
435
  this.messageIo.on('data', function (data) {
476
436
  _this4.dispatchEvent('data', data);
477
437
  });
@@ -502,9 +462,9 @@ var Connection = (function (_EventEmitter) {
502
462
  }, {
503
463
  key: 'connectTimeout',
504
464
  value: function connectTimeout() {
505
- var message = "Failed to connect to " + this.config.server + ":" + this.config.options.port + " in " + this.config.options.connectTimeout + "ms";
465
+ var message = 'Failed to connect to ' + this.config.server + ':' + this.config.options.port + ' in ' + this.config.options.connectTimeout + 'ms';
506
466
  this.debug.log(message);
507
- this.emit('connect', (0, _errors.ConnectionError)(message, 'ETIMEOUT'));
467
+ this.emit('connect', ConnectionError(message, 'ETIMEOUT'));
508
468
  this.connectTimer = void 0;
509
469
  return this.dispatchEvent('connectTimeout');
510
470
  }
@@ -512,7 +472,7 @@ var Connection = (function (_EventEmitter) {
512
472
  key: 'requestTimeout',
513
473
  value: function requestTimeout() {
514
474
  this.requestTimer = void 0;
515
- this.messageIo.sendMessage(_packet.TYPE.ATTENTION);
475
+ this.messageIo.sendMessage(TYPE.ATTENTION);
516
476
  return this.transitionTo(this.STATE.SENT_ATTENTION);
517
477
  }
518
478
  }, {
@@ -533,7 +493,7 @@ var Connection = (function (_EventEmitter) {
533
493
  key: 'transitionTo',
534
494
  value: function transitionTo(newState) {
535
495
  if (this.state === newState) {
536
- this.debug.log("State is already " + newState.name);
496
+ this.debug.log('State is already ' + newState.name);
537
497
  return;
538
498
  }
539
499
 
@@ -541,7 +501,7 @@ var Connection = (function (_EventEmitter) {
541
501
  this.state.exit.apply(this);
542
502
  }
543
503
 
544
- this.debug.log("State change: " + (this.state ? this.state.name : undefined) + " -> " + newState.name);
504
+ this.debug.log('State change: ' + (this.state ? this.state.name : undefined) + ' -> ' + newState.name);
545
505
  this.state = newState;
546
506
 
547
507
  if (this.state.enter) {
@@ -552,13 +512,13 @@ var Connection = (function (_EventEmitter) {
552
512
  key: 'dispatchEvent',
553
513
  value: function dispatchEvent(eventName) {
554
514
  if (this.state.events[eventName]) {
555
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
556
- args[_key - 1] = arguments[_key];
515
+ var args = new Array(arguments.length - 1);
516
+ for (var i = 0; i < args.length;) {
517
+ args[i++] = arguments[i];
557
518
  }
558
-
559
519
  return this.state.events[eventName].apply(this, args);
560
520
  } else {
561
- this.emit('error', new Error("No event '" + eventName + "' in state '" + this.state.name + "'"));
521
+ this.emit('error', new Error('No event \'' + eventName + '\' in state \'' + this.state.name + '\''));
562
522
  return this.close();
563
523
  }
564
524
  }
@@ -566,13 +526,13 @@ var Connection = (function (_EventEmitter) {
566
526
  key: 'socketError',
567
527
  value: function socketError(error) {
568
528
  if (this.state === this.STATE.CONNECTING) {
569
- var message = "Failed to connect to " + this.config.server + ":" + this.config.options.port + " - " + error.message;
529
+ var message = 'Failed to connect to ' + this.config.server + ':' + this.config.options.port + ' - ' + error.message;
570
530
  this.debug.log(message);
571
- this.emit('connect', (0, _errors.ConnectionError)(message, 'ESOCKET'));
531
+ this.emit('connect', ConnectionError(message, 'ESOCKET'));
572
532
  } else {
573
- var message = "Connection lost - " + error.message;
533
+ var message = 'Connection lost - ' + error.message;
574
534
  this.debug.log(message);
575
- this.emit('error', (0, _errors.ConnectionError)(message, 'ESOCKET'));
535
+ this.emit('error', ConnectionError(message, 'ESOCKET'));
576
536
  }
577
537
  return this.dispatchEvent('socketError', error);
578
538
  }
@@ -581,21 +541,21 @@ var Connection = (function (_EventEmitter) {
581
541
  value: function socketConnect() {
582
542
  this.socket.setKeepAlive(true, KEEP_ALIVE_INITIAL_DELAY);
583
543
  this.closed = false;
584
- this.debug.log("connected to " + this.config.server + ":" + this.config.options.port);
544
+ this.debug.log('connected to ' + this.config.server + ':' + this.config.options.port);
585
545
  return this.dispatchEvent('socketConnect');
586
546
  }
587
547
  }, {
588
548
  key: 'socketEnd',
589
549
  value: function socketEnd() {
590
- this.debug.log("socket ended");
550
+ this.debug.log('socket ended');
591
551
  return this.transitionTo(this.STATE.FINAL);
592
552
  }
593
553
  }, {
594
554
  key: 'socketClose',
595
555
  value: function socketClose() {
596
- this.debug.log("connection to " + this.config.server + ":" + this.config.options.port + " closed");
556
+ this.debug.log('connection to ' + this.config.server + ':' + this.config.options.port + ' closed');
597
557
  if (this.state === this.STATE.REROUTING) {
598
- this.debug.log("Rerouting to " + this.routingData.server + ":" + this.routingData.port);
558
+ this.debug.log('Rerouting to ' + this.routingData.server + ':' + this.routingData.port);
599
559
  return this.dispatchEvent('reconnect');
600
560
  } else {
601
561
  return this.transitionTo(this.STATE.FINAL);
@@ -604,10 +564,10 @@ var Connection = (function (_EventEmitter) {
604
564
  }, {
605
565
  key: 'sendPreLogin',
606
566
  value: function sendPreLogin() {
607
- var payload = new _preloginPayload2['default']({
567
+ var payload = new PreloginPayload({
608
568
  encrypt: this.config.options.encrypt
609
569
  });
610
- this.messageIo.sendMessage(_packet.TYPE.PRELOGIN, payload.data);
570
+ this.messageIo.sendMessage(TYPE.PRELOGIN, payload.data);
611
571
  return this.debug.payload(function () {
612
572
  return payload.toString(' ');
613
573
  });
@@ -625,7 +585,7 @@ var Connection = (function (_EventEmitter) {
625
585
  }, {
626
586
  key: 'processPreLoginResponse',
627
587
  value: function processPreLoginResponse() {
628
- var preloginPayload = new _preloginPayload2['default'](this.messageBuffer);
588
+ var preloginPayload = new PreloginPayload(this.messageBuffer);
629
589
  this.debug.payload(function () {
630
590
  return preloginPayload.toString(' ');
631
591
  });
@@ -639,7 +599,7 @@ var Connection = (function (_EventEmitter) {
639
599
  }, {
640
600
  key: 'sendLogin7Packet',
641
601
  value: function sendLogin7Packet() {
642
- var payload = new _login7Payload2['default']({
602
+ var payload = new Login7Payload({
643
603
  domain: this.config.domain,
644
604
  userName: this.config.userName,
645
605
  password: this.config.password,
@@ -653,7 +613,7 @@ var Connection = (function (_EventEmitter) {
653
613
  });
654
614
 
655
615
  this.routingData = undefined;
656
- this.messageIo.sendMessage(_packet.TYPE.LOGIN7, payload.data);
616
+ this.messageIo.sendMessage(TYPE.LOGIN7, payload.data);
657
617
 
658
618
  return this.debug.payload(function () {
659
619
  return payload.toString(' ');
@@ -662,7 +622,7 @@ var Connection = (function (_EventEmitter) {
662
622
  }, {
663
623
  key: 'sendNTLMResponsePacket',
664
624
  value: function sendNTLMResponsePacket() {
665
- var payload = new _ntlmPayload2['default']({
625
+ var payload = new NTLMResponsePayload({
666
626
  domain: this.config.domain,
667
627
  userName: this.config.userName,
668
628
  password: this.config.password,
@@ -673,7 +633,7 @@ var Connection = (function (_EventEmitter) {
673
633
  ntlmpacket: this.ntlmpacket,
674
634
  additional: this.additional
675
635
  });
676
- this.messageIo.sendMessage(_packet.TYPE.NTLMAUTH_PKT, payload.data);
636
+ this.messageIo.sendMessage(TYPE.NTLMAUTH_PKT, payload.data);
677
637
  return this.debug.payload(function () {
678
638
  return payload.toString(' ');
679
639
  });
@@ -686,15 +646,15 @@ var Connection = (function (_EventEmitter) {
686
646
  }, {
687
647
  key: 'sendInitialSql',
688
648
  value: function sendInitialSql() {
689
- var payload = new _sqlbatchPayload2['default'](this.getInitialSql(), this.currentTransactionDescriptor(), this.config.options);
690
- return this.messageIo.sendMessage(_packet.TYPE.SQL_BATCH, payload.data);
649
+ var payload = new SqlBatchPayload(this.getInitialSql(), this.currentTransactionDescriptor(), this.config.options);
650
+ return this.messageIo.sendMessage(TYPE.SQL_BATCH, payload.data);
691
651
  }
692
652
  }, {
693
653
  key: 'getInitialSql',
694
654
  value: function getInitialSql() {
695
655
  var xact_abort = this.config.options.abortTransactionOnError ? 'on' : 'off';
696
656
  var enableAnsiNullDefault = this.config.options.enableAnsiNullDefault ? 'on' : 'off';
697
- return "set textsize " + this.config.options.textsize + "\nset quoted_identifier on\nset arithabort off\nset numeric_roundabort off\nset ansi_warnings on\nset ansi_padding on\nset ansi_nulls on\nset ansi_null_dflt_on " + enableAnsiNullDefault + "\nset concat_null_yields_null on\nset cursor_close_on_commit off\nset implicit_transactions off\nset language us_english\nset dateformat mdy\nset datefirst 7\nset transaction isolation level " + this.getIsolationLevelText(this.config.options.connectionIsolationLevel) + "\nset xact_abort " + xact_abort;
657
+ return 'set textsize ' + this.config.options.textsize + '\nset quoted_identifier on\nset arithabort off\nset numeric_roundabort off\nset ansi_warnings on\nset ansi_padding on\nset ansi_nulls on\nset ansi_null_dflt_on ' + enableAnsiNullDefault + '\nset concat_null_yields_null on\nset cursor_close_on_commit off\nset implicit_transactions off\nset language us_english\nset dateformat mdy\nset datefirst 7\nset transaction isolation level ' + this.getIsolationLevelText(this.config.options.connectionIsolationLevel) + '\nset xact_abort ' + xact_abort;
698
658
  }
699
659
  }, {
700
660
  key: 'processedInitialSql',
@@ -711,7 +671,7 @@ var Connection = (function (_EventEmitter) {
711
671
  if (this.loginError) {
712
672
  this.emit('connect', this.loginError);
713
673
  } else {
714
- this.emit('connect', (0, _errors.ConnectionError)('Login failed.', 'ELOGIN'));
674
+ this.emit('connect', ConnectionError('Login failed.', 'ELOGIN'));
715
675
  }
716
676
  return this.dispatchEvent('loginFailed');
717
677
  }
@@ -725,7 +685,7 @@ var Connection = (function (_EventEmitter) {
725
685
  if (this.loginError) {
726
686
  this.emit('connect', this.loginError);
727
687
  } else {
728
- this.emit('connect', (0, _errors.ConnectionError)('Login failed.', 'ELOGIN'));
688
+ this.emit('connect', ConnectionError('Login failed.', 'ELOGIN'));
729
689
  }
730
690
  return this.dispatchEvent('loginFailed');
731
691
  }
@@ -739,7 +699,7 @@ var Connection = (function (_EventEmitter) {
739
699
  if (this.loginError) {
740
700
  this.emit('connect', this.loginError);
741
701
  } else {
742
- this.emit('connect', (0, _errors.ConnectionError)('Login failed.', 'ELOGIN'));
702
+ this.emit('connect', ConnectionError('Login failed.', 'ELOGIN'));
743
703
  }
744
704
  return this.dispatchEvent('loginFailed');
745
705
  }
@@ -747,7 +707,7 @@ var Connection = (function (_EventEmitter) {
747
707
  }, {
748
708
  key: 'execSqlBatch',
749
709
  value: function execSqlBatch(request) {
750
- return this.makeRequest(request, _packet.TYPE.SQL_BATCH, new _sqlbatchPayload2['default'](request.sqlTextOrProcedure, this.currentTransactionDescriptor(), this.config.options));
710
+ return this.makeRequest(request, TYPE.SQL_BATCH, new SqlBatchPayload(request.sqlTextOrProcedure, this.currentTransactionDescriptor(), this.config.options));
751
711
  }
752
712
  }, {
753
713
  key: 'execSql',
@@ -761,19 +721,19 @@ var Connection = (function (_EventEmitter) {
761
721
  return request.callback(request.error);
762
722
  });
763
723
  }
764
- return this.makeRequest(request, _packet.TYPE.RPC_REQUEST, new _rpcrequestPayload2['default'](request, this.currentTransactionDescriptor(), this.config.options));
724
+ return this.makeRequest(request, TYPE.RPC_REQUEST, new RpcRequestPayload(request, this.currentTransactionDescriptor(), this.config.options));
765
725
  }
766
726
  }, {
767
727
  key: 'newBulkLoad',
768
728
  value: function newBulkLoad(table, callback) {
769
- return new _bulkLoad2['default'](table, this.config.options, callback);
729
+ return new BulkLoad(table, this.config.options, callback);
770
730
  }
771
731
  }, {
772
732
  key: 'execBulkLoad',
773
733
  value: function execBulkLoad(bulkLoad) {
774
734
  var _this6 = this;
775
735
 
776
- var request = new _request2['default'](bulkLoad.getBulkInsertSql(), function (error) {
736
+ var request = new Request(bulkLoad.getBulkInsertSql(), function (error) {
777
737
  if (error) {
778
738
  if (error.code === 'UNKNOWN') {
779
739
  error.message += ' This is likely because the schema of the BulkLoad does not match the schema of the table you are attempting to insert into.';
@@ -781,7 +741,7 @@ var Connection = (function (_EventEmitter) {
781
741
  bulkLoad.error = error;
782
742
  return bulkLoad.callback(error);
783
743
  } else {
784
- return _this6.makeRequest(bulkLoad, _packet.TYPE.BULK_LOAD, bulkLoad.getPayload());
744
+ return _this6.makeRequest(bulkLoad, TYPE.BULK_LOAD, bulkLoad.getPayload());
785
745
  }
786
746
  });
787
747
  return this.execSqlBatch(request);
@@ -790,13 +750,13 @@ var Connection = (function (_EventEmitter) {
790
750
  key: 'prepare',
791
751
  value: function prepare(request) {
792
752
  request.transformIntoPrepareRpc();
793
- return this.makeRequest(request, _packet.TYPE.RPC_REQUEST, new _rpcrequestPayload2['default'](request, this.currentTransactionDescriptor(), this.config.options));
753
+ return this.makeRequest(request, TYPE.RPC_REQUEST, new RpcRequestPayload(request, this.currentTransactionDescriptor(), this.config.options));
794
754
  }
795
755
  }, {
796
756
  key: 'unprepare',
797
757
  value: function unprepare(request) {
798
758
  request.transformIntoUnprepareRpc();
799
- return this.makeRequest(request, _packet.TYPE.RPC_REQUEST, new _rpcrequestPayload2['default'](request, this.currentTransactionDescriptor(), this.config.options));
759
+ return this.makeRequest(request, TYPE.RPC_REQUEST, new RpcRequestPayload(request, this.currentTransactionDescriptor(), this.config.options));
800
760
  }
801
761
  }, {
802
762
  key: 'execute',
@@ -810,7 +770,7 @@ var Connection = (function (_EventEmitter) {
810
770
  return request.callback(request.error);
811
771
  });
812
772
  }
813
- return this.makeRequest(request, _packet.TYPE.RPC_REQUEST, new _rpcrequestPayload2['default'](request, this.currentTransactionDescriptor(), this.config.options));
773
+ return this.makeRequest(request, TYPE.RPC_REQUEST, new RpcRequestPayload(request, this.currentTransactionDescriptor(), this.config.options));
814
774
  }
815
775
  }, {
816
776
  key: 'callProcedure',
@@ -824,7 +784,7 @@ var Connection = (function (_EventEmitter) {
824
784
  return request.callback(request.error);
825
785
  });
826
786
  }
827
- return this.makeRequest(request, _packet.TYPE.RPC_REQUEST, new _rpcrequestPayload2['default'](request, this.currentTransactionDescriptor(), this.config.options));
787
+ return this.makeRequest(request, TYPE.RPC_REQUEST, new RpcRequestPayload(request, this.currentTransactionDescriptor(), this.config.options));
828
788
  }
829
789
  }, {
830
790
  key: 'beginTransaction',
@@ -832,44 +792,44 @@ var Connection = (function (_EventEmitter) {
832
792
  var _this9 = this;
833
793
 
834
794
  isolationLevel || (isolationLevel = this.config.options.isolationLevel);
835
- var transaction = new _transaction.Transaction(name || '', isolationLevel);
836
- if (this.config.options.tdsVersion < "7_2") {
837
- return this.execSqlBatch(new _request2['default']("SET TRANSACTION ISOLATION LEVEL " + transaction.isolationLevelToTSQL() + ";BEGIN TRAN " + transaction.name, callback));
795
+ var transaction = new Transaction(name || '', isolationLevel);
796
+ if (this.config.options.tdsVersion < '7_2') {
797
+ return this.execSqlBatch(new Request('SET TRANSACTION ISOLATION LEVEL ' + transaction.isolationLevelToTSQL() + ';BEGIN TRAN ' + transaction.name, callback));
838
798
  }
839
- var request = new _request2['default'](void 0, function (err) {
799
+ var request = new Request(void 0, function (err) {
840
800
  return callback(err, _this9.currentTransactionDescriptor());
841
801
  });
842
- return this.makeRequest(request, _packet.TYPE.TRANSACTION_MANAGER, transaction.beginPayload(this.currentTransactionDescriptor()));
802
+ return this.makeRequest(request, TYPE.TRANSACTION_MANAGER, transaction.beginPayload(this.currentTransactionDescriptor()));
843
803
  }
844
804
  }, {
845
805
  key: 'commitTransaction',
846
806
  value: function commitTransaction(callback, name) {
847
- var transaction = new _transaction.Transaction(name || '');
848
- if (this.config.options.tdsVersion < "7_2") {
849
- return this.execSqlBatch(new _request2['default']("COMMIT TRAN " + transaction.name, callback));
807
+ var transaction = new Transaction(name || '');
808
+ if (this.config.options.tdsVersion < '7_2') {
809
+ return this.execSqlBatch(new Request('COMMIT TRAN ' + transaction.name, callback));
850
810
  }
851
- var request = new _request2['default'](void 0, callback);
852
- return this.makeRequest(request, _packet.TYPE.TRANSACTION_MANAGER, transaction.commitPayload(this.currentTransactionDescriptor()));
811
+ var request = new Request(void 0, callback);
812
+ return this.makeRequest(request, TYPE.TRANSACTION_MANAGER, transaction.commitPayload(this.currentTransactionDescriptor()));
853
813
  }
854
814
  }, {
855
815
  key: 'rollbackTransaction',
856
816
  value: function rollbackTransaction(callback, name) {
857
- var transaction = new _transaction.Transaction(name || '');
858
- if (this.config.options.tdsVersion < "7_2") {
859
- return this.execSqlBatch(new _request2['default']("ROLLBACK TRAN " + transaction.name, callback));
817
+ var transaction = new Transaction(name || '');
818
+ if (this.config.options.tdsVersion < '7_2') {
819
+ return this.execSqlBatch(new Request('ROLLBACK TRAN ' + transaction.name, callback));
860
820
  }
861
- var request = new _request2['default'](void 0, callback);
862
- return this.makeRequest(request, _packet.TYPE.TRANSACTION_MANAGER, transaction.rollbackPayload(this.currentTransactionDescriptor()));
821
+ var request = new Request(void 0, callback);
822
+ return this.makeRequest(request, TYPE.TRANSACTION_MANAGER, transaction.rollbackPayload(this.currentTransactionDescriptor()));
863
823
  }
864
824
  }, {
865
825
  key: 'saveTransaction',
866
826
  value: function saveTransaction(callback, name) {
867
- var transaction = new _transaction.Transaction(name);
868
- if (this.config.options.tdsVersion < "7_2") {
869
- return this.execSqlBatch(new _request2['default']("SAVE TRAN " + transaction.name, callback));
827
+ var transaction = new Transaction(name);
828
+ if (this.config.options.tdsVersion < '7_2') {
829
+ return this.execSqlBatch(new Request('SAVE TRAN ' + transaction.name, callback));
870
830
  }
871
- var request = new _request2['default'](void 0, callback);
872
- return this.makeRequest(request, _packet.TYPE.TRANSACTION_MANAGER, transaction.savePayload(this.currentTransactionDescriptor()));
831
+ var request = new Request(void 0, callback);
832
+ return this.makeRequest(request, TYPE.TRANSACTION_MANAGER, transaction.savePayload(this.currentTransactionDescriptor()));
873
833
  }
874
834
  }, {
875
835
  key: 'transaction',
@@ -880,15 +840,17 @@ var Connection = (function (_EventEmitter) {
880
840
  throw new TypeError('`cb` must be a function');
881
841
  }
882
842
  var useSavepoint = this.inTransaction;
883
- var name = "_tedious_" + _crypto2['default'].randomBytes(10).toString('hex');
843
+ var name = '_tedious_' + crypto.randomBytes(10).toString('hex');
844
+ var self = this;
884
845
  var txDone = function txDone(err, done) {
885
- for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
886
- args[_key2 - 2] = arguments[_key2];
846
+ var args = new Array(arguments.length - 2);
847
+ for (var i = 0; i < args.length;) {
848
+ args[i++] = arguments[i + 1];
887
849
  }
888
850
 
889
851
  if (err) {
890
- if (_this10.inTransaction && _this10.state === _this10.STATE.LOGGED_IN) {
891
- return _this10.rollbackTransaction(function (txErr) {
852
+ if (self.inTransaction && self.state === self.STATE.LOGGED_IN) {
853
+ return self.rollbackTransaction(function (txErr) {
892
854
  args.unshift(txErr || err);
893
855
  return done.apply(null, args);
894
856
  }, name);
@@ -905,7 +867,7 @@ var Connection = (function (_EventEmitter) {
905
867
  return done.apply(null, args);
906
868
  });
907
869
  } else {
908
- return _this10.commitTransaction(function (txErr) {
870
+ return self.commitTransaction(function (txErr) {
909
871
  args.unshift(txErr);
910
872
  return done.apply(null, args);
911
873
  }, name);
@@ -918,7 +880,7 @@ var Connection = (function (_EventEmitter) {
918
880
  return cb(err);
919
881
  }
920
882
  if (isolationLevel) {
921
- return _this10.execSqlBatch(new _request2['default']("SET transaction isolation level " + _this10.getIsolationLevelText(isolationLevel), function (err) {
883
+ return _this10.execSqlBatch(new Request('SET transaction isolation level ' + _this10.getIsolationLevelText(isolationLevel), function (err) {
922
884
  return cb(err, txDone);
923
885
  }));
924
886
  } else {
@@ -938,9 +900,9 @@ var Connection = (function (_EventEmitter) {
938
900
  key: 'makeRequest',
939
901
  value: function makeRequest(request, packetType, payload) {
940
902
  if (this.state !== this.STATE.LOGGED_IN) {
941
- var message = "Requests can only be made in the " + this.STATE.LOGGED_IN.name + " state, not the " + this.state.name + " state";
903
+ var message = 'Requests can only be made in the ' + this.STATE.LOGGED_IN.name + ' state, not the ' + this.state.name + ' state';
942
904
  this.debug.log(message);
943
- return request.callback((0, _errors.RequestError)(message, 'EINVALIDSTATE'));
905
+ return request.callback(RequestError(message, 'EINVALIDSTATE'));
944
906
  } else {
945
907
  this.request = request;
946
908
  this.request.rowCount = 0;
@@ -959,12 +921,12 @@ var Connection = (function (_EventEmitter) {
959
921
  key: 'cancel',
960
922
  value: function cancel() {
961
923
  if (this.state !== this.STATE.SENT_CLIENT_REQUEST) {
962
- var message = "Requests can only be canceled in the " + this.STATE.SENT_CLIENT_REQUEST.name + " state, not the " + this.state.name + " state";
924
+ var message = 'Requests can only be canceled in the ' + this.STATE.SENT_CLIENT_REQUEST.name + ' state, not the ' + this.state.name + ' state';
963
925
  this.debug.log(message);
964
926
  return false;
965
927
  } else {
966
928
  this.request.canceled = true;
967
- this.messageIo.sendMessage(_packet.TYPE.ATTENTION);
929
+ this.messageIo.sendMessage(TYPE.ATTENTION);
968
930
  this.transitionTo(this.STATE.SENT_ATTENTION);
969
931
  return true;
970
932
  }
@@ -972,7 +934,7 @@ var Connection = (function (_EventEmitter) {
972
934
  }, {
973
935
  key: 'reset',
974
936
  value: function reset(callback) {
975
- var request = new _request2['default'](this.getInitialSql(), function (err) {
937
+ var request = new Request(this.getInitialSql(), function (err) {
976
938
  return callback(err);
977
939
  });
978
940
  this.resetConnectionOnNextRequest = true;
@@ -987,13 +949,13 @@ var Connection = (function (_EventEmitter) {
987
949
  key: 'getIsolationLevelText',
988
950
  value: function getIsolationLevelText(isolationLevel) {
989
951
  switch (isolationLevel) {
990
- case _transaction.ISOLATION_LEVEL.READ_UNCOMMITTED:
952
+ case ISOLATION_LEVEL.READ_UNCOMMITTED:
991
953
  return 'read uncommitted';
992
- case _transaction.ISOLATION_LEVEL.REPEATABLE_READ:
954
+ case ISOLATION_LEVEL.REPEATABLE_READ:
993
955
  return 'repeatable read';
994
- case _transaction.ISOLATION_LEVEL.SERIALIZABLE:
956
+ case ISOLATION_LEVEL.SERIALIZABLE:
995
957
  return 'serializable';
996
- case _transaction.ISOLATION_LEVEL.SNAPSHOT:
958
+ case ISOLATION_LEVEL.SNAPSHOT:
997
959
  return 'snapshot';
998
960
  default:
999
961
  return 'read committed';
@@ -1002,9 +964,9 @@ var Connection = (function (_EventEmitter) {
1002
964
  }]);
1003
965
 
1004
966
  return Connection;
1005
- })(_events.EventEmitter);
967
+ })(EventEmitter);
1006
968
 
1007
- exports['default'] = Connection;
969
+ module.exports = Connection;
1008
970
 
1009
971
  Connection.prototype.STATE = {
1010
972
  CONNECTING: {
@@ -1241,10 +1203,10 @@ Connection.prototype.STATE = {
1241
1203
  this.request = void 0;
1242
1204
  this.transitionTo(this.STATE.LOGGED_IN);
1243
1205
  if (sqlRequest.canceled) {
1244
- return sqlRequest.callback((0, _errors.RequestError)("Canceled.", 'ECANCEL'));
1206
+ return sqlRequest.callback(RequestError('Canceled.', 'ECANCEL'));
1245
1207
  } else {
1246
- var message = "Timeout: Request failed to complete in " + this.config.options.requestTimeout + "ms";
1247
- return sqlRequest.callback((0, _errors.RequestError)(message, 'ETIMEOUT'));
1208
+ var message = 'Timeout: Request failed to complete in ' + this.config.options.requestTimeout + 'ms';
1209
+ return sqlRequest.callback(RequestError(message, 'ETIMEOUT'));
1248
1210
  }
1249
1211
  }
1250
1212
  }
@@ -1270,5 +1232,4 @@ Connection.prototype.STATE = {
1270
1232
  }
1271
1233
  }
1272
1234
  }
1273
- };
1274
- module.exports = exports['default'];
1235
+ };