tedious 19.0.0 → 19.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) 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 +45 -50
  31. package/lib/connection.js +580 -581
  32. package/lib/connection.js.map +1 -1
  33. package/lib/connector.js +2 -2
  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 +2 -2
  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 +21 -17
  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.d.ts +6 -0
  144. package/lib/prelogin-payload.js +23 -4
  145. package/lib/prelogin-payload.js.map +1 -1
  146. package/lib/request.js +1 -1
  147. package/lib/request.js.map +1 -1
  148. package/lib/rpcrequest-payload.js +2 -2
  149. package/lib/rpcrequest-payload.js.map +1 -1
  150. package/lib/sender.js +2 -2
  151. package/lib/sender.js.map +1 -1
  152. package/lib/special-stored-procedure.js +1 -1
  153. package/lib/special-stored-procedure.js.map +1 -1
  154. package/lib/sqlbatch-payload.js +2 -2
  155. package/lib/sqlbatch-payload.js.map +1 -1
  156. package/lib/tds-versions.js +1 -1
  157. package/lib/tds-versions.js.map +1 -1
  158. package/lib/tedious.js +2 -2
  159. package/lib/tedious.js.map +1 -1
  160. package/lib/token/colmetadata-token-parser.js +1 -1
  161. package/lib/token/colmetadata-token-parser.js.map +1 -1
  162. package/lib/token/done-token-parser.js +1 -1
  163. package/lib/token/done-token-parser.js.map +1 -1
  164. package/lib/token/env-change-token-parser.js +1 -1
  165. package/lib/token/env-change-token-parser.js.map +1 -1
  166. package/lib/token/feature-ext-ack-parser.js +1 -1
  167. package/lib/token/feature-ext-ack-parser.js.map +1 -1
  168. package/lib/token/fedauth-info-parser.js +1 -1
  169. package/lib/token/fedauth-info-parser.js.map +1 -1
  170. package/lib/token/handler.d.ts +1 -0
  171. package/lib/token/handler.js +6 -5
  172. package/lib/token/handler.js.map +1 -1
  173. package/lib/token/helpers.js +1 -1
  174. package/lib/token/helpers.js.map +1 -1
  175. package/lib/token/infoerror-token-parser.js +1 -1
  176. package/lib/token/infoerror-token-parser.js.map +1 -1
  177. package/lib/token/loginack-token-parser.js +1 -1
  178. package/lib/token/loginack-token-parser.js.map +1 -1
  179. package/lib/token/nbcrow-token-parser.js +2 -2
  180. package/lib/token/nbcrow-token-parser.js.map +1 -1
  181. package/lib/token/order-token-parser.js +1 -1
  182. package/lib/token/order-token-parser.js.map +1 -1
  183. package/lib/token/returnstatus-token-parser.js +1 -1
  184. package/lib/token/returnstatus-token-parser.js.map +1 -1
  185. package/lib/token/returnvalue-token-parser.js +2 -2
  186. package/lib/token/returnvalue-token-parser.js.map +1 -1
  187. package/lib/token/row-token-parser.js +2 -2
  188. package/lib/token/row-token-parser.js.map +1 -1
  189. package/lib/token/sspi-token-parser.js +1 -1
  190. package/lib/token/sspi-token-parser.js.map +1 -1
  191. package/lib/token/stream-parser.js +2 -2
  192. package/lib/token/stream-parser.js.map +1 -1
  193. package/lib/token/token-stream-parser.js +2 -2
  194. package/lib/token/token-stream-parser.js.map +1 -1
  195. package/lib/token/token.js +1 -1
  196. package/lib/token/token.js.map +1 -1
  197. package/lib/tracking-buffer/writable-tracking-buffer.js +1 -1
  198. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
  199. package/lib/transaction.js +2 -2
  200. package/lib/transaction.js.map +1 -1
  201. package/lib/transient-error-lookup.js +1 -1
  202. package/lib/transient-error-lookup.js.map +1 -1
  203. package/lib/value-parser.js +2 -2
  204. package/lib/value-parser.js.map +1 -1
  205. package/package.json +18 -19
  206. package/benchmarks/README.md +0 -12
  207. package/benchmarks/bulk-load/iterable.js +0 -61
  208. package/benchmarks/common.js +0 -287
  209. package/benchmarks/connection/open.js +0 -26
  210. package/benchmarks/package-lock.json +0 -21173
  211. package/benchmarks/package.json +0 -11
  212. package/benchmarks/query/call-tvp.js +0 -105
  213. package/benchmarks/query/insert-varbinary.js +0 -46
  214. package/benchmarks/query/select-many-rows.js +0 -63
  215. package/benchmarks/query/select-nvarchar.js +0 -50
  216. package/benchmarks/query/select-varbinary.js +0 -50
  217. package/benchmarks/request/rpcrequest-payload-tvp.js +0 -45
  218. package/benchmarks/request/rpcrequest-payload-varbinary.js +0 -37
  219. package/benchmarks/token-parser/colmetadata-token.js +0 -27
  220. package/benchmarks/token-parser/done-token.js +0 -28
  221. package/benchmarks/token-parser/simple-tokens.js +0 -363
@@ -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,17 +674,10 @@ 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;
680
+ instance: string;
690
681
  }
691
682
  /**
692
683
  * A [[Connection]] instance represents a single connection to a database server.
@@ -819,27 +810,31 @@ declare class Connection extends EventEmitter {
819
810
  /**
820
811
  * @private
821
812
  */
822
- connectTimer: undefined | NodeJS.Timeout;
813
+ cancelTimer: undefined | NodeJS.Timeout;
823
814
  /**
824
815
  * @private
825
816
  */
826
- cancelTimer: undefined | NodeJS.Timeout;
817
+ requestTimer: undefined | NodeJS.Timeout;
827
818
  /**
828
819
  * @private
829
820
  */
830
- requestTimer: undefined | NodeJS.Timeout;
821
+ _cancelAfterRequestSent: () => void;
831
822
  /**
832
823
  * @private
833
824
  */
834
- retryTimer: undefined | NodeJS.Timeout;
825
+ databaseCollation: Collation | undefined;
835
826
  /**
836
827
  * @private
837
828
  */
838
- _cancelAfterRequestSent: () => void;
829
+ _onSocketClose: (hadError: boolean) => void;
839
830
  /**
840
831
  * @private
841
832
  */
842
- databaseCollation: Collation | undefined;
833
+ _onSocketError: (err: Error) => void;
834
+ /**
835
+ * @private
836
+ */
837
+ _onSocketEnd: () => void;
843
838
  /**
844
839
  * Note: be aware of the different options field:
845
840
  * 1. config.authentication.options
@@ -981,11 +976,11 @@ declare class Connection extends EventEmitter {
981
976
  /**
982
977
  * @private
983
978
  */
984
- initialiseConnection(): void | Promise<void>;
979
+ initialiseConnection(): Promise<void>;
985
980
  /**
986
981
  * @private
987
982
  */
988
- cleanupConnection(cleanupType: typeof CLEANUP_TYPE[keyof typeof CLEANUP_TYPE]): void;
983
+ cleanupConnection(): void;
989
984
  /**
990
985
  * @private
991
986
  */
@@ -994,17 +989,12 @@ declare class Connection extends EventEmitter {
994
989
  * @private
995
990
  */
996
991
  createTokenStreamParser(message: Message, handler: TokenHandler): TokenStreamParser;
997
- socketHandlingForSendPreLogin(socket: net.Socket): void;
998
992
  wrapWithTls(socket: net.Socket, signal: AbortSignal): Promise<tls.TLSSocket>;
999
- connectOnPort(port: number, multiSubnetFailover: boolean, signal: AbortSignal, customConnector?: () => Promise<net.Socket>): void;
993
+ connectOnPort(port: number, multiSubnetFailover: boolean, signal: AbortSignal, customConnector?: () => Promise<net.Socket>): Promise<net.Socket>;
1000
994
  /**
1001
995
  * @private
1002
996
  */
1003
997
  closeConnection(): void;
1004
- /**
1005
- * @private
1006
- */
1007
- createConnectTimer(): AbortSignal;
1008
998
  /**
1009
999
  * @private
1010
1000
  */
@@ -1013,14 +1003,6 @@ declare class Connection extends EventEmitter {
1013
1003
  * @private
1014
1004
  */
1015
1005
  createRequestTimer(): void;
1016
- /**
1017
- * @private
1018
- */
1019
- createRetryTimer(): void;
1020
- /**
1021
- * @private
1022
- */
1023
- connectTimeout(): void;
1024
1006
  /**
1025
1007
  * @private
1026
1008
  */
@@ -1029,14 +1011,6 @@ declare class Connection extends EventEmitter {
1029
1011
  * @private
1030
1012
  */
1031
1013
  requestTimeout(): void;
1032
- /**
1033
- * @private
1034
- */
1035
- retryTimeout(): void;
1036
- /**
1037
- * @private
1038
- */
1039
- clearConnectTimer(): void;
1040
1014
  /**
1041
1015
  * @private
1042
1016
  */
@@ -1045,10 +1019,6 @@ declare class Connection extends EventEmitter {
1045
1019
  * @private
1046
1020
  */
1047
1021
  clearRequestTimer(): void;
1048
- /**
1049
- * @private
1050
- */
1051
- clearRetryTimer(): void;
1052
1022
  /**
1053
1023
  * @private
1054
1024
  */
@@ -1064,7 +1034,7 @@ declare class Connection extends EventEmitter {
1064
1034
  /**
1065
1035
  * @private
1066
1036
  */
1067
- socketError(error: Error): void;
1037
+ wrapSocketError(error: Error): ConnectionError;
1068
1038
  /**
1069
1039
  * @private
1070
1040
  */
@@ -1093,10 +1063,6 @@ declare class Connection extends EventEmitter {
1093
1063
  * @private
1094
1064
  */
1095
1065
  getInitialSql(): string;
1096
- /**
1097
- * @private
1098
- */
1099
- processedInitialSql(): void;
1100
1066
  /**
1101
1067
  * Execute the SQL batch represented by [[Request]].
1102
1068
  * There is no param support, and unlike [[Request.execSql]],
@@ -1306,5 +1272,34 @@ declare class Connection extends EventEmitter {
1306
1272
  * @private
1307
1273
  */
1308
1274
  getIsolationLevelText(isolationLevel: typeof ISOLATION_LEVEL[keyof typeof ISOLATION_LEVEL]): "read uncommitted" | "repeatable read" | "serializable" | "snapshot" | "read committed";
1275
+ /**
1276
+ * @private
1277
+ */
1278
+ performTlsNegotiation(preloginPayload: PreloginPayload, signal: AbortSignal): Promise<void>;
1279
+ readPreloginResponse(signal: AbortSignal): Promise<PreloginPayload>;
1280
+ /**
1281
+ * @private
1282
+ */
1283
+ performReRouting(): Promise<void>;
1284
+ /**
1285
+ * @private
1286
+ */
1287
+ performTransientFailureRetry(): Promise<void>;
1288
+ /**
1289
+ * @private
1290
+ */
1291
+ performSentLogin7WithStandardLogin(signal: AbortSignal): Promise<RoutingData | undefined>;
1292
+ /**
1293
+ * @private
1294
+ */
1295
+ performSentLogin7WithNTLMLogin(signal: AbortSignal): Promise<RoutingData | undefined>;
1296
+ /**
1297
+ * @private
1298
+ */
1299
+ performSentLogin7WithFedAuth(signal: AbortSignal): Promise<RoutingData | undefined>;
1300
+ /**
1301
+ * @private
1302
+ */
1303
+ performLoggedInSendingInitialSql(signal: AbortSignal): Promise<void>;
1309
1304
  }
1310
1305
  export default Connection;