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
@@ -4,27 +4,13 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
4
4
 
5
5
  var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
6
6
 
7
- var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
8
-
9
- Object.defineProperty(exports, '__esModule', {
10
- value: true
11
- });
12
-
13
7
  require('./buffertools');
14
8
 
15
- var _trackingBufferWritableTrackingBuffer = require('./tracking-buffer/writable-tracking-buffer');
16
-
17
- var _trackingBufferWritableTrackingBuffer2 = _interopRequireDefault(_trackingBufferWritableTrackingBuffer);
18
-
19
- var _os = require('os');
20
-
21
- var _os2 = _interopRequireDefault(_os);
22
-
23
- var _sprintf = require('sprintf');
24
-
25
- var _library = require('./library');
26
-
27
- var _tdsVersions = require('./tds-versions');
9
+ var WritableTrackingBuffer = require('./tracking-buffer/writable-tracking-buffer');
10
+ var os = require('os');
11
+ var sprintf = require('sprintf').sprintf;
12
+ var libraryName = require('./library').name;
13
+ var versions = require('./tds-versions').versions;
28
14
 
29
15
  var FLAGS_1 = {
30
16
  ENDIAN_LITTLE: 0x00,
@@ -114,8 +100,7 @@ var NTLMFlags = {
114
100
  /*
115
101
  s2.2.6.3
116
102
  */
117
-
118
- var Login7Payload = (function () {
103
+ module.exports = (function () {
119
104
  function Login7Payload(loginData) {
120
105
  _classCallCheck(this, Login7Payload);
121
106
 
@@ -125,7 +110,7 @@ var Login7Payload = (function () {
125
110
  var fixed = this.createFixedData();
126
111
  var variable = this.createVariableData(lengthLength + fixed.length);
127
112
  var length = lengthLength + fixed.length + variable.length;
128
- var data = new _trackingBufferWritableTrackingBuffer2['default'](300);
113
+ var data = new WritableTrackingBuffer(300);
129
114
  data.writeUInt32LE(length);
130
115
  data.writeBuffer(fixed);
131
116
  data.writeBuffer(variable);
@@ -135,7 +120,7 @@ var Login7Payload = (function () {
135
120
  _createClass(Login7Payload, [{
136
121
  key: 'createFixedData',
137
122
  value: function createFixedData() {
138
- this.tdsVersion = _tdsVersions.versions[this.loginData.tdsVersion];
123
+ this.tdsVersion = versions[this.loginData.tdsVersion];
139
124
  this.packetSize = this.loginData.packetSize;
140
125
  this.clientProgVer = 0;
141
126
  this.clientPid = process.pid;
@@ -162,7 +147,7 @@ var Login7Payload = (function () {
162
147
  this.typeFlags |= TYPE_FLAGS.READ_WRITE_INTENT;
163
148
  }
164
149
 
165
- var buffer = new _trackingBufferWritableTrackingBuffer2['default'](100);
150
+ var buffer = new WritableTrackingBuffer(100);
166
151
  buffer.writeUInt32LE(this.tdsVersion);
167
152
  buffer.writeUInt32LE(this.packetSize);
168
153
  buffer.writeUInt32LE(this.clientProgVer);
@@ -184,14 +169,14 @@ var Login7Payload = (function () {
184
169
  this.variableLengthsLength = 9 * 4 + 6 + 2 * 4;
185
170
  }
186
171
  var variableData = {
187
- offsetsAndLengths: new _trackingBufferWritableTrackingBuffer2['default'](200),
188
- data: new _trackingBufferWritableTrackingBuffer2['default'](200, 'ucs2'),
172
+ offsetsAndLengths: new WritableTrackingBuffer(200),
173
+ data: new WritableTrackingBuffer(200, 'ucs2'),
189
174
  offset: offset + this.variableLengthsLength
190
175
  };
191
- this.hostname = _os2['default'].hostname();
176
+ this.hostname = os.hostname();
192
177
  this.loginData = this.loginData || {};
193
178
  this.loginData.appName = this.loginData.appName || 'Tedious';
194
- this.libraryName = _library.name;
179
+ this.libraryName = libraryName;
195
180
  this.clientId = new Buffer([1, 2, 3, 4, 5, 6]);
196
181
  if (!this.loginData.domain) {
197
182
  this.sspi = '';
@@ -251,7 +236,7 @@ var Login7Payload = (function () {
251
236
  var protocol = 'NTLMSSP\u0000';
252
237
  var BODY_LENGTH = 40;
253
238
  var bufferLength = BODY_LENGTH + domain.length;
254
- var buffer = new _trackingBufferWritableTrackingBuffer2['default'](bufferLength);
239
+ var buffer = new WritableTrackingBuffer(bufferLength);
255
240
 
256
241
  var type1flags = this.getNTLMFlags();
257
242
  if (workstation === '') {
@@ -302,12 +287,9 @@ var Login7Payload = (function () {
302
287
  key: 'toString',
303
288
  value: function toString(indent) {
304
289
  indent || (indent = '');
305
- return indent + 'Login7 - ' + (0, _sprintf.sprintf)('TDS:0x%08X, PacketSize:0x%08X, ClientProgVer:0x%08X, ClientPID:0x%08X, ConnectionID:0x%08X', this.tdsVersion, this.packetSize, this.clientProgVer, this.clientPid, this.connectionId) + '\n' + indent + ' ' + (0, _sprintf.sprintf)('Flags1:0x%02X, Flags2:0x%02X, TypeFlags:0x%02X, Flags3:0x%02X, ClientTimezone:%d, ClientLCID:0x%08X', this.flags1, this.flags2, this.typeFlags, this.flags3, this.clientTimeZone, this.clientLcid) + '\n' + indent + ' ' + (0, _sprintf.sprintf)("Hostname:'%s', Username:'%s', Password:'%s', AppName:'%s', ServerName:'%s', LibraryName:'%s'", this.hostname, this.loginData.userName, this.loginData.password, this.loginData.appName, this.loginData.serverName, _library.name) + '\n' + indent + ' ' + (0, _sprintf.sprintf)("Language:'%s', Database:'%s', SSPI:'%s', AttachDbFile:'%s', ChangePassword:'%s'", this.loginData.language, this.loginData.database, this.sspi, this.attachDbFile, this.changePassword);
290
+ return indent + 'Login7 - ' + sprintf('TDS:0x%08X, PacketSize:0x%08X, ClientProgVer:0x%08X, ClientPID:0x%08X, ConnectionID:0x%08X', this.tdsVersion, this.packetSize, this.clientProgVer, this.clientPid, this.connectionId) + '\n' + indent + ' ' + sprintf('Flags1:0x%02X, Flags2:0x%02X, TypeFlags:0x%02X, Flags3:0x%02X, ClientTimezone:%d, ClientLCID:0x%08X', this.flags1, this.flags2, this.typeFlags, this.flags3, this.clientTimeZone, this.clientLcid) + '\n' + indent + ' ' + sprintf("Hostname:'%s', Username:'%s', Password:'%s', AppName:'%s', ServerName:'%s', LibraryName:'%s'", this.hostname, this.loginData.userName, this.loginData.password, this.loginData.appName, this.loginData.serverName, libraryName) + '\n' + indent + ' ' + sprintf("Language:'%s', Database:'%s', SSPI:'%s', AttachDbFile:'%s', ChangePassword:'%s'", this.loginData.language, this.loginData.database, this.sspi, this.attachDbFile, this.changePassword);
306
291
  }
307
292
  }]);
308
293
 
309
294
  return Login7Payload;
310
- })();
311
-
312
- exports['default'] = Login7Payload;
313
- module.exports = exports['default'];
295
+ })();
package/lib/message-io.js CHANGED
@@ -8,27 +8,16 @@ 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
- var _tls = require('tls');
18
-
19
- var _tls2 = _interopRequireDefault(_tls);
20
-
21
- var _crypto = require('crypto');
22
-
23
- var _crypto2 = _interopRequireDefault(_crypto);
24
-
25
- var _events = require('events');
26
-
27
- var _readableStream = require('readable-stream');
11
+ var tls = require('tls');
12
+ var crypto = require('crypto');
13
+ var EventEmitter = require('events').EventEmitter;
14
+ var Transform = require('readable-stream').Transform;
28
15
 
29
16
  require('./buffertools');
30
17
 
31
- var _packet = require('./packet');
18
+ var Packet = require('./packet').Packet;
19
+ var TYPE = require('./packet').TYPE;
20
+ var packetHeaderLength = require('./packet').HEADER_LENGTH;
32
21
 
33
22
  var ReadablePacketStream = (function (_Transform) {
34
23
  _inherits(ReadablePacketStream, _Transform);
@@ -36,7 +25,7 @@ var ReadablePacketStream = (function (_Transform) {
36
25
  function ReadablePacketStream() {
37
26
  _classCallCheck(this, ReadablePacketStream);
38
27
 
39
- _get(Object.getPrototypeOf(ReadablePacketStream.prototype), 'constructor', this).call(this, { "objectMode": true });
28
+ _get(Object.getPrototypeOf(ReadablePacketStream.prototype), 'constructor', this).call(this, { objectMode: true });
40
29
 
41
30
  this.buffer = new Buffer(0);
42
31
  this.position = 0;
@@ -58,14 +47,14 @@ var ReadablePacketStream = (function (_Transform) {
58
47
  this.position = 0;
59
48
 
60
49
  // The packet header is always 8 bytes of length.
61
- while (this.buffer.length >= this.position + _packet.HEADER_LENGTH) {
50
+ while (this.buffer.length >= this.position + packetHeaderLength) {
62
51
  // Get the full packet length
63
52
  var _length = this.buffer.readUInt16BE(this.position + 2);
64
53
 
65
54
  if (this.buffer.length >= this.position + _length) {
66
55
  var data = this.buffer.slice(this.position, this.position + _length);
67
56
  this.position += _length;
68
- this.push(new _packet.Packet(data));
57
+ this.push(new Packet(data));
69
58
  } else {
70
59
  // Not enough data to provide the next packet. Stop here and wait for
71
60
  // the next call to `_transform`.
@@ -78,9 +67,9 @@ var ReadablePacketStream = (function (_Transform) {
78
67
  }]);
79
68
 
80
69
  return ReadablePacketStream;
81
- })(_readableStream.Transform);
70
+ })(Transform);
82
71
 
83
- var MessageIO = (function (_EventEmitter) {
72
+ module.exports = (function (_EventEmitter) {
84
73
  _inherits(MessageIO, _EventEmitter);
85
74
 
86
75
  function MessageIO(socket, _packetSize, debug) {
@@ -105,16 +94,16 @@ var MessageIO = (function (_EventEmitter) {
105
94
  });
106
95
 
107
96
  this.socket.pipe(this.packetStream);
108
- this.packetDataSize = this._packetSize - _packet.HEADER_LENGTH;
97
+ this.packetDataSize = this._packetSize - packetHeaderLength;
109
98
  }
110
99
 
111
100
  _createClass(MessageIO, [{
112
101
  key: 'packetSize',
113
102
  value: function packetSize(_packetSize2) {
114
103
  if (arguments.length > 0) {
115
- this.debug.log("Packet size changed from " + this._packetSize + " to " + _packetSize2);
104
+ this.debug.log('Packet size changed from ' + this._packetSize + ' to ' + _packetSize2);
116
105
  this._packetSize = _packetSize2;
117
- this.packetDataSize = this._packetSize - _packet.HEADER_LENGTH;
106
+ this.packetDataSize = this._packetSize - packetHeaderLength;
118
107
  }
119
108
  return this._packetSize;
120
109
  }
@@ -123,20 +112,20 @@ var MessageIO = (function (_EventEmitter) {
123
112
  value: function startTls(credentialsDetails) {
124
113
  var _this2 = this;
125
114
 
126
- var credentials = _tls2['default'].createSecureContext ? _tls2['default'].createSecureContext(credentialsDetails) : _crypto2['default'].createCredentials(credentialsDetails);
115
+ var credentials = tls.createSecureContext ? tls.createSecureContext(credentialsDetails) : crypto.createCredentials(credentialsDetails);
127
116
 
128
- this.securePair = _tls2['default'].createSecurePair(credentials);
117
+ this.securePair = tls.createSecurePair(credentials);
129
118
  this.tlsNegotiationComplete = false;
130
119
 
131
120
  this.securePair.on('secure', function () {
132
121
  var cipher = _this2.securePair.cleartext.getCipher();
133
- _this2.debug.log("TLS negotiated (" + cipher.name + ", " + cipher.version + ")");
122
+ _this2.debug.log('TLS negotiated (' + cipher.name + ', ' + cipher.version + ')');
134
123
  _this2.emit('secure', _this2.securePair.cleartext);
135
124
  _this2.encryptAllFutureTraffic();
136
125
  });
137
126
 
138
127
  this.securePair.encrypted.on('data', function (data) {
139
- _this2.sendMessage(_packet.TYPE.PRELOGIN, data);
128
+ _this2.sendMessage(TYPE.PRELOGIN, data);
140
129
  });
141
130
 
142
131
  // On Node >= 0.12, the encrypted stream automatically starts spewing out
@@ -186,7 +175,7 @@ var MessageIO = (function (_EventEmitter) {
186
175
 
187
176
  var packetPayload = data.slice(payloadStart, payloadEnd);
188
177
 
189
- var packet = new _packet.Packet(packetType);
178
+ var packet = new Packet(packetType);
190
179
  packet.last(packetNumber === numberOfPackets - 1);
191
180
  packet.resetConnection(resetConnection);
192
181
  packet.packetId(packetNumber + 1);
@@ -213,7 +202,4 @@ var MessageIO = (function (_EventEmitter) {
213
202
  }]);
214
203
 
215
204
  return MessageIO;
216
- })(_events.EventEmitter);
217
-
218
- exports['default'] = MessageIO;
219
- module.exports = exports['default'];
205
+ })(EventEmitter);
@@ -1,19 +1,25 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- });
3
+ var codepageBySortId = require('./collation').codepageBySortId;
4
+ var codepageByLcid = require('./collation').codepageByLcid;
5
+ var TYPE = require('./data-type').TYPE;
6
+ var sprintf = require('sprintf').sprintf;
6
7
 
7
- var _collation = require('./collation');
8
-
9
- var _dataType = require('./data-type');
10
-
11
- var _sprintf = require('sprintf');
8
+ module.exports = metadataParse;
9
+ module.exports.readPrecision = readPrecision;
10
+ module.exports.readScale = readScale;
11
+ module.exports.readCollation = readCollation;
12
12
 
13
13
  function readDataLength(parser, type, callback) {
14
14
  if ((type.id & 0x30) === 0x20) {
15
15
  // xx10xxxx - s2.2.4.2.1.3
16
16
  // Variable length
17
+ if (type.dataLengthFromScale) {
18
+ return callback(0); // dataLength is resolved from scale
19
+ } else if (type.fixedDataLength) {
20
+ return callback(type.fixedDataLength);
21
+ }
22
+
17
23
  switch (type.dataLengthLength) {
18
24
  case 0:
19
25
  return callback(undefined);
@@ -28,7 +34,7 @@ function readDataLength(parser, type, callback) {
28
34
  return parser.readUInt32LE(callback);
29
35
 
30
36
  default:
31
- return parser.emit(new Error("Unsupported dataLengthLength " + type.dataLengthLength + " for data type " + type.name));
37
+ return parser.emit(new Error('Unsupported dataLengthLength ' + type.dataLengthLength + ' for data type ' + type.name));
32
38
  }
33
39
  } else {
34
40
  callback(undefined);
@@ -61,8 +67,6 @@ function readCollation(parser, type, callback) {
61
67
  collation.lcid |= collationData[1] << 8;
62
68
  collation.lcid |= collationData[0];
63
69
 
64
- collation.codepage = _collation.codepageByLcid[collation.lcid];
65
-
66
70
  // This may not be extracting the correct nibbles in the correct order.
67
71
  collation.flags = collationData[3] >> 4;
68
72
  collation.flags |= collationData[2] & 0xF0;
@@ -72,6 +76,8 @@ function readCollation(parser, type, callback) {
72
76
 
73
77
  collation.sortId = collationData[4];
74
78
 
79
+ collation.codepage = codepageBySortId[collation.sortId] || codepageByLcid[collation.lcid] || 'CP1252';
80
+
75
81
  callback(collation);
76
82
  });
77
83
  } else {
@@ -128,14 +134,14 @@ function readUDTInfo(parser, type, callback) {
128
134
  }
129
135
  }
130
136
 
131
- exports['default'] = function (parser, options, callback) {
132
- (options.tdsVersion < "7_2" ? parser.readUInt16LE : parser.readUInt32LE).call(parser, function (userType) {
137
+ function metadataParse(parser, options, callback) {
138
+ (options.tdsVersion < '7_2' ? parser.readUInt16LE : parser.readUInt32LE).call(parser, function (userType) {
133
139
  parser.readUInt16LE(function (flags) {
134
140
  parser.readUInt8(function (typeNumber) {
135
- var type = _dataType.TYPE[typeNumber];
141
+ var type = TYPE[typeNumber];
136
142
 
137
143
  if (!type) {
138
- return parser.emit(new Error((0, _sprintf.sprintf)('Unrecognised data type 0x%02X', typeNumber)));
144
+ return parser.emit(new Error(sprintf('Unrecognised data type 0x%02X', typeNumber)));
139
145
  }
140
146
 
141
147
  readDataLength(parser, type, function (dataLength) {
@@ -168,6 +174,4 @@ exports['default'] = function (parser, options, callback) {
168
174
  });
169
175
  });
170
176
  });
171
- };
172
-
173
- module.exports = exports['default'];
177
+ }
@@ -4,25 +4,13 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
4
4
 
5
5
  var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
6
6
 
7
- var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
8
-
9
- Object.defineProperty(exports, '__esModule', {
10
- value: true
11
- });
12
-
13
- var _trackingBufferWritableTrackingBuffer = require('./tracking-buffer/writable-tracking-buffer');
14
-
15
- var _trackingBufferWritableTrackingBuffer2 = _interopRequireDefault(_trackingBufferWritableTrackingBuffer);
16
-
17
- var _crypto = require('crypto');
18
-
19
- var _crypto2 = _interopRequireDefault(_crypto);
20
-
21
- var _bigNumber = require('big-number');
7
+ var WritableTrackingBuffer = require('./tracking-buffer/writable-tracking-buffer');
8
+ var crypto = require('crypto');
9
+ var BigInteger = require('big-number').n;
22
10
 
23
11
  var hex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
24
12
 
25
- var NTLMResponsePayload = (function () {
13
+ module.exports = (function () {
26
14
  function NTLMResponsePayload(loginData) {
27
15
  _classCallCheck(this, NTLMResponsePayload);
28
16
 
@@ -48,7 +36,7 @@ var NTLMResponsePayload = (function () {
48
36
  var server_data = ntlmData.target;
49
37
  var server_nonce = ntlmData.nonce;
50
38
  var bufferLength = 64 + domain.length * 2 + username.length * 2 + lmv2len + ntlmv2len + 8 + 8 + 8 + 4 + server_data.length + 4;
51
- var data = new _trackingBufferWritableTrackingBuffer2['default'](bufferLength);
39
+ var data = new WritableTrackingBuffer(bufferLength);
52
40
  data.position = 0;
53
41
  data.writeString('NTLMSSP\u0000', 'utf8');
54
42
  data.writeUInt32LE(0x03);
@@ -125,7 +113,7 @@ var NTLMResponsePayload = (function () {
125
113
  }, {
126
114
  key: 'createTimestamp',
127
115
  value: function createTimestamp(time) {
128
- var tenthsOfAMicrosecond = new _bigNumber.n(time).plus(11644473600).multiply(10000000);
116
+ var tenthsOfAMicrosecond = new BigInteger(time).plus(11644473600).multiply(10000000);
129
117
  var hexArray = [];
130
118
 
131
119
  var pair = [];
@@ -175,7 +163,7 @@ var NTLMResponsePayload = (function () {
175
163
  hash.fill(0);
176
164
 
177
165
  var unicodeString = new Buffer(text, 'ucs2');
178
- var md4 = _crypto2['default'].createHash('md4').update(unicodeString).digest();
166
+ var md4 = crypto.createHash('md4').update(unicodeString).digest();
179
167
  if (md4.copy) {
180
168
  md4.copy(hash);
181
169
  } else {
@@ -186,7 +174,7 @@ var NTLMResponsePayload = (function () {
186
174
  }, {
187
175
  key: 'hmacMD5',
188
176
  value: function hmacMD5(data, key) {
189
- var hmac = _crypto2['default'].createHmac('MD5', key);
177
+ var hmac = crypto.createHmac('MD5', key);
190
178
  hmac.update(data);
191
179
 
192
180
  var result = hmac.digest();
@@ -199,7 +187,4 @@ var NTLMResponsePayload = (function () {
199
187
  }]);
200
188
 
201
189
  return NTLMResponsePayload;
202
- })();
203
-
204
- exports['default'] = NTLMResponsePayload;
205
- module.exports = exports['default'];
190
+ })();
package/lib/packet.js CHANGED
@@ -4,20 +4,13 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
4
4
 
5
5
  var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
6
6
 
7
- Object.defineProperty(exports, '__esModule', {
8
- value: true
9
- });
10
- exports.isPacketComplete = isPacketComplete;
11
- exports.packetLength = packetLength;
12
-
13
7
  require('./buffertools');
14
8
 
15
- var _sprintf = require('sprintf');
9
+ var sprintf = require('sprintf').sprintf;
16
10
 
17
- var HEADER_LENGTH = 8;
11
+ var HEADER_LENGTH = module.exports.HEADER_LENGTH = 8;
18
12
 
19
- exports.HEADER_LENGTH = HEADER_LENGTH;
20
- var TYPE = {
13
+ var TYPE = module.exports.TYPE = {
21
14
  SQL_BATCH: 0x01,
22
15
  RPC_REQUEST: 0x03,
23
16
  TABULAR_RESULT: 0x04,
@@ -29,7 +22,6 @@ var TYPE = {
29
22
  PRELOGIN: 0x12
30
23
  };
31
24
 
32
- exports.TYPE = TYPE;
33
25
  var typeByValue = {};
34
26
 
35
27
  for (var _name in TYPE) {
@@ -44,7 +36,7 @@ var STATUS = {
44
36
  RESETCONNECTIONSKIPTRAN: 0x10
45
37
  };
46
38
 
47
- var OFFSET = {
39
+ var OFFSET = module.exports.OFFSET = {
48
40
  Type: 0,
49
41
  Status: 1,
50
42
  Length: 2,
@@ -53,7 +45,6 @@ var OFFSET = {
53
45
  Window: 7
54
46
  };
55
47
 
56
- exports.OFFSET = OFFSET;
57
48
  var DEFAULT_SPID = 0;
58
49
 
59
50
  var DEFAULT_PACKETID = 1;
@@ -167,7 +158,7 @@ var Packet = (function () {
167
158
  key: 'headerToString',
168
159
  value: function headerToString(indent) {
169
160
  indent || (indent = '');
170
- var text = (0, _sprintf.sprintf)('type:0x%02X(%s), status:0x%02X(%s), length:0x%04X, spid:0x%04X, packetId:0x%02X, window:0x%02X', this.buffer.readUInt8(OFFSET.Type), typeByValue[this.buffer.readUInt8(OFFSET.Type)], this.buffer.readUInt8(OFFSET.Status), this.statusAsString(), this.buffer.readUInt16BE(OFFSET.Length), this.buffer.readUInt16BE(OFFSET.SPID), this.buffer.readUInt8(OFFSET.PacketID), this.buffer.readUInt8(OFFSET.Window));
161
+ var text = sprintf('type:0x%02X(%s), status:0x%02X(%s), length:0x%04X, spid:0x%04X, packetId:0x%02X, window:0x%02X', this.buffer.readUInt8(OFFSET.Type), typeByValue[this.buffer.readUInt8(OFFSET.Type)], this.buffer.readUInt8(OFFSET.Status), this.statusAsString(), this.buffer.readUInt16BE(OFFSET.Length), this.buffer.readUInt16BE(OFFSET.SPID), this.buffer.readUInt8(OFFSET.PacketID), this.buffer.readUInt8(OFFSET.Window));
171
162
  return indent + text;
172
163
  }
173
164
  }, {
@@ -186,7 +177,7 @@ var Packet = (function () {
186
177
  for (var offset = 0; offset < data.length; offset++) {
187
178
  if (offset % BYTES_PER_LINE === 0) {
188
179
  dataDump += indent;
189
- dataDump += (0, _sprintf.sprintf)('%04X ', offset);
180
+ dataDump += sprintf('%04X ', offset);
190
181
  }
191
182
 
192
183
  if (data[offset] < 0x20 || data[offset] > 0x7E) {
@@ -199,7 +190,7 @@ var Packet = (function () {
199
190
  }
200
191
 
201
192
  if (data[offset] != null) {
202
- dataDump += (0, _sprintf.sprintf)('%02X', data[offset]);
193
+ dataDump += sprintf('%02X', data[offset]);
203
194
  }
204
195
 
205
196
  if ((offset + 1) % BYTES_PER_GROUP === 0 && !((offset + 1) % BYTES_PER_LINE === 0)) {
@@ -230,15 +221,16 @@ var Packet = (function () {
230
221
  }, {
231
222
  key: 'payloadString',
232
223
  value: function payloadString() {
233
- return "";
224
+ return '';
234
225
  }
235
226
  }]);
236
227
 
237
228
  return Packet;
238
229
  })();
239
230
 
240
- exports.Packet = Packet;
231
+ module.exports.Packet = Packet;
241
232
 
233
+ module.exports.isPacketComplete = isPacketComplete;
242
234
  function isPacketComplete(potentialPacketBuffer) {
243
235
  if (potentialPacketBuffer.length < HEADER_LENGTH) {
244
236
  return false;
@@ -247,6 +239,7 @@ function isPacketComplete(potentialPacketBuffer) {
247
239
  }
248
240
  }
249
241
 
242
+ module.exports.packetLength = packetLength;
250
243
  function packetLength(potentialPacketBuffer) {
251
244
  return potentialPacketBuffer.readUInt16BE(OFFSET.Length);
252
245
  }
@@ -4,13 +4,8 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
4
4
 
5
5
  var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
6
6
 
7
- Object.defineProperty(exports, '__esModule', {
8
- value: true
9
- });
10
-
11
- var _sprintf = require('sprintf');
12
-
13
- var _trackingBufferTrackingBuffer = require('./tracking-buffer/tracking-buffer');
7
+ var sprintf = require('sprintf').sprintf;
8
+ var WritableTrackingBuffer = require('./tracking-buffer/tracking-buffer').WritableTrackingBuffer;
14
9
 
15
10
  var optionBufferSize = 20;
16
11
 
@@ -56,8 +51,7 @@ for (var _name2 in MARS) {
56
51
  /*
57
52
  s2.2.6.4
58
53
  */
59
-
60
- var PreloginPayload = (function () {
54
+ module.exports = (function () {
61
55
  function PreloginPayload(bufferOrOptions) {
62
56
  _classCallCheck(this, PreloginPayload);
63
57
 
@@ -100,7 +94,7 @@ var PreloginPayload = (function () {
100
94
  }, {
101
95
  key: 'createVersionOption',
102
96
  value: function createVersionOption() {
103
- var buffer = new _trackingBufferTrackingBuffer.WritableTrackingBuffer(optionBufferSize);
97
+ var buffer = new WritableTrackingBuffer(optionBufferSize);
104
98
  buffer.writeUInt32BE(VERSION);
105
99
  buffer.writeUInt16BE(SUBBUILD);
106
100
  return {
@@ -111,7 +105,7 @@ var PreloginPayload = (function () {
111
105
  }, {
112
106
  key: 'createEncryptionOption',
113
107
  value: function createEncryptionOption() {
114
- var buffer = new _trackingBufferTrackingBuffer.WritableTrackingBuffer(optionBufferSize);
108
+ var buffer = new WritableTrackingBuffer(optionBufferSize);
115
109
  if (this.options.encrypt) {
116
110
  buffer.writeUInt8(ENCRYPT.ON);
117
111
  } else {
@@ -125,7 +119,7 @@ var PreloginPayload = (function () {
125
119
  }, {
126
120
  key: 'createInstanceOption',
127
121
  value: function createInstanceOption() {
128
- var buffer = new _trackingBufferTrackingBuffer.WritableTrackingBuffer(optionBufferSize);
122
+ var buffer = new WritableTrackingBuffer(optionBufferSize);
129
123
  buffer.writeUInt8(0x00);
130
124
  return {
131
125
  token: TOKEN.INSTOPT,
@@ -135,7 +129,7 @@ var PreloginPayload = (function () {
135
129
  }, {
136
130
  key: 'createThreadIdOption',
137
131
  value: function createThreadIdOption() {
138
- var buffer = new _trackingBufferTrackingBuffer.WritableTrackingBuffer(optionBufferSize);
132
+ var buffer = new WritableTrackingBuffer(optionBufferSize);
139
133
  buffer.writeUInt32BE(0x00);
140
134
  return {
141
135
  token: TOKEN.THREADID,
@@ -145,7 +139,7 @@ var PreloginPayload = (function () {
145
139
  }, {
146
140
  key: 'createMarsOption',
147
141
  value: function createMarsOption() {
148
- var buffer = new _trackingBufferTrackingBuffer.WritableTrackingBuffer(optionBufferSize);
142
+ var buffer = new WritableTrackingBuffer(optionBufferSize);
149
143
  buffer.writeUInt8(MARS.OFF);
150
144
  return {
151
145
  token: TOKEN.MARS,
@@ -218,12 +212,9 @@ var PreloginPayload = (function () {
218
212
  key: 'toString',
219
213
  value: function toString(indent) {
220
214
  indent || (indent = '');
221
- return indent + 'PreLogin - ' + (0, _sprintf.sprintf)('version:%d.%d.%d.%d %d, encryption:0x%02X(%s), instopt:0x%02X, threadId:0x%08X, mars:0x%02X(%s)', this.version.major, this.version.minor, this.version.patch, this.version.trivial, this.version.subbuild, this.encryption ? this.encryption : 0, this.encryptionString ? this.encryptionString : 0, this.instance ? this.instance : 0, this.threadId ? this.threadId : 0, this.mars ? this.mars : 0, this.marsString ? this.marsString : 0);
215
+ return indent + 'PreLogin - ' + sprintf('version:%d.%d.%d.%d %d, encryption:0x%02X(%s), instopt:0x%02X, threadId:0x%08X, mars:0x%02X(%s)', this.version.major, this.version.minor, this.version.patch, this.version.trivial, this.version.subbuild, this.encryption ? this.encryption : 0, this.encryptionString ? this.encryptionString : 0, this.instance ? this.instance : 0, this.threadId ? this.threadId : 0, this.mars ? this.mars : 0, this.marsString ? this.marsString : 0);
222
216
  }
223
217
  }]);
224
218
 
225
219
  return PreloginPayload;
226
- })();
227
-
228
- exports['default'] = PreloginPayload;
229
- module.exports = exports['default'];
220
+ })();