tedious 18.6.2 → 19.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 (228) hide show
  1. package/README.md +1 -1
  2. package/lib/all-headers.js +1 -1
  3. package/lib/all-headers.js.map +1 -1
  4. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +1 -1
  5. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -1
  6. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +2 -2
  7. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -1
  8. package/lib/always-encrypted/cek-entry.js +1 -1
  9. package/lib/always-encrypted/cek-entry.js.map +1 -1
  10. package/lib/always-encrypted/get-parameter-encryption-metadata.js +2 -2
  11. package/lib/always-encrypted/get-parameter-encryption-metadata.js.map +1 -1
  12. package/lib/always-encrypted/key-crypto.js +1 -1
  13. package/lib/always-encrypted/key-crypto.js.map +1 -1
  14. package/lib/always-encrypted/keystore-provider-azure-key-vault.js +1 -1
  15. package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -1
  16. package/lib/always-encrypted/symmetric-key-cache.js +2 -2
  17. package/lib/always-encrypted/symmetric-key-cache.js.map +1 -1
  18. package/lib/always-encrypted/symmetric-key.js +1 -1
  19. package/lib/always-encrypted/symmetric-key.js.map +1 -1
  20. package/lib/always-encrypted/types.js +1 -1
  21. package/lib/always-encrypted/types.js.map +1 -1
  22. package/lib/always-encrypted/utils.js +1 -1
  23. package/lib/always-encrypted/utils.js.map +1 -1
  24. package/lib/bulk-load-payload.js +1 -1
  25. package/lib/bulk-load-payload.js.map +1 -1
  26. package/lib/bulk-load.js +2 -2
  27. package/lib/bulk-load.js.map +1 -1
  28. package/lib/collation.js +1 -1
  29. package/lib/collation.js.map +1 -1
  30. package/lib/connection.d.ts +44 -50
  31. package/lib/connection.js +579 -580
  32. package/lib/connection.js.map +1 -1
  33. package/lib/connector.js +10 -18
  34. package/lib/connector.js.map +1 -1
  35. package/lib/data-type.js +2 -2
  36. package/lib/data-type.js.map +1 -1
  37. package/lib/data-types/bigint.js +2 -2
  38. package/lib/data-types/bigint.js.map +1 -1
  39. package/lib/data-types/binary.js +1 -1
  40. package/lib/data-types/binary.js.map +1 -1
  41. package/lib/data-types/bit.js +2 -2
  42. package/lib/data-types/bit.js.map +1 -1
  43. package/lib/data-types/bitn.js +1 -1
  44. package/lib/data-types/bitn.js.map +1 -1
  45. package/lib/data-types/char.js +2 -2
  46. package/lib/data-types/char.js.map +1 -1
  47. package/lib/data-types/date.js +1 -1
  48. package/lib/data-types/date.js.map +1 -1
  49. package/lib/data-types/datetime.js +2 -2
  50. package/lib/data-types/datetime.js.map +1 -1
  51. package/lib/data-types/datetime2.js +2 -2
  52. package/lib/data-types/datetime2.js.map +1 -1
  53. package/lib/data-types/datetimen.js +1 -1
  54. package/lib/data-types/datetimen.js.map +1 -1
  55. package/lib/data-types/datetimeoffset.js +2 -2
  56. package/lib/data-types/datetimeoffset.js.map +1 -1
  57. package/lib/data-types/decimal.js +2 -2
  58. package/lib/data-types/decimal.js.map +1 -1
  59. package/lib/data-types/decimaln.js +1 -1
  60. package/lib/data-types/decimaln.js.map +1 -1
  61. package/lib/data-types/float.js +2 -2
  62. package/lib/data-types/float.js.map +1 -1
  63. package/lib/data-types/floatn.js +1 -1
  64. package/lib/data-types/floatn.js.map +1 -1
  65. package/lib/data-types/image.js +1 -1
  66. package/lib/data-types/image.js.map +1 -1
  67. package/lib/data-types/int.js +2 -2
  68. package/lib/data-types/int.js.map +1 -1
  69. package/lib/data-types/intn.js +1 -1
  70. package/lib/data-types/intn.js.map +1 -1
  71. package/lib/data-types/money.js +2 -2
  72. package/lib/data-types/money.js.map +1 -1
  73. package/lib/data-types/moneyn.js +1 -1
  74. package/lib/data-types/moneyn.js.map +1 -1
  75. package/lib/data-types/nchar.js +1 -1
  76. package/lib/data-types/nchar.js.map +1 -1
  77. package/lib/data-types/ntext.js +1 -1
  78. package/lib/data-types/ntext.js.map +1 -1
  79. package/lib/data-types/null.js +1 -1
  80. package/lib/data-types/null.js.map +1 -1
  81. package/lib/data-types/numeric.js +2 -2
  82. package/lib/data-types/numeric.js.map +1 -1
  83. package/lib/data-types/numericn.js +1 -1
  84. package/lib/data-types/numericn.js.map +1 -1
  85. package/lib/data-types/nvarchar.js +1 -1
  86. package/lib/data-types/nvarchar.js.map +1 -1
  87. package/lib/data-types/real.js +2 -2
  88. package/lib/data-types/real.js.map +1 -1
  89. package/lib/data-types/smalldatetime.js +2 -2
  90. package/lib/data-types/smalldatetime.js.map +1 -1
  91. package/lib/data-types/smallint.js +2 -2
  92. package/lib/data-types/smallint.js.map +1 -1
  93. package/lib/data-types/smallmoney.js +2 -2
  94. package/lib/data-types/smallmoney.js.map +1 -1
  95. package/lib/data-types/sql-variant.js +1 -1
  96. package/lib/data-types/sql-variant.js.map +1 -1
  97. package/lib/data-types/text.js +2 -2
  98. package/lib/data-types/text.js.map +1 -1
  99. package/lib/data-types/time.js +2 -2
  100. package/lib/data-types/time.js.map +1 -1
  101. package/lib/data-types/tinyint.js +2 -2
  102. package/lib/data-types/tinyint.js.map +1 -1
  103. package/lib/data-types/tvp.js +2 -2
  104. package/lib/data-types/tvp.js.map +1 -1
  105. package/lib/data-types/udt.js +1 -1
  106. package/lib/data-types/udt.js.map +1 -1
  107. package/lib/data-types/uniqueidentifier.js +1 -1
  108. package/lib/data-types/uniqueidentifier.js.map +1 -1
  109. package/lib/data-types/varbinary.js +1 -1
  110. package/lib/data-types/varbinary.js.map +1 -1
  111. package/lib/data-types/varchar.js +2 -2
  112. package/lib/data-types/varchar.js.map +1 -1
  113. package/lib/data-types/xml.js +1 -1
  114. package/lib/data-types/xml.js.map +1 -1
  115. package/lib/debug.js +2 -2
  116. package/lib/debug.js.map +1 -1
  117. package/lib/errors.js +1 -1
  118. package/lib/errors.js.map +1 -1
  119. package/lib/guid-parser.js +1 -1
  120. package/lib/guid-parser.js.map +1 -1
  121. package/lib/incoming-message-stream.js +2 -2
  122. package/lib/incoming-message-stream.js.map +1 -1
  123. package/lib/instance-lookup.js +7 -12
  124. package/lib/instance-lookup.js.map +1 -1
  125. package/lib/library.js +1 -1
  126. package/lib/library.js.map +1 -1
  127. package/lib/login7-payload.js +1 -1
  128. package/lib/login7-payload.js.map +1 -1
  129. package/lib/message-io.js +3 -3
  130. package/lib/message-io.js.map +1 -1
  131. package/lib/message.js +1 -1
  132. package/lib/message.js.map +1 -1
  133. package/lib/metadata-parser.js +1 -1
  134. package/lib/metadata-parser.js.map +1 -1
  135. package/lib/ntlm-payload.js +3 -3
  136. package/lib/ntlm-payload.js.map +1 -1
  137. package/lib/ntlm.js +1 -1
  138. package/lib/ntlm.js.map +1 -1
  139. package/lib/outgoing-message-stream.js +2 -2
  140. package/lib/outgoing-message-stream.js.map +1 -1
  141. package/lib/packet.js +1 -1
  142. package/lib/packet.js.map +1 -1
  143. package/lib/prelogin-payload.js +2 -2
  144. package/lib/prelogin-payload.js.map +1 -1
  145. package/lib/request.js +1 -1
  146. package/lib/request.js.map +1 -1
  147. package/lib/rpcrequest-payload.js +2 -2
  148. package/lib/rpcrequest-payload.js.map +1 -1
  149. package/lib/sender.js +6 -11
  150. package/lib/sender.js.map +1 -1
  151. package/lib/special-stored-procedure.js +1 -1
  152. package/lib/special-stored-procedure.js.map +1 -1
  153. package/lib/sqlbatch-payload.js +2 -2
  154. package/lib/sqlbatch-payload.js.map +1 -1
  155. package/lib/tds-versions.js +1 -1
  156. package/lib/tds-versions.js.map +1 -1
  157. package/lib/tedious.js +2 -2
  158. package/lib/tedious.js.map +1 -1
  159. package/lib/token/colmetadata-token-parser.js +1 -1
  160. package/lib/token/colmetadata-token-parser.js.map +1 -1
  161. package/lib/token/done-token-parser.js +1 -1
  162. package/lib/token/done-token-parser.js.map +1 -1
  163. package/lib/token/env-change-token-parser.js +1 -1
  164. package/lib/token/env-change-token-parser.js.map +1 -1
  165. package/lib/token/feature-ext-ack-parser.js +1 -1
  166. package/lib/token/feature-ext-ack-parser.js.map +1 -1
  167. package/lib/token/fedauth-info-parser.js +1 -1
  168. package/lib/token/fedauth-info-parser.js.map +1 -1
  169. package/lib/token/handler.js +2 -2
  170. package/lib/token/handler.js.map +1 -1
  171. package/lib/token/helpers.js +1 -1
  172. package/lib/token/helpers.js.map +1 -1
  173. package/lib/token/infoerror-token-parser.js +1 -1
  174. package/lib/token/infoerror-token-parser.js.map +1 -1
  175. package/lib/token/loginack-token-parser.js +1 -1
  176. package/lib/token/loginack-token-parser.js.map +1 -1
  177. package/lib/token/nbcrow-token-parser.js +2 -2
  178. package/lib/token/nbcrow-token-parser.js.map +1 -1
  179. package/lib/token/order-token-parser.js +1 -1
  180. package/lib/token/order-token-parser.js.map +1 -1
  181. package/lib/token/returnstatus-token-parser.js +1 -1
  182. package/lib/token/returnstatus-token-parser.js.map +1 -1
  183. package/lib/token/returnvalue-token-parser.js +2 -2
  184. package/lib/token/returnvalue-token-parser.js.map +1 -1
  185. package/lib/token/row-token-parser.js +2 -2
  186. package/lib/token/row-token-parser.js.map +1 -1
  187. package/lib/token/sspi-token-parser.js +1 -1
  188. package/lib/token/sspi-token-parser.js.map +1 -1
  189. package/lib/token/stream-parser.js +2 -2
  190. package/lib/token/stream-parser.js.map +1 -1
  191. package/lib/token/token-stream-parser.js +2 -2
  192. package/lib/token/token-stream-parser.js.map +1 -1
  193. package/lib/token/token.js +1 -1
  194. package/lib/token/token.js.map +1 -1
  195. package/lib/tracking-buffer/writable-tracking-buffer.js +1 -1
  196. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
  197. package/lib/transaction.js +2 -2
  198. package/lib/transaction.js.map +1 -1
  199. package/lib/transient-error-lookup.js +1 -1
  200. package/lib/transient-error-lookup.js.map +1 -1
  201. package/lib/value-parser.js +2 -2
  202. package/lib/value-parser.js.map +1 -1
  203. package/package.json +19 -20
  204. package/benchmarks/README.md +0 -12
  205. package/benchmarks/bulk-load/iterable.js +0 -61
  206. package/benchmarks/common.js +0 -287
  207. package/benchmarks/connection/open.js +0 -26
  208. package/benchmarks/package-lock.json +0 -21173
  209. package/benchmarks/package.json +0 -11
  210. package/benchmarks/query/call-tvp.js +0 -105
  211. package/benchmarks/query/insert-varbinary.js +0 -46
  212. package/benchmarks/query/select-many-rows.js +0 -63
  213. package/benchmarks/query/select-nvarchar.js +0 -50
  214. package/benchmarks/query/select-varbinary.js +0 -50
  215. package/benchmarks/request/rpcrequest-payload-tvp.js +0 -45
  216. package/benchmarks/request/rpcrequest-payload-varbinary.js +0 -37
  217. package/benchmarks/token-parser/colmetadata-token.js +0 -27
  218. package/benchmarks/token-parser/done-token.js +0 -28
  219. package/benchmarks/token-parser/simple-tokens.js +0 -363
  220. package/lib/errors/abort-error.d.ts +0 -4
  221. package/lib/errors/abort-error.js +0 -15
  222. package/lib/errors/abort-error.js.map +0 -1
  223. package/lib/errors/timeout-error.d.ts +0 -4
  224. package/lib/errors/timeout-error.js +0 -15
  225. package/lib/errors/timeout-error.js.map +0 -1
  226. package/lib/utils/with-timeout.d.ts +0 -7
  227. package/lib/utils/with-timeout.js +0 -36
  228. package/lib/utils/with-timeout.js.map +0 -1
@@ -6,6 +6,7 @@ import BulkLoad, { type Options as BulkLoadOptions, type Callback as BulkLoadCal
6
6
  import Debug from './debug';
7
7
  import { EventEmitter } from 'events';
8
8
  import { TransientErrorLookup } from './transient-error-lookup';
9
+ import PreloginPayload from './prelogin-payload';
9
10
  import Request from './request';
10
11
  import MessageIO from './message-io';
11
12
  import { Parser as TokenStreamParser } from './token/token-stream-parser';
@@ -282,10 +283,7 @@ interface State {
282
283
  exit?(this: Connection, newState: State): void;
283
284
  events: {
284
285
  socketError?(this: Connection, err: Error): void;
285
- connectTimeout?(this: Connection): void;
286
286
  message?(this: Connection, message: Message): void;
287
- retry?(this: Connection): void;
288
- reconnect?(this: Connection): void;
289
287
  };
290
288
  }
291
289
  type Authentication = DefaultAuthentication | NtlmAuthentication | TokenCredentialAuthentication | AzureActiveDirectoryPasswordAuthentication | AzureActiveDirectoryMsiAppServiceAuthentication | AzureActiveDirectoryMsiVmAuthentication | AzureActiveDirectoryAccessTokenAuthentication | AzureActiveDirectoryServicePrincipalSecret | AzureActiveDirectoryDefaultAuthentication;
@@ -676,14 +674,6 @@ export interface ConnectionOptions {
676
674
  */
677
675
  workstationId?: string | undefined;
678
676
  }
679
- /**
680
- * @private
681
- */
682
- declare const CLEANUP_TYPE: {
683
- NORMAL: number;
684
- REDIRECT: number;
685
- RETRY: number;
686
- };
687
677
  interface RoutingData {
688
678
  server: string;
689
679
  port: number;
@@ -819,27 +809,31 @@ declare class Connection extends EventEmitter {
819
809
  /**
820
810
  * @private
821
811
  */
822
- connectTimer: undefined | NodeJS.Timeout;
812
+ cancelTimer: undefined | NodeJS.Timeout;
823
813
  /**
824
814
  * @private
825
815
  */
826
- cancelTimer: undefined | NodeJS.Timeout;
816
+ requestTimer: undefined | NodeJS.Timeout;
827
817
  /**
828
818
  * @private
829
819
  */
830
- requestTimer: undefined | NodeJS.Timeout;
820
+ _cancelAfterRequestSent: () => void;
831
821
  /**
832
822
  * @private
833
823
  */
834
- retryTimer: undefined | NodeJS.Timeout;
824
+ databaseCollation: Collation | undefined;
835
825
  /**
836
826
  * @private
837
827
  */
838
- _cancelAfterRequestSent: () => void;
828
+ _onSocketClose: (hadError: boolean) => void;
839
829
  /**
840
830
  * @private
841
831
  */
842
- databaseCollation: Collation | undefined;
832
+ _onSocketError: (err: Error) => void;
833
+ /**
834
+ * @private
835
+ */
836
+ _onSocketEnd: () => void;
843
837
  /**
844
838
  * Note: be aware of the different options field:
845
839
  * 1. config.authentication.options
@@ -981,11 +975,11 @@ declare class Connection extends EventEmitter {
981
975
  /**
982
976
  * @private
983
977
  */
984
- initialiseConnection(): void | Promise<void>;
978
+ initialiseConnection(): Promise<void>;
985
979
  /**
986
980
  * @private
987
981
  */
988
- cleanupConnection(cleanupType: typeof CLEANUP_TYPE[keyof typeof CLEANUP_TYPE]): void;
982
+ cleanupConnection(): void;
989
983
  /**
990
984
  * @private
991
985
  */
@@ -994,17 +988,12 @@ declare class Connection extends EventEmitter {
994
988
  * @private
995
989
  */
996
990
  createTokenStreamParser(message: Message, handler: TokenHandler): TokenStreamParser;
997
- socketHandlingForSendPreLogin(socket: net.Socket): void;
998
991
  wrapWithTls(socket: net.Socket, signal: AbortSignal): Promise<tls.TLSSocket>;
999
- connectOnPort(port: number, multiSubnetFailover: boolean, signal: AbortSignal, customConnector?: () => Promise<net.Socket>): void;
992
+ connectOnPort(port: number, multiSubnetFailover: boolean, signal: AbortSignal, customConnector?: () => Promise<net.Socket>): Promise<net.Socket>;
1000
993
  /**
1001
994
  * @private
1002
995
  */
1003
996
  closeConnection(): void;
1004
- /**
1005
- * @private
1006
- */
1007
- createConnectTimer(): AbortSignal;
1008
997
  /**
1009
998
  * @private
1010
999
  */
@@ -1013,14 +1002,6 @@ declare class Connection extends EventEmitter {
1013
1002
  * @private
1014
1003
  */
1015
1004
  createRequestTimer(): void;
1016
- /**
1017
- * @private
1018
- */
1019
- createRetryTimer(): void;
1020
- /**
1021
- * @private
1022
- */
1023
- connectTimeout(): void;
1024
1005
  /**
1025
1006
  * @private
1026
1007
  */
@@ -1029,14 +1010,6 @@ declare class Connection extends EventEmitter {
1029
1010
  * @private
1030
1011
  */
1031
1012
  requestTimeout(): void;
1032
- /**
1033
- * @private
1034
- */
1035
- retryTimeout(): void;
1036
- /**
1037
- * @private
1038
- */
1039
- clearConnectTimer(): void;
1040
1013
  /**
1041
1014
  * @private
1042
1015
  */
@@ -1045,10 +1018,6 @@ declare class Connection extends EventEmitter {
1045
1018
  * @private
1046
1019
  */
1047
1020
  clearRequestTimer(): void;
1048
- /**
1049
- * @private
1050
- */
1051
- clearRetryTimer(): void;
1052
1021
  /**
1053
1022
  * @private
1054
1023
  */
@@ -1064,7 +1033,7 @@ declare class Connection extends EventEmitter {
1064
1033
  /**
1065
1034
  * @private
1066
1035
  */
1067
- socketError(error: Error): void;
1036
+ wrapSocketError(error: Error): ConnectionError;
1068
1037
  /**
1069
1038
  * @private
1070
1039
  */
@@ -1093,10 +1062,6 @@ declare class Connection extends EventEmitter {
1093
1062
  * @private
1094
1063
  */
1095
1064
  getInitialSql(): string;
1096
- /**
1097
- * @private
1098
- */
1099
- processedInitialSql(): void;
1100
1065
  /**
1101
1066
  * Execute the SQL batch represented by [[Request]].
1102
1067
  * There is no param support, and unlike [[Request.execSql]],
@@ -1306,5 +1271,34 @@ declare class Connection extends EventEmitter {
1306
1271
  * @private
1307
1272
  */
1308
1273
  getIsolationLevelText(isolationLevel: typeof ISOLATION_LEVEL[keyof typeof ISOLATION_LEVEL]): "read uncommitted" | "repeatable read" | "serializable" | "snapshot" | "read committed";
1274
+ /**
1275
+ * @private
1276
+ */
1277
+ performTlsNegotiation(preloginPayload: PreloginPayload, signal: AbortSignal): Promise<void>;
1278
+ readPreloginResponse(signal: AbortSignal): Promise<PreloginPayload>;
1279
+ /**
1280
+ * @private
1281
+ */
1282
+ performReRouting(): Promise<void>;
1283
+ /**
1284
+ * @private
1285
+ */
1286
+ performTransientFailureRetry(): Promise<void>;
1287
+ /**
1288
+ * @private
1289
+ */
1290
+ performSentLogin7WithStandardLogin(signal: AbortSignal): Promise<RoutingData | undefined>;
1291
+ /**
1292
+ * @private
1293
+ */
1294
+ performSentLogin7WithNTLMLogin(signal: AbortSignal): Promise<RoutingData | undefined>;
1295
+ /**
1296
+ * @private
1297
+ */
1298
+ performSentLogin7WithFedAuth(signal: AbortSignal): Promise<RoutingData | undefined>;
1299
+ /**
1300
+ * @private
1301
+ */
1302
+ performLoggedInSendingInitialSql(signal: AbortSignal): Promise<void>;
1309
1303
  }
1310
1304
  export default Connection;