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
package/lib/connector.js CHANGED
@@ -11,7 +11,9 @@ var _dns = _interopRequireDefault(require("dns"));
11
11
 
12
12
  var punycode = _interopRequireWildcard(require("punycode"));
13
13
 
14
- 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; } }
14
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
15
+
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; }
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
package/lib/data-type.js CHANGED
@@ -5,157 +5,159 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.typeByName = exports.TYPE = void 0;
7
7
 
8
- const Null = require('./data-types/null');
8
+ var _null = _interopRequireDefault(require("./data-types/null"));
9
9
 
10
- const TinyInt = require('./data-types/tinyint');
10
+ var _tinyint = _interopRequireDefault(require("./data-types/tinyint"));
11
11
 
12
- const Bit = require('./data-types/bit');
12
+ var _bit = _interopRequireDefault(require("./data-types/bit"));
13
13
 
14
- const SmallInt = require('./data-types/smallint');
14
+ var _smallint = _interopRequireDefault(require("./data-types/smallint"));
15
15
 
16
- const Int = require('./data-types/int');
16
+ var _int = _interopRequireDefault(require("./data-types/int"));
17
17
 
18
- const SmallDateTime = require('./data-types/smalldatetime');
18
+ var _smalldatetime = _interopRequireDefault(require("./data-types/smalldatetime"));
19
19
 
20
- const Real = require('./data-types/real');
20
+ var _real = _interopRequireDefault(require("./data-types/real"));
21
21
 
22
- const Money = require('./data-types/money');
22
+ var _money = _interopRequireDefault(require("./data-types/money"));
23
23
 
24
- const DateTime = require('./data-types/datetime');
24
+ var _datetime = _interopRequireDefault(require("./data-types/datetime"));
25
25
 
26
- const Float = require('./data-types/float');
26
+ var _float = _interopRequireDefault(require("./data-types/float"));
27
27
 
28
- const Decimal = require('./data-types/decimal');
28
+ var _decimal = _interopRequireDefault(require("./data-types/decimal"));
29
29
 
30
- const Numeric = require('./data-types/numeric');
30
+ var _numeric = _interopRequireDefault(require("./data-types/numeric"));
31
31
 
32
- const SmallMoney = require('./data-types/smallmoney');
32
+ var _smallmoney = _interopRequireDefault(require("./data-types/smallmoney"));
33
33
 
34
- const BigInt = require('./data-types/bigint');
34
+ var _bigint = _interopRequireDefault(require("./data-types/bigint"));
35
35
 
36
- const Image = require('./data-types/image');
36
+ var _image = _interopRequireDefault(require("./data-types/image"));
37
37
 
38
- const Text = require('./data-types/text');
38
+ var _text = _interopRequireDefault(require("./data-types/text"));
39
39
 
40
- const UniqueIdentifier = require('./data-types/uniqueidentifier');
40
+ var _uniqueidentifier = _interopRequireDefault(require("./data-types/uniqueidentifier"));
41
41
 
42
- const IntN = require('./data-types/intn');
42
+ var _intn = _interopRequireDefault(require("./data-types/intn"));
43
43
 
44
- const NText = require('./data-types/ntext');
44
+ var _ntext = _interopRequireDefault(require("./data-types/ntext"));
45
45
 
46
- const BitN = require('./data-types/bitn');
46
+ var _bitn = _interopRequireDefault(require("./data-types/bitn"));
47
47
 
48
- const DecimalN = require('./data-types/decimaln');
48
+ var _decimaln = _interopRequireDefault(require("./data-types/decimaln"));
49
49
 
50
- const NumericN = require('./data-types/numericn');
50
+ var _numericn = _interopRequireDefault(require("./data-types/numericn"));
51
51
 
52
- const FloatN = require('./data-types/floatn');
52
+ var _floatn = _interopRequireDefault(require("./data-types/floatn"));
53
53
 
54
- const MoneyN = require('./data-types/moneyn');
54
+ var _moneyn = _interopRequireDefault(require("./data-types/moneyn"));
55
55
 
56
- const DateTimeN = require('./data-types/datetimen');
56
+ var _datetimen = _interopRequireDefault(require("./data-types/datetimen"));
57
57
 
58
- const VarBinary = require('./data-types/varbinary');
58
+ var _varbinary = _interopRequireDefault(require("./data-types/varbinary"));
59
59
 
60
- const VarChar = require('./data-types/varchar');
60
+ var _varchar = _interopRequireDefault(require("./data-types/varchar"));
61
61
 
62
- const Binary = require('./data-types/binary');
62
+ var _binary = _interopRequireDefault(require("./data-types/binary"));
63
63
 
64
- const Char = require('./data-types/char');
64
+ var _char = _interopRequireDefault(require("./data-types/char"));
65
65
 
66
- const NVarChar = require('./data-types/nvarchar');
66
+ var _nvarchar = _interopRequireDefault(require("./data-types/nvarchar"));
67
67
 
68
- const NChar = require('./data-types/nchar');
68
+ var _nchar = _interopRequireDefault(require("./data-types/nchar"));
69
69
 
70
- const Xml = require('./data-types/xml');
70
+ var _xml = _interopRequireDefault(require("./data-types/xml"));
71
71
 
72
- const Time = require('./data-types/time');
72
+ var _time = _interopRequireDefault(require("./data-types/time"));
73
73
 
74
- const Date = require('./data-types/date');
74
+ var _date = _interopRequireDefault(require("./data-types/date"));
75
75
 
76
- const DateTime2 = require('./data-types/datetime2');
76
+ var _datetime2 = _interopRequireDefault(require("./data-types/datetime2"));
77
77
 
78
- const DateTimeOffset = require('./data-types/datetimeoffset');
78
+ var _datetimeoffset = _interopRequireDefault(require("./data-types/datetimeoffset"));
79
79
 
80
- const UDT = require('./data-types/udt');
80
+ var _udt = _interopRequireDefault(require("./data-types/udt"));
81
81
 
82
- const TVP = require('./data-types/tvp');
82
+ var _tvp = _interopRequireDefault(require("./data-types/tvp"));
83
83
 
84
- const Variant = require('./data-types/sql-variant');
84
+ var _sqlVariant = _interopRequireDefault(require("./data-types/sql-variant"));
85
+
86
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
85
87
 
86
88
  const TYPE = {
87
- [Null.id]: Null,
88
- [TinyInt.id]: TinyInt,
89
- [Bit.id]: Bit,
90
- [SmallInt.id]: SmallInt,
91
- [Int.id]: Int,
92
- [SmallDateTime.id]: SmallDateTime,
93
- [Real.id]: Real,
94
- [Money.id]: Money,
95
- [DateTime.id]: DateTime,
96
- [Float.id]: Float,
97
- [Decimal.id]: Decimal,
98
- [Numeric.id]: Numeric,
99
- [SmallMoney.id]: SmallMoney,
100
- [BigInt.id]: BigInt,
101
- [Image.id]: Image,
102
- [Text.id]: Text,
103
- [UniqueIdentifier.id]: UniqueIdentifier,
104
- [IntN.id]: IntN,
105
- [NText.id]: NText,
106
- [BitN.id]: BitN,
107
- [DecimalN.id]: DecimalN,
108
- [NumericN.id]: NumericN,
109
- [FloatN.id]: FloatN,
110
- [MoneyN.id]: MoneyN,
111
- [DateTimeN.id]: DateTimeN,
112
- [VarBinary.id]: VarBinary,
113
- [VarChar.id]: VarChar,
114
- [Binary.id]: Binary,
115
- [Char.id]: Char,
116
- [NVarChar.id]: NVarChar,
117
- [NChar.id]: NChar,
118
- [Xml.id]: Xml,
119
- [Time.id]: Time,
120
- [Date.id]: Date,
121
- [DateTime2.id]: DateTime2,
122
- [DateTimeOffset.id]: DateTimeOffset,
123
- [UDT.id]: UDT,
124
- [TVP.id]: TVP,
125
- [Variant.id]: Variant
89
+ [_null.default.id]: _null.default,
90
+ [_tinyint.default.id]: _tinyint.default,
91
+ [_bit.default.id]: _bit.default,
92
+ [_smallint.default.id]: _smallint.default,
93
+ [_int.default.id]: _int.default,
94
+ [_smalldatetime.default.id]: _smalldatetime.default,
95
+ [_real.default.id]: _real.default,
96
+ [_money.default.id]: _money.default,
97
+ [_datetime.default.id]: _datetime.default,
98
+ [_float.default.id]: _float.default,
99
+ [_decimal.default.id]: _decimal.default,
100
+ [_numeric.default.id]: _numeric.default,
101
+ [_smallmoney.default.id]: _smallmoney.default,
102
+ [_bigint.default.id]: _bigint.default,
103
+ [_image.default.id]: _image.default,
104
+ [_text.default.id]: _text.default,
105
+ [_uniqueidentifier.default.id]: _uniqueidentifier.default,
106
+ [_intn.default.id]: _intn.default,
107
+ [_ntext.default.id]: _ntext.default,
108
+ [_bitn.default.id]: _bitn.default,
109
+ [_decimaln.default.id]: _decimaln.default,
110
+ [_numericn.default.id]: _numericn.default,
111
+ [_floatn.default.id]: _floatn.default,
112
+ [_moneyn.default.id]: _moneyn.default,
113
+ [_datetimen.default.id]: _datetimen.default,
114
+ [_varbinary.default.id]: _varbinary.default,
115
+ [_varchar.default.id]: _varchar.default,
116
+ [_binary.default.id]: _binary.default,
117
+ [_char.default.id]: _char.default,
118
+ [_nvarchar.default.id]: _nvarchar.default,
119
+ [_nchar.default.id]: _nchar.default,
120
+ [_xml.default.id]: _xml.default,
121
+ [_time.default.id]: _time.default,
122
+ [_date.default.id]: _date.default,
123
+ [_datetime2.default.id]: _datetime2.default,
124
+ [_datetimeoffset.default.id]: _datetimeoffset.default,
125
+ [_udt.default.id]: _udt.default,
126
+ [_tvp.default.id]: _tvp.default,
127
+ [_sqlVariant.default.id]: _sqlVariant.default
126
128
  };
127
129
  exports.TYPE = TYPE;
128
130
  const typeByName = {
129
- TinyInt,
130
- Bit,
131
- SmallInt,
132
- Int,
133
- SmallDateTime,
134
- Real,
135
- Money,
136
- DateTime,
137
- Float,
138
- Decimal,
139
- Numeric,
140
- SmallMoney,
141
- BigInt,
142
- Image,
143
- Text,
144
- UniqueIdentifier,
145
- NText,
146
- VarBinary,
147
- VarChar,
148
- Binary,
149
- Char,
150
- NVarChar,
151
- NChar,
152
- Xml,
153
- Time,
154
- Date,
155
- DateTime2,
156
- DateTimeOffset,
157
- UDT,
158
- TVP,
159
- Variant
131
+ TinyInt: _tinyint.default,
132
+ Bit: _bit.default,
133
+ SmallInt: _smallint.default,
134
+ Int: _int.default,
135
+ SmallDateTime: _smalldatetime.default,
136
+ Real: _real.default,
137
+ Money: _money.default,
138
+ DateTime: _datetime.default,
139
+ Float: _float.default,
140
+ Decimal: _decimal.default,
141
+ Numeric: _numeric.default,
142
+ SmallMoney: _smallmoney.default,
143
+ BigInt: _bigint.default,
144
+ Image: _image.default,
145
+ Text: _text.default,
146
+ UniqueIdentifier: _uniqueidentifier.default,
147
+ NText: _ntext.default,
148
+ VarBinary: _varbinary.default,
149
+ VarChar: _varchar.default,
150
+ Binary: _binary.default,
151
+ Char: _char.default,
152
+ NVarChar: _nvarchar.default,
153
+ NChar: _nchar.default,
154
+ Xml: _xml.default,
155
+ Time: _time.default,
156
+ Date: _date.default,
157
+ DateTime2: _datetime2.default,
158
+ DateTimeOffset: _datetimeoffset.default,
159
+ UDT: _udt.default,
160
+ TVP: _tvp.default,
161
+ Variant: _sqlVariant.default
160
162
  };
161
163
  exports.typeByName = typeByName;
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
2
 
3
- const IntN = require('./intn');
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
4
7
 
5
- module.exports = {
8
+ var _intn = _interopRequireDefault(require("./intn"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const BigInt = {
6
13
  id: 0x7F,
7
14
  type: 'INT8',
8
15
  name: 'BigInt',
@@ -10,12 +17,14 @@ module.exports = {
10
17
  return 'bigint';
11
18
  },
12
19
  writeTypeInfo: function writeTypeInfo(buffer) {
13
- buffer.writeUInt8(IntN.id);
20
+ buffer.writeUInt8(_intn.default.id);
14
21
  buffer.writeUInt8(8);
15
22
  },
16
- writeParameterData: function writeParameterData(buffer, parameter, options, cb) {
17
- if (parameter.value != null) {
18
- const val = typeof parameter.value !== 'number' ? parameter.value : parseInt(parameter.value);
23
+ writeParameterData: function writeParameterData(buffer, parameter, _options, cb) {
24
+ const value = parameter.value;
25
+
26
+ if (value != null) {
27
+ const val = typeof value !== 'number' ? parseInt(value) : value;
19
28
  buffer.writeUInt8(8);
20
29
  buffer.writeInt64LE(val);
21
30
  } else {
@@ -44,4 +53,7 @@ module.exports = {
44
53
 
45
54
  return value;
46
55
  }
47
- };
56
+ };
57
+ var _default = BigInt;
58
+ exports.default = _default;
59
+ module.exports = BigInt;
@@ -1,20 +1,24 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
3
7
  const NULL = (1 << 16) - 1;
4
- module.exports = {
8
+ const Binary = {
5
9
  id: 0xAD,
6
10
  type: 'BIGBinary',
7
11
  name: 'Binary',
8
- dataLengthLength: 2,
9
12
  maximumLength: 8000,
10
13
  declaration: function declaration(parameter) {
14
+ const value = parameter.value;
11
15
  var length;
12
16
 
13
17
  if (parameter.length) {
14
18
  length = parameter.length;
15
- } else if (parameter.value != null) {
16
- length = parameter.value.length || 1;
17
- } else if (parameter.value === null && !parameter.output) {
19
+ } else if (value != null) {
20
+ length = value.length || 1;
21
+ } else if (value === null && !parameter.output) {
18
22
  length = 1;
19
23
  } else {
20
24
  length = this.maximumLength;
@@ -23,8 +27,10 @@ module.exports = {
23
27
  return 'binary(' + length + ')';
24
28
  },
25
29
  resolveLength: function resolveLength(parameter) {
26
- if (parameter.value != null) {
27
- return parameter.value.length;
30
+ const value = parameter.value;
31
+
32
+ if (value != null) {
33
+ return value.length;
28
34
  } else {
29
35
  return this.maximumLength;
30
36
  }
@@ -33,10 +39,10 @@ module.exports = {
33
39
  buffer.writeUInt8(this.id);
34
40
  buffer.writeUInt16LE(parameter.length);
35
41
  },
36
- writeParameterData: function writeParameterData(buffer, parameter, options, cb) {
42
+ writeParameterData: function writeParameterData(buffer, parameter, _options, cb) {
37
43
  if (parameter.value != null) {
38
44
  buffer.writeUInt16LE(parameter.length);
39
- buffer.writeBuffer(parameter.value.slice(0, Math.min(parameter.length, this.maximumLength)));
45
+ buffer.writeBuffer(parameter.value.slice(0, parameter.length !== undefined ? Math.min(parameter.length, this.maximumLength) : this.maximumLength));
40
46
  } else {
41
47
  buffer.writeUInt16LE(NULL);
42
48
  }
@@ -54,4 +60,7 @@ module.exports = {
54
60
 
55
61
  return value;
56
62
  }
57
- };
63
+ };
64
+ var _default = Binary;
65
+ exports.default = _default;
66
+ module.exports = Binary;
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
2
 
3
- const BitN = require('./bitn');
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
4
7
 
5
- module.exports = {
8
+ var _bitn = _interopRequireDefault(require("./bitn"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const Bit = {
6
13
  id: 0x32,
7
14
  type: 'BIT',
8
15
  name: 'Bit',
@@ -10,7 +17,7 @@ module.exports = {
10
17
  return 'bit';
11
18
  },
12
19
  writeTypeInfo: function writeTypeInfo(buffer) {
13
- buffer.writeUInt8(BitN.id);
20
+ buffer.writeUInt8(_bitn.default.id);
14
21
  buffer.writeUInt8(1);
15
22
  },
16
23
  writeParameterData: function writeParameterData(buffer, parameter, options, cb) {
@@ -34,4 +41,7 @@ module.exports = {
34
41
  return false;
35
42
  }
36
43
  }
37
- };
44
+ };
45
+ var _default = Bit;
46
+ exports.default = _default;
47
+ module.exports = Bit;
@@ -1,8 +1,31 @@
1
1
  "use strict";
2
2
 
3
- module.exports = {
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ const BitN = {
4
8
  id: 0x68,
5
9
  type: 'BITN',
6
10
  name: 'BitN',
7
- dataLengthLength: 1
8
- };
11
+
12
+ declaration() {
13
+ throw new Error('not implemented');
14
+ },
15
+
16
+ writeTypeInfo() {
17
+ throw new Error('not implemented');
18
+ },
19
+
20
+ writeParameterData() {
21
+ throw new Error('not implemented');
22
+ },
23
+
24
+ validate() {
25
+ throw new Error('not implemented');
26
+ }
27
+
28
+ };
29
+ var _default = BitN;
30
+ exports.default = _default;
31
+ module.exports = BitN;
@@ -1,21 +1,26 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
3
7
  const NULL = (1 << 16) - 1;
4
- module.exports = {
8
+ const Char = {
5
9
  id: 0xAF,
6
10
  type: 'BIGCHAR',
7
11
  name: 'Char',
8
- hasCollation: true,
9
- dataLengthLength: 2,
10
12
  maximumLength: 8000,
11
13
  declaration: function declaration(parameter) {
14
+ // const value = parameter.value as null | string | { toString(): string };
15
+ const value = parameter.value; // Temporary solution. Remove 'any' later.
16
+
12
17
  let length;
13
18
 
14
19
  if (parameter.length) {
15
20
  length = parameter.length;
16
- } else if (parameter.value != null) {
17
- length = parameter.value.toString().length || 1;
18
- } else if (parameter.value === null && !parameter.output) {
21
+ } else if (value != null) {
22
+ length = value.toString().length || 1;
23
+ } else if (value === null && !parameter.output) {
19
24
  length = 1;
20
25
  } else {
21
26
  length = this.maximumLength;
@@ -27,14 +32,17 @@ module.exports = {
27
32
  return 'char(' + this.maximumLength + ')';
28
33
  }
29
34
  },
35
+ // ParameterData<any> is temporary solution. TODO: need to understand what type ParameterData<...> can be.
30
36
  resolveLength: function resolveLength(parameter) {
37
+ const value = parameter.value; // Temporary solution. Remove 'any' later.
38
+
31
39
  if (parameter.length != null) {
32
40
  return parameter.length;
33
- } else if (parameter.value != null) {
34
- if (Buffer.isBuffer(parameter.value)) {
35
- return parameter.value.length || 1;
41
+ } else if (value != null) {
42
+ if (Buffer.isBuffer(value)) {
43
+ return value.length || 1;
36
44
  } else {
37
- return parameter.value.toString().length || 1;
45
+ return value.toString().length || 1;
38
46
  }
39
47
  } else {
40
48
  return this.maximumLength;
@@ -46,8 +54,10 @@ module.exports = {
46
54
  buffer.writeBuffer(Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00]));
47
55
  },
48
56
  writeParameterData: function writeParameterData(buffer, parameter, options, cb) {
49
- if (parameter.value != null) {
50
- buffer.writeUsVarbyte(parameter.value, 'ascii');
57
+ const value = parameter.value; // Temporary solution. Remove 'any' later.
58
+
59
+ if (value != null) {
60
+ buffer.writeUsVarbyte(value, 'ascii');
51
61
  } else {
52
62
  buffer.writeUInt16LE(NULL);
53
63
  }
@@ -69,4 +79,7 @@ module.exports = {
69
79
 
70
80
  return value;
71
81
  }
72
- };
82
+ };
83
+ var _default = Char;
84
+ exports.default = _default;
85
+ module.exports = Char;
@@ -1,19 +1,24 @@
1
1
  "use strict";
2
2
 
3
- const YEAR_ONE = new Date(2000, 0, -730118);
4
- const UTC_YEAR_ONE = Date.UTC(2000, 0, -730118);
5
- module.exports = {
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // globalDate is to be used for JavaScript's global 'Date' object to avoid name clashing with the 'Date' constant below
8
+ const globalDate = global.Date;
9
+ const YEAR_ONE = new globalDate(2000, 0, -730118);
10
+ const UTC_YEAR_ONE = globalDate.UTC(2000, 0, -730118);
11
+ const Date = {
6
12
  id: 0x28,
7
13
  type: 'DATEN',
8
14
  name: 'Date',
9
- dataLengthLength: 1,
10
- fixedDataLength: 3,
11
15
  declaration: function declaration() {
12
16
  return 'date';
13
17
  },
14
18
  writeTypeInfo: function writeTypeInfo(buffer) {
15
19
  buffer.writeUInt8(this.id);
16
20
  },
21
+ // ParameterData<any> is temporary solution. TODO: need to understand what type ParameterData<...> can be.
17
22
  writeParameterData: function writeParameterData(buffer, parameter, options, cb) {
18
23
  if (parameter.value != null) {
19
24
  buffer.writeUInt8(3);
@@ -22,7 +27,7 @@ module.exports = {
22
27
  buffer.writeUInt24LE(Math.floor((+parameter.value - UTC_YEAR_ONE) / 86400000));
23
28
  } else {
24
29
  const dstDiff = -(parameter.value.getTimezoneOffset() - YEAR_ONE.getTimezoneOffset()) * 60 * 1000;
25
- buffer.writeUInt24LE(Math.floor((+parameter.value - YEAR_ONE + dstDiff) / 86400000));
30
+ buffer.writeUInt24LE(Math.floor((+parameter.value - +YEAR_ONE + dstDiff) / 86400000));
26
31
  }
27
32
  } else {
28
33
  buffer.writeUInt8(0);
@@ -30,13 +35,14 @@ module.exports = {
30
35
 
31
36
  cb();
32
37
  },
38
+ // TODO: value is techincally of type 'unknown'.
33
39
  validate: function validate(value) {
34
40
  if (value == null) {
35
41
  return null;
36
42
  }
37
43
 
38
- if (!(value instanceof Date)) {
39
- value = Date.parse(value);
44
+ if (!(value instanceof globalDate)) {
45
+ value = globalDate.parse(value);
40
46
  }
41
47
 
42
48
  if (isNaN(value)) {
@@ -45,4 +51,7 @@ module.exports = {
45
51
 
46
52
  return value;
47
53
  }
48
- };
54
+ };
55
+ var _default = Date;
56
+ exports.default = _default;
57
+ module.exports = Date;