tedious-fabric 1.0.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 (304) hide show
  1. package/CLAUDE.md +91 -0
  2. package/LICENSE +21 -0
  3. package/README.md +67 -0
  4. package/appveyor.yml +67 -0
  5. package/eslint.config.mjs +314 -0
  6. package/lib/all-headers.d.ts +2 -0
  7. package/lib/all-headers.js +24 -0
  8. package/lib/all-headers.js.map +1 -0
  9. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +82 -0
  10. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -0
  11. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +55 -0
  12. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -0
  13. package/lib/always-encrypted/cek-entry.d.ts +11 -0
  14. package/lib/always-encrypted/cek-entry.js +42 -0
  15. package/lib/always-encrypted/cek-entry.js.map +1 -0
  16. package/lib/always-encrypted/get-parameter-encryption-metadata.js +90 -0
  17. package/lib/always-encrypted/get-parameter-encryption-metadata.js.map +1 -0
  18. package/lib/always-encrypted/key-crypto.js +94 -0
  19. package/lib/always-encrypted/key-crypto.js.map +1 -0
  20. package/lib/always-encrypted/keystore-provider-azure-key-vault.d.ts +21 -0
  21. package/lib/always-encrypted/keystore-provider-azure-key-vault.js +247 -0
  22. package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -0
  23. package/lib/always-encrypted/symmetric-key-cache.js +36 -0
  24. package/lib/always-encrypted/symmetric-key-cache.js.map +1 -0
  25. package/lib/always-encrypted/symmetric-key.js +25 -0
  26. package/lib/always-encrypted/symmetric-key.js.map +1 -0
  27. package/lib/always-encrypted/types.d.ts +73 -0
  28. package/lib/always-encrypted/types.js +61 -0
  29. package/lib/always-encrypted/types.js.map +1 -0
  30. package/lib/always-encrypted/utils.js +23 -0
  31. package/lib/always-encrypted/utils.js.map +1 -0
  32. package/lib/bulk-load-payload.d.ts +8 -0
  33. package/lib/bulk-load-payload.js +23 -0
  34. package/lib/bulk-load-payload.js.map +1 -0
  35. package/lib/bulk-load.d.ts +275 -0
  36. package/lib/bulk-load.js +515 -0
  37. package/lib/bulk-load.js.map +1 -0
  38. package/lib/collation.d.ts +28 -0
  39. package/lib/collation.js +348 -0
  40. package/lib/collation.js.map +1 -0
  41. package/lib/connection.d.ts +1309 -0
  42. package/lib/connection.js +2732 -0
  43. package/lib/connection.js.map +1 -0
  44. package/lib/connector.d.ts +18 -0
  45. package/lib/connector.js +142 -0
  46. package/lib/connector.js.map +1 -0
  47. package/lib/data-type.d.ts +554 -0
  48. package/lib/data-type.js +428 -0
  49. package/lib/data-type.js.map +1 -0
  50. package/lib/data-types/bigint.d.ts +3 -0
  51. package/lib/data-types/bigint.js +53 -0
  52. package/lib/data-types/bigint.js.map +1 -0
  53. package/lib/data-types/binary.d.ts +5 -0
  54. package/lib/data-types/binary.js +67 -0
  55. package/lib/data-types/binary.js.map +1 -0
  56. package/lib/data-types/bit.d.ts +3 -0
  57. package/lib/data-types/bit.js +46 -0
  58. package/lib/data-types/bit.js.map +1 -0
  59. package/lib/data-types/bitn.d.ts +3 -0
  60. package/lib/data-types/bitn.js +29 -0
  61. package/lib/data-types/bitn.js.map +1 -0
  62. package/lib/data-types/char.d.ts +5 -0
  63. package/lib/data-types/char.js +86 -0
  64. package/lib/data-types/char.js.map +1 -0
  65. package/lib/data-types/date.d.ts +3 -0
  66. package/lib/data-types/date.js +72 -0
  67. package/lib/data-types/date.js.map +1 -0
  68. package/lib/data-types/datetime.d.ts +3 -0
  69. package/lib/data-types/datetime.js +93 -0
  70. package/lib/data-types/datetime.js.map +1 -0
  71. package/lib/data-types/datetime2.d.ts +5 -0
  72. package/lib/data-types/datetime2.js +118 -0
  73. package/lib/data-types/datetime2.js.map +1 -0
  74. package/lib/data-types/datetimen.d.ts +3 -0
  75. package/lib/data-types/datetimen.js +29 -0
  76. package/lib/data-types/datetimen.js.map +1 -0
  77. package/lib/data-types/datetimeoffset.d.ts +5 -0
  78. package/lib/data-types/datetimeoffset.js +111 -0
  79. package/lib/data-types/datetimeoffset.js.map +1 -0
  80. package/lib/data-types/decimal.d.ts +6 -0
  81. package/lib/data-types/decimal.js +107 -0
  82. package/lib/data-types/decimal.js.map +1 -0
  83. package/lib/data-types/decimaln.d.ts +3 -0
  84. package/lib/data-types/decimaln.js +29 -0
  85. package/lib/data-types/decimaln.js.map +1 -0
  86. package/lib/data-types/float.d.ts +3 -0
  87. package/lib/data-types/float.js +47 -0
  88. package/lib/data-types/float.js.map +1 -0
  89. package/lib/data-types/floatn.d.ts +3 -0
  90. package/lib/data-types/floatn.js +29 -0
  91. package/lib/data-types/floatn.js.map +1 -0
  92. package/lib/data-types/image.d.ts +3 -0
  93. package/lib/data-types/image.js +56 -0
  94. package/lib/data-types/image.js.map +1 -0
  95. package/lib/data-types/int.d.ts +3 -0
  96. package/lib/data-types/int.js +53 -0
  97. package/lib/data-types/int.js.map +1 -0
  98. package/lib/data-types/intn.d.ts +3 -0
  99. package/lib/data-types/intn.js +29 -0
  100. package/lib/data-types/intn.js.map +1 -0
  101. package/lib/data-types/money.d.ts +3 -0
  102. package/lib/data-types/money.js +59 -0
  103. package/lib/data-types/money.js.map +1 -0
  104. package/lib/data-types/moneyn.d.ts +3 -0
  105. package/lib/data-types/moneyn.js +29 -0
  106. package/lib/data-types/moneyn.js.map +1 -0
  107. package/lib/data-types/nchar.d.ts +5 -0
  108. package/lib/data-types/nchar.js +100 -0
  109. package/lib/data-types/nchar.js.map +1 -0
  110. package/lib/data-types/ntext.d.ts +3 -0
  111. package/lib/data-types/ntext.js +60 -0
  112. package/lib/data-types/ntext.js.map +1 -0
  113. package/lib/data-types/null.d.ts +3 -0
  114. package/lib/data-types/null.js +29 -0
  115. package/lib/data-types/null.js.map +1 -0
  116. package/lib/data-types/numeric.d.ts +6 -0
  117. package/lib/data-types/numeric.js +106 -0
  118. package/lib/data-types/numeric.js.map +1 -0
  119. package/lib/data-types/numericn.d.ts +3 -0
  120. package/lib/data-types/numericn.js +29 -0
  121. package/lib/data-types/numericn.js.map +1 -0
  122. package/lib/data-types/nvarchar.d.ts +5 -0
  123. package/lib/data-types/nvarchar.js +133 -0
  124. package/lib/data-types/nvarchar.js.map +1 -0
  125. package/lib/data-types/real.d.ts +3 -0
  126. package/lib/data-types/real.js +48 -0
  127. package/lib/data-types/real.js.map +1 -0
  128. package/lib/data-types/smalldatetime.d.ts +3 -0
  129. package/lib/data-types/smalldatetime.js +83 -0
  130. package/lib/data-types/smalldatetime.js.map +1 -0
  131. package/lib/data-types/smallint.d.ts +3 -0
  132. package/lib/data-types/smallint.js +53 -0
  133. package/lib/data-types/smallint.js.map +1 -0
  134. package/lib/data-types/smallmoney.d.ts +3 -0
  135. package/lib/data-types/smallmoney.js +51 -0
  136. package/lib/data-types/smallmoney.js.map +1 -0
  137. package/lib/data-types/sql-variant.d.ts +3 -0
  138. package/lib/data-types/sql-variant.js +29 -0
  139. package/lib/data-types/sql-variant.js.map +1 -0
  140. package/lib/data-types/text.d.ts +3 -0
  141. package/lib/data-types/text.js +69 -0
  142. package/lib/data-types/text.js.map +1 -0
  143. package/lib/data-types/time.d.ts +3 -0
  144. package/lib/data-types/time.js +96 -0
  145. package/lib/data-types/time.js.map +1 -0
  146. package/lib/data-types/tinyint.d.ts +3 -0
  147. package/lib/data-types/tinyint.js +53 -0
  148. package/lib/data-types/tinyint.js.map +1 -0
  149. package/lib/data-types/tvp.d.ts +3 -0
  150. package/lib/data-types/tvp.js +117 -0
  151. package/lib/data-types/tvp.js.map +1 -0
  152. package/lib/data-types/udt.d.ts +3 -0
  153. package/lib/data-types/udt.js +29 -0
  154. package/lib/data-types/udt.js.map +1 -0
  155. package/lib/data-types/uniqueidentifier.d.ts +3 -0
  156. package/lib/data-types/uniqueidentifier.js +50 -0
  157. package/lib/data-types/uniqueidentifier.js.map +1 -0
  158. package/lib/data-types/varbinary.d.ts +5 -0
  159. package/lib/data-types/varbinary.js +119 -0
  160. package/lib/data-types/varbinary.js.map +1 -0
  161. package/lib/data-types/varchar.d.ts +5 -0
  162. package/lib/data-types/varchar.js +112 -0
  163. package/lib/data-types/varchar.js.map +1 -0
  164. package/lib/data-types/xml.d.ts +3 -0
  165. package/lib/data-types/xml.js +29 -0
  166. package/lib/data-types/xml.js.map +1 -0
  167. package/lib/debug.d.ts +25 -0
  168. package/lib/debug.js +66 -0
  169. package/lib/debug.js.map +1 -0
  170. package/lib/errors.d.ts +17 -0
  171. package/lib/errors.js +23 -0
  172. package/lib/errors.js.map +1 -0
  173. package/lib/guid-parser.d.ts +3 -0
  174. package/lib/guid-parser.js +30 -0
  175. package/lib/guid-parser.js.map +1 -0
  176. package/lib/incoming-message-stream.d.ts +19 -0
  177. package/lib/incoming-message-stream.js +97 -0
  178. package/lib/incoming-message-stream.js.map +1 -0
  179. package/lib/instance-lookup.d.ts +13 -0
  180. package/lib/instance-lookup.js +91 -0
  181. package/lib/instance-lookup.js.map +1 -0
  182. package/lib/library.d.ts +1 -0
  183. package/lib/library.js +8 -0
  184. package/lib/library.js.map +1 -0
  185. package/lib/login7-payload.d.ts +51 -0
  186. package/lib/login7-payload.js +408 -0
  187. package/lib/login7-payload.js.map +1 -0
  188. package/lib/message-io.d.ts +28 -0
  189. package/lib/message-io.js +152 -0
  190. package/lib/message-io.js.map +1 -0
  191. package/lib/message.d.ts +11 -0
  192. package/lib/message.js +21 -0
  193. package/lib/message.js.map +1 -0
  194. package/lib/metadata-parser.d.ts +48 -0
  195. package/lib/metadata-parser.js +380 -0
  196. package/lib/metadata-parser.js.map +1 -0
  197. package/lib/ntlm-payload.d.ts +23 -0
  198. package/lib/ntlm-payload.js +135 -0
  199. package/lib/ntlm-payload.js.map +1 -0
  200. package/lib/ntlm.d.ts +4 -0
  201. package/lib/ntlm.js +72 -0
  202. package/lib/ntlm.js.map +1 -0
  203. package/lib/outgoing-message-stream.d.ts +15 -0
  204. package/lib/outgoing-message-stream.js +81 -0
  205. package/lib/outgoing-message-stream.js.map +1 -0
  206. package/lib/packet.d.ts +33 -0
  207. package/lib/packet.js +191 -0
  208. package/lib/packet.js.map +1 -0
  209. package/lib/prelogin-payload.d.ts +67 -0
  210. package/lib/prelogin-payload.js +228 -0
  211. package/lib/prelogin-payload.js.map +1 -0
  212. package/lib/request.d.ts +370 -0
  213. package/lib/request.js +387 -0
  214. package/lib/request.js.map +1 -0
  215. package/lib/rpcrequest-payload.d.ts +16 -0
  216. package/lib/rpcrequest-payload.js +109 -0
  217. package/lib/rpcrequest-payload.js.map +1 -0
  218. package/lib/sender.d.ts +5 -0
  219. package/lib/sender.js +78 -0
  220. package/lib/sender.js.map +1 -0
  221. package/lib/special-stored-procedure.d.ts +18 -0
  222. package/lib/special-stored-procedure.js +26 -0
  223. package/lib/special-stored-procedure.js.map +1 -0
  224. package/lib/sqlbatch-payload.d.ts +13 -0
  225. package/lib/sqlbatch-payload.js +34 -0
  226. package/lib/sqlbatch-payload.js.map +1 -0
  227. package/lib/tds-versions.d.ts +6 -0
  228. package/lib/tds-versions.js +19 -0
  229. package/lib/tds-versions.js.map +1 -0
  230. package/lib/tedious.d.ts +13 -0
  231. package/lib/tedious.js +73 -0
  232. package/lib/tedious.js.map +1 -0
  233. package/lib/token/colmetadata-token-parser.d.ts +12 -0
  234. package/lib/token/colmetadata-token-parser.js +124 -0
  235. package/lib/token/colmetadata-token-parser.js.map +1 -0
  236. package/lib/token/done-token-parser.d.ts +6 -0
  237. package/lib/token/done-token-parser.js +76 -0
  238. package/lib/token/done-token-parser.js.map +1 -0
  239. package/lib/token/env-change-token-parser.d.ts +5 -0
  240. package/lib/token/env-change-token-parser.js +190 -0
  241. package/lib/token/env-change-token-parser.js.map +1 -0
  242. package/lib/token/feature-ext-ack-parser.d.ts +5 -0
  243. package/lib/token/feature-ext-ack-parser.js +52 -0
  244. package/lib/token/feature-ext-ack-parser.js.map +1 -0
  245. package/lib/token/fedauth-info-parser.d.ts +5 -0
  246. package/lib/token/fedauth-info-parser.js +62 -0
  247. package/lib/token/fedauth-info-parser.js.map +1 -0
  248. package/lib/token/handler.d.ts +136 -0
  249. package/lib/token/handler.js +445 -0
  250. package/lib/token/handler.js.map +1 -0
  251. package/lib/token/helpers.d.ts +28 -0
  252. package/lib/token/helpers.js +205 -0
  253. package/lib/token/helpers.js.map +1 -0
  254. package/lib/token/infoerror-token-parser.d.ts +5 -0
  255. package/lib/token/infoerror-token-parser.js +80 -0
  256. package/lib/token/infoerror-token-parser.js.map +1 -0
  257. package/lib/token/loginack-token-parser.d.ts +5 -0
  258. package/lib/token/loginack-token-parser.js +75 -0
  259. package/lib/token/loginack-token-parser.js.map +1 -0
  260. package/lib/token/nbcrow-token-parser.d.ts +4 -0
  261. package/lib/token/nbcrow-token-parser.js +103 -0
  262. package/lib/token/nbcrow-token-parser.js.map +1 -0
  263. package/lib/token/order-token-parser.d.ts +5 -0
  264. package/lib/token/order-token-parser.js +34 -0
  265. package/lib/token/order-token-parser.js.map +1 -0
  266. package/lib/token/returnstatus-token-parser.d.ts +5 -0
  267. package/lib/token/returnstatus-token-parser.js +21 -0
  268. package/lib/token/returnstatus-token-parser.js.map +1 -0
  269. package/lib/token/returnvalue-token-parser.d.ts +4 -0
  270. package/lib/token/returnvalue-token-parser.js +93 -0
  271. package/lib/token/returnvalue-token-parser.js.map +1 -0
  272. package/lib/token/row-token-parser.d.ts +4 -0
  273. package/lib/token/row-token-parser.js +76 -0
  274. package/lib/token/row-token-parser.js.map +1 -0
  275. package/lib/token/sspi-token-parser.d.ts +5 -0
  276. package/lib/token/sspi-token-parser.js +42 -0
  277. package/lib/token/sspi-token-parser.js.map +1 -0
  278. package/lib/token/stream-parser.d.ts +34 -0
  279. package/lib/token/stream-parser.js +341 -0
  280. package/lib/token/stream-parser.js.map +1 -0
  281. package/lib/token/token-stream-parser.d.ts +15 -0
  282. package/lib/token/token-stream-parser.js +36 -0
  283. package/lib/token/token-stream-parser.js.map +1 -0
  284. package/lib/token/token.d.ts +312 -0
  285. package/lib/token/token.js +328 -0
  286. package/lib/token/token.js.map +1 -0
  287. package/lib/tracking-buffer/writable-tracking-buffer.d.ts +47 -0
  288. package/lib/tracking-buffer/writable-tracking-buffer.js +249 -0
  289. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -0
  290. package/lib/transaction.d.ts +39 -0
  291. package/lib/transaction.js +137 -0
  292. package/lib/transaction.js.map +1 -0
  293. package/lib/transient-error-lookup.d.ts +3 -0
  294. package/lib/transient-error-lookup.js +19 -0
  295. package/lib/transient-error-lookup.js.map +1 -0
  296. package/lib/value-parser.d.ts +7 -0
  297. package/lib/value-parser.js +813 -0
  298. package/lib/value-parser.js.map +1 -0
  299. package/package.json +145 -0
  300. package/pull_request_template.md +9 -0
  301. package/tsconfig.build-types.json +15 -0
  302. package/tsconfig.json +30 -0
  303. package/types/js-md4.d.ts +7 -0
  304. package/types/native-duplexpair.d.ts +12 -0
@@ -0,0 +1,5 @@
1
+ import { type ParserOptions } from './stream-parser';
2
+ import { OrderToken } from './token';
3
+ import { Result } from './helpers';
4
+ declare function orderParser(buf: Buffer, offset: number, _options: ParserOptions): Result<OrderToken>;
5
+ export default orderParser;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _token = require("./token");
8
+ var _helpers = require("./helpers");
9
+ // s2.2.7.14
10
+
11
+ function orderParser(buf, offset, _options) {
12
+ // length
13
+ let tokenLength;
14
+ ({
15
+ offset,
16
+ value: tokenLength
17
+ } = (0, _helpers.readUInt16LE)(buf, offset));
18
+ if (buf.length < offset + tokenLength) {
19
+ throw new _helpers.NotEnoughDataError(offset + tokenLength);
20
+ }
21
+ const orderColumns = [];
22
+ for (let i = 0; i < tokenLength; i += 2) {
23
+ let column;
24
+ ({
25
+ offset,
26
+ value: column
27
+ } = (0, _helpers.readUInt16LE)(buf, offset));
28
+ orderColumns.push(column);
29
+ }
30
+ return new _helpers.Result(new _token.OrderToken(orderColumns), offset);
31
+ }
32
+ var _default = exports.default = orderParser;
33
+ module.exports = orderParser;
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2hlbHBlcnMiLCJvcmRlclBhcnNlciIsImJ1ZiIsIm9mZnNldCIsIl9vcHRpb25zIiwidG9rZW5MZW5ndGgiLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsImxlbmd0aCIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9yZGVyQ29sdW1ucyIsImkiLCJjb2x1bW4iLCJwdXNoIiwiUmVzdWx0IiwiT3JkZXJUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vb3JkZXItdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4xNFxuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgT3JkZXJUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yLCByZWFkVUludDE2TEUsIFJlc3VsdCB9IGZyb20gJy4vaGVscGVycyc7XG5cbmZ1bmN0aW9uIG9yZGVyUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8T3JkZXJUb2tlbj4ge1xuICAvLyBsZW5ndGhcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyB0b2tlbkxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgdG9rZW5MZW5ndGgpO1xuICB9XG5cbiAgY29uc3Qgb3JkZXJDb2x1bW5zOiBudW1iZXJbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5MZW5ndGg7IGkgKz0gMikge1xuICAgIGxldCBjb2x1bW47XG4gICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sdW1uIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICAgIG9yZGVyQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgT3JkZXJUb2tlbihvcmRlckNvbHVtbnMpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBvcmRlclBhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gb3JkZXJQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUpBOztBQU1BLFNBQVNFLFdBQVdBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUF1QixFQUFzQjtFQUM3RjtFQUNBLElBQUlDLFdBQVc7RUFDZixDQUFDO0lBQUVGLE1BQU07SUFBRUcsS0FBSyxFQUFFRDtFQUFZLENBQUMsR0FBRyxJQUFBRSxxQkFBWSxFQUFDTCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUUzRCxJQUFJRCxHQUFHLENBQUNNLE1BQU0sR0FBR0wsTUFBTSxHQUFHRSxXQUFXLEVBQUU7SUFDckMsTUFBTSxJQUFJSSwyQkFBa0IsQ0FBQ04sTUFBTSxHQUFHRSxXQUFXLENBQUM7RUFDcEQ7RUFFQSxNQUFNSyxZQUFzQixHQUFHLEVBQUU7RUFFakMsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdOLFdBQVcsRUFBRU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUN2QyxJQUFJQyxNQUFNO0lBQ1YsQ0FBQztNQUFFVCxNQUFNO01BQUVHLEtBQUssRUFBRU07SUFBTyxDQUFDLEdBQUcsSUFBQUwscUJBQVksRUFBQ0wsR0FBRyxFQUFFQyxNQUFNLENBQUM7SUFFdERPLFlBQVksQ0FBQ0csSUFBSSxDQUFDRCxNQUFNLENBQUM7RUFDM0I7RUFFQSxPQUFPLElBQUlFLGVBQU0sQ0FBQyxJQUFJQyxpQkFBVSxDQUFDTCxZQUFZLENBQUMsRUFBRVAsTUFBTSxDQUFDO0FBQ3pEO0FBQUMsSUFBQWEsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFY2pCLFdBQVc7QUFDMUJrQixNQUFNLENBQUNGLE9BQU8sR0FBR2hCLFdBQVciLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-token-parser.js","names":["_token","require","_helpers","orderParser","buf","offset","_options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","orderColumns","i","column","push","Result","OrderToken","_default","exports","default","module"],"sources":["../../src/token/order-token-parser.ts"],"sourcesContent":["// s2.2.7.14\nimport { type ParserOptions } from './stream-parser';\n\nimport { OrderToken } from './token';\nimport { NotEnoughDataError, readUInt16LE, Result } from './helpers';\n\nfunction orderParser(buf: Buffer, offset: number, _options: ParserOptions): Result<OrderToken> {\n // length\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < offset + tokenLength) {\n throw new NotEnoughDataError(offset + tokenLength);\n }\n\n const orderColumns: number[] = [];\n\n for (let i = 0; i < tokenLength; i += 2) {\n let column;\n ({ offset, value: column } = readUInt16LE(buf, offset));\n\n orderColumns.push(column);\n }\n\n return new Result(new OrderToken(orderColumns), offset);\n}\n\nexport default orderParser;\nmodule.exports = orderParser;\n"],"mappings":";;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAJA;;AAMA,SAASE,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAAsB;EAC7F;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,GAAGL,MAAM,GAAGE,WAAW,EAAE;IACrC,MAAM,IAAII,2BAAkB,CAACN,MAAM,GAAGE,WAAW,CAAC;EACpD;EAEA,MAAMK,YAAsB,GAAG,EAAE;EAEjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,WAAW,EAAEM,CAAC,IAAI,CAAC,EAAE;IACvC,IAAIC,MAAM;IACV,CAAC;MAAET,MAAM;MAAEG,KAAK,EAAEM;IAAO,CAAC,GAAG,IAAAL,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;IAEtDO,YAAY,CAACG,IAAI,CAACD,MAAM,CAAC;EAC3B;EAEA,OAAO,IAAIE,eAAM,CAAC,IAAIC,iBAAU,CAACL,YAAY,CAAC,EAAEP,MAAM,CAAC;AACzD;AAAC,IAAAa,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcjB,WAAW;AAC1BkB,MAAM,CAACF,OAAO,GAAGhB,WAAW","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { Result } from './helpers';
2
+ import { type ParserOptions } from './stream-parser';
3
+ import { ReturnStatusToken } from './token';
4
+ declare function returnStatusParser(buf: Buffer, offset: number, _options: ParserOptions): Result<ReturnStatusToken>;
5
+ export default returnStatusParser;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _helpers = require("./helpers");
8
+ var _token = require("./token");
9
+ // s2.2.7.16
10
+
11
+ function returnStatusParser(buf, offset, _options) {
12
+ let value;
13
+ ({
14
+ value,
15
+ offset
16
+ } = (0, _helpers.readInt32LE)(buf, offset));
17
+ return new _helpers.Result(new _token.ReturnStatusToken(value), offset);
18
+ }
19
+ var _default = exports.default = returnStatusParser;
20
+ module.exports = returnStatusParser;
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaGVscGVycyIsInJlcXVpcmUiLCJfdG9rZW4iLCJyZXR1cm5TdGF0dXNQYXJzZXIiLCJidWYiLCJvZmZzZXQiLCJfb3B0aW9ucyIsInZhbHVlIiwicmVhZEludDMyTEUiLCJSZXN1bHQiLCJSZXR1cm5TdGF0dXNUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vcmV0dXJuc3RhdHVzLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTZcbmltcG9ydCB7IHJlYWRJbnQzMkxFLCBSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgUmV0dXJuU3RhdHVzVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuZnVuY3Rpb24gcmV0dXJuU3RhdHVzUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8UmV0dXJuU3RhdHVzVG9rZW4+IHtcbiAgbGV0IHZhbHVlO1xuICAoeyB2YWx1ZSwgb2Zmc2V0IH0gPSByZWFkSW50MzJMRShidWYsIG9mZnNldCkpO1xuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgUmV0dXJuU3RhdHVzVG9rZW4odmFsdWUpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCByZXR1cm5TdGF0dXNQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IHJldHVyblN0YXR1c1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBSkE7O0FBTUEsU0FBU0Usa0JBQWtCQSxDQUFDQyxHQUFXLEVBQUVDLE1BQWMsRUFBRUMsUUFBdUIsRUFBNkI7RUFDM0csSUFBSUMsS0FBSztFQUNULENBQUM7SUFBRUEsS0FBSztJQUFFRjtFQUFPLENBQUMsR0FBRyxJQUFBRyxvQkFBVyxFQUFDSixHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUM3QyxPQUFPLElBQUlJLGVBQU0sQ0FBQyxJQUFJQyx3QkFBaUIsQ0FBQ0gsS0FBSyxDQUFDLEVBQUVGLE1BQU0sQ0FBQztBQUN6RDtBQUFDLElBQUFNLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWNWLGtCQUFrQjtBQUNqQ1csTUFBTSxDQUFDRixPQUFPLEdBQUdULGtCQUFrQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"returnstatus-token-parser.js","names":["_helpers","require","_token","returnStatusParser","buf","offset","_options","value","readInt32LE","Result","ReturnStatusToken","_default","exports","default","module"],"sources":["../../src/token/returnstatus-token-parser.ts"],"sourcesContent":["// s2.2.7.16\nimport { readInt32LE, Result } from './helpers';\nimport { type ParserOptions } from './stream-parser';\n\nimport { ReturnStatusToken } from './token';\n\nfunction returnStatusParser(buf: Buffer, offset: number, _options: ParserOptions): Result<ReturnStatusToken> {\n let value;\n ({ value, offset } = readInt32LE(buf, offset));\n return new Result(new ReturnStatusToken(value), offset);\n}\n\nexport default returnStatusParser;\nmodule.exports = returnStatusParser;\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAJA;;AAMA,SAASE,kBAAkBA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAA6B;EAC3G,IAAIC,KAAK;EACT,CAAC;IAAEA,KAAK;IAAEF;EAAO,CAAC,GAAG,IAAAG,oBAAW,EAACJ,GAAG,EAAEC,MAAM,CAAC;EAC7C,OAAO,IAAII,eAAM,CAAC,IAAIC,wBAAiB,CAACH,KAAK,CAAC,EAAEF,MAAM,CAAC;AACzD;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcV,kBAAkB;AACjCW,MAAM,CAACF,OAAO,GAAGT,kBAAkB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import Parser from './stream-parser';
2
+ import { ReturnValueToken } from './token';
3
+ declare function returnParser(parser: Parser): Promise<ReturnValueToken>;
4
+ export default returnParser;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _token = require("./token");
8
+ var _metadataParser = require("../metadata-parser");
9
+ var _valueParser = require("../value-parser");
10
+ var _helpers = require("./helpers");
11
+ var iconv = _interopRequireWildcard(require("iconv-lite"));
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ // s2.2.7.16
14
+
15
+ async function returnParser(parser) {
16
+ let paramName;
17
+ let paramOrdinal;
18
+ let metadata;
19
+ while (true) {
20
+ const buf = parser.buffer;
21
+ let offset = parser.position;
22
+ try {
23
+ ({
24
+ offset,
25
+ value: paramOrdinal
26
+ } = (0, _helpers.readUInt16LE)(buf, offset));
27
+ ({
28
+ offset,
29
+ value: paramName
30
+ } = (0, _helpers.readBVarChar)(buf, offset));
31
+ // status
32
+ ({
33
+ offset
34
+ } = (0, _helpers.readUInt8)(buf, offset));
35
+ ({
36
+ offset,
37
+ value: metadata
38
+ } = (0, _metadataParser.readMetadata)(buf, offset, parser.options));
39
+ if (paramName.charAt(0) === '@') {
40
+ paramName = paramName.slice(1);
41
+ }
42
+ } catch (err) {
43
+ if (err instanceof _helpers.NotEnoughDataError) {
44
+ await parser.waitForChunk();
45
+ continue;
46
+ }
47
+ throw err;
48
+ }
49
+ parser.position = offset;
50
+ break;
51
+ }
52
+ let value;
53
+ while (true) {
54
+ const buf = parser.buffer;
55
+ let offset = parser.position;
56
+ if ((0, _valueParser.isPLPStream)(metadata)) {
57
+ const chunks = await (0, _valueParser.readPLPStream)(parser);
58
+ if (chunks === null) {
59
+ value = chunks;
60
+ } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {
61
+ value = Buffer.concat(chunks).toString('ucs2');
62
+ } else if (metadata.type.name === 'VarChar') {
63
+ value = iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8');
64
+ } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {
65
+ value = Buffer.concat(chunks);
66
+ }
67
+ } else {
68
+ try {
69
+ ({
70
+ value,
71
+ offset
72
+ } = (0, _valueParser.readValue)(buf, offset, metadata, parser.options));
73
+ } catch (err) {
74
+ if (err instanceof _helpers.NotEnoughDataError) {
75
+ await parser.waitForChunk();
76
+ continue;
77
+ }
78
+ throw err;
79
+ }
80
+ parser.position = offset;
81
+ }
82
+ break;
83
+ }
84
+ return new _token.ReturnValueToken({
85
+ paramOrdinal: paramOrdinal,
86
+ paramName: paramName,
87
+ metadata: metadata,
88
+ value: value
89
+ });
90
+ }
91
+ var _default = exports.default = returnParser;
92
+ module.exports = returnParser;
93
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX21ldGFkYXRhUGFyc2VyIiwiX3ZhbHVlUGFyc2VyIiwiX2hlbHBlcnMiLCJpY29udiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwicmV0dXJuUGFyc2VyIiwicGFyc2VyIiwicGFyYW1OYW1lIiwicGFyYW1PcmRpbmFsIiwibWV0YWRhdGEiLCJidWYiLCJidWZmZXIiLCJvZmZzZXQiLCJwb3NpdGlvbiIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwicmVhZEJWYXJDaGFyIiwicmVhZFVJbnQ4IiwicmVhZE1ldGFkYXRhIiwib3B0aW9ucyIsImNoYXJBdCIsInNsaWNlIiwiZXJyIiwiTm90RW5vdWdoRGF0YUVycm9yIiwid2FpdEZvckNodW5rIiwiaXNQTFBTdHJlYW0iLCJjaHVua3MiLCJyZWFkUExQU3RyZWFtIiwidHlwZSIsIm5hbWUiLCJCdWZmZXIiLCJjb25jYXQiLCJ0b1N0cmluZyIsImRlY29kZSIsImNvbGxhdGlvbiIsImNvZGVwYWdlIiwicmVhZFZhbHVlIiwiUmV0dXJuVmFsdWVUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9yZXR1cm52YWx1ZS10b2tlbi1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gczIuMi43LjE2XG5cbmltcG9ydCBQYXJzZXIgZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgUmV0dXJuVmFsdWVUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG5pbXBvcnQgeyByZWFkTWV0YWRhdGEgfSBmcm9tICcuLi9tZXRhZGF0YS1wYXJzZXInO1xuaW1wb3J0IHsgaXNQTFBTdHJlYW0sIHJlYWRQTFBTdHJlYW0sIHJlYWRWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlLXBhcnNlcic7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IsIHJlYWRCVmFyQ2hhciwgcmVhZFVJbnQxNkxFLCByZWFkVUludDggfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0ICogYXMgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHVyblBhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8UmV0dXJuVmFsdWVUb2tlbj4ge1xuICBsZXQgcGFyYW1OYW1lO1xuICBsZXQgcGFyYW1PcmRpbmFsO1xuICBsZXQgbWV0YWRhdGE7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBidWYgPSBwYXJzZXIuYnVmZmVyO1xuICAgIGxldCBvZmZzZXQgPSBwYXJzZXIucG9zaXRpb247XG5cbiAgICB0cnkge1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogcGFyYW1PcmRpbmFsIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcbiAgICAgICh7IG9mZnNldCwgdmFsdWU6IHBhcmFtTmFtZSB9ID0gcmVhZEJWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG4gICAgICAvLyBzdGF0dXNcbiAgICAgICh7IG9mZnNldCB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG4gICAgICAoeyBvZmZzZXQsIHZhbHVlOiBtZXRhZGF0YSB9ID0gcmVhZE1ldGFkYXRhKGJ1Ziwgb2Zmc2V0LCBwYXJzZXIub3B0aW9ucykpO1xuXG4gICAgICBpZiAocGFyYW1OYW1lLmNoYXJBdCgwKSA9PT0gJ0AnKSB7XG4gICAgICAgIHBhcmFtTmFtZSA9IHBhcmFtTmFtZS5zbGljZSgxKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgYXdhaXQgcGFyc2VyLndhaXRGb3JDaHVuaygpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHBhcnNlci5wb3NpdGlvbiA9IG9mZnNldDtcbiAgICBicmVhaztcbiAgfVxuXG4gIGxldCB2YWx1ZTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBidWYgPSBwYXJzZXIuYnVmZmVyO1xuICAgIGxldCBvZmZzZXQgPSBwYXJzZXIucG9zaXRpb247XG5cbiAgICBpZiAoaXNQTFBTdHJlYW0obWV0YWRhdGEpKSB7XG4gICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgIGlmIChjaHVua3MgPT09IG51bGwpIHtcbiAgICAgICAgdmFsdWUgPSBjaHVua3M7XG4gICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgIHZhbHVlID0gQnVmZmVyLmNvbmNhdChjaHVua3MpLnRvU3RyaW5nKCd1Y3MyJyk7XG4gICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckNoYXInKSB7XG4gICAgICAgIHZhbHVlID0gaWNvbnYuZGVjb2RlKEJ1ZmZlci5jb25jYXQoY2h1bmtzKSwgbWV0YWRhdGEuY29sbGF0aW9uPy5jb2RlcGFnZSA/PyAndXRmOCcpO1xuICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJCaW5hcnknIHx8IG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1VEVCcpIHtcbiAgICAgICAgdmFsdWUgPSBCdWZmZXIuY29uY2F0KGNodW5rcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgICh7IHZhbHVlLCBvZmZzZXQgfSA9IHJlYWRWYWx1ZShidWYsIG9mZnNldCwgbWV0YWRhdGEsIHBhcnNlci5vcHRpb25zKSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cblxuICAgICAgcGFyc2VyLnBvc2l0aW9uID0gb2Zmc2V0O1xuICAgIH1cblxuICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXR1cm5WYWx1ZVRva2VuKHtcbiAgICBwYXJhbU9yZGluYWw6IHBhcmFtT3JkaW5hbCxcbiAgICBwYXJhbU5hbWU6IHBhcmFtTmFtZSxcbiAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgdmFsdWU6IHZhbHVlXG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCByZXR1cm5QYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IHJldHVyblBhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBSUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBQyx1QkFBQSxDQUFBTCxPQUFBO0FBQW9DLFNBQUFLLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSCx1QkFBQSxZQUFBQSxDQUFBQyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlC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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"returnvalue-token-parser.js","names":["_token","require","_metadataParser","_valueParser","_helpers","iconv","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","returnParser","parser","paramName","paramOrdinal","metadata","buf","buffer","offset","position","value","readUInt16LE","readBVarChar","readUInt8","readMetadata","options","charAt","slice","err","NotEnoughDataError","waitForChunk","isPLPStream","chunks","readPLPStream","type","name","Buffer","concat","toString","decode","collation","codepage","readValue","ReturnValueToken","_default","exports","module"],"sources":["../../src/token/returnvalue-token-parser.ts"],"sourcesContent":["// s2.2.7.16\n\nimport Parser from './stream-parser';\n\nimport { ReturnValueToken } from './token';\n\nimport { readMetadata } from '../metadata-parser';\nimport { isPLPStream, readPLPStream, readValue } from '../value-parser';\nimport { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt8 } from './helpers';\nimport * as iconv from 'iconv-lite';\n\nasync function returnParser(parser: Parser): Promise<ReturnValueToken> {\n let paramName;\n let paramOrdinal;\n let metadata;\n\n while (true) {\n const buf = parser.buffer;\n let offset = parser.position;\n\n try {\n ({ offset, value: paramOrdinal } = readUInt16LE(buf, offset));\n ({ offset, value: paramName } = readBVarChar(buf, offset));\n // status\n ({ offset } = readUInt8(buf, offset));\n ({ offset, value: metadata } = readMetadata(buf, offset, parser.options));\n\n if (paramName.charAt(0) === '@') {\n paramName = paramName.slice(1);\n }\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = offset;\n break;\n }\n\n let value;\n while (true) {\n const buf = parser.buffer;\n let offset = parser.position;\n\n if (isPLPStream(metadata)) {\n const chunks = await readPLPStream(parser);\n\n if (chunks === null) {\n value = chunks;\n } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {\n value = Buffer.concat(chunks).toString('ucs2');\n } else if (metadata.type.name === 'VarChar') {\n value = iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8');\n } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {\n value = Buffer.concat(chunks);\n }\n } else {\n try {\n ({ value, offset } = readValue(buf, offset, metadata, parser.options));\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = offset;\n }\n\n break;\n }\n\n return new ReturnValueToken({\n paramOrdinal: paramOrdinal,\n paramName: paramName,\n metadata: metadata,\n value: value\n });\n}\n\nexport default returnParser;\nmodule.exports = returnParser;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import Parser from './stream-parser';
2
+ import { RowToken } from './token';
3
+ declare function rowParser(parser: Parser): Promise<RowToken>;
4
+ export default rowParser;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _token = require("./token");
8
+ var iconv = _interopRequireWildcard(require("iconv-lite"));
9
+ var _valueParser = require("../value-parser");
10
+ var _helpers = require("./helpers");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ // s2.2.7.17
13
+
14
+ async function rowParser(parser) {
15
+ const columns = [];
16
+ for (const metadata of parser.colMetadata) {
17
+ while (true) {
18
+ if ((0, _valueParser.isPLPStream)(metadata)) {
19
+ const chunks = await (0, _valueParser.readPLPStream)(parser);
20
+ if (chunks === null) {
21
+ columns.push({
22
+ value: chunks,
23
+ metadata
24
+ });
25
+ } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {
26
+ columns.push({
27
+ value: Buffer.concat(chunks).toString('ucs2'),
28
+ metadata
29
+ });
30
+ } else if (metadata.type.name === 'VarChar') {
31
+ columns.push({
32
+ value: iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8'),
33
+ metadata
34
+ });
35
+ } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {
36
+ columns.push({
37
+ value: Buffer.concat(chunks),
38
+ metadata
39
+ });
40
+ }
41
+ } else {
42
+ let result;
43
+ try {
44
+ result = (0, _valueParser.readValue)(parser.buffer, parser.position, metadata, parser.options);
45
+ } catch (err) {
46
+ if (err instanceof _helpers.NotEnoughDataError) {
47
+ await parser.waitForChunk();
48
+ continue;
49
+ }
50
+ throw err;
51
+ }
52
+ parser.position = result.offset;
53
+ columns.push({
54
+ value: result.value,
55
+ metadata
56
+ });
57
+ }
58
+ break;
59
+ }
60
+ }
61
+ if (parser.options.useColumnNames) {
62
+ const columnsMap = Object.create(null);
63
+ columns.forEach(column => {
64
+ const colName = column.metadata.colName;
65
+ if (columnsMap[colName] == null) {
66
+ columnsMap[colName] = column;
67
+ }
68
+ });
69
+ return new _token.RowToken(columnsMap);
70
+ } else {
71
+ return new _token.RowToken(columns);
72
+ }
73
+ }
74
+ var _default = exports.default = rowParser;
75
+ module.exports = rowParser;
76
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiaWNvbnYiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92YWx1ZVBhcnNlciIsIl9oZWxwZXJzIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwicm93UGFyc2VyIiwicGFyc2VyIiwiY29sdW1ucyIsIm1ldGFkYXRhIiwiY29sTWV0YWRhdGEiLCJpc1BMUFN0cmVhbSIsImNodW5rcyIsInJlYWRQTFBTdHJlYW0iLCJwdXNoIiwidmFsdWUiLCJ0eXBlIiwibmFtZSIsIkJ1ZmZlciIsImNvbmNhdCIsInRvU3RyaW5nIiwiZGVjb2RlIiwiY29sbGF0aW9uIiwiY29kZXBhZ2UiLCJyZXN1bHQiLCJyZWFkVmFsdWUiLCJidWZmZXIiLCJwb3NpdGlvbiIsIm9wdGlvbnMiLCJlcnIiLCJOb3RFbm91Z2hEYXRhRXJyb3IiLCJ3YWl0Rm9yQ2h1bmsiLCJvZmZzZXQiLCJ1c2VDb2x1bW5OYW1lcyIsImNvbHVtbnNNYXAiLCJjcmVhdGUiLCJmb3JFYWNoIiwiY29sdW1uIiwiY29sTmFtZSIsIlJvd1Rva2VuIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3Jvdy10b2tlbi1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gczIuMi43LjE3XG5cbmltcG9ydCBQYXJzZXIgZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcbmltcG9ydCB7IHR5cGUgQ29sdW1uTWV0YWRhdGEgfSBmcm9tICcuL2NvbG1ldGFkYXRhLXRva2VuLXBhcnNlcic7XG5cbmltcG9ydCB7IFJvd1Rva2VuIH0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgKiBhcyBpY29udiBmcm9tICdpY29udi1saXRlJztcblxuaW1wb3J0IHsgaXNQTFBTdHJlYW0sIHJlYWRQTFBTdHJlYW0sIHJlYWRWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlLXBhcnNlcic7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5pbnRlcmZhY2UgQ29sdW1uIHtcbiAgdmFsdWU6IHVua25vd247XG4gIG1ldGFkYXRhOiBDb2x1bW5NZXRhZGF0YTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcm93UGFyc2VyKHBhcnNlcjogUGFyc2VyKTogUHJvbWlzZTxSb3dUb2tlbj4ge1xuICBjb25zdCBjb2x1bW5zOiBDb2x1bW5bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgcGFyc2VyLmNvbE1ldGFkYXRhKSB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChpc1BMUFN0cmVhbShtZXRhZGF0YSkpIHtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gYXdhaXQgcmVhZFBMUFN0cmVhbShwYXJzZXIpO1xuXG4gICAgICAgIGlmIChjaHVua3MgPT09IG51bGwpIHtcbiAgICAgICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogY2h1bmtzLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdOVmFyQ2hhcicgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnWG1sJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBCdWZmZXIuY29uY2F0KGNodW5rcykudG9TdHJpbmcoJ3VjczInKSwgbWV0YWRhdGEgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWV0YWRhdGEudHlwZS5uYW1lID09PSAnVmFyQ2hhcicpIHtcbiAgICAgICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogaWNvbnYuZGVjb2RlKEJ1ZmZlci5jb25jYXQoY2h1bmtzKSwgbWV0YWRhdGEuY29sbGF0aW9uPy5jb2RlcGFnZSA/PyAndXRmOCcpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJCaW5hcnknIHx8IG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1VEVCcpIHtcbiAgICAgICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXN1bHQgPSByZWFkVmFsdWUocGFyc2VyLmJ1ZmZlciwgcGFyc2VyLnBvc2l0aW9uLCBtZXRhZGF0YSwgcGFyc2VyLm9wdGlvbnMpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgICAgICBhd2FpdCBwYXJzZXIud2FpdEZvckNodW5rKCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cblxuICAgICAgICBwYXJzZXIucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogcmVzdWx0LnZhbHVlLCBtZXRhZGF0YSB9KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnNlci5vcHRpb25zLnVzZUNvbHVtbk5hbWVzKSB7XG4gICAgY29uc3QgY29sdW1uc01hcDogeyBba2V5OiBzdHJpbmddOiBDb2x1bW4gfSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgY29sTmFtZSA9IGNvbHVtbi5tZXRhZGF0YS5jb2xOYW1lO1xuICAgICAgaWYgKGNvbHVtbnNNYXBbY29sTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBjb2x1bW5zTWFwW2NvbE5hbWVdID0gY29sdW1uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBSb3dUb2tlbihjb2x1bW5zTWFwKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IFJvd1Rva2VuKGNvbHVtbnMpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHJvd1BhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gcm93UGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFBK0MsU0FBQUUsd0JBQUFHLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFMLHVCQUFBLFlBQUFBLENBQUFHLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsZ0JBQUFQLENBQUEsSUFBQUQsQ0FBQSxnQkFBQUMsQ0FBQSxPQUFBYSxjQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxFQUFBQyxDQUFBLE9BQUFN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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-token-parser.js","names":["_token","require","iconv","_interopRequireWildcard","_valueParser","_helpers","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","rowParser","parser","columns","metadata","colMetadata","isPLPStream","chunks","readPLPStream","push","value","type","name","Buffer","concat","toString","decode","collation","codepage","result","readValue","buffer","position","options","err","NotEnoughDataError","waitForChunk","offset","useColumnNames","columnsMap","create","forEach","column","colName","RowToken","_default","exports","module"],"sources":["../../src/token/row-token-parser.ts"],"sourcesContent":["// s2.2.7.17\n\nimport Parser from './stream-parser';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\n\nimport { RowToken } from './token';\nimport * as iconv from 'iconv-lite';\n\nimport { isPLPStream, readPLPStream, readValue } from '../value-parser';\nimport { NotEnoughDataError } from './helpers';\n\ninterface Column {\n value: unknown;\n metadata: ColumnMetadata;\n}\n\nasync function rowParser(parser: Parser): Promise<RowToken> {\n const columns: Column[] = [];\n\n for (const metadata of parser.colMetadata) {\n while (true) {\n if (isPLPStream(metadata)) {\n const chunks = await readPLPStream(parser);\n\n if (chunks === null) {\n columns.push({ value: chunks, metadata });\n } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {\n columns.push({ value: Buffer.concat(chunks).toString('ucs2'), metadata });\n } else if (metadata.type.name === 'VarChar') {\n columns.push({ value: iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8'), metadata });\n } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {\n columns.push({ value: Buffer.concat(chunks), metadata });\n }\n } else {\n let result;\n try {\n result = readValue(parser.buffer, parser.position, metadata, parser.options);\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = result.offset;\n columns.push({ value: result.value, metadata });\n }\n\n break;\n }\n }\n\n if (parser.options.useColumnNames) {\n const columnsMap: { [key: string]: Column } = Object.create(null);\n\n columns.forEach((column) => {\n const colName = column.metadata.colName;\n if (columnsMap[colName] == null) {\n columnsMap[colName] = column;\n }\n });\n\n return new RowToken(columnsMap);\n } else {\n return new RowToken(columns);\n }\n}\n\nexport default rowParser;\nmodule.exports = rowParser;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { Result } from './helpers';
2
+ import { type ParserOptions } from './stream-parser';
3
+ import { SSPIToken } from './token';
4
+ declare function sspiParser(buf: Buffer, offset: number, _options: ParserOptions): Result<SSPIToken>;
5
+ export default sspiParser;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _helpers = require("./helpers");
8
+ var _token = require("./token");
9
+ function parseChallenge(buffer) {
10
+ const challenge = {};
11
+ challenge.magic = buffer.slice(0, 8).toString('utf8');
12
+ challenge.type = buffer.readInt32LE(8);
13
+ challenge.domainLen = buffer.readInt16LE(12);
14
+ challenge.domainMax = buffer.readInt16LE(14);
15
+ challenge.domainOffset = buffer.readInt32LE(16);
16
+ challenge.flags = buffer.readInt32LE(20);
17
+ challenge.nonce = buffer.slice(24, 32);
18
+ challenge.zeroes = buffer.slice(32, 40);
19
+ challenge.targetLen = buffer.readInt16LE(40);
20
+ challenge.targetMax = buffer.readInt16LE(42);
21
+ challenge.targetOffset = buffer.readInt32LE(44);
22
+ challenge.oddData = buffer.slice(48, 56);
23
+ challenge.domain = buffer.slice(56, 56 + challenge.domainLen).toString('ucs2');
24
+ challenge.target = buffer.slice(56 + challenge.domainLen, 56 + challenge.domainLen + challenge.targetLen);
25
+ return challenge;
26
+ }
27
+ function sspiParser(buf, offset, _options) {
28
+ let tokenLength;
29
+ ({
30
+ offset,
31
+ value: tokenLength
32
+ } = (0, _helpers.readUInt16LE)(buf, offset));
33
+ if (buf.length < offset + tokenLength) {
34
+ throw new _helpers.NotEnoughDataError(offset + tokenLength);
35
+ }
36
+ const data = buf.slice(offset, offset + tokenLength);
37
+ offset += tokenLength;
38
+ return new _helpers.Result(new _token.SSPIToken(parseChallenge(data), data), offset);
39
+ }
40
+ var _default = exports.default = sspiParser;
41
+ module.exports = sspiParser;
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaGVscGVycyIsInJlcXVpcmUiLCJfdG9rZW4iLCJwYXJzZUNoYWxsZW5nZSIsImJ1ZmZlciIsImNoYWxsZW5nZSIsIm1hZ2ljIiwic2xpY2UiLCJ0b1N0cmluZyIsInR5cGUiLCJyZWFkSW50MzJMRSIsImRvbWFpbkxlbiIsInJlYWRJbnQxNkxFIiwiZG9tYWluTWF4IiwiZG9tYWluT2Zmc2V0IiwiZmxhZ3MiLCJub25jZSIsInplcm9lcyIsInRhcmdldExlbiIsInRhcmdldE1heCIsInRhcmdldE9mZnNldCIsIm9kZERhdGEiLCJkb21haW4iLCJ0YXJnZXQiLCJzc3BpUGFyc2VyIiwiYnVmIiwib2Zmc2V0IiwiX29wdGlvbnMiLCJ0b2tlbkxlbmd0aCIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwibGVuZ3RoIiwiTm90RW5vdWdoRGF0YUVycm9yIiwiZGF0YSIsIlJlc3VsdCIsIlNTUElUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vc3NwaS10b2tlbi1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yLCByZWFkVUludDE2TEUsIFJlc3VsdCB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuXG5pbXBvcnQgeyBTU1BJVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuaW50ZXJmYWNlIERhdGEge1xuICBtYWdpYzogc3RyaW5nO1xuICB0eXBlOiBudW1iZXI7XG4gIGRvbWFpbkxlbjogbnVtYmVyO1xuICBkb21haW5NYXg6IG51bWJlcjtcbiAgZG9tYWluT2Zmc2V0OiBudW1iZXI7XG4gIGZsYWdzOiBudW1iZXI7XG4gIG5vbmNlOiBCdWZmZXI7XG4gIHplcm9lczogQnVmZmVyO1xuICB0YXJnZXRMZW46IG51bWJlcjtcbiAgdGFyZ2V0TWF4OiBudW1iZXI7XG4gIHRhcmdldE9mZnNldDogbnVtYmVyO1xuICBvZGREYXRhOiBCdWZmZXI7XG4gIGRvbWFpbjogc3RyaW5nO1xuICB0YXJnZXQ6IEJ1ZmZlcjtcbn1cblxuZnVuY3Rpb24gcGFyc2VDaGFsbGVuZ2UoYnVmZmVyOiBCdWZmZXIpIHtcbiAgY29uc3QgY2hhbGxlbmdlOiBQYXJ0aWFsPERhdGE+ID0ge307XG5cbiAgY2hhbGxlbmdlLm1hZ2ljID0gYnVmZmVyLnNsaWNlKDAsIDgpLnRvU3RyaW5nKCd1dGY4Jyk7XG4gIGNoYWxsZW5nZS50eXBlID0gYnVmZmVyLnJlYWRJbnQzMkxFKDgpO1xuICBjaGFsbGVuZ2UuZG9tYWluTGVuID0gYnVmZmVyLnJlYWRJbnQxNkxFKDEyKTtcbiAgY2hhbGxlbmdlLmRvbWFpbk1heCA9IGJ1ZmZlci5yZWFkSW50MTZMRSgxNCk7XG4gIGNoYWxsZW5nZS5kb21haW5PZmZzZXQgPSBidWZmZXIucmVhZEludDMyTEUoMTYpO1xuICBjaGFsbGVuZ2UuZmxhZ3MgPSBidWZmZXIucmVhZEludDMyTEUoMjApO1xuICBjaGFsbGVuZ2Uubm9uY2UgPSBidWZmZXIuc2xpY2UoMjQsIDMyKTtcbiAgY2hhbGxlbmdlLnplcm9lcyA9IGJ1ZmZlci5zbGljZSgzMiwgNDApO1xuICBjaGFsbGVuZ2UudGFyZ2V0TGVuID0gYnVmZmVyLnJlYWRJbnQxNkxFKDQwKTtcbiAgY2hhbGxlbmdlLnRhcmdldE1heCA9IGJ1ZmZlci5yZWFkSW50MTZMRSg0Mik7XG4gIGNoYWxsZW5nZS50YXJnZXRPZmZzZXQgPSBidWZmZXIucmVhZEludDMyTEUoNDQpO1xuICBjaGFsbGVuZ2Uub2RkRGF0YSA9IGJ1ZmZlci5zbGljZSg0OCwgNTYpO1xuICBjaGFsbGVuZ2UuZG9tYWluID0gYnVmZmVyLnNsaWNlKDU2LCA1NiArIGNoYWxsZW5nZS5kb21haW5MZW4pLnRvU3RyaW5nKCd1Y3MyJyk7XG4gIGNoYWxsZW5nZS50YXJnZXQgPSBidWZmZXIuc2xpY2UoNTYgKyBjaGFsbGVuZ2UuZG9tYWluTGVuLCA1NiArIGNoYWxsZW5nZS5kb21haW5MZW4gKyBjaGFsbGVuZ2UudGFyZ2V0TGVuKTtcblxuICByZXR1cm4gY2hhbGxlbmdlIGFzIERhdGE7XG59XG5cbmZ1bmN0aW9uIHNzcGlQYXJzZXIoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBfb3B0aW9uczogUGFyc2VyT3B0aW9ucyk6IFJlc3VsdDxTU1BJVG9rZW4+IHtcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyB0b2tlbkxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgdG9rZW5MZW5ndGgpO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGJ1Zi5zbGljZShvZmZzZXQsIG9mZnNldCArIHRva2VuTGVuZ3RoKTtcbiAgb2Zmc2V0ICs9IHRva2VuTGVuZ3RoO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KG5ldyBTU1BJVG9rZW4ocGFyc2VDaGFsbGVuZ2UoZGF0YSksIGRhdGEpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzc3BpUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBzc3BpUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFHQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFtQkEsU0FBU0UsY0FBY0EsQ0FBQ0MsTUFBYyxFQUFFO0VBQ3RDLE1BQU1DLFNBQXdCLEdBQUcsQ0FBQyxDQUFDO0VBRW5DQSxTQUFTLENBQUNDLEtBQUssR0FBR0YsTUFBTSxDQUFDRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMsTUFBTSxDQUFDO0VBQ3JESCxTQUFTLENBQUNJLElBQUksR0FBR0wsTUFBTSxDQUFDTSxXQUFXLENBQUMsQ0FB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sspi-token-parser.js","names":["_helpers","require","_token","parseChallenge","buffer","challenge","magic","slice","toString","type","readInt32LE","domainLen","readInt16LE","domainMax","domainOffset","flags","nonce","zeroes","targetLen","targetMax","targetOffset","oddData","domain","target","sspiParser","buf","offset","_options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","data","Result","SSPIToken","_default","exports","default","module"],"sources":["../../src/token/sspi-token-parser.ts"],"sourcesContent":["import { NotEnoughDataError, readUInt16LE, Result } from './helpers';\nimport { type ParserOptions } from './stream-parser';\n\nimport { SSPIToken } from './token';\n\ninterface Data {\n magic: string;\n type: number;\n domainLen: number;\n domainMax: number;\n domainOffset: number;\n flags: number;\n nonce: Buffer;\n zeroes: Buffer;\n targetLen: number;\n targetMax: number;\n targetOffset: number;\n oddData: Buffer;\n domain: string;\n target: Buffer;\n}\n\nfunction parseChallenge(buffer: Buffer) {\n const challenge: Partial<Data> = {};\n\n challenge.magic = buffer.slice(0, 8).toString('utf8');\n challenge.type = buffer.readInt32LE(8);\n challenge.domainLen = buffer.readInt16LE(12);\n challenge.domainMax = buffer.readInt16LE(14);\n challenge.domainOffset = buffer.readInt32LE(16);\n challenge.flags = buffer.readInt32LE(20);\n challenge.nonce = buffer.slice(24, 32);\n challenge.zeroes = buffer.slice(32, 40);\n challenge.targetLen = buffer.readInt16LE(40);\n challenge.targetMax = buffer.readInt16LE(42);\n challenge.targetOffset = buffer.readInt32LE(44);\n challenge.oddData = buffer.slice(48, 56);\n challenge.domain = buffer.slice(56, 56 + challenge.domainLen).toString('ucs2');\n challenge.target = buffer.slice(56 + challenge.domainLen, 56 + challenge.domainLen + challenge.targetLen);\n\n return challenge as Data;\n}\n\nfunction sspiParser(buf: Buffer, offset: number, _options: ParserOptions): Result<SSPIToken> {\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < offset + tokenLength) {\n throw new NotEnoughDataError(offset + tokenLength);\n }\n\n const data = buf.slice(offset, offset + tokenLength);\n offset += tokenLength;\n\n return new Result(new SSPIToken(parseChallenge(data), data), offset);\n}\n\nexport default sspiParser;\nmodule.exports = sspiParser;\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAmBA,SAASE,cAAcA,CAACC,MAAc,EAAE;EACtC,MAAMC,SAAwB,GAAG,CAAC,CAAC;EAEnCA,SAAS,CAACC,KAAK,GAAGF,MAAM,CAACG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,QAAQ,CAAC,MAAM,CAAC;EACrDH,SAAS,CAACI,IAAI,GAAGL,MAAM,CAACM,WAAW,CAAC,CAAC,CAAC;EACtCL,SAAS,CAACM,SAAS,GAAGP,MAAM,CAACQ,WAAW,CAAC,EAAE,CAAC;EAC5CP,SAAS,CAACQ,SAAS,GAAGT,MAAM,CAACQ,WAAW,CAAC,EAAE,CAAC;EAC5CP,SAAS,CAACS,YAAY,GAAGV,MAAM,CAACM,WAAW,CAAC,EAAE,CAAC;EAC/CL,SAAS,CAACU,KAAK,GAAGX,MAAM,CAACM,WAAW,CAAC,EAAE,CAAC;EACxCL,SAAS,CAACW,KAAK,GAAGZ,MAAM,CAACG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;EACtCF,SAAS,CAACY,MAAM,GAAGb,MAAM,CAACG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;EACvCF,SAAS,CAACa,SAAS,GAAGd,MAAM,CAACQ,WAAW,CAAC,EAAE,CAAC;EAC5CP,SAAS,CAACc,SAAS,GAAGf,MAAM,CAACQ,WAAW,CAAC,EAAE,CAAC;EAC5CP,SAAS,CAACe,YAAY,GAAGhB,MAAM,CAACM,WAAW,CAAC,EAAE,CAAC;EAC/CL,SAAS,CAACgB,OAAO,GAAGjB,MAAM,CAACG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;EACxCF,SAAS,CAACiB,MAAM,GAAGlB,MAAM,CAACG,KAAK,CAAC,EAAE,EAAE,EAAE,GAAGF,SAAS,CAACM,SAAS,CAAC,CAACH,QAAQ,CAAC,MAAM,CAAC;EAC9EH,SAAS,CAACkB,MAAM,GAAGnB,MAAM,CAACG,KAAK,CAAC,EAAE,GAAGF,SAAS,CAACM,SAAS,EAAE,EAAE,GAAGN,SAAS,CAACM,SAAS,GAAGN,SAAS,CAACa,SAAS,CAAC;EAEzG,OAAOb,SAAS;AAClB;AAEA,SAASmB,UAAUA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAAqB;EAC3F,IAAIC,WAAW;EACf,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAY,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAE3D,IAAID,GAAG,CAACM,MAAM,GAAGL,MAAM,GAAGE,WAAW,EAAE;IACrC,MAAM,IAAII,2BAAkB,CAACN,MAAM,GAAGE,WAAW,CAAC;EACpD;EAEA,MAAMK,IAAI,GAAGR,GAAG,CAAClB,KAAK,CAACmB,MAAM,EAAEA,MAAM,GAAGE,WAAW,CAAC;EACpDF,MAAM,IAAIE,WAAW;EAErB,OAAO,IAAIM,eAAM,CAAC,IAAIC,gBAAS,CAAChC,cAAc,CAAC8B,IAAI,CAAC,EAAEA,IAAI,CAAC,EAAEP,MAAM,CAAC;AACtE;AAAC,IAAAU,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcd,UAAU;AACzBe,MAAM,CAACF,OAAO,GAAGb,UAAU","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ import Debug from '../debug';
2
+ import { type InternalConnectionOptions } from '../connection';
3
+ import { ColMetadataToken, DoneProcToken, DoneToken, DoneInProcToken, ErrorMessageToken, InfoMessageToken, RowToken, type EnvChangeToken, LoginAckToken, ReturnStatusToken, OrderToken, FedAuthInfoToken, SSPIToken, ReturnValueToken, NBCRowToken, FeatureExtAckToken, Token } from './token';
4
+ import { type ColumnMetadata } from './colmetadata-token-parser';
5
+ export type ParserOptions = Pick<InternalConnectionOptions, 'useUTC' | 'lowerCaseGuids' | 'tdsVersion' | 'useColumnNames' | 'columnNameReplacer' | 'camelCaseColumns'>;
6
+ declare class Parser {
7
+ debug: Debug;
8
+ colMetadata: ColumnMetadata[];
9
+ options: ParserOptions;
10
+ iterator: AsyncIterator<Buffer, any, undefined> | Iterator<Buffer, any, undefined>;
11
+ buffer: Buffer;
12
+ position: number;
13
+ static parseTokens(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions, colMetadata?: ColumnMetadata[]): AsyncGenerator<Token | undefined, void, unknown>;
14
+ readToken(type: number): Token | undefined | Promise<Token | undefined>;
15
+ readFeatureExtAckToken(): FeatureExtAckToken | Promise<FeatureExtAckToken>;
16
+ readNbcRowToken(): Promise<NBCRowToken>;
17
+ readReturnValueToken(): Promise<ReturnValueToken>;
18
+ readColMetadataToken(): Promise<ColMetadataToken>;
19
+ readSSPIToken(): SSPIToken | Promise<SSPIToken>;
20
+ readFedAuthInfoToken(): FedAuthInfoToken | Promise<FedAuthInfoToken>;
21
+ readOrderToken(): OrderToken | Promise<OrderToken>;
22
+ readReturnStatusToken(): ReturnStatusToken | Promise<ReturnStatusToken>;
23
+ readLoginAckToken(): LoginAckToken | Promise<LoginAckToken>;
24
+ readEnvChangeToken(): EnvChangeToken | undefined | Promise<EnvChangeToken | undefined>;
25
+ readRowToken(): RowToken | Promise<RowToken>;
26
+ readInfoToken(): InfoMessageToken | Promise<InfoMessageToken>;
27
+ readErrorToken(): ErrorMessageToken | Promise<ErrorMessageToken>;
28
+ readDoneInProcToken(): DoneInProcToken | Promise<DoneInProcToken>;
29
+ readDoneProcToken(): DoneProcToken | Promise<DoneProcToken>;
30
+ readDoneToken(): DoneToken | Promise<DoneToken>;
31
+ constructor(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions);
32
+ waitForChunk(): Promise<void>;
33
+ }
34
+ export default Parser;