tedious-fabric 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/CLAUDE.md +91 -0
  2. package/LICENSE +21 -0
  3. package/README.md +67 -0
  4. package/appveyor.yml +67 -0
  5. package/eslint.config.mjs +314 -0
  6. package/lib/all-headers.d.ts +2 -0
  7. package/lib/all-headers.js +24 -0
  8. package/lib/all-headers.js.map +1 -0
  9. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +82 -0
  10. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -0
  11. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +55 -0
  12. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -0
  13. package/lib/always-encrypted/cek-entry.d.ts +11 -0
  14. package/lib/always-encrypted/cek-entry.js +42 -0
  15. package/lib/always-encrypted/cek-entry.js.map +1 -0
  16. package/lib/always-encrypted/get-parameter-encryption-metadata.js +90 -0
  17. package/lib/always-encrypted/get-parameter-encryption-metadata.js.map +1 -0
  18. package/lib/always-encrypted/key-crypto.js +94 -0
  19. package/lib/always-encrypted/key-crypto.js.map +1 -0
  20. package/lib/always-encrypted/keystore-provider-azure-key-vault.d.ts +21 -0
  21. package/lib/always-encrypted/keystore-provider-azure-key-vault.js +247 -0
  22. package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -0
  23. package/lib/always-encrypted/symmetric-key-cache.js +36 -0
  24. package/lib/always-encrypted/symmetric-key-cache.js.map +1 -0
  25. package/lib/always-encrypted/symmetric-key.js +25 -0
  26. package/lib/always-encrypted/symmetric-key.js.map +1 -0
  27. package/lib/always-encrypted/types.d.ts +73 -0
  28. package/lib/always-encrypted/types.js +61 -0
  29. package/lib/always-encrypted/types.js.map +1 -0
  30. package/lib/always-encrypted/utils.js +23 -0
  31. package/lib/always-encrypted/utils.js.map +1 -0
  32. package/lib/bulk-load-payload.d.ts +8 -0
  33. package/lib/bulk-load-payload.js +23 -0
  34. package/lib/bulk-load-payload.js.map +1 -0
  35. package/lib/bulk-load.d.ts +275 -0
  36. package/lib/bulk-load.js +515 -0
  37. package/lib/bulk-load.js.map +1 -0
  38. package/lib/collation.d.ts +28 -0
  39. package/lib/collation.js +348 -0
  40. package/lib/collation.js.map +1 -0
  41. package/lib/connection.d.ts +1309 -0
  42. package/lib/connection.js +2732 -0
  43. package/lib/connection.js.map +1 -0
  44. package/lib/connector.d.ts +18 -0
  45. package/lib/connector.js +142 -0
  46. package/lib/connector.js.map +1 -0
  47. package/lib/data-type.d.ts +554 -0
  48. package/lib/data-type.js +428 -0
  49. package/lib/data-type.js.map +1 -0
  50. package/lib/data-types/bigint.d.ts +3 -0
  51. package/lib/data-types/bigint.js +53 -0
  52. package/lib/data-types/bigint.js.map +1 -0
  53. package/lib/data-types/binary.d.ts +5 -0
  54. package/lib/data-types/binary.js +67 -0
  55. package/lib/data-types/binary.js.map +1 -0
  56. package/lib/data-types/bit.d.ts +3 -0
  57. package/lib/data-types/bit.js +46 -0
  58. package/lib/data-types/bit.js.map +1 -0
  59. package/lib/data-types/bitn.d.ts +3 -0
  60. package/lib/data-types/bitn.js +29 -0
  61. package/lib/data-types/bitn.js.map +1 -0
  62. package/lib/data-types/char.d.ts +5 -0
  63. package/lib/data-types/char.js +86 -0
  64. package/lib/data-types/char.js.map +1 -0
  65. package/lib/data-types/date.d.ts +3 -0
  66. package/lib/data-types/date.js +72 -0
  67. package/lib/data-types/date.js.map +1 -0
  68. package/lib/data-types/datetime.d.ts +3 -0
  69. package/lib/data-types/datetime.js +93 -0
  70. package/lib/data-types/datetime.js.map +1 -0
  71. package/lib/data-types/datetime2.d.ts +5 -0
  72. package/lib/data-types/datetime2.js +118 -0
  73. package/lib/data-types/datetime2.js.map +1 -0
  74. package/lib/data-types/datetimen.d.ts +3 -0
  75. package/lib/data-types/datetimen.js +29 -0
  76. package/lib/data-types/datetimen.js.map +1 -0
  77. package/lib/data-types/datetimeoffset.d.ts +5 -0
  78. package/lib/data-types/datetimeoffset.js +111 -0
  79. package/lib/data-types/datetimeoffset.js.map +1 -0
  80. package/lib/data-types/decimal.d.ts +6 -0
  81. package/lib/data-types/decimal.js +107 -0
  82. package/lib/data-types/decimal.js.map +1 -0
  83. package/lib/data-types/decimaln.d.ts +3 -0
  84. package/lib/data-types/decimaln.js +29 -0
  85. package/lib/data-types/decimaln.js.map +1 -0
  86. package/lib/data-types/float.d.ts +3 -0
  87. package/lib/data-types/float.js +47 -0
  88. package/lib/data-types/float.js.map +1 -0
  89. package/lib/data-types/floatn.d.ts +3 -0
  90. package/lib/data-types/floatn.js +29 -0
  91. package/lib/data-types/floatn.js.map +1 -0
  92. package/lib/data-types/image.d.ts +3 -0
  93. package/lib/data-types/image.js +56 -0
  94. package/lib/data-types/image.js.map +1 -0
  95. package/lib/data-types/int.d.ts +3 -0
  96. package/lib/data-types/int.js +53 -0
  97. package/lib/data-types/int.js.map +1 -0
  98. package/lib/data-types/intn.d.ts +3 -0
  99. package/lib/data-types/intn.js +29 -0
  100. package/lib/data-types/intn.js.map +1 -0
  101. package/lib/data-types/money.d.ts +3 -0
  102. package/lib/data-types/money.js +59 -0
  103. package/lib/data-types/money.js.map +1 -0
  104. package/lib/data-types/moneyn.d.ts +3 -0
  105. package/lib/data-types/moneyn.js +29 -0
  106. package/lib/data-types/moneyn.js.map +1 -0
  107. package/lib/data-types/nchar.d.ts +5 -0
  108. package/lib/data-types/nchar.js +100 -0
  109. package/lib/data-types/nchar.js.map +1 -0
  110. package/lib/data-types/ntext.d.ts +3 -0
  111. package/lib/data-types/ntext.js +60 -0
  112. package/lib/data-types/ntext.js.map +1 -0
  113. package/lib/data-types/null.d.ts +3 -0
  114. package/lib/data-types/null.js +29 -0
  115. package/lib/data-types/null.js.map +1 -0
  116. package/lib/data-types/numeric.d.ts +6 -0
  117. package/lib/data-types/numeric.js +106 -0
  118. package/lib/data-types/numeric.js.map +1 -0
  119. package/lib/data-types/numericn.d.ts +3 -0
  120. package/lib/data-types/numericn.js +29 -0
  121. package/lib/data-types/numericn.js.map +1 -0
  122. package/lib/data-types/nvarchar.d.ts +5 -0
  123. package/lib/data-types/nvarchar.js +133 -0
  124. package/lib/data-types/nvarchar.js.map +1 -0
  125. package/lib/data-types/real.d.ts +3 -0
  126. package/lib/data-types/real.js +48 -0
  127. package/lib/data-types/real.js.map +1 -0
  128. package/lib/data-types/smalldatetime.d.ts +3 -0
  129. package/lib/data-types/smalldatetime.js +83 -0
  130. package/lib/data-types/smalldatetime.js.map +1 -0
  131. package/lib/data-types/smallint.d.ts +3 -0
  132. package/lib/data-types/smallint.js +53 -0
  133. package/lib/data-types/smallint.js.map +1 -0
  134. package/lib/data-types/smallmoney.d.ts +3 -0
  135. package/lib/data-types/smallmoney.js +51 -0
  136. package/lib/data-types/smallmoney.js.map +1 -0
  137. package/lib/data-types/sql-variant.d.ts +3 -0
  138. package/lib/data-types/sql-variant.js +29 -0
  139. package/lib/data-types/sql-variant.js.map +1 -0
  140. package/lib/data-types/text.d.ts +3 -0
  141. package/lib/data-types/text.js +69 -0
  142. package/lib/data-types/text.js.map +1 -0
  143. package/lib/data-types/time.d.ts +3 -0
  144. package/lib/data-types/time.js +96 -0
  145. package/lib/data-types/time.js.map +1 -0
  146. package/lib/data-types/tinyint.d.ts +3 -0
  147. package/lib/data-types/tinyint.js +53 -0
  148. package/lib/data-types/tinyint.js.map +1 -0
  149. package/lib/data-types/tvp.d.ts +3 -0
  150. package/lib/data-types/tvp.js +117 -0
  151. package/lib/data-types/tvp.js.map +1 -0
  152. package/lib/data-types/udt.d.ts +3 -0
  153. package/lib/data-types/udt.js +29 -0
  154. package/lib/data-types/udt.js.map +1 -0
  155. package/lib/data-types/uniqueidentifier.d.ts +3 -0
  156. package/lib/data-types/uniqueidentifier.js +50 -0
  157. package/lib/data-types/uniqueidentifier.js.map +1 -0
  158. package/lib/data-types/varbinary.d.ts +5 -0
  159. package/lib/data-types/varbinary.js +119 -0
  160. package/lib/data-types/varbinary.js.map +1 -0
  161. package/lib/data-types/varchar.d.ts +5 -0
  162. package/lib/data-types/varchar.js +112 -0
  163. package/lib/data-types/varchar.js.map +1 -0
  164. package/lib/data-types/xml.d.ts +3 -0
  165. package/lib/data-types/xml.js +29 -0
  166. package/lib/data-types/xml.js.map +1 -0
  167. package/lib/debug.d.ts +25 -0
  168. package/lib/debug.js +66 -0
  169. package/lib/debug.js.map +1 -0
  170. package/lib/errors.d.ts +17 -0
  171. package/lib/errors.js +23 -0
  172. package/lib/errors.js.map +1 -0
  173. package/lib/guid-parser.d.ts +3 -0
  174. package/lib/guid-parser.js +30 -0
  175. package/lib/guid-parser.js.map +1 -0
  176. package/lib/incoming-message-stream.d.ts +19 -0
  177. package/lib/incoming-message-stream.js +97 -0
  178. package/lib/incoming-message-stream.js.map +1 -0
  179. package/lib/instance-lookup.d.ts +13 -0
  180. package/lib/instance-lookup.js +91 -0
  181. package/lib/instance-lookup.js.map +1 -0
  182. package/lib/library.d.ts +1 -0
  183. package/lib/library.js +8 -0
  184. package/lib/library.js.map +1 -0
  185. package/lib/login7-payload.d.ts +51 -0
  186. package/lib/login7-payload.js +408 -0
  187. package/lib/login7-payload.js.map +1 -0
  188. package/lib/message-io.d.ts +28 -0
  189. package/lib/message-io.js +152 -0
  190. package/lib/message-io.js.map +1 -0
  191. package/lib/message.d.ts +11 -0
  192. package/lib/message.js +21 -0
  193. package/lib/message.js.map +1 -0
  194. package/lib/metadata-parser.d.ts +48 -0
  195. package/lib/metadata-parser.js +380 -0
  196. package/lib/metadata-parser.js.map +1 -0
  197. package/lib/ntlm-payload.d.ts +23 -0
  198. package/lib/ntlm-payload.js +135 -0
  199. package/lib/ntlm-payload.js.map +1 -0
  200. package/lib/ntlm.d.ts +4 -0
  201. package/lib/ntlm.js +72 -0
  202. package/lib/ntlm.js.map +1 -0
  203. package/lib/outgoing-message-stream.d.ts +15 -0
  204. package/lib/outgoing-message-stream.js +81 -0
  205. package/lib/outgoing-message-stream.js.map +1 -0
  206. package/lib/packet.d.ts +33 -0
  207. package/lib/packet.js +191 -0
  208. package/lib/packet.js.map +1 -0
  209. package/lib/prelogin-payload.d.ts +67 -0
  210. package/lib/prelogin-payload.js +228 -0
  211. package/lib/prelogin-payload.js.map +1 -0
  212. package/lib/request.d.ts +370 -0
  213. package/lib/request.js +387 -0
  214. package/lib/request.js.map +1 -0
  215. package/lib/rpcrequest-payload.d.ts +16 -0
  216. package/lib/rpcrequest-payload.js +109 -0
  217. package/lib/rpcrequest-payload.js.map +1 -0
  218. package/lib/sender.d.ts +5 -0
  219. package/lib/sender.js +78 -0
  220. package/lib/sender.js.map +1 -0
  221. package/lib/special-stored-procedure.d.ts +18 -0
  222. package/lib/special-stored-procedure.js +26 -0
  223. package/lib/special-stored-procedure.js.map +1 -0
  224. package/lib/sqlbatch-payload.d.ts +13 -0
  225. package/lib/sqlbatch-payload.js +34 -0
  226. package/lib/sqlbatch-payload.js.map +1 -0
  227. package/lib/tds-versions.d.ts +6 -0
  228. package/lib/tds-versions.js +19 -0
  229. package/lib/tds-versions.js.map +1 -0
  230. package/lib/tedious.d.ts +13 -0
  231. package/lib/tedious.js +73 -0
  232. package/lib/tedious.js.map +1 -0
  233. package/lib/token/colmetadata-token-parser.d.ts +12 -0
  234. package/lib/token/colmetadata-token-parser.js +124 -0
  235. package/lib/token/colmetadata-token-parser.js.map +1 -0
  236. package/lib/token/done-token-parser.d.ts +6 -0
  237. package/lib/token/done-token-parser.js +76 -0
  238. package/lib/token/done-token-parser.js.map +1 -0
  239. package/lib/token/env-change-token-parser.d.ts +5 -0
  240. package/lib/token/env-change-token-parser.js +190 -0
  241. package/lib/token/env-change-token-parser.js.map +1 -0
  242. package/lib/token/feature-ext-ack-parser.d.ts +5 -0
  243. package/lib/token/feature-ext-ack-parser.js +52 -0
  244. package/lib/token/feature-ext-ack-parser.js.map +1 -0
  245. package/lib/token/fedauth-info-parser.d.ts +5 -0
  246. package/lib/token/fedauth-info-parser.js +62 -0
  247. package/lib/token/fedauth-info-parser.js.map +1 -0
  248. package/lib/token/handler.d.ts +136 -0
  249. package/lib/token/handler.js +445 -0
  250. package/lib/token/handler.js.map +1 -0
  251. package/lib/token/helpers.d.ts +28 -0
  252. package/lib/token/helpers.js +205 -0
  253. package/lib/token/helpers.js.map +1 -0
  254. package/lib/token/infoerror-token-parser.d.ts +5 -0
  255. package/lib/token/infoerror-token-parser.js +80 -0
  256. package/lib/token/infoerror-token-parser.js.map +1 -0
  257. package/lib/token/loginack-token-parser.d.ts +5 -0
  258. package/lib/token/loginack-token-parser.js +75 -0
  259. package/lib/token/loginack-token-parser.js.map +1 -0
  260. package/lib/token/nbcrow-token-parser.d.ts +4 -0
  261. package/lib/token/nbcrow-token-parser.js +103 -0
  262. package/lib/token/nbcrow-token-parser.js.map +1 -0
  263. package/lib/token/order-token-parser.d.ts +5 -0
  264. package/lib/token/order-token-parser.js +34 -0
  265. package/lib/token/order-token-parser.js.map +1 -0
  266. package/lib/token/returnstatus-token-parser.d.ts +5 -0
  267. package/lib/token/returnstatus-token-parser.js +21 -0
  268. package/lib/token/returnstatus-token-parser.js.map +1 -0
  269. package/lib/token/returnvalue-token-parser.d.ts +4 -0
  270. package/lib/token/returnvalue-token-parser.js +93 -0
  271. package/lib/token/returnvalue-token-parser.js.map +1 -0
  272. package/lib/token/row-token-parser.d.ts +4 -0
  273. package/lib/token/row-token-parser.js +76 -0
  274. package/lib/token/row-token-parser.js.map +1 -0
  275. package/lib/token/sspi-token-parser.d.ts +5 -0
  276. package/lib/token/sspi-token-parser.js +42 -0
  277. package/lib/token/sspi-token-parser.js.map +1 -0
  278. package/lib/token/stream-parser.d.ts +34 -0
  279. package/lib/token/stream-parser.js +341 -0
  280. package/lib/token/stream-parser.js.map +1 -0
  281. package/lib/token/token-stream-parser.d.ts +15 -0
  282. package/lib/token/token-stream-parser.js +36 -0
  283. package/lib/token/token-stream-parser.js.map +1 -0
  284. package/lib/token/token.d.ts +312 -0
  285. package/lib/token/token.js +328 -0
  286. package/lib/token/token.js.map +1 -0
  287. package/lib/tracking-buffer/writable-tracking-buffer.d.ts +47 -0
  288. package/lib/tracking-buffer/writable-tracking-buffer.js +249 -0
  289. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -0
  290. package/lib/transaction.d.ts +39 -0
  291. package/lib/transaction.js +137 -0
  292. package/lib/transaction.js.map +1 -0
  293. package/lib/transient-error-lookup.d.ts +3 -0
  294. package/lib/transient-error-lookup.js +19 -0
  295. package/lib/transient-error-lookup.js.map +1 -0
  296. package/lib/value-parser.d.ts +7 -0
  297. package/lib/value-parser.js +813 -0
  298. package/lib/value-parser.js.map +1 -0
  299. package/package.json +145 -0
  300. package/pull_request_template.md +9 -0
  301. package/tsconfig.build-types.json +15 -0
  302. package/tsconfig.json +30 -0
  303. package/types/js-md4.d.ts +7 -0
  304. package/types/native-duplexpair.d.ts +12 -0
@@ -0,0 +1,554 @@
1
+ import Null from './data-types/null';
2
+ import TinyInt from './data-types/tinyint';
3
+ import Bit from './data-types/bit';
4
+ import SmallInt from './data-types/smallint';
5
+ import Int from './data-types/int';
6
+ import SmallDateTime from './data-types/smalldatetime';
7
+ import Real from './data-types/real';
8
+ import Money from './data-types/money';
9
+ import DateTime from './data-types/datetime';
10
+ import Float from './data-types/float';
11
+ import Decimal from './data-types/decimal';
12
+ import Numeric from './data-types/numeric';
13
+ import SmallMoney from './data-types/smallmoney';
14
+ import BigInt from './data-types/bigint';
15
+ import Image from './data-types/image';
16
+ import Text from './data-types/text';
17
+ import UniqueIdentifier from './data-types/uniqueidentifier';
18
+ import IntN from './data-types/intn';
19
+ import NText from './data-types/ntext';
20
+ import BitN from './data-types/bitn';
21
+ import DecimalN from './data-types/decimaln';
22
+ import NumericN from './data-types/numericn';
23
+ import FloatN from './data-types/floatn';
24
+ import MoneyN from './data-types/moneyn';
25
+ import DateTimeN from './data-types/datetimen';
26
+ import VarBinary from './data-types/varbinary';
27
+ import VarChar from './data-types/varchar';
28
+ import Binary from './data-types/binary';
29
+ import Char from './data-types/char';
30
+ import NVarChar from './data-types/nvarchar';
31
+ import NChar from './data-types/nchar';
32
+ import Xml from './data-types/xml';
33
+ import Time from './data-types/time';
34
+ import Date from './data-types/date';
35
+ import DateTime2 from './data-types/datetime2';
36
+ import DateTimeOffset from './data-types/datetimeoffset';
37
+ import UDT from './data-types/udt';
38
+ import TVP from './data-types/tvp';
39
+ import Variant from './data-types/sql-variant';
40
+ import { type CryptoMetadata } from './always-encrypted/types';
41
+ import { type InternalConnectionOptions } from './connection';
42
+ import { Collation } from './collation';
43
+ export interface Parameter {
44
+ type: DataType;
45
+ name: string;
46
+ value: unknown;
47
+ output: boolean;
48
+ length?: number | undefined;
49
+ precision?: number | undefined;
50
+ scale?: number | undefined;
51
+ nullable?: boolean | undefined;
52
+ forceEncrypt?: boolean | undefined;
53
+ cryptoMetadata?: CryptoMetadata | undefined;
54
+ encryptedVal?: Buffer | undefined;
55
+ }
56
+ export interface ParameterData<T = any> {
57
+ length?: number | undefined;
58
+ scale?: number | undefined;
59
+ precision?: number | undefined;
60
+ collation?: Collation | undefined;
61
+ value: T;
62
+ }
63
+ export interface DataType {
64
+ id: number;
65
+ type: string;
66
+ name: string;
67
+ declaration(parameter: Parameter): string;
68
+ generateTypeInfo(parameter: ParameterData, options: InternalConnectionOptions): Buffer;
69
+ generateParameterLength(parameter: ParameterData, options: InternalConnectionOptions): Buffer;
70
+ generateParameterData(parameter: ParameterData, options: InternalConnectionOptions): Generator<Buffer, void>;
71
+ validate(value: any, collation: Collation | undefined, options?: InternalConnectionOptions): any;
72
+ hasTableName?: boolean;
73
+ resolveLength?: (parameter: Parameter) => number;
74
+ resolvePrecision?: (parameter: Parameter) => number;
75
+ resolveScale?: (parameter: Parameter) => number;
76
+ }
77
+ export declare const TYPE: {
78
+ [Null.id]: DataType;
79
+ [TinyInt.id]: DataType;
80
+ [Bit.id]: DataType;
81
+ [SmallInt.id]: DataType;
82
+ [Int.id]: DataType;
83
+ [SmallDateTime.id]: DataType;
84
+ [Real.id]: DataType;
85
+ [Money.id]: DataType;
86
+ [DateTime.id]: DataType;
87
+ [Float.id]: DataType;
88
+ [Decimal.id]: DataType & {
89
+ resolvePrecision: NonNullable<DataType["resolvePrecision"]>;
90
+ resolveScale: NonNullable<DataType["resolveScale"]>;
91
+ };
92
+ [Numeric.id]: DataType & {
93
+ resolveScale: NonNullable<DataType["resolveScale"]>;
94
+ resolvePrecision: NonNullable<DataType["resolvePrecision"]>;
95
+ };
96
+ [SmallMoney.id]: DataType;
97
+ [BigInt.id]: DataType;
98
+ [Image.id]: DataType;
99
+ [Text.id]: DataType;
100
+ [UniqueIdentifier.id]: DataType;
101
+ [IntN.id]: DataType;
102
+ [NText.id]: DataType;
103
+ [BitN.id]: DataType;
104
+ [DecimalN.id]: DataType;
105
+ [NumericN.id]: DataType;
106
+ [FloatN.id]: DataType;
107
+ [MoneyN.id]: DataType;
108
+ [DateTimeN.id]: DataType;
109
+ [VarBinary.id]: {
110
+ maximumLength: number;
111
+ } & DataType;
112
+ [VarChar.id]: {
113
+ maximumLength: number;
114
+ } & DataType;
115
+ [Binary.id]: {
116
+ maximumLength: number;
117
+ } & DataType;
118
+ [Char.id]: {
119
+ maximumLength: number;
120
+ } & DataType;
121
+ [NVarChar.id]: {
122
+ maximumLength: number;
123
+ } & DataType;
124
+ [NChar.id]: DataType & {
125
+ maximumLength: number;
126
+ };
127
+ [Xml.id]: DataType;
128
+ [Time.id]: DataType;
129
+ [Date.id]: DataType;
130
+ [DateTime2.id]: DataType & {
131
+ resolveScale: NonNullable<DataType["resolveScale"]>;
132
+ };
133
+ [DateTimeOffset.id]: DataType & {
134
+ resolveScale: NonNullable<DataType["resolveScale"]>;
135
+ };
136
+ [UDT.id]: DataType;
137
+ [TVP.id]: DataType;
138
+ [Variant.id]: DataType;
139
+ };
140
+ /**
141
+ * <table>
142
+ * <thead>
143
+ * <tr>
144
+ * <th>Type</th>
145
+ * <th>Constant</th>
146
+ * <th>JavaScript</th>
147
+ * <th>Result set</th>
148
+ * <th>Parameter</th>
149
+ * </tr>
150
+ * </thead>
151
+ *
152
+ * <tbody>
153
+ * <tr class="group-heading">
154
+ * <th colspan="5">Exact numerics</th>
155
+ * </tr>
156
+ * <tr>
157
+ * <td><code>bit</code></td>
158
+ * <td><code>[[TYPES.Bit]]</code></td>
159
+ * <td><code>boolean</code></td>
160
+ * <td>✓</td>
161
+ * <td>✓</td>
162
+ * </tr>
163
+ * <tr>
164
+ * <td><code>tinyint</code></td>
165
+ * <td><code>[[TYPES.TinyInt]]</code></td>
166
+ * <td><code>number</code></td>
167
+ * <td>✓</td>
168
+ * <td>✓</td>
169
+ * </tr>
170
+ * <tr>
171
+ * <td><code>smallint</code></td>
172
+ * <td><code>[[TYPES.SmallInt]]</code></td>
173
+ * <td><code>number</code></td>
174
+ * <td>✓</td>
175
+ * <td>✓</td>
176
+ * </tr>
177
+ * <tr>
178
+ * <td><code>int</code></td>
179
+ * <td><code>[[TYPES.Int]]</code></td>
180
+ * <td><code>number</code></td>
181
+ * <td>✓</td>
182
+ * <td>✓</td>
183
+ * </tr>
184
+ * <tr>
185
+ * <td><code>bigint</code><sup>1</sup></td>
186
+ * <td><code>[[TYPES.BigInt]]</code></td>
187
+ * <td><code>string</code></td>
188
+ * <td>✓</td>
189
+ * <td>✓</td>
190
+ * </tr>
191
+ * <tr>
192
+ * <td><code>numeric</code><sup>2</sup></td>
193
+ * <td><code>[[TYPES.Numeric]]</code></td>
194
+ * <td><code>number</code></td>
195
+ * <td>✓</td>
196
+ * <td>✓</td>
197
+ * </tr>
198
+ * <tr>
199
+ * <td><code>decimal</code><sup>2</sup></td>
200
+ * <td><code>[[TYPES.Decimal]]</code></td>
201
+ * <td><code>number</code></td>
202
+ * <td>✓</td>
203
+ * <td>✓</td>
204
+ * </tr>
205
+ * <tr>
206
+ * <td><code>smallmoney</code></td>
207
+ * <td><code>[[TYPES.SmallMoney]]</code></td>
208
+ * <td><code>number</code></td>
209
+ * <td>✓</td>
210
+ * <td>✓</td>
211
+ * </tr>
212
+ * <tr>
213
+ * <td><code>money</code></td>
214
+ * <td><code>[[TYPES.Money]]</code></td>
215
+ * <td><code>number</code></td>
216
+ * <td>✓</td>
217
+ * <td>✓</td>
218
+ * </tr>
219
+ * </tbody>
220
+ *
221
+ * <tbody>
222
+ * <tr class="group-heading">
223
+ * <th colspan="5">Approximate numerics</th>
224
+ * </tr>
225
+ * <tr>
226
+ * <td><code>float</code></td>
227
+ * <td><code>[[TYPES.Float]]</code></td>
228
+ * <td><code>number</code></td>
229
+ * <td>✓</td>
230
+ * <td>✓</td>
231
+ * </tr>
232
+ * <tr>
233
+ * <td><code>real</code></td>
234
+ * <td><code>[[TYPES.Real]]</code></td>
235
+ * <td><code>number</code></td>
236
+ * <td>✓</td>
237
+ * <td>✓</td>
238
+ * </tr>
239
+ * </tbody>
240
+ *
241
+ * <tbody>
242
+ * <tr class="group-heading">
243
+ * <th colspan="4">Date and Time</th>
244
+ * </tr>
245
+ * <tr>
246
+ * <td><code>smalldatetime</code></td>
247
+ * <td><code>[[TYPES.SmallDateTime]]</code></td>
248
+ * <td><code>Date</code></td>
249
+ * <td>✓</td>
250
+ * <td>✓</td>
251
+ * </tr>
252
+ * <tr>
253
+ * <td><code>datetime</code></td>
254
+ * <td><code>[[TYPES.DateTime]]</code></td>
255
+ * <td><code>Date</code></td>
256
+ * <td>✓</td>
257
+ * <td>✓</td>
258
+ * </tr>
259
+ * <tr>
260
+ * <td><code>datetime2</code></td>
261
+ * <td><code>[[TYPES.DateTime2]]</code></td>
262
+ * <td><code>Date</code></td>
263
+ * <td>✓</td>
264
+ * <td>✓</td>
265
+ * </tr>
266
+ * <tr>
267
+ * <td><code>datetimeoffset</code></td>
268
+ * <td><code>[[TYPES.DateTimeOffset]]</code></td>
269
+ * <td><code>Date</code></td>
270
+ * <td>✓</td>
271
+ * <td>✓</td>
272
+ * </tr>
273
+ * <tr>
274
+ * <td><code>time</code></td>
275
+ * <td><code>[[TYPES.Time]]</code></td>
276
+ * <td><code>Date</code></td>
277
+ * <td>✓</td>
278
+ * <td>✓</td>
279
+ * </tr>
280
+ * <tr>
281
+ * <td><code>date</code></td>
282
+ * <td><code>[[TYPES.Date]]</code></td>
283
+ * <td><code>Date</code></td>
284
+ * <td>✓</td>
285
+ * <td>✓</td>
286
+ * </tr>
287
+ * </tbody>
288
+ *
289
+ * <tbody>
290
+ * <tr class="group-heading">
291
+ * <th colspan="4">Character Strings</th>
292
+ * </tr>
293
+ * <tr>
294
+ * <td><code>char</code></td>
295
+ * <td><code>[[TYPES.Char]]</code></td>
296
+ * <td><code>string</code></td>
297
+ * <td>✓</td>
298
+ * <td>✓</td>
299
+ * </tr>
300
+ * <tr>
301
+ * <td><code>varchar</code><sup>3</sup></td>
302
+ * <td><code>[[TYPES.VarChar]]</code></td>
303
+ * <td><code>string</code></td>
304
+ * <td>✓</td>
305
+ * <td>✓</td>
306
+ * </tr>
307
+ * <tr>
308
+ * <td><code>text</code></td>
309
+ * <td><code>[[TYPES.Text]]</code></td>
310
+ * <td><code>string</code></td>
311
+ * <td>✓</td>
312
+ * <td>✓</td>
313
+ * </tr>
314
+ * </tbody>
315
+ *
316
+ * <tbody>
317
+ * <tr class="group-heading">
318
+ * <th colspan="4">Unicode Strings</th>
319
+ * </tr>
320
+ * <tr>
321
+ * <td><code>nchar</code></td>
322
+ * <td><code>[[TYPES.NChar]]</code></td>
323
+ * <td><code>string</code></td>
324
+ * <td>✓</td>
325
+ * <td>✓</td>
326
+ * </tr>
327
+ * <tr>
328
+ * <td><code>nvarchar</code><sup>3</sup></td>
329
+ * <td><code>[[TYPES.NVarChar]]</code></td>
330
+ * <td><code>string</code></td>
331
+ * <td>✓</td>
332
+ * <td>✓</td>
333
+ * </tr>
334
+ * <tr>
335
+ * <td><code>ntext</code></td>
336
+ * <td><code>[[TYPES.NText]]</code></td>
337
+ * <td><code>string</code></td>
338
+ * <td>✓</td>
339
+ * <td>-</td>
340
+ * </tr>
341
+ * </tbody>
342
+ *
343
+ * <tbody>
344
+ * <tr class="group-heading">
345
+ * <th colspan="5">Binary Strings<sup>4</sup></th>
346
+ * </tr>
347
+ * <tr>
348
+ * <td><code>binary</code></td>
349
+ * <td><code>[[TYPES.Binary]]</code></td>
350
+ * <td><code>Buffer</code></td>
351
+ * <td>✓</td>
352
+ * <td>✓</td>
353
+ * </tr>
354
+ * <tr>
355
+ * <td><code>varbinary</code></td>
356
+ * <td><code>[[TYPES.VarBinary]]</code></td>
357
+ * <td><code>Buffer</code></td>
358
+ * <td>✓</td>
359
+ * <td>✓</td>
360
+ * </tr>
361
+ * <tr>
362
+ * <td><code>image</code></td>
363
+ * <td><code>[[TYPES.Image]]</code></td>
364
+ * <td><code>Buffer</code></td>
365
+ * <td>✓</td>
366
+ * <td>✓</td>
367
+ * </tr>
368
+ * </tbody>
369
+ *
370
+ * <tbody>
371
+ * <tr class="group-heading">
372
+ * <th colspan="5">Other Data Types</th>
373
+ * </tr>
374
+ * <tr>
375
+ * <td><code>TVP</code></td>
376
+ * <td><code>[[TYPES.TVP]]</code></td>
377
+ * <td><code>Object</code></td>
378
+ * <td>-</td>
379
+ * <td>✓</td>
380
+ * </tr>
381
+ * <tr>
382
+ * <td><code>UDT</code></td>
383
+ * <td><code>[[TYPES.UDT]]</code></td>
384
+ * <td><code>Buffer</code></td>
385
+ * <td>✓</td>
386
+ * <td>-</td>
387
+ * </tr>
388
+ * <tr>
389
+ * <td><code>uniqueidentifier</code><sup>4</sup></td>
390
+ * <td><code>[[TYPES.UniqueIdentifier]]</code></td>
391
+ * <td><code>string</code></td>
392
+ * <td>✓</td>
393
+ * <td>✓</td>
394
+ * </tr>
395
+ * <tr>
396
+ * <td><code>variant</code></td>
397
+ * <td><code>[[TYPES.Variant]]</code></td>
398
+ * <td><code>any</code></td>
399
+ * <td>✓</td>
400
+ * <td>-</td>
401
+ * </tr>
402
+ * <tr>
403
+ * <td><code>xml</code></td>
404
+ * <td><code>[[TYPES.Xml]]</code></td>
405
+ * <td><code>string</code></td>
406
+ * <td>✓</td>
407
+ * <td>-</td>
408
+ * </tr>
409
+ * </tbody>
410
+ * </table>
411
+ *
412
+ * <ol>
413
+ * <li>
414
+ * <h4>BigInt</h4>
415
+ * <p>
416
+ * Values are returned as a string. This is because values can exceed 53 bits of significant data, which is greater than a
417
+ * Javascript <code>number</code> type can represent as an integer.
418
+ * </p>
419
+ * </li>
420
+ * <li>
421
+ * <h4>Numerical, Decimal</h4>
422
+ * <p>
423
+ * For input parameters, default precision is 18 and default scale is 0. Maximum supported precision is 19.
424
+ * </p>
425
+ * </li>
426
+ * <li>
427
+ * <h4>VarChar, NVarChar</h4>
428
+ * <p>
429
+ * <code>varchar(max)</code> and <code>nvarchar(max)</code> are also supported.
430
+ * </p>
431
+ * </li>
432
+ * <li>
433
+ * <h4>UniqueIdentifier</h4>
434
+ * <p>
435
+ * Values are returned as a 16 byte hexadecimal string.
436
+ * </p>
437
+ * <p>
438
+ * Note that the order of bytes is not the same as the character representation. See
439
+ * <a href="http://msdn.microsoft.com/en-us/library/ms190215.aspx">Using uniqueidentifier Data</a>
440
+ * for an example of the different ordering of bytes.
441
+ * </p>
442
+ * </li>
443
+ * </ol>
444
+ */
445
+ export declare const TYPES: {
446
+ TinyInt: DataType;
447
+ Bit: DataType;
448
+ SmallInt: DataType;
449
+ Int: DataType;
450
+ SmallDateTime: DataType;
451
+ Real: DataType;
452
+ Money: DataType;
453
+ DateTime: DataType;
454
+ Float: DataType;
455
+ Decimal: DataType & {
456
+ resolvePrecision: NonNullable<DataType["resolvePrecision"]>;
457
+ resolveScale: NonNullable<DataType["resolveScale"]>;
458
+ };
459
+ Numeric: DataType & {
460
+ resolveScale: NonNullable<DataType["resolveScale"]>;
461
+ resolvePrecision: NonNullable<DataType["resolvePrecision"]>;
462
+ };
463
+ SmallMoney: DataType;
464
+ BigInt: DataType;
465
+ Image: DataType;
466
+ Text: DataType;
467
+ UniqueIdentifier: DataType;
468
+ NText: DataType;
469
+ VarBinary: {
470
+ maximumLength: number;
471
+ } & DataType;
472
+ VarChar: {
473
+ maximumLength: number;
474
+ } & DataType;
475
+ Binary: {
476
+ maximumLength: number;
477
+ } & DataType;
478
+ Char: {
479
+ maximumLength: number;
480
+ } & DataType;
481
+ NVarChar: {
482
+ maximumLength: number;
483
+ } & DataType;
484
+ NChar: DataType & {
485
+ maximumLength: number;
486
+ };
487
+ Xml: DataType;
488
+ Time: DataType;
489
+ Date: DataType;
490
+ DateTime2: DataType & {
491
+ resolveScale: NonNullable<DataType["resolveScale"]>;
492
+ };
493
+ DateTimeOffset: DataType & {
494
+ resolveScale: NonNullable<DataType["resolveScale"]>;
495
+ };
496
+ UDT: DataType;
497
+ TVP: DataType;
498
+ Variant: DataType;
499
+ };
500
+ export declare const typeByName: {
501
+ TinyInt: DataType;
502
+ Bit: DataType;
503
+ SmallInt: DataType;
504
+ Int: DataType;
505
+ SmallDateTime: DataType;
506
+ Real: DataType;
507
+ Money: DataType;
508
+ DateTime: DataType;
509
+ Float: DataType;
510
+ Decimal: DataType & {
511
+ resolvePrecision: NonNullable<DataType["resolvePrecision"]>;
512
+ resolveScale: NonNullable<DataType["resolveScale"]>;
513
+ };
514
+ Numeric: DataType & {
515
+ resolveScale: NonNullable<DataType["resolveScale"]>;
516
+ resolvePrecision: NonNullable<DataType["resolvePrecision"]>;
517
+ };
518
+ SmallMoney: DataType;
519
+ BigInt: DataType;
520
+ Image: DataType;
521
+ Text: DataType;
522
+ UniqueIdentifier: DataType;
523
+ NText: DataType;
524
+ VarBinary: {
525
+ maximumLength: number;
526
+ } & DataType;
527
+ VarChar: {
528
+ maximumLength: number;
529
+ } & DataType;
530
+ Binary: {
531
+ maximumLength: number;
532
+ } & DataType;
533
+ Char: {
534
+ maximumLength: number;
535
+ } & DataType;
536
+ NVarChar: {
537
+ maximumLength: number;
538
+ } & DataType;
539
+ NChar: DataType & {
540
+ maximumLength: number;
541
+ };
542
+ Xml: DataType;
543
+ Time: DataType;
544
+ Date: DataType;
545
+ DateTime2: DataType & {
546
+ resolveScale: NonNullable<DataType["resolveScale"]>;
547
+ };
548
+ DateTimeOffset: DataType & {
549
+ resolveScale: NonNullable<DataType["resolveScale"]>;
550
+ };
551
+ UDT: DataType;
552
+ TVP: DataType;
553
+ Variant: DataType;
554
+ };