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 @@
1
+ {"version":3,"file":"null.js","names":["Null","id","type","name","declaration","Error","generateTypeInfo","generateParameterLength","generateParameterData","validate","_default","exports","default","module"],"sources":["../../src/data-types/null.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst Null: DataType = {\n id: 0x1F,\n type: 'NULL',\n name: 'Null',\n\n declaration() {\n throw new Error('not implemented');\n },\n\n generateTypeInfo() {\n throw new Error('not implemented');\n },\n\n generateParameterLength() {\n throw new Error('not implemented');\n },\n\n generateParameterData() {\n throw new Error('not implemented');\n },\n\n validate() {\n throw new Error('not implemented');\n }\n};\n\nexport default Null;\nmodule.exports = Null;\n"],"mappings":";;;;;;AAEA,MAAMA,IAAc,GAAG;EACrBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EAEZC,WAAWA,CAAA,EAAG;IACZ,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDC,gBAAgBA,CAAA,EAAG;IACjB,MAAM,IAAID,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDE,uBAAuBA,CAAA,EAAG;IACxB,MAAM,IAAIF,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDG,qBAAqBA,CAAA,EAAG;IACtB,MAAM,IAAIH,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDI,QAAQA,CAAA,EAAG;IACT,MAAM,IAAIJ,KAAK,CAAC,iBAAiB,CAAC;EACpC;AACF,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaZ,IAAI;AACnBa,MAAM,CAACF,OAAO,GAAGX,IAAI","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { type DataType } from '../data-type';
2
+ declare const Numeric: DataType & {
3
+ resolveScale: NonNullable<DataType['resolveScale']>;
4
+ resolvePrecision: NonNullable<DataType['resolvePrecision']>;
5
+ };
6
+ export default Numeric;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _numericn = _interopRequireDefault(require("./numericn"));
8
+ var _writableTrackingBuffer = _interopRequireDefault(require("../tracking-buffer/writable-tracking-buffer"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const NULL_LENGTH = Buffer.from([0x00]);
11
+ const Numeric = {
12
+ id: 0x3F,
13
+ type: 'NUMERIC',
14
+ name: 'Numeric',
15
+ declaration: function (parameter) {
16
+ return 'numeric(' + this.resolvePrecision(parameter) + ', ' + this.resolveScale(parameter) + ')';
17
+ },
18
+ resolvePrecision: function (parameter) {
19
+ if (parameter.precision != null) {
20
+ return parameter.precision;
21
+ } else if (parameter.value === null) {
22
+ return 1;
23
+ } else {
24
+ return 18;
25
+ }
26
+ },
27
+ resolveScale: function (parameter) {
28
+ if (parameter.scale != null) {
29
+ return parameter.scale;
30
+ } else {
31
+ return 0;
32
+ }
33
+ },
34
+ generateTypeInfo(parameter) {
35
+ let precision;
36
+ if (parameter.precision <= 9) {
37
+ precision = 0x05;
38
+ } else if (parameter.precision <= 19) {
39
+ precision = 0x09;
40
+ } else if (parameter.precision <= 28) {
41
+ precision = 0x0D;
42
+ } else {
43
+ precision = 0x11;
44
+ }
45
+ return Buffer.from([_numericn.default.id, precision, parameter.precision, parameter.scale]);
46
+ },
47
+ generateParameterLength(parameter, options) {
48
+ if (parameter.value == null) {
49
+ return NULL_LENGTH;
50
+ }
51
+ const precision = parameter.precision;
52
+ if (precision <= 9) {
53
+ return Buffer.from([0x05]);
54
+ } else if (precision <= 19) {
55
+ return Buffer.from([0x09]);
56
+ } else if (precision <= 28) {
57
+ return Buffer.from([0x0D]);
58
+ } else {
59
+ return Buffer.from([0x11]);
60
+ }
61
+ },
62
+ *generateParameterData(parameter, options) {
63
+ if (parameter.value == null) {
64
+ return;
65
+ }
66
+ const sign = parameter.value < 0 ? 0 : 1;
67
+ const value = Math.round(Math.abs(parameter.value * Math.pow(10, parameter.scale)));
68
+ if (parameter.precision <= 9) {
69
+ const buffer = Buffer.alloc(5);
70
+ buffer.writeUInt8(sign, 0);
71
+ buffer.writeUInt32LE(value, 1);
72
+ yield buffer;
73
+ } else if (parameter.precision <= 19) {
74
+ const buffer = new _writableTrackingBuffer.default(10);
75
+ buffer.writeUInt8(sign);
76
+ buffer.writeUInt64LE(value);
77
+ yield buffer.data;
78
+ } else if (parameter.precision <= 28) {
79
+ const buffer = new _writableTrackingBuffer.default(14);
80
+ buffer.writeUInt8(sign);
81
+ buffer.writeUInt64LE(value);
82
+ buffer.writeUInt32LE(0x00000000);
83
+ yield buffer.data;
84
+ } else {
85
+ const buffer = new _writableTrackingBuffer.default(18);
86
+ buffer.writeUInt8(sign);
87
+ buffer.writeUInt64LE(value);
88
+ buffer.writeUInt32LE(0x00000000);
89
+ buffer.writeUInt32LE(0x00000000);
90
+ yield buffer.data;
91
+ }
92
+ },
93
+ validate: function (value) {
94
+ if (value == null) {
95
+ return null;
96
+ }
97
+ value = parseFloat(value);
98
+ if (isNaN(value)) {
99
+ throw new TypeError('Invalid number.');
100
+ }
101
+ return value;
102
+ }
103
+ };
104
+ var _default = exports.default = Numeric;
105
+ module.exports = Numeric;
106
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnVtZXJpY24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl93cml0YWJsZVRyYWNraW5nQnVmZmVyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiTnVtZXJpYyIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInJlc29sdmVQcmVjaXNpb24iLCJyZXNvbHZlU2NhbGUiLCJwcmVjaXNpb24iLCJ2YWx1ZSIsInNjYWxlIiwiZ2VuZXJhdGVUeXBlSW5mbyIsIk51bWVyaWNOIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwic2lnbiIsIk1hdGgiLCJyb3VuZCIsImFicyIsInBvdyIsImJ1ZmZlciIsImFsbG9jIiwid3JpdGVVSW50OCIsIndyaXRlVUludDMyTEUiLCJXcml0YWJsZVRyYWNraW5nQnVmZmVyIiwid3JpdGVVSW50NjRMRSIsImRhdGEiLCJ2YWxpZGF0ZSIsInBhcnNlRmxvYXQiLCJpc05hTiIsIlR5cGVFcnJvciIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL251bWVyaWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgTnVtZXJpY04gZnJvbSAnLi9udW1lcmljbic7XG5pbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuLi90cmFja2luZy1idWZmZXIvd3JpdGFibGUtdHJhY2tpbmctYnVmZmVyJztcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuXG5jb25zdCBOdW1lcmljOiBEYXRhVHlwZSAmIHsgcmVzb2x2ZVNjYWxlOiBOb25OdWxsYWJsZTxEYXRhVHlwZVsncmVzb2x2ZVNjYWxlJ10+LCByZXNvbHZlUHJlY2lzaW9uOiBOb25OdWxsYWJsZTxEYXRhVHlwZVsncmVzb2x2ZVByZWNpc2lvbiddPiB9ID0ge1xuICBpZDogMHgzRixcbiAgdHlwZTogJ05VTUVSSUMnLFxuICBuYW1lOiAnTnVtZXJpYycsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIHJldHVybiAnbnVtZXJpYygnICsgKHRoaXMucmVzb2x2ZVByZWNpc2lvbihwYXJhbWV0ZXIpKSArICcsICcgKyAodGhpcy5yZXNvbHZlU2NhbGUocGFyYW1ldGVyKSkgKyAnKSc7XG4gIH0sXG5cbiAgcmVzb2x2ZVByZWNpc2lvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgaWYgKHBhcmFtZXRlci5wcmVjaXNpb24gIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5wcmVjaXNpb247XG4gICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMTg7XG4gICAgfVxuICB9LFxuXG4gIHJlc29sdmVTY2FsZTogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgaWYgKHBhcmFtZXRlci5zY2FsZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLnNjYWxlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXIpIHtcbiAgICBsZXQgcHJlY2lzaW9uO1xuICAgIGlmIChwYXJhbWV0ZXIucHJlY2lzaW9uISA8PSA5KSB7XG4gICAgICBwcmVjaXNpb24gPSAweDA1O1xuICAgIH0gZWxzZSBpZiAocGFyYW1ldGVyLnByZWNpc2lvbiEgPD0gMTkpIHtcbiAgICAgIHByZWNpc2lvbiA9IDB4MDk7XG4gICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIucHJlY2lzaW9uISA8PSAyOCkge1xuICAgICAgcHJlY2lzaW9uID0gMHgwRDtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlY2lzaW9uID0gMHgxMTtcbiAgICB9XG5cbiAgICByZXR1cm4gQnVmZmVyLmZyb20oW051bWVyaWNOLmlkLCBwcmVjaXNpb24sIHBhcmFtZXRlci5wcmVjaXNpb24hLCBwYXJhbWV0ZXIuc2NhbGUhXSk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlY2lzaW9uID0gcGFyYW1ldGVyLnByZWNpc2lvbiE7XG4gICAgaWYgKHByZWNpc2lvbiA8PSA5KSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oWzB4MDVdKTtcbiAgICB9IGVsc2UgaWYgKHByZWNpc2lvbiA8PSAxOSkge1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA5XSk7XG4gICAgfSBlbHNlIGlmIChwcmVjaXNpb24gPD0gMjgpIHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShbMHgwRF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oWzB4MTFdKTtcbiAgICB9XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2lnbiA9IHBhcmFtZXRlci52YWx1ZSA8IDAgPyAwIDogMTtcbiAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoTWF0aC5hYnMocGFyYW1ldGVyLnZhbHVlICogTWF0aC5wb3coMTAsIHBhcmFtZXRlci5zY2FsZSEpKSk7XG4gICAgaWYgKHBhcmFtZXRlci5wcmVjaXNpb24hIDw9IDkpIHtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg1KTtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHNpZ24sIDApO1xuICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUodmFsdWUsIDEpO1xuICAgICAgeWllbGQgYnVmZmVyO1xuICAgIH0gZWxzZSBpZiAocGFyYW1ldGVyLnByZWNpc2lvbiEgPD0gMTkpIHtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKDEwKTtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHNpZ24pO1xuICAgICAgYnVmZmVyLndyaXRlVUludDY0TEUodmFsdWUpO1xuICAgICAgeWllbGQgYnVmZmVyLmRhdGE7XG4gICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIucHJlY2lzaW9uISA8PSAyOCkge1xuICAgICAgY29uc3QgYnVmZmVyID0gbmV3IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIoMTQpO1xuICAgICAgYnVmZmVyLndyaXRlVUludDgoc2lnbik7XG4gICAgICBidWZmZXIud3JpdGVVSW50NjRMRSh2YWx1ZSk7XG4gICAgICBidWZmZXIud3JpdGVVSW50MzJMRSgweDAwMDAwMDAwKTtcbiAgICAgIHlpZWxkIGJ1ZmZlci5kYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcigxOCk7XG4gICAgICBidWZmZXIud3JpdGVVSW50OChzaWduKTtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ2NExFKHZhbHVlKTtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKDB4MDAwMDAwMDApO1xuICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUoMHgwMDAwMDAwMCk7XG4gICAgICB5aWVsZCBidWZmZXIuZGF0YTtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogbnVsbCB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbnVtYmVyLicpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IE51bWVyaWM7XG5tb2R1bGUuZXhwb3J0cyA9IE51bWVyaWM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLHVCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFBaUYsU0FBQUQsdUJBQUFHLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFakYsTUFBTUcsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXZDLE1BQU1DLE9BQXdJLEdBQUc7RUFDL0lDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxTQUFTO0VBQ2ZDLElBQUksRUFBRSxTQUFTO0VBRWZDLFdBQVcsRUFBRSxTQUFBQSxDQUFTQyxTQUFTLEVBQUU7SUFDL0IsT0FBTyxVQUFVLEdBQUksSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQ0QsU0FBUyxDQUFFLEdBQUcsSUFBSSxHQUFJLElBQUksQ0FBQ0UsWUFBWSxDQUFDRixTQUFTLENBQUUsR0FBRyxHQUFHO0VBQ3RHLENBQUM7RUFFREMsZ0JBQWdCLEVBQUUsU0FBQUEsQ0FBU0QsU0FBUyxFQUFFO0lBQ3BDLElBQUlBLFNBQVMsQ0FBQ0csU0FBUyxJQUFJLElBQUksRUFBRTtNQUMvQixPQUFPSCxTQUFTLENBQUNHLFNBQVM7SUFDNUIsQ0FBQyxNQUFNLElBQUlILFNBQVMsQ0FBQ0ksS0FBSyxLQUFLLElBQUksRUFBRTtNQUNuQyxPQUFPLENBQUM7SUFDVixDQUFD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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric.js","names":["_numericn","_interopRequireDefault","require","_writableTrackingBuffer","e","__esModule","default","NULL_LENGTH","Buffer","from","Numeric","id","type","name","declaration","parameter","resolvePrecision","resolveScale","precision","value","scale","generateTypeInfo","NumericN","generateParameterLength","options","generateParameterData","sign","Math","round","abs","pow","buffer","alloc","writeUInt8","writeUInt32LE","WritableTrackingBuffer","writeUInt64LE","data","validate","parseFloat","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/numeric.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport NumericN from './numericn';\nimport WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';\n\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst Numeric: DataType & { resolveScale: NonNullable<DataType['resolveScale']>, resolvePrecision: NonNullable<DataType['resolvePrecision']> } = {\n id: 0x3F,\n type: 'NUMERIC',\n name: 'Numeric',\n\n declaration: function(parameter) {\n return 'numeric(' + (this.resolvePrecision(parameter)) + ', ' + (this.resolveScale(parameter)) + ')';\n },\n\n resolvePrecision: function(parameter) {\n if (parameter.precision != null) {\n return parameter.precision;\n } else if (parameter.value === null) {\n return 1;\n } else {\n return 18;\n }\n },\n\n resolveScale: function(parameter) {\n if (parameter.scale != null) {\n return parameter.scale;\n } else {\n return 0;\n }\n },\n\n generateTypeInfo(parameter) {\n let precision;\n if (parameter.precision! <= 9) {\n precision = 0x05;\n } else if (parameter.precision! <= 19) {\n precision = 0x09;\n } else if (parameter.precision! <= 28) {\n precision = 0x0D;\n } else {\n precision = 0x11;\n }\n\n return Buffer.from([NumericN.id, precision, parameter.precision!, parameter.scale!]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n const precision = parameter.precision!;\n if (precision <= 9) {\n return Buffer.from([0x05]);\n } else if (precision <= 19) {\n return Buffer.from([0x09]);\n } else if (precision <= 28) {\n return Buffer.from([0x0D]);\n } else {\n return Buffer.from([0x11]);\n }\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const sign = parameter.value < 0 ? 0 : 1;\n const value = Math.round(Math.abs(parameter.value * Math.pow(10, parameter.scale!)));\n if (parameter.precision! <= 9) {\n const buffer = Buffer.alloc(5);\n buffer.writeUInt8(sign, 0);\n buffer.writeUInt32LE(value, 1);\n yield buffer;\n } else if (parameter.precision! <= 19) {\n const buffer = new WritableTrackingBuffer(10);\n buffer.writeUInt8(sign);\n buffer.writeUInt64LE(value);\n yield buffer.data;\n } else if (parameter.precision! <= 28) {\n const buffer = new WritableTrackingBuffer(14);\n buffer.writeUInt8(sign);\n buffer.writeUInt64LE(value);\n buffer.writeUInt32LE(0x00000000);\n yield buffer.data;\n } else {\n const buffer = new WritableTrackingBuffer(18);\n buffer.writeUInt8(sign);\n buffer.writeUInt64LE(value);\n buffer.writeUInt32LE(0x00000000);\n buffer.writeUInt32LE(0x00000000);\n yield buffer.data;\n }\n },\n\n validate: function(value): null | number {\n if (value == null) {\n return null;\n }\n value = parseFloat(value);\n if (isNaN(value)) {\n throw new TypeError('Invalid number.');\n }\n return value;\n }\n};\n\nexport default Numeric;\nmodule.exports = Numeric;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { type DataType } from '../data-type';
2
+ declare const NumericN: DataType;
3
+ export default NumericN;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ const NumericN = {
8
+ id: 0x6C,
9
+ type: 'NUMERICN',
10
+ name: 'NumericN',
11
+ declaration() {
12
+ throw new Error('not implemented');
13
+ },
14
+ generateTypeInfo() {
15
+ throw new Error('not implemented');
16
+ },
17
+ generateParameterLength() {
18
+ throw new Error('not implemented');
19
+ },
20
+ generateParameterData() {
21
+ throw new Error('not implemented');
22
+ },
23
+ validate() {
24
+ throw new Error('not implemented');
25
+ }
26
+ };
27
+ var _default = exports.default = NumericN;
28
+ module.exports = NumericN;
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1lcmljTiIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsIkVycm9yIiwiZ2VuZXJhdGVUeXBlSW5mbyIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwidmFsaWRhdGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvbnVtZXJpY24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IE51bWVyaWNOOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4NkMsXG4gIHR5cGU6ICdOVU1FUklDTicsXG4gIG5hbWU6ICdOdW1lcmljTicsXG5cbiAgZGVjbGFyYXRpb24oKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckRhdGEoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfSxcblxuICB2YWxpZGF0ZSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOdW1lcmljTjtcbm1vZHVsZS5leHBvcnRzID0gTnVtZXJpY047XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLE1BQU1BLFFBQWtCLEdBQUc7RUFDekJDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxVQUFVO0VBQ2hCQyxJQUFJLEVBQUUsVUFBVTtFQUVoQkMsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osTUFBTSxJQUFJQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDcEMsQ0FBQztFQUVEQyxnQkFBZ0JBLENBQUEsRUFBRztJQUNqQixNQUFNLElBQUlELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUNwQyxDQUFDO0VBRURFLHVCQUF1QkEsQ0FBQSxFQUFHO0lBQ3hCLE1BQU0sSUFBSUYsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0VBQ3BDLENBQUM7RUFFREcscUJBQXFCQSxDQUFBLEVBQUc7SUFDdEIsTUFBTSxJQUFJSCxLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDcEMsQ0FBQztFQUVESSxRQUFRQSxDQUFBLEVBQUc7SUFDVCxNQUFNLElBQUlKLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUNwQztBQUNGLENBQUM7QUFBQyxJQUFBSyxRQUFBLEdBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUVhWixRQUFRO0FBQ3ZCYSxNQUFNLENBQUNGLE9BQU8sR0FBR1gsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numericn.js","names":["NumericN","id","type","name","declaration","Error","generateTypeInfo","generateParameterLength","generateParameterData","validate","_default","exports","default","module"],"sources":["../../src/data-types/numericn.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst NumericN: DataType = {\n id: 0x6C,\n type: 'NUMERICN',\n name: 'NumericN',\n\n declaration() {\n throw new Error('not implemented');\n },\n\n generateTypeInfo() {\n throw new Error('not implemented');\n },\n\n generateParameterLength() {\n throw new Error('not implemented');\n },\n\n generateParameterData() {\n throw new Error('not implemented');\n },\n\n validate() {\n throw new Error('not implemented');\n }\n};\n\nexport default NumericN;\nmodule.exports = NumericN;\n"],"mappings":";;;;;;AAEA,MAAMA,QAAkB,GAAG;EACzBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE,UAAU;EAEhBC,WAAWA,CAAA,EAAG;IACZ,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDC,gBAAgBA,CAAA,EAAG;IACjB,MAAM,IAAID,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDE,uBAAuBA,CAAA,EAAG;IACxB,MAAM,IAAIF,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDG,qBAAqBA,CAAA,EAAG;IACtB,MAAM,IAAIH,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDI,QAAQA,CAAA,EAAG;IACT,MAAM,IAAIJ,KAAK,CAAC,iBAAiB,CAAC;EACpC;AACF,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaZ,QAAQ;AACvBa,MAAM,CAACF,OAAO,GAAGX,QAAQ","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { type DataType } from '../data-type';
2
+ declare const NVarChar: {
3
+ maximumLength: number;
4
+ } & DataType;
5
+ export default NVarChar;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ const MAX = (1 << 16) - 1;
8
+ const UNKNOWN_PLP_LEN = Buffer.from([0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]);
9
+ const PLP_TERMINATOR = Buffer.from([0x00, 0x00, 0x00, 0x00]);
10
+ const NULL_LENGTH = Buffer.from([0xFF, 0xFF]);
11
+ const MAX_NULL_LENGTH = Buffer.from([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]);
12
+ const NVarChar = {
13
+ id: 0xE7,
14
+ type: 'NVARCHAR',
15
+ name: 'NVarChar',
16
+ maximumLength: 4000,
17
+ declaration: function (parameter) {
18
+ const value = parameter.value; // Temporary solution. Remove 'any' later.
19
+
20
+ let length;
21
+ if (parameter.length) {
22
+ length = parameter.length;
23
+ } else if (value != null) {
24
+ length = value.toString().length || 1;
25
+ } else if (value === null && !parameter.output) {
26
+ length = 1;
27
+ } else {
28
+ length = this.maximumLength;
29
+ }
30
+ if (length <= this.maximumLength) {
31
+ return 'nvarchar(' + length + ')';
32
+ } else {
33
+ return 'nvarchar(max)';
34
+ }
35
+ },
36
+ resolveLength: function (parameter) {
37
+ const value = parameter.value; // Temporary solution. Remove 'any' later.
38
+ if (parameter.length != null) {
39
+ return parameter.length;
40
+ } else if (value != null) {
41
+ if (Buffer.isBuffer(value)) {
42
+ return value.length / 2 || 1;
43
+ } else {
44
+ return value.toString().length || 1;
45
+ }
46
+ } else {
47
+ return this.maximumLength;
48
+ }
49
+ },
50
+ generateTypeInfo(parameter) {
51
+ const buffer = Buffer.alloc(8);
52
+ buffer.writeUInt8(this.id, 0);
53
+ if (parameter.length <= this.maximumLength) {
54
+ buffer.writeUInt16LE(parameter.length * 2, 1);
55
+ } else {
56
+ buffer.writeUInt16LE(MAX, 1);
57
+ }
58
+ if (parameter.collation) {
59
+ parameter.collation.toBuffer().copy(buffer, 3, 0, 5);
60
+ }
61
+ return buffer;
62
+ },
63
+ generateParameterLength(parameter, options) {
64
+ if (parameter.value == null) {
65
+ if (parameter.length <= this.maximumLength) {
66
+ return NULL_LENGTH;
67
+ } else {
68
+ return MAX_NULL_LENGTH;
69
+ }
70
+ }
71
+ let value = parameter.value;
72
+ if (parameter.length <= this.maximumLength) {
73
+ let length;
74
+ if (value instanceof Buffer) {
75
+ length = value.length;
76
+ } else {
77
+ value = value.toString();
78
+ length = Buffer.byteLength(value, 'ucs2');
79
+ }
80
+ const buffer = Buffer.alloc(2);
81
+ buffer.writeUInt16LE(length, 0);
82
+ return buffer;
83
+ } else {
84
+ return UNKNOWN_PLP_LEN;
85
+ }
86
+ },
87
+ *generateParameterData(parameter, options) {
88
+ if (parameter.value == null) {
89
+ return;
90
+ }
91
+ let value = parameter.value;
92
+ if (parameter.length <= this.maximumLength) {
93
+ if (value instanceof Buffer) {
94
+ yield value;
95
+ } else {
96
+ value = value.toString();
97
+ yield Buffer.from(value, 'ucs2');
98
+ }
99
+ } else {
100
+ if (value instanceof Buffer) {
101
+ const length = value.length;
102
+ if (length > 0) {
103
+ const buffer = Buffer.alloc(4);
104
+ buffer.writeUInt32LE(length, 0);
105
+ yield buffer;
106
+ yield value;
107
+ }
108
+ } else {
109
+ value = value.toString();
110
+ const length = Buffer.byteLength(value, 'ucs2');
111
+ if (length > 0) {
112
+ const buffer = Buffer.alloc(4);
113
+ buffer.writeUInt32LE(length, 0);
114
+ yield buffer;
115
+ yield Buffer.from(value, 'ucs2');
116
+ }
117
+ }
118
+ yield PLP_TERMINATOR;
119
+ }
120
+ },
121
+ validate: function (value) {
122
+ if (value == null) {
123
+ return null;
124
+ }
125
+ if (typeof value !== 'string') {
126
+ throw new TypeError('Invalid string.');
127
+ }
128
+ return value;
129
+ }
130
+ };
131
+ var _default = exports.default = NVarChar;
132
+ module.exports = NVarChar;
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVgiLCJVTktOT1dOX1BMUF9MRU4iLCJCdWZmZXIiLCJmcm9tIiwiUExQX1RFUk1JTkFUT1IiLCJOVUxMX0xFTkdUSCIsIk1BWF9OVUxMX0xFTkdUSCIsIk5WYXJDaGFyIiwiaWQiLCJ0eXBlIiwibmFtZSIsIm1heGltdW1MZW5ndGgiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwidG9TdHJpbmciLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwiaXNCdWZmZXIiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsImNvbGxhdGlvbiIsInRvQnVmZmVyIiwiY29weSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImJ5dGVMZW5ndGgiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJ3cml0ZVVJbnQzMkxFIiwidmFsaWRhdGUiLCJUeXBlRXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvbnZhcmNoYXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IE1BWCA9ICgxIDw8IDE2KSAtIDE7XG5jb25zdCBVTktOT1dOX1BMUF9MRU4gPSBCdWZmZXIuZnJvbShbMHhmZSwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZl0pO1xuY29uc3QgUExQX1RFUk1JTkFUT1IgPSBCdWZmZXIuZnJvbShbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGXSk7XG5jb25zdCBNQVhfTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBOVmFyQ2hhcjogeyBtYXhpbXVtTGVuZ3RoOiBudW1iZXIgfSAmIERhdGFUeXBlID0ge1xuICBpZDogMHhFNyxcbiAgdHlwZTogJ05WQVJDSEFSJyxcbiAgbmFtZTogJ05WYXJDaGFyJyxcbiAgbWF4aW11bUxlbmd0aDogNDAwMCxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cblxuICAgIGxldCBsZW5ndGg7XG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGgpIHtcbiAgICAgIGxlbmd0aCA9IHBhcmFtZXRlci5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBsZW5ndGggPSB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwgJiYgIXBhcmFtZXRlci5vdXRwdXQpIHtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxlbmd0aCA9IHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgcmV0dXJuICdudmFyY2hhcignICsgbGVuZ3RoICsgJyknO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ252YXJjaGFyKG1heCknO1xuICAgIH1cbiAgfSxcblxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICh2YWx1ZS5sZW5ndGggLyAyKSB8fCAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIHx8IDE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQsIDApO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEgKiAyLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUoTUFYLCAxKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1ldGVyLmNvbGxhdGlvbikge1xuICAgICAgcGFyYW1ldGVyLmNvbGxhdGlvbi50b0J1ZmZlcigpLmNvcHkoYnVmZmVyLCAzLCAwLCA1KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gTUFYX05VTExfTEVOR1RIO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZTtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICBsZXQgbGVuZ3RoO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgbGVuZ3RoID0gQnVmZmVyLmJ5dGVMZW5ndGgodmFsdWUsICd1Y3MyJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygyKTtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKGxlbmd0aCwgMCk7XG4gICAgICByZXR1cm4gYnVmZmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gVU5LTk9XTl9QTFBfTEVOO1xuICAgIH1cbiAgfSxcblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWU7XG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgeWllbGQgdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIHlpZWxkIEJ1ZmZlci5mcm9tKHZhbHVlLCAndWNzMicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuXG4gICAgICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKGxlbmd0aCwgMCk7XG4gICAgICAgICAgeWllbGQgYnVmZmVyO1xuICAgICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlLCAndWNzMicpO1xuXG4gICAgICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKGxlbmd0aCwgMCk7XG4gICAgICAgICAgeWllbGQgYnVmZmVyO1xuICAgICAgICAgIHlpZWxkIEJ1ZmZlci5mcm9tKHZhbHVlLCAndWNzMicpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHlpZWxkIFBMUF9URVJNSU5BVE9SO1xuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBudWxsIHwgc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgc3RyaW5nLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgTlZhckNoYXI7XG5tb2R1bGUuZXhwb3J0cyA9IE5WYXJDaGFyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFD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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nvarchar.js","names":["MAX","UNKNOWN_PLP_LEN","Buffer","from","PLP_TERMINATOR","NULL_LENGTH","MAX_NULL_LENGTH","NVarChar","id","type","name","maximumLength","declaration","parameter","value","length","toString","output","resolveLength","isBuffer","generateTypeInfo","buffer","alloc","writeUInt8","writeUInt16LE","collation","toBuffer","copy","generateParameterLength","options","byteLength","generateParameterData","writeUInt32LE","validate","TypeError","_default","exports","default","module"],"sources":["../../src/data-types/nvarchar.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst MAX = (1 << 16) - 1;\nconst UNKNOWN_PLP_LEN = Buffer.from([0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]);\nconst PLP_TERMINATOR = Buffer.from([0x00, 0x00, 0x00, 0x00]);\n\nconst NULL_LENGTH = Buffer.from([0xFF, 0xFF]);\nconst MAX_NULL_LENGTH = Buffer.from([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]);\n\nconst NVarChar: { maximumLength: number } & DataType = {\n id: 0xE7,\n type: 'NVARCHAR',\n name: 'NVarChar',\n maximumLength: 4000,\n\n declaration: function(parameter) {\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n\n let length;\n if (parameter.length) {\n length = parameter.length;\n } else if (value != null) {\n length = value.toString().length || 1;\n } else if (value === null && !parameter.output) {\n length = 1;\n } else {\n length = this.maximumLength;\n }\n\n if (length <= this.maximumLength) {\n return 'nvarchar(' + length + ')';\n } else {\n return 'nvarchar(max)';\n }\n },\n\n resolveLength: function(parameter) {\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n if (parameter.length != null) {\n return parameter.length;\n } else if (value != null) {\n if (Buffer.isBuffer(value)) {\n return (value.length / 2) || 1;\n } else {\n return value.toString().length || 1;\n }\n } else {\n return this.maximumLength;\n }\n },\n\n generateTypeInfo(parameter) {\n const buffer = Buffer.alloc(8);\n buffer.writeUInt8(this.id, 0);\n\n if (parameter.length! <= this.maximumLength) {\n buffer.writeUInt16LE(parameter.length! * 2, 1);\n } else {\n buffer.writeUInt16LE(MAX, 1);\n }\n\n if (parameter.collation) {\n parameter.collation.toBuffer().copy(buffer, 3, 0, 5);\n }\n\n return buffer;\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n if (parameter.length! <= this.maximumLength) {\n return NULL_LENGTH;\n } else {\n return MAX_NULL_LENGTH;\n }\n }\n\n let value = parameter.value;\n if (parameter.length! <= this.maximumLength) {\n let length;\n if (value instanceof Buffer) {\n length = value.length;\n } else {\n value = value.toString();\n length = Buffer.byteLength(value, 'ucs2');\n }\n\n const buffer = Buffer.alloc(2);\n buffer.writeUInt16LE(length, 0);\n return buffer;\n } else {\n return UNKNOWN_PLP_LEN;\n }\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n let value = parameter.value;\n\n if (parameter.length! <= this.maximumLength) {\n if (value instanceof Buffer) {\n yield value;\n } else {\n value = value.toString();\n yield Buffer.from(value, 'ucs2');\n }\n } else {\n if (value instanceof Buffer) {\n const length = value.length;\n\n if (length > 0) {\n const buffer = Buffer.alloc(4);\n buffer.writeUInt32LE(length, 0);\n yield buffer;\n yield value;\n }\n } else {\n value = value.toString();\n const length = Buffer.byteLength(value, 'ucs2');\n\n if (length > 0) {\n const buffer = Buffer.alloc(4);\n buffer.writeUInt32LE(length, 0);\n yield buffer;\n yield Buffer.from(value, 'ucs2');\n }\n }\n\n yield PLP_TERMINATOR;\n }\n },\n\n validate: function(value): null | string {\n if (value == null) {\n return null;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError('Invalid string.');\n }\n\n return value;\n }\n};\n\nexport default NVarChar;\nmodule.exports = NVarChar;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { type DataType } from '../data-type';
2
+ declare const Real: DataType;
3
+ export default Real;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _floatn = _interopRequireDefault(require("./floatn"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const NULL_LENGTH = Buffer.from([0x00]);
10
+ const DATA_LENGTH = Buffer.from([0x04]);
11
+ const Real = {
12
+ id: 0x3B,
13
+ type: 'FLT4',
14
+ name: 'Real',
15
+ declaration: function () {
16
+ return 'real';
17
+ },
18
+ generateTypeInfo() {
19
+ return Buffer.from([_floatn.default.id, 0x04]);
20
+ },
21
+ generateParameterLength(parameter, options) {
22
+ if (parameter.value == null) {
23
+ return NULL_LENGTH;
24
+ }
25
+ return DATA_LENGTH;
26
+ },
27
+ *generateParameterData(parameter, options) {
28
+ if (parameter.value == null) {
29
+ return;
30
+ }
31
+ const buffer = Buffer.alloc(4);
32
+ buffer.writeFloatLE(parseFloat(parameter.value), 0);
33
+ yield buffer;
34
+ },
35
+ validate: function (value) {
36
+ if (value == null) {
37
+ return null;
38
+ }
39
+ value = parseFloat(value);
40
+ if (isNaN(value)) {
41
+ throw new TypeError('Invalid number.');
42
+ }
43
+ return value;
44
+ }
45
+ };
46
+ var _default = exports.default = Real;
47
+ module.exports = Real;
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZmxvYXRuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJEQVRBX0xFTkdUSCIsIlJlYWwiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJnZW5lcmF0ZVR5cGVJbmZvIiwiRmxvYXROIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJwYXJhbWV0ZXIiLCJvcHRpb25zIiwidmFsdWUiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlRmxvYXRMRSIsInBhcnNlRmxvYXQiLCJ2YWxpZGF0ZSIsImlzTmFOIiwiVHlwZUVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvcmVhbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcbmltcG9ydCBGbG9hdE4gZnJvbSAnLi9mbG9hdG4nO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5jb25zdCBEQVRBX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDA0XSk7XG5cbmNvbnN0IFJlYWw6IERhdGFUeXBlID0ge1xuICBpZDogMHgzQixcbiAgdHlwZTogJ0ZMVDQnLFxuICBuYW1lOiAnUmVhbCcsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAncmVhbCc7XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbygpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oW0Zsb2F0Ti5pZCwgMHgwNF0pO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgIH1cblxuICAgIHJldHVybiBEQVRBX0xFTkdUSDtcbiAgfSxcblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgYnVmZmVyLndyaXRlRmxvYXRMRShwYXJzZUZsb2F0KHBhcmFtZXRlci52YWx1ZSksIDApO1xuICAgIHlpZWxkIGJ1ZmZlcjtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBudWxsIHwgbnVtYmVyIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBudW1iZXIuJyk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgUmVhbDtcbm1vZHVsZS5leHBvcnRzID0gUmVhbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQThCLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTlCLE1BQU1HLFdBQVcsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QyxNQUFNQyxXQUFXLEdBQUdGLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdkMsTUFBTUUsSUFBYyxHQUFHO0VBQ3JCQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsTUFBTTtFQUNaQyxJQUFJLEVBQUUsTUFBTTtFQUVaQyxXQUFXLEVBQUUsU0FBQUEsQ0FBQSxFQUFXO0lBQ3RCLE9BQU8sTUFBTTtFQUNmLENBQUM7RUFFREMsZ0JBQWdCQSxDQUFBLEVBQUc7SUFDakIsT0FBT1IsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQ1EsZUFBTSxDQUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7RUFDdkMsQ0FBQztFQUVETSx1QkFBdUJBLENBQUNDLFNBQVMsRUFBRUMsT0FBTyxFQUFFO0lBQzFDLElBQUlELFNBQVMsQ0FBQ0UsS0FBSyxJQUFJLElBQUksRUFBRTtNQUMzQixPQUFPZCxXQUFXO0lBQ3BCO0lBRUEsT0FBT0csV0FBVztFQUNwQixDQUFDO0VBRUQsQ0FBRVkscUJBQXFCQSxDQUFDSCxTQUFTLEVBQUVDLE9BQU8sRUFBRTtJQUMxQyxJQUFJRCxTQUFTLENBQUNFLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDM0I7SUFDRjtJQUVBLE1BQU1FLE1BQU0sR0FBR2YsTUFBTSxDQUFDZ0IsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5QkQsTUFBTSxDQUFDRSxZQUFZLENBQUNDLFVBQVUsQ0FBQ1AsU0FBUyxDQUFDRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkQsTUFBTUUsTUFBTTtFQUNkLENBQUM7RUFFREksUUFBUSxFQUFFLFNBQUFBLENBQVNOLEtBQUssRUFBaUI7SUFDdkMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUNBQSxLQUFLLEdBQUdLLFVBQVUsQ0FBQ0wsS0FBSyxDQUFDO0lBQ3pCLElBQUlPLEtBQUssQ0FBQ1AsS0FBSyxDQUFDLEVBQUU7TUFDaEIsTUFBTSxJQUFJUSxTQUFTLENBQUMsaUJBQWlCLENBQUM7SUFDeEM7SUFDQSxPQUFPUixLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQVMsUUFBQSxHQUFBQyxPQUFBLENBQUF6QixPQUFBLEdBRWFLLElBQUk7QUFDbkJxQixNQUFNLENBQUNELE9BQU8sR0FBR3BCLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"real.js","names":["_floatn","_interopRequireDefault","require","e","__esModule","default","NULL_LENGTH","Buffer","from","DATA_LENGTH","Real","id","type","name","declaration","generateTypeInfo","FloatN","generateParameterLength","parameter","options","value","generateParameterData","buffer","alloc","writeFloatLE","parseFloat","validate","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/real.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport FloatN from './floatn';\n\nconst NULL_LENGTH = Buffer.from([0x00]);\nconst DATA_LENGTH = Buffer.from([0x04]);\n\nconst Real: DataType = {\n id: 0x3B,\n type: 'FLT4',\n name: 'Real',\n\n declaration: function() {\n return 'real';\n },\n\n generateTypeInfo() {\n return Buffer.from([FloatN.id, 0x04]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const buffer = Buffer.alloc(4);\n buffer.writeFloatLE(parseFloat(parameter.value), 0);\n yield buffer;\n },\n\n validate: function(value): null | number {\n if (value == null) {\n return null;\n }\n value = parseFloat(value);\n if (isNaN(value)) {\n throw new TypeError('Invalid number.');\n }\n return value;\n }\n};\n\nexport default Real;\nmodule.exports = Real;\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,MAAMC,WAAW,GAAGF,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvC,MAAME,IAAc,GAAG;EACrBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EAEZC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,MAAM;EACf,CAAC;EAEDC,gBAAgBA,CAAA,EAAG;IACjB,OAAOR,MAAM,CAACC,IAAI,CAAC,CAACQ,eAAM,CAACL,EAAE,EAAE,IAAI,CAAC,CAAC;EACvC,CAAC;EAEDM,uBAAuBA,CAACC,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOd,WAAW;IACpB;IAEA,OAAOG,WAAW;EACpB,CAAC;EAED,CAAEY,qBAAqBA,CAACH,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B;IACF;IAEA,MAAME,MAAM,GAAGf,MAAM,CAACgB,KAAK,CAAC,CAAC,CAAC;IAC9BD,MAAM,CAACE,YAAY,CAACC,UAAU,CAACP,SAAS,CAACE,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,MAAME,MAAM;EACd,CAAC;EAEDI,QAAQ,EAAE,SAAAA,CAASN,KAAK,EAAiB;IACvC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACAA,KAAK,GAAGK,UAAU,CAACL,KAAK,CAAC;IACzB,IAAIO,KAAK,CAACP,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIQ,SAAS,CAAC,iBAAiB,CAAC;IACxC;IACA,OAAOR,KAAK;EACd;AACF,CAAC;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAAzB,OAAA,GAEaK,IAAI;AACnBqB,MAAM,CAACD,OAAO,GAAGpB,IAAI","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { type DataType } from '../data-type';
2
+ declare const SmallDateTime: DataType;
3
+ export default SmallDateTime;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _datetimen = _interopRequireDefault(require("./datetimen"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const EPOCH_DATE = new Date(1900, 0, 1);
10
+ const UTC_EPOCH_DATE = new Date(Date.UTC(1900, 0, 1));
11
+ const DATA_LENGTH = Buffer.from([0x04]);
12
+ const NULL_LENGTH = Buffer.from([0x00]);
13
+ const SmallDateTime = {
14
+ id: 0x3A,
15
+ type: 'DATETIM4',
16
+ name: 'SmallDateTime',
17
+ declaration: function () {
18
+ return 'smalldatetime';
19
+ },
20
+ generateTypeInfo() {
21
+ return Buffer.from([_datetimen.default.id, 0x04]);
22
+ },
23
+ generateParameterLength(parameter, options) {
24
+ if (parameter.value == null) {
25
+ return NULL_LENGTH;
26
+ }
27
+ return DATA_LENGTH;
28
+ },
29
+ generateParameterData: function* (parameter, options) {
30
+ if (parameter.value == null) {
31
+ return;
32
+ }
33
+ const buffer = Buffer.alloc(4);
34
+ let days, dstDiff, minutes;
35
+ if (options.useUTC) {
36
+ days = Math.floor((parameter.value.getTime() - UTC_EPOCH_DATE.getTime()) / (1000 * 60 * 60 * 24));
37
+ minutes = parameter.value.getUTCHours() * 60 + parameter.value.getUTCMinutes();
38
+ } else {
39
+ dstDiff = -(parameter.value.getTimezoneOffset() - EPOCH_DATE.getTimezoneOffset()) * 60 * 1000;
40
+ days = Math.floor((parameter.value.getTime() - EPOCH_DATE.getTime() + dstDiff) / (1000 * 60 * 60 * 24));
41
+ minutes = parameter.value.getHours() * 60 + parameter.value.getMinutes();
42
+ }
43
+ buffer.writeUInt16LE(days, 0);
44
+ buffer.writeUInt16LE(minutes, 2);
45
+ yield buffer;
46
+ },
47
+ validate: function (value, collation, options) {
48
+ if (value == null) {
49
+ return null;
50
+ }
51
+ if (!(value instanceof Date)) {
52
+ value = new Date(Date.parse(value));
53
+ }
54
+ value = value;
55
+ let year, month, date;
56
+ if (options && options.useUTC) {
57
+ year = value.getUTCFullYear();
58
+ month = value.getUTCMonth();
59
+ date = value.getUTCDate();
60
+ } else {
61
+ year = value.getFullYear();
62
+ month = value.getMonth();
63
+ date = value.getDate();
64
+ }
65
+ if (year < 1900 || year > 2079) {
66
+ throw new TypeError('Out of range.');
67
+ }
68
+ if (year === 2079) {
69
+ // Month is 0-indexed, i.e. Jan = 0, Dec = 11
70
+ // See: https://learn.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql?view=sql-server-ver16
71
+ if (month > 5 || month === 5 && date > 6) {
72
+ throw new TypeError('Out of range.');
73
+ }
74
+ }
75
+ if (isNaN(value)) {
76
+ throw new TypeError('Invalid date.');
77
+ }
78
+ return value;
79
+ }
80
+ };
81
+ var _default = exports.default = SmallDateTime;
82
+ module.exports = SmallDateTime;
83
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJFUE9DSF9EQVRFIiwiRGF0ZSIsIlVUQ19FUE9DSF9EQVRFIiwiVVRDIiwiREFUQV9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiTlVMTF9MRU5HVEgiLCJTbWFsbERhdGVUaW1lIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwiZ2VuZXJhdGVUeXBlSW5mbyIsIkRhdGVUaW1lTiIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwicGFyYW1ldGVyIiwib3B0aW9ucyIsInZhbHVlIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwiYnVmZmVyIiwiYWxsb2MiLCJkYXlzIiwiZHN0RGlmZiIsIm1pbnV0ZXMiLCJ1c2VVVEMiLCJNYXRoIiwiZmxvb3IiLCJnZXRUaW1lIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENNaW51dGVzIiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJ3cml0ZVVJbnQxNkxFIiwidmFsaWRhdGUiLCJjb2xsYXRpb24iLCJwYXJzZSIsInllYXIiLCJtb250aCIsImRhdGUiLCJnZXRVVENGdWxsWWVhciIsImdldFVUQ01vbnRoIiwiZ2V0VVRDRGF0ZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiVHlwZUVycm9yIiwiaXNOYU4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9zbWFsbGRhdGV0aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IERhdGVUaW1lTiBmcm9tICcuL2RhdGV0aW1lbic7XG5cbmNvbnN0IEVQT0NIX0RBVEUgPSBuZXcgRGF0ZSgxOTAwLCAwLCAxKTtcbmNvbnN0IFVUQ19FUE9DSF9EQVRFID0gbmV3IERhdGUoRGF0ZS5VVEMoMTkwMCwgMCwgMSkpO1xuXG5jb25zdCBEQVRBX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDA0XSk7XG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5cbmNvbnN0IFNtYWxsRGF0ZVRpbWU6IERhdGFUeXBlID0ge1xuICBpZDogMHgzQSxcbiAgdHlwZTogJ0RBVEVUSU00JyxcbiAgbmFtZTogJ1NtYWxsRGF0ZVRpbWUnLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gJ3NtYWxsZGF0ZXRpbWUnO1xuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8oKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFtEYXRlVGltZU4uaWQsIDB4MDRdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICByZXR1cm4gREFUQV9MRU5HVEg7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhOiBmdW5jdGlvbioocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuXG4gICAgbGV0IGRheXM6IG51bWJlciwgZHN0RGlmZjogbnVtYmVyLCBtaW51dGVzOiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigocGFyYW1ldGVyLnZhbHVlLmdldFRpbWUoKSAtIFVUQ19FUE9DSF9EQVRFLmdldFRpbWUoKSkgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuICAgICAgbWludXRlcyA9IChwYXJhbWV0ZXIudmFsdWUuZ2V0VVRDSG91cnMoKSAqIDYwKSArIHBhcmFtZXRlci52YWx1ZS5nZXRVVENNaW51dGVzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRzdERpZmYgPSAtKHBhcmFtZXRlci52YWx1ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gRVBPQ0hfREFURS5nZXRUaW1lem9uZU9mZnNldCgpKSAqIDYwICogMTAwMDtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKChwYXJhbWV0ZXIudmFsdWUuZ2V0VGltZSgpIC0gRVBPQ0hfREFURS5nZXRUaW1lKCkgKyBkc3REaWZmKSAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG4gICAgICBtaW51dGVzID0gKHBhcmFtZXRlci52YWx1ZS5nZXRIb3VycygpICogNjApICsgcGFyYW1ldGVyLnZhbHVlLmdldE1pbnV0ZXMoKTtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50MTZMRShkYXlzLCAwKTtcbiAgICBidWZmZXIud3JpdGVVSW50MTZMRShtaW51dGVzLCAyKTtcblxuICAgIHlpZWxkIGJ1ZmZlcjtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBEYXRlIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSBhcyBEYXRlO1xuXG4gICAgbGV0IHllYXIsIG1vbnRoLCBkYXRlO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICAgIG1vbnRoID0gdmFsdWUuZ2V0VVRDTW9udGgoKTtcbiAgICAgIGRhdGUgPSB2YWx1ZS5nZXRVVENEYXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgbW9udGggPSB2YWx1ZS5nZXRNb250aCgpO1xuICAgICAgZGF0ZSA9IHZhbHVlLmdldERhdGUoKTtcbiAgICB9XG5cbiAgICBpZiAoeWVhciA8IDE5MDAgfHwgeWVhciA+IDIwNzkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoeWVhciA9PT0gMjA3OSkge1xuICAgICAgLy8gTW9udGggaXMgMC1pbmRleGVkLCBpLmUuIEphbiA9IDAsIERlYyA9IDExXG4gICAgICAvLyBTZWU6IGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9zcWwvdC1zcWwvZGF0YS10eXBlcy9zbWFsbGRhdGV0aW1lLXRyYW5zYWN0LXNxbD92aWV3PXNxbC1zZXJ2ZXItdmVyMTZcbiAgICAgIGlmIChtb250aCA+IDUgfHwgKG1vbnRoID09PSA1ICYmIGRhdGUgPiA2KSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPdXQgb2YgcmFuZ2UuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBkYXRlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgU21hbGxEYXRlVGltZTtcbm1vZHVsZS5leHBvcnRzID0gU21hbGxEYXRlVGltZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQW9DLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXBDLE1BQU1HLFVBQVUsR0FBRyxJQUFJQyxJQUFJLENBQUMs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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smalldatetime.js","names":["_datetimen","_interopRequireDefault","require","e","__esModule","default","EPOCH_DATE","Date","UTC_EPOCH_DATE","UTC","DATA_LENGTH","Buffer","from","NULL_LENGTH","SmallDateTime","id","type","name","declaration","generateTypeInfo","DateTimeN","generateParameterLength","parameter","options","value","generateParameterData","buffer","alloc","days","dstDiff","minutes","useUTC","Math","floor","getTime","getUTCHours","getUTCMinutes","getTimezoneOffset","getHours","getMinutes","writeUInt16LE","validate","collation","parse","year","month","date","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","TypeError","isNaN","_default","exports","module"],"sources":["../../src/data-types/smalldatetime.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport DateTimeN from './datetimen';\n\nconst EPOCH_DATE = new Date(1900, 0, 1);\nconst UTC_EPOCH_DATE = new Date(Date.UTC(1900, 0, 1));\n\nconst DATA_LENGTH = Buffer.from([0x04]);\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst SmallDateTime: DataType = {\n id: 0x3A,\n type: 'DATETIM4',\n name: 'SmallDateTime',\n\n declaration: function() {\n return 'smalldatetime';\n },\n\n generateTypeInfo() {\n return Buffer.from([DateTimeN.id, 0x04]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n generateParameterData: function*(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const buffer = Buffer.alloc(4);\n\n let days: number, dstDiff: number, minutes: number;\n if (options.useUTC) {\n days = Math.floor((parameter.value.getTime() - UTC_EPOCH_DATE.getTime()) / (1000 * 60 * 60 * 24));\n minutes = (parameter.value.getUTCHours() * 60) + parameter.value.getUTCMinutes();\n } else {\n dstDiff = -(parameter.value.getTimezoneOffset() - EPOCH_DATE.getTimezoneOffset()) * 60 * 1000;\n days = Math.floor((parameter.value.getTime() - EPOCH_DATE.getTime() + dstDiff) / (1000 * 60 * 60 * 24));\n minutes = (parameter.value.getHours() * 60) + parameter.value.getMinutes();\n }\n\n buffer.writeUInt16LE(days, 0);\n buffer.writeUInt16LE(minutes, 2);\n\n yield buffer;\n },\n\n validate: function(value, collation, options): null | Date {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n let year, month, date;\n if (options && options.useUTC) {\n year = value.getUTCFullYear();\n month = value.getUTCMonth();\n date = value.getUTCDate();\n } else {\n year = value.getFullYear();\n month = value.getMonth();\n date = value.getDate();\n }\n\n if (year < 1900 || year > 2079) {\n throw new TypeError('Out of range.');\n }\n\n if (year === 2079) {\n // Month is 0-indexed, i.e. Jan = 0, Dec = 11\n // See: https://learn.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql?view=sql-server-ver16\n if (month > 5 || (month === 5 && date > 6)) {\n throw new TypeError('Out of range.');\n }\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default SmallDateTime;\nmodule.exports = SmallDateTime;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { type DataType } from '../data-type';
2
+ declare const SmallInt: DataType;
3
+ export default SmallInt;