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,17 @@
1
+ export declare class ConnectionError extends Error {
2
+ code: string | undefined;
3
+ isTransient: boolean | undefined;
4
+ constructor(message: string, code?: string, options?: ErrorOptions);
5
+ }
6
+ export declare class RequestError extends Error {
7
+ code: string | undefined;
8
+ number: number | undefined;
9
+ state: number | undefined;
10
+ class: number | undefined;
11
+ serverName: string | undefined;
12
+ procName: string | undefined;
13
+ lineNumber: number | undefined;
14
+ constructor(message: string, code?: string, options?: ErrorOptions);
15
+ }
16
+ export declare class InputError extends TypeError {
17
+ }
package/lib/errors.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RequestError = exports.InputError = exports.ConnectionError = void 0;
7
+ class ConnectionError extends Error {
8
+ constructor(message, code, options) {
9
+ super(message, options);
10
+ this.code = code;
11
+ }
12
+ }
13
+ exports.ConnectionError = ConnectionError;
14
+ class RequestError extends Error {
15
+ constructor(message, code, options) {
16
+ super(message, options);
17
+ this.code = code;
18
+ }
19
+ }
20
+ exports.RequestError = RequestError;
21
+ class InputError extends TypeError {}
22
+ exports.InputError = InputError;
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb25uZWN0aW9uRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsImNvZGUiLCJvcHRpb25zIiwiZXhwb3J0cyIsIlJlcXVlc3RFcnJvciIsIklucHV0RXJyb3IiLCJUeXBlRXJyb3IiXSwic291cmNlcyI6WyIuLi9zcmMvZXJyb3JzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb25uZWN0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGRlY2xhcmUgY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGRlY2xhcmUgaXNUcmFuc2llbnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBjb2RlPzogc3RyaW5nLCBvcHRpb25zPzogRXJyb3JPcHRpb25zKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgb3B0aW9ucyk7XG5cbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGRlY2xhcmUgY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGRlY2xhcmUgbnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGRlY2xhcmUgc3RhdGU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjbGFzczogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBkZWNsYXJlIHNlcnZlck5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBwcm9jTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkZWNsYXJlIGxpbmVOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGNvZGU/OiBzdHJpbmcsIG9wdGlvbnM/OiBFcnJvck9wdGlvbnMpIHtcbiAgICBzdXBlcihtZXNzYWdlLCBvcHRpb25zKTtcblxuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIElucHV0RXJyb3IgZXh0ZW5kcyBUeXBlRXJyb3Ige31cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU8sTUFBTUEsZUFBZSxTQUFTQyxLQUFLLENBQUM7RUFLekNDLFdBQVdBLENBQUNDLE9BQWUsRUFBRUMsSUFBYSxFQUFFQyxPQUFzQixFQUFFO0lBQ2xFLEtBQUssQ0FBQ0YsT0FBTyxFQUFFRSxPQUFPLENBQUM7SUFFdkIsSUFBSSxDQUFDRCxJQUFJLEdBQUdBLElBQUk7RUFDbEI7QUFDRjtBQUFDRSxPQUFBLENBQUFOLGVBQUEsR0FBQUEsZUFBQTtBQUVNLE1BQU1PLFlBQVksU0FBU04sS0FBSyxDQUFDO0VBVXRDQyxXQUFXQSxDQUFDQyxPQUFlLEVBQUVDLElBQWEsRUFBRUMsT0FBc0IsRUFBRTtJQUNsRSxLQUFLLENBQUNGLE9BQU8sRUFBRUUsT0FBTyxDQUFDO0lBRXZCLElBQUksQ0FBQ0QsSUFBSSxHQUFHQSxJQUFJO0VBQ2xCO0FBQ0Y7QUFBQ0UsT0FBQSxDQUFBQyxZQUFBLEdBQUFBLFlBQUE7QUFFTSxNQUFNQyxVQUFVLFNBQVNDLFNBQVMsQ0FBQztBQUFFSCxPQUFBLENBQUFFLFVBQUEsR0FBQUEsVUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","names":["ConnectionError","Error","constructor","message","code","options","exports","RequestError","InputError","TypeError"],"sources":["../src/errors.ts"],"sourcesContent":["export class ConnectionError extends Error {\n declare code: string | undefined;\n\n declare isTransient: boolean | undefined;\n\n constructor(message: string, code?: string, options?: ErrorOptions) {\n super(message, options);\n\n this.code = code;\n }\n}\n\nexport class RequestError extends Error {\n declare code: string | undefined;\n\n declare number: number | undefined;\n declare state: number | undefined;\n declare class: number | undefined;\n declare serverName: string | undefined;\n declare procName: string | undefined;\n declare lineNumber: number | undefined;\n\n constructor(message: string, code?: string, options?: ErrorOptions) {\n super(message, options);\n\n this.code = code;\n }\n}\n\nexport class InputError extends TypeError {}\n"],"mappings":";;;;;;AAAO,MAAMA,eAAe,SAASC,KAAK,CAAC;EAKzCC,WAAWA,CAACC,OAAe,EAAEC,IAAa,EAAEC,OAAsB,EAAE;IAClE,KAAK,CAACF,OAAO,EAAEE,OAAO,CAAC;IAEvB,IAAI,CAACD,IAAI,GAAGA,IAAI;EAClB;AACF;AAACE,OAAA,CAAAN,eAAA,GAAAA,eAAA;AAEM,MAAMO,YAAY,SAASN,KAAK,CAAC;EAUtCC,WAAWA,CAACC,OAAe,EAAEC,IAAa,EAAEC,OAAsB,EAAE;IAClE,KAAK,CAACF,OAAO,EAAEE,OAAO,CAAC;IAEvB,IAAI,CAACD,IAAI,GAAGA,IAAI;EAClB;AACF;AAACE,OAAA,CAAAC,YAAA,GAAAA,YAAA;AAEM,MAAMC,UAAU,SAASC,SAAS,CAAC;AAAEH,OAAA,CAAAE,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export declare function bufferToUpperCaseGuid(buffer: Buffer): string;
2
+ export declare function bufferToLowerCaseGuid(buffer: Buffer): string;
3
+ export declare function guidToArray(guid: string): number[];
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.bufferToLowerCaseGuid = bufferToLowerCaseGuid;
7
+ exports.bufferToUpperCaseGuid = bufferToUpperCaseGuid;
8
+ exports.guidToArray = guidToArray;
9
+ const UPPER_CASE_MAP = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0A', '0B', '0C', '0D', '0E', '0F', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1A', '1B', '1C', '1D', '1E', '1F', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2A', '2B', '2C', '2D', '2E', '2F', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3A', '3B', '3C', '3D', '3E', '3F', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4A', '4B', '4C', '4D', '4E', '4F', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5A', '5B', '5C', '5D', '5E', '5F', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6A', '6B', '6C', '6D', '6E', '6F', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7A', '7B', '7C', '7D', '7E', '7F', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8A', '8B', '8C', '8D', '8E', '8F', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9A', '9B', '9C', '9D', '9E', '9F', 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'DA', 'DB', 'DC', 'DD', 'DE', 'DF', 'E0', 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9', 'EA', 'EB', 'EC', 'ED', 'EE', 'EF', 'F0', 'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'FA', 'FB', 'FC', 'FD', 'FE', 'FF'];
10
+ const LOWER_CASE_MAP = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff'];
11
+ function bufferToUpperCaseGuid(buffer) {
12
+ return UPPER_CASE_MAP[buffer[3]] + UPPER_CASE_MAP[buffer[2]] + UPPER_CASE_MAP[buffer[1]] + UPPER_CASE_MAP[buffer[0]] + '-' + UPPER_CASE_MAP[buffer[5]] + UPPER_CASE_MAP[buffer[4]] + '-' + UPPER_CASE_MAP[buffer[7]] + UPPER_CASE_MAP[buffer[6]] + '-' + UPPER_CASE_MAP[buffer[8]] + UPPER_CASE_MAP[buffer[9]] + '-' + UPPER_CASE_MAP[buffer[10]] + UPPER_CASE_MAP[buffer[11]] + UPPER_CASE_MAP[buffer[12]] + UPPER_CASE_MAP[buffer[13]] + UPPER_CASE_MAP[buffer[14]] + UPPER_CASE_MAP[buffer[15]];
13
+ }
14
+ function bufferToLowerCaseGuid(buffer) {
15
+ return LOWER_CASE_MAP[buffer[3]] + LOWER_CASE_MAP[buffer[2]] + LOWER_CASE_MAP[buffer[1]] + LOWER_CASE_MAP[buffer[0]] + '-' + LOWER_CASE_MAP[buffer[5]] + LOWER_CASE_MAP[buffer[4]] + '-' + LOWER_CASE_MAP[buffer[7]] + LOWER_CASE_MAP[buffer[6]] + '-' + LOWER_CASE_MAP[buffer[8]] + LOWER_CASE_MAP[buffer[9]] + '-' + LOWER_CASE_MAP[buffer[10]] + LOWER_CASE_MAP[buffer[11]] + LOWER_CASE_MAP[buffer[12]] + LOWER_CASE_MAP[buffer[13]] + LOWER_CASE_MAP[buffer[14]] + LOWER_CASE_MAP[buffer[15]];
16
+ }
17
+ const CHARCODEMAP = {};
18
+ const hexDigits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F'].map(d => d.charCodeAt(0));
19
+ for (let i = 0; i < hexDigits.length; i++) {
20
+ const map = CHARCODEMAP[hexDigits[i]] = {};
21
+ for (let j = 0; j < hexDigits.length; j++) {
22
+ const hex = String.fromCharCode(hexDigits[i], hexDigits[j]);
23
+ const value = parseInt(hex, 16);
24
+ map[hexDigits[j]] = value;
25
+ }
26
+ }
27
+ function guidToArray(guid) {
28
+ return [CHARCODEMAP[guid.charCodeAt(6)][guid.charCodeAt(7)], CHARCODEMAP[guid.charCodeAt(4)][guid.charCodeAt(5)], CHARCODEMAP[guid.charCodeAt(2)][guid.charCodeAt(3)], CHARCODEMAP[guid.charCodeAt(0)][guid.charCodeAt(1)], CHARCODEMAP[guid.charCodeAt(11)][guid.charCodeAt(12)], CHARCODEMAP[guid.charCodeAt(9)][guid.charCodeAt(10)], CHARCODEMAP[guid.charCodeAt(16)][guid.charCodeAt(17)], CHARCODEMAP[guid.charCodeAt(14)][guid.charCodeAt(15)], CHARCODEMAP[guid.charCodeAt(19)][guid.charCodeAt(20)], CHARCODEMAP[guid.charCodeAt(21)][guid.charCodeAt(22)], CHARCODEMAP[guid.charCodeAt(24)][guid.charCodeAt(25)], CHARCODEMAP[guid.charCodeAt(26)][guid.charCodeAt(27)], CHARCODEMAP[guid.charCodeAt(28)][guid.charCodeAt(29)], CHARCODEMAP[guid.charCodeAt(30)][guid.charCodeAt(31)], CHARCODEMAP[guid.charCodeAt(32)][guid.charCodeAt(33)], CHARCODEMAP[guid.charCodeAt(34)][guid.charCodeAt(35)]];
29
+ }
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVUFBFUl9DQVNFX01BUCIsIkxPV0VSX0NBU0VfTUFQIiwiYnVmZmVyVG9VcHBlckNhc2VHdWlkIiwiYnVmZmVyIiwiYnVmZmVyVG9Mb3dlckNhc2VHdWlkIiwiQ0hBUkNPREVNQVAiLCJoZXhEaWdpdHMiLCJtYXAiLCJkIiwiY2hhckNvZGVBdCIsImkiLCJsZW5ndGgiLCJqIiwiaGV4IiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwidmFsdWUiLCJwYXJzZUludCIsImd1aWRUb0FycmF5IiwiZ3VpZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9ndWlkLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBVUFBFUl9DQVNFX01BUCA9IFtcbiAgJzAwJywgJzAxJywgJzAyJywgJzAzJywgJzA0JywgJzA1JywgJzA2JywgJzA3JywgJzA4JywgJzA5JywgJzBBJywgJzBCJywgJzBDJywgJzBEJywgJzBFJywgJzBGJyxcbiAgJzEwJywgJzExJywgJzEyJywgJzEzJywgJzE0JywgJzE1JywgJzE2JywgJzE3JywgJzE4JywgJzE5JywgJzFBJywgJzFCJywgJzFDJywgJzFEJywgJzFFJywgJzFGJyxcbiAgJzIwJywgJzIxJywgJzIyJywgJzIzJywgJzI0JywgJzI1JywgJzI2JywgJzI3JywgJzI4JywgJzI5JywgJzJBJywgJzJCJywgJzJDJywgJzJEJywgJzJFJywgJzJGJyxcbiAgJzMwJywgJzMxJywgJzMyJywgJzMzJywgJzM0JywgJzM1JywgJzM2JywgJzM3JywgJzM4JywgJzM5JywgJzNBJywgJzNCJywgJzNDJywgJzNEJywgJzNFJywgJzNGJyxcbiAgJzQwJywgJzQxJywgJzQyJywgJzQzJywgJzQ0JywgJzQ1JywgJzQ2JywgJzQ3JywgJzQ4JywgJzQ5JywgJzRBJywgJzRCJywgJzRDJywgJzREJywgJzRFJywgJzRGJyxcbiAgJzUwJywgJzUxJywgJzUyJywgJzUzJywgJzU0JywgJzU1JywgJzU2JywgJzU3JywgJzU4JywgJzU5JywgJzVBJywgJzVCJywgJzVDJywgJzVEJywgJzVFJywgJzVGJyxcbiAgJzYwJywgJzYxJywgJzYyJywgJzYzJywgJzY0JywgJzY1JywgJzY2JywgJzY3JywgJzY4JywgJzY5JywgJzZBJywgJzZCJywgJzZDJywgJzZEJywgJzZFJywgJzZGJyxcbiAgJzcwJywgJzcxJywgJzcyJywgJzczJywgJzc0JywgJzc1JywgJzc2JywgJzc3JywgJzc4JywgJzc5JywgJzdBJywgJzdCJywgJzdDJywgJzdEJywgJzdFJywgJzdGJyxcbiAgJzgwJywgJzgxJywgJzgyJywgJzgzJywgJzg0JywgJzg1JywgJzg2JywgJzg3JywgJzg4JywgJzg5JywgJzhBJywgJzhCJywgJzhDJywgJzhEJywgJzhFJywgJzhGJyxcbiAgJzkwJywgJzkxJywgJzkyJywgJzkzJywgJzk0JywgJzk1JywgJzk2JywgJzk3JywgJzk4JywgJzk5JywgJzlBJywgJzlCJywgJzlDJywgJzlEJywgJzlFJywgJzlGJyxcbiAgJ0EwJywgJ0ExJywgJ0EyJywgJ0EzJywgJ0E0JywgJ0E1JywgJ0E2JywgJ0E3JywgJ0E4JywgJ0E5JywgJ0FBJywgJ0FCJywgJ0FDJywgJ0FEJywgJ0FFJywgJ0FGJyxcbiAgJ0IwJywgJ0IxJywgJ0IyJywgJ0IzJywgJ0I0JywgJ0I1JywgJ0I2JywgJ0I3JywgJ0I4JywgJ0I5JywgJ0JBJywgJ0JCJywgJ0JDJywgJ0JEJywgJ0JFJywgJ0JGJyxcbiAgJ0MwJywgJ0MxJywgJ0MyJywgJ0MzJywgJ0M0JywgJ0M1JywgJ0M2JywgJ0M3JywgJ0M4JywgJ0M5JywgJ0NBJywgJ0NCJywgJ0NDJywgJ0NEJywgJ0NFJywgJ0NGJyxcbiAgJ0QwJywgJ0QxJywgJ0QyJywgJ0QzJywgJ0Q0JywgJ0Q1JywgJ0Q2JywgJ0Q3JywgJ0Q4JywgJ0Q5JywgJ0RBJywgJ0RCJywgJ0RDJywgJ0REJywgJ0RFJywgJ0RGJyxcbiAgJ0UwJywgJ0UxJywgJ0UyJywgJ0UzJywgJ0U0JywgJ0U1JywgJ0U2JywgJ0U3JywgJ0U4JywgJ0U5JywgJ0VBJywgJ0VCJywgJ0VDJywgJ0VEJywgJ0VFJywgJ0VGJyxcbiAgJ0YwJywgJ0YxJywgJ0YyJywgJ0YzJywgJ0Y0JywgJ0Y1JywgJ0Y2JywgJ0Y3JywgJ0Y4JywgJ0Y5JywgJ0ZBJywgJ0ZCJywgJ0ZDJywgJ0ZEJywgJ0ZFJywgJ0ZGJ1xuXTtcblxuY29uc3QgTE9XRVJfQ0FTRV9NQVAgPSBbXG4gICcwMCcsICcwMScsICcwMicsICcwMycsICcwNCcsICcwNScsICcwNicsICcwNycsICcwOCcsICcwOScsICcwYScsICcwYicsICcwYycsICcwZCcsICcwZScsICcwZicsXG4gICcxMCcsICcxMScsICcxMicsICcxMycsICcxNCcsICcxNScsICcxNicsICcxNycsICcxOCcsICcxOScsICcxYScsICcxYicsICcxYycsICcxZCcsICcxZScsICcxZicsXG4gICcyMCcsICcyMScsICcyMicsICcyMycsICcyNCcsICcyNScsICcyNicsICcyNycsICcyOCcsICcyOScsICcyYScsICcyYicsICcyYycsICcyZCcsICcyZScsICcyZicsXG4gICczMCcsICczMScsICczMicsICczMycsICczNCcsICczNScsICczNicsICczNycsICczOCcsICczOScsICczYScsICczYicsICczYycsICczZCcsICczZScsICczZicsXG4gICc0MCcsICc0MScsICc0MicsICc0MycsICc0NCcsICc0NScsICc0NicsICc0NycsICc0OCcsICc0OScsICc0YScsICc0YicsICc0YycsICc0ZCcsICc0ZScsICc0ZicsXG4gICc1MCcsICc1MScsICc1MicsICc1MycsICc1NCcsICc1NScsICc1NicsICc1NycsICc1OCcsICc1OScsICc1YScsICc1YicsICc1YycsICc1ZCcsICc1ZScsICc1ZicsXG4gICc2MCcsICc2MScsICc2MicsICc2MycsICc2NCcsICc2NScsICc2NicsICc2NycsICc2OCcsICc2OScsICc2YScsICc2YicsICc2YycsICc2ZCcsICc2ZScsICc2ZicsXG4gICc3MCcsICc3MScsICc3MicsICc3MycsICc3NCcsICc3NScsICc3NicsICc3NycsICc3OCcsICc3OScsICc3YScsICc3YicsICc3YycsICc3ZCcsICc3ZScsICc3ZicsXG4gICc4MCcsICc4MScsICc4MicsICc4MycsICc4NCcsICc4NScsICc4NicsICc4NycsICc4OCcsICc4OScsICc4YScsICc4YicsICc4YycsICc4ZCcsICc4ZScsICc4ZicsXG4gICc5MCcsICc5MScsICc5MicsICc5MycsICc5NCcsICc5NScsICc5NicsICc5NycsICc5OCcsICc5OScsICc5YScsICc5YicsICc5YycsICc5ZCcsICc5ZScsICc5ZicsXG4gICdhMCcsICdhMScsICdhMicsICdhMycsICdhNCcsICdhNScsICdhNicsICdhNycsICdhOCcsICdhOScsICdhYScsICdhYicsICdhYycsICdhZCcsICdhZScsICdhZicsXG4gICdiMCcsICdiMScsICdiMicsICdiMycsICdiNCcsICdiNScsICdiNicsICdiNycsICdiOCcsICdiOScsICdiYScsICdiYicsICdiYycsICdiZCcsICdiZScsICdiZicsXG4gICdjMCcsICdjMScsICdjMicsICdjMycsICdjNCcsICdjNScsICdjNicsICdjNycsICdjOCcsICdjOScsICdjYScsICdjYicsICdjYycsICdjZCcsICdjZScsICdjZicsXG4gICdkMCcsICdkMScsICdkMicsICdkMycsICdkNCcsICdkNScsICdkNicsICdkNycsICdkOCcsICdkOScsICdkYScsICdkYicsICdkYycsICdkZCcsICdkZScsICdkZicsXG4gICdlMCcsICdlMScsICdlMicsICdlMycsICdlNCcsICdlNScsICdlNicsICdlNycsICdlOCcsICdlOScsICdlYScsICdlYicsICdlYycsICdlZCcsICdlZScsICdlZicsXG4gICdmMCcsICdmMScsICdmMicsICdmMycsICdmNCcsICdmNScsICdmNicsICdmNycsICdmOCcsICdmOScsICdmYScsICdmYicsICdmYycsICdmZCcsICdmZScsICdmZidcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBidWZmZXJUb1VwcGVyQ2FzZUd1aWQoYnVmZmVyOiBCdWZmZXIpIHtcbiAgcmV0dXJuIChcbiAgICBVUFBFUl9DQVNFX01BUFtidWZmZXJbM11dICtcbiAgICBVUFBFUl9DQVNFX01BUFtidWZmZXJbMl1dICtcbiAgICBVUFBFUl9DQVNFX01BUFtidWZmZXJbMV1dICtcbiAgICBVUFBFUl9DQVNFX01BUFtidWZmZXJbMF1dICtcbiAgICAnLScgK1xuICAgIFVQUEVSX0NBU0VfTUFQW2J1ZmZlcls1XV0gK1xuICAgIFVQUEVSX0NBU0VfTUFQW2J1ZmZlcls0XV0gK1xuICAgICctJyArXG4gICAgVVBQRVJfQ0FTRV9NQVBbYnVmZmVyWzddXSArXG4gICAgVVBQRVJfQ0FTRV9NQVBbYnVmZmVyWzZdXSArXG4gICAgJy0nICtcbiAgICBVUFBFUl9DQVNFX01BUFtidWZmZXJbOF1dICtcbiAgICBVUFBFUl9DQVNFX01BUFtidWZmZXJbOV1dICtcbiAgICAnLScgK1xuICAgIFVQUEVSX0NBU0VfTUFQW2J1ZmZlclsxMF1dICtcbiAgICBVUFBFUl9DQVNFX01BUFtidWZmZXJbMTFdXSArXG4gICAgVVBQRVJfQ0FTRV9NQVBbYnVmZmVyWzEyXV0gK1xuICAgIFVQUEVSX0NBU0VfTUFQW2J1ZmZlclsxM11dICtcbiAgICBVUFBFUl9DQVNFX01BUFtidWZmZXJbMTRdXSArXG4gICAgVVBQRVJfQ0FTRV9NQVBbYnVmZmVyWzE1XV1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlclRvTG93ZXJDYXNlR3VpZChidWZmZXI6IEJ1ZmZlcikge1xuICByZXR1cm4gKFxuICAgIExPV0VSX0NBU0VfTUFQW2J1ZmZlclszXV0gK1xuICAgIExPV0VSX0NBU0VfTUFQW2J1ZmZlclsyXV0gK1xuICAgIExPV0VSX0NBU0VfTUFQW2J1ZmZlclsxXV0gK1xuICAgIExPV0VSX0NBU0VfTUFQW2J1ZmZlclswXV0gK1xuICAgICctJyArXG4gICAgTE9XRVJfQ0FTRV9NQVBbYnVmZmVyWzVdXSArXG4gICAgTE9XRVJfQ0FTRV9NQVBbYnVmZmVyWzRdXSArXG4gICAgJy0nICtcbiAgICBMT1dFUl9DQVNFX01BUFtidWZmZXJbN11dICtcbiAgICBMT1dFUl9DQVNFX01BUFtidWZmZXJbNl1dICtcbiAgICAnLScgK1xuICAgIExPV0VSX0NBU0VfTUFQW2J1ZmZlcls4XV0gK1xuICAgIExPV0VSX0NBU0VfTUFQW2J1ZmZlcls5XV0gK1xuICAgICctJyArXG4gICAgTE9XRVJfQ0FTRV9NQVBbYnVmZmVyWzEwXV0gK1xuICAgIExPV0VSX0NBU0VfTUFQW2J1ZmZlclsxMV1dICtcbiAgICBMT1dFUl9DQVNFX01BUFtidWZmZXJbMTJdXSArXG4gICAgTE9XRVJfQ0FTRV9NQVBbYnVmZmVyWzEzXV0gK1xuICAgIExPV0VSX0NBU0VfTUFQW2J1ZmZlclsxNF1dICtcbiAgICBMT1dFUl9DQVNFX01BUFtidWZmZXJbMTVdXVxuICApO1xufVxuXG5jb25zdCBDSEFSQ09ERU1BUDogeyBba2V5OiBudW1iZXJdOiB7IFtrZXk6IG51bWJlcl06IG51bWJlciB9IH0gPSB7fTtcblxuY29uc3QgaGV4RGlnaXRzID0gW1xuICAnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsXG4gICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicsXG4gICdBJywgJ0InLCAnQycsICdEJywgJ0UnLCAnRidcbl0ubWFwKChkKSA9PiBkLmNoYXJDb2RlQXQoMCkpO1xuXG5mb3IgKGxldCBpID0gMDsgaSA8IGhleERpZ2l0cy5sZW5ndGg7IGkrKykge1xuICBjb25zdCBtYXA6IHsgW2tleTogbnVtYmVyXTogbnVtYmVyIH0gPSBDSEFSQ09ERU1BUFtoZXhEaWdpdHNbaV1dID0ge307XG4gIGZvciAobGV0IGogPSAwOyBqIDwgaGV4RGlnaXRzLmxlbmd0aDsgaisrKSB7XG4gICAgY29uc3QgaGV4ID0gU3RyaW5nLmZyb21DaGFyQ29kZShoZXhEaWdpdHNbaV0sIGhleERpZ2l0c1tqXSk7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJzZUludChoZXgsIDE2KTtcbiAgICBtYXBbaGV4RGlnaXRzW2pdXSA9IHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBndWlkVG9BcnJheShndWlkOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFtcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoNildW2d1aWQuY2hhckNvZGVBdCg3KV0sXG4gICAgQ0hBUkNPREVNQVBbZ3VpZC5jaGFyQ29kZUF0KDQpXVtndWlkLmNoYXJDb2RlQXQoNSldLFxuICAgIENIQVJDT0RFTUFQW2d1aWQuY2hhckNvZGVBdCgyKV1bZ3VpZC5jaGFyQ29kZUF0KDMpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMCldW2d1aWQuY2hhckNvZGVBdCgxKV0sXG4gICAgQ0hBUkNPREVNQVBbZ3VpZC5jaGFyQ29kZUF0KDExKV1bZ3VpZC5jaGFyQ29kZUF0KDEyKV0sXG4gICAgQ0hBUkNPREVNQVBbZ3VpZC5jaGFyQ29kZUF0KDkpXVtndWlkLmNoYXJDb2RlQXQoMTApXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMTYpXVtndWlkLmNoYXJDb2RlQXQoMTcpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMTQpXVtndWlkLmNoYXJDb2RlQXQoMTUpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMTkpXVtndWlkLmNoYXJDb2RlQXQoMjApXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMjEpXVtndWlkLmNoYXJDb2RlQXQoMjIpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMjQpXVtndWlkLmNoYXJDb2RlQXQoMjUpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMjYpXVtndWlkLmNoYXJDb2RlQXQoMjcpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMjgpXVtndWlkLmNoYXJDb2RlQXQoMjkpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMzApXVtndWlkLmNoYXJDb2RlQXQoMzEpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMzIpXVtndWlkLmNoYXJDb2RlQXQoMzMpXSxcbiAgICBDSEFSQ09ERU1BUFtndWlkLmNoYXJDb2RlQXQoMzQpXVtndWlkLmNoYXJDb2RlQXQoMzUpXVxuICBdO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU1BLGNBQWMsR0FBRyxDQUNyQixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQy9GO0FBRUQsTUFBTUMsY0FBYyxHQUFHLENBQ3JCLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDOUYsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM5RixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzlGLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FDL0Y7QUFFTSxTQUFTQyxxQkFBcUJBLENBQUNDLE1BQWMsRUFBRTtFQUNwRCxPQUNFSCxj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QUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25ESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3BESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3JESixXQUFXLENBQUNjLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQ1YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3REO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guid-parser.js","names":["UPPER_CASE_MAP","LOWER_CASE_MAP","bufferToUpperCaseGuid","buffer","bufferToLowerCaseGuid","CHARCODEMAP","hexDigits","map","d","charCodeAt","i","length","j","hex","String","fromCharCode","value","parseInt","guidToArray","guid"],"sources":["../src/guid-parser.ts"],"sourcesContent":["const UPPER_CASE_MAP = [\n '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0A', '0B', '0C', '0D', '0E', '0F',\n '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1A', '1B', '1C', '1D', '1E', '1F',\n '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2A', '2B', '2C', '2D', '2E', '2F',\n '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3A', '3B', '3C', '3D', '3E', '3F',\n '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4A', '4B', '4C', '4D', '4E', '4F',\n '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5A', '5B', '5C', '5D', '5E', '5F',\n '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6A', '6B', '6C', '6D', '6E', '6F',\n '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7A', '7B', '7C', '7D', '7E', '7F',\n '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8A', '8B', '8C', '8D', '8E', '8F',\n '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9A', '9B', '9C', '9D', '9E', '9F',\n 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF',\n 'B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF',\n 'C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF',\n 'D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'DA', 'DB', 'DC', 'DD', 'DE', 'DF',\n 'E0', 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9', 'EA', 'EB', 'EC', 'ED', 'EE', 'EF',\n 'F0', 'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'FA', 'FB', 'FC', 'FD', 'FE', 'FF'\n];\n\nconst LOWER_CASE_MAP = [\n '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f',\n '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f',\n '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f',\n '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f',\n '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f',\n '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f',\n '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f',\n '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f',\n '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f',\n '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f',\n 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af',\n 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf',\n 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf',\n 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df',\n 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef',\n 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff'\n];\n\nexport function bufferToUpperCaseGuid(buffer: Buffer) {\n return (\n UPPER_CASE_MAP[buffer[3]] +\n UPPER_CASE_MAP[buffer[2]] +\n UPPER_CASE_MAP[buffer[1]] +\n UPPER_CASE_MAP[buffer[0]] +\n '-' +\n UPPER_CASE_MAP[buffer[5]] +\n UPPER_CASE_MAP[buffer[4]] +\n '-' +\n UPPER_CASE_MAP[buffer[7]] +\n UPPER_CASE_MAP[buffer[6]] +\n '-' +\n UPPER_CASE_MAP[buffer[8]] +\n UPPER_CASE_MAP[buffer[9]] +\n '-' +\n UPPER_CASE_MAP[buffer[10]] +\n UPPER_CASE_MAP[buffer[11]] +\n UPPER_CASE_MAP[buffer[12]] +\n UPPER_CASE_MAP[buffer[13]] +\n UPPER_CASE_MAP[buffer[14]] +\n UPPER_CASE_MAP[buffer[15]]\n );\n}\n\nexport function bufferToLowerCaseGuid(buffer: Buffer) {\n return (\n LOWER_CASE_MAP[buffer[3]] +\n LOWER_CASE_MAP[buffer[2]] +\n LOWER_CASE_MAP[buffer[1]] +\n LOWER_CASE_MAP[buffer[0]] +\n '-' +\n LOWER_CASE_MAP[buffer[5]] +\n LOWER_CASE_MAP[buffer[4]] +\n '-' +\n LOWER_CASE_MAP[buffer[7]] +\n LOWER_CASE_MAP[buffer[6]] +\n '-' +\n LOWER_CASE_MAP[buffer[8]] +\n LOWER_CASE_MAP[buffer[9]] +\n '-' +\n LOWER_CASE_MAP[buffer[10]] +\n LOWER_CASE_MAP[buffer[11]] +\n LOWER_CASE_MAP[buffer[12]] +\n LOWER_CASE_MAP[buffer[13]] +\n LOWER_CASE_MAP[buffer[14]] +\n LOWER_CASE_MAP[buffer[15]]\n );\n}\n\nconst CHARCODEMAP: { [key: number]: { [key: number]: number } } = {};\n\nconst hexDigits = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'a', 'b', 'c', 'd', 'e', 'f',\n 'A', 'B', 'C', 'D', 'E', 'F'\n].map((d) => d.charCodeAt(0));\n\nfor (let i = 0; i < hexDigits.length; i++) {\n const map: { [key: number]: number } = CHARCODEMAP[hexDigits[i]] = {};\n for (let j = 0; j < hexDigits.length; j++) {\n const hex = String.fromCharCode(hexDigits[i], hexDigits[j]);\n const value = parseInt(hex, 16);\n map[hexDigits[j]] = value;\n }\n}\n\nexport function guidToArray(guid: string) {\n return [\n CHARCODEMAP[guid.charCodeAt(6)][guid.charCodeAt(7)],\n CHARCODEMAP[guid.charCodeAt(4)][guid.charCodeAt(5)],\n CHARCODEMAP[guid.charCodeAt(2)][guid.charCodeAt(3)],\n CHARCODEMAP[guid.charCodeAt(0)][guid.charCodeAt(1)],\n CHARCODEMAP[guid.charCodeAt(11)][guid.charCodeAt(12)],\n CHARCODEMAP[guid.charCodeAt(9)][guid.charCodeAt(10)],\n CHARCODEMAP[guid.charCodeAt(16)][guid.charCodeAt(17)],\n CHARCODEMAP[guid.charCodeAt(14)][guid.charCodeAt(15)],\n CHARCODEMAP[guid.charCodeAt(19)][guid.charCodeAt(20)],\n CHARCODEMAP[guid.charCodeAt(21)][guid.charCodeAt(22)],\n CHARCODEMAP[guid.charCodeAt(24)][guid.charCodeAt(25)],\n CHARCODEMAP[guid.charCodeAt(26)][guid.charCodeAt(27)],\n CHARCODEMAP[guid.charCodeAt(28)][guid.charCodeAt(29)],\n CHARCODEMAP[guid.charCodeAt(30)][guid.charCodeAt(31)],\n CHARCODEMAP[guid.charCodeAt(32)][guid.charCodeAt(33)],\n CHARCODEMAP[guid.charCodeAt(34)][guid.charCodeAt(35)]\n ];\n}\n"],"mappings":";;;;;;;;AAAA,MAAMA,cAAc,GAAG,CACrB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAC/F;AAED,MAAMC,cAAc,GAAG,CACrB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { Transform } from 'stream';
2
+ import Debug from './debug';
3
+ import Message from './message';
4
+ import { ConnectionError } from './errors';
5
+ /**
6
+ IncomingMessageStream
7
+ Transform received TDS data into individual IncomingMessage streams.
8
+ */
9
+ declare class IncomingMessageStream extends Transform {
10
+ debug: Debug;
11
+ bl: any;
12
+ currentMessage: Message | undefined;
13
+ constructor(debug: Debug);
14
+ pause(): this;
15
+ resume(): this;
16
+ processBufferedData(callback: (err?: ConnectionError) => void): void;
17
+ _transform(chunk: Buffer, _encoding: string, callback: () => void): void;
18
+ }
19
+ export default IncomingMessageStream;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _bl = _interopRequireDefault(require("bl"));
8
+ var _stream = require("stream");
9
+ var _message = _interopRequireDefault(require("./message"));
10
+ var _packet = require("./packet");
11
+ var _errors = require("./errors");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ /**
14
+ IncomingMessageStream
15
+ Transform received TDS data into individual IncomingMessage streams.
16
+ */
17
+ class IncomingMessageStream extends _stream.Transform {
18
+ constructor(debug) {
19
+ super({
20
+ readableObjectMode: true
21
+ });
22
+ this.debug = debug;
23
+ this.currentMessage = undefined;
24
+ this.bl = new _bl.default();
25
+ }
26
+ pause() {
27
+ super.pause();
28
+ if (this.currentMessage) {
29
+ this.currentMessage.pause();
30
+ }
31
+ return this;
32
+ }
33
+ resume() {
34
+ super.resume();
35
+ if (this.currentMessage) {
36
+ this.currentMessage.resume();
37
+ }
38
+ return this;
39
+ }
40
+ processBufferedData(callback) {
41
+ // The packet header is always 8 bytes of length.
42
+ while (this.bl.length >= _packet.HEADER_LENGTH) {
43
+ // Get the full packet length
44
+ const length = this.bl.readUInt16BE(2);
45
+ if (length < _packet.HEADER_LENGTH) {
46
+ return callback(new _errors.ConnectionError('Unable to process incoming packet'));
47
+ }
48
+ if (this.bl.length >= length) {
49
+ const data = this.bl.slice(0, length);
50
+ this.bl.consume(length);
51
+
52
+ // TODO: Get rid of creating `Packet` instances here.
53
+ const packet = new _packet.Packet(data);
54
+ this.debug.packet('Received', packet);
55
+ this.debug.data(packet);
56
+ let message = this.currentMessage;
57
+ if (message === undefined) {
58
+ this.currentMessage = message = new _message.default({
59
+ type: packet.type(),
60
+ resetConnection: false
61
+ });
62
+ this.push(message);
63
+ }
64
+ if (packet.isLast()) {
65
+ // Wait until the current message was fully processed before we
66
+ // continue processing any remaining messages.
67
+ message.once('end', () => {
68
+ this.currentMessage = undefined;
69
+ this.processBufferedData(callback);
70
+ });
71
+ message.end(packet.data());
72
+ return;
73
+ } else if (!message.write(packet.data())) {
74
+ // If too much data is buffering up in the
75
+ // current message, wait for it to drain.
76
+ message.once('drain', () => {
77
+ this.processBufferedData(callback);
78
+ });
79
+ return;
80
+ }
81
+ } else {
82
+ break;
83
+ }
84
+ }
85
+
86
+ // Not enough data to read the next packet. Stop here and wait for
87
+ // the next call to `_transform`.
88
+ callback();
89
+ }
90
+ _transform(chunk, _encoding, callback) {
91
+ this.bl.append(chunk);
92
+ this.processBufferedData(callback);
93
+ }
94
+ }
95
+ var _default = exports.default = IncomingMessageStream;
96
+ module.exports = IncomingMessageStream;
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHJlYW0iLCJfbWVzc2FnZSIsIl9wYWNrZXQiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiSW5jb21pbmdNZXNzYWdlU3RyZWFtIiwiVHJhbnNmb3JtIiwiY29uc3RydWN0b3IiLCJkZWJ1ZyIsInJlYWRhYmxlT2JqZWN0TW9kZSIsImN1cnJlbnRNZXNzYWdlIiwidW5kZWZpbmVkIiwiYmwiLCJCdWZmZXJMaXN0IiwicGF1c2UiLCJyZXN1bWUiLCJwcm9jZXNzQnVmZmVyZWREYXRhIiwiY2FsbGJhY2siLCJsZW5ndGgiLCJIRUFERVJfTEVOR1RIIiwicmVhZFVJbnQxNkJFIiwiQ29ubmVjdGlvbkVycm9yIiwiZGF0YSIsInNsaWNlIiwiY29uc3VtZSIsInBhY2tldCIsIlBhY2tldCIsIm1lc3NhZ2UiLCJNZXNzYWdlIiwidHlwZSIsInJlc2V0Q29ubmVjdGlvbiIsInB1c2giLCJpc0xhc3QiLCJvbmNlIiwiZW5kIiwid3JpdGUiLCJfdHJhbnNmb3JtIiwiY2h1bmsiLCJfZW5jb2RpbmciLCJhcHBlbmQiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi9zcmMvaW5jb21pbmctbWVzc2FnZS1zdHJlYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1ZmZlckxpc3QgZnJvbSAnYmwnO1xuaW1wb3J0IHsgVHJhbnNmb3JtIH0gZnJvbSAnc3RyZWFtJztcblxuaW1wb3J0IERlYnVnIGZyb20gJy4vZGVidWcnO1xuaW1wb3J0IE1lc3NhZ2UgZnJvbSAnLi9tZXNzYWdlJztcbmltcG9ydCB7IFBhY2tldCwgSEVBREVSX0xFTkdUSCB9IGZyb20gJy4vcGFja2V0JztcbmltcG9ydCB7IENvbm5lY3Rpb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuLyoqXG4gIEluY29taW5nTWVzc2FnZVN0cmVhbVxuICBUcmFuc2Zvcm0gcmVjZWl2ZWQgVERTIGRhdGEgaW50byBpbmRpdmlkdWFsIEluY29taW5nTWVzc2FnZSBzdHJlYW1zLlxuKi9cbmNsYXNzIEluY29taW5nTWVzc2FnZVN0cmVhbSBleHRlbmRzIFRyYW5zZm9ybSB7XG4gIGRlY2xhcmUgZGVidWc6IERlYnVnO1xuICBkZWNsYXJlIGJsOiBhbnk7XG4gIGRlY2xhcmUgY3VycmVudE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoZGVidWc6IERlYnVnKSB7XG4gICAgc3VwZXIoeyByZWFkYWJsZU9iamVjdE1vZGU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmRlYnVnID0gZGVidWc7XG5cbiAgICB0aGlzLmN1cnJlbnRNZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuYmwgPSBuZXcgQnVmZmVyTGlzdCgpO1xuICB9XG5cbiAgcGF1c2UoKSB7XG4gICAgc3VwZXIucGF1c2UoKTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRNZXNzYWdlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNZXNzYWdlLnBhdXNlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZXN1bWUoKSB7XG4gICAgc3VwZXIucmVzdW1lKCk7XG5cbiAgICBpZiAodGhpcy5jdXJyZW50TWVzc2FnZSkge1xuICAgICAgdGhpcy5jdXJyZW50TWVzc2FnZS5yZXN1bWUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb2Nlc3NCdWZmZXJlZERhdGEoY2FsbGJhY2s6IChlcnI/OiBDb25uZWN0aW9uRXJyb3IpID0+IHZvaWQpIHtcbiAgICAvLyBUaGUgcGFja2V0IGhlYWRlciBpcyBhbHdheXMgOCBieXRlcyBvZiBsZW5ndGguXG4gICAgd2hpbGUgKHRoaXMuYmwubGVuZ3RoID49IEhFQURFUl9MRU5HVEgpIHtcbiAgICAgIC8vIEdldCB0aGUgZnVsbCBwYWNrZXQgbGVuZ3RoXG4gICAgICBjb25zdCBsZW5ndGggPSB0aGlzLmJsLnJlYWRVSW50MTZCRSgyKTtcbiAgICAgIGlmIChsZW5ndGggPCBIRUFERVJfTEVOR1RIKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhuZXcgQ29ubmVjdGlvbkVycm9yKCdVbmFibGUgdG8gcHJvY2VzcyBpbmNvbWluZyBwYWNrZXQnKSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmJsLmxlbmd0aCA+PSBsZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYmwuc2xpY2UoMCwgbGVuZ3RoKTtcbiAgICAgICAgdGhpcy5ibC5jb25zdW1lKGxlbmd0aCk7XG5cbiAgICAgICAgLy8gVE9ETzogR2V0IHJpZCBvZiBjcmVhdGluZyBgUGFja2V0YCBpbnN0YW5jZXMgaGVyZS5cbiAgICAgICAgY29uc3QgcGFja2V0ID0gbmV3IFBhY2tldChkYXRhKTtcbiAgICAgICAgdGhpcy5kZWJ1Zy5wYWNrZXQoJ1JlY2VpdmVkJywgcGFja2V0KTtcbiAgICAgICAgdGhpcy5kZWJ1Zy5kYXRhKHBhY2tldCk7XG5cbiAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLmN1cnJlbnRNZXNzYWdlO1xuICAgICAgICBpZiAobWVzc2FnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50TWVzc2FnZSA9IG1lc3NhZ2UgPSBuZXcgTWVzc2FnZSh7IHR5cGU6IHBhY2tldC50eXBlKCksIHJlc2V0Q29ubmVjdGlvbjogZmFsc2UgfSk7XG4gICAgICAgICAgdGhpcy5wdXNoKG1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhY2tldC5pc0xhc3QoKSkge1xuICAgICAgICAgIC8vIFdhaXQgdW50aWwgdGhlIGN1cnJlbnQgbWVzc2FnZSB3YXMgZnVsbHkgcHJvY2Vzc2VkIGJlZm9yZSB3ZVxuICAgICAgICAgIC8vIGNvbnRpbnVlIHByb2Nlc3NpbmcgYW55IHJlbWFpbmluZyBtZXNzYWdlcy5cbiAgICAgICAgICBtZXNzYWdlLm9uY2UoJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NCdWZmZXJlZERhdGEoY2FsbGJhY2spO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1lc3NhZ2UuZW5kKHBhY2tldC5kYXRhKCkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmICghbWVzc2FnZS53cml0ZShwYWNrZXQuZGF0YSgpKSkge1xuICAgICAgICAgIC8vIElmIHRvbyBtdWNoIGRhdGEgaXMgYnVmZmVyaW5nIHVwIGluIHRoZVxuICAgICAgICAgIC8vIGN1cnJlbnQgbWVzc2FnZSwgd2FpdCBmb3IgaXQgdG8gZHJhaW4uXG4gICAgICAgICAgbWVzc2FnZS5vbmNlKCdkcmFpbicsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0J1ZmZlcmVkRGF0YShjYWxsYmFjayk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOb3QgZW5vdWdoIGRhdGEgdG8gcmVhZCB0aGUgbmV4dCBwYWNrZXQuIFN0b3AgaGVyZSBhbmQgd2FpdCBmb3JcbiAgICAvLyB0aGUgbmV4dCBjYWxsIHRvIGBfdHJhbnNmb3JtYC5cbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgX3RyYW5zZm9ybShjaHVuazogQnVmZmVyLCBfZW5jb2Rpbmc6IHN0cmluZywgY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLmJsLmFwcGVuZChjaHVuayk7XG4gICAgdGhpcy5wcm9jZXNzQnVmZmVyZWREYXRhKGNhbGxiYWNrKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBJbmNvbWluZ01lc3NhZ2VTdHJlYW07XG5tb2R1bGUuZXhwb3J0cyA9IEluY29taW5nTWVzc2FnZVN0cmVhbTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incoming-message-stream.js","names":["_bl","_interopRequireDefault","require","_stream","_message","_packet","_errors","e","__esModule","default","IncomingMessageStream","Transform","constructor","debug","readableObjectMode","currentMessage","undefined","bl","BufferList","pause","resume","processBufferedData","callback","length","HEADER_LENGTH","readUInt16BE","ConnectionError","data","slice","consume","packet","Packet","message","Message","type","resetConnection","push","isLast","once","end","write","_transform","chunk","_encoding","append","_default","exports","module"],"sources":["../src/incoming-message-stream.ts"],"sourcesContent":["import BufferList from 'bl';\nimport { Transform } from 'stream';\n\nimport Debug from './debug';\nimport Message from './message';\nimport { Packet, HEADER_LENGTH } from './packet';\nimport { ConnectionError } from './errors';\n\n/**\n IncomingMessageStream\n Transform received TDS data into individual IncomingMessage streams.\n*/\nclass IncomingMessageStream extends Transform {\n declare debug: Debug;\n declare bl: any;\n declare currentMessage: Message | undefined;\n\n constructor(debug: Debug) {\n super({ readableObjectMode: true });\n\n this.debug = debug;\n\n this.currentMessage = undefined;\n this.bl = new BufferList();\n }\n\n pause() {\n super.pause();\n\n if (this.currentMessage) {\n this.currentMessage.pause();\n }\n\n return this;\n }\n\n resume() {\n super.resume();\n\n if (this.currentMessage) {\n this.currentMessage.resume();\n }\n\n return this;\n }\n\n processBufferedData(callback: (err?: ConnectionError) => void) {\n // The packet header is always 8 bytes of length.\n while (this.bl.length >= HEADER_LENGTH) {\n // Get the full packet length\n const length = this.bl.readUInt16BE(2);\n if (length < HEADER_LENGTH) {\n return callback(new ConnectionError('Unable to process incoming packet'));\n }\n\n if (this.bl.length >= length) {\n const data = this.bl.slice(0, length);\n this.bl.consume(length);\n\n // TODO: Get rid of creating `Packet` instances here.\n const packet = new Packet(data);\n this.debug.packet('Received', packet);\n this.debug.data(packet);\n\n let message = this.currentMessage;\n if (message === undefined) {\n this.currentMessage = message = new Message({ type: packet.type(), resetConnection: false });\n this.push(message);\n }\n\n if (packet.isLast()) {\n // Wait until the current message was fully processed before we\n // continue processing any remaining messages.\n message.once('end', () => {\n this.currentMessage = undefined;\n this.processBufferedData(callback);\n });\n message.end(packet.data());\n return;\n } else if (!message.write(packet.data())) {\n // If too much data is buffering up in the\n // current message, wait for it to drain.\n message.once('drain', () => {\n this.processBufferedData(callback);\n });\n return;\n }\n } else {\n break;\n }\n }\n\n // Not enough data to read the next packet. Stop here and wait for\n // the next call to `_transform`.\n callback();\n }\n\n _transform(chunk: Buffer, _encoding: string, callback: () => void) {\n this.bl.append(chunk);\n this.processBufferedData(callback);\n }\n}\n\nexport default IncomingMessageStream;\nmodule.exports = IncomingMessageStream;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import dns from 'dns';
2
+ type LookupFunction = (hostname: string, options: dns.LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: dns.LookupAddress[]) => void) => void;
3
+ export declare function instanceLookup(options: {
4
+ server: string;
5
+ instanceName: string;
6
+ timeout?: number;
7
+ retries?: number;
8
+ port?: number;
9
+ lookup?: LookupFunction;
10
+ signal: AbortSignal;
11
+ }): Promise<number>;
12
+ export declare function parseBrowserResponse(response: string, instanceName: string): number | undefined;
13
+ export {};
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.instanceLookup = instanceLookup;
7
+ exports.parseBrowserResponse = parseBrowserResponse;
8
+ var _dns = _interopRequireDefault(require("dns"));
9
+ var _sender = require("./sender");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ const SQL_SERVER_BROWSER_PORT = 1434;
12
+ const TIMEOUT = 2 * 1000;
13
+ const RETRIES = 3;
14
+ // There are three bytes at the start of the response, whose purpose is unknown.
15
+ const MYSTERY_HEADER_LENGTH = 3;
16
+ // Most of the functionality has been determined from from jTDS's MSSqlServerInfo class.
17
+ async function instanceLookup(options) {
18
+ const server = options.server;
19
+ if (typeof server !== 'string') {
20
+ throw new TypeError('Invalid arguments: "server" must be a string');
21
+ }
22
+ const instanceName = options.instanceName;
23
+ if (typeof instanceName !== 'string') {
24
+ throw new TypeError('Invalid arguments: "instanceName" must be a string');
25
+ }
26
+ const timeout = options.timeout === undefined ? TIMEOUT : options.timeout;
27
+ if (typeof timeout !== 'number') {
28
+ throw new TypeError('Invalid arguments: "timeout" must be a number');
29
+ }
30
+ const retries = options.retries === undefined ? RETRIES : options.retries;
31
+ if (typeof retries !== 'number') {
32
+ throw new TypeError('Invalid arguments: "retries" must be a number');
33
+ }
34
+ if (options.lookup !== undefined && typeof options.lookup !== 'function') {
35
+ throw new TypeError('Invalid arguments: "lookup" must be a function');
36
+ }
37
+ const lookup = options.lookup ?? _dns.default.lookup;
38
+ if (options.port !== undefined && typeof options.port !== 'number') {
39
+ throw new TypeError('Invalid arguments: "port" must be a number');
40
+ }
41
+ const port = options.port ?? SQL_SERVER_BROWSER_PORT;
42
+ const signal = options.signal;
43
+ signal.throwIfAborted();
44
+ let response;
45
+ const request = Buffer.from([0x02]);
46
+ for (let i = 0; i <= retries; i++) {
47
+ const timeoutSignal = AbortSignal.timeout(timeout);
48
+ try {
49
+ response = await (0, _sender.sendMessage)(options.server, port, lookup, AbortSignal.any([signal, timeoutSignal]), request);
50
+ } catch (err) {
51
+ // If the current attempt timed out, continue with the next
52
+ if (timeoutSignal.aborted) {
53
+ continue;
54
+ }
55
+ throw err;
56
+ }
57
+ }
58
+ if (!response) {
59
+ throw new Error('Failed to get response from SQL Server Browser on ' + server);
60
+ }
61
+ const message = response.toString('ascii', MYSTERY_HEADER_LENGTH);
62
+ const foundPort = parseBrowserResponse(message, instanceName);
63
+ if (!foundPort) {
64
+ throw new Error('Port for ' + instanceName + ' not found in ' + options.server);
65
+ }
66
+ return foundPort;
67
+ }
68
+ function parseBrowserResponse(response, instanceName) {
69
+ let getPort;
70
+ const instances = response.split(';;');
71
+ for (let i = 0, len = instances.length; i < len; i++) {
72
+ const instance = instances[i];
73
+ const parts = instance.split(';');
74
+ for (let p = 0, partsLen = parts.length; p < partsLen; p += 2) {
75
+ const name = parts[p];
76
+ const value = parts[p + 1];
77
+ if (name === 'tcp' && getPort) {
78
+ const port = parseInt(value, 10);
79
+ return port;
80
+ }
81
+ if (name === 'InstanceName') {
82
+ if (value.toUpperCase() === instanceName.toUpperCase()) {
83
+ getPort = true;
84
+ } else {
85
+ getPort = false;
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZG5zIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc2VuZGVyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiU1FMX1NFUlZFUl9CUk9XU0VSX1BPUlQiLCJUSU1FT1VUIiwiUkVUUklFUyIsIk1ZU1RFUllfSEVBREVSX0xFTkdUSCIsImluc3RhbmNlTG9va3VwIiwib3B0aW9ucyIsInNlcnZlciIsIlR5cGVFcnJvciIsImluc3RhbmNlTmFtZSIsInRpbWVvdXQiLCJ1bmRlZmluZWQiLCJyZXRyaWVzIiwibG9va3VwIiwiZG5zIiwicG9ydCIsInNpZ25hbCIsInRocm93SWZBYm9ydGVkIiwicmVzcG9uc2UiLCJyZXF1ZXN0IiwiQnVmZmVyIiwiZnJvbSIsImkiLCJ0aW1lb3V0U2lnbmFsIiwiQWJvcnRTaWduYWwiLCJzZW5kTWVzc2FnZSIsImFueSIsImVyciIsImFib3J0ZWQiLCJFcnJvciIsIm1lc3NhZ2UiLCJ0b1N0cmluZyIsImZvdW5kUG9ydCIsInBhcnNlQnJvd3NlclJlc3BvbnNlIiwiZ2V0UG9ydCIsImluc3RhbmNlcyIsInNwbGl0IiwibGVuIiwibGVuZ3RoIiwiaW5zdGFuY2UiLCJwYXJ0cyIsInAiLCJwYXJ0c0xlbiIsIm5hbWUiLCJ2YWx1ZSIsInBhcnNlSW50IiwidG9VcHBlckNhc2UiXSwic291cmNlcyI6WyIuLi9zcmMvaW5zdGFuY2UtbG9va3VwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkbnMgZnJvbSAnZG5zJztcblxuaW1wb3J0IHsgc2VuZE1lc3NhZ2UgfSBmcm9tICcuL3NlbmRlcic7XG5cbmNvbnN0IFNRTF9TRVJWRVJfQlJPV1NFUl9QT1JUID0gMTQzNDtcbmNvbnN0IFRJTUVPVVQgPSAyICogMTAwMDtcbmNvbnN0IFJFVFJJRVMgPSAzO1xuLy8gVGhlcmUgYXJlIHRocmVlIGJ5dGVzIGF0IHRoZSBzdGFydCBvZiB0aGUgcmVzcG9uc2UsIHdob3NlIHB1cnBvc2UgaXMgdW5rbm93bi5cbmNvbnN0IE1ZU1RFUllfSEVBREVSX0xFTkdUSCA9IDM7XG5cbnR5cGUgTG9va3VwRnVuY3Rpb24gPSAoaG9zdG5hbWU6IHN0cmluZywgb3B0aW9uczogZG5zLkxvb2t1cEFsbE9wdGlvbnMsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBhZGRyZXNzZXM6IGRucy5Mb29rdXBBZGRyZXNzW10pID0+IHZvaWQpID0+IHZvaWQ7XG5cbi8vIE1vc3Qgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gZGV0ZXJtaW5lZCBmcm9tIGZyb20galREUydzIE1TU3FsU2VydmVySW5mbyBjbGFzcy5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnN0YW5jZUxvb2t1cChvcHRpb25zOiB7IHNlcnZlcjogc3RyaW5nLCBpbnN0YW5jZU5hbWU6IHN0cmluZywgdGltZW91dD86IG51bWJlciwgcmV0cmllcz86IG51bWJlciwgcG9ydD86IG51bWJlciwgbG9va3VwPzogTG9va3VwRnVuY3Rpb24sIHNpZ25hbDogQWJvcnRTaWduYWwgfSkge1xuICBjb25zdCBzZXJ2ZXIgPSBvcHRpb25zLnNlcnZlcjtcbiAgaWYgKHR5cGVvZiBzZXJ2ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBhcmd1bWVudHM6IFwic2VydmVyXCIgbXVzdCBiZSBhIHN0cmluZycpO1xuICB9XG5cbiAgY29uc3QgaW5zdGFuY2VOYW1lID0gb3B0aW9ucy5pbnN0YW5jZU5hbWU7XG4gIGlmICh0eXBlb2YgaW5zdGFuY2VOYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgYXJndW1lbnRzOiBcImluc3RhbmNlTmFtZVwiIG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIGNvbnN0IHRpbWVvdXQgPSBvcHRpb25zLnRpbWVvdXQgPT09IHVuZGVmaW5lZCA/IFRJTUVPVVQgOiBvcHRpb25zLnRpbWVvdXQ7XG4gIGlmICh0eXBlb2YgdGltZW91dCAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50czogXCJ0aW1lb3V0XCIgbXVzdCBiZSBhIG51bWJlcicpO1xuICB9XG5cbiAgY29uc3QgcmV0cmllcyA9IG9wdGlvbnMucmV0cmllcyA9PT0gdW5kZWZpbmVkID8gUkVUUklFUyA6IG9wdGlvbnMucmV0cmllcztcbiAgaWYgKHR5cGVvZiByZXRyaWVzICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgYXJndW1lbnRzOiBcInJldHJpZXNcIiBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5sb29rdXAgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0aW9ucy5sb29rdXAgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50czogXCJsb29rdXBcIiBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgfVxuICBjb25zdCBsb29rdXAgPSBvcHRpb25zLmxvb2t1cCA/PyBkbnMubG9va3VwO1xuXG4gIGlmIChvcHRpb25zLnBvcnQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0aW9ucy5wb3J0ICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgYXJndW1lbnRzOiBcInBvcnRcIiBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gIH1cbiAgY29uc3QgcG9ydCA9IG9wdGlvbnMucG9ydCA/PyBTUUxfU0VSVkVSX0JST1dTRVJfUE9SVDtcblxuICBjb25zdCBzaWduYWwgPSBvcHRpb25zLnNpZ25hbDtcblxuICBzaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcblxuICBsZXQgcmVzcG9uc2U7XG5cbiAgY29uc3QgcmVxdWVzdCA9IEJ1ZmZlci5mcm9tKFsweDAyXSk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPD0gcmV0cmllczsgaSsrKSB7XG4gICAgY29uc3QgdGltZW91dFNpZ25hbCA9IEFib3J0U2lnbmFsLnRpbWVvdXQodGltZW91dCk7XG5cbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBzZW5kTWVzc2FnZShvcHRpb25zLnNlcnZlciwgcG9ydCwgbG9va3VwLCBBYm9ydFNpZ25hbC5hbnkoWyBzaWduYWwsIHRpbWVvdXRTaWduYWwgXSksIHJlcXVlc3QpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgYXR0ZW1wdCB0aW1lZCBvdXQsIGNvbnRpbnVlIHdpdGggdGhlIG5leHRcbiAgICAgIGlmICh0aW1lb3V0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2V0IHJlc3BvbnNlIGZyb20gU1FMIFNlcnZlciBCcm93c2VyIG9uICcgKyBzZXJ2ZXIpO1xuICB9XG5cbiAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlLnRvU3RyaW5nKCdhc2NpaScsIE1ZU1RFUllfSEVBREVSX0xFTkdUSCk7XG4gIGNvbnN0IGZvdW5kUG9ydCA9IHBhcnNlQnJvd3NlclJlc3BvbnNlKG1lc3NhZ2UsIGluc3RhbmNlTmFtZSk7XG5cbiAgaWYgKCFmb3VuZFBvcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BvcnQgZm9yICcgKyBpbnN0YW5jZU5hbWUgKyAnIG5vdCBmb3VuZCBpbiAnICsgb3B0aW9ucy5zZXJ2ZXIpO1xuICB9XG5cbiAgcmV0dXJuIGZvdW5kUG9ydDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQnJvd3NlclJlc3BvbnNlKHJlc3BvbnNlOiBzdHJpbmcsIGluc3RhbmNlTmFtZTogc3RyaW5nKSB7XG4gIGxldCBnZXRQb3J0O1xuXG4gIGNvbnN0IGluc3RhbmNlcyA9IHJlc3BvbnNlLnNwbGl0KCc7OycpO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5zdGFuY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBpbnN0YW5jZXNbaV07XG4gICAgY29uc3QgcGFydHMgPSBpbnN0YW5jZS5zcGxpdCgnOycpO1xuXG4gICAgZm9yIChsZXQgcCA9IDAsIHBhcnRzTGVuID0gcGFydHMubGVuZ3RoOyBwIDwgcGFydHNMZW47IHAgKz0gMikge1xuICAgICAgY29uc3QgbmFtZSA9IHBhcnRzW3BdO1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJ0c1twICsgMV07XG5cbiAgICAgIGlmIChuYW1lID09PSAndGNwJyAmJiBnZXRQb3J0KSB7XG4gICAgICAgIGNvbnN0IHBvcnQgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgICAgICByZXR1cm4gcG9ydDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hbWUgPT09ICdJbnN0YW5jZU5hbWUnKSB7XG4gICAgICAgIGlmICh2YWx1ZS50b1VwcGVyQ2FzZSgpID09PSBpbnN0YW5jZU5hbWUudG9VcHBlckNhc2UoKSkge1xuICAgICAgICAgIGdldFBvcnQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdldFBvcnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQXVDLFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXZDLE1BQU1HLHVCQUF1QixHQUFHLElBQUk7QUFDcEMsTUFBTUMsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJO0FBQ3hCLE1BQU1DLE9BQU8sR0FBRyxDQUFDO0FBQ2pCO0FBQ0Es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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-lookup.js","names":["_dns","_interopRequireDefault","require","_sender","e","__esModule","default","SQL_SERVER_BROWSER_PORT","TIMEOUT","RETRIES","MYSTERY_HEADER_LENGTH","instanceLookup","options","server","TypeError","instanceName","timeout","undefined","retries","lookup","dns","port","signal","throwIfAborted","response","request","Buffer","from","i","timeoutSignal","AbortSignal","sendMessage","any","err","aborted","Error","message","toString","foundPort","parseBrowserResponse","getPort","instances","split","len","length","instance","parts","p","partsLen","name","value","parseInt","toUpperCase"],"sources":["../src/instance-lookup.ts"],"sourcesContent":["import dns from 'dns';\n\nimport { sendMessage } from './sender';\n\nconst SQL_SERVER_BROWSER_PORT = 1434;\nconst TIMEOUT = 2 * 1000;\nconst RETRIES = 3;\n// There are three bytes at the start of the response, whose purpose is unknown.\nconst MYSTERY_HEADER_LENGTH = 3;\n\ntype LookupFunction = (hostname: string, options: dns.LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: dns.LookupAddress[]) => void) => void;\n\n// Most of the functionality has been determined from from jTDS's MSSqlServerInfo class.\nexport async function instanceLookup(options: { server: string, instanceName: string, timeout?: number, retries?: number, port?: number, lookup?: LookupFunction, signal: AbortSignal }) {\n const server = options.server;\n if (typeof server !== 'string') {\n throw new TypeError('Invalid arguments: \"server\" must be a string');\n }\n\n const instanceName = options.instanceName;\n if (typeof instanceName !== 'string') {\n throw new TypeError('Invalid arguments: \"instanceName\" must be a string');\n }\n\n const timeout = options.timeout === undefined ? TIMEOUT : options.timeout;\n if (typeof timeout !== 'number') {\n throw new TypeError('Invalid arguments: \"timeout\" must be a number');\n }\n\n const retries = options.retries === undefined ? RETRIES : options.retries;\n if (typeof retries !== 'number') {\n throw new TypeError('Invalid arguments: \"retries\" must be a number');\n }\n\n if (options.lookup !== undefined && typeof options.lookup !== 'function') {\n throw new TypeError('Invalid arguments: \"lookup\" must be a function');\n }\n const lookup = options.lookup ?? dns.lookup;\n\n if (options.port !== undefined && typeof options.port !== 'number') {\n throw new TypeError('Invalid arguments: \"port\" must be a number');\n }\n const port = options.port ?? SQL_SERVER_BROWSER_PORT;\n\n const signal = options.signal;\n\n signal.throwIfAborted();\n\n let response;\n\n const request = Buffer.from([0x02]);\n\n for (let i = 0; i <= retries; i++) {\n const timeoutSignal = AbortSignal.timeout(timeout);\n\n try {\n response = await sendMessage(options.server, port, lookup, AbortSignal.any([ signal, timeoutSignal ]), request);\n } catch (err) {\n // If the current attempt timed out, continue with the next\n if (timeoutSignal.aborted) {\n continue;\n }\n\n throw err;\n }\n }\n\n if (!response) {\n throw new Error('Failed to get response from SQL Server Browser on ' + server);\n }\n\n const message = response.toString('ascii', MYSTERY_HEADER_LENGTH);\n const foundPort = parseBrowserResponse(message, instanceName);\n\n if (!foundPort) {\n throw new Error('Port for ' + instanceName + ' not found in ' + options.server);\n }\n\n return foundPort;\n}\n\nexport function parseBrowserResponse(response: string, instanceName: string) {\n let getPort;\n\n const instances = response.split(';;');\n for (let i = 0, len = instances.length; i < len; i++) {\n const instance = instances[i];\n const parts = instance.split(';');\n\n for (let p = 0, partsLen = parts.length; p < partsLen; p += 2) {\n const name = parts[p];\n const value = parts[p + 1];\n\n if (name === 'tcp' && getPort) {\n const port = parseInt(value, 10);\n return port;\n }\n\n if (name === 'InstanceName') {\n if (value.toUpperCase() === instanceName.toUpperCase()) {\n getPort = true;\n } else {\n getPort = false;\n }\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const name = "Tedious";
package/lib/library.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.name = void 0;
7
+ const name = exports.name = 'Tedious';
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuYW1lIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9saWJyYXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBuYW1lID0gJ1RlZGlvdXMnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxNQUFNQSxJQUFJLEdBQUFDLE9BQUEsQ0FBQUQsSUFBQSxHQUFHLFNBQVMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.js","names":["name","exports"],"sources":["../src/library.ts"],"sourcesContent":["export const name = 'Tedious';\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG,SAAS","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ interface Options {
2
+ tdsVersion: number;
3
+ packetSize: number;
4
+ clientProgVer: number;
5
+ clientPid: number;
6
+ connectionId: number;
7
+ clientTimeZone: number;
8
+ clientLcid: number;
9
+ }
10
+ declare class Login7Payload {
11
+ tdsVersion: number;
12
+ packetSize: number;
13
+ clientProgVer: number;
14
+ clientPid: number;
15
+ connectionId: number;
16
+ clientTimeZone: number;
17
+ clientLcid: number;
18
+ readOnlyIntent: boolean;
19
+ initDbFatal: boolean;
20
+ userName: string | undefined;
21
+ password: string | undefined;
22
+ serverName: string | undefined;
23
+ appName: string | undefined;
24
+ hostname: string | undefined;
25
+ libraryName: string | undefined;
26
+ language: string | undefined;
27
+ database: string | undefined;
28
+ clientId: Buffer | undefined;
29
+ sspi: Buffer | undefined;
30
+ attachDbFile: string | undefined;
31
+ changePassword: string | undefined;
32
+ fedAuth: {
33
+ type: 'ADAL';
34
+ echo: boolean;
35
+ workflow: 'default' | 'integrated';
36
+ } | {
37
+ type: 'SECURITYTOKEN';
38
+ echo: boolean;
39
+ fedAuthToken: string;
40
+ } | undefined;
41
+ constructor({ tdsVersion, packetSize, clientProgVer, clientPid, connectionId, clientTimeZone, clientLcid }: Options);
42
+ toBuffer(): Buffer<ArrayBuffer>;
43
+ buildOptionFlags1(): number;
44
+ buildFeatureExt(): Buffer<ArrayBuffer>;
45
+ buildOptionFlags2(): number;
46
+ buildTypeFlags(): number;
47
+ buildOptionFlags3(): number;
48
+ scramblePassword(password: Buffer): Buffer<ArrayBufferLike>;
49
+ toString(indent?: string): string;
50
+ }
51
+ export default Login7Payload;