plugin-data-source-mssql 1.9.48 → 2.0.1

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 (408) hide show
  1. package/README.md +86 -72
  2. package/dist/node_modules/tedious/245.index.js +741 -0
  3. package/dist/node_modules/tedious/LICENSE +21 -0
  4. package/dist/node_modules/tedious/appveyor.yml +67 -0
  5. package/dist/node_modules/tedious/benchmarks/bulk-load/iterable.js +61 -0
  6. package/dist/node_modules/tedious/benchmarks/common.js +287 -0
  7. package/dist/node_modules/tedious/benchmarks/connection/open.js +26 -0
  8. package/dist/node_modules/tedious/benchmarks/package-lock.json +21173 -0
  9. package/dist/node_modules/tedious/benchmarks/package.json +11 -0
  10. package/dist/node_modules/tedious/benchmarks/query/call-tvp.js +105 -0
  11. package/dist/node_modules/tedious/benchmarks/query/insert-varbinary.js +46 -0
  12. package/dist/node_modules/tedious/benchmarks/query/select-many-rows.js +63 -0
  13. package/dist/node_modules/tedious/benchmarks/query/select-nvarchar.js +50 -0
  14. package/dist/node_modules/tedious/benchmarks/query/select-varbinary.js +50 -0
  15. package/dist/node_modules/tedious/benchmarks/request/rpcrequest-payload-tvp.js +45 -0
  16. package/dist/node_modules/tedious/benchmarks/request/rpcrequest-payload-varbinary.js +37 -0
  17. package/dist/node_modules/tedious/benchmarks/token-parser/colmetadata-token.js +27 -0
  18. package/dist/node_modules/tedious/benchmarks/token-parser/done-token.js +28 -0
  19. package/dist/node_modules/tedious/benchmarks/token-parser/simple-tokens.js +363 -0
  20. package/dist/node_modules/tedious/lib/all-headers.d.ts +2 -0
  21. package/dist/node_modules/tedious/lib/all-headers.js +24 -0
  22. package/dist/node_modules/tedious/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +82 -0
  23. package/dist/node_modules/tedious/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +55 -0
  24. package/dist/node_modules/tedious/lib/always-encrypted/cek-entry.d.ts +11 -0
  25. package/dist/node_modules/tedious/lib/always-encrypted/cek-entry.js +42 -0
  26. package/dist/node_modules/tedious/lib/always-encrypted/get-parameter-encryption-metadata.js +90 -0
  27. package/dist/node_modules/tedious/lib/always-encrypted/key-crypto.js +94 -0
  28. package/dist/node_modules/tedious/lib/always-encrypted/keystore-provider-azure-key-vault.d.ts +21 -0
  29. package/dist/node_modules/tedious/lib/always-encrypted/keystore-provider-azure-key-vault.js +247 -0
  30. package/dist/node_modules/tedious/lib/always-encrypted/symmetric-key-cache.js +36 -0
  31. package/dist/node_modules/tedious/lib/always-encrypted/symmetric-key.js +25 -0
  32. package/dist/node_modules/tedious/lib/always-encrypted/types.d.ts +73 -0
  33. package/dist/node_modules/tedious/lib/always-encrypted/types.js +48 -0
  34. package/dist/node_modules/tedious/lib/always-encrypted/utils.js +23 -0
  35. package/dist/node_modules/tedious/lib/bulk-load-payload.d.ts +8 -0
  36. package/dist/node_modules/tedious/lib/bulk-load-payload.js +23 -0
  37. package/dist/node_modules/tedious/lib/bulk-load.d.ts +275 -0
  38. package/dist/node_modules/tedious/lib/bulk-load.js +516 -0
  39. package/dist/node_modules/tedious/lib/collation.d.ts +28 -0
  40. package/dist/node_modules/tedious/lib/collation.js +348 -0
  41. package/dist/node_modules/tedious/lib/connection.d.ts +1310 -0
  42. package/dist/node_modules/tedious/lib/connection.js +2730 -0
  43. package/dist/node_modules/tedious/lib/connector.d.ts +18 -0
  44. package/dist/node_modules/tedious/lib/connector.js +150 -0
  45. package/dist/node_modules/tedious/lib/data-type.d.ts +455 -0
  46. package/dist/node_modules/tedious/lib/data-type.js +428 -0
  47. package/dist/node_modules/tedious/lib/data-types/bigint.d.ts +3 -0
  48. package/dist/node_modules/tedious/lib/data-types/bigint.js +53 -0
  49. package/dist/node_modules/tedious/lib/data-types/binary.d.ts +5 -0
  50. package/dist/node_modules/tedious/lib/data-types/binary.js +67 -0
  51. package/dist/node_modules/tedious/lib/data-types/bit.d.ts +3 -0
  52. package/dist/node_modules/tedious/lib/data-types/bit.js +46 -0
  53. package/dist/node_modules/tedious/lib/data-types/bitn.d.ts +3 -0
  54. package/dist/node_modules/tedious/lib/data-types/bitn.js +29 -0
  55. package/dist/node_modules/tedious/lib/data-types/char.d.ts +5 -0
  56. package/dist/node_modules/tedious/lib/data-types/char.js +86 -0
  57. package/dist/node_modules/tedious/lib/data-types/date.d.ts +3 -0
  58. package/dist/node_modules/tedious/lib/data-types/date.js +72 -0
  59. package/dist/node_modules/tedious/lib/data-types/datetime.d.ts +3 -0
  60. package/dist/node_modules/tedious/lib/data-types/datetime.js +93 -0
  61. package/dist/node_modules/tedious/lib/data-types/datetime2.d.ts +5 -0
  62. package/dist/node_modules/tedious/lib/data-types/datetime2.js +118 -0
  63. package/dist/node_modules/tedious/lib/data-types/datetimen.d.ts +3 -0
  64. package/dist/node_modules/tedious/lib/data-types/datetimen.js +29 -0
  65. package/dist/node_modules/tedious/lib/data-types/datetimeoffset.d.ts +5 -0
  66. package/dist/node_modules/tedious/lib/data-types/datetimeoffset.js +111 -0
  67. package/dist/node_modules/tedious/lib/data-types/decimal.d.ts +6 -0
  68. package/dist/node_modules/tedious/lib/data-types/decimal.js +107 -0
  69. package/dist/node_modules/tedious/lib/data-types/decimaln.d.ts +3 -0
  70. package/dist/node_modules/tedious/lib/data-types/decimaln.js +29 -0
  71. package/dist/node_modules/tedious/lib/data-types/float.d.ts +3 -0
  72. package/dist/node_modules/tedious/lib/data-types/float.js +47 -0
  73. package/dist/node_modules/tedious/lib/data-types/floatn.d.ts +3 -0
  74. package/dist/node_modules/tedious/lib/data-types/floatn.js +29 -0
  75. package/dist/node_modules/tedious/lib/data-types/image.d.ts +3 -0
  76. package/dist/node_modules/tedious/lib/data-types/image.js +56 -0
  77. package/dist/node_modules/tedious/lib/data-types/int.d.ts +3 -0
  78. package/dist/node_modules/tedious/lib/data-types/int.js +53 -0
  79. package/dist/node_modules/tedious/lib/data-types/intn.d.ts +3 -0
  80. package/dist/node_modules/tedious/lib/data-types/intn.js +29 -0
  81. package/dist/node_modules/tedious/lib/data-types/money.d.ts +3 -0
  82. package/dist/node_modules/tedious/lib/data-types/money.js +59 -0
  83. package/dist/node_modules/tedious/lib/data-types/moneyn.d.ts +3 -0
  84. package/dist/node_modules/tedious/lib/data-types/moneyn.js +29 -0
  85. package/dist/node_modules/tedious/lib/data-types/nchar.d.ts +5 -0
  86. package/dist/node_modules/tedious/lib/data-types/nchar.js +100 -0
  87. package/dist/node_modules/tedious/lib/data-types/ntext.d.ts +3 -0
  88. package/dist/node_modules/tedious/lib/data-types/ntext.js +60 -0
  89. package/dist/node_modules/tedious/lib/data-types/null.d.ts +3 -0
  90. package/dist/node_modules/tedious/lib/data-types/null.js +29 -0
  91. package/dist/node_modules/tedious/lib/data-types/numeric.d.ts +6 -0
  92. package/dist/node_modules/tedious/lib/data-types/numeric.js +106 -0
  93. package/dist/node_modules/tedious/lib/data-types/numericn.d.ts +3 -0
  94. package/dist/node_modules/tedious/lib/data-types/numericn.js +29 -0
  95. package/dist/node_modules/tedious/lib/data-types/nvarchar.d.ts +5 -0
  96. package/dist/node_modules/tedious/lib/data-types/nvarchar.js +133 -0
  97. package/dist/node_modules/tedious/lib/data-types/real.d.ts +3 -0
  98. package/dist/node_modules/tedious/lib/data-types/real.js +48 -0
  99. package/dist/node_modules/tedious/lib/data-types/smalldatetime.d.ts +3 -0
  100. package/dist/node_modules/tedious/lib/data-types/smalldatetime.js +83 -0
  101. package/dist/node_modules/tedious/lib/data-types/smallint.d.ts +3 -0
  102. package/dist/node_modules/tedious/lib/data-types/smallint.js +53 -0
  103. package/dist/node_modules/tedious/lib/data-types/smallmoney.d.ts +3 -0
  104. package/dist/node_modules/tedious/lib/data-types/smallmoney.js +51 -0
  105. package/dist/node_modules/tedious/lib/data-types/sql-variant.d.ts +3 -0
  106. package/dist/node_modules/tedious/lib/data-types/sql-variant.js +29 -0
  107. package/dist/node_modules/tedious/lib/data-types/text.d.ts +3 -0
  108. package/dist/node_modules/tedious/lib/data-types/text.js +69 -0
  109. package/dist/node_modules/tedious/lib/data-types/time.d.ts +3 -0
  110. package/dist/node_modules/tedious/lib/data-types/time.js +96 -0
  111. package/dist/node_modules/tedious/lib/data-types/tinyint.d.ts +3 -0
  112. package/dist/node_modules/tedious/lib/data-types/tinyint.js +53 -0
  113. package/dist/node_modules/tedious/lib/data-types/tvp.d.ts +3 -0
  114. package/dist/node_modules/tedious/lib/data-types/tvp.js +117 -0
  115. package/dist/node_modules/tedious/lib/data-types/udt.d.ts +3 -0
  116. package/dist/node_modules/tedious/lib/data-types/udt.js +29 -0
  117. package/dist/node_modules/tedious/lib/data-types/uniqueidentifier.d.ts +3 -0
  118. package/dist/node_modules/tedious/lib/data-types/uniqueidentifier.js +50 -0
  119. package/dist/node_modules/tedious/lib/data-types/varbinary.d.ts +5 -0
  120. package/dist/node_modules/tedious/lib/data-types/varbinary.js +119 -0
  121. package/dist/node_modules/tedious/lib/data-types/varchar.d.ts +5 -0
  122. package/dist/node_modules/tedious/lib/data-types/varchar.js +112 -0
  123. package/dist/node_modules/tedious/lib/data-types/xml.d.ts +3 -0
  124. package/dist/node_modules/tedious/lib/data-types/xml.js +29 -0
  125. package/dist/node_modules/tedious/lib/debug.d.ts +25 -0
  126. package/dist/node_modules/tedious/lib/debug.js +67 -0
  127. package/dist/node_modules/tedious/lib/errors/abort-error.d.ts +4 -0
  128. package/dist/node_modules/tedious/lib/errors/abort-error.js +15 -0
  129. package/dist/node_modules/tedious/lib/errors/timeout-error.d.ts +4 -0
  130. package/dist/node_modules/tedious/lib/errors/timeout-error.js +15 -0
  131. package/dist/node_modules/tedious/lib/errors.d.ts +17 -0
  132. package/dist/node_modules/tedious/lib/errors.js +23 -0
  133. package/dist/node_modules/tedious/lib/guid-parser.d.ts +3 -0
  134. package/dist/node_modules/tedious/lib/guid-parser.js +30 -0
  135. package/dist/node_modules/tedious/lib/incoming-message-stream.d.ts +19 -0
  136. package/dist/node_modules/tedious/lib/incoming-message-stream.js +97 -0
  137. package/dist/node_modules/tedious/lib/instance-lookup.d.ts +13 -0
  138. package/dist/node_modules/tedious/lib/instance-lookup.js +96 -0
  139. package/dist/node_modules/tedious/lib/library.d.ts +1 -0
  140. package/dist/node_modules/tedious/lib/library.js +8 -0
  141. package/dist/node_modules/tedious/lib/login7-payload.d.ts +51 -0
  142. package/dist/node_modules/tedious/lib/login7-payload.js +402 -0
  143. package/dist/node_modules/tedious/lib/message-io.d.ts +28 -0
  144. package/dist/node_modules/tedious/lib/message-io.js +153 -0
  145. package/dist/node_modules/tedious/lib/message.d.ts +11 -0
  146. package/dist/node_modules/tedious/lib/message.js +21 -0
  147. package/dist/node_modules/tedious/lib/metadata-parser.d.ts +48 -0
  148. package/dist/node_modules/tedious/lib/metadata-parser.js +380 -0
  149. package/dist/node_modules/tedious/lib/ntlm-payload.d.ts +23 -0
  150. package/dist/node_modules/tedious/lib/ntlm-payload.js +136 -0
  151. package/dist/node_modules/tedious/lib/ntlm.d.ts +4 -0
  152. package/dist/node_modules/tedious/lib/ntlm.js +72 -0
  153. package/dist/node_modules/tedious/lib/outgoing-message-stream.d.ts +15 -0
  154. package/dist/node_modules/tedious/lib/outgoing-message-stream.js +81 -0
  155. package/dist/node_modules/tedious/lib/packet.d.ts +33 -0
  156. package/dist/node_modules/tedious/lib/packet.js +191 -0
  157. package/dist/node_modules/tedious/lib/prelogin-payload.d.ts +61 -0
  158. package/dist/node_modules/tedious/lib/prelogin-payload.js +209 -0
  159. package/dist/node_modules/tedious/lib/request.d.ts +370 -0
  160. package/dist/node_modules/tedious/lib/request.js +387 -0
  161. package/dist/node_modules/tedious/lib/rpcrequest-payload.d.ts +16 -0
  162. package/dist/node_modules/tedious/lib/rpcrequest-payload.js +109 -0
  163. package/dist/node_modules/tedious/lib/sender.d.ts +5 -0
  164. package/dist/node_modules/tedious/lib/sender.js +83 -0
  165. package/dist/node_modules/tedious/lib/special-stored-procedure.d.ts +18 -0
  166. package/dist/node_modules/tedious/lib/special-stored-procedure.js +26 -0
  167. package/dist/node_modules/tedious/lib/sqlbatch-payload.d.ts +13 -0
  168. package/dist/node_modules/tedious/lib/sqlbatch-payload.js +34 -0
  169. package/dist/node_modules/tedious/lib/tds-versions.d.ts +6 -0
  170. package/dist/node_modules/tedious/lib/tds-versions.js +19 -0
  171. package/dist/node_modules/tedious/lib/tedious.d.ts +13 -0
  172. package/dist/node_modules/tedious/lib/tedious.js +249 -0
  173. package/dist/node_modules/tedious/lib/token/colmetadata-token-parser.d.ts +12 -0
  174. package/dist/node_modules/tedious/lib/token/colmetadata-token-parser.js +124 -0
  175. package/dist/node_modules/tedious/lib/token/done-token-parser.d.ts +6 -0
  176. package/dist/node_modules/tedious/lib/token/done-token-parser.js +76 -0
  177. package/dist/node_modules/tedious/lib/token/env-change-token-parser.d.ts +5 -0
  178. package/dist/node_modules/tedious/lib/token/env-change-token-parser.js +190 -0
  179. package/dist/node_modules/tedious/lib/token/feature-ext-ack-parser.d.ts +5 -0
  180. package/dist/node_modules/tedious/lib/token/feature-ext-ack-parser.js +52 -0
  181. package/dist/node_modules/tedious/lib/token/fedauth-info-parser.d.ts +5 -0
  182. package/dist/node_modules/tedious/lib/token/fedauth-info-parser.js +62 -0
  183. package/dist/node_modules/tedious/lib/token/handler.d.ts +135 -0
  184. package/dist/node_modules/tedious/lib/token/handler.js +444 -0
  185. package/dist/node_modules/tedious/lib/token/helpers.d.ts +28 -0
  186. package/dist/node_modules/tedious/lib/token/helpers.js +205 -0
  187. package/dist/node_modules/tedious/lib/token/infoerror-token-parser.d.ts +5 -0
  188. package/dist/node_modules/tedious/lib/token/infoerror-token-parser.js +80 -0
  189. package/dist/node_modules/tedious/lib/token/loginack-token-parser.d.ts +5 -0
  190. package/dist/node_modules/tedious/lib/token/loginack-token-parser.js +75 -0
  191. package/dist/node_modules/tedious/lib/token/nbcrow-token-parser.d.ts +4 -0
  192. package/dist/node_modules/tedious/lib/token/nbcrow-token-parser.js +104 -0
  193. package/dist/node_modules/tedious/lib/token/order-token-parser.d.ts +5 -0
  194. package/dist/node_modules/tedious/lib/token/order-token-parser.js +34 -0
  195. package/dist/node_modules/tedious/lib/token/returnstatus-token-parser.d.ts +5 -0
  196. package/dist/node_modules/tedious/lib/token/returnstatus-token-parser.js +21 -0
  197. package/dist/node_modules/tedious/lib/token/returnvalue-token-parser.d.ts +4 -0
  198. package/dist/node_modules/tedious/lib/token/returnvalue-token-parser.js +94 -0
  199. package/dist/node_modules/tedious/lib/token/row-token-parser.d.ts +4 -0
  200. package/dist/node_modules/tedious/lib/token/row-token-parser.js +77 -0
  201. package/dist/node_modules/tedious/lib/token/sspi-token-parser.d.ts +5 -0
  202. package/dist/node_modules/tedious/lib/token/sspi-token-parser.js +42 -0
  203. package/dist/node_modules/tedious/lib/token/stream-parser.d.ts +34 -0
  204. package/dist/node_modules/tedious/lib/token/stream-parser.js +341 -0
  205. package/dist/node_modules/tedious/lib/token/token-stream-parser.d.ts +15 -0
  206. package/dist/node_modules/tedious/lib/token/token-stream-parser.js +36 -0
  207. package/dist/node_modules/tedious/lib/token/token.d.ts +312 -0
  208. package/dist/node_modules/tedious/lib/token/token.js +328 -0
  209. package/dist/node_modules/tedious/lib/tracking-buffer/writable-tracking-buffer.d.ts +47 -0
  210. package/dist/node_modules/tedious/lib/tracking-buffer/writable-tracking-buffer.js +249 -0
  211. package/dist/node_modules/tedious/lib/transaction.d.ts +39 -0
  212. package/dist/node_modules/tedious/lib/transaction.js +137 -0
  213. package/dist/node_modules/tedious/lib/transient-error-lookup.d.ts +3 -0
  214. package/dist/node_modules/tedious/lib/transient-error-lookup.js +19 -0
  215. package/dist/node_modules/tedious/lib/utils/with-timeout.d.ts +7 -0
  216. package/dist/node_modules/tedious/lib/utils/with-timeout.js +36 -0
  217. package/dist/node_modules/tedious/lib/value-parser.d.ts +7 -0
  218. package/dist/node_modules/tedious/lib/value-parser.js +813 -0
  219. package/dist/node_modules/tedious/node_modules/@types/node/assert/strict.d.ts +105 -0
  220. package/dist/node_modules/tedious/node_modules/@types/node/assert.d.ts +955 -0
  221. package/dist/node_modules/tedious/node_modules/@types/node/async_hooks.d.ts +623 -0
  222. package/dist/node_modules/tedious/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  223. package/dist/node_modules/tedious/node_modules/@types/node/buffer.d.ts +1810 -0
  224. package/dist/node_modules/tedious/node_modules/@types/node/child_process.d.ts +1428 -0
  225. package/dist/node_modules/tedious/node_modules/@types/node/cluster.d.ts +486 -0
  226. package/dist/node_modules/tedious/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  227. package/dist/node_modules/tedious/node_modules/@types/node/console.d.ts +151 -0
  228. package/dist/node_modules/tedious/node_modules/@types/node/constants.d.ts +20 -0
  229. package/dist/node_modules/tedious/node_modules/@types/node/crypto.d.ts +4065 -0
  230. package/dist/node_modules/tedious/node_modules/@types/node/dgram.d.ts +564 -0
  231. package/dist/node_modules/tedious/node_modules/@types/node/diagnostics_channel.d.ts +576 -0
  232. package/dist/node_modules/tedious/node_modules/@types/node/dns/promises.d.ts +503 -0
  233. package/dist/node_modules/tedious/node_modules/@types/node/dns.d.ts +922 -0
  234. package/dist/node_modules/tedious/node_modules/@types/node/domain.d.ts +166 -0
  235. package/dist/node_modules/tedious/node_modules/@types/node/events.d.ts +1054 -0
  236. package/dist/node_modules/tedious/node_modules/@types/node/fs/promises.d.ts +1329 -0
  237. package/dist/node_modules/tedious/node_modules/@types/node/fs.d.ts +4676 -0
  238. package/dist/node_modules/tedious/node_modules/@types/node/globals.d.ts +150 -0
  239. package/dist/node_modules/tedious/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  240. package/dist/node_modules/tedious/node_modules/@types/node/http.d.ts +2167 -0
  241. package/dist/node_modules/tedious/node_modules/@types/node/http2.d.ts +2480 -0
  242. package/dist/node_modules/tedious/node_modules/@types/node/https.d.ts +405 -0
  243. package/dist/node_modules/tedious/node_modules/@types/node/index.d.ts +115 -0
  244. package/dist/node_modules/tedious/node_modules/@types/node/inspector/promises.d.ts +41 -0
  245. package/dist/node_modules/tedious/node_modules/@types/node/inspector.d.ts +224 -0
  246. package/dist/node_modules/tedious/node_modules/@types/node/inspector.generated.d.ts +4226 -0
  247. package/dist/node_modules/tedious/node_modules/@types/node/module.d.ts +819 -0
  248. package/dist/node_modules/tedious/node_modules/@types/node/net.d.ts +933 -0
  249. package/dist/node_modules/tedious/node_modules/@types/node/os.d.ts +507 -0
  250. package/dist/node_modules/tedious/node_modules/@types/node/package.json +155 -0
  251. package/dist/node_modules/tedious/node_modules/@types/node/path/posix.d.ts +8 -0
  252. package/dist/node_modules/tedious/node_modules/@types/node/path/win32.d.ts +8 -0
  253. package/dist/node_modules/tedious/node_modules/@types/node/path.d.ts +187 -0
  254. package/dist/node_modules/tedious/node_modules/@types/node/perf_hooks.d.ts +643 -0
  255. package/dist/node_modules/tedious/node_modules/@types/node/process.d.ts +2161 -0
  256. package/dist/node_modules/tedious/node_modules/@types/node/punycode.d.ts +117 -0
  257. package/dist/node_modules/tedious/node_modules/@types/node/querystring.d.ts +152 -0
  258. package/dist/node_modules/tedious/node_modules/@types/node/quic.d.ts +910 -0
  259. package/dist/node_modules/tedious/node_modules/@types/node/readline/promises.d.ts +161 -0
  260. package/dist/node_modules/tedious/node_modules/@types/node/readline.d.ts +541 -0
  261. package/dist/node_modules/tedious/node_modules/@types/node/repl.d.ts +415 -0
  262. package/dist/node_modules/tedious/node_modules/@types/node/sea.d.ts +162 -0
  263. package/dist/node_modules/tedious/node_modules/@types/node/sqlite.d.ts +955 -0
  264. package/dist/node_modules/tedious/node_modules/@types/node/stream/consumers.d.ts +38 -0
  265. package/dist/node_modules/tedious/node_modules/@types/node/stream/promises.d.ts +211 -0
  266. package/dist/node_modules/tedious/node_modules/@types/node/stream/web.d.ts +296 -0
  267. package/dist/node_modules/tedious/node_modules/@types/node/stream.d.ts +1760 -0
  268. package/dist/node_modules/tedious/node_modules/@types/node/string_decoder.d.ts +67 -0
  269. package/dist/node_modules/tedious/node_modules/@types/node/test/reporters.d.ts +96 -0
  270. package/dist/node_modules/tedious/node_modules/@types/node/test.d.ts +2240 -0
  271. package/dist/node_modules/tedious/node_modules/@types/node/timers/promises.d.ts +108 -0
  272. package/dist/node_modules/tedious/node_modules/@types/node/timers.d.ts +159 -0
  273. package/dist/node_modules/tedious/node_modules/@types/node/tls.d.ts +1198 -0
  274. package/dist/node_modules/tedious/node_modules/@types/node/trace_events.d.ts +197 -0
  275. package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  276. package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  277. package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  278. package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  279. package/dist/node_modules/tedious/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  280. package/dist/node_modules/tedious/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  281. package/dist/node_modules/tedious/node_modules/@types/node/tty.d.ts +250 -0
  282. package/dist/node_modules/tedious/node_modules/@types/node/url.d.ts +519 -0
  283. package/dist/node_modules/tedious/node_modules/@types/node/util/types.d.ts +558 -0
  284. package/dist/node_modules/tedious/node_modules/@types/node/util.d.ts +1662 -0
  285. package/dist/node_modules/tedious/node_modules/@types/node/v8.d.ts +983 -0
  286. package/dist/node_modules/tedious/node_modules/@types/node/vm.d.ts +1208 -0
  287. package/dist/node_modules/tedious/node_modules/@types/node/wasi.d.ts +202 -0
  288. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  289. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  290. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/console.d.ts +9 -0
  291. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  292. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  293. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  294. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/events.d.ts +106 -0
  295. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  296. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  297. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  298. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  299. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  300. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  301. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  302. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  303. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/url.d.ts +24 -0
  304. package/dist/node_modules/tedious/node_modules/@types/node/worker_threads.d.ts +717 -0
  305. package/dist/node_modules/tedious/node_modules/@types/node/zlib.d.ts +618 -0
  306. package/dist/node_modules/tedious/node_modules/bl/.github/dependabot.yml +16 -0
  307. package/dist/node_modules/tedious/node_modules/bl/.github/workflows/test-and-release.yml +61 -0
  308. package/dist/node_modules/tedious/node_modules/bl/BufferList.d.ts +431 -0
  309. package/dist/node_modules/tedious/node_modules/bl/BufferList.js +421 -0
  310. package/dist/node_modules/tedious/node_modules/bl/bl.js +84 -0
  311. package/dist/node_modules/tedious/node_modules/bl/index.d.ts +88 -0
  312. package/dist/node_modules/tedious/node_modules/bl/package.json +123 -0
  313. package/dist/node_modules/tedious/node_modules/bl/test/convert.js +21 -0
  314. package/dist/node_modules/tedious/node_modules/bl/test/indexOf.js +492 -0
  315. package/dist/node_modules/tedious/node_modules/bl/test/isBufferList.js +32 -0
  316. package/dist/node_modules/tedious/node_modules/bl/test/test.js +1032 -0
  317. package/dist/node_modules/tedious/node_modules/buffer/index.d.ts +194 -0
  318. package/dist/node_modules/tedious/node_modules/buffer/index.js +2106 -0
  319. package/dist/node_modules/tedious/node_modules/buffer/package.json +93 -0
  320. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_duplex.js +4 -0
  321. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_passthrough.js +4 -0
  322. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_readable.js +4 -0
  323. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_transform.js +4 -0
  324. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_writable.js +4 -0
  325. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +52 -0
  326. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/buffer_list.js +157 -0
  327. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/compose.js +194 -0
  328. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/destroy.js +290 -0
  329. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/duplex.js +143 -0
  330. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/duplexify.js +378 -0
  331. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +286 -0
  332. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/from.js +98 -0
  333. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +51 -0
  334. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/legacy.js +89 -0
  335. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/operators.js +457 -0
  336. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/passthrough.js +39 -0
  337. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/pipeline.js +471 -0
  338. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/readable.js +1290 -0
  339. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/state.js +39 -0
  340. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/transform.js +180 -0
  341. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/utils.js +327 -0
  342. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/writable.js +819 -0
  343. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/validators.js +530 -0
  344. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/browser.js +35 -0
  345. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/errors.js +343 -0
  346. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/index.js +65 -0
  347. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/primordials.js +124 -0
  348. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/util/inspect.js +55 -0
  349. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/util.js +148 -0
  350. package/dist/node_modules/tedious/node_modules/readable-stream/lib/stream/promises.js +43 -0
  351. package/dist/node_modules/tedious/node_modules/readable-stream/lib/stream.js +143 -0
  352. package/dist/node_modules/tedious/node_modules/readable-stream/package.json +88 -0
  353. package/dist/node_modules/tedious/node_modules/sprintf-js/dist/.gitattributes +4 -0
  354. package/dist/node_modules/tedious/node_modules/sprintf-js/dist/angular-sprintf.min.js +3 -0
  355. package/dist/node_modules/tedious/node_modules/sprintf-js/dist/sprintf.min.js +3 -0
  356. package/dist/node_modules/tedious/node_modules/sprintf-js/package.json +35 -0
  357. package/dist/node_modules/tedious/node_modules/sprintf-js/src/angular-sprintf.js +24 -0
  358. package/dist/node_modules/tedious/node_modules/sprintf-js/src/sprintf.js +231 -0
  359. package/dist/node_modules/tedious/node_modules/undici-types/agent.d.ts +32 -0
  360. package/dist/node_modules/tedious/node_modules/undici-types/api.d.ts +43 -0
  361. package/dist/node_modules/tedious/node_modules/undici-types/balanced-pool.d.ts +29 -0
  362. package/dist/node_modules/tedious/node_modules/undici-types/cache-interceptor.d.ts +172 -0
  363. package/dist/node_modules/tedious/node_modules/undici-types/cache.d.ts +36 -0
  364. package/dist/node_modules/tedious/node_modules/undici-types/client-stats.d.ts +15 -0
  365. package/dist/node_modules/tedious/node_modules/undici-types/client.d.ts +108 -0
  366. package/dist/node_modules/tedious/node_modules/undici-types/connector.d.ts +34 -0
  367. package/dist/node_modules/tedious/node_modules/undici-types/content-type.d.ts +21 -0
  368. package/dist/node_modules/tedious/node_modules/undici-types/cookies.d.ts +30 -0
  369. package/dist/node_modules/tedious/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  370. package/dist/node_modules/tedious/node_modules/undici-types/dispatcher.d.ts +276 -0
  371. package/dist/node_modules/tedious/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  372. package/dist/node_modules/tedious/node_modules/undici-types/errors.d.ts +161 -0
  373. package/dist/node_modules/tedious/node_modules/undici-types/eventsource.d.ts +66 -0
  374. package/dist/node_modules/tedious/node_modules/undici-types/fetch.d.ts +211 -0
  375. package/dist/node_modules/tedious/node_modules/undici-types/formdata.d.ts +108 -0
  376. package/dist/node_modules/tedious/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  377. package/dist/node_modules/tedious/node_modules/undici-types/global-origin.d.ts +7 -0
  378. package/dist/node_modules/tedious/node_modules/undici-types/h2c-client.d.ts +73 -0
  379. package/dist/node_modules/tedious/node_modules/undici-types/handlers.d.ts +15 -0
  380. package/dist/node_modules/tedious/node_modules/undici-types/header.d.ts +160 -0
  381. package/dist/node_modules/tedious/node_modules/undici-types/index.d.ts +80 -0
  382. package/dist/node_modules/tedious/node_modules/undici-types/interceptors.d.ts +39 -0
  383. package/dist/node_modules/tedious/node_modules/undici-types/mock-agent.d.ts +68 -0
  384. package/dist/node_modules/tedious/node_modules/undici-types/mock-call-history.d.ts +111 -0
  385. package/dist/node_modules/tedious/node_modules/undici-types/mock-client.d.ts +27 -0
  386. package/dist/node_modules/tedious/node_modules/undici-types/mock-errors.d.ts +12 -0
  387. package/dist/node_modules/tedious/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  388. package/dist/node_modules/tedious/node_modules/undici-types/mock-pool.d.ts +27 -0
  389. package/dist/node_modules/tedious/node_modules/undici-types/package.json +55 -0
  390. package/dist/node_modules/tedious/node_modules/undici-types/patch.d.ts +29 -0
  391. package/dist/node_modules/tedious/node_modules/undici-types/pool-stats.d.ts +19 -0
  392. package/dist/node_modules/tedious/node_modules/undici-types/pool.d.ts +41 -0
  393. package/dist/node_modules/tedious/node_modules/undici-types/proxy-agent.d.ts +29 -0
  394. package/dist/node_modules/tedious/node_modules/undici-types/readable.d.ts +68 -0
  395. package/dist/node_modules/tedious/node_modules/undici-types/retry-agent.d.ts +8 -0
  396. package/dist/node_modules/tedious/node_modules/undici-types/retry-handler.d.ts +125 -0
  397. package/dist/node_modules/tedious/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  398. package/dist/node_modules/tedious/node_modules/undici-types/util.d.ts +18 -0
  399. package/dist/node_modules/tedious/node_modules/undici-types/utility.d.ts +7 -0
  400. package/dist/node_modules/tedious/node_modules/undici-types/webidl.d.ts +341 -0
  401. package/dist/node_modules/tedious/node_modules/undici-types/websocket.d.ts +186 -0
  402. package/dist/node_modules/tedious/package.json +1 -0
  403. package/dist/node_modules/tedious/tsconfig.build-types.json +15 -0
  404. package/dist/node_modules/tedious/tsconfig.json +29 -0
  405. package/dist/node_modules/tedious/types/js-md4.d.ts +7 -0
  406. package/dist/node_modules/tedious/types/native-duplexpair.d.ts +12 -0
  407. package/dist/server/data-source/MssqlExternalDataSource.js +35 -4
  408. package/package.json +2 -2
@@ -0,0 +1,363 @@
1
+ const { createBenchmark } = require('../common');
2
+
3
+ const { Parser } = require('tedious/lib/token/token-stream-parser');
4
+
5
+ const bench = createBenchmark(main, {
6
+ n: [10, 100, 1000]
7
+ });
8
+
9
+ async function * repeat(data, n) {
10
+ for (let i = 0; i < n; i++) {
11
+ yield data;
12
+ }
13
+ }
14
+
15
+ function main({ n }) {
16
+ const data = Buffer.from([
17
+ '810300000000001000380269006400000000000900E7C8000904D00034046E00',
18
+ '61006D006500000000000900E7FFFF0904D000340B6400650073006300720069',
19
+ '007000740069006F006E00D1010000000A0052006F0077002000300044000000',
20
+ '00000000440000004500780061006D0070006C00650020005400650073007400',
21
+ '20004400650073006300720069007000740069006F006E00200066006F007200',
22
+ '200052006F0077002000300000000000D1020000000A0052006F007700200031',
23
+ '004400000000000000440000004500780061006D0070006C0065002000540065',
24
+ '007300740020004400650073006300720069007000740069006F006E00200066',
25
+ '006F007200200052006F0077002000310000000000D1030000000A0052006F00',
26
+ '7700200032004400000000000000440000004500780061006D0070006C006500',
27
+ '2000540065007300740020004400650073006300720069007000740069006F00',
28
+ '6E00200066006F007200200052006F0077002000320000000000D1040000000A',
29
+ '0052006F007700200033004400000000000000440000004500780061006D0070',
30
+ '006C006500200054006500730074002000440065007300630072006900700074',
31
+ '0069006F006E00200066006F007200200052006F0077002000330000000000D1',
32
+ '050000000A0052006F0077002000340044000000000000004400000045007800',
33
+ '61006D0070006C00650020005400650073007400200044006500730063007200',
34
+ '69007000740069006F006E00200066006F007200200052006F00770020003400',
35
+ '00000000D1060000000A0052006F007700200035004400000000000000440000',
36
+ '004500780061006D0070006C0065002000540065007300740020004400650073',
37
+ '006300720069007000740069006F006E00200066006F007200200052006F0077',
38
+ '002000350000000000D1070000000A0052006F00770020003600440000000000',
39
+ '0000440000004500780061006D0070006C006500200054006500730074002000',
40
+ '4400650073006300720069007000740069006F006E00200066006F0072002000',
41
+ '52006F0077002000360000000000D1080000000A0052006F0077002000370044',
42
+ '00000000000000440000004500780061006D0070006C00650020005400650073',
43
+ '00740020004400650073006300720069007000740069006F006E00200066006F',
44
+ '007200200052006F0077002000370000000000D1090000000A0052006F007700',
45
+ '200038004400000000000000440000004500780061006D0070006C0065002000',
46
+ '540065007300740020004400650073006300720069007000740069006F006E00',
47
+ '200066006F007200200052006F0077002000380000000000D10A0000000A0052',
48
+ '006F007700200039004400000000000000440000004500780061006D0070006C',
49
+ '0065002000540065007300740020004400650073006300720069007000740069',
50
+ '006F006E00200066006F007200200052006F0077002000390000000000D10B00',
51
+ '00000C0052006F00770020003100300046000000000000004600000045007800',
52
+ '61006D0070006C00650020005400650073007400200044006500730063007200',
53
+ '69007000740069006F006E00200066006F007200200052006F00770020003100',
54
+ '300000000000D10C0000000C0052006F00770020003100310046000000000000',
55
+ '00460000004500780061006D0070006C00650020005400650073007400200044',
56
+ '00650073006300720069007000740069006F006E00200066006F007200200052',
57
+ '006F00770020003100310000000000D10D0000000C0052006F00770020003100',
58
+ '32004600000000000000460000004500780061006D0070006C00650020005400',
59
+ '65007300740020004400650073006300720069007000740069006F006E002000',
60
+ '66006F007200200052006F00770020003100320000000000D10E0000000C0052',
61
+ '006F0077002000310033004600000000000000460000004500780061006D0070',
62
+ '006C006500200054006500730074002000440065007300630072006900700074',
63
+ '0069006F006E00200066006F007200200052006F007700200031003300000000',
64
+ '00D10F0000000C0052006F007700200031003400460000000000000046000000',
65
+ '4500780061006D0070006C006500200054006500730074002000440065007300',
66
+ '6300720069007000740069006F006E00200066006F007200200052006F007700',
67
+ '20003100340000000000D1100000000C0052006F007700200031003500460000',
68
+ '0000000000460000004500780061006D0070006C006500200054006500730074',
69
+ '0020004400650073006300720069007000740069006F006E00200066006F0072',
70
+ '00200052006F00770020003100350000000000D1110000000C0052006F007700',
71
+ '2000310036004600000000000000460000004500780061006D0070006C006500',
72
+ '2000540065007300740020004400650073006300720069007000740069006F00',
73
+ '6E00200066006F007200200052006F00770020003100360000000000D1120000',
74
+ '000C0052006F0077002000310037004600000000000000460000004500780061',
75
+ '006D0070006C0065002000540065007300740020004400650073006300720069',
76
+ '007000740069006F006E00200066006F007200200052006F0077002000310037',
77
+ '0000000000D1130000000C0052006F0077002000310038004600000000000000',
78
+ '460000004500780061006D0070006C0065002000540065007300740020004400',
79
+ '650073006300720069007000740069006F006E00200066006F00720020005200',
80
+ '6F00770020003100380000000000D1140000000C0052006F0077002000310039',
81
+ '004600000000000000460000004500780061006D0070006C0065002000540065',
82
+ '007300740020004400650073006300720069007000740069006F006E00200066',
83
+ '006F007200200052006F00770020003100390000000000D1150000000C005200',
84
+ '6F0077002000320030004600000000000000460000004500780061006D007000',
85
+ '6C00650020005400650073007400200044006500730063007200690070007400',
86
+ '69006F006E00200066006F007200200052006F00770020003200300000000000',
87
+ 'D1160000000C0052006F00770020003200310046000000000000004600000045',
88
+ '00780061006D0070006C00650020005400650073007400200044006500730063',
89
+ '00720069007000740069006F006E00200066006F007200200052006F00770020',
90
+ '003200310000000000D1170000000C0052006F00770020003200320046000000',
91
+ '00000000460000004500780061006D0070006C00650020005400650073007400',
92
+ '20004400650073006300720069007000740069006F006E00200066006F007200',
93
+ '200052006F00770020003200320000000000D1180000000C0052006F00770020',
94
+ '00320033004600000000000000460000004500780061006D0070006C00650020',
95
+ '00540065007300740020004400650073006300720069007000740069006F006E',
96
+ '00200066006F007200200052006F00770020003200330000000000D119000000',
97
+ '0C0052006F007700200032003400460000000000000046000000450078006100',
98
+ '6D0070006C006500200054006500730074002000440065007300630072006900',
99
+ '7000740069006F006E00200066006F007200200052006F007700200032003400',
100
+ '00000000D11A0000000C0052006F007700200032003500460000000000000046',
101
+ '0000004500780061006D0070006C006500200054006500730074002000440065',
102
+ '0073006300720069007000740069006F006E00200066006F007200200052006F',
103
+ '00770020003200350000000000D11B0000000C0052006F007700200032003600',
104
+ '4600000000000000460000004500780061006D0070006C006500200054006500',
105
+ '7300740020004400650073006300720069007000740069006F006E0020006600',
106
+ '6F007200200052006F00770020003200360000000000D11C0000000C0052006F',
107
+ '0077002000320037004600000000000000460000004500780061006D0070006C',
108
+ '0065002000540065007300740020004400650073006300720069007000740069',
109
+ '006F006E00200066006F007200200052006F00770020003200370000000000D1',
110
+ '1D0000000C0052006F0077002000320038004600000000000000460000004500',
111
+ '780061006D0070006C0065002000540065007300740020004400650073006300',
112
+ '720069007000740069006F006E00200066006F007200200052006F0077002000',
113
+ '3200380000000000D11E0000000C0052006F0077002000320039004600000000',
114
+ '000000460000004500780061006D0070006C0065002000540065007300740020',
115
+ '004400650073006300720069007000740069006F006E00200066006F00720020',
116
+ '0052006F00770020003200390000000000D11F0000000C0052006F0077002000',
117
+ '330030004600000000000000460000004500780061006D0070006C0065002000',
118
+ '540065007300740020004400650073006300720069007000740069006F006E00',
119
+ '200066006F007200200052006F00770020003300300000000000D1200000000C',
120
+ '0052006F0077002000330031004600000000000000460000004500780061006D',
121
+ '0070006C00650020005400650073007400200044006500730063007200690070',
122
+ '00740069006F006E00200066006F007200200052006F00770020003300310000',
123
+ '000000D1210000000C0052006F00770020003300320046000000000000004600',
124
+ '00004500780061006D0070006C00650020005400650073007400200044006500',
125
+ '73006300720069007000740069006F006E00200066006F007200200052006F00',
126
+ '770020003300320000000000D1220000000C0052006F00770020003300330046',
127
+ '00000000000000460000004500780061006D0070006C00650020005400650073',
128
+ '00740020004400650073006300720069007000740069006F006E00200066006F',
129
+ '007200200052006F00770020003300330000000000D1230000000C0052006F00',
130
+ '77002000330034004600000000000000460000004500780061006D0070006C00',
131
+ '6500200054006500730074002000440065007300630072006900700074006900',
132
+ '6F006E00200066006F007200200052006F00770020003300340000000000D124',
133
+ '0000000C0052006F007700200033003500460000000000000046000000450078',
134
+ '0061006D0070006C006500200054006500730074002000440065007300630072',
135
+ '0069007000740069006F006E00200066006F007200200052006F007700200033',
136
+ '00350000000000D1250000000C0052006F007700200033003600460000000000',
137
+ '0000460000004500780061006D0070006C006500200054006500730074002000',
138
+ '4400650073006300720069007000740069006F006E00200066006F0072002000',
139
+ '52006F00770020003300360000000000D1260000000C0052006F007700200033',
140
+ '0037004600000000000000460000004500780061006D0070006C006500200054',
141
+ '0065007300740020004400650073006300720069007000740069006F006E0020',
142
+ '0066006F007200200052006F00770020003300370000000000D1270000000C00',
143
+ '52006F0077002000330038004600000000000000200000004500780061006D00',
144
+ '70006C006500200054006500730074002000440065007300',
145
+ '260000006300720069007000740069006F006E00200066006F00720020005200',
146
+ '6F00770020003300380000000000D1280000000C0052006F0077002000330039',
147
+ '004600000000000000460000004500780061006D0070006C0065002000540065',
148
+ '007300740020004400650073006300720069007000740069006F006E00200066',
149
+ '006F007200200052006F00770020003300390000000000D1290000000C005200',
150
+ '6F0077002000340030004600000000000000460000004500780061006D007000',
151
+ '6C00650020005400650073007400200044006500730063007200690070007400',
152
+ '69006F006E00200066006F007200200052006F00770020003400300000000000',
153
+ 'D12A0000000C0052006F00770020003400310046000000000000004600000045',
154
+ '00780061006D0070006C00650020005400650073007400200044006500730063',
155
+ '00720069007000740069006F006E00200066006F007200200052006F00770020',
156
+ '003400310000000000D12B0000000C0052006F00770020003400320046000000',
157
+ '00000000460000004500780061006D0070006C00650020005400650073007400',
158
+ '20004400650073006300720069007000740069006F006E00200066006F007200',
159
+ '200052006F00770020003400320000000000D12C0000000C0052006F00770020',
160
+ '00340033004600000000000000460000004500780061006D0070006C00650020',
161
+ '00540065007300740020004400650073006300720069007000740069006F006E',
162
+ '00200066006F007200200052006F00770020003400330000000000D12D000000',
163
+ '0C0052006F007700200034003400460000000000000046000000450078006100',
164
+ '6D0070006C006500200054006500730074002000440065007300630072006900',
165
+ '7000740069006F006E00200066006F007200200052006F007700200034003400',
166
+ '00000000D12E0000000C0052006F007700200034003500460000000000000046',
167
+ '0000004500780061006D0070006C006500200054006500730074002000440065',
168
+ '0073006300720069007000740069006F006E00200066006F007200200052006F',
169
+ '00770020003400350000000000D12F0000000C0052006F007700200034003600',
170
+ '4600000000000000460000004500780061006D0070006C006500200054006500',
171
+ '7300740020004400650073006300720069007000740069006F006E0020006600',
172
+ '6F007200200052006F00770020003400360000000000D1300000000C0052006F',
173
+ '0077002000340037004600000000000000460000004500780061006D0070006C',
174
+ '0065002000540065007300740020004400650073006300720069007000740069',
175
+ '006F006E00200066006F007200200052006F00770020003400370000000000D1',
176
+ '310000000C0052006F0077002000340038004600000000000000460000004500',
177
+ '780061006D0070006C0065002000540065007300740020004400650073006300',
178
+ '720069007000740069006F006E00200066006F007200200052006F0077002000',
179
+ '3400380000000000D1320000000C0052006F0077002000340039004600000000',
180
+ '000000460000004500780061006D0070006C0065002000540065007300740020',
181
+ '004400650073006300720069007000740069006F006E00200066006F00720020',
182
+ '0052006F00770020003400390000000000D1330000000C0052006F0077002000',
183
+ '350030004600000000000000460000004500780061006D0070006C0065002000',
184
+ '540065007300740020004400650073006300720069007000740069006F006E00',
185
+ '200066006F007200200052006F00770020003500300000000000D1340000000C',
186
+ '0052006F0077002000350031004600000000000000460000004500780061006D',
187
+ '0070006C00650020005400650073007400200044006500730063007200690070',
188
+ '00740069006F006E00200066006F007200200052006F00770020003500310000',
189
+ '000000D1350000000C0052006F00770020003500320046000000000000004600',
190
+ '00004500780061006D0070006C00650020005400650073007400200044006500',
191
+ '73006300720069007000740069006F006E00200066006F007200200052006F00',
192
+ '770020003500320000000000D1360000000C0052006F00770020003500330046',
193
+ '00000000000000460000004500780061006D0070006C00650020005400650073',
194
+ '00740020004400650073006300720069007000740069006F006E00200066006F',
195
+ '007200200052006F00770020003500330000000000D1370000000C0052006F00',
196
+ '77002000350034004600000000000000460000004500780061006D0070006C00',
197
+ '6500200054006500730074002000440065007300630072006900700074006900',
198
+ '6F006E00200066006F007200200052006F00770020003500340000000000D138',
199
+ '0000000C0052006F007700200035003500460000000000000046000000450078',
200
+ '0061006D0070006C006500200054006500730074002000440065007300630072',
201
+ '0069007000740069006F006E00200066006F007200200052006F007700200035',
202
+ '00350000000000D1390000000C0052006F007700200035003600460000000000',
203
+ '0000460000004500780061006D0070006C006500200054006500730074002000',
204
+ '4400650073006300720069007000740069006F006E00200066006F0072002000',
205
+ '52006F00770020003500360000000000D13A0000000C0052006F007700200035',
206
+ '0037004600000000000000460000004500780061006D0070006C006500200054',
207
+ '0065007300740020004400650073006300720069007000740069006F006E0020',
208
+ '0066006F007200200052006F00770020003500370000000000D13B0000000C00',
209
+ '52006F0077002000350038004600000000000000460000004500780061006D00',
210
+ '70006C0065002000540065007300740020004400650073006300720069007000',
211
+ '740069006F006E00200066006F007200200052006F0077002000350038000000',
212
+ '0000D13C0000000C0052006F0077002000350039004600000000000000460000',
213
+ '004500780061006D0070006C0065002000540065007300740020004400650073',
214
+ '006300720069007000740069006F006E00200066006F007200200052006F0077',
215
+ '0020003500390000000000D13D0000000C0052006F0077002000360030004600',
216
+ '000000000000460000004500780061006D0070006C0065002000540065007300',
217
+ '740020004400650073006300720069007000740069006F006E00200066006F00',
218
+ '7200200052006F00770020003600300000000000D13E0000000C0052006F0077',
219
+ '002000360031004600000000000000460000004500780061006D0070006C0065',
220
+ '002000540065007300740020004400650073006300720069007000740069006F',
221
+ '006E00200066006F007200200052006F00770020003600310000000000D13F00',
222
+ '00000C0052006F00770020003600320046000000000000004600000045007800',
223
+ '61006D0070006C00650020005400650073007400200044006500730063007200',
224
+ '69007000740069006F006E00200066006F007200200052006F00770020003600',
225
+ '320000000000D1400000000C0052006F00770020003600330046000000000000',
226
+ '00460000004500780061006D0070006C00650020005400650073007400200044',
227
+ '00650073006300720069007000740069006F006E00200066006F007200200052',
228
+ '006F00770020003600330000000000D1410000000C0052006F00770020003600',
229
+ '34004600000000000000460000004500780061006D0070006C00650020005400',
230
+ '65007300740020004400650073006300720069007000740069006F006E002000',
231
+ '66006F007200200052006F00770020003600340000000000D1420000000C0052',
232
+ '006F0077002000360035004600000000000000460000004500780061006D0070',
233
+ '006C006500200054006500730074002000440065007300630072006900700074',
234
+ '0069006F006E00200066006F007200200052006F007700200036003500000000',
235
+ '00D1430000000C0052006F007700200036003600460000000000000046000000',
236
+ '4500780061006D0070006C006500200054006500730074002000440065007300',
237
+ '6300720069007000740069006F006E00200066006F007200200052006F007700',
238
+ '20003600360000000000D1440000000C0052006F007700200036003700460000',
239
+ '0000000000460000004500780061006D0070006C006500200054006500730074',
240
+ '0020004400650073006300720069007000740069006F006E00200066006F0072',
241
+ '00200052006F00770020003600370000000000D1450000000C0052006F007700',
242
+ '2000360038004600000000000000460000004500780061006D0070006C006500',
243
+ '2000540065007300740020004400650073006300720069007000740069006F00',
244
+ '6E00200066006F007200200052006F00770020003600380000000000D1460000',
245
+ '000C0052006F0077002000360039004600000000000000460000004500780061',
246
+ '006D0070006C0065002000540065007300740020004400650073006300720069',
247
+ '007000740069006F006E00200066006F007200200052006F0077002000360039',
248
+ '0000000000D1470000000C0052006F0077002000370030004600000000000000',
249
+ '460000004500780061006D0070006C0065002000540065007300740020004400',
250
+ '650073006300720069007000740069006F006E00200066006F00720020005200',
251
+ '6F00770020003700300000000000D1480000000C0052006F0077002000370031',
252
+ '004600000000000000460000004500780061006D0070006C0065002000540065',
253
+ '007300740020004400650073006300720069007000740069006F006E00200066',
254
+ '006F007200200052006F00770020003700310000000000D1490000000C005200',
255
+ '6F0077002000370032004600000000000000460000004500780061006D007000',
256
+ '6C00650020005400650073007400200044006500730063007200690070007400',
257
+ '69006F006E00200066006F007200200052006F00770020003700320000000000',
258
+ 'D14A0000000C0052006F00770020003700330046000000000000004600000045',
259
+ '00780061006D0070006C00650020005400650073007400200044006500730063',
260
+ '00720069007000740069006F006E00200066006F007200200052006F00770020',
261
+ '003700330000000000D14B0000000C0052006F00770020003700340046000000',
262
+ '00000000460000004500780061006D0070006C00650020005400650073007400',
263
+ '20004400650073006300720069007000740069006F006E00200066006F007200',
264
+ '200052006F00770020003700340000000000D14C0000000C0052006F00770020',
265
+ '00370035004600000000000000460000004500780061006D0070006C00650020',
266
+ '00540065007300740020004400650073006300720069007000740069006F006E',
267
+ '00200066006F007200200052006F00770020003700350000000000D14D000000',
268
+ '0C0052006F007700200037003600460000000000000046000000450078006100',
269
+ '6D0070006C006500200054006500730074002000440065007300630072006900',
270
+ '7000740069006F006E00200066006F007200200052006F007700200037003600',
271
+ '00000000D14E0000000C0052006F007700200037003700460000000000000015',
272
+ '0000004500780061006D0070006C00650020005400650073',
273
+ '3100000000740020004400650073006300720069007000740069006F006E0020',
274
+ '0066006F007200200052006F00770020003700370000000000D14F0000000C00',
275
+ '52006F0077002000370038004600000000000000460000004500780061006D00',
276
+ '70006C0065002000540065007300740020004400650073006300720069007000',
277
+ '740069006F006E00200066006F007200200052006F0077002000370038000000',
278
+ '0000D1500000000C0052006F0077002000370039004600000000000000460000',
279
+ '004500780061006D0070006C0065002000540065007300740020004400650073',
280
+ '006300720069007000740069006F006E00200066006F007200200052006F0077',
281
+ '0020003700390000000000D1510000000C0052006F0077002000380030004600',
282
+ '000000000000460000004500780061006D0070006C0065002000540065007300',
283
+ '740020004400650073006300720069007000740069006F006E00200066006F00',
284
+ '7200200052006F00770020003800300000000000D1520000000C0052006F0077',
285
+ '002000380031004600000000000000460000004500780061006D0070006C0065',
286
+ '002000540065007300740020004400650073006300720069007000740069006F',
287
+ '006E00200066006F007200200052006F00770020003800310000000000D15300',
288
+ '00000C0052006F00770020003800320046000000000000004600000045007800',
289
+ '61006D0070006C00650020005400650073007400200044006500730063007200',
290
+ '69007000740069006F006E00200066006F007200200052006F00770020003800',
291
+ '320000000000D1540000000C0052006F00770020003800330046000000000000',
292
+ '00460000004500780061006D0070006C00650020005400650073007400200044',
293
+ '00650073006300720069007000740069006F006E00200066006F007200200052',
294
+ '006F00770020003800330000000000D1550000000C0052006F00770020003800',
295
+ '34004600000000000000460000004500780061006D0070006C00650020005400',
296
+ '65007300740020004400650073006300720069007000740069006F006E002000',
297
+ '66006F007200200052006F00770020003800340000000000D1560000000C0052',
298
+ '006F0077002000380035004600000000000000460000004500780061006D0070',
299
+ '006C006500200054006500730074002000440065007300630072006900700074',
300
+ '0069006F006E00200066006F007200200052006F007700200038003500000000',
301
+ '00D1570000000C0052006F007700200038003600460000000000000046000000',
302
+ '4500780061006D0070006C006500200054006500730074002000440065007300',
303
+ '6300720069007000740069006F006E00200066006F007200200052006F007700',
304
+ '20003800360000000000D1580000000C0052006F007700200038003700460000',
305
+ '0000000000460000004500780061006D0070006C006500200054006500730074',
306
+ '0020004400650073006300720069007000740069006F006E00200066006F0072',
307
+ '00200052006F00770020003800370000000000D1590000000C0052006F007700',
308
+ '2000380038004600000000000000460000004500780061006D0070006C006500',
309
+ '2000540065007300740020004400650073006300720069007000740069006F00',
310
+ '6E00200066006F007200200052006F00770020003800380000000000D15A0000',
311
+ '000C0052006F0077002000380039004600000000000000460000004500780061',
312
+ '006D0070006C0065002000540065007300740020004400650073006300720069',
313
+ '007000740069006F006E00200066006F007200200052006F0077002000380039',
314
+ '0000000000D15B0000000C0052006F0077002000390030004600000000000000',
315
+ '460000004500780061006D0070006C0065002000540065007300740020004400',
316
+ '650073006300720069007000740069006F006E00200066006F00720020005200',
317
+ '6F00770020003900300000000000D15C0000000C0052006F0077002000390031',
318
+ '004600000000000000460000004500780061006D0070006C0065002000540065',
319
+ '007300740020004400650073006300720069007000740069006F006E00200066',
320
+ '006F007200200052006F00770020003900310000000000D15D0000000C005200',
321
+ '6F0077002000390032004600000000000000460000004500780061006D007000',
322
+ '6C00650020005400650073007400200044006500730063007200690070007400',
323
+ '69006F006E00200066006F007200200052006F00770020003900320000000000',
324
+ 'D15E0000000C0052006F00770020003900330046000000000000004600000045',
325
+ '00780061006D0070006C00650020005400650073007400200044006500730063',
326
+ '00720069007000740069006F006E00200066006F007200200052006F00770020',
327
+ '003900330000000000D15F0000000C0052006F00770020003900340046000000',
328
+ '00000000460000004500780061006D0070006C00650020005400650073007400',
329
+ '20004400650073006300720069007000740069006F006E00200066006F007200',
330
+ '200052006F00770020003900340000000000D1600000000C0052006F00770020',
331
+ '00390035004600000000000000460000004500780061006D0070006C00650020',
332
+ '00540065007300740020004400650073006300720069007000740069006F006E',
333
+ '00200066006F007200200052006F00770020003900350000000000D161000000',
334
+ '0C0052006F007700200039003600460000000000000046000000450078006100',
335
+ '6D0070006C006500200054006500730074002000440065007300630072006900',
336
+ '7000740069006F006E00200066006F007200200052006F007700200039003600',
337
+ '00000000D1620000000C0052006F007700200039003700460000000000000046',
338
+ '0000004500780061006D0070006C006500200054006500730074002000440065',
339
+ '0073006300720069007000740069006F006E00200066006F007200200052006F',
340
+ '00770020003900370000000000D1630000000C0052006F007700200039003800',
341
+ '4600000000000000460000004500780061006D0070006C006500200054006500',
342
+ '7300740020004400650073006300720069007000740069006F006E0020006600',
343
+ '6F007200200052006F00770020003900380000000000D1640000000C0052006F',
344
+ '0077002000390039004600000000000000460000004500780061006D0070006C',
345
+ '0065002000540065007300740020004400650073006300720069007000740069',
346
+ '006F006E00200066006F007200200052006F00770020003900390000000000FF',
347
+ '1100C10064000000000000007900000000FE0000E0000000000000000000'
348
+ ].join(''), 'hex');
349
+
350
+ const parser = new Parser(repeat(data, n), {}, {
351
+ onColMetadata: () => { },
352
+ onRow: () => { },
353
+ onDoneInProc: () => { },
354
+ onDoneProc: () => { },
355
+ onReturnStatus: () => { }
356
+ }, {});
357
+
358
+ bench.start();
359
+
360
+ parser.on('end', () => {
361
+ bench.end(n);
362
+ });
363
+ }
@@ -0,0 +1,2 @@
1
+ import WritableTrackingBuffer from './tracking-buffer/writable-tracking-buffer';
2
+ export declare function writeToTrackingBuffer(buffer: WritableTrackingBuffer, txnDescriptor: Buffer, outstandingRequestCount: number): WritableTrackingBuffer;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.writeToTrackingBuffer = writeToTrackingBuffer;
7
+ const TYPE = {
8
+ QUERY_NOTIFICATIONS: 1,
9
+ TXN_DESCRIPTOR: 2,
10
+ TRACE_ACTIVITY: 3
11
+ };
12
+ const TXNDESCRIPTOR_HEADER_DATA_LEN = 4 + 8;
13
+ const TXNDESCRIPTOR_HEADER_LEN = 4 + 2 + TXNDESCRIPTOR_HEADER_DATA_LEN;
14
+ function writeToTrackingBuffer(buffer, txnDescriptor, outstandingRequestCount) {
15
+ buffer.writeUInt32LE(0);
16
+ buffer.writeUInt32LE(TXNDESCRIPTOR_HEADER_LEN);
17
+ buffer.writeUInt16LE(TYPE.TXN_DESCRIPTOR);
18
+ buffer.writeBuffer(txnDescriptor);
19
+ buffer.writeUInt32LE(outstandingRequestCount);
20
+ const data = buffer.data;
21
+ data.writeUInt32LE(data.length, 0);
22
+ return buffer;
23
+ }
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFIiwiUVVFUllfTk9USUZJQ0FUSU9OUyIsIlRYTl9ERVNDUklQVE9SIiwiVFJBQ0VfQUNUSVZJVFkiLCJUWE5ERVNDUklQVE9SX0hFQURFUl9EQVRBX0xFTiIsIlRYTkRFU0NSSVBUT1JfSEVBREVSX0xFTiIsIndyaXRlVG9UcmFja2luZ0J1ZmZlciIsImJ1ZmZlciIsInR4bkRlc2NyaXB0b3IiLCJvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVVJbnQxNkxFIiwid3JpdGVCdWZmZXIiLCJkYXRhIiwibGVuZ3RoIl0sInNvdXJjZXMiOlsiLi4vc3JjL2FsbC1oZWFkZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5cbmNvbnN0IFRZUEUgPSB7XG4gIFFVRVJZX05PVElGSUNBVElPTlM6IDEsXG4gIFRYTl9ERVNDUklQVE9SOiAyLFxuICBUUkFDRV9BQ1RJVklUWTogM1xufTtcblxuY29uc3QgVFhOREVTQ1JJUFRPUl9IRUFERVJfREFUQV9MRU4gPSA0ICsgODtcblxuY29uc3QgVFhOREVTQ1JJUFRPUl9IRUFERVJfTEVOID0gNCArIDIgKyBUWE5ERVNDUklQVE9SX0hFQURFUl9EQVRBX0xFTjtcblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlVG9UcmFja2luZ0J1ZmZlcihidWZmZXI6IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIsIHR4bkRlc2NyaXB0b3I6IEJ1ZmZlciwgb3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQ6IG51bWJlcikge1xuICBidWZmZXIud3JpdGVVSW50MzJMRSgwKTtcbiAgYnVmZmVyLndyaXRlVUludDMyTEUoVFhOREVTQ1JJUFRPUl9IRUFERVJfTEVOKTtcbiAgYnVmZmVyLndyaXRlVUludDE2TEUoVFlQRS5UWE5fREVTQ1JJUFRPUik7XG4gIGJ1ZmZlci53cml0ZUJ1ZmZlcih0eG5EZXNjcmlwdG9yKTtcbiAgYnVmZmVyLndyaXRlVUludDMyTEUob3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQpO1xuXG4gIGNvbnN0IGRhdGEgPSBidWZmZXIuZGF0YTtcbiAgZGF0YS53cml0ZVVJbnQzMkxFKGRhdGEubGVuZ3RoLCAwKTtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsTUFBTUEsSUFBSSxHQUFHO0VBQ1hDLG1CQUFtQixFQUFFLENBQUM7RUFDdEJDLGNBQWMsRUFBRSxDQUFDO0VBQ2pCQyxjQUFjLEVBQUU7QUFDbEIsQ0FBQztBQUVELE1BQU1DLDZCQUE2QixHQUFHLENBQUMsR0FBRyxDQUFDO0FBRTNDLE1BQU1DLHdCQUF3QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUdELDZCQUE2QjtBQUUvRCxTQUFTRSxxQkFBcUJBLENBQUNDLE1BQThCLEVBQUVDLGFBQXFCLEVBQUVDLHVCQUErQixFQUFFO0VBQzVIRixNQUFNLENBQUNHLGFBQWEsQ0FBQyxDQUFDLENBQUM7RUFDdkJILE1BQU0sQ0FBQ0csYUFBYSxDQUFDTCx3QkFBd0IsQ0FBQztFQUM5Q0UsTUFBTSxDQUFDSSxhQUFhLENBQUNYLElBQUksQ0FBQ0UsY0FBYyxDQUFDO0VBQ3pDSyxNQUFNLENBQUNLLFdBQVcsQ0FBQ0osYUFBYSxDQUFDO0VBQ2pDRCxNQUFNLENBQUNHLGFBQWEsQ0FBQ0QsdUJBQXVCLENBQUM7RUFFN0MsTUFBTUksSUFBSSxHQUFHTixNQUFNLENBQUNNLElBQUk7RUFDeEJBLElBQUksQ0FBQ0gsYUFBYSxDQUFDRyxJQUFJLENBQUNDLE1BQU0sRUFBRSxDQUFDLENBQUM7RUFDbEMsT0FBT1AsTUFBTTtBQUNmIn0=
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.algorithmName = exports.AeadAes256CbcHmac256Algorithm = void 0;
7
+ var _types = require("./types");
8
+ var _crypto = require("crypto");
9
+ var _aeadAes256CbcHmacEncryptionKey = require("./aead-aes-256-cbc-hmac-encryption-key");
10
+ // This code is based on the `mssql-jdbc` library published under the conditions of MIT license.
11
+ // Copyright (c) 2019 Microsoft Corporation
12
+
13
+ const algorithmName = exports.algorithmName = 'AEAD_AES_256_CBC_HMAC_SHA256';
14
+ const algorithmVersion = 0x1;
15
+ const blockSizeInBytes = 16;
16
+ class AeadAes256CbcHmac256Algorithm {
17
+ constructor(columnEncryptionKey, encryptionType) {
18
+ this.keySizeInBytes = _aeadAes256CbcHmacEncryptionKey.keySize / 8;
19
+ this.version = Buffer.from([algorithmVersion]);
20
+ this.versionSize = Buffer.from([1]);
21
+ this.minimumCipherTextLengthInBytesNoAuthenticationTag = 1 + blockSizeInBytes + blockSizeInBytes;
22
+ this.minimumCipherTextLengthInBytesWithAuthenticationTag = this.minimumCipherTextLengthInBytesNoAuthenticationTag + this.keySizeInBytes;
23
+ this.columnEncryptionkey = columnEncryptionKey;
24
+ this.isDeterministic = encryptionType === _types.SQLServerEncryptionType.Deterministic;
25
+ }
26
+ encryptData(plaintText) {
27
+ let iv;
28
+ if (this.isDeterministic === true) {
29
+ const hmacIv = (0, _crypto.createHmac)('sha256', this.columnEncryptionkey.getIvKey());
30
+ hmacIv.update(plaintText);
31
+ iv = hmacIv.digest().slice(0, blockSizeInBytes);
32
+ } else {
33
+ iv = (0, _crypto.randomBytes)(blockSizeInBytes);
34
+ }
35
+ const encryptCipher = (0, _crypto.createCipheriv)('aes-256-cbc', this.columnEncryptionkey.getEncryptionKey(), iv);
36
+ const encryptedBuffer = Buffer.concat([encryptCipher.update(plaintText), encryptCipher.final()]);
37
+ const authenticationTag = this._prepareAuthenticationTag(iv, encryptedBuffer, 0, encryptedBuffer.length);
38
+ return Buffer.concat([Buffer.from([algorithmVersion]), authenticationTag, iv, encryptedBuffer]);
39
+ }
40
+ decryptData(cipherText) {
41
+ const iv = Buffer.alloc(blockSizeInBytes);
42
+ const minimumCiperTextLength = this.minimumCipherTextLengthInBytesWithAuthenticationTag;
43
+ if (cipherText.length < minimumCiperTextLength) {
44
+ throw new Error(`Specified ciphertext has an invalid size of ${cipherText.length} bytes, which is below the minimum ${minimumCiperTextLength} bytes required for decryption.`);
45
+ }
46
+ let startIndex = 0;
47
+ if (cipherText[0] !== algorithmVersion) {
48
+ throw new Error(`The specified ciphertext's encryption algorithm version ${Buffer.from([cipherText[0]]).toString('hex')} does not match the expected encryption algorithm version ${algorithmVersion}.`);
49
+ }
50
+ startIndex += 1;
51
+ let authenticationTagOffset = 0;
52
+ authenticationTagOffset = startIndex;
53
+ startIndex += this.keySizeInBytes;
54
+ cipherText.copy(iv, 0, startIndex, startIndex + iv.length);
55
+ startIndex += iv.length;
56
+ const cipherTextOffset = startIndex;
57
+ const cipherTextCount = cipherText.length - startIndex;
58
+ const authenticationTag = this._prepareAuthenticationTag(iv, cipherText, cipherTextOffset, cipherTextCount);
59
+ if (0 !== authenticationTag.compare(cipherText, authenticationTagOffset, Math.min(authenticationTagOffset + cipherTextCount, authenticationTagOffset + authenticationTag.length), 0, Math.min(cipherTextCount, authenticationTag.length))) {
60
+ throw new Error('Specified ciphertext has an invalid authentication tag.');
61
+ }
62
+ let plainText;
63
+ const decipher = (0, _crypto.createDecipheriv)('aes-256-cbc', this.columnEncryptionkey.getEncryptionKey(), iv);
64
+ try {
65
+ plainText = decipher.update(cipherText.slice(cipherTextOffset, cipherTextOffset + cipherTextCount));
66
+ plainText = Buffer.concat([plainText, decipher.final()]);
67
+ } catch (error) {
68
+ throw new Error(`Internal error while decryption: ${error.message}`);
69
+ }
70
+ return plainText;
71
+ }
72
+ _prepareAuthenticationTag(iv, cipherText, offset, length) {
73
+ const hmac = (0, _crypto.createHmac)('sha256', this.columnEncryptionkey.getMacKey());
74
+ hmac.update(this.version);
75
+ hmac.update(iv);
76
+ hmac.update(cipherText.slice(offset, offset + length));
77
+ hmac.update(this.versionSize);
78
+ return hmac.digest();
79
+ }
80
+ }
81
+ exports.AeadAes256CbcHmac256Algorithm = AeadAes256CbcHmac256Algorithm;
82
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZXMiLCJyZXF1aXJlIiwiX2NyeXB0byIsIl9hZWFkQWVzMjU2Q2JjSG1hY0VuY3J5cHRpb25LZXkiLCJhbGdvcml0aG1OYW1lIiwiZXhwb3J0cyIsImFsZ29yaXRobVZlcnNpb24iLCJibG9ja1NpemVJbkJ5dGVzIiwiQWVhZEFlczI1NkNiY0htYWMyNTZBbGdvcml0aG0iLCJjb25zdHJ1Y3RvciIsImNvbHVtbkVuY3J5cHRpb25LZXkiLCJlbmNyeXB0aW9uVHlwZSIsImtleVNpemVJbkJ5dGVzIiwia2V5U2l6ZSIsInZlcnNpb24iLCJCdWZmZXIiLCJmcm9tIiwidmVyc2lvblNpemUiLCJtaW5pbXVtQ2lwaGVyVGV4dExlbmd0aEluQnl0ZXNOb0F1dGhlbnRpY2F0aW9uVGFnIiwibWluaW11bUNpcGhlclRleHRMZW5ndGhJbkJ5dGVzV2l0aEF1dGhlbnRpY2F0aW9uVGFnIiwiY29sdW1uRW5jcnlwdGlvbmtleSIsImlzRGV0ZXJtaW5pc3RpYyIsIlNRTFNlcnZlckVuY3J5cHRpb25UeXBlIiwiRGV0ZXJtaW5pc3RpYyIsImVuY3J5cHREYXRhIiwicGxhaW50VGV4dCIsIml2IiwiaG1hY0l2IiwiY3JlYXRlSG1hYyIsImdldEl2S2V5IiwidXBkYXRlIiwiZGlnZXN0Iiwic2xpY2UiLCJyYW5kb21CeXRlcyIsImVuY3J5cHRDaXBoZXIiLCJjcmVhdGVDaXBoZXJpdiIsImdldEVuY3J5cHRpb25LZXkiLCJlbmNyeXB0ZWRCdWZmZXIiLCJjb25jYXQiLCJmaW5hbCIsImF1dGhlbnRpY2F0aW9uVGFnIiwiX3ByZXBhcmVBdXRoZW50aWNhdGlvblRhZyIsImxlbmd0aCIsImRlY3J5cHREYXRhIiwiY2lwaGVyVGV4dCIsImFsbG9jIiwibWluaW11bUNpcGVyVGV4dExlbmd0aCIsIkVycm9yIiwic3RhcnRJbmRleCIsInRvU3RyaW5nIiwiYXV0aGVudGljYXRpb25UYWdPZmZzZXQiLCJjb3B5IiwiY2lwaGVyVGV4dE9mZnNldCIsImNpcGhlclRleHRDb3VudCIsImNvbXBhcmUiLCJNYXRoIiwibWluIiwicGxhaW5UZXh0IiwiZGVjaXBoZXIiLCJjcmVhdGVEZWNpcGhlcml2IiwiZXJyb3IiLCJtZXNzYWdlIiwib2Zmc2V0IiwiaG1hYyIsImdldE1hY0tleSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL2FlYWQtYWVzLTI1Ni1jYmMtaG1hYy1hbGdvcml0aG0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBjb2RlIGlzIGJhc2VkIG9uIHRoZSBgbXNzcWwtamRiY2AgbGlicmFyeSBwdWJsaXNoZWQgdW5kZXIgdGhlIGNvbmRpdGlvbnMgb2YgTUlUIGxpY2Vuc2UuXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTkgTWljcm9zb2Z0IENvcnBvcmF0aW9uXG5cbmltcG9ydCB7IHR5cGUgRW5jcnlwdGlvbkFsZ29yaXRobSwgU1FMU2VydmVyRW5jcnlwdGlvblR5cGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZUhtYWMsIHJhbmRvbUJ5dGVzLCBjcmVhdGVDaXBoZXJpdiwgY3JlYXRlRGVjaXBoZXJpdiB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBBZWFkQWVzMjU2Q2JjSG1hYzI1NkVuY3J5cHRpb25LZXksIGtleVNpemUgfSBmcm9tICcuL2FlYWQtYWVzLTI1Ni1jYmMtaG1hYy1lbmNyeXB0aW9uLWtleSc7XG5cbmV4cG9ydCBjb25zdCBhbGdvcml0aG1OYW1lID0gJ0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEEyNTYnO1xuY29uc3QgYWxnb3JpdGhtVmVyc2lvbiA9IDB4MTtcbmNvbnN0IGJsb2NrU2l6ZUluQnl0ZXMgPSAxNjtcblxuZXhwb3J0IGNsYXNzIEFlYWRBZXMyNTZDYmNIbWFjMjU2QWxnb3JpdGhtIGltcGxlbWVudHMgRW5jcnlwdGlvbkFsZ29yaXRobSB7XG4gIGRlY2xhcmUgcHJpdmF0ZSBjb2x1bW5FbmNyeXB0aW9ua2V5OiBBZWFkQWVzMjU2Q2JjSG1hYzI1NkVuY3J5cHRpb25LZXk7XG4gIGRlY2xhcmUgcHJpdmF0ZSBpc0RldGVybWluaXN0aWM6IGJvb2xlYW47XG4gIGRlY2xhcmUgcHJpdmF0ZSBrZXlTaXplSW5CeXRlczogbnVtYmVyO1xuICBkZWNsYXJlIHByaXZhdGUgdmVyc2lvbjogQnVmZmVyO1xuICBkZWNsYXJlIHByaXZhdGUgdmVyc2lvblNpemU6IEJ1ZmZlcjtcbiAgZGVjbGFyZSBwcml2YXRlIG1pbmltdW1DaXBoZXJUZXh0TGVuZ3RoSW5CeXRlc05vQXV0aGVudGljYXRpb25UYWc6IG51bWJlcjtcbiAgZGVjbGFyZSBwcml2YXRlIG1pbmltdW1DaXBoZXJUZXh0TGVuZ3RoSW5CeXRlc1dpdGhBdXRoZW50aWNhdGlvblRhZzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGNvbHVtbkVuY3J5cHRpb25LZXk6IEFlYWRBZXMyNTZDYmNIbWFjMjU2RW5jcnlwdGlvbktleSwgZW5jcnlwdGlvblR5cGU6IFNRTFNlcnZlckVuY3J5cHRpb25UeXBlKSB7XG4gICAgdGhpcy5rZXlTaXplSW5CeXRlcyA9IGtleVNpemUgLyA4O1xuICAgIHRoaXMudmVyc2lvbiA9IEJ1ZmZlci5mcm9tKFthbGdvcml0aG1WZXJzaW9uXSk7XG4gICAgdGhpcy52ZXJzaW9uU2l6ZSA9IEJ1ZmZlci5mcm9tKFsxXSk7XG4gICAgdGhpcy5taW5pbXVtQ2lwaGVyVGV4dExlbmd0aEluQnl0ZXNOb0F1dGhlbnRpY2F0aW9uVGFnID0gMSArIGJsb2NrU2l6ZUluQnl0ZXMgKyBibG9ja1NpemVJbkJ5dGVzO1xuICAgIHRoaXMubWluaW11bUNpcGhlclRleHRMZW5ndGhJbkJ5dGVzV2l0aEF1dGhlbnRpY2F0aW9uVGFnID0gdGhpcy5taW5pbXVtQ2lwaGVyVGV4dExlbmd0aEluQnl0ZXNOb0F1dGhlbnRpY2F0aW9uVGFnICsgdGhpcy5rZXlTaXplSW5CeXRlcztcbiAgICB0aGlzLmNvbHVtbkVuY3J5cHRpb25rZXkgPSBjb2x1bW5FbmNyeXB0aW9uS2V5O1xuXG4gICAgdGhpcy5pc0RldGVybWluaXN0aWMgPSBlbmNyeXB0aW9uVHlwZSA9PT0gU1FMU2VydmVyRW5jcnlwdGlvblR5cGUuRGV0ZXJtaW5pc3RpYztcbiAgfVxuXG4gIGVuY3J5cHREYXRhKHBsYWludFRleHQ6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gICAgbGV0IGl2OiBCdWZmZXI7XG5cbiAgICBpZiAodGhpcy5pc0RldGVybWluaXN0aWMgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IGhtYWNJdiA9IGNyZWF0ZUhtYWMoJ3NoYTI1NicsIHRoaXMuY29sdW1uRW5jcnlwdGlvbmtleS5nZXRJdktleSgpKTtcbiAgICAgIGhtYWNJdi51cGRhdGUocGxhaW50VGV4dCk7XG4gICAgICBpdiA9IGhtYWNJdi5kaWdlc3QoKS5zbGljZSgwLCBibG9ja1NpemVJbkJ5dGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXYgPSByYW5kb21CeXRlcyhibG9ja1NpemVJbkJ5dGVzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbmNyeXB0Q2lwaGVyID0gY3JlYXRlQ2lwaGVyaXYoJ2Flcy0yNTYtY2JjJywgdGhpcy5jb2x1bW5FbmNyeXB0aW9ua2V5LmdldEVuY3J5cHRpb25LZXkoKSwgaXYpO1xuXG4gICAgY29uc3QgZW5jcnlwdGVkQnVmZmVyID0gQnVmZmVyLmNvbmNhdChbZW5jcnlwdENpcGhlci51cGRhdGUocGxhaW50VGV4dCksIGVuY3J5cHRDaXBoZXIuZmluYWwoKV0pO1xuXG4gICAgY29uc3QgYXV0aGVudGljYXRpb25UYWc6IEJ1ZmZlciA9IHRoaXMuX3ByZXBhcmVBdXRoZW50aWNhdGlvblRhZyhpdiwgZW5jcnlwdGVkQnVmZmVyLCAwLCBlbmNyeXB0ZWRCdWZmZXIubGVuZ3RoKTtcblxuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtCdWZmZXIuZnJvbShbYWxnb3JpdGhtVmVyc2lvbl0pLCBhdXRoZW50aWNhdGlvblRhZywgaXYsIGVuY3J5cHRlZEJ1ZmZlcl0pO1xuICB9XG5cbiAgZGVjcnlwdERhdGEoY2lwaGVyVGV4dDogQnVmZmVyKTogQnVmZmVyIHtcbiAgICBjb25zdCBpdjogQnVmZmVyID0gQnVmZmVyLmFsbG9jKGJsb2NrU2l6ZUluQnl0ZXMpO1xuXG4gICAgY29uc3QgbWluaW11bUNpcGVyVGV4dExlbmd0aDogbnVtYmVyID0gdGhpcy5taW5pbXVtQ2lwaGVyVGV4dExlbmd0aEluQnl0ZXNXaXRoQXV0aGVudGljYXRpb25UYWc7XG5cbiAgICBpZiAoY2lwaGVyVGV4dC5sZW5ndGggPCBtaW5pbXVtQ2lwZXJUZXh0TGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNwZWNpZmllZCBjaXBoZXJ0ZXh0IGhhcyBhbiBpbnZhbGlkIHNpemUgb2YgJHtjaXBoZXJUZXh0Lmxlbmd0aH0gYnl0ZXMsIHdoaWNoIGlzIGJlbG93IHRoZSBtaW5pbXVtICR7bWluaW11bUNpcGVyVGV4dExlbmd0aH0gYnl0ZXMgcmVxdWlyZWQgZm9yIGRlY3J5cHRpb24uYCk7XG4gICAgfVxuXG4gICAgbGV0IHN0YXJ0SW5kZXggPSAwO1xuICAgIGlmIChjaXBoZXJUZXh0WzBdICE9PSBhbGdvcml0aG1WZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBzcGVjaWZpZWQgY2lwaGVydGV4dCdzIGVuY3J5cHRpb24gYWxnb3JpdGhtIHZlcnNpb24gJHtCdWZmZXIuZnJvbShbY2lwaGVyVGV4dFswXV0pLnRvU3RyaW5nKCdoZXgnKX0gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIHZlcnNpb24gJHthbGdvcml0aG1WZXJzaW9ufS5gKTtcbiAgICB9XG5cbiAgICBzdGFydEluZGV4ICs9IDE7XG4gICAgbGV0IGF1dGhlbnRpY2F0aW9uVGFnT2Zmc2V0ID0gMDtcblxuICAgIGF1dGhlbnRpY2F0aW9uVGFnT2Zmc2V0ID0gc3RhcnRJbmRleDtcbiAgICBzdGFydEluZGV4ICs9IHRoaXMua2V5U2l6ZUluQnl0ZXM7XG5cbiAgICBjaXBoZXJUZXh0LmNvcHkoaXYsIDAsIHN0YXJ0SW5kZXgsIHN0YXJ0SW5kZXggKyBpdi5sZW5ndGgpO1xuICAgIHN0YXJ0SW5kZXggKz0gaXYubGVuZ3RoO1xuXG4gICAgY29uc3QgY2lwaGVyVGV4dE9mZnNldCA9IHN0YXJ0SW5kZXg7XG4gICAgY29uc3QgY2lwaGVyVGV4dENvdW50ID0gY2lwaGVyVGV4dC5sZW5ndGggLSBzdGFydEluZGV4O1xuXG4gICAgY29uc3QgYXV0aGVudGljYXRpb25UYWc6IEJ1ZmZlciA9IHRoaXMuX3ByZXBhcmVBdXRoZW50aWNhdGlvblRhZyhpdiwgY2lwaGVyVGV4dCwgY2lwaGVyVGV4dE9mZnNldCwgY2lwaGVyVGV4dENvdW50KTtcblxuICAgIGlmICgwICE9PSBhdXRoZW50aWNhdGlvblRhZy5jb21wYXJlKGNpcGhlclRleHQsIGF1dGhlbnRpY2F0aW9uVGFnT2Zmc2V0LCBNYXRoLm1pbihhdXRoZW50aWNhdGlvblRhZ09mZnNldCArIGNpcGhlclRleHRDb3VudCwgYXV0aGVudGljYXRpb25UYWdPZmZzZXQgKyBhdXRoZW50aWNhdGlvblRhZy5sZW5ndGgpLCAwLCBNYXRoLm1pbihjaXBoZXJUZXh0Q291bnQsIGF1dGhlbnRpY2F0aW9uVGFnLmxlbmd0aCkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NwZWNpZmllZCBjaXBoZXJ0ZXh0IGhhcyBhbiBpbnZhbGlkIGF1dGhlbnRpY2F0aW9uIHRhZy4nKTtcbiAgICB9XG5cbiAgICBsZXQgcGxhaW5UZXh0OiBCdWZmZXI7XG5cbiAgICBjb25zdCBkZWNpcGhlciA9IGNyZWF0ZURlY2lwaGVyaXYoJ2Flcy0yNTYtY2JjJywgdGhpcy5jb2x1bW5FbmNyeXB0aW9ua2V5LmdldEVuY3J5cHRpb25LZXkoKSwgaXYpO1xuICAgIHRyeSB7XG4gICAgICBwbGFpblRleHQgPSBkZWNpcGhlci51cGRhdGUoY2lwaGVyVGV4dC5zbGljZShjaXBoZXJUZXh0T2Zmc2V0LCBjaXBoZXJUZXh0T2Zmc2V0ICsgY2lwaGVyVGV4dENvdW50KSk7XG4gICAgICBwbGFpblRleHQgPSBCdWZmZXIuY29uY2F0KFtwbGFpblRleHQsIGRlY2lwaGVyLmZpbmFsKCldKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludGVybmFsIGVycm9yIHdoaWxlIGRlY3J5cHRpb246ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGxhaW5UZXh0O1xuICB9XG5cbiAgX3ByZXBhcmVBdXRoZW50aWNhdGlvblRhZyhpdjogQnVmZmVyLCBjaXBoZXJUZXh0OiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IEJ1ZmZlciB7XG4gICAgY29uc3QgaG1hYyA9IGNyZWF0ZUhtYWMoJ3NoYTI1NicsIHRoaXMuY29sdW1uRW5jcnlwdGlvbmtleS5nZXRNYWNLZXkoKSk7XG5cbiAgICBobWFjLnVwZGF0ZSh0aGlzLnZlcnNpb24pO1xuICAgIGhtYWMudXBkYXRlKGl2KTtcbiAgICBobWFjLnVwZGF0ZShjaXBoZXJUZXh0LnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgbGVuZ3RoKSk7XG4gICAgaG1hYy51cGRhdGUodGhpcy52ZXJzaW9uU2l6ZSk7XG4gICAgcmV0dXJuIGhtYWMuZGlnZXN0KCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsK0JBQUEsR0FBQUYsT0FBQTtBQUxBO0FBQ0E7O0FBTU8sTUFBTUcsYUFBYSxHQUFBQyxPQUFBLENBQUFELGFBQUEsR0FBRyw4QkFBOEI7QUFDM0QsTUFBTUUsZ0JBQWdCLEdBQUcsR0FBRztBQUM1QixNQUFNQyxnQkFBZ0IsR0FBRyxFQUFFO0FBRXBCLE1BQU1DLDZCQUE2QixDQUFnQztFQVN4RUMsV0FBV0EsQ0FBQ0MsbUJBQXNELEVBQUVDLGNBQXVDLEVBQUU7SUFDM0csSUFBSSxDQUFDQyxjQUFjLEdBQUdDLHVDQUFPLEdBQUcsQ0FBQztJQUNqQyxJQUFJLENBQUNDLE9BQU8sR0FBR0MsTUFB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
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.keySize = exports.generateKeySalt = exports.deriveKey = exports.AeadAes256CbcHmac256EncryptionKey = void 0;
7
+ var _crypto = require("crypto");
8
+ var _symmetricKey = _interopRequireDefault(require("./symmetric-key"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ // This code is based on the `mssql-jdbc` library published under the conditions of MIT license.
11
+ // Copyright (c) 2019 Microsoft Corporation
12
+
13
+ const keySize = exports.keySize = 256;
14
+ const keySizeInBytes = keySize / 8;
15
+ const deriveKey = (rootKey, salt) => {
16
+ const hmac = (0, _crypto.createHmac)('sha256', rootKey);
17
+ hmac.update(Buffer.from(salt, 'utf16le'));
18
+ return hmac.digest();
19
+ };
20
+ exports.deriveKey = deriveKey;
21
+ const generateKeySalt = (keyType, algorithmName, keySize) => `Microsoft SQL Server cell ${keyType} key ` + `with encryption algorithm:${algorithmName} and key length:${keySize}`;
22
+ exports.generateKeySalt = generateKeySalt;
23
+ class AeadAes256CbcHmac256EncryptionKey extends _symmetricKey.default {
24
+ constructor(rootKey, algorithmName) {
25
+ super(rootKey);
26
+ this.algorithmName = algorithmName;
27
+ this.encryptionKeySaltFormat = generateKeySalt('encryption', this.algorithmName, keySize);
28
+ this.macKeySaltFormat = generateKeySalt('MAC', this.algorithmName, keySize);
29
+ this.ivKeySaltFormat = generateKeySalt('IV', this.algorithmName, keySize);
30
+ if (rootKey.length !== keySizeInBytes) {
31
+ throw new Error(`The column encryption key has been successfully decrypted but it's length: ${rootKey.length} does not match the length: ${keySizeInBytes} for algorithm "${this.algorithmName}". Verify the encrypted value of the column encryption key in the database.`);
32
+ }
33
+ try {
34
+ const encKeyBuff = deriveKey(rootKey, this.encryptionKeySaltFormat);
35
+ this.encryptionKey = new _symmetricKey.default(encKeyBuff);
36
+ const macKeyBuff = deriveKey(rootKey, this.macKeySaltFormat);
37
+ this.macKey = new _symmetricKey.default(macKeyBuff);
38
+ const ivKeyBuff = deriveKey(rootKey, this.ivKeySaltFormat);
39
+ this.ivKey = new _symmetricKey.default(ivKeyBuff);
40
+ } catch (error) {
41
+ throw new Error(`Key extraction failed : ${error.message}.`);
42
+ }
43
+ }
44
+ getEncryptionKey() {
45
+ return this.encryptionKey.rootKey;
46
+ }
47
+ getMacKey() {
48
+ return this.macKey.rootKey;
49
+ }
50
+ getIvKey() {
51
+ return this.ivKey.rootKey;
52
+ }
53
+ }
54
+ exports.AeadAes256CbcHmac256EncryptionKey = AeadAes256CbcHmac256EncryptionKey;
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvIiwicmVxdWlyZSIsIl9zeW1tZXRyaWNLZXkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJrZXlTaXplIiwiZXhwb3J0cyIsImtleVNpemVJbkJ5dGVzIiwiZGVyaXZlS2V5Iiwicm9vdEtleSIsInNhbHQiLCJobWFjIiwiY3JlYXRlSG1hYyIsInVwZGF0ZSIsIkJ1ZmZlciIsImZyb20iLCJkaWdlc3QiLCJnZW5lcmF0ZUtleVNhbHQiLCJrZXlUeXBlIiwiYWxnb3JpdGhtTmFtZSIsIkFlYWRBZXMyNTZDYmNIbWFjMjU2RW5jcnlwdGlvbktleSIsIlN5bW1ldHJpY0tleSIsImNvbnN0cnVjdG9yIiwiZW5jcnlwdGlvbktleVNhbHRGb3JtYXQiLCJtYWNLZXlTYWx0Rm9ybWF0IiwiaXZLZXlTYWx0Rm9ybWF0IiwibGVuZ3RoIiwiRXJyb3IiLCJlbmNLZXlCdWZmIiwiZW5jcnlwdGlvbktleSIsIm1hY0tleUJ1ZmYiLCJtYWNLZXkiLCJpdktleUJ1ZmYiLCJpdktleSIsImVycm9yIiwibWVzc2FnZSIsImdldEVuY3J5cHRpb25LZXkiLCJnZXRNYWNLZXkiLCJnZXRJdktleSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL2FlYWQtYWVzLTI1Ni1jYmMtaG1hYy1lbmNyeXB0aW9uLWtleS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvZGUgaXMgYmFzZWQgb24gdGhlIGBtc3NxbC1qZGJjYCBsaWJyYXJ5IHB1Ymxpc2hlZCB1bmRlciB0aGUgY29uZGl0aW9ucyBvZiBNSVQgbGljZW5zZS5cbi8vIENvcHlyaWdodCAoYykgMjAxOSBNaWNyb3NvZnQgQ29ycG9yYXRpb25cblxuaW1wb3J0IHsgY3JlYXRlSG1hYyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgU3ltbWV0cmljS2V5IGZyb20gJy4vc3ltbWV0cmljLWtleSc7XG5cbmV4cG9ydCBjb25zdCBrZXlTaXplID0gMjU2O1xuY29uc3Qga2V5U2l6ZUluQnl0ZXMgPSBrZXlTaXplIC8gODtcblxuZXhwb3J0IGNvbnN0IGRlcml2ZUtleSA9IChyb290S2V5OiBCdWZmZXIsIHNhbHQ6IHN0cmluZyk6IEJ1ZmZlciA9PiB7XG4gIGNvbnN0IGhtYWMgPSBjcmVhdGVIbWFjKCdzaGEyNTYnLCByb290S2V5KTtcbiAgaG1hYy51cGRhdGUoQnVmZmVyLmZyb20oc2FsdCwgJ3V0ZjE2bGUnKSk7XG4gIHJldHVybiBobWFjLmRpZ2VzdCgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlS2V5U2FsdCA9IChcbiAga2V5VHlwZTogJ2VuY3J5cHRpb24nIHwgJ01BQycgfCAnSVYnLFxuICBhbGdvcml0aG1OYW1lOiBzdHJpbmcsXG4gIGtleVNpemU6IG51bWJlcixcbik6IHN0cmluZyA9PlxuICBgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgY2VsbCAke2tleVR5cGV9IGtleSBgICtcbiAgYHdpdGggZW5jcnlwdGlvbiBhbGdvcml0aG06JHthbGdvcml0aG1OYW1lfSBhbmQga2V5IGxlbmd0aDoke2tleVNpemV9YDtcblxuZXhwb3J0IGNsYXNzIEFlYWRBZXMyNTZDYmNIbWFjMjU2RW5jcnlwdGlvbktleSBleHRlbmRzIFN5bW1ldHJpY0tleSB7XG4gIGRlY2xhcmUgcHJpdmF0ZSByZWFkb25seSBhbGdvcml0aG1OYW1lOiBzdHJpbmc7XG4gIGRlY2xhcmUgcHJpdmF0ZSBlbmNyeXB0aW9uS2V5U2FsdEZvcm1hdDogc3RyaW5nO1xuICBkZWNsYXJlIHByaXZhdGUgbWFjS2V5U2FsdEZvcm1hdDogc3RyaW5nO1xuICBkZWNsYXJlIHByaXZhdGUgaXZLZXlTYWx0Rm9ybWF0OiBzdHJpbmc7XG4gIGRlY2xhcmUgcHJpdmF0ZSBlbmNyeXB0aW9uS2V5OiBTeW1tZXRyaWNLZXk7XG4gIGRlY2xhcmUgcHJpdmF0ZSBtYWNLZXk6IFN5bW1ldHJpY0tleTtcbiAgZGVjbGFyZSBwcml2YXRlIGl2S2V5OiBTeW1tZXRyaWNLZXk7XG5cbiAgY29uc3RydWN0b3Iocm9vdEtleTogQnVmZmVyLCBhbGdvcml0aG1OYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihyb290S2V5KTtcbiAgICB0aGlzLmFsZ29yaXRobU5hbWUgPSBhbGdvcml0aG1OYW1lO1xuICAgIHRoaXMuZW5jcnlwdGlvbktleVNhbHRGb3JtYXQgPSBnZW5lcmF0ZUtleVNhbHQoJ2VuY3J5cHRpb24nLCB0aGlzLmFsZ29yaXRobU5hbWUsIGtleVNpemUpO1xuICAgIHRoaXMubWFjS2V5U2FsdEZvcm1hdCA9IGdlbmVyYXRlS2V5U2FsdCgnTUFDJywgdGhpcy5hbGdvcml0aG1OYW1lLCBrZXlTaXplKTtcbiAgICB0aGlzLml2S2V5U2FsdEZvcm1hdCA9IGdlbmVyYXRlS2V5U2FsdCgnSVYnLCB0aGlzLmFsZ29yaXRobU5hbWUsIGtleVNpemUpO1xuXG4gICAgaWYgKHJvb3RLZXkubGVuZ3RoICE9PSBrZXlTaXplSW5CeXRlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBkZWNyeXB0ZWQgYnV0IGl0J3MgbGVuZ3RoOiAke3Jvb3RLZXkubGVuZ3RofSBkb2VzIG5vdCBtYXRjaCB0aGUgbGVuZ3RoOiAke2tleVNpemVJbkJ5dGVzfSBmb3IgYWxnb3JpdGhtIFwiJHt0aGlzLmFsZ29yaXRobU5hbWV9XCIuIFZlcmlmeSB0aGUgZW5jcnlwdGVkIHZhbHVlIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaW4gdGhlIGRhdGFiYXNlLmApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbmNLZXlCdWZmID0gZGVyaXZlS2V5KHJvb3RLZXksIHRoaXMuZW5jcnlwdGlvbktleVNhbHRGb3JtYXQpO1xuXG4gICAgICB0aGlzLmVuY3J5cHRpb25LZXkgPSBuZXcgU3ltbWV0cmljS2V5KGVuY0tleUJ1ZmYpO1xuXG4gICAgICBjb25zdCBtYWNLZXlCdWZmID0gZGVyaXZlS2V5KHJvb3RLZXksIHRoaXMubWFjS2V5U2FsdEZvcm1hdCk7XG5cbiAgICAgIHRoaXMubWFjS2V5ID0gbmV3IFN5bW1ldHJpY0tleShtYWNLZXlCdWZmKTtcblxuICAgICAgY29uc3QgaXZLZXlCdWZmID0gZGVyaXZlS2V5KHJvb3RLZXksIHRoaXMuaXZLZXlTYWx0Rm9ybWF0KTtcblxuICAgICAgdGhpcy5pdktleSA9IG5ldyBTeW1tZXRyaWNLZXkoaXZLZXlCdWZmKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEtleSBleHRyYWN0aW9uIGZhaWxlZCA6ICR7ZXJyb3IubWVzc2FnZX0uYCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RW5jcnlwdGlvbktleSgpOiBCdWZmZXIge1xuICAgIHJldHVybiB0aGlzLmVuY3J5cHRpb25LZXkucm9vdEtleTtcbiAgfVxuXG4gIGdldE1hY0tleSgpOiBCdWZmZXIge1xuICAgIHJldHVybiB0aGlzLm1hY0tleS5yb290S2V5O1xuICB9XG5cbiAgZ2V0SXZLZXkoKTogQnVmZmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdktleS5yb290S2V5O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUEyQyxTQUFBRSx1QkFBQUMsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUozQztBQUNBOztBQUtPLE1BQU1HLE9BQU8sR0FBQUMsT0FBQSxDQUFBRCxPQUFBLEdBQUcsR0FBRztBQUMxQixNQUFNRSxjQUFjLEdBQUdGLE9BQU8sR0FBRyxDQUFDO0FBRTNCLE1BQU1HLFNBQVMsR0FBR0EsQ0FBQ0MsT0FBZSxFQUFFQyxJQUFZLEtBQWE7RUFDbEUsTUFBTUMsSUFBSSxHQUFHLElBQUFDLGtCQUFVLEVBQUMsUUFBUSxFQUFFSCxP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
@@ -0,0 +1,11 @@
1
+ import { type EncryptionKeyInfo } from './types';
2
+ export declare class CEKEntry {
3
+ columnEncryptionKeyValues: EncryptionKeyInfo[];
4
+ ordinal: number;
5
+ databaseId: number;
6
+ cekId: number;
7
+ cekVersion: number;
8
+ cekMdVersion: Buffer;
9
+ constructor(ordinalVal: number);
10
+ add(encryptedKey: Buffer, dbId: number, keyId: number, keyVersion: number, mdVersion: Buffer, keyPath: string, keyStoreName: string, algorithmName: string): void;
11
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CEKEntry = void 0;
7
+ // This code is based on the `mssql-jdbc` library published under the conditions of MIT license.
8
+ // Copyright (c) 2019 Microsoft Corporation
9
+
10
+ class CEKEntry {
11
+ constructor(ordinalVal) {
12
+ this.ordinal = ordinalVal;
13
+ this.databaseId = 0;
14
+ this.cekId = 0;
15
+ this.cekVersion = 0;
16
+ this.cekMdVersion = Buffer.alloc(0);
17
+ this.columnEncryptionKeyValues = [];
18
+ }
19
+ add(encryptedKey, dbId, keyId, keyVersion, mdVersion, keyPath, keyStoreName, algorithmName) {
20
+ const encryptionKey = {
21
+ encryptedKey,
22
+ dbId,
23
+ keyId,
24
+ keyVersion,
25
+ mdVersion,
26
+ keyPath,
27
+ keyStoreName,
28
+ algorithmName
29
+ };
30
+ this.columnEncryptionKeyValues.push(encryptionKey);
31
+ if (this.databaseId === 0) {
32
+ this.databaseId = dbId;
33
+ this.cekId = keyId;
34
+ this.cekVersion = keyVersion;
35
+ this.cekMdVersion = mdVersion;
36
+ } else if (this.databaseId !== dbId || this.cekId !== keyId || this.cekVersion !== keyVersion || !this.cekMdVersion || !mdVersion || this.cekMdVersion.length !== mdVersion.length) {
37
+ throw new Error('Invalid databaseId, cekId, cekVersion or cekMdVersion.');
38
+ }
39
+ }
40
+ }
41
+ exports.CEKEntry = CEKEntry;
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDRUtFbnRyeSIsImNvbnN0cnVjdG9yIiwib3JkaW5hbFZhbCIsIm9yZGluYWwiLCJkYXRhYmFzZUlkIiwiY2VrSWQiLCJjZWtWZXJzaW9uIiwiY2VrTWRWZXJzaW9uIiwiQnVmZmVyIiwiYWxsb2MiLCJjb2x1bW5FbmNyeXB0aW9uS2V5VmFsdWVzIiwiYWRkIiwiZW5jcnlwdGVkS2V5IiwiZGJJZCIsImtleUlkIiwia2V5VmVyc2lvbiIsIm1kVmVyc2lvbiIsImtleVBhdGgiLCJrZXlTdG9yZU5hbWUiLCJhbGdvcml0aG1OYW1lIiwiZW5jcnlwdGlvbktleSIsInB1c2giLCJsZW5ndGgiLCJFcnJvciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYWx3YXlzLWVuY3J5cHRlZC9jZWstZW50cnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBjb2RlIGlzIGJhc2VkIG9uIHRoZSBgbXNzcWwtamRiY2AgbGlicmFyeSBwdWJsaXNoZWQgdW5kZXIgdGhlIGNvbmRpdGlvbnMgb2YgTUlUIGxpY2Vuc2UuXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTkgTWljcm9zb2Z0IENvcnBvcmF0aW9uXG5cbmltcG9ydCB7IHR5cGUgRW5jcnlwdGlvbktleUluZm8gfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIENFS0VudHJ5IHtcbiAgZGVjbGFyZSBjb2x1bW5FbmNyeXB0aW9uS2V5VmFsdWVzOiBFbmNyeXB0aW9uS2V5SW5mb1tdO1xuICBkZWNsYXJlIG9yZGluYWw6IG51bWJlcjtcbiAgZGVjbGFyZSBkYXRhYmFzZUlkOiBudW1iZXI7XG4gIGRlY2xhcmUgY2VrSWQ6IG51bWJlcjtcbiAgZGVjbGFyZSBjZWtWZXJzaW9uOiBudW1iZXI7XG4gIGRlY2xhcmUgY2VrTWRWZXJzaW9uOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3Iob3JkaW5hbFZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5vcmRpbmFsID0gb3JkaW5hbFZhbDtcbiAgICB0aGlzLmRhdGFiYXNlSWQgPSAwO1xuICAgIHRoaXMuY2VrSWQgPSAwO1xuICAgIHRoaXMuY2VrVmVyc2lvbiA9IDA7XG4gICAgdGhpcy5jZWtNZFZlcnNpb24gPSBCdWZmZXIuYWxsb2MoMCk7XG4gICAgdGhpcy5jb2x1bW5FbmNyeXB0aW9uS2V5VmFsdWVzID0gW107XG4gIH1cblxuICBhZGQoZW5jcnlwdGVkS2V5OiBCdWZmZXIsIGRiSWQ6IG51bWJlciwga2V5SWQ6IG51bWJlciwga2V5VmVyc2lvbjogbnVtYmVyLCBtZFZlcnNpb246IEJ1ZmZlciwga2V5UGF0aDogc3RyaW5nLCBrZXlTdG9yZU5hbWU6IHN0cmluZywgYWxnb3JpdGhtTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZW5jcnlwdGlvbktleTogRW5jcnlwdGlvbktleUluZm8gPSB7XG4gICAgICBlbmNyeXB0ZWRLZXksXG4gICAgICBkYklkLFxuICAgICAga2V5SWQsXG4gICAgICBrZXlWZXJzaW9uLFxuICAgICAgbWRWZXJzaW9uLFxuICAgICAga2V5UGF0aCxcbiAgICAgIGtleVN0b3JlTmFtZSxcbiAgICAgIGFsZ29yaXRobU5hbWUsXG4gICAgfTtcblxuICAgIHRoaXMuY29sdW1uRW5jcnlwdGlvbktleVZhbHVlcy5wdXNoKGVuY3J5cHRpb25LZXkpO1xuXG4gICAgaWYgKHRoaXMuZGF0YWJhc2VJZCA9PT0gMCkge1xuICAgICAgdGhpcy5kYXRhYmFzZUlkID0gZGJJZDtcbiAgICAgIHRoaXMuY2VrSWQgPSBrZXlJZDtcbiAgICAgIHRoaXMuY2VrVmVyc2lvbiA9IGtleVZlcnNpb247XG4gICAgICB0aGlzLmNla01kVmVyc2lvbiA9IG1kVmVyc2lvbjtcbiAgICB9IGVsc2UgaWYgKCh0aGlzLmRhdGFiYXNlSWQgIT09IGRiSWQpIHx8ICh0aGlzLmNla0lkICE9PSBrZXlJZCkgfHwgKHRoaXMuY2VrVmVyc2lvbiAhPT0ga2V5VmVyc2lvbikgfHwgIXRoaXMuY2VrTWRWZXJzaW9uIHx8ICFtZFZlcnNpb24gfHwgdGhpcy5jZWtNZFZlcnNpb24ubGVuZ3RoICE9PSBtZFZlcnNpb24ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YWJhc2VJZCwgY2VrSWQsIGNla1ZlcnNpb24gb3IgY2VrTWRWZXJzaW9uLicpO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUlPLE1BQU1BLFFBQVEsQ0FBQztFQVFwQkMsV0FBV0EsQ0FBQ0MsVUFBa0IsRUFBRTtJQUM5QixJQUFJLENBQUNDLE9BQU8sR0FBR0QsVUFBVTtJQUN6QixJQUFJLENBQUNFLFVBQVUsR0FBRyxDQUFDO0lBQ25CLElBQUksQ0FBQ0MsS0FBSyxHQUFHLENBQUM7SUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBRyxDQUFDO0lBQ25CLElBQUksQ0FBQ0MsWUFBWSxHQUFHQyxNQUFNLENBQUNDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDQyx5QkFBeUIsR0FBRyxFQUFFO0VBQ3JDO0VBRUFDLEdBQUdBLENBQUNDLFlBQW9CLEVBQUVDLElBQVksRUFBRUMsS0FBYSxFQUFFQyxVQUFrQixFQUFFQyxTQUFpQixFQUFFQyxPQUFlLEVBQUVDLFlBQW9CLEVBQUVDLGFBQXFCLEVBQVE7SUFDaEssTUFBTUMsYUFBZ0MsR0FBRztNQUN2Q1IsWUFBWTtNQUNaQyxJQUFJO01BQ0pDLEtBQUs7TUFDTEMsVUFBVTtNQUNWQyxTQUFTO01BQ1RDLE9BQU87TUFDUEMsWUFBWTtNQUNaQztJQUNGLENBQUM7SUFFRCxJQUFJLENBQUNULHlCQUF5QixDQUFDVyxJQUFJLENBQUNELGFBQWEsQ0FBQztJQUVsRCxJQUFJLElBQUksQ0FBQ2hCLFVBQVUsS0FBSyxDQUFDLEVBQUU7TUFDekIsSUFBSSxDQUFDQSxVQUFVLEdBQUdTLElBQUk7TUFDdEIsSUFBSSxDQUFDUixLQUFLLEdBQUdTLEtBQUs7TUFDbEIsSUFBSSxDQUFDUixVQUFVLEdBQUdTLFVBQVU7TUFDNUIsSUFBSSxDQUFDUixZQUFZLEdBQUdTLFNBQVM7SUFDL0IsQ0FBQyxNQUFNLElBQUssSUFBSSxDQUFDWixVQUFVLEtBQUtTLElBQUksSUFBTSxJQUFJLENBQUNSLEtBQUssS0FBS1MsS0FBTSxJQUFLLElBQUksQ0FBQ1IsVUFBVSxLQUFLUyxVQUFXLElBQUksQ0FBQyxJQUFJLENBQUNSLFlBQVksSUFBSSxDQUFDUyxTQUFTLElBQUksSUFBSSxDQUFDVCxZQUFZLENBQUNlLE1BQU0sS0FBS04sU0FBUyxDQUFDTSxNQUFNLEVBQUU7TUFDeEwsTUFBTSxJQUFJQyxLQUFLLENBQUMsd0RBQXdELENBQUM7SUFDM0U7RUFDRjtBQUNGO0FBQUNDLE9BQUEsQ0FBQXhCLFFBQUEsR0FBQUEsUUFBQSJ9