af-db-ts 2.0.19 → 2.0.73

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 (307) hide show
  1. package/dist/cjs/__tests__/db/ms/@gen-types/test-table_schema.js +3 -0
  2. package/dist/cjs/__tests__/db/ms/@gen-types/test-table_schema.js.map +1 -0
  3. package/dist/cjs/__tests__/db/ms/ddl/column-schema-for-test-table-schema-ms.json +216 -0
  4. package/dist/cjs/__tests__/db/ms/ms-get-sql.spec.js +190 -0
  5. package/dist/cjs/__tests__/db/ms/ms-get-sql.spec.js.map +1 -0
  6. package/dist/cjs/__tests__/db/ms/ms-prepare-sql-value.spec.js +584 -0
  7. package/dist/cjs/__tests__/db/ms/ms-prepare-sql-value.spec.js.map +1 -0
  8. package/dist/cjs/__tests__/db/ms/ms-table-schema.spec.js +107 -0
  9. package/dist/cjs/__tests__/db/ms/ms-table-schema.spec.js.map +1 -0
  10. package/dist/cjs/__tests__/db/pg/@gen-types/test-hard_case.js +3 -0
  11. package/dist/cjs/__tests__/db/pg/@gen-types/test-hard_case.js.map +1 -0
  12. package/dist/cjs/__tests__/db/pg/@gen-types/test-only_one_serial.js +3 -0
  13. package/dist/cjs/__tests__/db/pg/@gen-types/test-only_one_serial.js.map +1 -0
  14. package/dist/cjs/__tests__/db/pg/@gen-types/test-only_one_uniq.js +3 -0
  15. package/dist/cjs/__tests__/db/pg/@gen-types/test-only_one_uniq.js.map +1 -0
  16. package/dist/cjs/__tests__/db/pg/@gen-types/test-serial_and_uniq.js +3 -0
  17. package/dist/cjs/__tests__/db/pg/@gen-types/test-serial_and_uniq.js.map +1 -0
  18. package/dist/cjs/__tests__/db/pg/@gen-types/test-table_schema.js +3 -0
  19. package/dist/cjs/__tests__/db/pg/@gen-types/test-table_schema.js.map +1 -0
  20. package/dist/cjs/__tests__/db/pg/ddl/column-schema-for-test-table-schema-pg.json +170 -0
  21. package/dist/cjs/__tests__/db/pg/gen-table-interfaces-4-test-pg.js +36 -0
  22. package/dist/cjs/__tests__/db/pg/gen-table-interfaces-4-test-pg.js.map +1 -0
  23. package/dist/cjs/__tests__/db/pg/pg-get-sql.spec.js +261 -0
  24. package/dist/cjs/__tests__/db/pg/pg-get-sql.spec.js.map +1 -0
  25. package/dist/cjs/__tests__/db/pg/pg-insert.spec.js +294 -0
  26. package/dist/cjs/__tests__/db/pg/pg-insert.spec.js.map +1 -0
  27. package/dist/cjs/__tests__/db/pg/pg-prepare-sql-value.spec.js +575 -0
  28. package/dist/cjs/__tests__/db/pg/pg-prepare-sql-value.spec.js.map +1 -0
  29. package/dist/cjs/__tests__/db/pg/pg-table-schema.spec.js +117 -0
  30. package/dist/cjs/__tests__/db/pg/pg-table-schema.spec.js.map +1 -0
  31. package/dist/cjs/src/@types/i-data-types-ms.js +3 -0
  32. package/dist/cjs/src/@types/i-data-types-ms.js.map +1 -0
  33. package/dist/cjs/src/@types/i-data-types-pg.js +7 -0
  34. package/dist/cjs/src/@types/i-data-types-pg.js.map +1 -0
  35. package/dist/cjs/src/@types/i-pg.js +0 -21
  36. package/dist/cjs/src/@types/i-pg.js.map +1 -1
  37. package/dist/cjs/src/common.js +6 -5
  38. package/dist/cjs/src/common.js.map +1 -1
  39. package/dist/cjs/src/index.js +75 -54
  40. package/dist/cjs/src/index.js.map +1 -1
  41. package/dist/cjs/src/ms/gen-table-interfaces-ms.js +64 -0
  42. package/dist/cjs/src/ms/gen-table-interfaces-ms.js.map +1 -0
  43. package/dist/cjs/src/ms/get-sql/insert.js +37 -0
  44. package/dist/cjs/src/ms/get-sql/insert.js.map +1 -0
  45. package/dist/cjs/src/ms/get-sql/merge.js +93 -0
  46. package/dist/cjs/src/ms/get-sql/merge.js.map +1 -0
  47. package/dist/cjs/src/ms/get-sql/update.js +32 -0
  48. package/dist/cjs/src/ms/get-sql/update.js.map +1 -0
  49. package/dist/cjs/src/{mssql → ms}/pool-ms.js +6 -23
  50. package/dist/cjs/src/ms/pool-ms.js.map +1 -0
  51. package/dist/cjs/src/ms/prepare-value.js +178 -0
  52. package/dist/cjs/src/ms/prepare-value.js.map +1 -0
  53. package/dist/cjs/src/{mssql → ms}/query-ms.js +1 -1
  54. package/dist/cjs/src/ms/query-ms.js.map +1 -0
  55. package/dist/cjs/src/ms/table-schema-ms.js +241 -0
  56. package/dist/cjs/src/ms/table-schema-ms.js.map +1 -0
  57. package/dist/cjs/src/ms/utils-ms.js +92 -0
  58. package/dist/cjs/src/ms/utils-ms.js.map +1 -0
  59. package/dist/cjs/src/ms/wrap-transaction-ms.js +32 -0
  60. package/dist/cjs/src/ms/wrap-transaction-ms.js.map +1 -0
  61. package/dist/cjs/src/pg/gen-table-interfaces-pg.js +83 -0
  62. package/dist/cjs/src/pg/gen-table-interfaces-pg.js.map +1 -0
  63. package/dist/cjs/src/pg/get-sql/insert.js +38 -0
  64. package/dist/cjs/src/pg/get-sql/insert.js.map +1 -0
  65. package/dist/cjs/src/pg/get-sql/merge.js +60 -0
  66. package/dist/cjs/src/pg/get-sql/merge.js.map +1 -0
  67. package/dist/cjs/src/pg/get-sql/update.js +32 -0
  68. package/dist/cjs/src/pg/get-sql/update.js.map +1 -0
  69. package/dist/cjs/src/pg/{insert.js → insert-pg.js} +10 -10
  70. package/dist/cjs/src/pg/insert-pg.js.map +1 -0
  71. package/dist/cjs/src/pg/is-table-or-view-exists.js +1 -2
  72. package/dist/cjs/src/pg/is-table-or-view-exists.js.map +1 -1
  73. package/dist/cjs/src/pg/{pg-pool.js → pool-pg.js} +6 -7
  74. package/dist/cjs/src/pg/pool-pg.js.map +1 -0
  75. package/dist/cjs/src/pg/prepare-value.js +116 -69
  76. package/dist/cjs/src/pg/prepare-value.js.map +1 -1
  77. package/dist/cjs/src/pg/query-pg.js +2 -2
  78. package/dist/cjs/src/pg/query-pg.js.map +1 -1
  79. package/dist/cjs/src/pg/table-schema-pg.js +183 -0
  80. package/dist/cjs/src/pg/table-schema-pg.js.map +1 -0
  81. package/dist/cjs/src/pg/utils-pg.js +99 -0
  82. package/dist/cjs/src/pg/utils-pg.js.map +1 -0
  83. package/dist/cjs/src/utils/utils-array.js +152 -0
  84. package/dist/cjs/src/utils/utils-array.js.map +1 -0
  85. package/dist/cjs/src/utils/utils-dt.js +121 -0
  86. package/dist/cjs/src/utils/utils-dt.js.map +1 -0
  87. package/dist/cjs/src/utils/utils-num.js +127 -0
  88. package/dist/cjs/src/utils/utils-num.js.map +1 -0
  89. package/dist/cjs/src/utils/utils.js +66 -0
  90. package/dist/cjs/src/utils/utils.js.map +1 -0
  91. package/dist/esm/src/@types/i-data-types-ms.js +2 -0
  92. package/dist/esm/src/@types/i-data-types-ms.js.map +1 -0
  93. package/dist/esm/src/@types/i-data-types-pg.js +6 -0
  94. package/dist/esm/src/@types/i-data-types-pg.js.map +1 -0
  95. package/dist/esm/src/@types/i-pg.js +1 -20
  96. package/dist/esm/src/@types/i-pg.js.map +1 -1
  97. package/dist/esm/src/common.js +3 -2
  98. package/dist/esm/src/common.js.map +1 -1
  99. package/dist/esm/src/index.js +24 -15
  100. package/dist/esm/src/index.js.map +1 -1
  101. package/dist/esm/src/ms/gen-table-interfaces-ms.js +36 -0
  102. package/dist/esm/src/ms/gen-table-interfaces-ms.js.map +1 -0
  103. package/dist/esm/src/ms/get-sql/insert.js +33 -0
  104. package/dist/esm/src/ms/get-sql/insert.js.map +1 -0
  105. package/dist/esm/src/ms/get-sql/merge.js +89 -0
  106. package/dist/esm/src/ms/get-sql/merge.js.map +1 -0
  107. package/dist/esm/src/ms/get-sql/update.js +28 -0
  108. package/dist/esm/src/ms/get-sql/update.js.map +1 -0
  109. package/dist/esm/src/{mssql → ms}/pool-ms.js +5 -20
  110. package/dist/esm/src/ms/pool-ms.js.map +1 -0
  111. package/dist/esm/src/ms/prepare-value.js +149 -0
  112. package/dist/esm/src/ms/prepare-value.js.map +1 -0
  113. package/dist/esm/src/{mssql → ms}/query-ms.js +1 -1
  114. package/dist/esm/src/ms/query-ms.js.map +1 -0
  115. package/dist/esm/src/ms/table-schema-ms.js +213 -0
  116. package/dist/esm/src/ms/table-schema-ms.js.map +1 -0
  117. package/dist/esm/src/ms/utils-ms.js +65 -0
  118. package/dist/esm/src/ms/utils-ms.js.map +1 -0
  119. package/dist/esm/src/ms/wrap-transaction-ms.js +28 -0
  120. package/dist/esm/src/ms/wrap-transaction-ms.js.map +1 -0
  121. package/dist/esm/src/pg/gen-table-interfaces-pg.js +55 -0
  122. package/dist/esm/src/pg/gen-table-interfaces-pg.js.map +1 -0
  123. package/dist/esm/src/pg/get-sql/insert.js +34 -0
  124. package/dist/esm/src/pg/get-sql/insert.js.map +1 -0
  125. package/dist/esm/src/pg/get-sql/merge.js +56 -0
  126. package/dist/esm/src/pg/get-sql/merge.js.map +1 -0
  127. package/dist/esm/src/pg/get-sql/update.js +28 -0
  128. package/dist/esm/src/pg/get-sql/update.js.map +1 -0
  129. package/dist/esm/src/pg/{insert.js → insert-pg.js} +10 -10
  130. package/dist/esm/src/pg/insert-pg.js.map +1 -0
  131. package/dist/esm/src/pg/is-table-or-view-exists.js +1 -2
  132. package/dist/esm/src/pg/is-table-or-view-exists.js.map +1 -1
  133. package/dist/esm/src/pg/{pg-pool.js → pool-pg.js} +6 -7
  134. package/dist/esm/src/pg/pool-pg.js.map +1 -0
  135. package/dist/esm/src/pg/prepare-value.js +113 -67
  136. package/dist/esm/src/pg/prepare-value.js.map +1 -1
  137. package/dist/esm/src/pg/query-pg.js +1 -1
  138. package/dist/esm/src/pg/query-pg.js.map +1 -1
  139. package/dist/esm/src/pg/table-schema-pg.js +178 -0
  140. package/dist/esm/src/pg/table-schema-pg.js.map +1 -0
  141. package/dist/esm/src/pg/utils-pg.js +93 -0
  142. package/dist/esm/src/pg/utils-pg.js.map +1 -0
  143. package/dist/esm/src/utils/utils-array.js +125 -0
  144. package/dist/esm/src/utils/utils-array.js.map +1 -0
  145. package/dist/esm/src/utils/utils-dt.js +114 -0
  146. package/dist/esm/src/utils/utils-dt.js.map +1 -0
  147. package/dist/esm/src/utils/utils-num.js +117 -0
  148. package/dist/esm/src/utils/utils-num.js.map +1 -0
  149. package/dist/esm/src/utils/utils.js +58 -0
  150. package/dist/esm/src/utils/utils.js.map +1 -0
  151. package/dist/types/src/@types/i-common.d.ts +35 -3
  152. package/dist/types/src/@types/i-common.d.ts.map +1 -1
  153. package/dist/types/src/@types/i-data-types-ms.d.ts +3 -0
  154. package/dist/types/src/@types/i-data-types-ms.d.ts.map +1 -0
  155. package/dist/types/src/@types/i-data-types-pg.d.ts +35 -0
  156. package/dist/types/src/@types/i-data-types-pg.d.ts.map +1 -0
  157. package/dist/types/src/@types/i-ms.d.ts +26 -126
  158. package/dist/types/src/@types/i-ms.d.ts.map +1 -1
  159. package/dist/types/src/@types/i-pg.d.ts +11 -35
  160. package/dist/types/src/@types/i-pg.d.ts.map +1 -1
  161. package/dist/types/src/common.d.ts +1 -0
  162. package/dist/types/src/common.d.ts.map +1 -1
  163. package/dist/types/src/index.d.ts +28 -16
  164. package/dist/types/src/index.d.ts.map +1 -1
  165. package/dist/types/src/ms/gen-table-interfaces-ms.d.ts +3 -0
  166. package/dist/types/src/ms/gen-table-interfaces-ms.d.ts.map +1 -0
  167. package/dist/types/src/ms/get-sql/insert.d.ts +9 -0
  168. package/dist/types/src/ms/get-sql/insert.d.ts.map +1 -0
  169. package/dist/types/src/ms/get-sql/merge.d.ts +14 -0
  170. package/dist/types/src/ms/get-sql/merge.d.ts.map +1 -0
  171. package/dist/types/src/ms/get-sql/update.d.ts +9 -0
  172. package/dist/types/src/ms/get-sql/update.d.ts.map +1 -0
  173. package/dist/types/src/{mssql → ms}/pool-ms.d.ts +0 -8
  174. package/dist/types/src/ms/pool-ms.d.ts.map +1 -0
  175. package/dist/types/src/ms/prepare-value.d.ts +12 -0
  176. package/dist/types/src/ms/prepare-value.d.ts.map +1 -0
  177. package/dist/types/src/ms/query-ms.d.ts +3 -0
  178. package/dist/types/src/ms/query-ms.d.ts.map +1 -0
  179. package/dist/types/src/ms/table-schema-ms.d.ts +9 -0
  180. package/dist/types/src/ms/table-schema-ms.d.ts.map +1 -0
  181. package/dist/types/src/ms/utils-ms.d.ts +3 -0
  182. package/dist/types/src/ms/utils-ms.d.ts.map +1 -0
  183. package/dist/types/src/ms/wrap-transaction-ms.d.ts +5 -0
  184. package/dist/types/src/ms/wrap-transaction-ms.d.ts.map +1 -0
  185. package/dist/types/src/pg/gen-table-interfaces-pg.d.ts +3 -0
  186. package/dist/types/src/pg/gen-table-interfaces-pg.d.ts.map +1 -0
  187. package/dist/types/src/pg/get-sql/insert.d.ts +9 -0
  188. package/dist/types/src/pg/get-sql/insert.d.ts.map +1 -0
  189. package/dist/types/src/pg/get-sql/merge.d.ts +10 -0
  190. package/dist/types/src/pg/get-sql/merge.d.ts.map +1 -0
  191. package/dist/types/src/pg/get-sql/update.d.ts +9 -0
  192. package/dist/types/src/pg/get-sql/update.d.ts.map +1 -0
  193. package/dist/types/src/pg/{insert.d.ts → insert-pg.d.ts} +3 -3
  194. package/dist/types/src/pg/insert-pg.d.ts.map +1 -0
  195. package/dist/types/src/pg/{pg-pool.d.ts → pool-pg.d.ts} +1 -1
  196. package/dist/types/src/pg/{pg-pool.d.ts.map → pool-pg.d.ts.map} +1 -1
  197. package/dist/types/src/pg/prepare-value.d.ts +3 -1
  198. package/dist/types/src/pg/prepare-value.d.ts.map +1 -1
  199. package/dist/types/src/pg/query-pg.d.ts +3 -2
  200. package/dist/types/src/pg/query-pg.d.ts.map +1 -1
  201. package/dist/types/src/pg/table-schema-pg.d.ts +12 -0
  202. package/dist/types/src/pg/table-schema-pg.d.ts.map +1 -0
  203. package/dist/types/src/pg/utils-pg.d.ts +5 -0
  204. package/dist/types/src/pg/utils-pg.d.ts.map +1 -0
  205. package/dist/types/src/utils/utils-array.d.ts +5 -0
  206. package/dist/types/src/utils/utils-array.d.ts.map +1 -0
  207. package/dist/types/src/utils/utils-dt.d.ts +15 -0
  208. package/dist/types/src/utils/utils-dt.d.ts.map +1 -0
  209. package/dist/types/src/utils/utils-num.d.ts +9 -0
  210. package/dist/types/src/utils/utils-num.d.ts.map +1 -0
  211. package/dist/types/src/utils/utils.d.ts +18 -0
  212. package/dist/types/src/utils/utils.d.ts.map +1 -0
  213. package/package.json +13 -13
  214. package/src/@types/i-common.ts +42 -4
  215. package/src/@types/i-data-types-ms.ts +81 -0
  216. package/src/@types/i-data-types-pg.ts +120 -0
  217. package/src/@types/i-ms.ts +29 -153
  218. package/src/@types/i-pg.ts +11 -36
  219. package/src/common.ts +4 -2
  220. package/src/index.ts +101 -59
  221. package/src/ms/gen-table-interfaces-ms.ts +52 -0
  222. package/src/ms/get-sql/insert.ts +45 -0
  223. package/src/ms/get-sql/merge.ts +118 -0
  224. package/src/ms/get-sql/update.ts +46 -0
  225. package/src/{mssql → ms}/pool-ms.ts +0 -16
  226. package/src/ms/prepare-value.ts +175 -0
  227. package/src/{mssql → ms}/query-ms.ts +2 -2
  228. package/src/ms/table-schema-ms.ts +231 -0
  229. package/src/ms/utils-ms.ts +72 -0
  230. package/src/ms/wrap-transaction-ms.ts +27 -0
  231. package/src/pg/gen-table-interfaces-pg.ts +74 -0
  232. package/src/pg/get-sql/insert.ts +46 -0
  233. package/src/pg/get-sql/merge.ts +70 -0
  234. package/src/pg/get-sql/update.ts +46 -0
  235. package/src/pg/{insert.ts → insert-pg.ts} +9 -9
  236. package/src/pg/prepare-value.ts +129 -67
  237. package/src/pg/query-pg.ts +4 -3
  238. package/src/pg/table-schema-pg.ts +196 -0
  239. package/src/pg/utils-pg.ts +97 -0
  240. package/src/utils/utils-array.ts +133 -0
  241. package/src/utils/utils-dt.ts +123 -0
  242. package/src/utils/utils-num.ts +131 -0
  243. package/src/utils/utils.ts +64 -0
  244. package/dist/cjs/__tests__/02_getValueForSqlMs.spec.js +0 -50
  245. package/dist/cjs/__tests__/02_getValueForSqlMs.spec.js.map +0 -1
  246. package/dist/cjs/src/mssql/get-value-for-sql.js +0 -277
  247. package/dist/cjs/src/mssql/get-value-for-sql.js.map +0 -1
  248. package/dist/cjs/src/mssql/pool-ms.js.map +0 -1
  249. package/dist/cjs/src/mssql/query-ms.js.map +0 -1
  250. package/dist/cjs/src/mssql/sql.js +0 -427
  251. package/dist/cjs/src/mssql/sql.js.map +0 -1
  252. package/dist/cjs/src/mssql/utils.js +0 -36
  253. package/dist/cjs/src/mssql/utils.js.map +0 -1
  254. package/dist/cjs/src/pg/get-merge-sql.js +0 -52
  255. package/dist/cjs/src/pg/get-merge-sql.js.map +0 -1
  256. package/dist/cjs/src/pg/get-update-sql.js +0 -30
  257. package/dist/cjs/src/pg/get-update-sql.js.map +0 -1
  258. package/dist/cjs/src/pg/insert.js.map +0 -1
  259. package/dist/cjs/src/pg/pg-pool.js.map +0 -1
  260. package/dist/cjs/src/pg/table-schema.js +0 -179
  261. package/dist/cjs/src/pg/table-schema.js.map +0 -1
  262. package/dist/cjs/src/utils.js +0 -17
  263. package/dist/cjs/src/utils.js.map +0 -1
  264. package/dist/esm/src/mssql/get-value-for-sql.js +0 -272
  265. package/dist/esm/src/mssql/get-value-for-sql.js.map +0 -1
  266. package/dist/esm/src/mssql/pool-ms.js.map +0 -1
  267. package/dist/esm/src/mssql/query-ms.js.map +0 -1
  268. package/dist/esm/src/mssql/sql.js +0 -390
  269. package/dist/esm/src/mssql/sql.js.map +0 -1
  270. package/dist/esm/src/mssql/utils.js +0 -31
  271. package/dist/esm/src/mssql/utils.js.map +0 -1
  272. package/dist/esm/src/pg/get-merge-sql.js +0 -48
  273. package/dist/esm/src/pg/get-merge-sql.js.map +0 -1
  274. package/dist/esm/src/pg/get-update-sql.js +0 -26
  275. package/dist/esm/src/pg/get-update-sql.js.map +0 -1
  276. package/dist/esm/src/pg/insert.js.map +0 -1
  277. package/dist/esm/src/pg/pg-pool.js.map +0 -1
  278. package/dist/esm/src/pg/table-schema.js +0 -174
  279. package/dist/esm/src/pg/table-schema.js.map +0 -1
  280. package/dist/esm/src/utils.js +0 -14
  281. package/dist/esm/src/utils.js.map +0 -1
  282. package/dist/types/src/mssql/get-value-for-sql.d.ts +0 -11
  283. package/dist/types/src/mssql/get-value-for-sql.d.ts.map +0 -1
  284. package/dist/types/src/mssql/pool-ms.d.ts.map +0 -1
  285. package/dist/types/src/mssql/query-ms.d.ts +0 -3
  286. package/dist/types/src/mssql/query-ms.d.ts.map +0 -1
  287. package/dist/types/src/mssql/sql.d.ts +0 -57
  288. package/dist/types/src/mssql/sql.d.ts.map +0 -1
  289. package/dist/types/src/mssql/utils.d.ts +0 -10
  290. package/dist/types/src/mssql/utils.d.ts.map +0 -1
  291. package/dist/types/src/pg/get-merge-sql.d.ts +0 -9
  292. package/dist/types/src/pg/get-merge-sql.d.ts.map +0 -1
  293. package/dist/types/src/pg/get-update-sql.d.ts +0 -3
  294. package/dist/types/src/pg/get-update-sql.d.ts.map +0 -1
  295. package/dist/types/src/pg/insert.d.ts.map +0 -1
  296. package/dist/types/src/pg/table-schema.d.ts +0 -12
  297. package/dist/types/src/pg/table-schema.d.ts.map +0 -1
  298. package/dist/types/src/utils.d.ts +0 -9
  299. package/dist/types/src/utils.d.ts.map +0 -1
  300. package/src/mssql/get-value-for-sql.ts +0 -325
  301. package/src/mssql/sql.ts +0 -430
  302. package/src/mssql/utils.ts +0 -31
  303. package/src/pg/get-merge-sql.ts +0 -62
  304. package/src/pg/get-update-sql.ts +0 -32
  305. package/src/pg/table-schema.ts +0 -189
  306. package/src/utils.ts +0 -14
  307. /package/src/pg/{pg-pool.ts → pool-pg.ts} +0 -0
@@ -0,0 +1,584 @@
1
+ "use strict";
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable no-console */
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ // "America/Toronto" -05:00
29
+ // "Europe/Berlin" +01:00
30
+ // "Europe/Moscow" +03:00
31
+ // "Etc/Universal" +00:00
32
+ const sql = __importStar(require("mssql"));
33
+ const luxon_1 = require("luxon");
34
+ const src_1 = require("../../../src");
35
+ const valuesAs0 = [
36
+ ['0', '0'],
37
+ [0, '0'],
38
+ ];
39
+ const valuesAsIntPositive = [
40
+ ['1', '1'],
41
+ [1, '1'],
42
+ ['+1.6', '2'],
43
+ [1.6, '2'],
44
+ ['+1.2', '1'],
45
+ [1.2, '1'],
46
+ ['0123', '123'],
47
+ ];
48
+ const valuesAsIntNegative = [
49
+ ['-1', '-1'],
50
+ [-1, '-1'],
51
+ ['-1.6', '-2'],
52
+ ];
53
+ const valuesAsNull = [
54
+ [null, 'null'],
55
+ [undefined, 'null'],
56
+ ['', 'null'],
57
+ ['u-2o', 'null'],
58
+ [false, 'null'],
59
+ [true, 'null'],
60
+ [[], 'null'],
61
+ [[1], 'null'],
62
+ [[-1], 'null'],
63
+ [{ a: 1 }, 'null'],
64
+ [{}, 'null'],
65
+ ];
66
+ describe('prepare sql value MS', () => {
67
+ describe('time zone', () => {
68
+ test(`Node time zone should be Europe/Moscow`, () => {
69
+ expect(Intl.DateTimeFormat().resolvedOptions().timeZone).toBe('Europe/Moscow');
70
+ });
71
+ });
72
+ describe('boolean', () => {
73
+ const testArr = [
74
+ [null, 'null'],
75
+ [undefined, 'null'],
76
+ ['%#@@!', '0'],
77
+ [false, '0'],
78
+ ['false', '0'],
79
+ ['0', '0'],
80
+ ['no', '0'],
81
+ ['no', '0'],
82
+ ['нет', '0'],
83
+ [0, '0'],
84
+ ['true', '1'],
85
+ ['1', '1'],
86
+ ['yes', '1'],
87
+ ['да', '1'],
88
+ [1, '1'],
89
+ [-1, '1'],
90
+ [10, '1'],
91
+ [[], '1'],
92
+ [[1], '1'],
93
+ [{ a: 1 }, '1'],
94
+ [{}, '1'],
95
+ ];
96
+ testArr.forEach((caseValues) => {
97
+ const [value, expected] = caseValues;
98
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: 'boolean' } });
99
+ test(`${value} --> ${res}`, () => {
100
+ expect(res).toBe(expected);
101
+ });
102
+ });
103
+ });
104
+ describe('tinyint', () => {
105
+ const testArr = [
106
+ ...valuesAs0,
107
+ ...valuesAsIntPositive,
108
+ ['-1', '0'],
109
+ [-1, '0'],
110
+ ['-1.6', '0'],
111
+ [12345678, '255'],
112
+ [-12345678, '0'],
113
+ ...valuesAsNull,
114
+ ];
115
+ testArr.forEach((caseValues) => {
116
+ const [value, expected] = caseValues;
117
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: 'tinyint' } });
118
+ test(`${value} --> ${res}`, () => {
119
+ expect(res).toBe(expected);
120
+ });
121
+ });
122
+ });
123
+ describe('smallint', () => {
124
+ const testArr = [
125
+ ...valuesAs0,
126
+ ...valuesAsIntPositive,
127
+ ...valuesAsIntNegative,
128
+ [12345678, '32767'],
129
+ [-12345678, '-32768'],
130
+ ...valuesAsNull,
131
+ ];
132
+ testArr.forEach((caseValues) => {
133
+ const [value, expected] = caseValues;
134
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: 'smallint' } });
135
+ test(`${value} --> ${res}`, () => {
136
+ expect(res).toBe(expected);
137
+ });
138
+ });
139
+ });
140
+ describe('int', () => {
141
+ const testArr = [
142
+ ...valuesAs0,
143
+ ...valuesAsNull,
144
+ ...valuesAsIntPositive,
145
+ ...valuesAsIntNegative,
146
+ [3147483647, '2147483647'],
147
+ [-3147483648, '-2147483648'],
148
+ ];
149
+ testArr.forEach((caseValues) => {
150
+ const [value, expected] = caseValues;
151
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: 'int' } });
152
+ test(`${value} --> ${res}`, () => {
153
+ expect(res).toBe(expected);
154
+ });
155
+ });
156
+ });
157
+ describe('bigint', () => {
158
+ const testArr = [
159
+ ['.6', 'null'],
160
+ ...valuesAs0,
161
+ ['1', '1'],
162
+ [1, '1'],
163
+ ['+1.6', '1'],
164
+ [1.6, '1'],
165
+ ['+1.2', '1'],
166
+ [1.2, '1'],
167
+ ['0123', '123'],
168
+ ['-1', '-1'],
169
+ [-1, '-1'],
170
+ ['-1.6', '-1'],
171
+ // Макс числа без варнинга об потере точности
172
+ [-9223372036854775808, '-9223372036854775808'],
173
+ [9223372036854775800, '9223372036854775808'], // ! на конце появляется 8
174
+ // Приводятся к максимальному и минимальному числам не BigInt
175
+ // eslint-disable-next-line no-loss-of-precision
176
+ [-9223372036854775809, '-9223372036854775808'],
177
+ // eslint-disable-next-line no-loss-of-precision
178
+ [9223372036854775807, '9223372036854775808'],
179
+ // Приводятся к максимальному и минимальному числам не BigInt
180
+ // eslint-disable-next-line no-loss-of-precision
181
+ [-9223372036854775809, '-9223372036854775808'],
182
+ // eslint-disable-next-line no-loss-of-precision
183
+ [9223372036854775807, '9223372036854775808'],
184
+ [-1234567890123456, '-1234567890123456'],
185
+ [1234567890123456, '1234567890123456'],
186
+ // n
187
+ [9223372036854775800n, '9223372036854775800'],
188
+ [-9223372036854775808n, '-9223372036854775808'],
189
+ [9223372036854775807n, '9223372036854775807'],
190
+ [-9223372036854775809n, '-9223372036854775809'],
191
+ [-1, '-1'],
192
+ [3101019223372036854775807n, '3101019223372036854775807'],
193
+ [-3101019223372036854775808n, '-3101019223372036854775808'],
194
+ // String
195
+ ['9223372036854775800', '9223372036854775800'],
196
+ ['-9223372036854775808', '-9223372036854775808'],
197
+ ['3101019223372036854775807', '3101019223372036854775807'],
198
+ ['-3101019223372036854775808', '-3101019223372036854775808'],
199
+ ...valuesAsNull,
200
+ ];
201
+ testArr.forEach((caseValues) => {
202
+ const [value, expected] = caseValues;
203
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: 'bigint' } });
204
+ test(`${value} --> ${res}`, () => {
205
+ expect(res).toBe(expected);
206
+ });
207
+ });
208
+ });
209
+ describe('number', () => {
210
+ const testArr = [
211
+ ...valuesAs0,
212
+ ...valuesAsNull,
213
+ ['1', '1'],
214
+ [1, '1'],
215
+ ['+1.6', '1.6'],
216
+ [1.6, '1.6'],
217
+ ['-1.2', '-1.2'],
218
+ [-1.2, '-1.2'],
219
+ ['0123', '123'],
220
+ ['-1', '-1'],
221
+ [-1, '-1'],
222
+ [12345.12345, '12345.12345'],
223
+ [-12345.12345, '-12345.12345'],
224
+ ['.6', '0.6'],
225
+ ['000.6', '0.6'],
226
+ [-9223372036854775808, '-9223372036854776000'],
227
+ [9223372036854775800, '9223372036854776000'],
228
+ // eslint-disable-next-line no-loss-of-precision
229
+ [-9223.372036854775808, '-9223.372036854777'],
230
+ // eslint-disable-next-line no-loss-of-precision
231
+ [9223.372036854775800, '9223.372036854777'],
232
+ [0.000000000000000000758, '7.58e-19'],
233
+ ];
234
+ testArr.forEach((caseValues) => {
235
+ const [value, expected] = caseValues;
236
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: 'number' } });
237
+ test(`${value} --> ${res}`, () => {
238
+ expect(res).toBe(expected);
239
+ });
240
+ });
241
+ });
242
+ describe('json', () => {
243
+ const testArr = [
244
+ [null, 'null'],
245
+ [undefined, 'null'],
246
+ ['', `'""'`],
247
+ ['ffff', `'"ffff"'`],
248
+ ['0', `'"0"'`],
249
+ ['{{}}', `'"{{}}"'`],
250
+ [true, `'true'`],
251
+ [-1.2, `'-1.2'`],
252
+ [1, `'1'`],
253
+ [[], `'[]'`],
254
+ [[1, 'f', true, null], `'[1,"f",true,null]'`],
255
+ [{ a: 1, b: '2', c: false }, `'{"a":1,"b":"2","c":false}'`],
256
+ ];
257
+ testArr.forEach((caseValues) => {
258
+ const [value, expected] = caseValues;
259
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: 'json' } });
260
+ test(`${value} --> ${res}`, () => {
261
+ expect(res).toBe(expected);
262
+ });
263
+ });
264
+ });
265
+ describe('string', () => {
266
+ const testArr = [
267
+ [null, 'null'],
268
+ [undefined, 'null'],
269
+ ['', `''`],
270
+ [`aa'aa`, `'aa''aa'`],
271
+ [`aa%aa`, `'aa%%aa'`],
272
+ [{ a: 1, b: '2' }, `'[object Ob'`],
273
+ [[], `''`],
274
+ [1, `'1'`],
275
+ [0, `'0'`],
276
+ ];
277
+ testArr.forEach((caseValues) => {
278
+ const [value, expected] = caseValues;
279
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: sql.VarChar, length: 10 } });
280
+ test(`${value} --> ${res}`, () => {
281
+ expect(res).toBe(expected);
282
+ });
283
+ });
284
+ });
285
+ describe('uuid', () => {
286
+ const testArr = [
287
+ [null, 'null'],
288
+ [undefined, 'null'],
289
+ ['', 'null'],
290
+ [`edacd531-c762-45bb-b5d1-01d49219bbfd`, `'EDACD531-C762-45BB-B5D1-01D49219BBFD'`],
291
+ [`edacd531-c762-45bb-b5d1-01d49219bbfdffff`, `'EDACD531-C762-45BB-B5D1-01D49219BBFD'`],
292
+ [`edacd531-c762-45bb-b5d1-01d49219b`, 'null'],
293
+ [45, 'null'],
294
+ ];
295
+ testArr.forEach((caseValues) => {
296
+ const [value, expected] = caseValues;
297
+ const res = (0, src_1.prepareSqlValueMs)({ value, fieldDef: { dataType: 'uuid' } });
298
+ test(`${value} --> ${res}`, () => {
299
+ expect(res).toBe(expected);
300
+ });
301
+ });
302
+ });
303
+ describe('datetime', () => {
304
+ const testArr = [
305
+ // Исходное время интерпретируется в указанной таймзоне (fromZone). Результат - в локальной
306
+ ['2000-01-22T11:59:59.123', `'2000-01-22T14:59:59.123+03:00'`, { dateTimeOptions: { fromZone: 'UTC', includeOffset: true } }],
307
+ ['2000-01-22T11:59:59.123', `'2000-01-22T14:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC' } }],
308
+ // Исходное время интерпретируется в локальной таймзоне (fromZone). Результат - в локальной
309
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:59.123+03:00'`, { dateTimeOptions: { includeOffset: true } }],
310
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:59.123'`],
311
+ // Исходное время интерпретируется в указанной таймзоне (fromZone). Результат - в указанной (setZone)
312
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:59.123Z'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC', includeOffset: true } }],
313
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
314
+ // Неполные миллисекунды
315
+ ['2000-01-22T11:59:59.12', `'2000-01-22T11:59:59.120'`],
316
+ ['2000-01-22T11:59:59.1', `'2000-01-22T11:59:59.100'`],
317
+ // Строки с указанием таймзоны
318
+ ['2000-01-22T11:59:59.123Z', `'2000-01-22T14:59:59.123'`],
319
+ ['2000-01-22T11:59:59.12+03:00', `'2000-01-22T11:59:59.120'`],
320
+ ['2000-01-22T11:59:59', `'2000-01-22T11:59:59.000'`],
321
+ ['2000-01-22T11:59', `'2000-01-22T11:59:00.000'`],
322
+ ['2000-01-22 11:59:59.123Z', `'2000-01-22T14:59:59.123'`],
323
+ ['2000-01-22 11:59:59.123 Z', `'2000-01-22T14:59:59.123'`],
324
+ ['2000-01-22 11:59:59.123+03:00', `'2000-01-22T11:59:59.123'`],
325
+ ['2000-01-22 11:59:59.123 +03:00', `'2000-01-22T11:59:59.123'`],
326
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59.123'`],
327
+ ['2000-01-22 11:59:59.12', `'2000-01-22T11:59:59.120'`],
328
+ ['2000-01-22 11:59:59.1', `'2000-01-22T11:59:59.100'`],
329
+ ['2000-01-22 11:59:59', `'2000-01-22T11:59:59.000'`],
330
+ ['2000-01-22 11:59', `'2000-01-22T11:59:00.000'`],
331
+ ['2000-01-22', `'2000-01-22T00:00:00.000'`],
332
+ [new Date(2023, 1, 2, 22, 11, 59, 123), `'2023-02-02T22:11:59.123'`],
333
+ [1675365119123, `'2023-02-02T22:11:59.123'`],
334
+ [luxon_1.DateTime.fromMillis(1675365119123), `'2023-02-02T22:11:59.123'`],
335
+ ['22:59:59.123', `'${luxon_1.DateTime.now().toISODate()}T22:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
336
+ ['11:59:59.1', `'${luxon_1.DateTime.now().toISODate()}T14:59:59.100'`, { dateTimeOptions: { fromZone: 'UTC' } }],
337
+ ['11:59:59', `'${luxon_1.DateTime.now().toISODate()}T11:59:59.000'`],
338
+ ['22:59', `'${luxon_1.DateTime.now().plus({ day: 1 }).toISODate()}T01:59:00.000'`, { dateTimeOptions: { fromZone: 'UTC' } }],
339
+ ['DDDDDD', 'null'],
340
+ [null, 'null'],
341
+ [undefined, 'null'],
342
+ ];
343
+ testArr.forEach((caseValues) => {
344
+ const [value, expected, fDev = {}] = caseValues;
345
+ const fieldDef = { ...fDev, dataType: 'datetime' };
346
+ const dateStrOut = (0, src_1.prepareSqlValueMs)({ value, fieldDef });
347
+ test(`${value} --> ${dateStrOut}`, () => {
348
+ expect(dateStrOut).toBe(expected);
349
+ });
350
+ });
351
+ });
352
+ describe('date', () => {
353
+ const testArr = [
354
+ ['2000-01-22T11:59:59.123', `'2000-01-22'`, { dateTimeOptions: { fromZone: 'UTC' } }],
355
+ ['2000-01-22T11:59:59.123', `'2000-01-22'`],
356
+ ['2000-01-22T22:59:59.123', `'2000-01-23'`, { dateTimeOptions: { fromZone: 'UTC' } }],
357
+ ['2000-01-22T22:59:59.123', `'2000-01-22'`],
358
+ ['2000-01-22T22:59:59.123', `'2000-01-22'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
359
+ ['2000-01-22T11:59:59.1', `'2000-01-22'`, { dateTimeOptions: { fromZone: 'UTC' } }],
360
+ ['2000-01-22T11:59:59', `'2000-01-22'`],
361
+ ['2000-01-22T22:59', `'2000-01-23'`, { dateTimeOptions: { fromZone: 'UTC' } }],
362
+ ['2000-01-22 22:59:59.123', `'2000-01-22'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
363
+ ['2000-01-22 11:59:59.1', `'2000-01-22'`, { dateTimeOptions: { fromZone: 'UTC' } }],
364
+ ['2000-01-22 11:59:59', `'2000-01-22'`],
365
+ ['2000-01-22 22:59', `'2000-01-23'`, { dateTimeOptions: { fromZone: 'UTC' } }],
366
+ ['2000-01-22', `'2000-01-22'`],
367
+ [new Date(2023, 1, 2, 22, 11, 59), `'2023-02-02'`],
368
+ [1675365119123, `'2023-02-02'`],
369
+ [luxon_1.DateTime.fromMillis(1675365119123), `'2023-02-02'`],
370
+ ['DDDDDD', 'null'],
371
+ [null, 'null'],
372
+ [undefined, 'null'],
373
+ ];
374
+ testArr.forEach((caseValues) => {
375
+ const [value, expected, fDev = {}] = caseValues;
376
+ const fieldDef = { ...fDev, dataType: 'date' };
377
+ const dateStrOut = (0, src_1.prepareSqlValueMs)({ value, fieldDef });
378
+ test(`${value} --> ${dateStrOut}`, () => {
379
+ expect(dateStrOut).toBe(expected);
380
+ });
381
+ });
382
+ });
383
+ describe('time', () => {
384
+ const testArr = [
385
+ ['2000-01-22T11:59:59.123', `'14:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC' } }],
386
+ ['2000-01-22T11:59:59.123', `'11:59:59.123'`],
387
+ ['2000-01-22T22:59:59.123', `'01:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC' } }],
388
+ ['2000-01-22T22:59:59.123', `'22:59:59.123'`],
389
+ ['2000-01-22T22:59:59.123', `'22:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
390
+ ['2000-01-22T11:59:59.1', `'14:59:59.100'`, { dateTimeOptions: { fromZone: 'UTC' } }],
391
+ ['2000-01-22T11:59:59', `'11:59:59.000'`],
392
+ ['2000-01-22T22:59', `'01:59:00.000'`, { dateTimeOptions: { fromZone: 'UTC' } }],
393
+ ['2000-01-22 22:59:59.123', `'22:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
394
+ ['2000-01-22 11:59:59.1', `'14:59:59.100'`, { dateTimeOptions: { fromZone: 'UTC' } }],
395
+ ['2000-01-22 11:59:59', `'11:59:59.000'`],
396
+ ['2000-01-22 22:59', `'01:59:00.000'`, { dateTimeOptions: { fromZone: 'UTC' } }],
397
+ ['2000-01-22', `'00:00:00.000'`],
398
+ ['22:59:59.123', `'22:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
399
+ ['11:59:59.1', `'14:59:59.100'`, { dateTimeOptions: { fromZone: 'UTC' } }],
400
+ ['11:59:59', `'11:59:59.000'`],
401
+ ['22:59', `'01:59:00.000'`, { dateTimeOptions: { fromZone: 'UTC' } }],
402
+ [new Date(2023, 1, 2, 22, 11, 59, 123), `'22:11:59.123'`],
403
+ [1675365119123, `'22:11:59.123'`],
404
+ [luxon_1.DateTime.fromMillis(1675365119123), `'22:11:59.123'`],
405
+ ['DDDDDD', 'null'],
406
+ [null, 'null'],
407
+ [undefined, 'null'],
408
+ ];
409
+ testArr.forEach((caseValues) => {
410
+ const [value, expected, fDev = {}] = caseValues;
411
+ const fieldDef = { ...fDev, dataType: 'time' };
412
+ const dateStrOut = (0, src_1.prepareSqlValueMs)({ value, fieldDef });
413
+ test(`${value} --> ${dateStrOut}`, () => {
414
+ expect(dateStrOut).toBe(expected);
415
+ });
416
+ });
417
+ });
418
+ describe('smalldatetime', () => {
419
+ const testArr = [
420
+ ['2000-01-22T11:59:59.123', `'2000-01-22T14:59:00'`, { dateTimeOptions: { fromZone: 'UTC', includeOffset: true } }],
421
+ ['2000-01-22T11:59:59.123', `'2000-01-22T14:59:00'`, { dateTimeOptions: { fromZone: 'UTC' } }],
422
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:00'`, { dateTimeOptions: { includeOffset: true } }],
423
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:00'`],
424
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:00'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC', includeOffset: true } }],
425
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:00'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
426
+ ['2000-01-22T11:59', `'2000-01-22T11:59:00'`],
427
+ ['2000-01-22T11:59:59.123Z', `'2000-01-22T14:59:00'`],
428
+ ['2000-01-22T11:59:59.12+03:00', `'2000-01-22T11:59:00'`],
429
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:00'`],
430
+ ['2000-01-22 11:59:59.12', `'2000-01-22T11:59:00'`],
431
+ ['2000-01-22 11:59:59.1', `'2000-01-22T11:59:00'`],
432
+ ['2000-01-22 11:59:59', `'2000-01-22T11:59:00'`],
433
+ ['22:59:59.123', `'${luxon_1.DateTime.now().toISODate()}T22:59:00'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
434
+ ['11:59:59.1', `'${luxon_1.DateTime.now().toISODate()}T14:59:00'`, { dateTimeOptions: { fromZone: 'UTC' } }],
435
+ ['11:59:59', `'${luxon_1.DateTime.now().toISODate()}T11:59:00'`],
436
+ ['22:59', `'${luxon_1.DateTime.now().plus({ day: 1 }).toISODate()}T01:59:00'`, { dateTimeOptions: { fromZone: 'UTC' } }],
437
+ ['2000-01-22', `'2000-01-22T00:00:00'`],
438
+ [new Date(2023, 1, 2, 22, 11, 59, 123), `'2023-02-02T22:11:00'`],
439
+ [1675365119123, `'2023-02-02T22:11:00'`],
440
+ [luxon_1.DateTime.fromMillis(1675365119123), `'2023-02-02T22:11:00'`],
441
+ ['DDDDDD', 'null'],
442
+ [null, 'null'],
443
+ [undefined, 'null'],
444
+ ];
445
+ testArr.forEach((caseValues) => {
446
+ const [value, expected, fDev = {}] = caseValues;
447
+ const fieldDef = { ...fDev, dataType: 'smalldatetime' };
448
+ const dateStrOut = (0, src_1.prepareSqlValueMs)({ value, fieldDef });
449
+ test(`${value} --> ${dateStrOut}`, () => {
450
+ expect(dateStrOut).toBe(expected);
451
+ });
452
+ });
453
+ });
454
+ describe('datetimeoffset', () => {
455
+ const testArr = [
456
+ // Исходное время интерпретируется в указанной таймзоне (fromZone). Результат - в локальной
457
+ ['2000-01-22T11:59:59.123', `'2000-01-22T14:59:59.123+03:00'`, { dateTimeOptions: { fromZone: 'UTC' } }],
458
+ // по умолчанию offset включен
459
+ ['2000-01-22T11:59:59.123', `'2000-01-22T14:59:59.123'`, { dateTimeOptions: { fromZone: 'UTC', includeOffset: false } }],
460
+ // Исходное время интерпретируется в локальной таймзоне (fromZone). Результат - в локальной
461
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:59.123+03:00'`, { dateTimeOptions: { includeOffset: true } }],
462
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:59.123+03:00'`],
463
+ // Исходное время интерпретируется в указанной таймзоне (fromZone). Результат - в указанной (setZone)
464
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:59.123Z'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC', includeOffset: true } }],
465
+ ['2000-01-22T11:59:59.123', `'2000-01-22T11:59:59.123Z'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
466
+ // Неполные миллисекунды
467
+ ['2000-01-22T11:59:59.12', `'2000-01-22T11:59:59.120+03:00'`],
468
+ ['2000-01-22T11:59:59.1', `'2000-01-22T11:59:59.100+03:00'`],
469
+ // Строки с указанием таймзоны
470
+ ['2000-01-22T11:59:59.123Z', `'2000-01-22T14:59:59.123+03:00'`],
471
+ ['2000-01-22T11:59:59.12+03:00', `'2000-01-22T11:59:59.120+03:00'`],
472
+ ['2000-01-22T11:59:59', `'2000-01-22T11:59:59.000+03:00'`],
473
+ ['2000-01-22T11:59', `'2000-01-22T11:59:00.000+03:00'`],
474
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59.123+03:00'`],
475
+ ['2000-01-22 11:59:59.12', `'2000-01-22T11:59:59.120+03:00'`],
476
+ ['2000-01-22 11:59:59.1', `'2000-01-22T11:59:59.100+03:00'`],
477
+ ['2000-01-22 11:59:59', `'2000-01-22T11:59:59.000+03:00'`],
478
+ ['2000-01-22 11:59', `'2000-01-22T11:59:00.000+03:00'`],
479
+ ['2000-01-22', `'2000-01-22T00:00:00.000+03:00'`],
480
+ [new Date(2023, 1, 2, 22, 11, 59, 123), `'2023-02-02T22:11:59.123+03:00'`],
481
+ [1675365119123, `'2023-02-02T22:11:59.123+03:00'`],
482
+ [luxon_1.DateTime.fromMillis(1675365119123), `'2023-02-02T22:11:59.123+03:00'`],
483
+ ['22:59:59.123', `'${luxon_1.DateTime.now().toISODate()}T22:59:59.123Z'`, { dateTimeOptions: { fromZone: 'UTC', setZone: 'UTC' } }],
484
+ ['11:59:59.1', `'${luxon_1.DateTime.now().toISODate()}T14:59:59.100+03:00'`, { dateTimeOptions: { fromZone: 'UTC' } }],
485
+ ['11:59:59', `'${luxon_1.DateTime.now().toISODate()}T11:59:59.000+03:00'`],
486
+ ['22:59', `'${luxon_1.DateTime.now().plus({ day: 1 }).toISODate()}T01:59:00.000+03:00'`, { dateTimeOptions: { fromZone: 'UTC' } }],
487
+ // ========= SCALE =============
488
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59+03:00'`, { dtPrecision: 0 }],
489
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59.1+03:00'`, { dtPrecision: 1 }],
490
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59.12+03:00'`, { dtPrecision: 2 }],
491
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59.123+03:00'`, { dtPrecision: 3 }],
492
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59.1230+03:00'`, { dtPrecision: 4 }],
493
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59.1230000+03:00'`, { dtPrecision: 7 }],
494
+ ['2000-01-22 11:59:59.123', `'2000-01-22T11:59:59.1230000+03:00'`, { dtPrecision: 10 }],
495
+ ['2000-01-22 11:59:59.1234567', `'2000-01-22T11:59:59.123+03:00'`],
496
+ ['2000-01-22 11:59:59.1234567', `'2000-01-22T11:59:59.1234+03:00'`, { dtPrecision: 4 }],
497
+ ['2000-01-22 11:59:59.1234567', `'2000-01-22T11:59:59.1234567+03:00'`, { dtPrecision: 7 }],
498
+ // ========= SCALE, ZONE =============
499
+ ['2000-01-22 11:59:59.123Z', `'2000-01-22T14:59:59.1230+03:00'`, { dtPrecision: 4 }],
500
+ ['2000-01-22 11:59:59.123+05:00', `'2000-01-22T09:59:59.1230+03:00'`, { dtPrecision: 4 }],
501
+ ['2000-01-22 11:59:59.123Z', `'2000-01-22T14:59:59.123+03:00'`],
502
+ ['2000-01-22 11:59:59.123+05:00', `'2000-01-22T09:59:59.123+03:00'`],
503
+ ['2000-01-22 11:59:59.123+05:00', `'2000-01-22T06:59:59.123Z'`, { dateTimeOptions: { setZone: 'UTC' } }],
504
+ ['DDDDDD', 'null'],
505
+ [null, 'null'],
506
+ [undefined, 'null'],
507
+ ];
508
+ testArr.forEach((caseValues) => {
509
+ const [value, expected, fDev = {}] = caseValues;
510
+ const fieldDef = { ...fDev, dataType: 'datetimeoffset' };
511
+ const dateStrOut = (0, src_1.prepareSqlValueMs)({ value, fieldDef });
512
+ test(`${value} --> ${dateStrOut}`, () => {
513
+ expect(dateStrOut).toBe(expected);
514
+ });
515
+ });
516
+ });
517
+ describe('binary', () => {
518
+ const testArr = [
519
+ [Buffer.from('asdfghjkyytreew'), `'0x6173646667686A6B79797472656577'`],
520
+ ['DDDDDD', `'0xDDDDDD'`],
521
+ [null, 'null'],
522
+ [undefined, 'null'],
523
+ ];
524
+ testArr.forEach((caseValues) => {
525
+ const [value, expected, fDev = {}] = caseValues;
526
+ const fieldDef = { ...fDev, dataType: 'binary' };
527
+ const dateStrOut = (0, src_1.prepareSqlValueMs)({ value, fieldDef });
528
+ test(`${value} --> ${dateStrOut}`, () => {
529
+ expect(dateStrOut).toBe(expected);
530
+ });
531
+ });
532
+ });
533
+ describe('variant', () => {
534
+ const testArr = [
535
+ [null, 'null'],
536
+ [undefined, 'null'],
537
+ ['', `''`],
538
+ [`aa'aa`, `'aa''aa'`],
539
+ [`aa%aa`, `'aa%%aa'`],
540
+ [{ a: 1, b: '2' }, `'[object Object]'`],
541
+ [[], `''`],
542
+ [1, `'1'`],
543
+ [0, `'0'`],
544
+ ];
545
+ testArr.forEach((caseValues) => {
546
+ const [value, expected, fDev = {}] = caseValues;
547
+ const fieldDef = { ...fDev, dataType: 'variant' };
548
+ const dateStrOut = (0, src_1.prepareSqlValueMs)({ value, fieldDef });
549
+ test(`${value} --> ${dateStrOut}`, () => {
550
+ expect(dateStrOut).toBe(expected);
551
+ });
552
+ });
553
+ });
554
+ describe('array', () => {
555
+ const testArr = [
556
+ [null, 'null'],
557
+ [undefined, 'null'],
558
+ [1, 'null'],
559
+ [0, 'null'],
560
+ [false, 'null'],
561
+ [true, 'null'],
562
+ ['', 'null'],
563
+ [{ a: 1, b: '2' }, 'null'],
564
+ [[], `'[]'`],
565
+ [[1, '2', 'a', '', true, false, null], `'[1,"2","a","",true,false,null]'`],
566
+ [[1, '2', 'a', '', null], `'[1,2,null,null,null]'`, { arrayType: 'int' }],
567
+ [[1, 0, true, false, '2', 'a', '', null], `'[true,false,true,false,false,false,false,null]'`, { arrayType: 'boolean' }],
568
+ [[1, 0, true, false, '2', 'a', '', null], `'[1,0,1,0,0,0,0,null]'`, { arrayType: sql.Bit }],
569
+ [[1, 0, 444444444, -55555555, '2', 'a', '', null], `'[1,0,32767,-32768,2,null,null,null]'`, { arrayType: 'smallint' }],
570
+ [['edacd531-c762-45bb-b5d1-01d49219bbfd', 'ddd', null], `'["EDACD531-C762-45BB-B5D1-01D49219BBFD",null,null]'`, { arrayType: 'uniqueIdentifier' }],
571
+ ];
572
+ testArr.forEach((caseValues) => {
573
+ const [value, expected, fDev = {}] = caseValues;
574
+ const fieldDef = { ...fDev, dataType: 'array' };
575
+ const dateStrOut = (0, src_1.prepareSqlValueMs)({ value, fieldDef });
576
+ let v = Array.isArray(value) ? `[${value.join(', ')}]` : value;
577
+ v = fDev.arrayType ? `${v} / arrayType: ${fDev.arrayType}` : v;
578
+ test(`${v} --> ${dateStrOut}`, () => {
579
+ expect(dateStrOut).toBe(expected);
580
+ });
581
+ });
582
+ });
583
+ });
584
+ //# sourceMappingURL=ms-prepare-sql-value.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ms-prepare-sql-value.spec.js","sourceRoot":"","sources":["../../../../../__tests__/db/ms/ms-prepare-sql-value.spec.ts"],"names":[],"mappings":"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"}