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,8 +1,16 @@
1
1
  "use strict";
2
2
 
3
- const EventEmitter = require('events').EventEmitter;
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Parser = void 0;
7
+
8
+ var _events = require("events");
9
+
10
+ var _streamParser = _interopRequireDefault(require("./stream-parser"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4
13
 
5
- const StreamParser = require('./stream-parser');
6
14
  /*
7
15
  Buffers are thrown at the parser (by calling addBuffer).
8
16
  Tokens are parsed from the buffer until there are no more tokens in
@@ -13,15 +21,13 @@ const StreamParser = require('./stream-parser');
13
21
  The partial token and the new buffer are concatenated, and the token
14
22
  parsing resumes.
15
23
  */
16
-
17
-
18
- class Parser extends EventEmitter {
24
+ class Parser extends _events.EventEmitter {
19
25
  constructor(debug, colMetadata, options) {
20
26
  super();
21
27
  this.debug = debug;
22
- this.colMetadata = this.colMetadata;
28
+ this.colMetadata = colMetadata;
23
29
  this.options = options;
24
- this.parser = new StreamParser(this.debug, this.colMetadata, this.options);
30
+ this.parser = new _streamParser.default(this.debug, this.colMetadata, this.options);
25
31
  this.parser.on('data', token => {
26
32
  if (token.event) {
27
33
  this.emit(token.event, token);
@@ -30,9 +36,9 @@ class Parser extends EventEmitter {
30
36
  this.parser.on('drain', () => {
31
37
  this.emit('drain');
32
38
  });
33
- } // Returns false to apply backpressure.
34
-
39
+ }
35
40
 
41
+ // Returns false to apply backpressure.
36
42
  addBuffer(buffer) {
37
43
  return this.parser.write(buffer);
38
44
  } // Writes an end-of-message (EOM) marker into the parser transform input
@@ -61,4 +67,4 @@ class Parser extends EventEmitter {
61
67
 
62
68
  }
63
69
 
64
- module.exports.Parser = Parser;
70
+ exports.Parser = Parser;
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
 
3
- module.exports.TYPE = {
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EndOfMessageToken = exports.SSPIToken = exports.RowToken = exports.ReturnValueToken = exports.ReturnStatusToken = exports.OrderToken = exports.NBCRowToken = exports.LoginAckToken = exports.ErrorMessageToken = exports.InfoMessageToken = exports.FedAuthInfoToken = exports.FeatureExtAckToken = exports.RoutingEnvChangeToken = exports.CollationChangeToken = exports.ResetConnectionEnvChangeToken = exports.DatabaseMirroringPartnerEnvChangeToken = exports.RollbackTransactionEnvChangeToken = exports.CommitTransactionEnvChangeToken = exports.BeginTransactionEnvChangeToken = exports.PacketSizeEnvChangeToken = exports.CharsetEnvChangeToken = exports.LanguageEnvChangeToken = exports.DatabaseEnvChangeToken = exports.DoneProcToken = exports.DoneInProcToken = exports.DoneToken = exports.ColMetadataToken = exports.Token = exports.TYPE = void 0;
7
+ const TYPE = {
4
8
  ALTMETADATA: 0x88,
5
9
  ALTROW: 0xD3,
6
10
  COLMETADATA: 0x81,
@@ -22,4 +26,394 @@ module.exports.TYPE = {
22
26
  ROW: 0xD1,
23
27
  SSPI: 0xED,
24
28
  TABNAME: 0xA4
25
- };
29
+ };
30
+ exports.TYPE = TYPE;
31
+
32
+ class Token {
33
+ constructor(name, event) {
34
+ this.name = name;
35
+ this.event = event;
36
+ }
37
+
38
+ }
39
+
40
+ exports.Token = Token;
41
+
42
+ class ColMetadataToken extends Token {
43
+ constructor(columns) {
44
+ super('COLMETADATA', 'columnMetadata');
45
+ this.columns = columns;
46
+ }
47
+
48
+ }
49
+
50
+ exports.ColMetadataToken = ColMetadataToken;
51
+
52
+ class DoneToken extends Token {
53
+ constructor({
54
+ more,
55
+ sqlError,
56
+ attention,
57
+ serverError,
58
+ rowCount,
59
+ curCmd
60
+ }) {
61
+ super('DONE', 'done');
62
+ this.more = more;
63
+ this.sqlError = sqlError;
64
+ this.attention = attention;
65
+ this.serverError = serverError;
66
+ this.rowCount = rowCount;
67
+ this.curCmd = curCmd;
68
+ }
69
+
70
+ }
71
+
72
+ exports.DoneToken = DoneToken;
73
+
74
+ class DoneInProcToken extends Token {
75
+ constructor({
76
+ more,
77
+ sqlError,
78
+ attention,
79
+ serverError,
80
+ rowCount,
81
+ curCmd
82
+ }) {
83
+ super('DONEINPROC', 'doneInProc');
84
+ this.more = more;
85
+ this.sqlError = sqlError;
86
+ this.attention = attention;
87
+ this.serverError = serverError;
88
+ this.rowCount = rowCount;
89
+ this.curCmd = curCmd;
90
+ }
91
+
92
+ }
93
+
94
+ exports.DoneInProcToken = DoneInProcToken;
95
+
96
+ class DoneProcToken extends Token {
97
+ constructor({
98
+ more,
99
+ sqlError,
100
+ attention,
101
+ serverError,
102
+ rowCount,
103
+ curCmd
104
+ }) {
105
+ super('DONEPROC', 'doneProc');
106
+ this.more = more;
107
+ this.sqlError = sqlError;
108
+ this.attention = attention;
109
+ this.serverError = serverError;
110
+ this.rowCount = rowCount;
111
+ this.curCmd = curCmd;
112
+ }
113
+
114
+ }
115
+
116
+ exports.DoneProcToken = DoneProcToken;
117
+
118
+ class DatabaseEnvChangeToken extends Token {
119
+ constructor(newValue, oldValue) {
120
+ super('ENVCHANGE', 'databaseChange');
121
+ this.type = 'DATABASE';
122
+ this.newValue = newValue;
123
+ this.oldValue = oldValue;
124
+ }
125
+
126
+ }
127
+
128
+ exports.DatabaseEnvChangeToken = DatabaseEnvChangeToken;
129
+
130
+ class LanguageEnvChangeToken extends Token {
131
+ constructor(newValue, oldValue) {
132
+ super('ENVCHANGE', 'languageChange');
133
+ this.type = 'LANGUAGE';
134
+ this.newValue = newValue;
135
+ this.oldValue = oldValue;
136
+ }
137
+
138
+ }
139
+
140
+ exports.LanguageEnvChangeToken = LanguageEnvChangeToken;
141
+
142
+ class CharsetEnvChangeToken extends Token {
143
+ constructor(newValue, oldValue) {
144
+ super('ENVCHANGE', 'charsetChange');
145
+ this.type = 'CHARSET';
146
+ this.newValue = newValue;
147
+ this.oldValue = oldValue;
148
+ }
149
+
150
+ }
151
+
152
+ exports.CharsetEnvChangeToken = CharsetEnvChangeToken;
153
+
154
+ class PacketSizeEnvChangeToken extends Token {
155
+ constructor(newValue, oldValue) {
156
+ super('ENVCHANGE', 'packetSizeChange');
157
+ this.type = 'PACKET_SIZE';
158
+ this.newValue = newValue;
159
+ this.oldValue = oldValue;
160
+ }
161
+
162
+ }
163
+
164
+ exports.PacketSizeEnvChangeToken = PacketSizeEnvChangeToken;
165
+
166
+ class BeginTransactionEnvChangeToken extends Token {
167
+ constructor(newValue, oldValue) {
168
+ super('ENVCHANGE', 'beginTransaction');
169
+ this.name = 'ENVCHANGE';
170
+ this.event = 'beginTransaction';
171
+ this.type = 'BEGIN_TXN';
172
+ this.newValue = newValue;
173
+ this.oldValue = oldValue;
174
+ }
175
+
176
+ }
177
+
178
+ exports.BeginTransactionEnvChangeToken = BeginTransactionEnvChangeToken;
179
+
180
+ class CommitTransactionEnvChangeToken extends Token {
181
+ constructor(newValue, oldValue) {
182
+ super('ENVCHANGE', 'commitTransaction');
183
+ this.type = 'COMMIT_TXN';
184
+ this.newValue = newValue;
185
+ this.oldValue = oldValue;
186
+ }
187
+
188
+ }
189
+
190
+ exports.CommitTransactionEnvChangeToken = CommitTransactionEnvChangeToken;
191
+
192
+ class RollbackTransactionEnvChangeToken extends Token {
193
+ constructor(newValue, oldValue) {
194
+ super('ENVCHANGE', 'rollbackTransaction');
195
+ this.type = 'ROLLBACK_TXN';
196
+ this.newValue = newValue;
197
+ this.oldValue = oldValue;
198
+ }
199
+
200
+ }
201
+
202
+ exports.RollbackTransactionEnvChangeToken = RollbackTransactionEnvChangeToken;
203
+
204
+ class DatabaseMirroringPartnerEnvChangeToken extends Token {
205
+ constructor(newValue, oldValue) {
206
+ super('ENVCHANGE', 'partnerNode');
207
+ this.name = 'ENVCHANGE';
208
+ this.event = 'partnerNode';
209
+ this.type = 'DATABASE_MIRRORING_PARTNER';
210
+ this.newValue = newValue;
211
+ this.oldValue = oldValue;
212
+ }
213
+
214
+ }
215
+
216
+ exports.DatabaseMirroringPartnerEnvChangeToken = DatabaseMirroringPartnerEnvChangeToken;
217
+
218
+ class ResetConnectionEnvChangeToken extends Token {
219
+ constructor(newValue, oldValue) {
220
+ super('ENVCHANGE', 'resetConnection');
221
+ this.name = 'ENVCHANGE';
222
+ this.event = 'resetConnection';
223
+ this.type = 'RESET_CONNECTION';
224
+ this.newValue = newValue;
225
+ this.oldValue = oldValue;
226
+ }
227
+
228
+ }
229
+
230
+ exports.ResetConnectionEnvChangeToken = ResetConnectionEnvChangeToken;
231
+
232
+ class CollationChangeToken extends Token {
233
+ constructor(newValue, oldValue) {
234
+ super('ENVCHANGE', 'sqlCollationChange');
235
+ this.type = 'SQL_COLLATION';
236
+ this.newValue = newValue;
237
+ this.oldValue = oldValue;
238
+ }
239
+
240
+ }
241
+
242
+ exports.CollationChangeToken = CollationChangeToken;
243
+
244
+ class RoutingEnvChangeToken extends Token {
245
+ constructor(newValue, oldValue) {
246
+ super('ENVCHANGE', 'routingChange');
247
+ this.type = 'ROUTING_CHANGE';
248
+ this.newValue = newValue;
249
+ this.oldValue = oldValue;
250
+ }
251
+
252
+ }
253
+
254
+ exports.RoutingEnvChangeToken = RoutingEnvChangeToken;
255
+
256
+ class FeatureExtAckToken extends Token {
257
+ constructor(fedAuth) {
258
+ super('FEATUREEXTACK', 'featureExtAck');
259
+ this.fedAuth = fedAuth;
260
+ }
261
+
262
+ }
263
+
264
+ exports.FeatureExtAckToken = FeatureExtAckToken;
265
+
266
+ class FedAuthInfoToken extends Token {
267
+ constructor(spn, stsurl) {
268
+ super('FEDAUTHINFO', 'fedAuthInfo');
269
+ this.spn = spn;
270
+ this.stsurl = stsurl;
271
+ }
272
+
273
+ }
274
+
275
+ exports.FedAuthInfoToken = FedAuthInfoToken;
276
+
277
+ class InfoMessageToken extends Token {
278
+ constructor({
279
+ number,
280
+ state,
281
+ class: clazz,
282
+ message,
283
+ serverName,
284
+ procName,
285
+ lineNumber
286
+ }) {
287
+ super('INFO', 'infoMessage');
288
+ this.number = number;
289
+ this.state = state;
290
+ this.class = clazz;
291
+ this.message = message;
292
+ this.serverName = serverName;
293
+ this.procName = procName;
294
+ this.lineNumber = lineNumber;
295
+ }
296
+
297
+ }
298
+
299
+ exports.InfoMessageToken = InfoMessageToken;
300
+
301
+ class ErrorMessageToken extends Token {
302
+ constructor({
303
+ number,
304
+ state,
305
+ class: clazz,
306
+ message,
307
+ serverName,
308
+ procName,
309
+ lineNumber
310
+ }) {
311
+ super('ERROR', 'errorMessage');
312
+ this.number = number;
313
+ this.state = state;
314
+ this.class = clazz;
315
+ this.message = message;
316
+ this.serverName = serverName;
317
+ this.procName = procName;
318
+ this.lineNumber = lineNumber;
319
+ }
320
+
321
+ }
322
+
323
+ exports.ErrorMessageToken = ErrorMessageToken;
324
+
325
+ class LoginAckToken extends Token {
326
+ constructor({
327
+ interface: interfaze,
328
+ tdsVersion,
329
+ progName,
330
+ progVersion
331
+ }) {
332
+ super('LOGINACK', 'loginack');
333
+ this.interface = interfaze;
334
+ this.tdsVersion = tdsVersion;
335
+ this.progName = progName;
336
+ this.progVersion = progVersion;
337
+ }
338
+
339
+ }
340
+
341
+ exports.LoginAckToken = LoginAckToken;
342
+
343
+ class NBCRowToken extends Token {
344
+ constructor(columns) {
345
+ super('NBCROW', 'row');
346
+ this.columns = columns;
347
+ }
348
+
349
+ }
350
+
351
+ exports.NBCRowToken = NBCRowToken;
352
+
353
+ class OrderToken extends Token {
354
+ constructor(orderColumns) {
355
+ super('ORDER', 'order');
356
+ this.orderColumns = orderColumns;
357
+ }
358
+
359
+ }
360
+
361
+ exports.OrderToken = OrderToken;
362
+
363
+ class ReturnStatusToken extends Token {
364
+ constructor(value) {
365
+ super('RETURNSTATUS', 'returnStatus');
366
+ this.value = value;
367
+ }
368
+
369
+ }
370
+
371
+ exports.ReturnStatusToken = ReturnStatusToken;
372
+
373
+ class ReturnValueToken extends Token {
374
+ constructor({
375
+ paramOrdinal,
376
+ paramName,
377
+ metadata,
378
+ value
379
+ }) {
380
+ super('RETURNVALUE', 'returnValue');
381
+ this.paramOrdinal = paramOrdinal;
382
+ this.paramName = paramName;
383
+ this.metadata = metadata;
384
+ this.value = value;
385
+ }
386
+
387
+ }
388
+
389
+ exports.ReturnValueToken = ReturnValueToken;
390
+
391
+ class RowToken extends Token {
392
+ constructor(columns) {
393
+ super('ROW', 'row');
394
+ this.columns = columns;
395
+ }
396
+
397
+ }
398
+
399
+ exports.RowToken = RowToken;
400
+
401
+ class SSPIToken extends Token {
402
+ constructor(ntlmpacket, ntlmpacketBuffer) {
403
+ super('SSPICHALLENGE', 'sspichallenge');
404
+ this.ntlmpacket = ntlmpacket;
405
+ this.ntlmpacketBuffer = ntlmpacketBuffer;
406
+ }
407
+
408
+ }
409
+
410
+ exports.SSPIToken = SSPIToken;
411
+
412
+ class EndOfMessageToken extends Token {
413
+ constructor() {
414
+ super('EOM', 'endOfMessage');
415
+ }
416
+
417
+ }
418
+
419
+ exports.EndOfMessageToken = EndOfMessageToken;
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _bigint = require("./bigint");
8
+ var _jsbi = _interopRequireDefault(require("jsbi"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
11
 
10
12
  const SHIFT_LEFT_32 = (1 << 16) * (1 << 16);
11
13
  const SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;
@@ -104,9 +106,36 @@ class WritableTrackingBuffer {
104
106
  this.position += length;
105
107
  }
106
108
 
109
+ writeBigInt64LE(value) {
110
+ this.writeBigU_Int64LE(value);
111
+ }
112
+
113
+ writeBigU_Int64LE(value) {
114
+ this.makeRoomFor(8);
115
+
116
+ let lo = _jsbi.default.toNumber(_jsbi.default.bitwiseAnd(value, _jsbi.default.BigInt(0xffffffff)));
117
+
118
+ this.buffer[this.position++] = lo;
119
+ lo = lo >> 8;
120
+ this.buffer[this.position++] = lo;
121
+ lo = lo >> 8;
122
+ this.buffer[this.position++] = lo;
123
+ lo = lo >> 8;
124
+ this.buffer[this.position++] = lo;
125
+
126
+ let hi = _jsbi.default.toNumber(_jsbi.default.bitwiseAnd(_jsbi.default.signedRightShift(value, _jsbi.default.BigInt(32)), _jsbi.default.BigInt(0xffffffff)));
127
+
128
+ this.buffer[this.position++] = hi;
129
+ hi = hi >> 8;
130
+ this.buffer[this.position++] = hi;
131
+ hi = hi >> 8;
132
+ this.buffer[this.position++] = hi;
133
+ hi = hi >> 8;
134
+ this.buffer[this.position++] = hi;
135
+ }
136
+
107
137
  writeInt64LE(value) {
108
- const buf = (0, _bigint.numberToInt64LE)(value);
109
- this.copyFrom(buf);
138
+ this.writeBigInt64LE(_jsbi.default.BigInt(value));
110
139
  }
111
140
 
112
141
  writeUInt32BE(value) {
@@ -123,8 +152,11 @@ class WritableTrackingBuffer {
123
152
  }
124
153
 
125
154
  writeUInt64LE(value) {
126
- this.writeInt32LE(value & -1);
127
- this.writeUInt32LE(Math.floor(value * SHIFT_RIGHT_32));
155
+ this.writeBigUInt64LE(_jsbi.default.BigInt(value));
156
+ }
157
+
158
+ writeBigUInt64LE(value) {
159
+ this.writeBigU_Int64LE(value);
128
160
  }
129
161
 
130
162
  writeInt8(value) {
@@ -1,14 +1,20 @@
1
1
  "use strict";
2
2
 
3
- const WritableTrackingBuffer = require('./tracking-buffer/writable-tracking-buffer');
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Transaction = exports.isolationLevelByValue = exports.ISOLATION_LEVEL = exports.OPERATION_TYPE = void 0;
7
+
8
+ var _writableTrackingBuffer = _interopRequireDefault(require("./tracking-buffer/writable-tracking-buffer"));
9
+
10
+ var _allHeaders = require("./all-headers");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4
13
 
5
- const writeAllHeaders = require('./all-headers').writeToTrackingBuffer;
6
14
  /*
7
15
  s2.2.6.8
8
16
  */
9
-
10
-
11
- const OPERATION_TYPE = module.exports.OPERATION_TYPE = {
17
+ const OPERATION_TYPE = {
12
18
  TM_GET_DTC_ADDRESS: 0x00,
13
19
  TM_PROPAGATE_XACT: 0x01,
14
20
  TM_BEGIN_XACT: 0x05,
@@ -17,7 +23,8 @@ const OPERATION_TYPE = module.exports.OPERATION_TYPE = {
17
23
  TM_ROLLBACK_XACT: 0x08,
18
24
  TM_SAVE_XACT: 0x09
19
25
  };
20
- const ISOLATION_LEVEL = module.exports.ISOLATION_LEVEL = {
26
+ exports.OPERATION_TYPE = OPERATION_TYPE;
27
+ const ISOLATION_LEVEL = {
21
28
  NO_CHANGE: 0x00,
22
29
  READ_UNCOMMITTED: 0x01,
23
30
  READ_COMMITTED: 0x02,
@@ -25,7 +32,9 @@ const ISOLATION_LEVEL = module.exports.ISOLATION_LEVEL = {
25
32
  SERIALIZABLE: 0x04,
26
33
  SNAPSHOT: 0x05
27
34
  };
35
+ exports.ISOLATION_LEVEL = ISOLATION_LEVEL;
28
36
  const isolationLevelByValue = {};
37
+ exports.isolationLevelByValue = isolationLevelByValue;
29
38
 
30
39
  for (const name in ISOLATION_LEVEL) {
31
40
  const value = ISOLATION_LEVEL[name];
@@ -33,15 +42,15 @@ for (const name in ISOLATION_LEVEL) {
33
42
  }
34
43
 
35
44
  class Transaction {
36
- constructor(name, isolationLevel) {
45
+ constructor(name, isolationLevel = ISOLATION_LEVEL.NO_CHANGE) {
37
46
  this.name = name;
38
47
  this.isolationLevel = isolationLevel;
39
48
  this.outstandingRequestCount = 1;
40
49
  }
41
50
 
42
51
  beginPayload(txnDescriptor) {
43
- const buffer = new WritableTrackingBuffer(100, 'ucs2');
44
- writeAllHeaders(buffer, txnDescriptor, this.outstandingRequestCount);
52
+ const buffer = new _writableTrackingBuffer.default(100, 'ucs2');
53
+ (0, _allHeaders.writeToTrackingBuffer)(buffer, txnDescriptor, this.outstandingRequestCount);
45
54
  buffer.writeUShort(OPERATION_TYPE.TM_BEGIN_XACT);
46
55
  buffer.writeUInt8(this.isolationLevel);
47
56
  buffer.writeUInt8(this.name.length * 2);
@@ -57,8 +66,8 @@ class Transaction {
57
66
  }
58
67
 
59
68
  commitPayload(txnDescriptor) {
60
- const buffer = new WritableTrackingBuffer(100, 'ascii');
61
- writeAllHeaders(buffer, txnDescriptor, this.outstandingRequestCount);
69
+ const buffer = new _writableTrackingBuffer.default(100, 'ascii');
70
+ (0, _allHeaders.writeToTrackingBuffer)(buffer, txnDescriptor, this.outstandingRequestCount);
62
71
  buffer.writeUShort(OPERATION_TYPE.TM_COMMIT_XACT);
63
72
  buffer.writeUInt8(this.name.length * 2);
64
73
  buffer.writeString(this.name, 'ucs2'); // No fBeginXact flag, so no new transaction is started.
@@ -76,8 +85,8 @@ class Transaction {
76
85
  }
77
86
 
78
87
  rollbackPayload(txnDescriptor) {
79
- const buffer = new WritableTrackingBuffer(100, 'ascii');
80
- writeAllHeaders(buffer, txnDescriptor, this.outstandingRequestCount);
88
+ const buffer = new _writableTrackingBuffer.default(100, 'ascii');
89
+ (0, _allHeaders.writeToTrackingBuffer)(buffer, txnDescriptor, this.outstandingRequestCount);
81
90
  buffer.writeUShort(OPERATION_TYPE.TM_ROLLBACK_XACT);
82
91
  buffer.writeUInt8(this.name.length * 2);
83
92
  buffer.writeString(this.name, 'ucs2'); // No fBeginXact flag, so no new transaction is started.
@@ -94,8 +103,8 @@ class Transaction {
94
103
  }
95
104
 
96
105
  savePayload(txnDescriptor) {
97
- const buffer = new WritableTrackingBuffer(100, 'ascii');
98
- writeAllHeaders(buffer, txnDescriptor, this.outstandingRequestCount);
106
+ const buffer = new _writableTrackingBuffer.default(100, 'ascii');
107
+ (0, _allHeaders.writeToTrackingBuffer)(buffer, txnDescriptor, this.outstandingRequestCount);
99
108
  buffer.writeUShort(OPERATION_TYPE.TM_SAVE_XACT);
100
109
  buffer.writeUInt8(this.name.length * 2);
101
110
  buffer.writeString(this.name, 'ucs2');
@@ -132,4 +141,4 @@ class Transaction {
132
141
 
133
142
  }
134
143
 
135
- module.exports.Transaction = Transaction;
144
+ exports.Transaction = Transaction;
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TransientErrorLookup = void 0;
7
+
3
8
  // This simple piece of code is factored out into a separate class to make it
4
9
  // easy to stub it out in tests. It's hard, if not impossible, to cause a
5
10
  // transient error on demand in tests.
@@ -13,4 +18,4 @@ class TransientErrorLookup {
13
18
 
14
19
  }
15
20
 
16
- module.exports.TransientErrorLookup = TransientErrorLookup;
21
+ exports.TransientErrorLookup = TransientErrorLookup;