tedious 6.4.0 → 6.6.2

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 (86) hide show
  1. package/lib/bulk-load.js +17 -22
  2. package/lib/connection.js +363 -251
  3. package/lib/connector.js +3 -1
  4. package/lib/data-type.js +111 -109
  5. package/lib/data-types/bigint.js +19 -7
  6. package/lib/data-types/binary.js +19 -10
  7. package/lib/data-types/bit.js +14 -4
  8. package/lib/data-types/bitn.js +26 -3
  9. package/lib/data-types/char.js +26 -13
  10. package/lib/data-types/date.js +18 -9
  11. package/lib/data-types/datetime.js +23 -5
  12. package/lib/data-types/datetime2.js +10 -22
  13. package/lib/data-types/datetimen.js +26 -3
  14. package/lib/data-types/datetimeoffset.js +11 -22
  15. package/lib/data-types/decimal.js +14 -6
  16. package/lib/data-types/decimaln.js +26 -5
  17. package/lib/data-types/float.js +14 -4
  18. package/lib/data-types/floatn.js +26 -3
  19. package/lib/data-types/image.js +12 -5
  20. package/lib/data-types/int.js +14 -4
  21. package/lib/data-types/intn.js +26 -3
  22. package/lib/data-types/money.js +14 -4
  23. package/lib/data-types/moneyn.js +26 -3
  24. package/lib/data-types/nchar.js +17 -6
  25. package/lib/data-types/ntext.js +26 -5
  26. package/lib/data-types/null.js +27 -3
  27. package/lib/data-types/numeric.js +14 -6
  28. package/lib/data-types/numericn.js +26 -5
  29. package/lib/data-types/nvarchar.js +20 -11
  30. package/lib/data-types/real.js +14 -4
  31. package/lib/data-types/smalldatetime.js +14 -4
  32. package/lib/data-types/smallint.js +14 -4
  33. package/lib/data-types/smallmoney.js +14 -4
  34. package/lib/data-types/sql-variant.js +23 -4
  35. package/lib/data-types/text.js +13 -7
  36. package/lib/data-types/time.js +9 -21
  37. package/lib/data-types/tinyint.js +14 -4
  38. package/lib/data-types/tvp.js +12 -3
  39. package/lib/data-types/udt.js +26 -3
  40. package/lib/data-types/uniqueidentifier.js +12 -5
  41. package/lib/data-types/varbinary.js +18 -8
  42. package/lib/data-types/varchar.js +19 -10
  43. package/lib/data-types/xml.js +26 -3
  44. package/lib/debug.js +3 -1
  45. package/lib/guid-parser.js +6 -6
  46. package/lib/incoming-message-stream.js +10 -7
  47. package/lib/instance-lookup.js +12 -6
  48. package/lib/library.js +6 -1
  49. package/lib/login7-payload.js +2 -3
  50. package/lib/message-io.js +14 -3
  51. package/lib/message.js +2 -3
  52. package/lib/metadata-parser.js +259 -136
  53. package/lib/ntlm-payload.js +12 -21
  54. package/lib/outgoing-message-stream.js +7 -6
  55. package/lib/packet.js +4 -5
  56. package/lib/prelogin-payload.js +3 -4
  57. package/lib/request.js +11 -11
  58. package/lib/rpcrequest-payload.js +28 -22
  59. package/lib/sender.js +25 -11
  60. package/lib/special-stored-procedure.js +9 -2
  61. package/lib/tds-versions.js +8 -2
  62. package/lib/tedious.js +75 -9
  63. package/lib/token/colmetadata-token-parser.js +20 -10
  64. package/lib/token/done-token-parser.js +32 -25
  65. package/lib/token/env-change-token-parser.js +50 -20
  66. package/lib/token/feature-ext-ack-parser.js +19 -14
  67. package/lib/token/fedauth-info-parser.js +17 -11
  68. package/lib/token/infoerror-token-parser.js +14 -14
  69. package/lib/token/loginack-token-parser.js +21 -12
  70. package/lib/token/nbcrow-token-parser.js +35 -23
  71. package/lib/token/order-token-parser.js +14 -7
  72. package/lib/token/returnstatus-token-parser.js +14 -7
  73. package/lib/token/returnvalue-token-parser.js +22 -11
  74. package/lib/token/row-token-parser.js +34 -22
  75. package/lib/token/sspi-token-parser.js +14 -8
  76. package/lib/token/stream-parser.js +95 -36
  77. package/lib/token/token-stream-parser.js +16 -10
  78. package/lib/token/token.js +396 -2
  79. package/lib/tracking-buffer/writable-tracking-buffer.js +37 -5
  80. package/lib/transaction.js +25 -16
  81. package/lib/transient-error-lookup.js +6 -1
  82. package/lib/value-parser.js +412 -315
  83. package/package.json +24 -21
  84. package/pull_request_template.md +1 -1
  85. package/tsconfig.json +1 -1
  86. package/lib/tracking-buffer/bigint.js +0 -102
@@ -1,174 +1,297 @@
1
1
  "use strict";
2
2
 
3
- const codepageBySortId = require('./collation').codepageBySortId;
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.readCollation = readCollation;
7
+ exports.default = void 0;
4
8
 
5
- const codepageByLcid = require('./collation').codepageByLcid;
9
+ var _collation = require("./collation");
6
10
 
7
- const TYPE = require('./data-type').TYPE;
11
+ var _dataType = require("./data-type");
8
12
 
9
- const sprintf = require('sprintf-js').sprintf;
13
+ var _sprintfJs = require("sprintf-js");
10
14
 
11
- module.exports = metadataParse;
12
- module.exports.readPrecision = readPrecision;
13
- module.exports.readScale = readScale;
14
- module.exports.readCollation = readCollation;
15
-
16
- function readDataLength(parser, type, callback) {
17
- if ((type.id & 0x30) === 0x20) {
18
- // xx10xxxx - s2.2.4.2.1.3
19
- // Variable length
20
- if (type.dataLengthFromScale) {
21
- return callback(0); // dataLength is resolved from scale
22
- } else if (type.fixedDataLength) {
23
- return callback(type.fixedDataLength);
24
- }
25
-
26
- switch (type.dataLengthLength) {
27
- case 0:
28
- return callback(undefined);
29
-
30
- case 1:
31
- return parser.readUInt8(callback);
32
-
33
- case 2:
34
- return parser.readUInt16LE(callback);
35
-
36
- case 4:
37
- return parser.readUInt32LE(callback);
38
-
39
- default:
40
- return parser.emit(new Error('Unsupported dataLengthLength ' + type.dataLengthLength + ' for data type ' + type.name));
41
- }
42
- } else {
43
- callback(undefined);
44
- }
45
- }
15
+ function readCollation(parser, callback) {
16
+ // s2.2.5.1.2
17
+ parser.readBuffer(5, collationData => {
18
+ let lcid = (collationData[2] & 0x0F) << 16;
19
+ lcid |= collationData[1] << 8;
20
+ lcid |= collationData[0]; // This may not be extracting the correct nibbles in the correct order.
46
21
 
47
- function readPrecision(parser, type, callback) {
48
- if (type.hasPrecision) {
49
- parser.readUInt8(callback);
50
- } else {
51
- callback(undefined);
52
- }
53
- }
54
-
55
- function readScale(parser, type, callback) {
56
- if (type.hasScale) {
57
- parser.readUInt8(callback);
58
- } else {
59
- callback(undefined);
60
- }
61
- }
22
+ let flags = collationData[3] >> 4;
23
+ flags |= collationData[2] & 0xF0; // This may not be extracting the correct nibble.
62
24
 
63
- function readCollation(parser, type, callback) {
64
- if (type.hasCollation) {
65
- // s2.2.5.1.2
66
- parser.readBuffer(5, collationData => {
67
- const collation = {};
68
- collation.lcid = (collationData[2] & 0x0F) << 16;
69
- collation.lcid |= collationData[1] << 8;
70
- collation.lcid |= collationData[0]; // This may not be extracting the correct nibbles in the correct order.
71
-
72
- collation.flags = collationData[3] >> 4;
73
- collation.flags |= collationData[2] & 0xF0; // This may not be extracting the correct nibble.
74
-
75
- collation.version = collationData[3] & 0x0F;
76
- collation.sortId = collationData[4];
77
- collation.codepage = codepageBySortId[collation.sortId] || codepageByLcid[collation.lcid] || 'CP1252';
78
- callback(collation);
25
+ const version = collationData[3] & 0x0F;
26
+ const sortId = collationData[4];
27
+ const codepage = _collation.codepageBySortId[sortId] || _collation.codepageByLcid[lcid] || 'CP1252';
28
+ callback({
29
+ lcid,
30
+ flags,
31
+ version,
32
+ sortId,
33
+ codepage
79
34
  });
80
- } else {
81
- callback(undefined);
82
- }
35
+ });
83
36
  }
84
37
 
85
- function readSchema(parser, type, callback) {
86
- if (type.hasSchemaPresent) {
87
- // s2.2.5.5.3
88
- parser.readUInt8(schemaPresent => {
89
- if (schemaPresent === 0x01) {
90
- parser.readBVarChar(dbname => {
91
- parser.readBVarChar(owningSchema => {
92
- parser.readUsVarChar(xmlSchemaCollection => {
93
- callback({
94
- dbname: dbname,
95
- owningSchema: owningSchema,
96
- xmlSchemaCollection: xmlSchemaCollection
97
- });
38
+ function readSchema(parser, callback) {
39
+ // s2.2.5.5.3
40
+ parser.readUInt8(schemaPresent => {
41
+ if (schemaPresent === 0x01) {
42
+ parser.readBVarChar(dbname => {
43
+ parser.readBVarChar(owningSchema => {
44
+ parser.readUsVarChar(xmlSchemaCollection => {
45
+ callback({
46
+ dbname: dbname,
47
+ owningSchema: owningSchema,
48
+ xmlSchemaCollection: xmlSchemaCollection
98
49
  });
99
50
  });
100
51
  });
101
- } else {
102
- callback(undefined);
103
- }
104
- });
105
- } else {
106
- callback(undefined);
107
- }
52
+ });
53
+ } else {
54
+ callback(undefined);
55
+ }
56
+ });
108
57
  }
109
58
 
110
- function readUDTInfo(parser, type, callback) {
111
- if (type.hasUDTInfo) {
112
- parser.readUInt16LE(maxByteSize => {
113
- parser.readBVarChar(dbname => {
114
- parser.readBVarChar(owningSchema => {
115
- parser.readBVarChar(typeName => {
116
- parser.readUsVarChar(assemblyName => {
117
- callback({
118
- maxByteSize: maxByteSize,
119
- dbname: dbname,
120
- owningSchema: owningSchema,
121
- typeName: typeName,
122
- assemblyName: assemblyName
123
- });
59
+ function readUDTInfo(parser, callback) {
60
+ parser.readUInt16LE(maxByteSize => {
61
+ parser.readBVarChar(dbname => {
62
+ parser.readBVarChar(owningSchema => {
63
+ parser.readBVarChar(typeName => {
64
+ parser.readUsVarChar(assemblyName => {
65
+ callback({
66
+ maxByteSize: maxByteSize,
67
+ dbname: dbname,
68
+ owningSchema: owningSchema,
69
+ typeName: typeName,
70
+ assemblyName: assemblyName
124
71
  });
125
72
  });
126
73
  });
127
74
  });
128
75
  });
129
- } else {
130
- return callback();
131
- }
76
+ });
132
77
  }
133
78
 
134
79
  function metadataParse(parser, options, callback) {
135
80
  (options.tdsVersion < '7_2' ? parser.readUInt16LE : parser.readUInt32LE).call(parser, userType => {
136
81
  parser.readUInt16LE(flags => {
137
82
  parser.readUInt8(typeNumber => {
138
- const type = TYPE[typeNumber];
83
+ const type = _dataType.TYPE[typeNumber];
139
84
 
140
85
  if (!type) {
141
- return parser.emit(new Error(sprintf('Unrecognised data type 0x%02X', typeNumber)));
86
+ return parser.emit('error', new Error((0, _sprintfJs.sprintf)('Unrecognised data type 0x%02X', typeNumber)));
142
87
  }
143
88
 
144
- readDataLength(parser, type, dataLength => {
145
- readPrecision(parser, type, precision => {
146
- readScale(parser, type, scale => {
147
- if (scale && type.dataLengthFromScale) {
148
- dataLength = type.dataLengthFromScale(scale);
149
- }
150
-
151
- readCollation(parser, type, collation => {
152
- readSchema(parser, type, schema => {
153
- readUDTInfo(parser, type, udtInfo => {
154
- callback({
155
- userType: userType,
156
- flags: flags,
157
- type: type,
158
- collation: collation,
159
- precision: precision,
160
- scale: scale,
161
- dataLength: dataLength,
162
- schema: schema,
163
- udtInfo: udtInfo
164
- });
89
+ switch (type.name) {
90
+ case 'Null':
91
+ case 'TinyInt':
92
+ case 'SmallInt':
93
+ case 'Int':
94
+ case 'BigInt':
95
+ case 'Real':
96
+ case 'Float':
97
+ case 'SmallMoney':
98
+ case 'Money':
99
+ case 'Bit':
100
+ case 'SmallDateTime':
101
+ case 'DateTime':
102
+ case 'Date':
103
+ return callback({
104
+ userType: userType,
105
+ flags: flags,
106
+ type: type,
107
+ collation: undefined,
108
+ precision: undefined,
109
+ scale: undefined,
110
+ dataLength: undefined,
111
+ schema: undefined,
112
+ udtInfo: undefined
113
+ });
114
+
115
+ case 'IntN':
116
+ case 'FloatN':
117
+ case 'MoneyN':
118
+ case 'BitN':
119
+ case 'UniqueIdentifier':
120
+ case 'DateTimeN':
121
+ return parser.readUInt8(dataLength => {
122
+ callback({
123
+ userType: userType,
124
+ flags: flags,
125
+ type: type,
126
+ collation: undefined,
127
+ precision: undefined,
128
+ scale: undefined,
129
+ dataLength: dataLength,
130
+ schema: undefined,
131
+ udtInfo: undefined
132
+ });
133
+ });
134
+
135
+ case 'Variant':
136
+ return parser.readUInt32LE(dataLength => {
137
+ callback({
138
+ userType: userType,
139
+ flags: flags,
140
+ type: type,
141
+ collation: undefined,
142
+ precision: undefined,
143
+ scale: undefined,
144
+ dataLength: dataLength,
145
+ schema: undefined,
146
+ udtInfo: undefined
147
+ });
148
+ });
149
+
150
+ case 'VarChar':
151
+ case 'Char':
152
+ case 'NVarChar':
153
+ case 'NChar':
154
+ return parser.readUInt16LE(dataLength => {
155
+ readCollation(parser, collation => {
156
+ callback({
157
+ userType: userType,
158
+ flags: flags,
159
+ type: type,
160
+ collation: collation,
161
+ precision: undefined,
162
+ scale: undefined,
163
+ dataLength: dataLength,
164
+ schema: undefined,
165
+ udtInfo: undefined
166
+ });
167
+ });
168
+ });
169
+
170
+ case 'Text':
171
+ case 'NText':
172
+ return parser.readUInt32LE(dataLength => {
173
+ readCollation(parser, collation => {
174
+ callback({
175
+ userType: userType,
176
+ flags: flags,
177
+ type: type,
178
+ collation: collation,
179
+ precision: undefined,
180
+ scale: undefined,
181
+ dataLength: dataLength,
182
+ schema: undefined,
183
+ udtInfo: undefined
184
+ });
185
+ });
186
+ });
187
+
188
+ case 'VarBinary':
189
+ case 'Binary':
190
+ return parser.readUInt16LE(dataLength => {
191
+ callback({
192
+ userType: userType,
193
+ flags: flags,
194
+ type: type,
195
+ collation: undefined,
196
+ precision: undefined,
197
+ scale: undefined,
198
+ dataLength: dataLength,
199
+ schema: undefined,
200
+ udtInfo: undefined
201
+ });
202
+ });
203
+
204
+ case 'Image':
205
+ return parser.readUInt32LE(dataLength => {
206
+ callback({
207
+ userType: userType,
208
+ flags: flags,
209
+ type: type,
210
+ collation: undefined,
211
+ precision: undefined,
212
+ scale: undefined,
213
+ dataLength: dataLength,
214
+ schema: undefined,
215
+ udtInfo: undefined
216
+ });
217
+ });
218
+
219
+ case 'Xml':
220
+ return readSchema(parser, schema => {
221
+ callback({
222
+ userType: userType,
223
+ flags: flags,
224
+ type: type,
225
+ collation: undefined,
226
+ precision: undefined,
227
+ scale: undefined,
228
+ dataLength: undefined,
229
+ schema: schema,
230
+ udtInfo: undefined
231
+ });
232
+ });
233
+
234
+ case 'Time':
235
+ case 'DateTime2':
236
+ case 'DateTimeOffset':
237
+ return parser.readUInt8(scale => {
238
+ callback({
239
+ userType: userType,
240
+ flags: flags,
241
+ type: type,
242
+ collation: undefined,
243
+ precision: undefined,
244
+ scale: scale,
245
+ dataLength: undefined,
246
+ schema: undefined,
247
+ udtInfo: undefined
248
+ });
249
+ });
250
+
251
+ case 'NumericN':
252
+ case 'DecimalN':
253
+ return parser.readUInt8(dataLength => {
254
+ parser.readUInt8(precision => {
255
+ parser.readUInt8(scale => {
256
+ callback({
257
+ userType: userType,
258
+ flags: flags,
259
+ type: type,
260
+ collation: undefined,
261
+ precision: precision,
262
+ scale: scale,
263
+ dataLength: dataLength,
264
+ schema: undefined,
265
+ udtInfo: undefined
165
266
  });
166
267
  });
167
268
  });
168
269
  });
169
- });
170
- });
270
+
271
+ case 'UDT':
272
+ return readUDTInfo(parser, udtInfo => {
273
+ callback({
274
+ userType: userType,
275
+ flags: flags,
276
+ type: type,
277
+ collation: undefined,
278
+ precision: undefined,
279
+ scale: undefined,
280
+ dataLength: undefined,
281
+ schema: undefined,
282
+ udtInfo: udtInfo
283
+ });
284
+ });
285
+
286
+ default:
287
+ return parser.emit('error', new Error((0, _sprintfJs.sprintf)('Unrecognised type %s', type.name)));
288
+ }
171
289
  });
172
290
  });
173
291
  });
174
- }
292
+ }
293
+
294
+ var _default = metadataParse;
295
+ exports.default = _default;
296
+ module.exports = metadataParse;
297
+ module.exports.readCollation = readCollation;
@@ -9,13 +9,13 @@ var _writableTrackingBuffer = _interopRequireDefault(require("./tracking-buffer/
9
9
 
10
10
  var crypto = _interopRequireWildcard(require("crypto"));
11
11
 
12
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
12
+ var _jsbi = _interopRequireDefault(require("jsbi"));
13
13
 
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
15
15
 
16
- const BigInteger = require('big-number');
16
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
- const hex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
20
  class NTLMResponsePayload {
21
21
  constructor(loginData) {
@@ -113,25 +113,16 @@ class NTLMResponsePayload {
113
113
  }
114
114
 
115
115
  createTimestamp(time) {
116
- const tenthsOfAMicrosecond = BigInteger(time).plus(11644473600).multiply(10000000);
117
- const hexArray = [];
118
- let pair = [];
119
-
120
- while (tenthsOfAMicrosecond.val() !== '0') {
121
- const idx = tenthsOfAMicrosecond.mod(16);
122
- pair.unshift(hex[idx]);
123
-
124
- if (pair.length === 2) {
125
- hexArray.push(pair.join(''));
126
- pair = [];
127
- }
128
- }
116
+ const tenthsOfAMicrosecond = _jsbi.default.multiply(_jsbi.default.add(_jsbi.default.BigInt(time), _jsbi.default.BigInt(11644473600)), _jsbi.default.BigInt(10000000));
129
117
 
130
- if (pair.length > 0) {
131
- hexArray.push(pair[0] + '0');
132
- }
118
+ const lo = _jsbi.default.toNumber(_jsbi.default.bitwiseAnd(tenthsOfAMicrosecond, _jsbi.default.BigInt(0xffffffff)));
119
+
120
+ const hi = _jsbi.default.toNumber(_jsbi.default.bitwiseAnd(_jsbi.default.signedRightShift(tenthsOfAMicrosecond, _jsbi.default.BigInt(32)), _jsbi.default.BigInt(0xffffffff)));
133
121
 
134
- return Buffer.from(hexArray.join(''), 'hex');
122
+ const result = Buffer.alloc(8);
123
+ result.writeUInt32LE(lo, 0);
124
+ result.writeUInt32LE(hi, 4);
125
+ return result;
135
126
  }
136
127
 
137
128
  lmv2Response(domain, user, password, serverNonce, clientNonce) {
@@ -5,14 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _packet = require("./packet");
8
+ var _bl = _interopRequireDefault(require("bl"));
9
+
10
+ var _readableStream = require("readable-stream");
9
11
 
10
- const BufferList = require('bl');
12
+ var _packet = require("./packet");
11
13
 
12
- const _require = require('readable-stream'),
13
- Duplex = _require.Duplex;
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
15
 
15
- class OutgoingMessageStream extends Duplex {
16
+ class OutgoingMessageStream extends _readableStream.Duplex {
16
17
  constructor(debug, {
17
18
  packetSize
18
19
  }) {
@@ -21,7 +22,7 @@ class OutgoingMessageStream extends Duplex {
21
22
  });
22
23
  this.packetSize = packetSize;
23
24
  this.debug = debug;
24
- this.bl = new BufferList(); // When the writable side is ended, push `null`
25
+ this.bl = new _bl.default(); // When the writable side is ended, push `null`
25
26
  // to also end the readable side.
26
27
 
27
28
  this.on('finish', () => {
package/lib/packet.js CHANGED
@@ -7,8 +7,7 @@ exports.isPacketComplete = isPacketComplete;
7
7
  exports.packetLength = packetLength;
8
8
  exports.Packet = exports.OFFSET = exports.TYPE = exports.HEADER_LENGTH = void 0;
9
9
 
10
- const _require = require('sprintf-js'),
11
- sprintf = _require.sprintf;
10
+ var _sprintfJs = require("sprintf-js");
12
11
 
13
12
  const HEADER_LENGTH = 8;
14
13
  exports.HEADER_LENGTH = HEADER_LENGTH;
@@ -160,7 +159,7 @@ class Packet {
160
159
  }
161
160
 
162
161
  headerToString(indent = '') {
163
- const 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));
162
+ const text = (0, _sprintfJs.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));
164
163
  return indent + text;
165
164
  }
166
165
 
@@ -175,7 +174,7 @@ class Packet {
175
174
  for (let offset = 0; offset < data.length; offset++) {
176
175
  if (offset % BYTES_PER_LINE === 0) {
177
176
  dataDump += indent;
178
- dataDump += sprintf('%04X ', offset);
177
+ dataDump += (0, _sprintfJs.sprintf)('%04X ', offset);
179
178
  }
180
179
 
181
180
  if (data[offset] < 0x20 || data[offset] > 0x7E) {
@@ -189,7 +188,7 @@ class Packet {
189
188
  }
190
189
 
191
190
  if (data[offset] != null) {
192
- dataDump += sprintf('%02X', data[offset]);
191
+ dataDump += (0, _sprintfJs.sprintf)('%02X', data[offset]);
193
192
  }
194
193
 
195
194
  if ((offset + 1) % BYTES_PER_GROUP === 0 && !((offset + 1) % BYTES_PER_LINE === 0)) {
@@ -5,13 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _sprintfJs = require("sprintf-js");
9
+
8
10
  var _writableTrackingBuffer = _interopRequireDefault(require("./tracking-buffer/writable-tracking-buffer"));
9
11
 
10
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
13
 
12
- const _require = require('sprintf-js'),
13
- sprintf = _require.sprintf;
14
-
15
14
  const optionBufferSize = 20;
16
15
  const VERSION = 0x000000001;
17
16
  const SUBBUILD = 0x0001;
@@ -231,7 +230,7 @@ class PreloginPayload {
231
230
  }
232
231
 
233
232
  toString(indent = '') {
234
- 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 : '', this.instance ? this.instance : 0, this.threadId ? this.threadId : 0, this.mars ? this.mars : 0, this.marsString ? this.marsString : '');
233
+ return indent + 'PreLogin - ' + (0, _sprintfJs.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 : '', this.instance ? this.instance : 0, this.threadId ? this.threadId : 0, this.mars ? this.mars : 0, this.marsString ? this.marsString : '');
235
234
  }
236
235
 
237
236
  }
package/lib/request.js CHANGED
@@ -7,9 +7,9 @@ exports.default = void 0;
7
7
 
8
8
  var _events = require("events");
9
9
 
10
- const TYPES = require('./data-type').typeByName;
10
+ var _dataType = require("./data-type");
11
11
 
12
- const RequestError = require('./errors').RequestError;
12
+ var _errors = require("./errors");
13
13
 
14
14
  class Request extends _events.EventEmitter {
15
15
  constructor(sqlTextOrProcedure, callback) {
@@ -106,10 +106,10 @@ class Request extends _events.EventEmitter {
106
106
 
107
107
  this.originalParameters = this.parameters;
108
108
  this.parameters = [];
109
- this.addParameter('statement', TYPES.NVarChar, this.sqlTextOrProcedure);
109
+ this.addParameter('statement', _dataType.typeByName.NVarChar, this.sqlTextOrProcedure);
110
110
 
111
111
  if (this.originalParameters.length) {
112
- this.addParameter('params', TYPES.NVarChar, this.makeParamsParameter(this.originalParameters));
112
+ this.addParameter('params', _dataType.typeByName.NVarChar, this.makeParamsParameter(this.originalParameters));
113
113
  }
114
114
 
115
115
  for (let i = 0, len = this.originalParameters.length; i < len; i++) {
@@ -123,29 +123,29 @@ class Request extends _events.EventEmitter {
123
123
  transformIntoPrepareRpc() {
124
124
  this.originalParameters = this.parameters;
125
125
  this.parameters = [];
126
- this.addOutputParameter('handle', TYPES.Int, undefined);
127
- this.addParameter('params', TYPES.NVarChar, this.makeParamsParameter(this.originalParameters));
128
- this.addParameter('stmt', TYPES.NVarChar, this.sqlTextOrProcedure);
126
+ this.addOutputParameter('handle', _dataType.typeByName.Int, undefined);
127
+ this.addParameter('params', _dataType.typeByName.NVarChar, this.makeParamsParameter(this.originalParameters));
128
+ this.addParameter('stmt', _dataType.typeByName.NVarChar, this.sqlTextOrProcedure);
129
129
  this.sqlTextOrProcedure = 'sp_prepare';
130
130
  this.preparing = true;
131
131
  this.on('returnValue', (name, value) => {
132
132
  if (name === 'handle') {
133
133
  this.handle = value;
134
134
  } else {
135
- this.error = RequestError(`Tedious > Unexpected output parameter ${name} from sp_prepare`);
135
+ this.error = (0, _errors.RequestError)(`Tedious > Unexpected output parameter ${name} from sp_prepare`);
136
136
  }
137
137
  });
138
138
  }
139
139
 
140
140
  transformIntoUnprepareRpc() {
141
141
  this.parameters = [];
142
- this.addParameter('handle', TYPES.Int, this.handle);
142
+ this.addParameter('handle', _dataType.typeByName.Int, this.handle);
143
143
  this.sqlTextOrProcedure = 'sp_unprepare';
144
144
  }
145
145
 
146
146
  transformIntoExecuteRpc(parameters) {
147
147
  this.parameters = [];
148
- this.addParameter('handle', TYPES.Int, this.handle);
148
+ this.addParameter('handle', _dataType.typeByName.Int, this.handle);
149
149
 
150
150
  for (let i = 0, len = this.originalParameters.length; i < len; i++) {
151
151
  const parameter = this.originalParameters[i];
@@ -166,7 +166,7 @@ class Request extends _events.EventEmitter {
166
166
  const value = parameter.type.validate(parameter.value);
167
167
 
168
168
  if (value instanceof TypeError) {
169
- return this.error = new RequestError('Validation failed for parameter \'' + parameter.name + '\'. ' + value.message, 'EPARAM');
169
+ return this.error = new _errors.RequestError('Validation failed for parameter \'' + parameter.name + '\'. ' + value.message, 'EPARAM');
170
170
  }
171
171
 
172
172
  parameter.value = value;