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,341 @@
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 _colmetadataTokenParser = _interopRequireDefault(require("./colmetadata-token-parser"));
9
+ var _doneTokenParser = require("./done-token-parser");
10
+ var _envChangeTokenParser = _interopRequireDefault(require("./env-change-token-parser"));
11
+ var _infoerrorTokenParser = require("./infoerror-token-parser");
12
+ var _fedauthInfoParser = _interopRequireDefault(require("./fedauth-info-parser"));
13
+ var _featureExtAckParser = _interopRequireDefault(require("./feature-ext-ack-parser"));
14
+ var _loginackTokenParser = _interopRequireDefault(require("./loginack-token-parser"));
15
+ var _orderTokenParser = _interopRequireDefault(require("./order-token-parser"));
16
+ var _returnstatusTokenParser = _interopRequireDefault(require("./returnstatus-token-parser"));
17
+ var _returnvalueTokenParser = _interopRequireDefault(require("./returnvalue-token-parser"));
18
+ var _rowTokenParser = _interopRequireDefault(require("./row-token-parser"));
19
+ var _nbcrowTokenParser = _interopRequireDefault(require("./nbcrow-token-parser"));
20
+ var _sspiTokenParser = _interopRequireDefault(require("./sspi-token-parser"));
21
+ var _helpers = require("./helpers");
22
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
+ class Parser {
24
+ debug;
25
+ colMetadata;
26
+ options;
27
+ iterator;
28
+ buffer;
29
+ position;
30
+ static async *parseTokens(iterable, debug, options, colMetadata = []) {
31
+ const parser = new Parser(iterable, debug, options);
32
+ parser.colMetadata = colMetadata;
33
+ while (true) {
34
+ try {
35
+ await parser.waitForChunk();
36
+ } catch (err) {
37
+ if (parser.position === parser.buffer.length) {
38
+ return;
39
+ }
40
+ throw err;
41
+ }
42
+ while (parser.buffer.length >= parser.position + 1) {
43
+ const type = parser.buffer.readUInt8(parser.position);
44
+ parser.position += 1;
45
+ const token = parser.readToken(type);
46
+ if (token !== undefined) {
47
+ yield token;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ readToken(type) {
53
+ switch (type) {
54
+ case _token.TYPE.DONE:
55
+ {
56
+ return this.readDoneToken();
57
+ }
58
+ case _token.TYPE.DONEPROC:
59
+ {
60
+ return this.readDoneProcToken();
61
+ }
62
+ case _token.TYPE.DONEINPROC:
63
+ {
64
+ return this.readDoneInProcToken();
65
+ }
66
+ case _token.TYPE.ERROR:
67
+ {
68
+ return this.readErrorToken();
69
+ }
70
+ case _token.TYPE.INFO:
71
+ {
72
+ return this.readInfoToken();
73
+ }
74
+ case _token.TYPE.ENVCHANGE:
75
+ {
76
+ return this.readEnvChangeToken();
77
+ }
78
+ case _token.TYPE.LOGINACK:
79
+ {
80
+ return this.readLoginAckToken();
81
+ }
82
+ case _token.TYPE.RETURNSTATUS:
83
+ {
84
+ return this.readReturnStatusToken();
85
+ }
86
+ case _token.TYPE.ORDER:
87
+ {
88
+ return this.readOrderToken();
89
+ }
90
+ case _token.TYPE.FEDAUTHINFO:
91
+ {
92
+ return this.readFedAuthInfoToken();
93
+ }
94
+ case _token.TYPE.SSPI:
95
+ {
96
+ return this.readSSPIToken();
97
+ }
98
+ case _token.TYPE.COLMETADATA:
99
+ {
100
+ return this.readColMetadataToken();
101
+ }
102
+ case _token.TYPE.RETURNVALUE:
103
+ {
104
+ return this.readReturnValueToken();
105
+ }
106
+ case _token.TYPE.ROW:
107
+ {
108
+ return this.readRowToken();
109
+ }
110
+ case _token.TYPE.NBCROW:
111
+ {
112
+ return this.readNbcRowToken();
113
+ }
114
+ case _token.TYPE.FEATUREEXTACK:
115
+ {
116
+ return this.readFeatureExtAckToken();
117
+ }
118
+ default:
119
+ {
120
+ throw new Error('Unknown type: ' + type);
121
+ }
122
+ }
123
+ }
124
+ readFeatureExtAckToken() {
125
+ let result;
126
+ try {
127
+ result = (0, _featureExtAckParser.default)(this.buffer, this.position, this.options);
128
+ } catch (err) {
129
+ if (err instanceof _helpers.NotEnoughDataError) {
130
+ return this.waitForChunk().then(() => {
131
+ return this.readFeatureExtAckToken();
132
+ });
133
+ }
134
+ throw err;
135
+ }
136
+ this.position = result.offset;
137
+ return result.value;
138
+ }
139
+ async readNbcRowToken() {
140
+ return await (0, _nbcrowTokenParser.default)(this);
141
+ }
142
+ async readReturnValueToken() {
143
+ return await (0, _returnvalueTokenParser.default)(this);
144
+ }
145
+ async readColMetadataToken() {
146
+ const token = await (0, _colmetadataTokenParser.default)(this);
147
+ this.colMetadata = token.columns;
148
+ return token;
149
+ }
150
+ readSSPIToken() {
151
+ let result;
152
+ try {
153
+ result = (0, _sspiTokenParser.default)(this.buffer, this.position, this.options);
154
+ } catch (err) {
155
+ if (err instanceof _helpers.NotEnoughDataError) {
156
+ return this.waitForChunk().then(() => {
157
+ return this.readSSPIToken();
158
+ });
159
+ }
160
+ throw err;
161
+ }
162
+ this.position = result.offset;
163
+ return result.value;
164
+ }
165
+ readFedAuthInfoToken() {
166
+ let result;
167
+ try {
168
+ result = (0, _fedauthInfoParser.default)(this.buffer, this.position, this.options);
169
+ } catch (err) {
170
+ if (err instanceof _helpers.NotEnoughDataError) {
171
+ return this.waitForChunk().then(() => {
172
+ return this.readFedAuthInfoToken();
173
+ });
174
+ }
175
+ throw err;
176
+ }
177
+ this.position = result.offset;
178
+ return result.value;
179
+ }
180
+ readOrderToken() {
181
+ let result;
182
+ try {
183
+ result = (0, _orderTokenParser.default)(this.buffer, this.position, this.options);
184
+ } catch (err) {
185
+ if (err instanceof _helpers.NotEnoughDataError) {
186
+ return this.waitForChunk().then(() => {
187
+ return this.readOrderToken();
188
+ });
189
+ }
190
+ throw err;
191
+ }
192
+ this.position = result.offset;
193
+ return result.value;
194
+ }
195
+ readReturnStatusToken() {
196
+ let result;
197
+ try {
198
+ result = (0, _returnstatusTokenParser.default)(this.buffer, this.position, this.options);
199
+ } catch (err) {
200
+ if (err instanceof _helpers.NotEnoughDataError) {
201
+ return this.waitForChunk().then(() => {
202
+ return this.readReturnStatusToken();
203
+ });
204
+ }
205
+ throw err;
206
+ }
207
+ this.position = result.offset;
208
+ return result.value;
209
+ }
210
+ readLoginAckToken() {
211
+ let result;
212
+ try {
213
+ result = (0, _loginackTokenParser.default)(this.buffer, this.position, this.options);
214
+ } catch (err) {
215
+ if (err instanceof _helpers.NotEnoughDataError) {
216
+ return this.waitForChunk().then(() => {
217
+ return this.readLoginAckToken();
218
+ });
219
+ }
220
+ throw err;
221
+ }
222
+ this.position = result.offset;
223
+ return result.value;
224
+ }
225
+ readEnvChangeToken() {
226
+ let result;
227
+ try {
228
+ result = (0, _envChangeTokenParser.default)(this.buffer, this.position, this.options);
229
+ } catch (err) {
230
+ if (err instanceof _helpers.NotEnoughDataError) {
231
+ return this.waitForChunk().then(() => {
232
+ return this.readEnvChangeToken();
233
+ });
234
+ }
235
+ throw err;
236
+ }
237
+ this.position = result.offset;
238
+ return result.value;
239
+ }
240
+ readRowToken() {
241
+ return (0, _rowTokenParser.default)(this);
242
+ }
243
+ readInfoToken() {
244
+ let result;
245
+ try {
246
+ result = (0, _infoerrorTokenParser.infoParser)(this.buffer, this.position, this.options);
247
+ } catch (err) {
248
+ if (err instanceof _helpers.NotEnoughDataError) {
249
+ return this.waitForChunk().then(() => {
250
+ return this.readInfoToken();
251
+ });
252
+ }
253
+ throw err;
254
+ }
255
+ this.position = result.offset;
256
+ return result.value;
257
+ }
258
+ readErrorToken() {
259
+ let result;
260
+ try {
261
+ result = (0, _infoerrorTokenParser.errorParser)(this.buffer, this.position, this.options);
262
+ } catch (err) {
263
+ if (err instanceof _helpers.NotEnoughDataError) {
264
+ return this.waitForChunk().then(() => {
265
+ return this.readErrorToken();
266
+ });
267
+ }
268
+ throw err;
269
+ }
270
+ this.position = result.offset;
271
+ return result.value;
272
+ }
273
+ readDoneInProcToken() {
274
+ let result;
275
+ try {
276
+ result = (0, _doneTokenParser.doneInProcParser)(this.buffer, this.position, this.options);
277
+ } catch (err) {
278
+ if (err instanceof _helpers.NotEnoughDataError) {
279
+ return this.waitForChunk().then(() => {
280
+ return this.readDoneInProcToken();
281
+ });
282
+ }
283
+ throw err;
284
+ }
285
+ this.position = result.offset;
286
+ return result.value;
287
+ }
288
+ readDoneProcToken() {
289
+ let result;
290
+ try {
291
+ result = (0, _doneTokenParser.doneProcParser)(this.buffer, this.position, this.options);
292
+ } catch (err) {
293
+ if (err instanceof _helpers.NotEnoughDataError) {
294
+ return this.waitForChunk().then(() => {
295
+ return this.readDoneProcToken();
296
+ });
297
+ }
298
+ throw err;
299
+ }
300
+ this.position = result.offset;
301
+ return result.value;
302
+ }
303
+ readDoneToken() {
304
+ let result;
305
+ try {
306
+ result = (0, _doneTokenParser.doneParser)(this.buffer, this.position, this.options);
307
+ } catch (err) {
308
+ if (err instanceof _helpers.NotEnoughDataError) {
309
+ return this.waitForChunk().then(() => {
310
+ return this.readDoneToken();
311
+ });
312
+ }
313
+ throw err;
314
+ }
315
+ this.position = result.offset;
316
+ return result.value;
317
+ }
318
+ constructor(iterable, debug, options) {
319
+ this.debug = debug;
320
+ this.colMetadata = [];
321
+ this.options = options;
322
+ this.iterator = (iterable[Symbol.asyncIterator] || iterable[Symbol.iterator]).call(iterable);
323
+ this.buffer = Buffer.alloc(0);
324
+ this.position = 0;
325
+ }
326
+ async waitForChunk() {
327
+ const result = await this.iterator.next();
328
+ if (result.done) {
329
+ throw new Error('unexpected end of data');
330
+ }
331
+ if (this.position === this.buffer.length) {
332
+ this.buffer = result.value;
333
+ } else {
334
+ this.buffer = Buffer.concat([this.buffer.slice(this.position), result.value]);
335
+ }
336
+ this.position = 0;
337
+ }
338
+ }
339
+ var _default = exports.default = Parser;
340
+ module.exports = Parser;
341
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2NvbG1ldGFkYXRhVG9rZW5QYXJzZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RvbmVUb2tlblBhcnNlciIsIl9lbnZDaGFuZ2VUb2tlblBhcnNlciIsIl9pbmZvZXJyb3JUb2tlblBhcnNlciIsIl9mZWRhdXRoSW5mb1BhcnNlciIsIl9mZWF0dXJlRXh0QWNrUGFyc2VyIiwiX2xvZ2luYWNrVG9rZW5QYXJzZXIiLCJfb3JkZXJUb2tlblBhcnNlciIsIl9yZXR1cm5zdGF0dXNUb2tlblBhcnNlciIsIl9yZXR1cm52YWx1ZVRva2VuUGFyc2VyIiwiX3Jvd1Rva2VuUGFyc2VyIiwiX25iY3Jvd1Rva2VuUGFyc2VyIiwiX3NzcGlUb2tlblBhcnNlciIsIl9oZWxwZXJzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiUGFyc2VyIiwiZGVidWciLCJjb2xNZXRhZGF0YSIsIm9wdGlvbnMiLCJpdGVyYXRvciIsImJ1ZmZlciIsInBvc2l0aW9uIiwicGFyc2VUb2tlbnMiLCJpdGVyYWJsZSIsInBhcnNlciIsIndhaXRGb3JDaHVuayIsImVyciIsImxlbmd0aCIsInR5cGUiLCJyZWFkVUludDgiLCJ0b2tlbiIsInJlYWRUb2tlbiIsInVuZGVmaW5lZCIsIlRZUEUiLCJET05FIiwicmVhZERvbmVUb2tlbiIsIkRPTkVQUk9DIiwicmVhZERvbmVQcm9jVG9rZW4iLCJET05FSU5QUk9DIiwicmVhZERvbmVJblByb2NUb2tlbiIsIkVSUk9SIiwicmVhZEVycm9yVG9rZW4iLCJJTkZPIiwicmVhZEluZm9Ub2tlbiIsIkVOVkNIQU5HRSIsInJlYWRFbnZDaGFuZ2VUb2tlbiIsIkxPR0lOQUNLIiwicmVhZExvZ2luQWNrVG9rZW4iLCJSRVRVUk5TVEFUVVMiLCJyZWFkUmV0dXJuU3RhdHVzVG9rZW4iLCJPUkRFUiIsInJlYWRPcmRlclRva2VuIiwiRkVEQVVUSElORk8iLCJyZWFkRmVkQXV0aEluZm9Ub2tlbiIsIlNTUEkiLCJyZWFkU1NQSVRva2VuIiwiQ09MTUVUQURBVEEiLCJyZWFkQ29sTWV0YWRhdGFUb2tlbiIsIlJFVFVSTlZBTFVFIiwicmVhZFJldHVyblZhbHVlVG9rZW4iLCJST1ciLCJyZWFkUm93VG9rZW4iLCJOQkNST1ciLCJyZWFkTmJjUm93VG9rZW4iLCJGRUFUVVJFRVhUQUNLIiwicmVhZEZlYXR1cmVFeHRBY2tUb2tlbiIsIkVycm9yIiwicmVzdWx0IiwiZmVhdHVyZUV4dEFja1BhcnNlciIsIk5vdEVub3VnaERhdGFFcnJvciIsInRoZW4iLCJvZmZzZXQiLCJ2YWx1ZSIsIm5iY1Jvd1BhcnNlciIsInJldHVyblZhbHVlUGFyc2VyIiwiY29sTWV0YWRhdGFQYXJzZXIiLCJjb2x1bW5zIiwic3NwaVBhcnNlciIsImZlZEF1dGhJbmZvUGFyc2VyIiwib3JkZXJQYXJzZXIiLCJyZXR1cm5TdGF0dXNQYXJzZXIiLCJsb2dpbkFja1BhcnNlciIsImVudkNoYW5nZVBhcnNlciIsInJvd1BhcnNlciIsImluZm9QYXJzZXIiLCJlcnJvclBhcnNlciIsImRvbmVJblByb2NQYXJzZXIiLCJkb25lUHJvY1BhcnNlciIsImRvbmVQYXJzZXIiLCJjb25zdHJ1Y3RvciIsIlN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJjYWxsIiwiQnVmZmVyIiwiYWxsb2MiLCJuZXh0IiwiZG9uZSIsImNvbmNhdCIsInNsaWNlIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3N0cmVhbS1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERlYnVnIGZyb20gJy4uL2RlYnVnJztcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Nvbm5lY3Rpb24nO1xuXG5pbXBvcnQgeyBUWVBFLCBDb2xNZXRhZGF0YVRva2VuLCBEb25lUHJvY1Rva2VuLCBEb25lVG9rZW4sIERvbmVJblByb2NUb2tlbiwgRXJyb3JNZXNzYWdlVG9rZW4sIEluZm9NZXNzYWdlVG9rZW4sIFJvd1Rva2VuLCB0eXBlIEVudkNoYW5nZVRva2VuLCBMb2dpbkFja1Rva2VuLCBSZXR1cm5TdGF0dXNUb2tlbiwgT3JkZXJUb2tlbiwgRmVkQXV0aEluZm9Ub2tlbiwgU1NQSVRva2VuLCBSZXR1cm5WYWx1ZVRva2VuLCBOQkNSb3dUb2tlbiwgRmVhdHVyZUV4dEFja1Rva2VuLCBUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG5pbXBvcnQgY29sTWV0YWRhdGFQYXJzZXIsIHsgdHlwZSBDb2x1bW5NZXRhZGF0YSB9IGZyb20gJy4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyJztcbmltcG9ydCB7IGRvbmVQYXJzZXIsIGRvbmVJblByb2NQYXJzZXIsIGRvbmVQcm9jUGFyc2VyIH0gZnJvbSAnLi9kb25lLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgZW52Q2hhbmdlUGFyc2VyIGZyb20gJy4vZW52LWNoYW5nZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHsgZXJyb3JQYXJzZXIsIGluZm9QYXJzZXIgfSBmcm9tICcuL2luZm9lcnJvci10b2tlbi1wYXJzZXInO1xuaW1wb3J0IGZlZEF1dGhJbmZvUGFyc2VyIGZyb20gJy4vZmVkYXV0aC1pbmZvLXBhcnNlcic7XG5pbXBvcnQgZmVhdHVyZUV4dEFja1BhcnNlciBmcm9tICcuL2ZlYXR1cmUtZXh0LWFjay1wYXJzZXInO1xuaW1wb3J0IGxvZ2luQWNrUGFyc2VyIGZyb20gJy4vbG9naW5hY2stdG9rZW4tcGFyc2VyJztcbmltcG9ydCBvcmRlclBhcnNlciBmcm9tICcuL29yZGVyLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcmV0dXJuU3RhdHVzUGFyc2VyIGZyb20gJy4vcmV0dXJuc3RhdHVzLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcmV0dXJuVmFsdWVQYXJzZXIgZnJvbSAnLi9yZXR1cm52YWx1ZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHJvd1BhcnNlciBmcm9tICcuL3Jvdy10b2tlbi1wYXJzZXInO1xuaW1wb3J0IG5iY1Jvd1BhcnNlciBmcm9tICcuL25iY3Jvdy10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHNzcGlQYXJzZXIgZnJvbSAnLi9zc3BpLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgdHlwZSBQYXJzZXJPcHRpb25zID0gUGljazxJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zLCAndXNlVVRDJyB8ICdsb3dlckNhc2VHdWlkcycgfCAndGRzVmVyc2lvbicgfCAndXNlQ29sdW1uTmFtZXMnIHwgJ2NvbHVtbk5hbWVSZXBsYWNlcicgfCAnY2FtZWxDYXNlQ29sdW1ucyc+O1xuXG5jbGFzcyBQYXJzZXIge1xuICBkZWJ1ZzogRGVidWc7XG4gIGNvbE1ldGFkYXRhOiBDb2x1bW5NZXRhZGF0YVtdO1xuICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuXG4gIGl0ZXJhdG9yOiBBc3luY0l0ZXJhdG9yPEJ1ZmZlciwgYW55LCB1bmRlZmluZWQ+IHwgSXRlcmF0b3I8QnVmZmVyLCBhbnksIHVuZGVmaW5lZD47XG4gIGJ1ZmZlcjogQnVmZmVyO1xuICBwb3NpdGlvbjogbnVtYmVyO1xuXG4gIHN0YXRpYyBhc3luYyAqcGFyc2VUb2tlbnMoaXRlcmFibGU6IEFzeW5jSXRlcmFibGU8QnVmZmVyPiB8IEl0ZXJhYmxlPEJ1ZmZlcj4sIGRlYnVnOiBEZWJ1Zywgb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY29sTWV0YWRhdGE6IENvbHVtbk1ldGFkYXRhW10gPSBbXSkge1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIoaXRlcmFibGUsIGRlYnVnLCBvcHRpb25zKTtcbiAgICBwYXJzZXIuY29sTWV0YWRhdGEgPSBjb2xNZXRhZGF0YTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBwYXJzZXIud2FpdEZvckNodW5rKCk7XG4gICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgaWYgKHBhcnNlci5wb3NpdGlvbiA9PT0gcGFyc2VyLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChwYXJzZXIuYnVmZmVyLmxlbmd0aCA+PSBwYXJzZXIucG9zaXRpb24gKyAxKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBwYXJzZXIuYnVmZmVyLnJlYWRVSW50OChwYXJzZXIucG9zaXRpb24pO1xuICAgICAgICBwYXJzZXIucG9zaXRpb24gKz0gMTtcblxuICAgICAgICBjb25zdCB0b2tlbiA9IHBhcnNlci5yZWFkVG9rZW4odHlwZSk7XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZWFkVG9rZW4odHlwZTogbnVtYmVyKTogVG9rZW4gfCB1bmRlZmluZWQgfCBQcm9taXNlPFRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFRZUEUuRE9ORToge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5ET05FUFJPQzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZVByb2NUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuRE9ORUlOUFJPQzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZUluUHJvY1Rva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5FUlJPUjoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRXJyb3JUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuSU5GTzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkSW5mb1Rva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5FTlZDSEFOR0U6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZEVudkNoYW5nZVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5MT0dJTkFDSzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkTG9naW5BY2tUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuUkVUVVJOU1RBVFVTOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRSZXR1cm5TdGF0dXNUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuT1JERVI6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZE9yZGVyVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLkZFREFVVEhJTkZPOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRGZWRBdXRoSW5mb1Rva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5TU1BJOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRTU1BJVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBUWVBFLkNPTE1FVEFEQVRBOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRDb2xNZXRhZGF0YVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVFlQRS5SRVRVUk5WQUxVRToge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkUmV0dXJuVmFsdWVUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuUk9XOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRSb3dUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuTkJDUk9XOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWROYmNSb3dUb2tlbigpO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRZUEUuRkVBVFVSRUVYVEFDSzoge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkRmVhdHVyZUV4dEFja1Rva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHR5cGU6ICcgKyB0eXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZWFkRmVhdHVyZUV4dEFja1Rva2VuKCk6IEZlYXR1cmVFeHRBY2tUb2tlbiB8IFByb21pc2U8RmVhdHVyZUV4dEFja1Rva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBmZWF0dXJlRXh0QWNrUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRGZWF0dXJlRXh0QWNrVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgYXN5bmMgcmVhZE5iY1Jvd1Rva2VuKCk6IFByb21pc2U8TkJDUm93VG9rZW4+IHtcbiAgICByZXR1cm4gYXdhaXQgbmJjUm93UGFyc2VyKHRoaXMpO1xuICB9XG5cbiAgYXN5bmMgcmVhZFJldHVyblZhbHVlVG9rZW4oKTogUHJvbWlzZTxSZXR1cm5WYWx1ZVRva2VuPiB7XG4gICAgcmV0dXJuIGF3YWl0IHJldHVyblZhbHVlUGFyc2VyKHRoaXMpO1xuICB9XG5cbiAgYXN5bmMgcmVhZENvbE1ldGFkYXRhVG9rZW4oKTogUHJvbWlzZTxDb2xNZXRhZGF0YVRva2VuPiB7XG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCBjb2xNZXRhZGF0YVBhcnNlcih0aGlzKTtcbiAgICB0aGlzLmNvbE1ldGFkYXRhID0gdG9rZW4uY29sdW1ucztcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICByZWFkU1NQSVRva2VuKCk6IFNTUElUb2tlbiB8IFByb21pc2U8U1NQSVRva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBzc3BpUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRTU1BJVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZEZlZEF1dGhJbmZvVG9rZW4oKTogRmVkQXV0aEluZm9Ub2tlbiB8IFByb21pc2U8RmVkQXV0aEluZm9Ub2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZmVkQXV0aEluZm9QYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZEZlZEF1dGhJbmZvVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZE9yZGVyVG9rZW4oKTogT3JkZXJUb2tlbiB8IFByb21pc2U8T3JkZXJUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gb3JkZXJQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZE9yZGVyVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZFJldHVyblN0YXR1c1Rva2VuKCk6IFJldHVyblN0YXR1c1Rva2VuIHwgUHJvbWlzZTxSZXR1cm5TdGF0dXNUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gcmV0dXJuU3RhdHVzUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRSZXR1cm5TdGF0dXNUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICByZWFkTG9naW5BY2tUb2tlbigpOiBMb2dpbkFja1Rva2VuIHwgUHJvbWlzZTxMb2dpbkFja1Rva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBsb2dpbkFja1BhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkTG9naW5BY2tUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICByZWFkRW52Q2hhbmdlVG9rZW4oKTogRW52Q2hhbmdlVG9rZW4gfCB1bmRlZmluZWQgfCBQcm9taXNlPEVudkNoYW5nZVRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBlbnZDaGFuZ2VQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZEVudkNoYW5nZVRva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIHJlYWRSb3dUb2tlbigpOiBSb3dUb2tlbiB8IFByb21pc2U8Um93VG9rZW4+IHtcbiAgICByZXR1cm4gcm93UGFyc2VyKHRoaXMpO1xuICB9XG5cbiAgcmVhZEluZm9Ub2tlbigpOiBJbmZvTWVzc2FnZVRva2VuIHwgUHJvbWlzZTxJbmZvTWVzc2FnZVRva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBpbmZvUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRJbmZvVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZEVycm9yVG9rZW4oKTogRXJyb3JNZXNzYWdlVG9rZW4gfCBQcm9taXNlPEVycm9yTWVzc2FnZVRva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBlcnJvclBhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkRXJyb3JUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHRoaXMucG9zaXRpb24gPSByZXN1bHQub2Zmc2V0O1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cblxuICByZWFkRG9uZUluUHJvY1Rva2VuKCk6IERvbmVJblByb2NUb2tlbiB8IFByb21pc2U8RG9uZUluUHJvY1Rva2VuPiB7XG4gICAgbGV0IHJlc3VsdDtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBkb25lSW5Qcm9jUGFyc2VyKHRoaXMuYnVmZmVyLCB0aGlzLnBvc2l0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90RW5vdWdoRGF0YUVycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JDaHVuaygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlYWREb25lSW5Qcm9jVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZERvbmVQcm9jVG9rZW4oKTogRG9uZVByb2NUb2tlbiB8IFByb21pc2U8RG9uZVByb2NUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZG9uZVByb2NQYXJzZXIodGhpcy5idWZmZXIsIHRoaXMucG9zaXRpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckNodW5rKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVhZERvbmVQcm9jVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gcmVzdWx0Lm9mZnNldDtcbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG5cbiAgcmVhZERvbmVUb2tlbigpOiBEb25lVG9rZW4gfCBQcm9taXNlPERvbmVUb2tlbj4ge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gZG9uZVBhcnNlcih0aGlzLmJ1ZmZlciwgdGhpcy5wb3NpdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEVub3VnaERhdGFFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ2h1bmsoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkRG9uZVRva2VuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGl0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPEJ1ZmZlcj4gfCBJdGVyYWJsZTxCdWZmZXI+LCBkZWJ1ZzogRGVidWcsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpIHtcbiAgICB0aGlzLmRlYnVnID0gZGVidWc7XG4gICAgdGhpcy5jb2xNZXRhZGF0YSA9IFtdO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLml0ZXJhdG9yID0gKChpdGVyYWJsZSBhcyBBc3luY0l0ZXJhYmxlPEJ1ZmZlcj4pW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSB8fCAoaXRlcmFibGUgYXMgSXRlcmFibGU8QnVmZmVyPilbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChpdGVyYWJsZSk7XG5cbiAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygwKTtcbiAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JDaHVuaygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLml0ZXJhdG9yLm5leHQoKTtcbiAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlbmQgb2YgZGF0YScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSB0aGlzLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYnVmZmVyID0gcmVzdWx0LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoW3RoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zaXRpb24pLCByZXN1bHQudmFsdWVdKTtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IFBhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsdUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxxQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUsscUJBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGtCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxvQkFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-parser.js","names":["_token","require","_colmetadataTokenParser","_interopRequireDefault","_doneTokenParser","_envChangeTokenParser","_infoerrorTokenParser","_fedauthInfoParser","_featureExtAckParser","_loginackTokenParser","_orderTokenParser","_returnstatusTokenParser","_returnvalueTokenParser","_rowTokenParser","_nbcrowTokenParser","_sspiTokenParser","_helpers","e","__esModule","default","Parser","debug","colMetadata","options","iterator","buffer","position","parseTokens","iterable","parser","waitForChunk","err","length","type","readUInt8","token","readToken","undefined","TYPE","DONE","readDoneToken","DONEPROC","readDoneProcToken","DONEINPROC","readDoneInProcToken","ERROR","readErrorToken","INFO","readInfoToken","ENVCHANGE","readEnvChangeToken","LOGINACK","readLoginAckToken","RETURNSTATUS","readReturnStatusToken","ORDER","readOrderToken","FEDAUTHINFO","readFedAuthInfoToken","SSPI","readSSPIToken","COLMETADATA","readColMetadataToken","RETURNVALUE","readReturnValueToken","ROW","readRowToken","NBCROW","readNbcRowToken","FEATUREEXTACK","readFeatureExtAckToken","Error","result","featureExtAckParser","NotEnoughDataError","then","offset","value","nbcRowParser","returnValueParser","colMetadataParser","columns","sspiParser","fedAuthInfoParser","orderParser","returnStatusParser","loginAckParser","envChangeParser","rowParser","infoParser","errorParser","doneInProcParser","doneProcParser","doneParser","constructor","Symbol","asyncIterator","call","Buffer","alloc","next","done","concat","slice","_default","exports","module"],"sources":["../../src/token/stream-parser.ts"],"sourcesContent":["import Debug from '../debug';\nimport { type InternalConnectionOptions } from '../connection';\n\nimport { TYPE, ColMetadataToken, DoneProcToken, DoneToken, DoneInProcToken, ErrorMessageToken, InfoMessageToken, RowToken, type EnvChangeToken, LoginAckToken, ReturnStatusToken, OrderToken, FedAuthInfoToken, SSPIToken, ReturnValueToken, NBCRowToken, FeatureExtAckToken, Token } from './token';\n\nimport colMetadataParser, { type ColumnMetadata } from './colmetadata-token-parser';\nimport { doneParser, doneInProcParser, doneProcParser } from './done-token-parser';\nimport envChangeParser from './env-change-token-parser';\nimport { errorParser, infoParser } from './infoerror-token-parser';\nimport fedAuthInfoParser from './fedauth-info-parser';\nimport featureExtAckParser from './feature-ext-ack-parser';\nimport loginAckParser from './loginack-token-parser';\nimport orderParser from './order-token-parser';\nimport returnStatusParser from './returnstatus-token-parser';\nimport returnValueParser from './returnvalue-token-parser';\nimport rowParser from './row-token-parser';\nimport nbcRowParser from './nbcrow-token-parser';\nimport sspiParser from './sspi-token-parser';\nimport { NotEnoughDataError } from './helpers';\n\nexport type ParserOptions = Pick<InternalConnectionOptions, 'useUTC' | 'lowerCaseGuids' | 'tdsVersion' | 'useColumnNames' | 'columnNameReplacer' | 'camelCaseColumns'>;\n\nclass Parser {\n debug: Debug;\n colMetadata: ColumnMetadata[];\n options: ParserOptions;\n\n iterator: AsyncIterator<Buffer, any, undefined> | Iterator<Buffer, any, undefined>;\n buffer: Buffer;\n position: number;\n\n static async *parseTokens(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions, colMetadata: ColumnMetadata[] = []) {\n const parser = new Parser(iterable, debug, options);\n parser.colMetadata = colMetadata;\n\n while (true) {\n try {\n await parser.waitForChunk();\n } catch (err: unknown) {\n if (parser.position === parser.buffer.length) {\n return;\n }\n\n throw err;\n }\n\n while (parser.buffer.length >= parser.position + 1) {\n const type = parser.buffer.readUInt8(parser.position);\n parser.position += 1;\n\n const token = parser.readToken(type);\n if (token !== undefined) {\n yield token;\n }\n }\n }\n }\n\n readToken(type: number): Token | undefined | Promise<Token | undefined> {\n switch (type) {\n case TYPE.DONE: {\n return this.readDoneToken();\n }\n\n case TYPE.DONEPROC: {\n return this.readDoneProcToken();\n }\n\n case TYPE.DONEINPROC: {\n return this.readDoneInProcToken();\n }\n\n case TYPE.ERROR: {\n return this.readErrorToken();\n }\n\n case TYPE.INFO: {\n return this.readInfoToken();\n }\n\n case TYPE.ENVCHANGE: {\n return this.readEnvChangeToken();\n }\n\n case TYPE.LOGINACK: {\n return this.readLoginAckToken();\n }\n\n case TYPE.RETURNSTATUS: {\n return this.readReturnStatusToken();\n }\n\n case TYPE.ORDER: {\n return this.readOrderToken();\n }\n\n case TYPE.FEDAUTHINFO: {\n return this.readFedAuthInfoToken();\n }\n\n case TYPE.SSPI: {\n return this.readSSPIToken();\n }\n\n case TYPE.COLMETADATA: {\n return this.readColMetadataToken();\n }\n\n case TYPE.RETURNVALUE: {\n return this.readReturnValueToken();\n }\n\n case TYPE.ROW: {\n return this.readRowToken();\n }\n\n case TYPE.NBCROW: {\n return this.readNbcRowToken();\n }\n\n case TYPE.FEATUREEXTACK: {\n return this.readFeatureExtAckToken();\n }\n\n default: {\n throw new Error('Unknown type: ' + type);\n }\n }\n }\n\n readFeatureExtAckToken(): FeatureExtAckToken | Promise<FeatureExtAckToken> {\n let result;\n\n try {\n result = featureExtAckParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readFeatureExtAckToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n async readNbcRowToken(): Promise<NBCRowToken> {\n return await nbcRowParser(this);\n }\n\n async readReturnValueToken(): Promise<ReturnValueToken> {\n return await returnValueParser(this);\n }\n\n async readColMetadataToken(): Promise<ColMetadataToken> {\n const token = await colMetadataParser(this);\n this.colMetadata = token.columns;\n return token;\n }\n\n readSSPIToken(): SSPIToken | Promise<SSPIToken> {\n let result;\n\n try {\n result = sspiParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readSSPIToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readFedAuthInfoToken(): FedAuthInfoToken | Promise<FedAuthInfoToken> {\n let result;\n\n try {\n result = fedAuthInfoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readFedAuthInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readOrderToken(): OrderToken | Promise<OrderToken> {\n let result;\n\n try {\n result = orderParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readOrderToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readReturnStatusToken(): ReturnStatusToken | Promise<ReturnStatusToken> {\n let result;\n\n try {\n result = returnStatusParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readReturnStatusToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readLoginAckToken(): LoginAckToken | Promise<LoginAckToken> {\n let result;\n\n try {\n result = loginAckParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readLoginAckToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readEnvChangeToken(): EnvChangeToken | undefined | Promise<EnvChangeToken | undefined> {\n let result;\n\n try {\n result = envChangeParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readEnvChangeToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readRowToken(): RowToken | Promise<RowToken> {\n return rowParser(this);\n }\n\n readInfoToken(): InfoMessageToken | Promise<InfoMessageToken> {\n let result;\n\n try {\n result = infoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readErrorToken(): ErrorMessageToken | Promise<ErrorMessageToken> {\n let result;\n\n try {\n result = errorParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readErrorToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneInProcToken(): DoneInProcToken | Promise<DoneInProcToken> {\n let result;\n\n try {\n result = doneInProcParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneInProcToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneProcToken(): DoneProcToken | Promise<DoneProcToken> {\n let result;\n\n try {\n result = doneProcParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneProcToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneToken(): DoneToken | Promise<DoneToken> {\n let result;\n\n try {\n result = doneParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n constructor(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions) {\n this.debug = debug;\n this.colMetadata = [];\n this.options = options;\n\n this.iterator = ((iterable as AsyncIterable<Buffer>)[Symbol.asyncIterator] || (iterable as Iterable<Buffer>)[Symbol.iterator]).call(iterable);\n\n this.buffer = Buffer.alloc(0);\n this.position = 0;\n }\n\n async waitForChunk() {\n const result = await this.iterator.next();\n if (result.done) {\n throw new Error('unexpected end of data');\n }\n\n if (this.position === this.buffer.length) {\n this.buffer = result.value;\n } else {\n this.buffer = Buffer.concat([this.buffer.slice(this.position), result.value]);\n }\n\n this.position = 0;\n }\n}\n\nexport default Parser;\nmodule.exports = Parser;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { EventEmitter } from 'events';
2
+ import { type ParserOptions } from './stream-parser';
3
+ import Debug from '../debug';
4
+ import { Readable } from 'stream';
5
+ import Message from '../message';
6
+ import { TokenHandler } from './handler';
7
+ export declare class Parser extends EventEmitter {
8
+ debug: Debug;
9
+ options: ParserOptions;
10
+ parser: Readable;
11
+ constructor(message: Message, debug: Debug, handler: TokenHandler, options: ParserOptions);
12
+ on: (((event: 'end', listener: () => void) => this) & ((event: string | symbol, listener: (...args: any[]) => void) => this));
13
+ pause(): Readable;
14
+ resume(): Readable;
15
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Parser = void 0;
7
+ var _events = require("events");
8
+ var _streamParser = _interopRequireDefault(require("./stream-parser"));
9
+ var _stream = require("stream");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ class Parser extends _events.EventEmitter {
12
+ constructor(message, debug, handler, options) {
13
+ super();
14
+ this.debug = debug;
15
+ this.options = options;
16
+ this.parser = _stream.Readable.from(_streamParser.default.parseTokens(message, this.debug, this.options));
17
+ this.parser.on('data', token => {
18
+ debug.token(token);
19
+ handler[token.handlerName](token);
20
+ });
21
+ this.parser.on('drain', () => {
22
+ this.emit('drain');
23
+ });
24
+ this.parser.on('end', () => {
25
+ this.emit('end');
26
+ });
27
+ }
28
+ pause() {
29
+ return this.parser.pause();
30
+ }
31
+ resume() {
32
+ return this.parser.resume();
33
+ }
34
+ }
35
+ exports.Parser = Parser;
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsIl9zdHJlYW1QYXJzZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3N0cmVhbSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlBhcnNlciIsIkV2ZW50RW1pdHRlciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsImRlYnVnIiwiaGFuZGxlciIsIm9wdGlvbnMiLCJwYXJzZXIiLCJSZWFkYWJsZSIsImZyb20iLCJTdHJlYW1QYXJzZXIiLCJwYXJzZVRva2VucyIsIm9uIiwidG9rZW4iLCJoYW5kbGVyTmFtZSIsImVtaXQiLCJwYXVzZSIsInJlc3VtZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vdG9rZW4tc3RyZWFtLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IFN0cmVhbVBhcnNlciwgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuaW1wb3J0IERlYnVnIGZyb20gJy4uL2RlYnVnJztcbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgTWVzc2FnZSBmcm9tICcuLi9tZXNzYWdlJztcbmltcG9ydCB7IFRva2VuSGFuZGxlciB9IGZyb20gJy4vaGFuZGxlcic7XG5cbmV4cG9ydCBjbGFzcyBQYXJzZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBkZWNsYXJlIGRlYnVnOiBEZWJ1ZztcbiAgZGVjbGFyZSBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICBkZWNsYXJlIHBhcnNlcjogUmVhZGFibGU7XG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogTWVzc2FnZSwgZGVidWc6IERlYnVnLCBoYW5kbGVyOiBUb2tlbkhhbmRsZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5kZWJ1ZyA9IGRlYnVnO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLnBhcnNlciA9IFJlYWRhYmxlLmZyb20oU3RyZWFtUGFyc2VyLnBhcnNlVG9rZW5zKG1lc3NhZ2UsIHRoaXMuZGVidWcsIHRoaXMub3B0aW9ucykpO1xuICAgIHRoaXMucGFyc2VyLm9uKCdkYXRhJywgKHRva2VuOiBUb2tlbikgPT4ge1xuICAgICAgZGVidWcudG9rZW4odG9rZW4pO1xuICAgICAgaGFuZGxlclt0b2tlbi5oYW5kbGVyTmFtZSBhcyBrZXlvZiBUb2tlbkhhbmRsZXJdKHRva2VuIGFzIGFueSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnBhcnNlci5vbignZHJhaW4nLCAoKSA9PiB7XG4gICAgICB0aGlzLmVtaXQoJ2RyYWluJyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnBhcnNlci5vbignZW5kJywgKCkgPT4ge1xuICAgICAgdGhpcy5lbWl0KCdlbmQnKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlY2xhcmUgb246IChcbiAgICAoKGV2ZW50OiAnZW5kJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpID0+IHRoaXMpICZcbiAgICAoKGV2ZW50OiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpID0+IHRoaXMpXG4gICk7XG5cbiAgcGF1c2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLnBhdXNlKCk7XG4gIH1cblxuICByZXN1bWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLnJlc3VtZSgpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUFrQyxTQUFBRSx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUkzQixNQUFNRyxNQUFNLFNBQVNDLG9CQUFZLENBQUM7RUFLdkNDLFdBQVdBLENBQUNDLE9BQWdCLEVBQUVDLEtBQVksRUFBRUMsT0FBcUIsRUFBRUMsT0FBc0IsRUFBRTtJQUN6RixLQUFLLENBQUMsQ0FBQztJQUVQLElBQUksQ0FBQ0YsS0FBSyxHQUFHQSxLQUFLO0lBQ2xCLElBQUksQ0FBQ0UsT0FBTyxHQUFHQSxPQUFPO0lBRXRCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQyxnQkFBUSxDQUFDQyxJQUFJLENBQUNDLHFCQUFZLENBQUNDLFdBQVcsQ0FBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQ0MsS0FBSyxFQUFFLElBQUksQ0FBQ0UsT0FBTyxDQUFDLENBQUM7SUFDeEYsSUFBSSxDQUFDQyxNQUFNLENBQUNLLEVBQUUsQ0FBQyxNQUFNLEVBQUdDLEtBQVksSUFBSztNQUN2Q1QsS0FBSyxDQUFDUyxLQUFLLENBQUNBLEtBQUssQ0FBQztNQUNsQlIsT0FBTyxDQUFDUSxLQUFLLENBQUNDLFdBQVcsQ0FBdUIsQ0FBQ0QsS0FBWSxDQUFDO0lBQ2hFLENBQUMsQ0FBQztJQUVGLElBQUksQ0FBQ04sTUFBTSxDQUFDSyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU07TUFDNUIsSUFBSSxDQUFDRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztJQUVGLElBQUksQ0FBQ1IsTUFBTSxDQUFDSyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU07TUFDMUIsSUFBSSxDQUFDRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztFQUNKO0VBT0FDLEtBQUtBLENBQUEsRUFBRztJQUNOLE9BQU8sSUFBSSxDQUFDVCxNQUFNLENBQUNTLEtBQUssQ0FBQyxDQUFDO0VBQzVCO0VBRUFDLE1BQU1BLENBQUEsRUFBRztJQUNQLE9BQU8sSUFBSSxDQUFDVixNQUFNLENBQUNVLE1BQU0sQ0FBQyxDQUFDO0VBQzdCO0FBQ0Y7QUFBQ0MsT0FBQSxDQUFBbEIsTUFBQSxHQUFBQSxNQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-stream-parser.js","names":["_events","require","_streamParser","_interopRequireDefault","_stream","e","__esModule","default","Parser","EventEmitter","constructor","message","debug","handler","options","parser","Readable","from","StreamParser","parseTokens","on","token","handlerName","emit","pause","resume","exports"],"sources":["../../src/token/token-stream-parser.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport StreamParser, { type ParserOptions } from './stream-parser';\nimport Debug from '../debug';\nimport { Token } from './token';\nimport { Readable } from 'stream';\nimport Message from '../message';\nimport { TokenHandler } from './handler';\n\nexport class Parser extends EventEmitter {\n declare debug: Debug;\n declare options: ParserOptions;\n declare parser: Readable;\n\n constructor(message: Message, debug: Debug, handler: TokenHandler, options: ParserOptions) {\n super();\n\n this.debug = debug;\n this.options = options;\n\n this.parser = Readable.from(StreamParser.parseTokens(message, this.debug, this.options));\n this.parser.on('data', (token: Token) => {\n debug.token(token);\n handler[token.handlerName as keyof TokenHandler](token as any);\n });\n\n this.parser.on('drain', () => {\n this.emit('drain');\n });\n\n this.parser.on('end', () => {\n this.emit('end');\n });\n }\n\n declare on: (\n ((event: 'end', listener: () => void) => this) &\n ((event: string | symbol, listener: (...args: any[]) => void) => this)\n );\n\n pause() {\n return this.parser.pause();\n }\n\n resume() {\n return this.parser.resume();\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,OAAA,GAAAH,OAAA;AAAkC,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAI3B,MAAMG,MAAM,SAASC,oBAAY,CAAC;EAKvCC,WAAWA,CAACC,OAAgB,EAAEC,KAAY,EAAEC,OAAqB,EAAEC,OAAsB,EAAE;IACzF,KAAK,CAAC,CAAC;IAEP,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,OAAO,GAAGA,OAAO;IAEtB,IAAI,CAACC,MAAM,GAAGC,gBAAQ,CAACC,IAAI,CAACC,qBAAY,CAACC,WAAW,CAACR,OAAO,EAAE,IAAI,CAACC,KAAK,EAAE,IAAI,CAACE,OAAO,CAAC,CAAC;IACxF,IAAI,CAACC,MAAM,CAACK,EAAE,CAAC,MAAM,EAAGC,KAAY,IAAK;MACvCT,KAAK,CAACS,KAAK,CAACA,KAAK,CAAC;MAClBR,OAAO,CAACQ,KAAK,CAACC,WAAW,CAAuB,CAACD,KAAY,CAAC;IAChE,CAAC,CAAC;IAEF,IAAI,CAACN,MAAM,CAACK,EAAE,CAAC,OAAO,EAAE,MAAM;MAC5B,IAAI,CAACG,IAAI,CAAC,OAAO,CAAC;IACpB,CAAC,CAAC;IAEF,IAAI,CAACR,MAAM,CAACK,EAAE,CAAC,KAAK,EAAE,MAAM;MAC1B,IAAI,CAACG,IAAI,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC;EACJ;EAOAC,KAAKA,CAAA,EAAG;IACN,OAAO,IAAI,CAACT,MAAM,CAACS,KAAK,CAAC,CAAC;EAC5B;EAEAC,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAACV,MAAM,CAACU,MAAM,CAAC,CAAC;EAC7B;AACF;AAACC,OAAA,CAAAlB,MAAA,GAAAA,MAAA","ignoreList":[]}