tedious 16.4.1 → 16.6.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 (109) hide show
  1. package/benchmarks/bulk-load/iterable.js +1 -1
  2. package/benchmarks/common.js +2 -4
  3. package/benchmarks/package-lock.json +21173 -0
  4. package/benchmarks/package.json +11 -0
  5. package/benchmarks/query/call-tvp.js +1 -1
  6. package/benchmarks/query/insert-varbinary.js +1 -1
  7. package/benchmarks/query/select-many-rows.js +1 -1
  8. package/benchmarks/query/select-nvarchar.js +1 -1
  9. package/benchmarks/query/select-varbinary.js +1 -1
  10. package/benchmarks/request/rpcrequest-payload-tvp.js +2 -2
  11. package/benchmarks/request/rpcrequest-payload-varbinary.js +2 -2
  12. package/benchmarks/token-parser/colmetadata-token.js +4 -2
  13. package/benchmarks/token-parser/done-token.js +5 -2
  14. package/benchmarks/token-parser/simple-tokens.js +8 -2
  15. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +1 -8
  16. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -1
  17. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +1 -8
  18. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -1
  19. package/lib/always-encrypted/cek-entry.js +1 -7
  20. package/lib/always-encrypted/cek-entry.js.map +1 -1
  21. package/lib/always-encrypted/keystore-provider-azure-key-vault.js +1 -8
  22. package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -1
  23. package/lib/always-encrypted/symmetric-key.js +1 -2
  24. package/lib/always-encrypted/symmetric-key.js.map +1 -1
  25. package/lib/bulk-load-payload.js +1 -3
  26. package/lib/bulk-load-payload.js.map +1 -1
  27. package/lib/bulk-load.js +15 -23
  28. package/lib/bulk-load.js.map +1 -1
  29. package/lib/collation.js +1 -7
  30. package/lib/collation.js.map +1 -1
  31. package/lib/connection.js +22 -28
  32. package/lib/connection.js.map +1 -1
  33. package/lib/debug.js +1 -4
  34. package/lib/debug.js.map +1 -1
  35. package/lib/errors/abort-error.js +1 -2
  36. package/lib/errors/abort-error.js.map +1 -1
  37. package/lib/errors/timeout-error.js +1 -2
  38. package/lib/errors/timeout-error.js.map +1 -1
  39. package/lib/errors.js +1 -10
  40. package/lib/errors.js.map +1 -1
  41. package/lib/incoming-message-stream.js +1 -4
  42. package/lib/incoming-message-stream.js.map +1 -1
  43. package/lib/login7-payload.js +1 -23
  44. package/lib/login7-payload.js.map +1 -1
  45. package/lib/message-io.js +1 -8
  46. package/lib/message-io.js.map +1 -1
  47. package/lib/message.js +1 -4
  48. package/lib/message.js.map +1 -1
  49. package/lib/metadata-parser.js +361 -241
  50. package/lib/metadata-parser.js.map +1 -1
  51. package/lib/ntlm-payload.js +1 -2
  52. package/lib/ntlm-payload.js.map +1 -1
  53. package/lib/outgoing-message-stream.js +1 -5
  54. package/lib/outgoing-message-stream.js.map +1 -1
  55. package/lib/packet.js +1 -2
  56. package/lib/packet.js.map +1 -1
  57. package/lib/prelogin-payload.js +1 -11
  58. package/lib/prelogin-payload.js.map +1 -1
  59. package/lib/request.js +13 -19
  60. package/lib/request.js.map +1 -1
  61. package/lib/rpcrequest-payload.js +1 -6
  62. package/lib/rpcrequest-payload.js.map +1 -1
  63. package/lib/sqlbatch-payload.js +1 -4
  64. package/lib/sqlbatch-payload.js.map +1 -1
  65. package/lib/token/colmetadata-token-parser.js +103 -74
  66. package/lib/token/colmetadata-token-parser.js.map +1 -1
  67. package/lib/token/done-token-parser.js +52 -40
  68. package/lib/token/done-token-parser.js.map +1 -1
  69. package/lib/token/env-change-token-parser.js +110 -81
  70. package/lib/token/env-change-token-parser.js.map +1 -1
  71. package/lib/token/feature-ext-ack-parser.js +30 -22
  72. package/lib/token/feature-ext-ack-parser.js.map +1 -1
  73. package/lib/token/fedauth-info-parser.js +47 -30
  74. package/lib/token/fedauth-info-parser.js.map +1 -1
  75. package/lib/token/handler.js +3 -13
  76. package/lib/token/handler.js.map +1 -1
  77. package/lib/token/helpers.js +205 -0
  78. package/lib/token/helpers.js.map +1 -0
  79. package/lib/token/infoerror-token-parser.js +69 -36
  80. package/lib/token/infoerror-token-parser.js.map +1 -1
  81. package/lib/token/loginack-token-parser.js +59 -31
  82. package/lib/token/loginack-token-parser.js.map +1 -1
  83. package/lib/token/nbcrow-token-parser.js +60 -23
  84. package/lib/token/nbcrow-token-parser.js.map +1 -1
  85. package/lib/token/order-token-parser.js +22 -20
  86. package/lib/token/order-token-parser.js.map +1 -1
  87. package/lib/token/returnstatus-token-parser.js +9 -5
  88. package/lib/token/returnstatus-token-parser.js.map +1 -1
  89. package/lib/token/returnvalue-token-parser.js +79 -22
  90. package/lib/token/returnvalue-token-parser.js.map +1 -1
  91. package/lib/token/row-token-parser.js +50 -20
  92. package/lib/token/row-token-parser.js.map +1 -1
  93. package/lib/token/sspi-token-parser.js +14 -5
  94. package/lib/token/sspi-token-parser.js.map +1 -1
  95. package/lib/token/stream-parser.js +289 -330
  96. package/lib/token/stream-parser.js.map +1 -1
  97. package/lib/token/token-stream-parser.js +1 -4
  98. package/lib/token/token-stream-parser.js.map +1 -1
  99. package/lib/token/token.js +2 -88
  100. package/lib/token/token.js.map +1 -1
  101. package/lib/tracking-buffer/writable-tracking-buffer.js +1 -7
  102. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
  103. package/lib/transaction.js +1 -4
  104. package/lib/transaction.js.map +1 -1
  105. package/lib/value-parser.js +655 -438
  106. package/lib/value-parser.js.map +1 -1
  107. package/package.json +1 -1
  108. package/benchmarks/bulk-load/stream.js +0 -62
  109. package/benchmarks/bulk-load/sync.js +0 -59
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Result = exports.NotEnoughDataError = void 0;
7
+ exports.readBVarByte = readBVarByte;
8
+ exports.readBVarChar = readBVarChar;
9
+ exports.readBigInt64LE = readBigInt64LE;
10
+ exports.readBigUInt64LE = readBigUInt64LE;
11
+ exports.readDoubleLE = readDoubleLE;
12
+ exports.readFloatLE = readFloatLE;
13
+ exports.readInt16LE = readInt16LE;
14
+ exports.readInt32LE = readInt32LE;
15
+ exports.readUInt16LE = readUInt16LE;
16
+ exports.readUInt24LE = readUInt24LE;
17
+ exports.readUInt32BE = readUInt32BE;
18
+ exports.readUInt32LE = readUInt32LE;
19
+ exports.readUInt40LE = readUInt40LE;
20
+ exports.readUInt8 = readUInt8;
21
+ exports.readUNumeric128LE = readUNumeric128LE;
22
+ exports.readUNumeric64LE = readUNumeric64LE;
23
+ exports.readUNumeric96LE = readUNumeric96LE;
24
+ exports.readUsVarByte = readUsVarByte;
25
+ exports.readUsVarChar = readUsVarChar;
26
+ class Result {
27
+ constructor(value, offset) {
28
+ this.value = value;
29
+ this.offset = offset;
30
+ }
31
+ }
32
+ exports.Result = Result;
33
+ class NotEnoughDataError extends Error {
34
+ byteCount;
35
+ constructor(byteCount) {
36
+ super();
37
+ this.byteCount = byteCount;
38
+ }
39
+ }
40
+ exports.NotEnoughDataError = NotEnoughDataError;
41
+ function readUInt8(buf, offset) {
42
+ offset = +offset;
43
+ if (buf.length < offset + 1) {
44
+ throw new NotEnoughDataError(offset + 1);
45
+ }
46
+ return new Result(buf.readUInt8(offset), offset + 1);
47
+ }
48
+ function readUInt16LE(buf, offset) {
49
+ offset = +offset;
50
+ if (buf.length < offset + 2) {
51
+ throw new NotEnoughDataError(offset + 2);
52
+ }
53
+ return new Result(buf.readUInt16LE(offset), offset + 2);
54
+ }
55
+ function readInt16LE(buf, offset) {
56
+ offset = +offset;
57
+ if (buf.length < offset + 2) {
58
+ throw new NotEnoughDataError(offset + 2);
59
+ }
60
+ return new Result(buf.readInt16LE(offset), offset + 2);
61
+ }
62
+ function readUInt24LE(buf, offset) {
63
+ offset = +offset;
64
+ if (buf.length < offset + 3) {
65
+ throw new NotEnoughDataError(offset + 3);
66
+ }
67
+ return new Result(buf.readUIntLE(offset, 3), offset + 3);
68
+ }
69
+ function readUInt32LE(buf, offset) {
70
+ offset = +offset;
71
+ if (buf.length < offset + 4) {
72
+ throw new NotEnoughDataError(offset + 4);
73
+ }
74
+ return new Result(buf.readUInt32LE(offset), offset + 4);
75
+ }
76
+ function readUInt32BE(buf, offset) {
77
+ offset = +offset;
78
+ if (buf.length < offset + 4) {
79
+ throw new NotEnoughDataError(offset + 4);
80
+ }
81
+ return new Result(buf.readUInt32BE(offset), offset + 4);
82
+ }
83
+ function readUInt40LE(buf, offset) {
84
+ offset = +offset;
85
+ if (buf.length < offset + 5) {
86
+ throw new NotEnoughDataError(offset + 5);
87
+ }
88
+ return new Result(buf.readUIntLE(offset, 5), offset + 5);
89
+ }
90
+ function readInt32LE(buf, offset) {
91
+ offset = +offset;
92
+ if (buf.length < offset + 4) {
93
+ throw new NotEnoughDataError(offset + 4);
94
+ }
95
+ return new Result(buf.readInt32LE(offset), offset + 4);
96
+ }
97
+ function readBigUInt64LE(buf, offset) {
98
+ offset = +offset;
99
+ if (buf.length < offset + 8) {
100
+ throw new NotEnoughDataError(offset + 8);
101
+ }
102
+ return new Result(buf.readBigUInt64LE(offset), offset + 8);
103
+ }
104
+ function readBigInt64LE(buf, offset) {
105
+ offset = +offset;
106
+ if (buf.length < offset + 8) {
107
+ throw new NotEnoughDataError(offset + 8);
108
+ }
109
+ return new Result(buf.readBigInt64LE(offset), offset + 8);
110
+ }
111
+ function readFloatLE(buf, offset) {
112
+ offset = +offset;
113
+ if (buf.length < offset + 4) {
114
+ throw new NotEnoughDataError(offset + 4);
115
+ }
116
+ return new Result(buf.readFloatLE(offset), offset + 4);
117
+ }
118
+ function readDoubleLE(buf, offset) {
119
+ offset = +offset;
120
+ if (buf.length < offset + 8) {
121
+ throw new NotEnoughDataError(offset + 8);
122
+ }
123
+ return new Result(buf.readDoubleLE(offset), offset + 8);
124
+ }
125
+ function readBVarChar(buf, offset) {
126
+ offset = +offset;
127
+ let charCount;
128
+ ({
129
+ offset,
130
+ value: charCount
131
+ } = readUInt8(buf, offset));
132
+ const byteLength = charCount * 2;
133
+ if (buf.length < offset + byteLength) {
134
+ throw new NotEnoughDataError(offset + byteLength);
135
+ }
136
+ return new Result(buf.toString('ucs2', offset, offset + byteLength), offset + byteLength);
137
+ }
138
+ function readBVarByte(buf, offset) {
139
+ offset = +offset;
140
+ let byteLength;
141
+ ({
142
+ offset,
143
+ value: byteLength
144
+ } = readUInt8(buf, offset));
145
+ if (buf.length < offset + byteLength) {
146
+ throw new NotEnoughDataError(offset + byteLength);
147
+ }
148
+ return new Result(buf.slice(offset, offset + byteLength), offset + byteLength);
149
+ }
150
+ function readUsVarChar(buf, offset) {
151
+ offset = +offset;
152
+ let charCount;
153
+ ({
154
+ offset,
155
+ value: charCount
156
+ } = readUInt16LE(buf, offset));
157
+ const byteLength = charCount * 2;
158
+ if (buf.length < offset + byteLength) {
159
+ throw new NotEnoughDataError(offset + byteLength);
160
+ }
161
+ return new Result(buf.toString('ucs2', offset, offset + byteLength), offset + byteLength);
162
+ }
163
+ function readUsVarByte(buf, offset) {
164
+ offset = +offset;
165
+ let byteLength;
166
+ ({
167
+ offset,
168
+ value: byteLength
169
+ } = readUInt16LE(buf, offset));
170
+ if (buf.length < offset + byteLength) {
171
+ throw new NotEnoughDataError(offset + byteLength);
172
+ }
173
+ return new Result(buf.slice(offset, offset + byteLength), offset + byteLength);
174
+ }
175
+ function readUNumeric64LE(buf, offset) {
176
+ offset = +offset;
177
+ if (buf.length < offset + 8) {
178
+ throw new NotEnoughDataError(offset + 8);
179
+ }
180
+ const low = buf.readUInt32LE(offset);
181
+ const high = buf.readUInt32LE(offset + 4);
182
+ return new Result(0x100000000 * high + low, offset + 8);
183
+ }
184
+ function readUNumeric96LE(buf, offset) {
185
+ offset = +offset;
186
+ if (buf.length < offset + 12) {
187
+ throw new NotEnoughDataError(offset + 12);
188
+ }
189
+ const dword1 = buf.readUInt32LE(offset);
190
+ const dword2 = buf.readUInt32LE(offset + 4);
191
+ const dword3 = buf.readUInt32LE(offset + 8);
192
+ return new Result(dword1 + 0x100000000 * dword2 + 0x100000000 * 0x100000000 * dword3, offset + 12);
193
+ }
194
+ function readUNumeric128LE(buf, offset) {
195
+ offset = +offset;
196
+ if (buf.length < offset + 16) {
197
+ throw new NotEnoughDataError(offset + 16);
198
+ }
199
+ const dword1 = buf.readUInt32LE(offset);
200
+ const dword2 = buf.readUInt32LE(offset + 4);
201
+ const dword3 = buf.readUInt32LE(offset + 8);
202
+ const dword4 = buf.readUInt32LE(offset + 12);
203
+ return new Result(dword1 + 0x100000000 * dword2 + 0x100000000 * 0x100000000 * dword3 + 0x100000000 * 0x100000000 * 0x100000000 * dword4, offset + 16);
204
+ }
205
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXN1bHQiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwib2Zmc2V0IiwiZXhwb3J0cyIsIk5vdEVub3VnaERhdGFFcnJvciIsIkVycm9yIiwiYnl0ZUNvdW50IiwicmVhZFVJbnQ4IiwiYnVmIiwibGVuZ3RoIiwicmVhZFVJbnQxNkxFIiwicmVhZEludDE2TEUiLCJyZWFkVUludDI0TEUiLCJyZWFkVUludExFIiwicmVhZFVJbnQzMkxFIiwicmVhZFVJbnQzMkJFIiwicmVhZFVJbnQ0MExFIiwicmVhZEludDMyTEUiLCJyZWFkQmlnVUludDY0TEUiLCJyZWFkQmlnSW50NjRMRSIsInJlYWRGbG9hdExFIiwicmVhZERvdWJsZUxFIiwicmVhZEJWYXJDaGFyIiwiY2hhckNvdW50IiwiYnl0ZUxlbmd0aCIsInRvU3RyaW5nIiwicmVhZEJWYXJCeXRlIiwic2xpY2UiLCJyZWFkVXNWYXJDaGFyIiwicmVhZFVzVmFyQnl0ZSIsInJlYWRVTnVtZXJpYzY0TEUiLCJsb3ciLCJoaWdoIiwicmVhZFVOdW1lcmljOTZMRSIsImR3b3JkMSIsImR3b3JkMiIsImR3b3JkMyIsInJlYWRVTnVtZXJpYzEyOExFIiwiZHdvcmQ0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2hlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJlc3VsdDxUPiB7XG4gIGRlY2xhcmUgdmFsdWU6IFQ7XG4gIGRlY2xhcmUgb2Zmc2V0OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IodmFsdWU6IFQsIG9mZnNldDogbnVtYmVyKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub2Zmc2V0ID0gb2Zmc2V0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RFbm91Z2hEYXRhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGJ5dGVDb3VudDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGJ5dGVDb3VudDogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYnl0ZUNvdW50ID0gYnl0ZUNvdW50O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVUludDgoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgMSkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgMSk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZFVJbnQ4KG9mZnNldCksIG9mZnNldCArIDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQxNkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDIpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDIpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50MTZMRShvZmZzZXQpLCBvZmZzZXQgKyAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJbnQxNkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDIpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDIpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRJbnQxNkxFKG9mZnNldCksIG9mZnNldCArIDIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQyNExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDMpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDMpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50TEUob2Zmc2V0LCAzKSwgb2Zmc2V0ICsgMyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVUludDMyTEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgNCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgNCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZFVJbnQzMkxFKG9mZnNldCksIG9mZnNldCArIDQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQzMkJFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDQpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50MzJCRShvZmZzZXQpLCBvZmZzZXQgKyA0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVSW50NDBMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyA1KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyA1KTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVzdWx0KGJ1Zi5yZWFkVUludExFKG9mZnNldCwgNSksIG9mZnNldCArIDUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJbnQzMkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDQpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRJbnQzMkxFKG9mZnNldCksIG9mZnNldCArIDQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEJpZ1VJbnQ2NExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxiaWdpbnQ+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRCaWdVSW50NjRMRShvZmZzZXQpLCBvZmZzZXQgKyA4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRCaWdJbnQ2NExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxiaWdpbnQ+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRCaWdJbnQ2NExFKG9mZnNldCksIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEZsb2F0TEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgNCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgNCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZEZsb2F0TEUob2Zmc2V0KSwgb2Zmc2V0ICsgNCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRG91YmxlTEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgOCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgOCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZERvdWJsZUxFKG9mZnNldCksIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEJWYXJDaGFyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxzdHJpbmc+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBsZXQgY2hhckNvdW50O1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjaGFyQ291bnQgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGNvbnN0IGJ5dGVMZW5ndGggPSBjaGFyQ291bnQgKiAyO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYudG9TdHJpbmcoJ3VjczInLCBvZmZzZXQsIG9mZnNldCArIGJ5dGVMZW5ndGgpLCBvZmZzZXQgKyBieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRCVmFyQnl0ZShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8QnVmZmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgbGV0IGJ5dGVMZW5ndGg7XG4gICh7IG9mZnNldCwgdmFsdWU6IGJ5dGVMZW5ndGggfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBieXRlTGVuZ3RoKSwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVXNWYXJDaGFyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxzdHJpbmc+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBsZXQgY2hhckNvdW50O1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjaGFyQ291bnQgfSA9IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkpO1xuXG4gIGNvbnN0IGJ5dGVMZW5ndGggPSBjaGFyQ291bnQgKiAyO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYudG9TdHJpbmcoJ3VjczInLCBvZmZzZXQsIG9mZnNldCArIGJ5dGVMZW5ndGgpLCBvZmZzZXQgKyBieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVc1ZhckJ5dGUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PEJ1ZmZlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGxldCBieXRlTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBieXRlTGVuZ3RoIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIGJ5dGVMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIGJ5dGVMZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCksIG9mZnNldCArIGJ5dGVMZW5ndGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVOdW1lcmljNjRMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyA4KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyA4KTtcbiAgfVxuXG4gIGNvbnN0IGxvdyA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0KTtcbiAgY29uc3QgaGlnaCA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgNCk7XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoKDB4MTAwMDAwMDAwICogaGlnaCkgKyBsb3csIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVOdW1lcmljOTZMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyAxMikge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgMTIpO1xuICB9XG5cbiAgY29uc3QgZHdvcmQxID0gYnVmLnJlYWRVSW50MzJMRShvZmZzZXQpO1xuICBjb25zdCBkd29yZDIgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCArIDQpO1xuICBjb25zdCBkd29yZDMgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCArIDgpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KGR3b3JkMSArICgweDEwMDAwMDAwMCAqIGR3b3JkMikgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIGR3b3JkMyksIG9mZnNldCArIDEyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVTnVtZXJpYzEyOExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDE2KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyAxNik7XG4gIH1cblxuICBjb25zdCBkd29yZDEgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCk7XG4gIGNvbnN0IGR3b3JkMiA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgNCk7XG4gIGNvbnN0IGR3b3JkMyA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgOCk7XG4gIGNvbnN0IGR3b3JkNCA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgMTIpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KGR3b3JkMSArICgweDEwMDAwMDAwMCAqIGR3b3JkMikgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIGR3b3JkMykgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIDB4MTAwMDAwMDAwICogZHdvcmQ0KSwgb2Zmc2V0ICsgMTYpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sTUFBTUEsTUFBTSxDQUFJO0VBSXJCQyxXQUFXQSxDQUFDQyxLQUFRLEVBQUVDLE1BQWMsRUFBRTtJQUNwQyxJQUFJLENBQUNELEtBQUssR0FBR0EsS0FBSztJQUNsQixJQUFJLENBQUNDLE1BQU0sR0FBR0EsTUFBTTtFQUN0QjtBQUNGO0FBQUNDLE9BQUEsQ0FBQUosTUFBQSxHQUFBQSxNQUFBO0FBRU0sTUFBTUssa0JBQWtCLFNBQVNDLEtBQUssQ0FBQztFQUM1Q0MsU0FBUztFQUVUTixXQUFXQSxD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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["Result","constructor","value","offset","exports","NotEnoughDataError","Error","byteCount","readUInt8","buf","length","readUInt16LE","readInt16LE","readUInt24LE","readUIntLE","readUInt32LE","readUInt32BE","readUInt40LE","readInt32LE","readBigUInt64LE","readBigInt64LE","readFloatLE","readDoubleLE","readBVarChar","charCount","byteLength","toString","readBVarByte","slice","readUsVarChar","readUsVarByte","readUNumeric64LE","low","high","readUNumeric96LE","dword1","dword2","dword3","readUNumeric128LE","dword4"],"sources":["../../src/token/helpers.ts"],"sourcesContent":["export class Result<T> {\n declare value: T;\n declare offset: number;\n\n constructor(value: T, offset: number) {\n this.value = value;\n this.offset = offset;\n }\n}\n\nexport class NotEnoughDataError extends Error {\n byteCount: number;\n\n constructor(byteCount: number) {\n super();\n\n this.byteCount = byteCount;\n }\n}\n\nexport function readUInt8(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 1) {\n throw new NotEnoughDataError(offset + 1);\n }\n\n return new Result(buf.readUInt8(offset), offset + 1);\n}\n\nexport function readUInt16LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 2) {\n throw new NotEnoughDataError(offset + 2);\n }\n\n return new Result(buf.readUInt16LE(offset), offset + 2);\n}\n\nexport function readInt16LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 2) {\n throw new NotEnoughDataError(offset + 2);\n }\n\n return new Result(buf.readInt16LE(offset), offset + 2);\n}\n\nexport function readUInt24LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 3) {\n throw new NotEnoughDataError(offset + 3);\n }\n\n return new Result(buf.readUIntLE(offset, 3), offset + 3);\n}\n\nexport function readUInt32LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readUInt32LE(offset), offset + 4);\n}\n\nexport function readUInt32BE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readUInt32BE(offset), offset + 4);\n}\n\nexport function readUInt40LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 5) {\n throw new NotEnoughDataError(offset + 5);\n }\n\n return new Result(buf.readUIntLE(offset, 5), offset + 5);\n}\nexport function readInt32LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readInt32LE(offset), offset + 4);\n}\n\nexport function readBigUInt64LE(buf: Buffer, offset: number): Result<bigint> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readBigUInt64LE(offset), offset + 8);\n}\n\nexport function readBigInt64LE(buf: Buffer, offset: number): Result<bigint> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readBigInt64LE(offset), offset + 8);\n}\n\nexport function readFloatLE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readFloatLE(offset), offset + 4);\n}\n\nexport function readDoubleLE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readDoubleLE(offset), offset + 8);\n}\n\nexport function readBVarChar(buf: Buffer, offset: number): Result<string> {\n offset = +offset;\n\n let charCount;\n ({ offset, value: charCount } = readUInt8(buf, offset));\n\n const byteLength = charCount * 2;\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.toString('ucs2', offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readBVarByte(buf: Buffer, offset: number): Result<Buffer> {\n offset = +offset;\n\n let byteLength;\n ({ offset, value: byteLength } = readUInt8(buf, offset));\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.slice(offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUsVarChar(buf: Buffer, offset: number): Result<string> {\n offset = +offset;\n\n let charCount;\n ({ offset, value: charCount } = readUInt16LE(buf, offset));\n\n const byteLength = charCount * 2;\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.toString('ucs2', offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUsVarByte(buf: Buffer, offset: number): Result<Buffer> {\n offset = +offset;\n\n let byteLength;\n ({ offset, value: byteLength } = readUInt16LE(buf, offset));\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.slice(offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUNumeric64LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n const low = buf.readUInt32LE(offset);\n const high = buf.readUInt32LE(offset + 4);\n\n return new Result((0x100000000 * high) + low, offset + 8);\n}\n\nexport function readUNumeric96LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 12) {\n throw new NotEnoughDataError(offset + 12);\n }\n\n const dword1 = buf.readUInt32LE(offset);\n const dword2 = buf.readUInt32LE(offset + 4);\n const dword3 = buf.readUInt32LE(offset + 8);\n\n return new Result(dword1 + (0x100000000 * dword2) + (0x100000000 * 0x100000000 * dword3), offset + 12);\n}\n\nexport function readUNumeric128LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 16) {\n throw new NotEnoughDataError(offset + 16);\n }\n\n const dword1 = buf.readUInt32LE(offset);\n const dword2 = buf.readUInt32LE(offset + 4);\n const dword3 = buf.readUInt32LE(offset + 8);\n const dword4 = buf.readUInt32LE(offset + 12);\n\n return new Result(dword1 + (0x100000000 * dword2) + (0x100000000 * 0x100000000 * dword3) + (0x100000000 * 0x100000000 * 0x100000000 * dword4), offset + 16);\n}\n"],"mappings":"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"}
@@ -5,43 +5,76 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.errorParser = errorParser;
7
7
  exports.infoParser = infoParser;
8
+ var _helpers = require("./helpers");
8
9
  var _token = require("./token");
9
- function parseToken(parser, options, callback) {
10
- // length
11
- parser.readUInt16LE(() => {
12
- parser.readUInt32LE(number => {
13
- parser.readUInt8(state => {
14
- parser.readUInt8(clazz => {
15
- parser.readUsVarChar(message => {
16
- parser.readBVarChar(serverName => {
17
- parser.readBVarChar(procName => {
18
- (options.tdsVersion < '7_2' ? parser.readUInt16LE : parser.readUInt32LE).call(parser, lineNumber => {
19
- callback({
20
- 'number': number,
21
- 'state': state,
22
- 'class': clazz,
23
- 'message': message,
24
- 'serverName': serverName,
25
- 'procName': procName,
26
- 'lineNumber': lineNumber
27
- });
28
- });
29
- });
30
- });
31
- });
32
- });
33
- });
34
- });
35
- });
10
+ function readToken(buf, offset, options) {
11
+ let tokenLength;
12
+ ({
13
+ offset,
14
+ value: tokenLength
15
+ } = (0, _helpers.readUInt16LE)(buf, offset));
16
+ if (buf.length < tokenLength + offset) {
17
+ throw new _helpers.NotEnoughDataError(tokenLength + offset);
18
+ }
19
+ let number;
20
+ ({
21
+ offset,
22
+ value: number
23
+ } = (0, _helpers.readUInt32LE)(buf, offset));
24
+ let state;
25
+ ({
26
+ offset,
27
+ value: state
28
+ } = (0, _helpers.readUInt8)(buf, offset));
29
+ let clazz;
30
+ ({
31
+ offset,
32
+ value: clazz
33
+ } = (0, _helpers.readUInt8)(buf, offset));
34
+ let message;
35
+ ({
36
+ offset,
37
+ value: message
38
+ } = (0, _helpers.readUsVarChar)(buf, offset));
39
+ let serverName;
40
+ ({
41
+ offset,
42
+ value: serverName
43
+ } = (0, _helpers.readBVarChar)(buf, offset));
44
+ let procName;
45
+ ({
46
+ offset,
47
+ value: procName
48
+ } = (0, _helpers.readBVarChar)(buf, offset));
49
+ let lineNumber;
50
+ ({
51
+ offset,
52
+ value: lineNumber
53
+ } = options.tdsVersion < '7_2' ? (0, _helpers.readUInt16LE)(buf, offset) : (0, _helpers.readUInt32LE)(buf, offset));
54
+ return new _helpers.Result({
55
+ 'number': number,
56
+ 'state': state,
57
+ 'class': clazz,
58
+ 'message': message,
59
+ 'serverName': serverName,
60
+ 'procName': procName,
61
+ 'lineNumber': lineNumber
62
+ }, offset);
36
63
  }
37
- function infoParser(parser, options, callback) {
38
- parseToken(parser, options, data => {
39
- callback(new _token.InfoMessageToken(data));
40
- });
64
+ function infoParser(buf, offset, options) {
65
+ let data;
66
+ ({
67
+ offset,
68
+ value: data
69
+ } = readToken(buf, offset, options));
70
+ return new _helpers.Result(new _token.InfoMessageToken(data), offset);
41
71
  }
42
- function errorParser(parser, options, callback) {
43
- parseToken(parser, options, data => {
44
- callback(new _token.ErrorMessageToken(data));
45
- });
72
+ function errorParser(buf, offset, options) {
73
+ let data;
74
+ ({
75
+ offset,
76
+ value: data
77
+ } = readToken(buf, offset, options));
78
+ return new _helpers.Result(new _token.ErrorMessageToken(data), offset);
46
79
  }
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwicGFyc2VUb2tlbiIsInBhcnNlciIsIm9wdGlvbnMiLCJjYWxsYmFjayIsInJlYWRVSW50MTZMRSIsInJlYWRVSW50MzJMRSIsIm51bWJlciIsInJlYWRVSW50OCIsInN0YXRlIiwiY2xhenoiLCJyZWFkVXNWYXJDaGFyIiwibWVzc2FnZSIsInJlYWRCVmFyQ2hhciIsInNlcnZlck5hbWUiLCJwcm9jTmFtZSIsInRkc1ZlcnNpb24iLCJjYWxsIiwibGluZU51bWJlciIsImluZm9QYXJzZXIiLCJkYXRhIiwiSW5mb01lc3NhZ2VUb2tlbiIsImVycm9yUGFyc2VyIiwiRXJyb3JNZXNzYWdlVG9rZW4iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vaW5mb2Vycm9yLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGFyc2VyLCB7IHR5cGUgUGFyc2VyT3B0aW9ucyB9IGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5cbmltcG9ydCB7IEluZm9NZXNzYWdlVG9rZW4sIEVycm9yTWVzc2FnZVRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmludGVyZmFjZSBUb2tlbkRhdGEge1xuICBudW1iZXI6IG51bWJlcjtcbiAgc3RhdGU6IG51bWJlcjtcbiAgY2xhc3M6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzZXJ2ZXJOYW1lOiBzdHJpbmc7XG4gIHByb2NOYW1lOiBzdHJpbmc7XG4gIGxpbmVOdW1iZXI6IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gcGFyc2VUb2tlbihwYXJzZXI6IFBhcnNlciwgb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY2FsbGJhY2s6IChkYXRhOiBUb2tlbkRhdGEpID0+IHZvaWQpIHtcbiAgLy8gbGVuZ3RoXG4gIHBhcnNlci5yZWFkVUludDE2TEUoKCkgPT4ge1xuICAgIHBhcnNlci5yZWFkVUludDMyTEUoKG51bWJlcikgPT4ge1xuICAgICAgcGFyc2VyLnJlYWRVSW50OCgoc3RhdGUpID0+IHtcbiAgICAgICAgcGFyc2VyLnJlYWRVSW50OCgoY2xhenopID0+IHtcbiAgICAgICAgICBwYXJzZXIucmVhZFVzVmFyQ2hhcigobWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgcGFyc2VyLnJlYWRCVmFyQ2hhcigoc2VydmVyTmFtZSkgPT4ge1xuICAgICAgICAgICAgICBwYXJzZXIucmVhZEJWYXJDaGFyKChwcm9jTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIChvcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJyA/IHBhcnNlci5yZWFkVUludDE2TEUgOiBwYXJzZXIucmVhZFVJbnQzMkxFKS5jYWxsKHBhcnNlciwgKGxpbmVOdW1iZXI6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAnc3RhdGUnOiBzdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgJ2NsYXNzJzogY2xhenosXG4gICAgICAgICAgICAgICAgICAgICdtZXNzYWdlJzogbWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgJ3NlcnZlck5hbWUnOiBzZXJ2ZXJOYW1lLFxuICAgICAgICAgICAgICAgICAgICAncHJvY05hbWUnOiBwcm9jTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgJ2xpbmVOdW1iZXInOiBsaW5lTnVtYmVyXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZvUGFyc2VyKHBhcnNlcjogUGFyc2VyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjYWxsYmFjazogKHRva2VuOiBJbmZvTWVzc2FnZVRva2VuKSA9PiB2b2lkKSB7XG4gIHBhcnNlVG9rZW4ocGFyc2VyLCBvcHRpb25zLCAoZGF0YSkgPT4ge1xuICAgIGNhbGxiYWNrKG5ldyBJbmZvTWVzc2FnZVRva2VuKGRhdGEpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclBhcnNlcihwYXJzZXI6IFBhcnNlciwgb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY2FsbGJhY2s6ICh0b2tlbjogRXJyb3JNZXNzYWdlVG9rZW4pID0+IHZvaWQpIHtcbiAgcGFyc2VUb2tlbihwYXJzZXIsIG9wdGlvbnMsIChkYXRhKSA9PiB7XG4gICAgY2FsbGJhY2sobmV3IEVycm9yTWVzc2FnZVRva2VuKGRhdGEpKTtcbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFZQSxTQUFTQyxVQUFVQSxDQUFDQyxNQUFjLEVBQUVDLE9BQXNCLEVBQUVDLFFBQW1DLEVBQUU7RUFDL0Y7RUFDQUYsTUFBTSxDQUFDRyxZQUFZLENBQUMsTUFBTTtJQUN4QkgsTUFBTSxDQUFDSSxZQUFZLENBQUVDLE1BQU0sSUFBSztNQUM5QkwsTUFBTSxDQUFDTSxTQUFTLENBQUVDLEtBQUssSUFBSztRQUMxQlAsTUFBTSxDQUFDTSxTQUFTLENBQUVFLEtBQUssSUFBSztVQUMxQlIsTUFBTSxDQUFDUyxhQUFhLENBQUVDLE9BQU8sSUFBSztZQUNoQ1YsTUFBTSxDQUFDVyxZQUFZLENBQUVDLFVBQVUsSUFBSztjQUNsQ1osTUFBTSxDQUFDVyxZQUFZLENBQUVFLFFBQVEsSUFBSztnQkFDaEMsQ0FBQ1osT0FBTyxDQUFDYSxVQUFVLEdBQUcsS0FBSyxHQUFHZCxNQUFNLENBQUNHLFlBQVksR0FBR0gsTUFBTSxDQUFDSSxZQUFZLEVBQUVXLElBQUksQ0FBQ2YsTUFBTSxFQUFHZ0IsVUFBa0IsSUFBSztrQkFDNUdkLFFBQVEsQ0FBQztvQkFDUCxRQUFRLEVBQUVHLE1BQU07b0JBQ2hCLE9BQU8sRUFBRUUsS0FBSztvQkFDZCxPQUFPLEVBQUVDLEtBQUs7b0JBQ2QsU0FBUyxFQUFFRSxPQUFPO29CQUNsQixZQUFZLEVBQUVFLFVBQVU7b0JBQ3hCLFVBQVUsRUFBRUMsUUFBUTtvQkFDcEIsWUFBWSxFQUFFRztrQkFDaEIsQ0FBQyxDQUFDO2dCQUNKLENBQUMsQ0FBQztjQUNKLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQztVQUNKLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKO0FBRU8sU0FBU0MsVUFBVUEsQ0FBQ2pCLE1BQWMsRUFBRUMsT0FBc0IsRUFBRUMsUUFBMkMsRUFBRTtFQUM5R0gsVUFBVSxDQUFDQyxNQUFNLEVBQUVDLE9BQU8sRUFBR2lCLElBQUksSUFBSztJQUNwQ2hCLFFBQVEsQ0FBQyxJQUFJaUIsdUJBQWdCLENBQUNELElBQUksQ0FBQyxDQUFDO0VBQ3RDLENBQUMsQ0FBQztBQUNKO0FBRU8sU0FBU0UsV0FBV0EsQ0FBQ3BCLE1BQWMsRUFBRUMsT0FBc0IsRUFBRUMsUUFBNEMsRUFBRTtFQUNoSEgsVUFBVSxDQUFDQyxNQUFNLEVBQUVDLE9BQU8sRUFBR2lCLElBQUksSUFBSztJQUNwQ2hCLFFBQVEsQ0FBQyxJQUFJbUIsd0JBQWlCLENBQUNILElBQUksQ0FBQyxDQUFDO0VBQ3ZDLENBQUMsQ0FBQztBQUNKIn0=
80
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaGVscGVycyIsInJlcXVpcmUiLCJfdG9rZW4iLCJyZWFkVG9rZW4iLCJidWYiLCJvZmZzZXQiLCJvcHRpb25zIiwidG9rZW5MZW5ndGgiLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsImxlbmd0aCIsIk5vdEVub3VnaERhdGFFcnJvciIsIm51bWJlciIsInJlYWRVSW50MzJMRSIsInN0YXRlIiwicmVhZFVJbnQ4IiwiY2xhenoiLCJtZXNzYWdlIiwicmVhZFVzVmFyQ2hhciIsInNlcnZlck5hbWUiLCJyZWFkQlZhckNoYXIiLCJwcm9jTmFtZSIsImxpbmVOdW1iZXIiLCJ0ZHNWZXJzaW9uIiwiUmVzdWx0IiwiaW5mb1BhcnNlciIsImRhdGEiLCJJbmZvTWVzc2FnZVRva2VuIiwiZXJyb3JQYXJzZXIiLCJFcnJvck1lc3NhZ2VUb2tlbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9pbmZvZXJyb3ItdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdEVub3VnaERhdGFFcnJvciwgcmVhZEJWYXJDaGFyLCByZWFkVUludDE2TEUsIHJlYWRVSW50MzJMRSwgcmVhZFVJbnQ4LCByZWFkVXNWYXJDaGFyLCBSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgSW5mb01lc3NhZ2VUb2tlbiwgRXJyb3JNZXNzYWdlVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuaW50ZXJmYWNlIFRva2VuRGF0YSB7XG4gIG51bWJlcjogbnVtYmVyO1xuICBzdGF0ZTogbnVtYmVyO1xuICBjbGFzczogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHNlcnZlck5hbWU6IHN0cmluZztcbiAgcHJvY05hbWU6IHN0cmluZztcbiAgbGluZU51bWJlcjogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW4oYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKTogUmVzdWx0PFRva2VuRGF0YT4ge1xuICBsZXQgdG9rZW5MZW5ndGg7XG4gICh7IG9mZnNldCwgdmFsdWU6IHRva2VuTGVuZ3RoIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAoYnVmLmxlbmd0aCA8IHRva2VuTGVuZ3RoICsgb2Zmc2V0KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcih0b2tlbkxlbmd0aCArIG9mZnNldCk7XG4gIH1cblxuICBsZXQgbnVtYmVyO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBudW1iZXIgfSA9IHJlYWRVSW50MzJMRShidWYsIG9mZnNldCkpO1xuXG4gIGxldCBzdGF0ZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogc3RhdGUgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBjbGF6ejtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogY2xhenogfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtZXNzYWdlO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBtZXNzYWdlIH0gPSByZWFkVXNWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgbGV0IHNlcnZlck5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IHNlcnZlck5hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBwcm9jTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogcHJvY05hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBsaW5lTnVtYmVyO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBsaW5lTnVtYmVyIH0gPSBvcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJyA/IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkgOiByZWFkVUludDMyTEUoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgJ251bWJlcic6IG51bWJlcixcbiAgICAnc3RhdGUnOiBzdGF0ZSxcbiAgICAnY2xhc3MnOiBjbGF6eixcbiAgICAnbWVzc2FnZSc6IG1lc3NhZ2UsXG4gICAgJ3NlcnZlck5hbWUnOiBzZXJ2ZXJOYW1lLFxuICAgICdwcm9jTmFtZSc6IHByb2NOYW1lLFxuICAgICdsaW5lTnVtYmVyJzogbGluZU51bWJlclxuICB9LCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mb1BhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8SW5mb01lc3NhZ2VUb2tlbj4ge1xuICBsZXQgZGF0YTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogZGF0YSB9ID0gcmVhZFRva2VuKGJ1Ziwgb2Zmc2V0LCBvcHRpb25zKSk7XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQobmV3IEluZm9NZXNzYWdlVG9rZW4oZGF0YSksIG9mZnNldCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclBhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8RXJyb3JNZXNzYWdlVG9rZW4+IHtcbiAgbGV0IGRhdGE7XG4gICh7IG9mZnNldCwgdmFsdWU6IGRhdGEgfSA9IHJlYWRUb2tlbihidWYsIG9mZnNldCwgb3B0aW9ucykpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KG5ldyBFcnJvck1lc3NhZ2VUb2tlbihkYXRhKSwgb2Zmc2V0KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUdBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQVlBLFNBQVNFLFNBQVNBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxPQUFzQixFQUFxQjtFQUN6RixJQUFJQyxXQUFXO0VBQ2YsQ0FBQztJQUFFRixNQUFNO0lBQUVHLEtBQUssRUFBRUQ7RUFBWSxDQUFDLEdBQUcs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
@@ -1 +1 @@
1
- {"version":3,"file":"infoerror-token-parser.js","names":["_token","require","parseToken","parser","options","callback","readUInt16LE","readUInt32LE","number","readUInt8","state","clazz","readUsVarChar","message","readBVarChar","serverName","procName","tdsVersion","call","lineNumber","infoParser","data","InfoMessageToken","errorParser","ErrorMessageToken"],"sources":["../../src/token/infoerror-token-parser.ts"],"sourcesContent":["import Parser, { type ParserOptions } from './stream-parser';\n\nimport { InfoMessageToken, ErrorMessageToken } from './token';\n\ninterface TokenData {\n number: number;\n state: number;\n class: number;\n message: string;\n serverName: string;\n procName: string;\n lineNumber: number;\n}\n\nfunction parseToken(parser: Parser, options: ParserOptions, callback: (data: TokenData) => void) {\n // length\n parser.readUInt16LE(() => {\n parser.readUInt32LE((number) => {\n parser.readUInt8((state) => {\n parser.readUInt8((clazz) => {\n parser.readUsVarChar((message) => {\n parser.readBVarChar((serverName) => {\n parser.readBVarChar((procName) => {\n (options.tdsVersion < '7_2' ? parser.readUInt16LE : parser.readUInt32LE).call(parser, (lineNumber: number) => {\n callback({\n 'number': number,\n 'state': state,\n 'class': clazz,\n 'message': message,\n 'serverName': serverName,\n 'procName': procName,\n 'lineNumber': lineNumber\n });\n });\n });\n });\n });\n });\n });\n });\n });\n}\n\nexport function infoParser(parser: Parser, options: ParserOptions, callback: (token: InfoMessageToken) => void) {\n parseToken(parser, options, (data) => {\n callback(new InfoMessageToken(data));\n });\n}\n\nexport function errorParser(parser: Parser, options: ParserOptions, callback: (token: ErrorMessageToken) => void) {\n parseToken(parser, options, (data) => {\n callback(new ErrorMessageToken(data));\n });\n}\n"],"mappings":";;;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAYA,SAASC,UAAUA,CAACC,MAAc,EAAEC,OAAsB,EAAEC,QAAmC,EAAE;EAC/F;EACAF,MAAM,CAACG,YAAY,CAAC,MAAM;IACxBH,MAAM,CAACI,YAAY,CAAEC,MAAM,IAAK;MAC9BL,MAAM,CAACM,SAAS,CAAEC,KAAK,IAAK;QAC1BP,MAAM,CAACM,SAAS,CAAEE,KAAK,IAAK;UAC1BR,MAAM,CAACS,aAAa,CAAEC,OAAO,IAAK;YAChCV,MAAM,CAACW,YAAY,CAAEC,UAAU,IAAK;cAClCZ,MAAM,CAACW,YAAY,CAAEE,QAAQ,IAAK;gBAChC,CAACZ,OAAO,CAACa,UAAU,GAAG,KAAK,GAAGd,MAAM,CAACG,YAAY,GAAGH,MAAM,CAACI,YAAY,EAAEW,IAAI,CAACf,MAAM,EAAGgB,UAAkB,IAAK;kBAC5Gd,QAAQ,CAAC;oBACP,QAAQ,EAAEG,MAAM;oBAChB,OAAO,EAAEE,KAAK;oBACd,OAAO,EAAEC,KAAK;oBACd,SAAS,EAAEE,OAAO;oBAClB,YAAY,EAAEE,UAAU;oBACxB,UAAU,EAAEC,QAAQ;oBACpB,YAAY,EAAEG;kBAChB,CAAC,CAAC;gBACJ,CAAC,CAAC;cACJ,CAAC,CAAC;YACJ,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEO,SAASC,UAAUA,CAACjB,MAAc,EAAEC,OAAsB,EAAEC,QAA2C,EAAE;EAC9GH,UAAU,CAACC,MAAM,EAAEC,OAAO,EAAGiB,IAAI,IAAK;IACpChB,QAAQ,CAAC,IAAIiB,uBAAgB,CAACD,IAAI,CAAC,CAAC;EACtC,CAAC,CAAC;AACJ;AAEO,SAASE,WAAWA,CAACpB,MAAc,EAAEC,OAAsB,EAAEC,QAA4C,EAAE;EAChHH,UAAU,CAACC,MAAM,EAAEC,OAAO,EAAGiB,IAAI,IAAK;IACpChB,QAAQ,CAAC,IAAImB,wBAAiB,CAACH,IAAI,CAAC,CAAC;EACvC,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"infoerror-token-parser.js","names":["_helpers","require","_token","readToken","buf","offset","options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","number","readUInt32LE","state","readUInt8","clazz","message","readUsVarChar","serverName","readBVarChar","procName","lineNumber","tdsVersion","Result","infoParser","data","InfoMessageToken","errorParser","ErrorMessageToken"],"sources":["../../src/token/infoerror-token-parser.ts"],"sourcesContent":["import { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt32LE, readUInt8, readUsVarChar, Result } from './helpers';\nimport { type ParserOptions } from './stream-parser';\n\nimport { InfoMessageToken, ErrorMessageToken } from './token';\n\ninterface TokenData {\n number: number;\n state: number;\n class: number;\n message: string;\n serverName: string;\n procName: string;\n lineNumber: number;\n}\n\nfunction readToken(buf: Buffer, offset: number, options: ParserOptions): Result<TokenData> {\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < tokenLength + offset) {\n throw new NotEnoughDataError(tokenLength + offset);\n }\n\n let number;\n ({ offset, value: number } = readUInt32LE(buf, offset));\n\n let state;\n ({ offset, value: state } = readUInt8(buf, offset));\n\n let clazz;\n ({ offset, value: clazz } = readUInt8(buf, offset));\n\n let message;\n ({ offset, value: message } = readUsVarChar(buf, offset));\n\n let serverName;\n ({ offset, value: serverName } = readBVarChar(buf, offset));\n\n let procName;\n ({ offset, value: procName } = readBVarChar(buf, offset));\n\n let lineNumber;\n ({ offset, value: lineNumber } = options.tdsVersion < '7_2' ? readUInt16LE(buf, offset) : readUInt32LE(buf, offset));\n\n return new Result({\n 'number': number,\n 'state': state,\n 'class': clazz,\n 'message': message,\n 'serverName': serverName,\n 'procName': procName,\n 'lineNumber': lineNumber\n }, offset);\n}\n\nexport function infoParser(buf: Buffer, offset: number, options: ParserOptions): Result<InfoMessageToken> {\n let data;\n ({ offset, value: data } = readToken(buf, offset, options));\n\n return new Result(new InfoMessageToken(data), offset);\n}\n\nexport function errorParser(buf: Buffer, offset: number, options: ParserOptions): Result<ErrorMessageToken> {\n let data;\n ({ offset, value: data } = readToken(buf, offset, options));\n\n return new Result(new ErrorMessageToken(data), offset);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAYA,SAASE,SAASA,CAACC,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAAqB;EACzF,IAAIC,WAAW;EACf,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAY,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAE3D,IAAID,GAAG,CAACM,MAAM,GAAGH,WAAW,GAAGF,MAAM,EAAE;IACrC,MAAM,IAAIM,2BAAkB,CAACJ,WAAW,GAAGF,MAAM,CAAC;EACpD;EAEA,IAAIO,MAAM;EACV,CAAC;IAAEP,MAAM;IAAEG,KAAK,EAAEI;EAAO,CAAC,GAAG,IAAAC,qBAAY,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEtD,IAAIS,KAAK;EACT,CAAC;IAAET,MAAM;IAAEG,KAAK,EAAEM;EAAM,CAAC,GAAG,IAAAC,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIW,KAAK;EACT,CAAC;IAAEX,MAAM;IAAEG,KAAK,EAAEQ;EAAM,CAAC,GAAG,IAAAD,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIY,OAAO;EACX,CAAC;IAAEZ,MAAM;IAAEG,KAAK,EAAES;EAAQ,CAAC,GAAG,IAAAC,sBAAa,EAACd,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIc,UAAU;EACd,CAAC;IAAEd,MAAM;IAAEG,KAAK,EAAEW;EAAW,CAAC,GAAG,IAAAC,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAE1D,IAAIgB,QAAQ;EACZ,CAAC;IAAEhB,MAAM;IAAEG,KAAK,EAAEa;EAAS,CAAC,GAAG,IAAAD,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIiB,UAAU;EACd,CAAC;IAAEjB,MAAM;IAAEG,KAAK,EAAEc;EAAW,CAAC,GAAGhB,OAAO,CAACiB,UAAU,GAAG,KAAK,GAAG,IAAAd,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC,GAAG,IAAAQ,qBAAY,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEnH,OAAO,IAAImB,eAAM,CAAC;IAChB,QAAQ,EAAEZ,MAAM;IAChB,OAAO,EAAEE,KAAK;IACd,OAAO,EAAEE,KAAK;IACd,SAAS,EAAEC,OAAO;IAClB,YAAY,EAAEE,UAAU;IACxB,UAAU,EAAEE,QAAQ;IACpB,YAAY,EAAEC;EAChB,CAAC,EAAEjB,MAAM,CAAC;AACZ;AAEO,SAASoB,UAAUA,CAACrB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAA4B;EACxG,IAAIoB,IAAI;EACR,CAAC;IAAErB,MAAM;IAAEG,KAAK,EAAEkB;EAAK,CAAC,GAAGvB,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAE1D,OAAO,IAAIkB,eAAM,CAAC,IAAIG,uBAAgB,CAACD,IAAI,CAAC,EAAErB,MAAM,CAAC;AACvD;AAEO,SAASuB,WAAWA,CAACxB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAA6B;EAC1G,IAAIoB,IAAI;EACR,CAAC;IAAErB,MAAM;IAAEG,KAAK,EAAEkB;EAAK,CAAC,GAAGvB,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAE1D,OAAO,IAAIkB,eAAM,CAAC,IAAIK,wBAAiB,CAACH,IAAI,CAAC,EAAErB,MAAM,CAAC;AACxD"}
@@ -6,43 +6,71 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _token = require("./token");
8
8
  var _tdsVersions = require("../tds-versions");
9
+ var _helpers = require("./helpers");
9
10
  const interfaceTypes = {
10
11
  0: 'SQL_DFLT',
11
12
  1: 'SQL_TSQL'
12
13
  };
13
- function loginAckParser(parser, _options, callback) {
14
+ function loginAckParser(buf, offset, _options) {
14
15
  // length
15
- parser.readUInt16LE(() => {
16
- parser.readUInt8(interfaceNumber => {
17
- const interfaceType = interfaceTypes[interfaceNumber];
18
- parser.readUInt32BE(tdsVersionNumber => {
19
- const tdsVersion = _tdsVersions.versionsByValue[tdsVersionNumber];
20
- parser.readBVarChar(progName => {
21
- parser.readUInt8(major => {
22
- parser.readUInt8(minor => {
23
- parser.readUInt8(buildNumHi => {
24
- parser.readUInt8(buildNumLow => {
25
- callback(new _token.LoginAckToken({
26
- interface: interfaceType,
27
- tdsVersion: tdsVersion,
28
- progName: progName,
29
- progVersion: {
30
- major: major,
31
- minor: minor,
32
- buildNumHi: buildNumHi,
33
- buildNumLow: buildNumLow
34
- }
35
- }));
36
- });
37
- });
38
- });
39
- });
40
- });
41
- });
42
- });
43
- });
16
+ let tokenLength;
17
+ ({
18
+ offset,
19
+ value: tokenLength
20
+ } = (0, _helpers.readUInt16LE)(buf, offset));
21
+ if (buf.length < tokenLength + offset) {
22
+ throw new _helpers.NotEnoughDataError(tokenLength + offset);
23
+ }
24
+ let interfaceNumber;
25
+ ({
26
+ offset,
27
+ value: interfaceNumber
28
+ } = (0, _helpers.readUInt8)(buf, offset));
29
+ const interfaceType = interfaceTypes[interfaceNumber];
30
+ let tdsVersionNumber;
31
+ ({
32
+ offset,
33
+ value: tdsVersionNumber
34
+ } = (0, _helpers.readUInt32BE)(buf, offset));
35
+ const tdsVersion = _tdsVersions.versionsByValue[tdsVersionNumber];
36
+ let progName;
37
+ ({
38
+ offset,
39
+ value: progName
40
+ } = (0, _helpers.readBVarChar)(buf, offset));
41
+ let major;
42
+ ({
43
+ offset,
44
+ value: major
45
+ } = (0, _helpers.readUInt8)(buf, offset));
46
+ let minor;
47
+ ({
48
+ offset,
49
+ value: minor
50
+ } = (0, _helpers.readUInt8)(buf, offset));
51
+ let buildNumHi;
52
+ ({
53
+ offset,
54
+ value: buildNumHi
55
+ } = (0, _helpers.readUInt8)(buf, offset));
56
+ let buildNumLow;
57
+ ({
58
+ offset,
59
+ value: buildNumLow
60
+ } = (0, _helpers.readUInt8)(buf, offset));
61
+ return new _helpers.Result(new _token.LoginAckToken({
62
+ interface: interfaceType,
63
+ tdsVersion: tdsVersion,
64
+ progName: progName,
65
+ progVersion: {
66
+ major: major,
67
+ minor: minor,
68
+ buildNumHi: buildNumHi,
69
+ buildNumLow: buildNumLow
70
+ }
71
+ }), offset);
44
72
  }
45
73
  var _default = loginAckParser;
46
74
  exports.default = _default;
47
75
  module.exports = loginAckParser;
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX3Rkc1ZlcnNpb25zIiwiaW50ZXJmYWNlVHlwZXMiLCJsb2dpbkFja1BhcnNlciIsInBhcnNlciIsIl9vcHRpb25zIiwiY2FsbGJhY2siLCJyZWFkVUludDE2TEUiLCJyZWFkVUludDgiLCJpbnRlcmZhY2VOdW1iZXIiLCJpbnRlcmZhY2VUeXBlIiwicmVhZFVJbnQzMkJFIiwidGRzVmVyc2lvbk51bWJlciIsInRkc1ZlcnNpb24iLCJ2ZXJzaW9ucyIsInJlYWRCVmFyQ2hhciIsInByb2dOYW1lIiwibWFqb3IiLCJtaW5vciIsImJ1aWxkTnVtSGkiLCJidWlsZE51bUxvdyIsIkxvZ2luQWNrVG9rZW4iLCJpbnRlcmZhY2UiLCJwcm9nVmVyc2lvbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vbG9naW5hY2stdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZXIsIHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgTG9naW5BY2tUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG5pbXBvcnQgeyB2ZXJzaW9uc0J5VmFsdWUgYXMgdmVyc2lvbnMgfSBmcm9tICcuLi90ZHMtdmVyc2lvbnMnO1xuXG5jb25zdCBpbnRlcmZhY2VUeXBlczogeyBba2V5OiBudW1iZXJdOiBzdHJpbmcgfSA9IHtcbiAgMDogJ1NRTF9ERkxUJyxcbiAgMTogJ1NRTF9UU1FMJ1xufTtcblxuZnVuY3Rpb24gbG9naW5BY2tQYXJzZXIocGFyc2VyOiBQYXJzZXIsIF9vcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjYWxsYmFjazogKHRva2VuOiBMb2dpbkFja1Rva2VuKSA9PiB2b2lkKSB7XG4gIC8vIGxlbmd0aFxuICBwYXJzZXIucmVhZFVJbnQxNkxFKCgpID0+IHtcbiAgICBwYXJzZXIucmVhZFVJbnQ4KChpbnRlcmZhY2VOdW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGludGVyZmFjZVR5cGUgPSBpbnRlcmZhY2VUeXBlc1tpbnRlcmZhY2VOdW1iZXJdO1xuICAgICAgcGFyc2VyLnJlYWRVSW50MzJCRSgodGRzVmVyc2lvbk51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCB0ZHNWZXJzaW9uID0gdmVyc2lvbnNbdGRzVmVyc2lvbk51bWJlcl07XG4gICAgICAgIHBhcnNlci5yZWFkQlZhckNoYXIoKHByb2dOYW1lKSA9PiB7XG4gICAgICAgICAgcGFyc2VyLnJlYWRVSW50OCgobWFqb3IpID0+IHtcbiAgICAgICAgICAgIHBhcnNlci5yZWFkVUludDgoKG1pbm9yKSA9PiB7XG4gICAgICAgICAgICAgIHBhcnNlci5yZWFkVUludDgoKGJ1aWxkTnVtSGkpID0+IHtcbiAgICAgICAgICAgICAgICBwYXJzZXIucmVhZFVJbnQ4KChidWlsZE51bUxvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IExvZ2luQWNrVG9rZW4oe1xuICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2U6IGludGVyZmFjZVR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHRkc1ZlcnNpb246IHRkc1ZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgIHByb2dOYW1lOiBwcm9nTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvZ1ZlcnNpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICBtYWpvcjogbWFqb3IsXG4gICAgICAgICAgICAgICAgICAgICAgbWlub3I6IG1pbm9yLFxuICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkTnVtSGk6IGJ1aWxkTnVtSGksXG4gICAgICAgICAgICAgICAgICAgICAgYnVpbGROdW1Mb3c6IGJ1aWxkTnVtTG93XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxvZ2luQWNrUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBsb2dpbkFja1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsWUFBQSxHQUFBRCxPQUFBO0FBRUEsTUFBTUUsY0FBeUMsR0FBRztFQUNoRCxDQUFDLEVBQUUsVUFBVTtFQUNiLENBQUMsRUFBRTtBQUNMLENBQUM7QUFFRCxTQUFTQyxjQUFjQSxDQUFDQyxNQUFjLEVBQUVDLFFBQXVCLEVBQUVDLFFBQXdDLEVBQUU7RUFDekc7RUFDQUYsTUFBTSxDQUFDRyxZQUFZLENBQUMsTUFBTTtJQUN4QkgsTUFBTSxDQUFDSSxTQUFTLENBQUVDLGVBQWUsSUFBSztNQUNwQyxNQUFNQyxhQUFhLEdBQUdSLGNBQWMsQ0FBQ08sZUFBZSxDQUFDO01BQ3JETCxNQUFNLENBQUNPLFlBQVksQ0FBRUMsZ0JBQWdCLElBQUs7UUFDeEMsTUFBTUMsVUFBVSxHQUFHQyw0QkFBUSxDQUFDRixnQkFBZ0IsQ0FBQztRQUM3Q1IsTUFBTSxDQUFDVyxZQUFZLENBQUVDLFFBQVEsSUFBSztVQUNoQ1osTUFBTSxDQUFDSSxTQUFTLENBQUVTLEtBQUssSUFBSztZQUMxQmIsTUFBTSxDQUFDSSxTQUFTLENBQUVVLEtBQUssSUFBSztjQUMxQmQsTUFBTSxDQUFDSSxTQUFTLENBQUVXLFVBQVUsSUFBSztnQkFDL0JmLE1BQU0sQ0FBQ0ksU0FBUyxDQUFFWSxXQUFXLElBQUs7a0JBQ2hDZCxRQUFRLENBQUMsSUFBSWUsb0JBQWEsQ0FBQztvQkFDekJDLFNBQVMsRUFBRVosYUFBYTtvQkFDeEJHLFVBQVUsRUFBRUEsVUFBVTtvQkFDdEJHLFFBQVEsRUFBRUEsUUFBUTtvQkFDbEJPLFdBQVcsRUFBRTtzQkFDWE4sS0FBSyxFQUFFQSxLQUFLO3NCQUNaQyxLQUFLLEVBQUVBLEtBQUs7c0JBQ1pDLFVBQVUsRUFBRUEsVUFBVTtzQkFDdEJDLFdBQVcsRUFBRUE7b0JBQ2Y7a0JBQ0YsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO2NBQ0osQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDO1VBQ0osQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDO01BQ0osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0o7QUFBQyxJQUFBSSxRQUFBLEdBRWNyQixjQUFjO0FBQUFzQixPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQTtBQUM3QkcsTUFBTSxDQUFDRixPQUFPLEdBQUd0QixjQUFjIn0=
76
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX3Rkc1ZlcnNpb25zIiwiX2hlbHBlcnMiLCJpbnRlcmZhY2VUeXBlcyIsImxvZ2luQWNrUGFyc2VyIiwiYnVmIiwib2Zmc2V0IiwiX29wdGlvbnMiLCJ0b2tlbkxlbmd0aCIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwibGVuZ3RoIiwiTm90RW5vdWdoRGF0YUVycm9yIiwiaW50ZXJmYWNlTnVtYmVyIiwicmVhZFVJbnQ4IiwiaW50ZXJmYWNlVHlwZSIsInRkc1ZlcnNpb25OdW1iZXIiLCJyZWFkVUludDMyQkUiLCJ0ZHNWZXJzaW9uIiwidmVyc2lvbnMiLCJwcm9nTmFtZSIsInJlYWRCVmFyQ2hhciIsIm1ham9yIiwibWlub3IiLCJidWlsZE51bUhpIiwiYnVpbGROdW1Mb3ciLCJSZXN1bHQiLCJMb2dpbkFja1Rva2VuIiwiaW50ZXJmYWNlIiwicHJvZ1ZlcnNpb24iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2xvZ2luYWNrLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuXG5pbXBvcnQgeyBMb2dpbkFja1Rva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCB7IHZlcnNpb25zQnlWYWx1ZSBhcyB2ZXJzaW9ucyB9IGZyb20gJy4uL3Rkcy12ZXJzaW9ucyc7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IsIHJlYWRCVmFyQ2hhciwgcmVhZFVJbnQxNkxFLCByZWFkVUludDMyQkUsIHJlYWRVSW50OCwgUmVzdWx0IH0gZnJvbSAnLi9oZWxwZXJzJztcblxuY29uc3QgaW50ZXJmYWNlVHlwZXM6IHsgW2tleTogbnVtYmVyXTogc3RyaW5nIH0gPSB7XG4gIDA6ICdTUUxfREZMVCcsXG4gIDE6ICdTUUxfVFNRTCdcbn07XG5cbmZ1bmN0aW9uIGxvZ2luQWNrUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8TG9naW5BY2tUb2tlbj4ge1xuICAvLyBsZW5ndGhcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCB0b2tlbkxlbmd0aCArIG9mZnNldCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3IodG9rZW5MZW5ndGggKyBvZmZzZXQpO1xuICB9XG5cbiAgbGV0IGludGVyZmFjZU51bWJlcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogaW50ZXJmYWNlTnVtYmVyIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBjb25zdCBpbnRlcmZhY2VUeXBlID0gaW50ZXJmYWNlVHlwZXNbaW50ZXJmYWNlTnVtYmVyXTtcblxuICBsZXQgdGRzVmVyc2lvbk51bWJlcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogdGRzVmVyc2lvbk51bWJlciB9ID0gcmVhZFVJbnQzMkJFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgY29uc3QgdGRzVmVyc2lvbiA9IHZlcnNpb25zW3Rkc1ZlcnNpb25OdW1iZXJdO1xuXG4gIGxldCBwcm9nTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogcHJvZ05hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtYWpvcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWFqb3IgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtaW5vcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWlub3IgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBidWlsZE51bUhpO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBidWlsZE51bUhpIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgYnVpbGROdW1Mb3c7XG4gICh7IG9mZnNldCwgdmFsdWU6IGJ1aWxkTnVtTG93IH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgTG9naW5BY2tUb2tlbih7XG4gICAgaW50ZXJmYWNlOiBpbnRlcmZhY2VUeXBlLFxuICAgIHRkc1ZlcnNpb246IHRkc1ZlcnNpb24sXG4gICAgcHJvZ05hbWU6IHByb2dOYW1lLFxuICAgIHByb2dWZXJzaW9uOiB7XG4gICAgICBtYWpvcjogbWFqb3IsXG4gICAgICBtaW5vcjogbWlub3IsXG4gICAgICBidWlsZE51bUhpOiBidWlsZE51bUhpLFxuICAgICAgYnVpbGROdW1Mb3c6IGJ1aWxkTnVtTG93XG4gICAgfVxuICB9KSwgb2Zmc2V0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbG9naW5BY2tQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGxvZ2luQWNrUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFFQSxNQUFNRyxjQUF5QyxHQUFHO0VBQ2hELENBQUMsRUFBRSxVQUFVO0VBQ2IsQ0FBQyxFQUFFO0FBQ0wsQ0FBQztBQUVELFNBQVNDLGNBQWNBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUF1QixFQUF5QjtFQUNuRztFQUNBLElBQUlDLFdBQVc7RUFDZixDQUFDO0lBQUVGLE1BQU07SUFBRUcsS0FBSyxFQUFFRDtFQUFZLENBQUMsR0FBRyxJQUFBRSxxQkFBWSxFQUFDTCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUUzRCxJQUFJRCxHQUFHLENBQUNNLE1BQU0sR0FBR0gsV0FBVyxHQUFHRixNQUFNLEVBQUU7SUFDckMsTUFBTSxJQUFJTSwyQkFBa0IsQ0FBQ0osV0FBVyxHQUFHRixNQUFNLENBQUM7RUFDcEQ7RUFFQSxJQUFJTyxlQUFlO0VBQ25CLENBQUM7SUFBRVAsTUFBTTtJQUFFRyxLQUFLLEVBQUVJO0VBQWdCLENBQUMsR0FBRyxJQUFBQyxrQkFBUyxFQUFDVCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUU1RCxNQUFNUyxhQUFhLEdBQUdaLGNBQWMsQ0FBQ1UsZUFBZSxDQUFDO0VBRXJELElBQUlHLGdCQUFnQjtFQUNwQixDQUFDO0lBQUVWLE1BQU07SUFBRUcsS0FBSyxFQUFFTztFQUFpQixDQUFDLEdBQUcsSUFBQUMscUJBQVksRUFBQ1osR0FBRyxFQUFFQyxNQUFNLENBQUM7RUFFaEUsTUFBTVksVUFBVSxHQUFHQyw0QkFBUSxDQUFDSCxnQkFBZ0IsQ0FBQztFQUU3QyxJQUFJSSxRQUFRO0VBQ1osQ0FBQztJQUFFZCxNQUFNO0lBQUVHLEtBQUssRUFBRVc7RUFBUyxDQUFDLEdBQUcsSUFBQUMscUJBQVksRUFBQ2hCLEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRXhELElBQUlnQixLQUFLO0VBQ1QsQ0FBQztJQUFFaEIsTUFBTTtJQUFFRyxLQUFLLEVBQUVhO0VBQU0sQ0FBQyxHQUFHLElBQUFSLGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRWxELElBQUlpQixLQUFLO0VBQ1QsQ0FBQztJQUFFakIsTUFBTTtJQUFFRyxLQUFLLEVBQUVjO0VBQU0sQ0FBQyxHQUFHLElBQUFULGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRWxELElBQUlrQixVQUFVO0VBQ2QsQ0FBQztJQUFFbEIsTUFBTTtJQUFFRyxLQUFLLEVBQUVlO0VBQVcsQ0FBQyxHQUFHLElBQUFWLGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRXZELElBQUltQixXQUFXO0VBQ2YsQ0FBQztJQUFFbkIsTUFBTTtJQUFFRyxLQUFLLEVBQUVnQjtFQUFZLENBQUMsR0FBRyxJQUFBWCxrQkFBUyxFQUFDVCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUV4RCxPQUFPLElBQUlvQixlQUFNLENBQUMsSUFBSUMsb0JBQWEsQ0FBQztJQUNsQ0MsU0FBUyxFQUFFYixhQUFhO0lBQ3hCRyxVQUFVLEVBQUVBLFVBQVU7SUFDdEJFLFFBQVEsRUFBRUEsUUFBUTtJQUNsQlMsV0FBVyxFQUFFO01BQ1hQLEtBQUssRUFBRUEsS0FBSztNQUNaQyxLQUFLLEVBQUVBLEtBQUs7TUFDWkMsVUFBVSxFQUFFQSxVQUFVO01BQ3RCQyxXQUFXLEVBQUVBO0lBQ2Y7RUFDRixDQUFDLENBQUMsRUFBRW5CLE1BQU0sQ0FBQztBQUNiO0FBQUMsSUFBQXdCLFFBQUEsR0FFYzFCLGNBQWM7QUFBQTJCLE9BQUEsQ0FBQUMsT0FBQSxHQUFBRixRQUFBO0FBQzdCRyxNQUFNLENBQUNGLE9BQU8sR0FBRzNCLGNBQWMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"loginack-token-parser.js","names":["_token","require","_tdsVersions","interfaceTypes","loginAckParser","parser","_options","callback","readUInt16LE","readUInt8","interfaceNumber","interfaceType","readUInt32BE","tdsVersionNumber","tdsVersion","versions","readBVarChar","progName","major","minor","buildNumHi","buildNumLow","LoginAckToken","interface","progVersion","_default","exports","default","module"],"sources":["../../src/token/loginack-token-parser.ts"],"sourcesContent":["import Parser, { type ParserOptions } from './stream-parser';\n\nimport { LoginAckToken } from './token';\n\nimport { versionsByValue as versions } from '../tds-versions';\n\nconst interfaceTypes: { [key: number]: string } = {\n 0: 'SQL_DFLT',\n 1: 'SQL_TSQL'\n};\n\nfunction loginAckParser(parser: Parser, _options: ParserOptions, callback: (token: LoginAckToken) => void) {\n // length\n parser.readUInt16LE(() => {\n parser.readUInt8((interfaceNumber) => {\n const interfaceType = interfaceTypes[interfaceNumber];\n parser.readUInt32BE((tdsVersionNumber) => {\n const tdsVersion = versions[tdsVersionNumber];\n parser.readBVarChar((progName) => {\n parser.readUInt8((major) => {\n parser.readUInt8((minor) => {\n parser.readUInt8((buildNumHi) => {\n parser.readUInt8((buildNumLow) => {\n callback(new LoginAckToken({\n interface: interfaceType,\n tdsVersion: tdsVersion,\n progName: progName,\n progVersion: {\n major: major,\n minor: minor,\n buildNumHi: buildNumHi,\n buildNumLow: buildNumLow\n }\n }));\n });\n });\n });\n });\n });\n });\n });\n });\n}\n\nexport default loginAckParser;\nmodule.exports = loginAckParser;\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEA,MAAME,cAAyC,GAAG;EAChD,CAAC,EAAE,UAAU;EACb,CAAC,EAAE;AACL,CAAC;AAED,SAASC,cAAcA,CAACC,MAAc,EAAEC,QAAuB,EAAEC,QAAwC,EAAE;EACzG;EACAF,MAAM,CAACG,YAAY,CAAC,MAAM;IACxBH,MAAM,CAACI,SAAS,CAAEC,eAAe,IAAK;MACpC,MAAMC,aAAa,GAAGR,cAAc,CAACO,eAAe,CAAC;MACrDL,MAAM,CAACO,YAAY,CAAEC,gBAAgB,IAAK;QACxC,MAAMC,UAAU,GAAGC,4BAAQ,CAACF,gBAAgB,CAAC;QAC7CR,MAAM,CAACW,YAAY,CAAEC,QAAQ,IAAK;UAChCZ,MAAM,CAACI,SAAS,CAAES,KAAK,IAAK;YAC1Bb,MAAM,CAACI,SAAS,CAAEU,KAAK,IAAK;cAC1Bd,MAAM,CAACI,SAAS,CAAEW,UAAU,IAAK;gBAC/Bf,MAAM,CAACI,SAAS,CAAEY,WAAW,IAAK;kBAChCd,QAAQ,CAAC,IAAIe,oBAAa,CAAC;oBACzBC,SAAS,EAAEZ,aAAa;oBACxBG,UAAU,EAAEA,UAAU;oBACtBG,QAAQ,EAAEA,QAAQ;oBAClBO,WAAW,EAAE;sBACXN,KAAK,EAAEA,KAAK;sBACZC,KAAK,EAAEA,KAAK;sBACZC,UAAU,EAAEA,UAAU;sBACtBC,WAAW,EAAEA;oBACf;kBACF,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC;cACJ,CAAC,CAAC;YACJ,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAAC,IAAAI,QAAA,GAEcrB,cAAc;AAAAsB,OAAA,CAAAC,OAAA,GAAAF,QAAA;AAC7BG,MAAM,CAACF,OAAO,GAAGtB,cAAc"}
1
+ {"version":3,"file":"loginack-token-parser.js","names":["_token","require","_tdsVersions","_helpers","interfaceTypes","loginAckParser","buf","offset","_options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","interfaceNumber","readUInt8","interfaceType","tdsVersionNumber","readUInt32BE","tdsVersion","versions","progName","readBVarChar","major","minor","buildNumHi","buildNumLow","Result","LoginAckToken","interface","progVersion","_default","exports","default","module"],"sources":["../../src/token/loginack-token-parser.ts"],"sourcesContent":["import { type ParserOptions } from './stream-parser';\n\nimport { LoginAckToken } from './token';\n\nimport { versionsByValue as versions } from '../tds-versions';\nimport { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt32BE, readUInt8, Result } from './helpers';\n\nconst interfaceTypes: { [key: number]: string } = {\n 0: 'SQL_DFLT',\n 1: 'SQL_TSQL'\n};\n\nfunction loginAckParser(buf: Buffer, offset: number, _options: ParserOptions): Result<LoginAckToken> {\n // length\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < tokenLength + offset) {\n throw new NotEnoughDataError(tokenLength + offset);\n }\n\n let interfaceNumber;\n ({ offset, value: interfaceNumber } = readUInt8(buf, offset));\n\n const interfaceType = interfaceTypes[interfaceNumber];\n\n let tdsVersionNumber;\n ({ offset, value: tdsVersionNumber } = readUInt32BE(buf, offset));\n\n const tdsVersion = versions[tdsVersionNumber];\n\n let progName;\n ({ offset, value: progName } = readBVarChar(buf, offset));\n\n let major;\n ({ offset, value: major } = readUInt8(buf, offset));\n\n let minor;\n ({ offset, value: minor } = readUInt8(buf, offset));\n\n let buildNumHi;\n ({ offset, value: buildNumHi } = readUInt8(buf, offset));\n\n let buildNumLow;\n ({ offset, value: buildNumLow } = readUInt8(buf, offset));\n\n return new Result(new LoginAckToken({\n interface: interfaceType,\n tdsVersion: tdsVersion,\n progName: progName,\n progVersion: {\n major: major,\n minor: minor,\n buildNumHi: buildNumHi,\n buildNumLow: buildNumLow\n }\n }), offset);\n}\n\nexport default loginAckParser;\nmodule.exports = loginAckParser;\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,MAAMG,cAAyC,GAAG;EAChD,CAAC,EAAE,UAAU;EACb,CAAC,EAAE;AACL,CAAC;AAED,SAASC,cAAcA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAAyB;EACnG;EACA,IAAIC,WAAW;EACf,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAY,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAE3D,IAAID,GAAG,CAACM,MAAM,GAAGH,WAAW,GAAGF,MAAM,EAAE;IACrC,MAAM,IAAIM,2BAAkB,CAACJ,WAAW,GAAGF,MAAM,CAAC;EACpD;EAEA,IAAIO,eAAe;EACnB,CAAC;IAAEP,MAAM;IAAEG,KAAK,EAAEI;EAAgB,CAAC,GAAG,IAAAC,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAE5D,MAAMS,aAAa,GAAGZ,cAAc,CAACU,eAAe,CAAC;EAErD,IAAIG,gBAAgB;EACpB,CAAC;IAAEV,MAAM;IAAEG,KAAK,EAAEO;EAAiB,CAAC,GAAG,IAAAC,qBAAY,EAACZ,GAAG,EAAEC,MAAM,CAAC;EAEhE,MAAMY,UAAU,GAAGC,4BAAQ,CAACH,gBAAgB,CAAC;EAE7C,IAAII,QAAQ;EACZ,CAAC;IAAEd,MAAM;IAAEG,KAAK,EAAEW;EAAS,CAAC,GAAG,IAAAC,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIgB,KAAK;EACT,CAAC;IAAEhB,MAAM;IAAEG,KAAK,EAAEa;EAAM,CAAC,GAAG,IAAAR,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIiB,KAAK;EACT,CAAC;IAAEjB,MAAM;IAAEG,KAAK,EAAEc;EAAM,CAAC,GAAG,IAAAT,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIkB,UAAU;EACd,CAAC;IAAElB,MAAM;IAAEG,KAAK,EAAEe;EAAW,CAAC,GAAG,IAAAV,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEvD,IAAImB,WAAW;EACf,CAAC;IAAEnB,MAAM;IAAEG,KAAK,EAAEgB;EAAY,CAAC,GAAG,IAAAX,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAExD,OAAO,IAAIoB,eAAM,CAAC,IAAIC,oBAAa,CAAC;IAClCC,SAAS,EAAEb,aAAa;IACxBG,UAAU,EAAEA,UAAU;IACtBE,QAAQ,EAAEA,QAAQ;IAClBS,WAAW,EAAE;MACXP,KAAK,EAAEA,KAAK;MACZC,KAAK,EAAEA,KAAK;MACZC,UAAU,EAAEA,UAAU;MACtBC,WAAW,EAAEA;IACf;EACF,CAAC,CAAC,EAAEnB,MAAM,CAAC;AACb;AAAC,IAAAwB,QAAA,GAEc1B,cAAc;AAAA2B,OAAA,CAAAC,OAAA,GAAAF,QAAA;AAC7BG,MAAM,CAACF,OAAO,GAAG3B,cAAc"}