@zowe/db2-for-zowe-cli 6.1.16 → 6.1.18

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 (2174) hide show
  1. package/README.md +38 -7
  2. package/lib/Db2PluginLifeCycle.d.ts +82 -0
  3. package/lib/Db2PluginLifeCycle.js +159 -0
  4. package/lib/Db2PluginLifeCycle.js.map +1 -0
  5. package/lib/imperative.js +1 -0
  6. package/lib/imperative.js.map +1 -1
  7. package/node_modules/adm-zip/LICENSE +21 -0
  8. package/node_modules/adm-zip/README.md +90 -0
  9. package/node_modules/adm-zip/adm-zip.js +994 -0
  10. package/node_modules/adm-zip/headers/entryHeader.js +384 -0
  11. package/node_modules/adm-zip/headers/index.js +2 -0
  12. package/node_modules/adm-zip/headers/mainHeader.js +177 -0
  13. package/node_modules/adm-zip/methods/deflater.js +33 -0
  14. package/node_modules/adm-zip/methods/index.js +3 -0
  15. package/node_modules/adm-zip/methods/inflater.js +34 -0
  16. package/node_modules/adm-zip/methods/zipcrypto.js +175 -0
  17. package/node_modules/adm-zip/package.json +56 -0
  18. package/node_modules/adm-zip/types.d.ts +223 -0
  19. package/node_modules/adm-zip/util/constants.js +142 -0
  20. package/node_modules/adm-zip/util/decoder.js +5 -0
  21. package/node_modules/adm-zip/util/errors.js +63 -0
  22. package/node_modules/adm-zip/util/fattr.js +76 -0
  23. package/node_modules/adm-zip/util/index.js +5 -0
  24. package/node_modules/adm-zip/util/utils.js +393 -0
  25. package/node_modules/adm-zip/zipEntry.js +390 -0
  26. package/node_modules/adm-zip/zipFile.js +456 -0
  27. package/node_modules/asynckit/LICENSE +21 -0
  28. package/node_modules/asynckit/README.md +233 -0
  29. package/node_modules/asynckit/bench.js +76 -0
  30. package/node_modules/asynckit/index.js +6 -0
  31. package/node_modules/asynckit/lib/abort.js +29 -0
  32. package/node_modules/asynckit/lib/async.js +34 -0
  33. package/node_modules/asynckit/lib/defer.js +26 -0
  34. package/node_modules/asynckit/lib/iterate.js +75 -0
  35. package/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  36. package/node_modules/asynckit/lib/readable_parallel.js +25 -0
  37. package/node_modules/asynckit/lib/readable_serial.js +25 -0
  38. package/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  39. package/node_modules/asynckit/lib/state.js +37 -0
  40. package/node_modules/asynckit/lib/streamify.js +141 -0
  41. package/node_modules/asynckit/lib/terminator.js +29 -0
  42. package/node_modules/asynckit/package.json +63 -0
  43. package/node_modules/asynckit/parallel.js +43 -0
  44. package/node_modules/asynckit/serial.js +17 -0
  45. package/node_modules/asynckit/serialOrdered.js +75 -0
  46. package/node_modules/asynckit/stream.js +21 -0
  47. package/node_modules/available-typed-arrays/.eslintrc +5 -0
  48. package/node_modules/available-typed-arrays/.github/FUNDING.yml +12 -0
  49. package/node_modules/available-typed-arrays/.nycrc +9 -0
  50. package/node_modules/available-typed-arrays/CHANGELOG.md +100 -0
  51. package/node_modules/available-typed-arrays/LICENSE +21 -0
  52. package/node_modules/available-typed-arrays/README.md +55 -0
  53. package/node_modules/available-typed-arrays/index.d.ts +8 -0
  54. package/node_modules/available-typed-arrays/index.js +17 -0
  55. package/node_modules/available-typed-arrays/package.json +93 -0
  56. package/node_modules/available-typed-arrays/test/index.js +18 -0
  57. package/node_modules/available-typed-arrays/tsconfig.json +49 -0
  58. package/node_modules/axios/CHANGELOG.md +1934 -0
  59. package/node_modules/axios/LICENSE +7 -0
  60. package/node_modules/axios/MIGRATION_GUIDE.md +877 -0
  61. package/node_modules/axios/README.md +2851 -0
  62. package/node_modules/axios/dist/axios.js +5807 -0
  63. package/node_modules/axios/dist/axios.min.js +5 -0
  64. package/node_modules/axios/dist/axios.min.js.map +1 -0
  65. package/node_modules/axios/dist/browser/axios.cjs +5829 -0
  66. package/node_modules/axios/dist/esm/axios.js +5850 -0
  67. package/node_modules/axios/dist/esm/axios.min.js +3 -0
  68. package/node_modules/axios/dist/esm/axios.min.js.map +1 -0
  69. package/node_modules/axios/dist/node/axios.cjs +6808 -0
  70. package/node_modules/axios/index.d.cts +766 -0
  71. package/node_modules/axios/index.d.ts +787 -0
  72. package/node_modules/axios/index.js +45 -0
  73. package/node_modules/axios/lib/adapters/README.md +36 -0
  74. package/node_modules/axios/lib/adapters/adapters.js +132 -0
  75. package/node_modules/axios/lib/adapters/fetch.js +696 -0
  76. package/node_modules/axios/lib/adapters/http.js +1490 -0
  77. package/node_modules/axios/lib/adapters/xhr.js +277 -0
  78. package/node_modules/axios/lib/axios.js +89 -0
  79. package/node_modules/axios/lib/cancel/CancelToken.js +135 -0
  80. package/node_modules/axios/lib/cancel/CanceledError.js +22 -0
  81. package/node_modules/axios/lib/cancel/isCancel.js +5 -0
  82. package/node_modules/axios/lib/core/Axios.js +306 -0
  83. package/node_modules/axios/lib/core/AxiosError.js +219 -0
  84. package/node_modules/axios/lib/core/AxiosHeaders.js +474 -0
  85. package/node_modules/axios/lib/core/InterceptorManager.js +171 -0
  86. package/node_modules/axios/lib/core/README.md +8 -0
  87. package/node_modules/axios/lib/core/buildFullPath.js +76 -0
  88. package/node_modules/axios/lib/core/dispatchRequest.js +95 -0
  89. package/node_modules/axios/lib/core/mergeConfig.js +174 -0
  90. package/node_modules/axios/lib/core/methodList.js +17 -0
  91. package/node_modules/axios/lib/core/setFormDataHeaders.js +27 -0
  92. package/node_modules/axios/lib/core/settle.js +27 -0
  93. package/node_modules/axios/lib/core/transformData.js +28 -0
  94. package/node_modules/axios/lib/defaults/index.js +178 -0
  95. package/node_modules/axios/lib/defaults/transitional.js +10 -0
  96. package/node_modules/axios/lib/env/README.md +3 -0
  97. package/node_modules/axios/lib/env/classes/FormData.js +2 -0
  98. package/node_modules/axios/lib/env/data.js +1 -0
  99. package/node_modules/axios/lib/helpers/AxiosTransformStream.js +156 -0
  100. package/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +59 -0
  101. package/node_modules/axios/lib/helpers/Http2Sessions.js +121 -0
  102. package/node_modules/axios/lib/helpers/HttpStatusCode.js +88 -0
  103. package/node_modules/axios/lib/helpers/README.md +7 -0
  104. package/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +29 -0
  105. package/node_modules/axios/lib/helpers/bind.js +14 -0
  106. package/node_modules/axios/lib/helpers/buildURL.js +69 -0
  107. package/node_modules/axios/lib/helpers/callbackify.js +18 -0
  108. package/node_modules/axios/lib/helpers/combineURLs.js +23 -0
  109. package/node_modules/axios/lib/helpers/composeSignals.js +68 -0
  110. package/node_modules/axios/lib/helpers/cookies.js +64 -0
  111. package/node_modules/axios/lib/helpers/deprecatedMethod.js +31 -0
  112. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +166 -0
  113. package/node_modules/axios/lib/helpers/formDataToJSON.js +125 -0
  114. package/node_modules/axios/lib/helpers/formDataToStream.js +119 -0
  115. package/node_modules/axios/lib/helpers/fromDataURI.js +69 -0
  116. package/node_modules/axios/lib/helpers/isAbsoluteURL.js +19 -0
  117. package/node_modules/axios/lib/helpers/isAxiosError.js +14 -0
  118. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +16 -0
  119. package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
  120. package/node_modules/axios/lib/helpers/null.js +2 -0
  121. package/node_modules/axios/lib/helpers/parseHeaders.js +71 -0
  122. package/node_modules/axios/lib/helpers/parseProtocol.js +6 -0
  123. package/node_modules/axios/lib/helpers/progressEventReducer.js +54 -0
  124. package/node_modules/axios/lib/helpers/readBlob.js +15 -0
  125. package/node_modules/axios/lib/helpers/resolveConfig.js +107 -0
  126. package/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +60 -0
  127. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +505 -0
  128. package/node_modules/axios/lib/helpers/speedometer.js +55 -0
  129. package/node_modules/axios/lib/helpers/spread.js +28 -0
  130. package/node_modules/axios/lib/helpers/throttle.js +45 -0
  131. package/node_modules/axios/lib/helpers/toFormData.js +279 -0
  132. package/node_modules/axios/lib/helpers/toURLEncodedForm.js +19 -0
  133. package/node_modules/axios/lib/helpers/trackStream.js +89 -0
  134. package/node_modules/axios/lib/helpers/validator.js +112 -0
  135. package/node_modules/axios/lib/platform/browser/classes/Blob.js +3 -0
  136. package/node_modules/axios/lib/platform/browser/classes/FormData.js +3 -0
  137. package/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js +4 -0
  138. package/node_modules/axios/lib/platform/browser/index.js +13 -0
  139. package/node_modules/axios/lib/platform/common/utils.js +52 -0
  140. package/node_modules/axios/lib/platform/index.js +7 -0
  141. package/node_modules/axios/lib/platform/node/classes/Buffer.js +11 -0
  142. package/node_modules/axios/lib/platform/node/classes/FormData.js +3 -0
  143. package/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +4 -0
  144. package/node_modules/axios/lib/platform/node/index.js +37 -0
  145. package/node_modules/axios/lib/utils.js +1150 -0
  146. package/node_modules/axios/node_modules/agent-base/README.md +145 -0
  147. package/node_modules/axios/node_modules/agent-base/dist/src/index.d.ts +78 -0
  148. package/node_modules/axios/node_modules/agent-base/dist/src/index.js +203 -0
  149. package/node_modules/axios/node_modules/agent-base/dist/src/index.js.map +1 -0
  150. package/node_modules/axios/node_modules/agent-base/dist/src/promisify.d.ts +4 -0
  151. package/node_modules/axios/node_modules/agent-base/dist/src/promisify.js +18 -0
  152. package/node_modules/axios/node_modules/agent-base/dist/src/promisify.js.map +1 -0
  153. package/node_modules/axios/node_modules/agent-base/package.json +64 -0
  154. package/node_modules/axios/node_modules/agent-base/src/index.ts +345 -0
  155. package/node_modules/axios/node_modules/agent-base/src/promisify.ts +33 -0
  156. package/node_modules/axios/node_modules/https-proxy-agent/README.md +137 -0
  157. package/node_modules/axios/node_modules/https-proxy-agent/dist/agent.d.ts +30 -0
  158. package/node_modules/axios/node_modules/https-proxy-agent/dist/agent.js +177 -0
  159. package/node_modules/axios/node_modules/https-proxy-agent/dist/agent.js.map +1 -0
  160. package/node_modules/axios/node_modules/https-proxy-agent/dist/index.d.ts +23 -0
  161. package/node_modules/axios/node_modules/https-proxy-agent/dist/index.js +14 -0
  162. package/node_modules/axios/node_modules/https-proxy-agent/dist/index.js.map +1 -0
  163. package/node_modules/axios/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +7 -0
  164. package/node_modules/axios/node_modules/https-proxy-agent/dist/parse-proxy-response.js +66 -0
  165. package/node_modules/axios/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -0
  166. package/node_modules/axios/node_modules/https-proxy-agent/package.json +56 -0
  167. package/node_modules/axios/package.json +203 -0
  168. package/node_modules/big-integer/BigInteger.d.ts +2393 -0
  169. package/node_modules/big-integer/BigInteger.js +1453 -0
  170. package/node_modules/big-integer/BigInteger.min.js +1 -0
  171. package/node_modules/big-integer/LICENSE +24 -0
  172. package/node_modules/big-integer/README.md +589 -0
  173. package/node_modules/big-integer/bower.json +29 -0
  174. package/node_modules/big-integer/package.json +48 -0
  175. package/node_modules/big-integer/tsconfig.json +24 -0
  176. package/node_modules/bindings/LICENSE.md +22 -0
  177. package/node_modules/bindings/README.md +98 -0
  178. package/node_modules/bindings/bindings.js +221 -0
  179. package/node_modules/bindings/package.json +28 -0
  180. package/node_modules/buffer-alloc/index.js +32 -0
  181. package/node_modules/buffer-alloc/package.json +26 -0
  182. package/node_modules/buffer-alloc/readme.md +43 -0
  183. package/node_modules/buffer-alloc-unsafe/index.js +17 -0
  184. package/node_modules/buffer-alloc-unsafe/package.json +24 -0
  185. package/node_modules/buffer-alloc-unsafe/readme.md +46 -0
  186. package/node_modules/buffer-fill/index.js +113 -0
  187. package/node_modules/buffer-fill/package.json +16 -0
  188. package/node_modules/buffer-fill/readme.md +54 -0
  189. package/node_modules/call-bind/.eslintignore +1 -0
  190. package/node_modules/call-bind/.eslintrc +16 -0
  191. package/node_modules/call-bind/.github/FUNDING.yml +12 -0
  192. package/node_modules/call-bind/.nycrc +9 -0
  193. package/node_modules/call-bind/CHANGELOG.md +115 -0
  194. package/node_modules/call-bind/LICENSE +21 -0
  195. package/node_modules/call-bind/README.md +64 -0
  196. package/node_modules/call-bind/callBound.js +15 -0
  197. package/node_modules/call-bind/index.js +24 -0
  198. package/node_modules/call-bind/package.json +93 -0
  199. package/node_modules/call-bind/test/callBound.js +54 -0
  200. package/node_modules/call-bind/test/index.js +82 -0
  201. package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  202. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  203. package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  204. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  205. package/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  206. package/node_modules/call-bind-apply-helpers/README.md +62 -0
  207. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  208. package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  209. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  210. package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  211. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  212. package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  213. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  214. package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  215. package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  216. package/node_modules/call-bind-apply-helpers/index.js +15 -0
  217. package/node_modules/call-bind-apply-helpers/package.json +85 -0
  218. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  219. package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  220. package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  221. package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  222. package/node_modules/call-bound/.eslintrc +13 -0
  223. package/node_modules/call-bound/.github/FUNDING.yml +12 -0
  224. package/node_modules/call-bound/.nycrc +9 -0
  225. package/node_modules/call-bound/CHANGELOG.md +42 -0
  226. package/node_modules/call-bound/LICENSE +21 -0
  227. package/node_modules/call-bound/README.md +53 -0
  228. package/node_modules/call-bound/index.d.ts +94 -0
  229. package/node_modules/call-bound/index.js +19 -0
  230. package/node_modules/call-bound/package.json +99 -0
  231. package/node_modules/call-bound/test/index.js +61 -0
  232. package/node_modules/call-bound/tsconfig.json +10 -0
  233. package/node_modules/combined-stream/License +19 -0
  234. package/node_modules/combined-stream/Readme.md +138 -0
  235. package/node_modules/combined-stream/lib/combined_stream.js +208 -0
  236. package/node_modules/combined-stream/package.json +25 -0
  237. package/node_modules/core-util-is/LICENSE +19 -0
  238. package/node_modules/core-util-is/README.md +3 -0
  239. package/node_modules/core-util-is/lib/util.js +107 -0
  240. package/node_modules/core-util-is/package.json +38 -0
  241. package/node_modules/debug/LICENSE +20 -0
  242. package/node_modules/debug/README.md +481 -0
  243. package/node_modules/debug/package.json +64 -0
  244. package/node_modules/debug/src/browser.js +272 -0
  245. package/node_modules/debug/src/common.js +292 -0
  246. package/node_modules/debug/src/index.js +10 -0
  247. package/node_modules/debug/src/node.js +263 -0
  248. package/node_modules/define-data-property/.eslintrc +24 -0
  249. package/node_modules/define-data-property/.github/FUNDING.yml +12 -0
  250. package/node_modules/define-data-property/.nycrc +13 -0
  251. package/node_modules/define-data-property/CHANGELOG.md +70 -0
  252. package/node_modules/define-data-property/LICENSE +21 -0
  253. package/node_modules/define-data-property/README.md +67 -0
  254. package/node_modules/define-data-property/index.d.ts +12 -0
  255. package/node_modules/define-data-property/index.js +56 -0
  256. package/node_modules/define-data-property/package.json +106 -0
  257. package/node_modules/define-data-property/test/index.js +392 -0
  258. package/node_modules/define-data-property/tsconfig.json +59 -0
  259. package/node_modules/delayed-stream/.npmignore +1 -0
  260. package/node_modules/delayed-stream/License +19 -0
  261. package/node_modules/delayed-stream/Makefile +7 -0
  262. package/node_modules/delayed-stream/Readme.md +141 -0
  263. package/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  264. package/node_modules/delayed-stream/package.json +27 -0
  265. package/node_modules/dunder-proto/.eslintrc +5 -0
  266. package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  267. package/node_modules/dunder-proto/.nycrc +13 -0
  268. package/node_modules/dunder-proto/CHANGELOG.md +24 -0
  269. package/node_modules/dunder-proto/LICENSE +21 -0
  270. package/node_modules/dunder-proto/README.md +54 -0
  271. package/node_modules/dunder-proto/get.d.ts +5 -0
  272. package/node_modules/dunder-proto/get.js +30 -0
  273. package/node_modules/dunder-proto/package.json +76 -0
  274. package/node_modules/dunder-proto/set.d.ts +5 -0
  275. package/node_modules/dunder-proto/set.js +35 -0
  276. package/node_modules/dunder-proto/test/get.js +34 -0
  277. package/node_modules/dunder-proto/test/index.js +4 -0
  278. package/node_modules/dunder-proto/test/set.js +50 -0
  279. package/node_modules/dunder-proto/tsconfig.json +9 -0
  280. package/node_modules/end-of-stream/LICENSE +21 -0
  281. package/node_modules/end-of-stream/README.md +54 -0
  282. package/node_modules/end-of-stream/index.js +96 -0
  283. package/node_modules/end-of-stream/package.json +37 -0
  284. package/node_modules/es-define-property/.eslintrc +13 -0
  285. package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  286. package/node_modules/es-define-property/.nycrc +9 -0
  287. package/node_modules/es-define-property/CHANGELOG.md +29 -0
  288. package/node_modules/es-define-property/LICENSE +21 -0
  289. package/node_modules/es-define-property/README.md +49 -0
  290. package/node_modules/es-define-property/index.d.ts +3 -0
  291. package/node_modules/es-define-property/index.js +14 -0
  292. package/node_modules/es-define-property/package.json +81 -0
  293. package/node_modules/es-define-property/test/index.js +56 -0
  294. package/node_modules/es-define-property/tsconfig.json +10 -0
  295. package/node_modules/es-errors/.eslintrc +5 -0
  296. package/node_modules/es-errors/.github/FUNDING.yml +12 -0
  297. package/node_modules/es-errors/CHANGELOG.md +40 -0
  298. package/node_modules/es-errors/LICENSE +21 -0
  299. package/node_modules/es-errors/README.md +55 -0
  300. package/node_modules/es-errors/eval.d.ts +3 -0
  301. package/node_modules/es-errors/eval.js +4 -0
  302. package/node_modules/es-errors/index.d.ts +3 -0
  303. package/node_modules/es-errors/index.js +4 -0
  304. package/node_modules/es-errors/package.json +80 -0
  305. package/node_modules/es-errors/range.d.ts +3 -0
  306. package/node_modules/es-errors/range.js +4 -0
  307. package/node_modules/es-errors/ref.d.ts +3 -0
  308. package/node_modules/es-errors/ref.js +4 -0
  309. package/node_modules/es-errors/syntax.d.ts +3 -0
  310. package/node_modules/es-errors/syntax.js +4 -0
  311. package/node_modules/es-errors/test/index.js +19 -0
  312. package/node_modules/es-errors/tsconfig.json +49 -0
  313. package/node_modules/es-errors/type.d.ts +3 -0
  314. package/node_modules/es-errors/type.js +4 -0
  315. package/node_modules/es-errors/uri.d.ts +3 -0
  316. package/node_modules/es-errors/uri.js +4 -0
  317. package/node_modules/es-object-atoms/.eslintrc +16 -0
  318. package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  319. package/node_modules/es-object-atoms/CHANGELOG.md +44 -0
  320. package/node_modules/es-object-atoms/LICENSE +21 -0
  321. package/node_modules/es-object-atoms/README.md +63 -0
  322. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  323. package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  324. package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  325. package/node_modules/es-object-atoms/ToObject.js +10 -0
  326. package/node_modules/es-object-atoms/index.d.ts +3 -0
  327. package/node_modules/es-object-atoms/index.js +4 -0
  328. package/node_modules/es-object-atoms/isObject.d.ts +3 -0
  329. package/node_modules/es-object-atoms/isObject.js +6 -0
  330. package/node_modules/es-object-atoms/package.json +79 -0
  331. package/node_modules/es-object-atoms/test/index.js +38 -0
  332. package/node_modules/es-object-atoms/tsconfig.json +7 -0
  333. package/node_modules/es-set-tostringtag/.eslintrc +13 -0
  334. package/node_modules/es-set-tostringtag/.nycrc +9 -0
  335. package/node_modules/es-set-tostringtag/CHANGELOG.md +67 -0
  336. package/node_modules/es-set-tostringtag/LICENSE +21 -0
  337. package/node_modules/es-set-tostringtag/README.md +53 -0
  338. package/node_modules/es-set-tostringtag/index.d.ts +10 -0
  339. package/node_modules/es-set-tostringtag/index.js +35 -0
  340. package/node_modules/es-set-tostringtag/package.json +78 -0
  341. package/node_modules/es-set-tostringtag/test/index.js +85 -0
  342. package/node_modules/es-set-tostringtag/tsconfig.json +9 -0
  343. package/node_modules/file-uri-to-path/.npmignore +1 -0
  344. package/node_modules/file-uri-to-path/.travis.yml +30 -0
  345. package/node_modules/file-uri-to-path/History.md +21 -0
  346. package/node_modules/file-uri-to-path/LICENSE +20 -0
  347. package/node_modules/file-uri-to-path/README.md +74 -0
  348. package/node_modules/file-uri-to-path/index.d.ts +2 -0
  349. package/node_modules/file-uri-to-path/index.js +66 -0
  350. package/node_modules/file-uri-to-path/package.json +32 -0
  351. package/node_modules/file-uri-to-path/test/test.js +24 -0
  352. package/node_modules/file-uri-to-path/test/tests.json +13 -0
  353. package/node_modules/follow-redirects/LICENSE +18 -0
  354. package/node_modules/follow-redirects/README.md +157 -0
  355. package/node_modules/follow-redirects/debug.js +15 -0
  356. package/node_modules/follow-redirects/http.js +1 -0
  357. package/node_modules/follow-redirects/https.js +1 -0
  358. package/node_modules/follow-redirects/index.js +709 -0
  359. package/node_modules/follow-redirects/package.json +58 -0
  360. package/node_modules/for-each/.editorconfig +20 -0
  361. package/node_modules/for-each/.eslintrc +30 -0
  362. package/node_modules/for-each/.github/FUNDING.yml +12 -0
  363. package/node_modules/for-each/.github/SECURITY.md +3 -0
  364. package/node_modules/for-each/.nycrc +8 -0
  365. package/node_modules/for-each/CHANGELOG.md +107 -0
  366. package/node_modules/for-each/LICENSE +22 -0
  367. package/node_modules/for-each/README.md +39 -0
  368. package/node_modules/for-each/index.d.ts +35 -0
  369. package/node_modules/for-each/index.js +69 -0
  370. package/node_modules/for-each/package.json +76 -0
  371. package/node_modules/for-each/test/test.js +224 -0
  372. package/node_modules/for-each/tsconfig.json +8 -0
  373. package/node_modules/form-data/CHANGELOG.md +686 -0
  374. package/node_modules/form-data/License +19 -0
  375. package/node_modules/form-data/README.md +355 -0
  376. package/node_modules/form-data/index.d.ts +62 -0
  377. package/node_modules/form-data/lib/browser.js +4 -0
  378. package/node_modules/form-data/lib/form_data.js +506 -0
  379. package/node_modules/form-data/lib/populate.js +10 -0
  380. package/node_modules/form-data/package.json +82 -0
  381. package/node_modules/fs-constants/LICENSE +21 -0
  382. package/node_modules/fs-constants/README.md +26 -0
  383. package/node_modules/fs-constants/browser.js +1 -0
  384. package/node_modules/fs-constants/index.js +1 -0
  385. package/node_modules/fs-constants/package.json +19 -0
  386. package/node_modules/fs-extra/LICENSE +15 -0
  387. package/node_modules/fs-extra/README.md +294 -0
  388. package/node_modules/fs-extra/lib/copy/copy-sync.js +176 -0
  389. package/node_modules/fs-extra/lib/copy/copy.js +180 -0
  390. package/node_modules/fs-extra/lib/copy/index.js +7 -0
  391. package/node_modules/fs-extra/lib/empty/index.js +39 -0
  392. package/node_modules/fs-extra/lib/ensure/file.js +66 -0
  393. package/node_modules/fs-extra/lib/ensure/index.js +23 -0
  394. package/node_modules/fs-extra/lib/ensure/link.js +64 -0
  395. package/node_modules/fs-extra/lib/ensure/symlink-paths.js +101 -0
  396. package/node_modules/fs-extra/lib/ensure/symlink-type.js +34 -0
  397. package/node_modules/fs-extra/lib/ensure/symlink.js +108 -0
  398. package/node_modules/fs-extra/lib/esm.mjs +68 -0
  399. package/node_modules/fs-extra/lib/fs/index.js +146 -0
  400. package/node_modules/fs-extra/lib/index.js +16 -0
  401. package/node_modules/fs-extra/lib/json/index.js +16 -0
  402. package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  403. package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  404. package/node_modules/fs-extra/lib/json/output-json.js +12 -0
  405. package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  406. package/node_modules/fs-extra/lib/mkdirs/make-dir.js +27 -0
  407. package/node_modules/fs-extra/lib/mkdirs/utils.js +21 -0
  408. package/node_modules/fs-extra/lib/move/index.js +7 -0
  409. package/node_modules/fs-extra/lib/move/move-sync.js +55 -0
  410. package/node_modules/fs-extra/lib/move/move.js +59 -0
  411. package/node_modules/fs-extra/lib/output-file/index.js +31 -0
  412. package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  413. package/node_modules/fs-extra/lib/remove/index.js +17 -0
  414. package/node_modules/fs-extra/lib/util/async.js +29 -0
  415. package/node_modules/fs-extra/lib/util/stat.js +165 -0
  416. package/node_modules/fs-extra/lib/util/utimes.js +53 -0
  417. package/node_modules/fs-extra/package.json +71 -0
  418. package/node_modules/function-bind/.eslintrc +21 -0
  419. package/node_modules/function-bind/.github/FUNDING.yml +12 -0
  420. package/node_modules/function-bind/.github/SECURITY.md +3 -0
  421. package/node_modules/function-bind/.nycrc +13 -0
  422. package/node_modules/function-bind/CHANGELOG.md +136 -0
  423. package/node_modules/function-bind/LICENSE +20 -0
  424. package/node_modules/function-bind/README.md +46 -0
  425. package/node_modules/function-bind/implementation.js +84 -0
  426. package/node_modules/function-bind/index.js +5 -0
  427. package/node_modules/function-bind/package.json +87 -0
  428. package/node_modules/function-bind/test/.eslintrc +9 -0
  429. package/node_modules/function-bind/test/index.js +252 -0
  430. package/node_modules/get-intrinsic/.eslintrc +42 -0
  431. package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  432. package/node_modules/get-intrinsic/.nycrc +9 -0
  433. package/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  434. package/node_modules/get-intrinsic/LICENSE +21 -0
  435. package/node_modules/get-intrinsic/README.md +71 -0
  436. package/node_modules/get-intrinsic/index.js +378 -0
  437. package/node_modules/get-intrinsic/package.json +97 -0
  438. package/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  439. package/node_modules/get-proto/.eslintrc +10 -0
  440. package/node_modules/get-proto/.github/FUNDING.yml +12 -0
  441. package/node_modules/get-proto/.nycrc +9 -0
  442. package/node_modules/get-proto/CHANGELOG.md +21 -0
  443. package/node_modules/get-proto/LICENSE +21 -0
  444. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  445. package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  446. package/node_modules/get-proto/README.md +50 -0
  447. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  448. package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  449. package/node_modules/get-proto/index.d.ts +5 -0
  450. package/node_modules/get-proto/index.js +27 -0
  451. package/node_modules/get-proto/package.json +81 -0
  452. package/node_modules/get-proto/test/index.js +68 -0
  453. package/node_modules/get-proto/tsconfig.json +9 -0
  454. package/node_modules/gopd/.eslintrc +16 -0
  455. package/node_modules/gopd/.github/FUNDING.yml +12 -0
  456. package/node_modules/gopd/CHANGELOG.md +45 -0
  457. package/node_modules/gopd/LICENSE +21 -0
  458. package/node_modules/gopd/README.md +40 -0
  459. package/node_modules/gopd/gOPD.d.ts +1 -0
  460. package/node_modules/gopd/gOPD.js +4 -0
  461. package/node_modules/gopd/index.d.ts +5 -0
  462. package/node_modules/gopd/index.js +15 -0
  463. package/node_modules/gopd/package.json +77 -0
  464. package/node_modules/gopd/test/index.js +36 -0
  465. package/node_modules/gopd/tsconfig.json +9 -0
  466. package/node_modules/graceful-fs/LICENSE +15 -0
  467. package/node_modules/graceful-fs/README.md +143 -0
  468. package/node_modules/graceful-fs/clone.js +23 -0
  469. package/node_modules/graceful-fs/graceful-fs.js +448 -0
  470. package/node_modules/graceful-fs/legacy-streams.js +118 -0
  471. package/node_modules/graceful-fs/package.json +53 -0
  472. package/node_modules/graceful-fs/polyfills.js +355 -0
  473. package/node_modules/has-property-descriptors/.eslintrc +13 -0
  474. package/node_modules/has-property-descriptors/.github/FUNDING.yml +12 -0
  475. package/node_modules/has-property-descriptors/.nycrc +9 -0
  476. package/node_modules/has-property-descriptors/CHANGELOG.md +35 -0
  477. package/node_modules/has-property-descriptors/LICENSE +21 -0
  478. package/node_modules/has-property-descriptors/README.md +43 -0
  479. package/node_modules/has-property-descriptors/index.js +22 -0
  480. package/node_modules/has-property-descriptors/package.json +77 -0
  481. package/node_modules/has-property-descriptors/test/index.js +57 -0
  482. package/node_modules/has-symbols/.eslintrc +11 -0
  483. package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  484. package/node_modules/has-symbols/.nycrc +9 -0
  485. package/node_modules/has-symbols/CHANGELOG.md +91 -0
  486. package/node_modules/has-symbols/LICENSE +21 -0
  487. package/node_modules/has-symbols/README.md +46 -0
  488. package/node_modules/has-symbols/index.d.ts +3 -0
  489. package/node_modules/has-symbols/index.js +14 -0
  490. package/node_modules/has-symbols/package.json +111 -0
  491. package/node_modules/has-symbols/shams.d.ts +3 -0
  492. package/node_modules/has-symbols/shams.js +45 -0
  493. package/node_modules/has-symbols/test/index.js +22 -0
  494. package/node_modules/has-symbols/test/shams/core-js.js +29 -0
  495. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  496. package/node_modules/has-symbols/test/tests.js +58 -0
  497. package/node_modules/has-symbols/tsconfig.json +10 -0
  498. package/node_modules/has-tostringtag/.eslintrc +5 -0
  499. package/node_modules/has-tostringtag/.github/FUNDING.yml +12 -0
  500. package/node_modules/has-tostringtag/.nycrc +13 -0
  501. package/node_modules/has-tostringtag/CHANGELOG.md +42 -0
  502. package/node_modules/has-tostringtag/LICENSE +21 -0
  503. package/node_modules/has-tostringtag/README.md +46 -0
  504. package/node_modules/has-tostringtag/index.d.ts +3 -0
  505. package/node_modules/has-tostringtag/index.js +8 -0
  506. package/node_modules/has-tostringtag/package.json +108 -0
  507. package/node_modules/has-tostringtag/shams.d.ts +3 -0
  508. package/node_modules/has-tostringtag/shams.js +8 -0
  509. package/node_modules/has-tostringtag/test/index.js +21 -0
  510. package/node_modules/has-tostringtag/test/shams/core-js.js +31 -0
  511. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +30 -0
  512. package/node_modules/has-tostringtag/test/tests.js +15 -0
  513. package/node_modules/has-tostringtag/tsconfig.json +49 -0
  514. package/node_modules/hasown/.github/FUNDING.yml +12 -0
  515. package/node_modules/hasown/.nycrc +13 -0
  516. package/node_modules/hasown/CHANGELOG.md +58 -0
  517. package/node_modules/hasown/LICENSE +21 -0
  518. package/node_modules/hasown/README.md +40 -0
  519. package/node_modules/hasown/eslint.config.mjs +6 -0
  520. package/node_modules/hasown/index.d.ts +3 -0
  521. package/node_modules/hasown/index.js +8 -0
  522. package/node_modules/hasown/package.json +91 -0
  523. package/node_modules/hasown/tsconfig.json +6 -0
  524. package/node_modules/ibm_db/APIDocumentation.md +2883 -0
  525. package/node_modules/ibm_db/LICENSE +23 -0
  526. package/node_modules/ibm_db/README.md +735 -0
  527. package/node_modules/ibm_db/binding.gyp +99 -0
  528. package/node_modules/ibm_db/installer/clidriver/bin/db2cli +0 -0
  529. package/node_modules/ibm_db/installer/clidriver/bin/db2diag +0 -0
  530. package/node_modules/ibm_db/installer/clidriver/bin/db2drdat +0 -0
  531. package/node_modules/ibm_db/installer/clidriver/bin/db2dsdcfgfill +0 -0
  532. package/node_modules/ibm_db/installer/clidriver/bin/db2ldcfg +0 -0
  533. package/node_modules/ibm_db/installer/clidriver/bin/db2lddrg +0 -0
  534. package/node_modules/ibm_db/installer/clidriver/bin/db2level +0 -0
  535. package/node_modules/ibm_db/installer/clidriver/bin/db2support +0 -0
  536. package/node_modules/ibm_db/installer/clidriver/bin/db2trc +0 -0
  537. package/node_modules/ibm_db/installer/clidriver/bnd/db2ajgrt.bnd +0 -0
  538. package/node_modules/ibm_db/installer/clidriver/bnd/db2cli.bnd +0 -0
  539. package/node_modules/ibm_db/installer/clidriver/bnd/db2cli.lst +4 -0
  540. package/node_modules/ibm_db/installer/clidriver/bnd/db2clipk.bnd +0 -0
  541. package/node_modules/ibm_db/installer/clidriver/bnd/db2clist.bnd +0 -0
  542. package/node_modules/ibm_db/installer/clidriver/bnd/db2spcdb.bnd +0 -0
  543. package/node_modules/ibm_db/installer/clidriver/cfg/db2cli.ini.sample +16 -0
  544. package/node_modules/ibm_db/installer/clidriver/cfg/db2dsdriver.cfg.sample +50 -0
  545. package/node_modules/ibm_db/installer/clidriver/cfg/db2dsdriver.xsd +216 -0
  546. package/node_modules/ibm_db/installer/clidriver/cfgcache/conlic.bin +0 -0
  547. package/node_modules/ibm_db/installer/clidriver/conv/alt/04370923.cnv +0 -0
  548. package/node_modules/ibm_db/installer/clidriver/conv/alt/08500923.cnv +0 -0
  549. package/node_modules/ibm_db/installer/clidriver/conv/alt/08501252.cnv +0 -0
  550. package/node_modules/ibm_db/installer/clidriver/conv/alt/08600923.cnv +0 -0
  551. package/node_modules/ibm_db/installer/clidriver/conv/alt/08630923.cnv +0 -0
  552. package/node_modules/ibm_db/installer/clidriver/conv/alt/09230437.cnv +0 -0
  553. package/node_modules/ibm_db/installer/clidriver/conv/alt/09230850.cnv +0 -0
  554. package/node_modules/ibm_db/installer/clidriver/conv/alt/09230860.cnv +0 -0
  555. package/node_modules/ibm_db/installer/clidriver/conv/alt/09231043.cnv +0 -0
  556. package/node_modules/ibm_db/installer/clidriver/conv/alt/09231051.cnv +0 -0
  557. package/node_modules/ibm_db/installer/clidriver/conv/alt/09231114.cnv +0 -0
  558. package/node_modules/ibm_db/installer/clidriver/conv/alt/09231208.cnv +0 -0
  559. package/node_modules/ibm_db/installer/clidriver/conv/alt/09231252.cnv +0 -0
  560. package/node_modules/ibm_db/installer/clidriver/conv/alt/09231275.cnv +0 -0
  561. package/node_modules/ibm_db/installer/clidriver/conv/alt/09241252.cnv +0 -0
  562. package/node_modules/ibm_db/installer/clidriver/conv/alt/09370950.cnv +0 -0
  563. package/node_modules/ibm_db/installer/clidriver/conv/alt/10430923.cnv +0 -0
  564. package/node_modules/ibm_db/installer/clidriver/conv/alt/10510923.cnv +0 -0
  565. package/node_modules/ibm_db/installer/clidriver/conv/alt/11140923.cnv +0 -0
  566. package/node_modules/ibm_db/installer/clidriver/conv/alt/12080923.cnv +0 -0
  567. package/node_modules/ibm_db/installer/clidriver/conv/alt/12520850.cnv +0 -0
  568. package/node_modules/ibm_db/installer/clidriver/conv/alt/12520923.cnv +0 -0
  569. package/node_modules/ibm_db/installer/clidriver/conv/alt/12750923.cnv +0 -0
  570. package/node_modules/ibm_db/installer/clidriver/conv/alt/1388ucs2.cnv +0 -0
  571. package/node_modules/ibm_db/installer/clidriver/conv/alt/IBM00850.ucs +0 -0
  572. package/node_modules/ibm_db/installer/clidriver/conv/alt/IBM00923.ucs +0 -0
  573. package/node_modules/ibm_db/installer/clidriver/conv/alt/IBM01252.ucs +0 -0
  574. package/node_modules/ibm_db/installer/clidriver/conv/ms/0930ucs2.cnv +0 -0
  575. package/node_modules/ibm_db/installer/clidriver/conv/ms/0939ucs2.cnv +0 -0
  576. package/node_modules/ibm_db/installer/clidriver/conv/ms/0943ucs2.cnv +0 -0
  577. package/node_modules/ibm_db/installer/clidriver/conv/ms/0954ucs2.cnv +0 -0
  578. package/node_modules/ibm_db/installer/clidriver/conv/ms/1390ucs2.cnv +0 -0
  579. package/node_modules/ibm_db/installer/clidriver/conv/ms/1399ucs2.cnv +0 -0
  580. package/node_modules/ibm_db/installer/clidriver/conv/ms/5039ucs2.cnv +0 -0
  581. package/node_modules/ibm_db/installer/clidriver/conv/ms/ucs20943.cnv +0 -0
  582. package/node_modules/ibm_db/installer/clidriver/db2dump/db2diag.log +0 -0
  583. package/node_modules/ibm_db/installer/clidriver/include/sql.h +3172 -0
  584. package/node_modules/ibm_db/installer/clidriver/include/sqlca.h +119 -0
  585. package/node_modules/ibm_db/installer/clidriver/include/sqlcli.h +1042 -0
  586. package/node_modules/ibm_db/installer/clidriver/include/sqlcli1.h +1962 -0
  587. package/node_modules/ibm_db/installer/clidriver/include/sqlda.h +303 -0
  588. package/node_modules/ibm_db/installer/clidriver/include/sqlenv.h +7409 -0
  589. package/node_modules/ibm_db/installer/clidriver/include/sqlext.h +2189 -0
  590. package/node_modules/ibm_db/installer/clidriver/include/sqlstate.h +1500 -0
  591. package/node_modules/ibm_db/installer/clidriver/include/sqlsystm.h +119 -0
  592. package/node_modules/ibm_db/installer/clidriver/include/sqltypes.h +22 -0
  593. package/node_modules/ibm_db/installer/clidriver/include/sqlucode.h +22 -0
  594. package/node_modules/ibm_db/installer/clidriver/include/sqlunx.h +24 -0
  595. package/node_modules/ibm_db/installer/clidriver/lib/icc/C/icc/Standard_International_Program_License_Agreement.pdf +0 -0
  596. package/node_modules/ibm_db/installer/clidriver/lib/icc/C/icc/icclib/ICCSIG.txt +23 -0
  597. package/node_modules/ibm_db/installer/clidriver/lib/icc/C/icc/icclib/libicclib084.so +0 -0
  598. package/node_modules/ibm_db/installer/clidriver/lib/icc/N/icc/Standard_International_Program_License_Agreement.pdf +0 -0
  599. package/node_modules/ibm_db/installer/clidriver/lib/icc/N/icc/icclib/ICCSIG.txt +23 -0
  600. package/node_modules/ibm_db/installer/clidriver/lib/icc/N/icc/icclib/libicclib085.so +0 -0
  601. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8acmeidup_64.so +0 -0
  602. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8cms_64.so +0 -0
  603. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8dbfl_64.so +0 -0
  604. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8drld_64.so +0 -0
  605. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8iccs_64.so +0 -0
  606. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8kicc_64.so +0 -0
  607. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8km2_64.so +0 -0
  608. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8km_64.so +0 -0
  609. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8ldap_64.so +0 -0
  610. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8p11_64.so +0 -0
  611. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8ssl_64.so +0 -0
  612. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8sys_64.so +0 -0
  613. package/node_modules/ibm_db/installer/clidriver/lib/icc/libgsk8valn_64.so +0 -0
  614. package/node_modules/ibm_db/installer/clidriver/lib/libDB2xml4c.so.58.0 +0 -0
  615. package/node_modules/ibm_db/installer/clidriver/lib/libdb2.so.1 +4 -0
  616. package/node_modules/ibm_db/installer/clidriver/lib/libdb2clixml4c.so.1 +0 -0
  617. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_cs +743 -0
  618. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_de +747 -0
  619. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_el +743 -0
  620. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_en +743 -0
  621. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_es +743 -0
  622. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_fr +743 -0
  623. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_in +747 -0
  624. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_it +743 -0
  625. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_ja +743 -0
  626. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_ko +743 -0
  627. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_lt +743 -0
  628. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_pl +743 -0
  629. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_pt +743 -0
  630. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_ru +743 -0
  631. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_sl +743 -0
  632. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_tr +743 -0
  633. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_zh +743 -0
  634. package/node_modules/ibm_db/installer/clidriver/license/UNIX/odbc_LI_zh_TW +743 -0
  635. package/node_modules/ibm_db/installer/clidriver/license/dsdriver_fixlist.html +134 -0
  636. package/node_modules/ibm_db/installer/clidriver/license/odbc_REDIST.txt +216 -0
  637. package/node_modules/ibm_db/installer/clidriver/license/odbc_notices.txt +444 -0
  638. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2adm.mo +0 -0
  639. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2admh.mo +0 -0
  640. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2caem.mo +0 -0
  641. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2cklog.mo +0 -0
  642. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2cli.mo +0 -0
  643. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2clia1.lst +35 -0
  644. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2clias.lst +21 -0
  645. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2clih.mo +0 -0
  646. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2clit.mo +0 -0
  647. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2clp.mo +0 -0
  648. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2clp2.mo +0 -0
  649. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2diag.mo +0 -0
  650. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2fodc.mo +0 -0
  651. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2sql.mo +0 -0
  652. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2sqlh.mo +0 -0
  653. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2stt.mo +0 -0
  654. package/node_modules/ibm_db/installer/clidriver/msg/en_US.iso88591/db2supp.mo +0 -0
  655. package/node_modules/ibm_db/installer/clidriver/properties/version/ibm.com_IBM_Data_Server_Driver_for_ODBC_and_CLI-12.1.4.swidtag +6 -0
  656. package/node_modules/ibm_db/installer/clidriver/scripts/setenv.sh +25 -0
  657. package/node_modules/ibm_db/installer/clidriver/scripts/testconnection.sh +67 -0
  658. package/node_modules/ibm_db/installer/clidriver/security64/plugin/IBM/client/IBMIAMauth.so +0 -0
  659. package/node_modules/ibm_db/installer/clidriver/security64/plugin/IBM/client/IBMkrb5.so +0 -0
  660. package/node_modules/ibm_db/installer/driverInstall.js +984 -0
  661. package/node_modules/ibm_db/installer/ifx.sh +38 -0
  662. package/node_modules/ibm_db/installer/setenv.sh +23 -0
  663. package/node_modules/ibm_db/installer/testODBCConnection.bat +51 -0
  664. package/node_modules/ibm_db/installer/testODBCConnection.sh +61 -0
  665. package/node_modules/ibm_db/lib/climacros.js +431 -0
  666. package/node_modules/ibm_db/lib/odbc.js +4293 -0
  667. package/node_modules/ibm_db/lib/simple-queue.js +42 -0
  668. package/node_modules/ibm_db/package.json +70 -0
  669. package/node_modules/ibm_db/src/odbc.cpp +1495 -0
  670. package/node_modules/ibm_db/src/odbc.h +477 -0
  671. package/node_modules/ibm_db/src/odbc_connection.cpp +1762 -0
  672. package/node_modules/ibm_db/src/odbc_connection.h +228 -0
  673. package/node_modules/ibm_db/src/odbc_result.cpp +1547 -0
  674. package/node_modules/ibm_db/src/odbc_result.h +152 -0
  675. package/node_modules/ibm_db/src/odbc_statement.cpp +2047 -0
  676. package/node_modules/ibm_db/src/odbc_statement.h +257 -0
  677. package/node_modules/ibm_db/src/strptime.c +389 -0
  678. package/node_modules/ibm_db/src/strptime.h +47 -0
  679. package/node_modules/ibm_db/test/README +23 -0
  680. package/node_modules/ibm_db/test/bench-insert.js +62 -0
  681. package/node_modules/ibm_db/test/bench-insertBatch10.js +74 -0
  682. package/node_modules/ibm_db/test/bench-insertBatch100.js +75 -0
  683. package/node_modules/ibm_db/test/bench-insertBatch1000.js +75 -0
  684. package/node_modules/ibm_db/test/bench-insertBatch10000.js +75 -0
  685. package/node_modules/ibm_db/test/bench-prepare-bind-execute-closeSync.js +60 -0
  686. package/node_modules/ibm_db/test/bench-prepare-bind-executeNonQuery.js +53 -0
  687. package/node_modules/ibm_db/test/bench-prepare-bindSync-execute-closeSync.js +50 -0
  688. package/node_modules/ibm_db/test/bench-prepare-bindSync-executeNonQuery.js +48 -0
  689. package/node_modules/ibm_db/test/bench-prepare-execute-closeSync.js +51 -0
  690. package/node_modules/ibm_db/test/bench-prepare-executeNonQuery.js +47 -0
  691. package/node_modules/ibm_db/test/bench-prepare-not.js +43 -0
  692. package/node_modules/ibm_db/test/bench-query-fetch.js +59 -0
  693. package/node_modules/ibm_db/test/bench-query-fetchAll.js +49 -0
  694. package/node_modules/ibm_db/test/bench-query-fetchAllSync.js +43 -0
  695. package/node_modules/ibm_db/test/bench-query.js +40 -0
  696. package/node_modules/ibm_db/test/bench-querySync-fetchArray.js +28 -0
  697. package/node_modules/ibm_db/test/bench-querySync.js +29 -0
  698. package/node_modules/ibm_db/test/common.d.ts +10 -0
  699. package/node_modules/ibm_db/test/common.js +127 -0
  700. package/node_modules/ibm_db/test/config.json +7 -0
  701. package/node_modules/ibm_db/test/config.zos.json +4 -0
  702. package/node_modules/ibm_db/test/data/panda.jpg +0 -0
  703. package/node_modules/ibm_db/test/data/phool.jpg +0 -0
  704. package/node_modules/ibm_db/test/data/pushpa.jpg +0 -0
  705. package/node_modules/ibm_db/test/data/sample1.txt +10 -0
  706. package/node_modules/ibm_db/test/data/sample2.txt +1 -0
  707. package/node_modules/ibm_db/test/data/sample3.txt +1 -0
  708. package/node_modules/ibm_db/test/data/sampledoc.docx +0 -0
  709. package/node_modules/ibm_db/test/data/trc.fmt +30114 -0
  710. package/node_modules/ibm_db/test/nodeEE-leak-huge-query.js +152 -0
  711. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-multiple-connections.js +149 -0
  712. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-pool-connections.js +155 -0
  713. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query.js +134 -0
  714. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall-multiple-connections.js +175 -0
  715. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall.js +169 -0
  716. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query-multiple-connections.js +160 -0
  717. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query.js +149 -0
  718. package/node_modules/ibm_db/test/odbc-bench.c +123 -0
  719. package/node_modules/ibm_db/test/perfTest.js +53 -0
  720. package/node_modules/ibm_db/test/quick-example.sh +30 -0
  721. package/node_modules/ibm_db/test/quick-example.ts +80 -0
  722. package/node_modules/ibm_db/test/run-bench.js +96 -0
  723. package/node_modules/ibm_db/test/run-nodeEE.js +132 -0
  724. package/node_modules/ibm_db/test/run-tests.js +132 -0
  725. package/node_modules/ibm_db/test/sql-cli.js +28 -0
  726. package/node_modules/ibm_db/test/test-all-data-types.js +109 -0
  727. package/node_modules/ibm_db/test/test-array-insert.js +178 -0
  728. package/node_modules/ibm_db/test/test-async-await.js +105 -0
  729. package/node_modules/ibm_db/test/test-attributes.js +34 -0
  730. package/node_modules/ibm_db/test/test-bad-pool-connection-prepare-execute.js +57 -0
  731. package/node_modules/ibm_db/test/test-basic-test.js +138 -0
  732. package/node_modules/ibm_db/test/test-binary-array-insert.js +73 -0
  733. package/node_modules/ibm_db/test/test-blob-from-file.js +90 -0
  734. package/node_modules/ibm_db/test/test-blob-insert.js +144 -0
  735. package/node_modules/ibm_db/test/test-blob-stream-insert.js +321 -0
  736. package/node_modules/ibm_db/test/test-blob-to-file.js +370 -0
  737. package/node_modules/ibm_db/test/test-block-fetch.js +364 -0
  738. package/node_modules/ibm_db/test/test-blocking-issue210.js +123 -0
  739. package/node_modules/ibm_db/test/test-call-async.js +64 -0
  740. package/node_modules/ibm_db/test/test-call-stmt.js +53 -0
  741. package/node_modules/ibm_db/test/test-cancel.js +703 -0
  742. package/node_modules/ibm_db/test/test-chinese-char.js +59 -0
  743. package/node_modules/ibm_db/test/test-connection.js +306 -0
  744. package/node_modules/ibm_db/test/test-date.js +32 -0
  745. package/node_modules/ibm_db/test/test-dbclob.js +93 -0
  746. package/node_modules/ibm_db/test/test-decimals.js +135 -0
  747. package/node_modules/ibm_db/test/test-describe-metadata.js +148 -0
  748. package/node_modules/ibm_db/test/test-executeFile.js +167 -0
  749. package/node_modules/ibm_db/test/test-executeFileSync.js +86 -0
  750. package/node_modules/ibm_db/test/test-fetch-apis.js +146 -0
  751. package/node_modules/ibm_db/test/test-fetchN.js +130 -0
  752. package/node_modules/ibm_db/test/test-getinfo.js +197 -0
  753. package/node_modules/ibm_db/test/test-ibm-db-issue14.js +58 -0
  754. package/node_modules/ibm_db/test/test-ibm-db-issue17.js +54 -0
  755. package/node_modules/ibm_db/test/test-ibm-db-issue18.js +54 -0
  756. package/node_modules/ibm_db/test/test-issue-1059-fetchAll-undefined.js +67 -0
  757. package/node_modules/ibm_db/test/test-issue-1080-array-blob-insert.js +40 -0
  758. package/node_modules/ibm_db/test/test-issue-54.js +39 -0
  759. package/node_modules/ibm_db/test/test-issue-get-column-value-2.js +44 -0
  760. package/node_modules/ibm_db/test/test-issue211.js +80 -0
  761. package/node_modules/ibm_db/test/test-issue253.js +39 -0
  762. package/node_modules/ibm_db/test/test-max-pool-size.js +96 -0
  763. package/node_modules/ibm_db/test/test-memory-leaks-new-objects.js +33 -0
  764. package/node_modules/ibm_db/test/test-multi-open-query-close.js +75 -0
  765. package/node_modules/ibm_db/test/test-param-put-data.js +713 -0
  766. package/node_modules/ibm_db/test/test-pool-idle-connection.js +72 -0
  767. package/node_modules/ibm_db/test/test-pool-operations.js +325 -0
  768. package/node_modules/ibm_db/test/test-pool-stale-connections.js +111 -0
  769. package/node_modules/ibm_db/test/test-pool-uncommited.js +33 -0
  770. package/node_modules/ibm_db/test/test-prepare-execute.js +339 -0
  771. package/node_modules/ibm_db/test/test-prepareSync-multiple-execution.js +93 -0
  772. package/node_modules/ibm_db/test/test-primary-foreign-keys.js +246 -0
  773. package/node_modules/ibm_db/test/test-procedures.js +243 -0
  774. package/node_modules/ibm_db/test/test-promise-all-data-types.js +42 -0
  775. package/node_modules/ibm_db/test/test-query-operations.js +405 -0
  776. package/node_modules/ibm_db/test/test-quick-example.js +25 -0
  777. package/node_modules/ibm_db/test/test-row-array-insert.js +167 -0
  778. package/node_modules/ibm_db/test/test-sp-array.js +54 -0
  779. package/node_modules/ibm_db/test/test-sp-dbc-6000.js +88 -0
  780. package/node_modules/ibm_db/test/test-sp-memleak.js +136 -0
  781. package/node_modules/ibm_db/test/test-sp-resultset-execute.js +269 -0
  782. package/node_modules/ibm_db/test/test-sp-resultset.js +228 -0
  783. package/node_modules/ibm_db/test/test-transactions.js +261 -0
  784. package/node_modules/ibm_db/test/test-typescript.js +48 -0
  785. package/node_modules/ibm_db/test/test-xml-datatype.js +70 -0
  786. package/node_modules/ibm_db/test/testWebApp.js +56 -0
  787. package/node_modules/ibm_db/test/trace +51 -0
  788. package/node_modules/ibm_db/test/typescript-apis-test.js +978 -0
  789. package/node_modules/ibm_db/test/webapp.html +17 -0
  790. package/node_modules/ibm_db/test/webapp.js +79 -0
  791. package/node_modules/ibm_db/typescript/README.md +29 -0
  792. package/node_modules/ibm_db/typescript/dist/ConnStr.d.ts +8 -0
  793. package/node_modules/ibm_db/typescript/dist/DB2Error.d.ts +5 -0
  794. package/node_modules/ibm_db/typescript/dist/Database.d.ts +142 -0
  795. package/node_modules/ibm_db/typescript/dist/DescribeObject.d.ts +7 -0
  796. package/node_modules/ibm_db/typescript/dist/ODBC.d.ts +29 -0
  797. package/node_modules/ibm_db/typescript/dist/ODBCConnection.d.ts +39 -0
  798. package/node_modules/ibm_db/typescript/dist/ODBCResult.d.ts +53 -0
  799. package/node_modules/ibm_db/typescript/dist/ODBCStatement.d.ts +126 -0
  800. package/node_modules/ibm_db/typescript/dist/Options.d.ts +14 -0
  801. package/node_modules/ibm_db/typescript/dist/Pool.d.ts +30 -0
  802. package/node_modules/ibm_db/typescript/dist/PoolOptions.d.ts +7 -0
  803. package/node_modules/ibm_db/typescript/dist/attributes.d.ts +214 -0
  804. package/node_modules/ibm_db/typescript/dist/index.d.ts +24 -0
  805. package/node_modules/inherits/LICENSE +16 -0
  806. package/node_modules/inherits/README.md +42 -0
  807. package/node_modules/inherits/inherits.js +9 -0
  808. package/node_modules/inherits/inherits_browser.js +27 -0
  809. package/node_modules/inherits/package.json +29 -0
  810. package/node_modules/is-callable/.editorconfig +31 -0
  811. package/node_modules/is-callable/.eslintrc +10 -0
  812. package/node_modules/is-callable/.github/FUNDING.yml +12 -0
  813. package/node_modules/is-callable/.nycrc +9 -0
  814. package/node_modules/is-callable/CHANGELOG.md +158 -0
  815. package/node_modules/is-callable/LICENSE +22 -0
  816. package/node_modules/is-callable/README.md +83 -0
  817. package/node_modules/is-callable/index.js +101 -0
  818. package/node_modules/is-callable/package.json +106 -0
  819. package/node_modules/is-callable/test/index.js +244 -0
  820. package/node_modules/is-typed-array/.editorconfig +20 -0
  821. package/node_modules/is-typed-array/.eslintrc +13 -0
  822. package/node_modules/is-typed-array/.github/FUNDING.yml +12 -0
  823. package/node_modules/is-typed-array/.nycrc +9 -0
  824. package/node_modules/is-typed-array/CHANGELOG.md +166 -0
  825. package/node_modules/is-typed-array/LICENSE +22 -0
  826. package/node_modules/is-typed-array/README.md +70 -0
  827. package/node_modules/is-typed-array/index.d.ts +9 -0
  828. package/node_modules/is-typed-array/index.js +8 -0
  829. package/node_modules/is-typed-array/package.json +129 -0
  830. package/node_modules/is-typed-array/test/index.js +111 -0
  831. package/node_modules/is-typed-array/tsconfig.json +6 -0
  832. package/node_modules/isarray/LICENSE +21 -0
  833. package/node_modules/isarray/README.md +38 -0
  834. package/node_modules/isarray/index.js +5 -0
  835. package/node_modules/isarray/package.json +48 -0
  836. package/node_modules/jsonfile/LICENSE +15 -0
  837. package/node_modules/jsonfile/README.md +230 -0
  838. package/node_modules/jsonfile/index.js +88 -0
  839. package/node_modules/jsonfile/package.json +40 -0
  840. package/node_modules/jsonfile/utils.js +18 -0
  841. package/node_modules/lodash/LICENSE +47 -0
  842. package/node_modules/lodash/README.md +39 -0
  843. package/node_modules/lodash/_DataView.js +7 -0
  844. package/node_modules/lodash/_Hash.js +32 -0
  845. package/node_modules/lodash/_LazyWrapper.js +28 -0
  846. package/node_modules/lodash/_ListCache.js +32 -0
  847. package/node_modules/lodash/_LodashWrapper.js +22 -0
  848. package/node_modules/lodash/_Map.js +7 -0
  849. package/node_modules/lodash/_MapCache.js +32 -0
  850. package/node_modules/lodash/_Promise.js +7 -0
  851. package/node_modules/lodash/_Set.js +7 -0
  852. package/node_modules/lodash/_SetCache.js +27 -0
  853. package/node_modules/lodash/_Stack.js +27 -0
  854. package/node_modules/lodash/_Symbol.js +6 -0
  855. package/node_modules/lodash/_Uint8Array.js +6 -0
  856. package/node_modules/lodash/_WeakMap.js +7 -0
  857. package/node_modules/lodash/_apply.js +21 -0
  858. package/node_modules/lodash/_arrayAggregator.js +22 -0
  859. package/node_modules/lodash/_arrayEach.js +22 -0
  860. package/node_modules/lodash/_arrayEachRight.js +21 -0
  861. package/node_modules/lodash/_arrayEvery.js +23 -0
  862. package/node_modules/lodash/_arrayFilter.js +25 -0
  863. package/node_modules/lodash/_arrayIncludes.js +17 -0
  864. package/node_modules/lodash/_arrayIncludesWith.js +22 -0
  865. package/node_modules/lodash/_arrayLikeKeys.js +49 -0
  866. package/node_modules/lodash/_arrayMap.js +21 -0
  867. package/node_modules/lodash/_arrayPush.js +20 -0
  868. package/node_modules/lodash/_arrayReduce.js +26 -0
  869. package/node_modules/lodash/_arrayReduceRight.js +24 -0
  870. package/node_modules/lodash/_arraySample.js +15 -0
  871. package/node_modules/lodash/_arraySampleSize.js +17 -0
  872. package/node_modules/lodash/_arrayShuffle.js +15 -0
  873. package/node_modules/lodash/_arraySome.js +23 -0
  874. package/node_modules/lodash/_asciiSize.js +12 -0
  875. package/node_modules/lodash/_asciiToArray.js +12 -0
  876. package/node_modules/lodash/_asciiWords.js +15 -0
  877. package/node_modules/lodash/_assignMergeValue.js +20 -0
  878. package/node_modules/lodash/_assignValue.js +28 -0
  879. package/node_modules/lodash/_assocIndexOf.js +21 -0
  880. package/node_modules/lodash/_baseAggregator.js +21 -0
  881. package/node_modules/lodash/_baseAssign.js +17 -0
  882. package/node_modules/lodash/_baseAssignIn.js +17 -0
  883. package/node_modules/lodash/_baseAssignValue.js +25 -0
  884. package/node_modules/lodash/_baseAt.js +23 -0
  885. package/node_modules/lodash/_baseClamp.js +22 -0
  886. package/node_modules/lodash/_baseClone.js +166 -0
  887. package/node_modules/lodash/_baseConforms.js +18 -0
  888. package/node_modules/lodash/_baseConformsTo.js +27 -0
  889. package/node_modules/lodash/_baseCreate.js +30 -0
  890. package/node_modules/lodash/_baseDelay.js +21 -0
  891. package/node_modules/lodash/_baseDifference.js +67 -0
  892. package/node_modules/lodash/_baseEach.js +14 -0
  893. package/node_modules/lodash/_baseEachRight.js +14 -0
  894. package/node_modules/lodash/_baseEvery.js +21 -0
  895. package/node_modules/lodash/_baseExtremum.js +32 -0
  896. package/node_modules/lodash/_baseFill.js +32 -0
  897. package/node_modules/lodash/_baseFilter.js +21 -0
  898. package/node_modules/lodash/_baseFindIndex.js +24 -0
  899. package/node_modules/lodash/_baseFindKey.js +23 -0
  900. package/node_modules/lodash/_baseFlatten.js +38 -0
  901. package/node_modules/lodash/_baseFor.js +16 -0
  902. package/node_modules/lodash/_baseForOwn.js +16 -0
  903. package/node_modules/lodash/_baseForOwnRight.js +16 -0
  904. package/node_modules/lodash/_baseForRight.js +15 -0
  905. package/node_modules/lodash/_baseFunctions.js +19 -0
  906. package/node_modules/lodash/_baseGet.js +24 -0
  907. package/node_modules/lodash/_baseGetAllKeys.js +20 -0
  908. package/node_modules/lodash/_baseGetTag.js +28 -0
  909. package/node_modules/lodash/_baseGt.js +14 -0
  910. package/node_modules/lodash/_baseHas.js +19 -0
  911. package/node_modules/lodash/_baseHasIn.js +13 -0
  912. package/node_modules/lodash/_baseInRange.js +18 -0
  913. package/node_modules/lodash/_baseIndexOf.js +20 -0
  914. package/node_modules/lodash/_baseIndexOfWith.js +23 -0
  915. package/node_modules/lodash/_baseIntersection.js +74 -0
  916. package/node_modules/lodash/_baseInverter.js +21 -0
  917. package/node_modules/lodash/_baseInvoke.js +24 -0
  918. package/node_modules/lodash/_baseIsArguments.js +18 -0
  919. package/node_modules/lodash/_baseIsArrayBuffer.js +17 -0
  920. package/node_modules/lodash/_baseIsDate.js +18 -0
  921. package/node_modules/lodash/_baseIsEqual.js +28 -0
  922. package/node_modules/lodash/_baseIsEqualDeep.js +83 -0
  923. package/node_modules/lodash/_baseIsMap.js +18 -0
  924. package/node_modules/lodash/_baseIsMatch.js +62 -0
  925. package/node_modules/lodash/_baseIsNaN.js +12 -0
  926. package/node_modules/lodash/_baseIsNative.js +47 -0
  927. package/node_modules/lodash/_baseIsRegExp.js +18 -0
  928. package/node_modules/lodash/_baseIsSet.js +18 -0
  929. package/node_modules/lodash/_baseIsTypedArray.js +60 -0
  930. package/node_modules/lodash/_baseIteratee.js +31 -0
  931. package/node_modules/lodash/_baseKeys.js +30 -0
  932. package/node_modules/lodash/_baseKeysIn.js +33 -0
  933. package/node_modules/lodash/_baseLodash.js +10 -0
  934. package/node_modules/lodash/_baseLt.js +14 -0
  935. package/node_modules/lodash/_baseMap.js +22 -0
  936. package/node_modules/lodash/_baseMatches.js +22 -0
  937. package/node_modules/lodash/_baseMatchesProperty.js +33 -0
  938. package/node_modules/lodash/_baseMean.js +20 -0
  939. package/node_modules/lodash/_baseMerge.js +42 -0
  940. package/node_modules/lodash/_baseMergeDeep.js +94 -0
  941. package/node_modules/lodash/_baseNth.js +20 -0
  942. package/node_modules/lodash/_baseOrderBy.js +49 -0
  943. package/node_modules/lodash/_basePick.js +19 -0
  944. package/node_modules/lodash/_basePickBy.js +30 -0
  945. package/node_modules/lodash/_baseProperty.js +14 -0
  946. package/node_modules/lodash/_basePropertyDeep.js +16 -0
  947. package/node_modules/lodash/_basePropertyOf.js +14 -0
  948. package/node_modules/lodash/_basePullAll.js +51 -0
  949. package/node_modules/lodash/_basePullAt.js +37 -0
  950. package/node_modules/lodash/_baseRandom.js +18 -0
  951. package/node_modules/lodash/_baseRange.js +28 -0
  952. package/node_modules/lodash/_baseReduce.js +23 -0
  953. package/node_modules/lodash/_baseRepeat.js +35 -0
  954. package/node_modules/lodash/_baseRest.js +17 -0
  955. package/node_modules/lodash/_baseSample.js +15 -0
  956. package/node_modules/lodash/_baseSampleSize.js +18 -0
  957. package/node_modules/lodash/_baseSet.js +51 -0
  958. package/node_modules/lodash/_baseSetData.js +17 -0
  959. package/node_modules/lodash/_baseSetToString.js +22 -0
  960. package/node_modules/lodash/_baseShuffle.js +15 -0
  961. package/node_modules/lodash/_baseSlice.js +31 -0
  962. package/node_modules/lodash/_baseSome.js +22 -0
  963. package/node_modules/lodash/_baseSortBy.js +21 -0
  964. package/node_modules/lodash/_baseSortedIndex.js +42 -0
  965. package/node_modules/lodash/_baseSortedIndexBy.js +67 -0
  966. package/node_modules/lodash/_baseSortedUniq.js +30 -0
  967. package/node_modules/lodash/_baseSum.js +24 -0
  968. package/node_modules/lodash/_baseTimes.js +20 -0
  969. package/node_modules/lodash/_baseToNumber.js +24 -0
  970. package/node_modules/lodash/_baseToPairs.js +18 -0
  971. package/node_modules/lodash/_baseToString.js +37 -0
  972. package/node_modules/lodash/_baseTrim.js +19 -0
  973. package/node_modules/lodash/_baseUnary.js +14 -0
  974. package/node_modules/lodash/_baseUniq.js +72 -0
  975. package/node_modules/lodash/_baseUnset.js +52 -0
  976. package/node_modules/lodash/_baseUpdate.js +18 -0
  977. package/node_modules/lodash/_baseValues.js +19 -0
  978. package/node_modules/lodash/_baseWhile.js +26 -0
  979. package/node_modules/lodash/_baseWrapperValue.js +25 -0
  980. package/node_modules/lodash/_baseXor.js +36 -0
  981. package/node_modules/lodash/_baseZipObject.js +23 -0
  982. package/node_modules/lodash/_cacheHas.js +13 -0
  983. package/node_modules/lodash/_castArrayLikeObject.js +14 -0
  984. package/node_modules/lodash/_castFunction.js +14 -0
  985. package/node_modules/lodash/_castPath.js +21 -0
  986. package/node_modules/lodash/_castRest.js +14 -0
  987. package/node_modules/lodash/_castSlice.js +18 -0
  988. package/node_modules/lodash/_charsEndIndex.js +19 -0
  989. package/node_modules/lodash/_charsStartIndex.js +20 -0
  990. package/node_modules/lodash/_cloneArrayBuffer.js +16 -0
  991. package/node_modules/lodash/_cloneBuffer.js +35 -0
  992. package/node_modules/lodash/_cloneDataView.js +16 -0
  993. package/node_modules/lodash/_cloneRegExp.js +17 -0
  994. package/node_modules/lodash/_cloneSymbol.js +18 -0
  995. package/node_modules/lodash/_cloneTypedArray.js +16 -0
  996. package/node_modules/lodash/_compareAscending.js +41 -0
  997. package/node_modules/lodash/_compareMultiple.js +44 -0
  998. package/node_modules/lodash/_composeArgs.js +39 -0
  999. package/node_modules/lodash/_composeArgsRight.js +41 -0
  1000. package/node_modules/lodash/_copyArray.js +20 -0
  1001. package/node_modules/lodash/_copyObject.js +40 -0
  1002. package/node_modules/lodash/_copySymbols.js +16 -0
  1003. package/node_modules/lodash/_copySymbolsIn.js +16 -0
  1004. package/node_modules/lodash/_coreJsData.js +6 -0
  1005. package/node_modules/lodash/_countHolders.js +21 -0
  1006. package/node_modules/lodash/_createAggregator.js +23 -0
  1007. package/node_modules/lodash/_createAssigner.js +37 -0
  1008. package/node_modules/lodash/_createBaseEach.js +32 -0
  1009. package/node_modules/lodash/_createBaseFor.js +25 -0
  1010. package/node_modules/lodash/_createBind.js +28 -0
  1011. package/node_modules/lodash/_createCaseFirst.js +33 -0
  1012. package/node_modules/lodash/_createCompounder.js +24 -0
  1013. package/node_modules/lodash/_createCtor.js +37 -0
  1014. package/node_modules/lodash/_createCurry.js +46 -0
  1015. package/node_modules/lodash/_createFind.js +25 -0
  1016. package/node_modules/lodash/_createFlow.js +78 -0
  1017. package/node_modules/lodash/_createHybrid.js +92 -0
  1018. package/node_modules/lodash/_createInverter.js +17 -0
  1019. package/node_modules/lodash/_createMathOperation.js +38 -0
  1020. package/node_modules/lodash/_createOver.js +27 -0
  1021. package/node_modules/lodash/_createPadding.js +33 -0
  1022. package/node_modules/lodash/_createPartial.js +43 -0
  1023. package/node_modules/lodash/_createRange.js +30 -0
  1024. package/node_modules/lodash/_createRecurry.js +56 -0
  1025. package/node_modules/lodash/_createRelationalOperation.js +20 -0
  1026. package/node_modules/lodash/_createRound.js +35 -0
  1027. package/node_modules/lodash/_createSet.js +19 -0
  1028. package/node_modules/lodash/_createToPairs.js +30 -0
  1029. package/node_modules/lodash/_createWrap.js +106 -0
  1030. package/node_modules/lodash/_customDefaultsAssignIn.js +29 -0
  1031. package/node_modules/lodash/_customDefaultsMerge.js +28 -0
  1032. package/node_modules/lodash/_customOmitClone.js +16 -0
  1033. package/node_modules/lodash/_deburrLetter.js +71 -0
  1034. package/node_modules/lodash/_defineProperty.js +11 -0
  1035. package/node_modules/lodash/_equalArrays.js +84 -0
  1036. package/node_modules/lodash/_equalByTag.js +112 -0
  1037. package/node_modules/lodash/_equalObjects.js +90 -0
  1038. package/node_modules/lodash/_escapeHtmlChar.js +21 -0
  1039. package/node_modules/lodash/_escapeStringChar.js +22 -0
  1040. package/node_modules/lodash/_flatRest.js +16 -0
  1041. package/node_modules/lodash/_freeGlobal.js +4 -0
  1042. package/node_modules/lodash/_getAllKeys.js +16 -0
  1043. package/node_modules/lodash/_getAllKeysIn.js +17 -0
  1044. package/node_modules/lodash/_getData.js +15 -0
  1045. package/node_modules/lodash/_getFuncName.js +31 -0
  1046. package/node_modules/lodash/_getHolder.js +13 -0
  1047. package/node_modules/lodash/_getMapData.js +18 -0
  1048. package/node_modules/lodash/_getMatchData.js +24 -0
  1049. package/node_modules/lodash/_getNative.js +17 -0
  1050. package/node_modules/lodash/_getPrototype.js +6 -0
  1051. package/node_modules/lodash/_getRawTag.js +46 -0
  1052. package/node_modules/lodash/_getSymbols.js +30 -0
  1053. package/node_modules/lodash/_getSymbolsIn.js +25 -0
  1054. package/node_modules/lodash/_getTag.js +58 -0
  1055. package/node_modules/lodash/_getValue.js +13 -0
  1056. package/node_modules/lodash/_getView.js +33 -0
  1057. package/node_modules/lodash/_getWrapDetails.js +17 -0
  1058. package/node_modules/lodash/_hasPath.js +39 -0
  1059. package/node_modules/lodash/_hasUnicode.js +26 -0
  1060. package/node_modules/lodash/_hasUnicodeWord.js +15 -0
  1061. package/node_modules/lodash/_hashClear.js +15 -0
  1062. package/node_modules/lodash/_hashDelete.js +17 -0
  1063. package/node_modules/lodash/_hashGet.js +30 -0
  1064. package/node_modules/lodash/_hashHas.js +23 -0
  1065. package/node_modules/lodash/_hashSet.js +23 -0
  1066. package/node_modules/lodash/_initCloneArray.js +26 -0
  1067. package/node_modules/lodash/_initCloneByTag.js +77 -0
  1068. package/node_modules/lodash/_initCloneObject.js +18 -0
  1069. package/node_modules/lodash/_insertWrapDetails.js +23 -0
  1070. package/node_modules/lodash/_isFlattenable.js +20 -0
  1071. package/node_modules/lodash/_isIndex.js +25 -0
  1072. package/node_modules/lodash/_isIterateeCall.js +30 -0
  1073. package/node_modules/lodash/_isKey.js +29 -0
  1074. package/node_modules/lodash/_isKeyable.js +15 -0
  1075. package/node_modules/lodash/_isLaziable.js +28 -0
  1076. package/node_modules/lodash/_isMaskable.js +14 -0
  1077. package/node_modules/lodash/_isMasked.js +20 -0
  1078. package/node_modules/lodash/_isPrototype.js +18 -0
  1079. package/node_modules/lodash/_isStrictComparable.js +15 -0
  1080. package/node_modules/lodash/_iteratorToArray.js +18 -0
  1081. package/node_modules/lodash/_lazyClone.js +23 -0
  1082. package/node_modules/lodash/_lazyReverse.js +23 -0
  1083. package/node_modules/lodash/_lazyValue.js +69 -0
  1084. package/node_modules/lodash/_listCacheClear.js +13 -0
  1085. package/node_modules/lodash/_listCacheDelete.js +35 -0
  1086. package/node_modules/lodash/_listCacheGet.js +19 -0
  1087. package/node_modules/lodash/_listCacheHas.js +16 -0
  1088. package/node_modules/lodash/_listCacheSet.js +26 -0
  1089. package/node_modules/lodash/_mapCacheClear.js +21 -0
  1090. package/node_modules/lodash/_mapCacheDelete.js +18 -0
  1091. package/node_modules/lodash/_mapCacheGet.js +16 -0
  1092. package/node_modules/lodash/_mapCacheHas.js +16 -0
  1093. package/node_modules/lodash/_mapCacheSet.js +22 -0
  1094. package/node_modules/lodash/_mapToArray.js +18 -0
  1095. package/node_modules/lodash/_matchesStrictComparable.js +20 -0
  1096. package/node_modules/lodash/_memoizeCapped.js +26 -0
  1097. package/node_modules/lodash/_mergeData.js +90 -0
  1098. package/node_modules/lodash/_metaMap.js +6 -0
  1099. package/node_modules/lodash/_nativeCreate.js +6 -0
  1100. package/node_modules/lodash/_nativeKeys.js +6 -0
  1101. package/node_modules/lodash/_nativeKeysIn.js +20 -0
  1102. package/node_modules/lodash/_nodeUtil.js +30 -0
  1103. package/node_modules/lodash/_objectToString.js +22 -0
  1104. package/node_modules/lodash/_overArg.js +15 -0
  1105. package/node_modules/lodash/_overRest.js +36 -0
  1106. package/node_modules/lodash/_parent.js +16 -0
  1107. package/node_modules/lodash/_reEscape.js +4 -0
  1108. package/node_modules/lodash/_reEvaluate.js +4 -0
  1109. package/node_modules/lodash/_reInterpolate.js +4 -0
  1110. package/node_modules/lodash/_realNames.js +4 -0
  1111. package/node_modules/lodash/_reorder.js +29 -0
  1112. package/node_modules/lodash/_replaceHolders.js +29 -0
  1113. package/node_modules/lodash/_root.js +9 -0
  1114. package/node_modules/lodash/_safeGet.js +21 -0
  1115. package/node_modules/lodash/_setCacheAdd.js +19 -0
  1116. package/node_modules/lodash/_setCacheHas.js +14 -0
  1117. package/node_modules/lodash/_setData.js +20 -0
  1118. package/node_modules/lodash/_setToArray.js +18 -0
  1119. package/node_modules/lodash/_setToPairs.js +18 -0
  1120. package/node_modules/lodash/_setToString.js +14 -0
  1121. package/node_modules/lodash/_setWrapToString.js +21 -0
  1122. package/node_modules/lodash/_shortOut.js +37 -0
  1123. package/node_modules/lodash/_shuffleSelf.js +28 -0
  1124. package/node_modules/lodash/_stackClear.js +15 -0
  1125. package/node_modules/lodash/_stackDelete.js +18 -0
  1126. package/node_modules/lodash/_stackGet.js +14 -0
  1127. package/node_modules/lodash/_stackHas.js +14 -0
  1128. package/node_modules/lodash/_stackSet.js +34 -0
  1129. package/node_modules/lodash/_strictIndexOf.js +23 -0
  1130. package/node_modules/lodash/_strictLastIndexOf.js +21 -0
  1131. package/node_modules/lodash/_stringSize.js +18 -0
  1132. package/node_modules/lodash/_stringToArray.js +18 -0
  1133. package/node_modules/lodash/_stringToPath.js +27 -0
  1134. package/node_modules/lodash/_toKey.js +21 -0
  1135. package/node_modules/lodash/_toSource.js +26 -0
  1136. package/node_modules/lodash/_trimmedEndIndex.js +19 -0
  1137. package/node_modules/lodash/_unescapeHtmlChar.js +21 -0
  1138. package/node_modules/lodash/_unicodeSize.js +44 -0
  1139. package/node_modules/lodash/_unicodeToArray.js +40 -0
  1140. package/node_modules/lodash/_unicodeWords.js +69 -0
  1141. package/node_modules/lodash/_updateWrapDetails.js +46 -0
  1142. package/node_modules/lodash/_wrapperClone.js +23 -0
  1143. package/node_modules/lodash/add.js +22 -0
  1144. package/node_modules/lodash/after.js +42 -0
  1145. package/node_modules/lodash/array.js +67 -0
  1146. package/node_modules/lodash/ary.js +29 -0
  1147. package/node_modules/lodash/assign.js +58 -0
  1148. package/node_modules/lodash/assignIn.js +40 -0
  1149. package/node_modules/lodash/assignInWith.js +38 -0
  1150. package/node_modules/lodash/assignWith.js +37 -0
  1151. package/node_modules/lodash/at.js +23 -0
  1152. package/node_modules/lodash/attempt.js +35 -0
  1153. package/node_modules/lodash/before.js +40 -0
  1154. package/node_modules/lodash/bind.js +57 -0
  1155. package/node_modules/lodash/bindAll.js +41 -0
  1156. package/node_modules/lodash/bindKey.js +68 -0
  1157. package/node_modules/lodash/camelCase.js +29 -0
  1158. package/node_modules/lodash/capitalize.js +23 -0
  1159. package/node_modules/lodash/castArray.js +44 -0
  1160. package/node_modules/lodash/ceil.js +26 -0
  1161. package/node_modules/lodash/chain.js +38 -0
  1162. package/node_modules/lodash/chunk.js +50 -0
  1163. package/node_modules/lodash/clamp.js +39 -0
  1164. package/node_modules/lodash/clone.js +36 -0
  1165. package/node_modules/lodash/cloneDeep.js +29 -0
  1166. package/node_modules/lodash/cloneDeepWith.js +40 -0
  1167. package/node_modules/lodash/cloneWith.js +42 -0
  1168. package/node_modules/lodash/collection.js +30 -0
  1169. package/node_modules/lodash/commit.js +33 -0
  1170. package/node_modules/lodash/compact.js +31 -0
  1171. package/node_modules/lodash/concat.js +43 -0
  1172. package/node_modules/lodash/cond.js +60 -0
  1173. package/node_modules/lodash/conforms.js +35 -0
  1174. package/node_modules/lodash/conformsTo.js +32 -0
  1175. package/node_modules/lodash/constant.js +26 -0
  1176. package/node_modules/lodash/core.js +3877 -0
  1177. package/node_modules/lodash/core.min.js +30 -0
  1178. package/node_modules/lodash/countBy.js +40 -0
  1179. package/node_modules/lodash/create.js +43 -0
  1180. package/node_modules/lodash/curry.js +57 -0
  1181. package/node_modules/lodash/curryRight.js +54 -0
  1182. package/node_modules/lodash/date.js +3 -0
  1183. package/node_modules/lodash/debounce.js +191 -0
  1184. package/node_modules/lodash/deburr.js +45 -0
  1185. package/node_modules/lodash/defaultTo.js +25 -0
  1186. package/node_modules/lodash/defaults.js +64 -0
  1187. package/node_modules/lodash/defaultsDeep.js +30 -0
  1188. package/node_modules/lodash/defer.js +26 -0
  1189. package/node_modules/lodash/delay.js +28 -0
  1190. package/node_modules/lodash/difference.js +33 -0
  1191. package/node_modules/lodash/differenceBy.js +44 -0
  1192. package/node_modules/lodash/differenceWith.js +40 -0
  1193. package/node_modules/lodash/divide.js +22 -0
  1194. package/node_modules/lodash/drop.js +38 -0
  1195. package/node_modules/lodash/dropRight.js +39 -0
  1196. package/node_modules/lodash/dropRightWhile.js +45 -0
  1197. package/node_modules/lodash/dropWhile.js +45 -0
  1198. package/node_modules/lodash/each.js +1 -0
  1199. package/node_modules/lodash/eachRight.js +1 -0
  1200. package/node_modules/lodash/endsWith.js +43 -0
  1201. package/node_modules/lodash/entries.js +1 -0
  1202. package/node_modules/lodash/entriesIn.js +1 -0
  1203. package/node_modules/lodash/eq.js +37 -0
  1204. package/node_modules/lodash/escape.js +43 -0
  1205. package/node_modules/lodash/escapeRegExp.js +32 -0
  1206. package/node_modules/lodash/every.js +56 -0
  1207. package/node_modules/lodash/extend.js +1 -0
  1208. package/node_modules/lodash/extendWith.js +1 -0
  1209. package/node_modules/lodash/fill.js +45 -0
  1210. package/node_modules/lodash/filter.js +52 -0
  1211. package/node_modules/lodash/find.js +42 -0
  1212. package/node_modules/lodash/findIndex.js +55 -0
  1213. package/node_modules/lodash/findKey.js +44 -0
  1214. package/node_modules/lodash/findLast.js +25 -0
  1215. package/node_modules/lodash/findLastIndex.js +59 -0
  1216. package/node_modules/lodash/findLastKey.js +44 -0
  1217. package/node_modules/lodash/first.js +1 -0
  1218. package/node_modules/lodash/flatMap.js +29 -0
  1219. package/node_modules/lodash/flatMapDeep.js +31 -0
  1220. package/node_modules/lodash/flatMapDepth.js +31 -0
  1221. package/node_modules/lodash/flatten.js +22 -0
  1222. package/node_modules/lodash/flattenDeep.js +25 -0
  1223. package/node_modules/lodash/flattenDepth.js +33 -0
  1224. package/node_modules/lodash/flip.js +28 -0
  1225. package/node_modules/lodash/floor.js +26 -0
  1226. package/node_modules/lodash/flow.js +27 -0
  1227. package/node_modules/lodash/flowRight.js +26 -0
  1228. package/node_modules/lodash/forEach.js +41 -0
  1229. package/node_modules/lodash/forEachRight.js +31 -0
  1230. package/node_modules/lodash/forIn.js +39 -0
  1231. package/node_modules/lodash/forInRight.js +37 -0
  1232. package/node_modules/lodash/forOwn.js +36 -0
  1233. package/node_modules/lodash/forOwnRight.js +34 -0
  1234. package/node_modules/lodash/fp/F.js +1 -0
  1235. package/node_modules/lodash/fp/T.js +1 -0
  1236. package/node_modules/lodash/fp/__.js +1 -0
  1237. package/node_modules/lodash/fp/_baseConvert.js +569 -0
  1238. package/node_modules/lodash/fp/_convertBrowser.js +18 -0
  1239. package/node_modules/lodash/fp/_falseOptions.js +7 -0
  1240. package/node_modules/lodash/fp/_mapping.js +358 -0
  1241. package/node_modules/lodash/fp/_util.js +16 -0
  1242. package/node_modules/lodash/fp/add.js +5 -0
  1243. package/node_modules/lodash/fp/after.js +5 -0
  1244. package/node_modules/lodash/fp/all.js +1 -0
  1245. package/node_modules/lodash/fp/allPass.js +1 -0
  1246. package/node_modules/lodash/fp/always.js +1 -0
  1247. package/node_modules/lodash/fp/any.js +1 -0
  1248. package/node_modules/lodash/fp/anyPass.js +1 -0
  1249. package/node_modules/lodash/fp/apply.js +1 -0
  1250. package/node_modules/lodash/fp/array.js +2 -0
  1251. package/node_modules/lodash/fp/ary.js +5 -0
  1252. package/node_modules/lodash/fp/assign.js +5 -0
  1253. package/node_modules/lodash/fp/assignAll.js +5 -0
  1254. package/node_modules/lodash/fp/assignAllWith.js +5 -0
  1255. package/node_modules/lodash/fp/assignIn.js +5 -0
  1256. package/node_modules/lodash/fp/assignInAll.js +5 -0
  1257. package/node_modules/lodash/fp/assignInAllWith.js +5 -0
  1258. package/node_modules/lodash/fp/assignInWith.js +5 -0
  1259. package/node_modules/lodash/fp/assignWith.js +5 -0
  1260. package/node_modules/lodash/fp/assoc.js +1 -0
  1261. package/node_modules/lodash/fp/assocPath.js +1 -0
  1262. package/node_modules/lodash/fp/at.js +5 -0
  1263. package/node_modules/lodash/fp/attempt.js +5 -0
  1264. package/node_modules/lodash/fp/before.js +5 -0
  1265. package/node_modules/lodash/fp/bind.js +5 -0
  1266. package/node_modules/lodash/fp/bindAll.js +5 -0
  1267. package/node_modules/lodash/fp/bindKey.js +5 -0
  1268. package/node_modules/lodash/fp/camelCase.js +5 -0
  1269. package/node_modules/lodash/fp/capitalize.js +5 -0
  1270. package/node_modules/lodash/fp/castArray.js +5 -0
  1271. package/node_modules/lodash/fp/ceil.js +5 -0
  1272. package/node_modules/lodash/fp/chain.js +5 -0
  1273. package/node_modules/lodash/fp/chunk.js +5 -0
  1274. package/node_modules/lodash/fp/clamp.js +5 -0
  1275. package/node_modules/lodash/fp/clone.js +5 -0
  1276. package/node_modules/lodash/fp/cloneDeep.js +5 -0
  1277. package/node_modules/lodash/fp/cloneDeepWith.js +5 -0
  1278. package/node_modules/lodash/fp/cloneWith.js +5 -0
  1279. package/node_modules/lodash/fp/collection.js +2 -0
  1280. package/node_modules/lodash/fp/commit.js +5 -0
  1281. package/node_modules/lodash/fp/compact.js +5 -0
  1282. package/node_modules/lodash/fp/complement.js +1 -0
  1283. package/node_modules/lodash/fp/compose.js +1 -0
  1284. package/node_modules/lodash/fp/concat.js +5 -0
  1285. package/node_modules/lodash/fp/cond.js +5 -0
  1286. package/node_modules/lodash/fp/conforms.js +1 -0
  1287. package/node_modules/lodash/fp/conformsTo.js +5 -0
  1288. package/node_modules/lodash/fp/constant.js +5 -0
  1289. package/node_modules/lodash/fp/contains.js +1 -0
  1290. package/node_modules/lodash/fp/convert.js +18 -0
  1291. package/node_modules/lodash/fp/countBy.js +5 -0
  1292. package/node_modules/lodash/fp/create.js +5 -0
  1293. package/node_modules/lodash/fp/curry.js +5 -0
  1294. package/node_modules/lodash/fp/curryN.js +5 -0
  1295. package/node_modules/lodash/fp/curryRight.js +5 -0
  1296. package/node_modules/lodash/fp/curryRightN.js +5 -0
  1297. package/node_modules/lodash/fp/date.js +2 -0
  1298. package/node_modules/lodash/fp/debounce.js +5 -0
  1299. package/node_modules/lodash/fp/deburr.js +5 -0
  1300. package/node_modules/lodash/fp/defaultTo.js +5 -0
  1301. package/node_modules/lodash/fp/defaults.js +5 -0
  1302. package/node_modules/lodash/fp/defaultsAll.js +5 -0
  1303. package/node_modules/lodash/fp/defaultsDeep.js +5 -0
  1304. package/node_modules/lodash/fp/defaultsDeepAll.js +5 -0
  1305. package/node_modules/lodash/fp/defer.js +5 -0
  1306. package/node_modules/lodash/fp/delay.js +5 -0
  1307. package/node_modules/lodash/fp/difference.js +5 -0
  1308. package/node_modules/lodash/fp/differenceBy.js +5 -0
  1309. package/node_modules/lodash/fp/differenceWith.js +5 -0
  1310. package/node_modules/lodash/fp/dissoc.js +1 -0
  1311. package/node_modules/lodash/fp/dissocPath.js +1 -0
  1312. package/node_modules/lodash/fp/divide.js +5 -0
  1313. package/node_modules/lodash/fp/drop.js +5 -0
  1314. package/node_modules/lodash/fp/dropLast.js +1 -0
  1315. package/node_modules/lodash/fp/dropLastWhile.js +1 -0
  1316. package/node_modules/lodash/fp/dropRight.js +5 -0
  1317. package/node_modules/lodash/fp/dropRightWhile.js +5 -0
  1318. package/node_modules/lodash/fp/dropWhile.js +5 -0
  1319. package/node_modules/lodash/fp/each.js +1 -0
  1320. package/node_modules/lodash/fp/eachRight.js +1 -0
  1321. package/node_modules/lodash/fp/endsWith.js +5 -0
  1322. package/node_modules/lodash/fp/entries.js +1 -0
  1323. package/node_modules/lodash/fp/entriesIn.js +1 -0
  1324. package/node_modules/lodash/fp/eq.js +5 -0
  1325. package/node_modules/lodash/fp/equals.js +1 -0
  1326. package/node_modules/lodash/fp/escape.js +5 -0
  1327. package/node_modules/lodash/fp/escapeRegExp.js +5 -0
  1328. package/node_modules/lodash/fp/every.js +5 -0
  1329. package/node_modules/lodash/fp/extend.js +1 -0
  1330. package/node_modules/lodash/fp/extendAll.js +1 -0
  1331. package/node_modules/lodash/fp/extendAllWith.js +1 -0
  1332. package/node_modules/lodash/fp/extendWith.js +1 -0
  1333. package/node_modules/lodash/fp/fill.js +5 -0
  1334. package/node_modules/lodash/fp/filter.js +5 -0
  1335. package/node_modules/lodash/fp/find.js +5 -0
  1336. package/node_modules/lodash/fp/findFrom.js +5 -0
  1337. package/node_modules/lodash/fp/findIndex.js +5 -0
  1338. package/node_modules/lodash/fp/findIndexFrom.js +5 -0
  1339. package/node_modules/lodash/fp/findKey.js +5 -0
  1340. package/node_modules/lodash/fp/findLast.js +5 -0
  1341. package/node_modules/lodash/fp/findLastFrom.js +5 -0
  1342. package/node_modules/lodash/fp/findLastIndex.js +5 -0
  1343. package/node_modules/lodash/fp/findLastIndexFrom.js +5 -0
  1344. package/node_modules/lodash/fp/findLastKey.js +5 -0
  1345. package/node_modules/lodash/fp/first.js +1 -0
  1346. package/node_modules/lodash/fp/flatMap.js +5 -0
  1347. package/node_modules/lodash/fp/flatMapDeep.js +5 -0
  1348. package/node_modules/lodash/fp/flatMapDepth.js +5 -0
  1349. package/node_modules/lodash/fp/flatten.js +5 -0
  1350. package/node_modules/lodash/fp/flattenDeep.js +5 -0
  1351. package/node_modules/lodash/fp/flattenDepth.js +5 -0
  1352. package/node_modules/lodash/fp/flip.js +5 -0
  1353. package/node_modules/lodash/fp/floor.js +5 -0
  1354. package/node_modules/lodash/fp/flow.js +5 -0
  1355. package/node_modules/lodash/fp/flowRight.js +5 -0
  1356. package/node_modules/lodash/fp/forEach.js +5 -0
  1357. package/node_modules/lodash/fp/forEachRight.js +5 -0
  1358. package/node_modules/lodash/fp/forIn.js +5 -0
  1359. package/node_modules/lodash/fp/forInRight.js +5 -0
  1360. package/node_modules/lodash/fp/forOwn.js +5 -0
  1361. package/node_modules/lodash/fp/forOwnRight.js +5 -0
  1362. package/node_modules/lodash/fp/fromPairs.js +5 -0
  1363. package/node_modules/lodash/fp/function.js +2 -0
  1364. package/node_modules/lodash/fp/functions.js +5 -0
  1365. package/node_modules/lodash/fp/functionsIn.js +5 -0
  1366. package/node_modules/lodash/fp/get.js +5 -0
  1367. package/node_modules/lodash/fp/getOr.js +5 -0
  1368. package/node_modules/lodash/fp/groupBy.js +5 -0
  1369. package/node_modules/lodash/fp/gt.js +5 -0
  1370. package/node_modules/lodash/fp/gte.js +5 -0
  1371. package/node_modules/lodash/fp/has.js +5 -0
  1372. package/node_modules/lodash/fp/hasIn.js +5 -0
  1373. package/node_modules/lodash/fp/head.js +5 -0
  1374. package/node_modules/lodash/fp/identical.js +1 -0
  1375. package/node_modules/lodash/fp/identity.js +5 -0
  1376. package/node_modules/lodash/fp/inRange.js +5 -0
  1377. package/node_modules/lodash/fp/includes.js +5 -0
  1378. package/node_modules/lodash/fp/includesFrom.js +5 -0
  1379. package/node_modules/lodash/fp/indexBy.js +1 -0
  1380. package/node_modules/lodash/fp/indexOf.js +5 -0
  1381. package/node_modules/lodash/fp/indexOfFrom.js +5 -0
  1382. package/node_modules/lodash/fp/init.js +1 -0
  1383. package/node_modules/lodash/fp/initial.js +5 -0
  1384. package/node_modules/lodash/fp/intersection.js +5 -0
  1385. package/node_modules/lodash/fp/intersectionBy.js +5 -0
  1386. package/node_modules/lodash/fp/intersectionWith.js +5 -0
  1387. package/node_modules/lodash/fp/invert.js +5 -0
  1388. package/node_modules/lodash/fp/invertBy.js +5 -0
  1389. package/node_modules/lodash/fp/invertObj.js +1 -0
  1390. package/node_modules/lodash/fp/invoke.js +5 -0
  1391. package/node_modules/lodash/fp/invokeArgs.js +5 -0
  1392. package/node_modules/lodash/fp/invokeArgsMap.js +5 -0
  1393. package/node_modules/lodash/fp/invokeMap.js +5 -0
  1394. package/node_modules/lodash/fp/isArguments.js +5 -0
  1395. package/node_modules/lodash/fp/isArray.js +5 -0
  1396. package/node_modules/lodash/fp/isArrayBuffer.js +5 -0
  1397. package/node_modules/lodash/fp/isArrayLike.js +5 -0
  1398. package/node_modules/lodash/fp/isArrayLikeObject.js +5 -0
  1399. package/node_modules/lodash/fp/isBoolean.js +5 -0
  1400. package/node_modules/lodash/fp/isBuffer.js +5 -0
  1401. package/node_modules/lodash/fp/isDate.js +5 -0
  1402. package/node_modules/lodash/fp/isElement.js +5 -0
  1403. package/node_modules/lodash/fp/isEmpty.js +5 -0
  1404. package/node_modules/lodash/fp/isEqual.js +5 -0
  1405. package/node_modules/lodash/fp/isEqualWith.js +5 -0
  1406. package/node_modules/lodash/fp/isError.js +5 -0
  1407. package/node_modules/lodash/fp/isFinite.js +5 -0
  1408. package/node_modules/lodash/fp/isFunction.js +5 -0
  1409. package/node_modules/lodash/fp/isInteger.js +5 -0
  1410. package/node_modules/lodash/fp/isLength.js +5 -0
  1411. package/node_modules/lodash/fp/isMap.js +5 -0
  1412. package/node_modules/lodash/fp/isMatch.js +5 -0
  1413. package/node_modules/lodash/fp/isMatchWith.js +5 -0
  1414. package/node_modules/lodash/fp/isNaN.js +5 -0
  1415. package/node_modules/lodash/fp/isNative.js +5 -0
  1416. package/node_modules/lodash/fp/isNil.js +5 -0
  1417. package/node_modules/lodash/fp/isNull.js +5 -0
  1418. package/node_modules/lodash/fp/isNumber.js +5 -0
  1419. package/node_modules/lodash/fp/isObject.js +5 -0
  1420. package/node_modules/lodash/fp/isObjectLike.js +5 -0
  1421. package/node_modules/lodash/fp/isPlainObject.js +5 -0
  1422. package/node_modules/lodash/fp/isRegExp.js +5 -0
  1423. package/node_modules/lodash/fp/isSafeInteger.js +5 -0
  1424. package/node_modules/lodash/fp/isSet.js +5 -0
  1425. package/node_modules/lodash/fp/isString.js +5 -0
  1426. package/node_modules/lodash/fp/isSymbol.js +5 -0
  1427. package/node_modules/lodash/fp/isTypedArray.js +5 -0
  1428. package/node_modules/lodash/fp/isUndefined.js +5 -0
  1429. package/node_modules/lodash/fp/isWeakMap.js +5 -0
  1430. package/node_modules/lodash/fp/isWeakSet.js +5 -0
  1431. package/node_modules/lodash/fp/iteratee.js +5 -0
  1432. package/node_modules/lodash/fp/join.js +5 -0
  1433. package/node_modules/lodash/fp/juxt.js +1 -0
  1434. package/node_modules/lodash/fp/kebabCase.js +5 -0
  1435. package/node_modules/lodash/fp/keyBy.js +5 -0
  1436. package/node_modules/lodash/fp/keys.js +5 -0
  1437. package/node_modules/lodash/fp/keysIn.js +5 -0
  1438. package/node_modules/lodash/fp/lang.js +2 -0
  1439. package/node_modules/lodash/fp/last.js +5 -0
  1440. package/node_modules/lodash/fp/lastIndexOf.js +5 -0
  1441. package/node_modules/lodash/fp/lastIndexOfFrom.js +5 -0
  1442. package/node_modules/lodash/fp/lowerCase.js +5 -0
  1443. package/node_modules/lodash/fp/lowerFirst.js +5 -0
  1444. package/node_modules/lodash/fp/lt.js +5 -0
  1445. package/node_modules/lodash/fp/lte.js +5 -0
  1446. package/node_modules/lodash/fp/map.js +5 -0
  1447. package/node_modules/lodash/fp/mapKeys.js +5 -0
  1448. package/node_modules/lodash/fp/mapValues.js +5 -0
  1449. package/node_modules/lodash/fp/matches.js +1 -0
  1450. package/node_modules/lodash/fp/matchesProperty.js +5 -0
  1451. package/node_modules/lodash/fp/math.js +2 -0
  1452. package/node_modules/lodash/fp/max.js +5 -0
  1453. package/node_modules/lodash/fp/maxBy.js +5 -0
  1454. package/node_modules/lodash/fp/mean.js +5 -0
  1455. package/node_modules/lodash/fp/meanBy.js +5 -0
  1456. package/node_modules/lodash/fp/memoize.js +5 -0
  1457. package/node_modules/lodash/fp/merge.js +5 -0
  1458. package/node_modules/lodash/fp/mergeAll.js +5 -0
  1459. package/node_modules/lodash/fp/mergeAllWith.js +5 -0
  1460. package/node_modules/lodash/fp/mergeWith.js +5 -0
  1461. package/node_modules/lodash/fp/method.js +5 -0
  1462. package/node_modules/lodash/fp/methodOf.js +5 -0
  1463. package/node_modules/lodash/fp/min.js +5 -0
  1464. package/node_modules/lodash/fp/minBy.js +5 -0
  1465. package/node_modules/lodash/fp/mixin.js +5 -0
  1466. package/node_modules/lodash/fp/multiply.js +5 -0
  1467. package/node_modules/lodash/fp/nAry.js +1 -0
  1468. package/node_modules/lodash/fp/negate.js +5 -0
  1469. package/node_modules/lodash/fp/next.js +5 -0
  1470. package/node_modules/lodash/fp/noop.js +5 -0
  1471. package/node_modules/lodash/fp/now.js +5 -0
  1472. package/node_modules/lodash/fp/nth.js +5 -0
  1473. package/node_modules/lodash/fp/nthArg.js +5 -0
  1474. package/node_modules/lodash/fp/number.js +2 -0
  1475. package/node_modules/lodash/fp/object.js +2 -0
  1476. package/node_modules/lodash/fp/omit.js +5 -0
  1477. package/node_modules/lodash/fp/omitAll.js +1 -0
  1478. package/node_modules/lodash/fp/omitBy.js +5 -0
  1479. package/node_modules/lodash/fp/once.js +5 -0
  1480. package/node_modules/lodash/fp/orderBy.js +5 -0
  1481. package/node_modules/lodash/fp/over.js +5 -0
  1482. package/node_modules/lodash/fp/overArgs.js +5 -0
  1483. package/node_modules/lodash/fp/overEvery.js +5 -0
  1484. package/node_modules/lodash/fp/overSome.js +5 -0
  1485. package/node_modules/lodash/fp/pad.js +5 -0
  1486. package/node_modules/lodash/fp/padChars.js +5 -0
  1487. package/node_modules/lodash/fp/padCharsEnd.js +5 -0
  1488. package/node_modules/lodash/fp/padCharsStart.js +5 -0
  1489. package/node_modules/lodash/fp/padEnd.js +5 -0
  1490. package/node_modules/lodash/fp/padStart.js +5 -0
  1491. package/node_modules/lodash/fp/parseInt.js +5 -0
  1492. package/node_modules/lodash/fp/partial.js +5 -0
  1493. package/node_modules/lodash/fp/partialRight.js +5 -0
  1494. package/node_modules/lodash/fp/partition.js +5 -0
  1495. package/node_modules/lodash/fp/path.js +1 -0
  1496. package/node_modules/lodash/fp/pathEq.js +1 -0
  1497. package/node_modules/lodash/fp/pathOr.js +1 -0
  1498. package/node_modules/lodash/fp/paths.js +1 -0
  1499. package/node_modules/lodash/fp/pick.js +5 -0
  1500. package/node_modules/lodash/fp/pickAll.js +1 -0
  1501. package/node_modules/lodash/fp/pickBy.js +5 -0
  1502. package/node_modules/lodash/fp/pipe.js +1 -0
  1503. package/node_modules/lodash/fp/placeholder.js +6 -0
  1504. package/node_modules/lodash/fp/plant.js +5 -0
  1505. package/node_modules/lodash/fp/pluck.js +1 -0
  1506. package/node_modules/lodash/fp/prop.js +1 -0
  1507. package/node_modules/lodash/fp/propEq.js +1 -0
  1508. package/node_modules/lodash/fp/propOr.js +1 -0
  1509. package/node_modules/lodash/fp/property.js +1 -0
  1510. package/node_modules/lodash/fp/propertyOf.js +5 -0
  1511. package/node_modules/lodash/fp/props.js +1 -0
  1512. package/node_modules/lodash/fp/pull.js +5 -0
  1513. package/node_modules/lodash/fp/pullAll.js +5 -0
  1514. package/node_modules/lodash/fp/pullAllBy.js +5 -0
  1515. package/node_modules/lodash/fp/pullAllWith.js +5 -0
  1516. package/node_modules/lodash/fp/pullAt.js +5 -0
  1517. package/node_modules/lodash/fp/random.js +5 -0
  1518. package/node_modules/lodash/fp/range.js +5 -0
  1519. package/node_modules/lodash/fp/rangeRight.js +5 -0
  1520. package/node_modules/lodash/fp/rangeStep.js +5 -0
  1521. package/node_modules/lodash/fp/rangeStepRight.js +5 -0
  1522. package/node_modules/lodash/fp/rearg.js +5 -0
  1523. package/node_modules/lodash/fp/reduce.js +5 -0
  1524. package/node_modules/lodash/fp/reduceRight.js +5 -0
  1525. package/node_modules/lodash/fp/reject.js +5 -0
  1526. package/node_modules/lodash/fp/remove.js +5 -0
  1527. package/node_modules/lodash/fp/repeat.js +5 -0
  1528. package/node_modules/lodash/fp/replace.js +5 -0
  1529. package/node_modules/lodash/fp/rest.js +5 -0
  1530. package/node_modules/lodash/fp/restFrom.js +5 -0
  1531. package/node_modules/lodash/fp/result.js +5 -0
  1532. package/node_modules/lodash/fp/reverse.js +5 -0
  1533. package/node_modules/lodash/fp/round.js +5 -0
  1534. package/node_modules/lodash/fp/sample.js +5 -0
  1535. package/node_modules/lodash/fp/sampleSize.js +5 -0
  1536. package/node_modules/lodash/fp/seq.js +2 -0
  1537. package/node_modules/lodash/fp/set.js +5 -0
  1538. package/node_modules/lodash/fp/setWith.js +5 -0
  1539. package/node_modules/lodash/fp/shuffle.js +5 -0
  1540. package/node_modules/lodash/fp/size.js +5 -0
  1541. package/node_modules/lodash/fp/slice.js +5 -0
  1542. package/node_modules/lodash/fp/snakeCase.js +5 -0
  1543. package/node_modules/lodash/fp/some.js +5 -0
  1544. package/node_modules/lodash/fp/sortBy.js +5 -0
  1545. package/node_modules/lodash/fp/sortedIndex.js +5 -0
  1546. package/node_modules/lodash/fp/sortedIndexBy.js +5 -0
  1547. package/node_modules/lodash/fp/sortedIndexOf.js +5 -0
  1548. package/node_modules/lodash/fp/sortedLastIndex.js +5 -0
  1549. package/node_modules/lodash/fp/sortedLastIndexBy.js +5 -0
  1550. package/node_modules/lodash/fp/sortedLastIndexOf.js +5 -0
  1551. package/node_modules/lodash/fp/sortedUniq.js +5 -0
  1552. package/node_modules/lodash/fp/sortedUniqBy.js +5 -0
  1553. package/node_modules/lodash/fp/split.js +5 -0
  1554. package/node_modules/lodash/fp/spread.js +5 -0
  1555. package/node_modules/lodash/fp/spreadFrom.js +5 -0
  1556. package/node_modules/lodash/fp/startCase.js +5 -0
  1557. package/node_modules/lodash/fp/startsWith.js +5 -0
  1558. package/node_modules/lodash/fp/string.js +2 -0
  1559. package/node_modules/lodash/fp/stubArray.js +5 -0
  1560. package/node_modules/lodash/fp/stubFalse.js +5 -0
  1561. package/node_modules/lodash/fp/stubObject.js +5 -0
  1562. package/node_modules/lodash/fp/stubString.js +5 -0
  1563. package/node_modules/lodash/fp/stubTrue.js +5 -0
  1564. package/node_modules/lodash/fp/subtract.js +5 -0
  1565. package/node_modules/lodash/fp/sum.js +5 -0
  1566. package/node_modules/lodash/fp/sumBy.js +5 -0
  1567. package/node_modules/lodash/fp/symmetricDifference.js +1 -0
  1568. package/node_modules/lodash/fp/symmetricDifferenceBy.js +1 -0
  1569. package/node_modules/lodash/fp/symmetricDifferenceWith.js +1 -0
  1570. package/node_modules/lodash/fp/tail.js +5 -0
  1571. package/node_modules/lodash/fp/take.js +5 -0
  1572. package/node_modules/lodash/fp/takeLast.js +1 -0
  1573. package/node_modules/lodash/fp/takeLastWhile.js +1 -0
  1574. package/node_modules/lodash/fp/takeRight.js +5 -0
  1575. package/node_modules/lodash/fp/takeRightWhile.js +5 -0
  1576. package/node_modules/lodash/fp/takeWhile.js +5 -0
  1577. package/node_modules/lodash/fp/tap.js +5 -0
  1578. package/node_modules/lodash/fp/template.js +5 -0
  1579. package/node_modules/lodash/fp/templateSettings.js +5 -0
  1580. package/node_modules/lodash/fp/throttle.js +5 -0
  1581. package/node_modules/lodash/fp/thru.js +5 -0
  1582. package/node_modules/lodash/fp/times.js +5 -0
  1583. package/node_modules/lodash/fp/toArray.js +5 -0
  1584. package/node_modules/lodash/fp/toFinite.js +5 -0
  1585. package/node_modules/lodash/fp/toInteger.js +5 -0
  1586. package/node_modules/lodash/fp/toIterator.js +5 -0
  1587. package/node_modules/lodash/fp/toJSON.js +5 -0
  1588. package/node_modules/lodash/fp/toLength.js +5 -0
  1589. package/node_modules/lodash/fp/toLower.js +5 -0
  1590. package/node_modules/lodash/fp/toNumber.js +5 -0
  1591. package/node_modules/lodash/fp/toPairs.js +5 -0
  1592. package/node_modules/lodash/fp/toPairsIn.js +5 -0
  1593. package/node_modules/lodash/fp/toPath.js +5 -0
  1594. package/node_modules/lodash/fp/toPlainObject.js +5 -0
  1595. package/node_modules/lodash/fp/toSafeInteger.js +5 -0
  1596. package/node_modules/lodash/fp/toString.js +5 -0
  1597. package/node_modules/lodash/fp/toUpper.js +5 -0
  1598. package/node_modules/lodash/fp/transform.js +5 -0
  1599. package/node_modules/lodash/fp/trim.js +5 -0
  1600. package/node_modules/lodash/fp/trimChars.js +5 -0
  1601. package/node_modules/lodash/fp/trimCharsEnd.js +5 -0
  1602. package/node_modules/lodash/fp/trimCharsStart.js +5 -0
  1603. package/node_modules/lodash/fp/trimEnd.js +5 -0
  1604. package/node_modules/lodash/fp/trimStart.js +5 -0
  1605. package/node_modules/lodash/fp/truncate.js +5 -0
  1606. package/node_modules/lodash/fp/unapply.js +1 -0
  1607. package/node_modules/lodash/fp/unary.js +5 -0
  1608. package/node_modules/lodash/fp/unescape.js +5 -0
  1609. package/node_modules/lodash/fp/union.js +5 -0
  1610. package/node_modules/lodash/fp/unionBy.js +5 -0
  1611. package/node_modules/lodash/fp/unionWith.js +5 -0
  1612. package/node_modules/lodash/fp/uniq.js +5 -0
  1613. package/node_modules/lodash/fp/uniqBy.js +5 -0
  1614. package/node_modules/lodash/fp/uniqWith.js +5 -0
  1615. package/node_modules/lodash/fp/uniqueId.js +5 -0
  1616. package/node_modules/lodash/fp/unnest.js +1 -0
  1617. package/node_modules/lodash/fp/unset.js +5 -0
  1618. package/node_modules/lodash/fp/unzip.js +5 -0
  1619. package/node_modules/lodash/fp/unzipWith.js +5 -0
  1620. package/node_modules/lodash/fp/update.js +5 -0
  1621. package/node_modules/lodash/fp/updateWith.js +5 -0
  1622. package/node_modules/lodash/fp/upperCase.js +5 -0
  1623. package/node_modules/lodash/fp/upperFirst.js +5 -0
  1624. package/node_modules/lodash/fp/useWith.js +1 -0
  1625. package/node_modules/lodash/fp/util.js +2 -0
  1626. package/node_modules/lodash/fp/value.js +5 -0
  1627. package/node_modules/lodash/fp/valueOf.js +5 -0
  1628. package/node_modules/lodash/fp/values.js +5 -0
  1629. package/node_modules/lodash/fp/valuesIn.js +5 -0
  1630. package/node_modules/lodash/fp/where.js +1 -0
  1631. package/node_modules/lodash/fp/whereEq.js +1 -0
  1632. package/node_modules/lodash/fp/without.js +5 -0
  1633. package/node_modules/lodash/fp/words.js +5 -0
  1634. package/node_modules/lodash/fp/wrap.js +5 -0
  1635. package/node_modules/lodash/fp/wrapperAt.js +5 -0
  1636. package/node_modules/lodash/fp/wrapperChain.js +5 -0
  1637. package/node_modules/lodash/fp/wrapperLodash.js +5 -0
  1638. package/node_modules/lodash/fp/wrapperReverse.js +5 -0
  1639. package/node_modules/lodash/fp/wrapperValue.js +5 -0
  1640. package/node_modules/lodash/fp/xor.js +5 -0
  1641. package/node_modules/lodash/fp/xorBy.js +5 -0
  1642. package/node_modules/lodash/fp/xorWith.js +5 -0
  1643. package/node_modules/lodash/fp/zip.js +5 -0
  1644. package/node_modules/lodash/fp/zipAll.js +5 -0
  1645. package/node_modules/lodash/fp/zipObj.js +1 -0
  1646. package/node_modules/lodash/fp/zipObject.js +5 -0
  1647. package/node_modules/lodash/fp/zipObjectDeep.js +5 -0
  1648. package/node_modules/lodash/fp/zipWith.js +5 -0
  1649. package/node_modules/lodash/fp.js +2 -0
  1650. package/node_modules/lodash/fromPairs.js +30 -0
  1651. package/node_modules/lodash/function.js +25 -0
  1652. package/node_modules/lodash/functions.js +31 -0
  1653. package/node_modules/lodash/functionsIn.js +31 -0
  1654. package/node_modules/lodash/get.js +33 -0
  1655. package/node_modules/lodash/groupBy.js +41 -0
  1656. package/node_modules/lodash/gt.js +29 -0
  1657. package/node_modules/lodash/gte.js +30 -0
  1658. package/node_modules/lodash/has.js +35 -0
  1659. package/node_modules/lodash/hasIn.js +34 -0
  1660. package/node_modules/lodash/head.js +23 -0
  1661. package/node_modules/lodash/identity.js +21 -0
  1662. package/node_modules/lodash/inRange.js +55 -0
  1663. package/node_modules/lodash/includes.js +53 -0
  1664. package/node_modules/lodash/index.js +1 -0
  1665. package/node_modules/lodash/indexOf.js +42 -0
  1666. package/node_modules/lodash/initial.js +22 -0
  1667. package/node_modules/lodash/intersection.js +30 -0
  1668. package/node_modules/lodash/intersectionBy.js +45 -0
  1669. package/node_modules/lodash/intersectionWith.js +41 -0
  1670. package/node_modules/lodash/invert.js +42 -0
  1671. package/node_modules/lodash/invertBy.js +56 -0
  1672. package/node_modules/lodash/invoke.js +24 -0
  1673. package/node_modules/lodash/invokeMap.js +41 -0
  1674. package/node_modules/lodash/isArguments.js +36 -0
  1675. package/node_modules/lodash/isArray.js +26 -0
  1676. package/node_modules/lodash/isArrayBuffer.js +27 -0
  1677. package/node_modules/lodash/isArrayLike.js +33 -0
  1678. package/node_modules/lodash/isArrayLikeObject.js +33 -0
  1679. package/node_modules/lodash/isBoolean.js +29 -0
  1680. package/node_modules/lodash/isBuffer.js +38 -0
  1681. package/node_modules/lodash/isDate.js +27 -0
  1682. package/node_modules/lodash/isElement.js +25 -0
  1683. package/node_modules/lodash/isEmpty.js +77 -0
  1684. package/node_modules/lodash/isEqual.js +35 -0
  1685. package/node_modules/lodash/isEqualWith.js +41 -0
  1686. package/node_modules/lodash/isError.js +36 -0
  1687. package/node_modules/lodash/isFinite.js +36 -0
  1688. package/node_modules/lodash/isFunction.js +37 -0
  1689. package/node_modules/lodash/isInteger.js +33 -0
  1690. package/node_modules/lodash/isLength.js +35 -0
  1691. package/node_modules/lodash/isMap.js +27 -0
  1692. package/node_modules/lodash/isMatch.js +36 -0
  1693. package/node_modules/lodash/isMatchWith.js +41 -0
  1694. package/node_modules/lodash/isNaN.js +38 -0
  1695. package/node_modules/lodash/isNative.js +40 -0
  1696. package/node_modules/lodash/isNil.js +25 -0
  1697. package/node_modules/lodash/isNull.js +22 -0
  1698. package/node_modules/lodash/isNumber.js +38 -0
  1699. package/node_modules/lodash/isObject.js +31 -0
  1700. package/node_modules/lodash/isObjectLike.js +29 -0
  1701. package/node_modules/lodash/isPlainObject.js +62 -0
  1702. package/node_modules/lodash/isRegExp.js +27 -0
  1703. package/node_modules/lodash/isSafeInteger.js +37 -0
  1704. package/node_modules/lodash/isSet.js +27 -0
  1705. package/node_modules/lodash/isString.js +30 -0
  1706. package/node_modules/lodash/isSymbol.js +29 -0
  1707. package/node_modules/lodash/isTypedArray.js +27 -0
  1708. package/node_modules/lodash/isUndefined.js +22 -0
  1709. package/node_modules/lodash/isWeakMap.js +28 -0
  1710. package/node_modules/lodash/isWeakSet.js +28 -0
  1711. package/node_modules/lodash/iteratee.js +53 -0
  1712. package/node_modules/lodash/join.js +26 -0
  1713. package/node_modules/lodash/kebabCase.js +28 -0
  1714. package/node_modules/lodash/keyBy.js +36 -0
  1715. package/node_modules/lodash/keys.js +37 -0
  1716. package/node_modules/lodash/keysIn.js +32 -0
  1717. package/node_modules/lodash/lang.js +58 -0
  1718. package/node_modules/lodash/last.js +20 -0
  1719. package/node_modules/lodash/lastIndexOf.js +46 -0
  1720. package/node_modules/lodash/lodash.js +17259 -0
  1721. package/node_modules/lodash/lodash.min.js +136 -0
  1722. package/node_modules/lodash/lowerCase.js +27 -0
  1723. package/node_modules/lodash/lowerFirst.js +22 -0
  1724. package/node_modules/lodash/lt.js +29 -0
  1725. package/node_modules/lodash/lte.js +30 -0
  1726. package/node_modules/lodash/map.js +53 -0
  1727. package/node_modules/lodash/mapKeys.js +36 -0
  1728. package/node_modules/lodash/mapValues.js +43 -0
  1729. package/node_modules/lodash/matches.js +46 -0
  1730. package/node_modules/lodash/matchesProperty.js +44 -0
  1731. package/node_modules/lodash/math.js +17 -0
  1732. package/node_modules/lodash/max.js +29 -0
  1733. package/node_modules/lodash/maxBy.js +34 -0
  1734. package/node_modules/lodash/mean.js +22 -0
  1735. package/node_modules/lodash/meanBy.js +31 -0
  1736. package/node_modules/lodash/memoize.js +73 -0
  1737. package/node_modules/lodash/merge.js +39 -0
  1738. package/node_modules/lodash/mergeWith.js +39 -0
  1739. package/node_modules/lodash/method.js +34 -0
  1740. package/node_modules/lodash/methodOf.js +33 -0
  1741. package/node_modules/lodash/min.js +29 -0
  1742. package/node_modules/lodash/minBy.js +34 -0
  1743. package/node_modules/lodash/mixin.js +74 -0
  1744. package/node_modules/lodash/multiply.js +22 -0
  1745. package/node_modules/lodash/negate.js +40 -0
  1746. package/node_modules/lodash/next.js +35 -0
  1747. package/node_modules/lodash/noop.js +17 -0
  1748. package/node_modules/lodash/now.js +23 -0
  1749. package/node_modules/lodash/nth.js +29 -0
  1750. package/node_modules/lodash/nthArg.js +32 -0
  1751. package/node_modules/lodash/number.js +5 -0
  1752. package/node_modules/lodash/object.js +49 -0
  1753. package/node_modules/lodash/omit.js +57 -0
  1754. package/node_modules/lodash/omitBy.js +29 -0
  1755. package/node_modules/lodash/once.js +25 -0
  1756. package/node_modules/lodash/orderBy.js +47 -0
  1757. package/node_modules/lodash/over.js +24 -0
  1758. package/node_modules/lodash/overArgs.js +61 -0
  1759. package/node_modules/lodash/overEvery.js +34 -0
  1760. package/node_modules/lodash/overSome.js +37 -0
  1761. package/node_modules/lodash/package.json +19 -0
  1762. package/node_modules/lodash/pad.js +49 -0
  1763. package/node_modules/lodash/padEnd.js +39 -0
  1764. package/node_modules/lodash/padStart.js +39 -0
  1765. package/node_modules/lodash/parseInt.js +43 -0
  1766. package/node_modules/lodash/partial.js +50 -0
  1767. package/node_modules/lodash/partialRight.js +49 -0
  1768. package/node_modules/lodash/partition.js +43 -0
  1769. package/node_modules/lodash/pick.js +25 -0
  1770. package/node_modules/lodash/pickBy.js +37 -0
  1771. package/node_modules/lodash/plant.js +48 -0
  1772. package/node_modules/lodash/property.js +32 -0
  1773. package/node_modules/lodash/propertyOf.js +30 -0
  1774. package/node_modules/lodash/pull.js +29 -0
  1775. package/node_modules/lodash/pullAll.js +29 -0
  1776. package/node_modules/lodash/pullAllBy.js +33 -0
  1777. package/node_modules/lodash/pullAllWith.js +32 -0
  1778. package/node_modules/lodash/pullAt.js +43 -0
  1779. package/node_modules/lodash/random.js +91 -0
  1780. package/node_modules/lodash/range.js +46 -0
  1781. package/node_modules/lodash/rangeRight.js +41 -0
  1782. package/node_modules/lodash/rearg.js +33 -0
  1783. package/node_modules/lodash/reduce.js +51 -0
  1784. package/node_modules/lodash/reduceRight.js +36 -0
  1785. package/node_modules/lodash/reject.js +46 -0
  1786. package/node_modules/lodash/remove.js +53 -0
  1787. package/node_modules/lodash/repeat.js +37 -0
  1788. package/node_modules/lodash/replace.js +29 -0
  1789. package/node_modules/lodash/rest.js +40 -0
  1790. package/node_modules/lodash/result.js +56 -0
  1791. package/node_modules/lodash/reverse.js +34 -0
  1792. package/node_modules/lodash/round.js +26 -0
  1793. package/node_modules/lodash/sample.js +24 -0
  1794. package/node_modules/lodash/sampleSize.js +37 -0
  1795. package/node_modules/lodash/seq.js +16 -0
  1796. package/node_modules/lodash/set.js +35 -0
  1797. package/node_modules/lodash/setWith.js +32 -0
  1798. package/node_modules/lodash/shuffle.js +25 -0
  1799. package/node_modules/lodash/size.js +46 -0
  1800. package/node_modules/lodash/slice.js +37 -0
  1801. package/node_modules/lodash/snakeCase.js +28 -0
  1802. package/node_modules/lodash/some.js +51 -0
  1803. package/node_modules/lodash/sortBy.js +48 -0
  1804. package/node_modules/lodash/sortedIndex.js +24 -0
  1805. package/node_modules/lodash/sortedIndexBy.js +33 -0
  1806. package/node_modules/lodash/sortedIndexOf.js +31 -0
  1807. package/node_modules/lodash/sortedLastIndex.js +25 -0
  1808. package/node_modules/lodash/sortedLastIndexBy.js +33 -0
  1809. package/node_modules/lodash/sortedLastIndexOf.js +31 -0
  1810. package/node_modules/lodash/sortedUniq.js +24 -0
  1811. package/node_modules/lodash/sortedUniqBy.js +26 -0
  1812. package/node_modules/lodash/split.js +52 -0
  1813. package/node_modules/lodash/spread.js +63 -0
  1814. package/node_modules/lodash/startCase.js +29 -0
  1815. package/node_modules/lodash/startsWith.js +39 -0
  1816. package/node_modules/lodash/string.js +33 -0
  1817. package/node_modules/lodash/stubArray.js +23 -0
  1818. package/node_modules/lodash/stubFalse.js +18 -0
  1819. package/node_modules/lodash/stubObject.js +23 -0
  1820. package/node_modules/lodash/stubString.js +18 -0
  1821. package/node_modules/lodash/stubTrue.js +18 -0
  1822. package/node_modules/lodash/subtract.js +22 -0
  1823. package/node_modules/lodash/sum.js +24 -0
  1824. package/node_modules/lodash/sumBy.js +33 -0
  1825. package/node_modules/lodash/tail.js +22 -0
  1826. package/node_modules/lodash/take.js +37 -0
  1827. package/node_modules/lodash/takeRight.js +39 -0
  1828. package/node_modules/lodash/takeRightWhile.js +45 -0
  1829. package/node_modules/lodash/takeWhile.js +45 -0
  1830. package/node_modules/lodash/tap.js +29 -0
  1831. package/node_modules/lodash/template.js +284 -0
  1832. package/node_modules/lodash/templateSettings.js +71 -0
  1833. package/node_modules/lodash/throttle.js +69 -0
  1834. package/node_modules/lodash/thru.js +28 -0
  1835. package/node_modules/lodash/times.js +51 -0
  1836. package/node_modules/lodash/toArray.js +58 -0
  1837. package/node_modules/lodash/toFinite.js +42 -0
  1838. package/node_modules/lodash/toInteger.js +36 -0
  1839. package/node_modules/lodash/toIterator.js +23 -0
  1840. package/node_modules/lodash/toJSON.js +1 -0
  1841. package/node_modules/lodash/toLength.js +38 -0
  1842. package/node_modules/lodash/toLower.js +28 -0
  1843. package/node_modules/lodash/toNumber.js +64 -0
  1844. package/node_modules/lodash/toPairs.js +30 -0
  1845. package/node_modules/lodash/toPairsIn.js +30 -0
  1846. package/node_modules/lodash/toPath.js +33 -0
  1847. package/node_modules/lodash/toPlainObject.js +32 -0
  1848. package/node_modules/lodash/toSafeInteger.js +37 -0
  1849. package/node_modules/lodash/toString.js +28 -0
  1850. package/node_modules/lodash/toUpper.js +28 -0
  1851. package/node_modules/lodash/transform.js +65 -0
  1852. package/node_modules/lodash/trim.js +47 -0
  1853. package/node_modules/lodash/trimEnd.js +41 -0
  1854. package/node_modules/lodash/trimStart.js +43 -0
  1855. package/node_modules/lodash/truncate.js +111 -0
  1856. package/node_modules/lodash/unary.js +22 -0
  1857. package/node_modules/lodash/unescape.js +34 -0
  1858. package/node_modules/lodash/union.js +26 -0
  1859. package/node_modules/lodash/unionBy.js +39 -0
  1860. package/node_modules/lodash/unionWith.js +34 -0
  1861. package/node_modules/lodash/uniq.js +25 -0
  1862. package/node_modules/lodash/uniqBy.js +31 -0
  1863. package/node_modules/lodash/uniqWith.js +28 -0
  1864. package/node_modules/lodash/uniqueId.js +28 -0
  1865. package/node_modules/lodash/unset.js +34 -0
  1866. package/node_modules/lodash/unzip.js +45 -0
  1867. package/node_modules/lodash/unzipWith.js +39 -0
  1868. package/node_modules/lodash/update.js +35 -0
  1869. package/node_modules/lodash/updateWith.js +33 -0
  1870. package/node_modules/lodash/upperCase.js +27 -0
  1871. package/node_modules/lodash/upperFirst.js +22 -0
  1872. package/node_modules/lodash/util.js +34 -0
  1873. package/node_modules/lodash/value.js +1 -0
  1874. package/node_modules/lodash/valueOf.js +1 -0
  1875. package/node_modules/lodash/values.js +34 -0
  1876. package/node_modules/lodash/valuesIn.js +32 -0
  1877. package/node_modules/lodash/without.js +31 -0
  1878. package/node_modules/lodash/words.js +35 -0
  1879. package/node_modules/lodash/wrap.js +30 -0
  1880. package/node_modules/lodash/wrapperAt.js +48 -0
  1881. package/node_modules/lodash/wrapperChain.js +34 -0
  1882. package/node_modules/lodash/wrapperLodash.js +147 -0
  1883. package/node_modules/lodash/wrapperReverse.js +44 -0
  1884. package/node_modules/lodash/wrapperValue.js +21 -0
  1885. package/node_modules/lodash/xor.js +28 -0
  1886. package/node_modules/lodash/xorBy.js +39 -0
  1887. package/node_modules/lodash/xorWith.js +34 -0
  1888. package/node_modules/lodash/zip.js +22 -0
  1889. package/node_modules/lodash/zipObject.js +24 -0
  1890. package/node_modules/lodash/zipObjectDeep.js +23 -0
  1891. package/node_modules/lodash/zipWith.js +32 -0
  1892. package/node_modules/math-intrinsics/.eslintrc +16 -0
  1893. package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  1894. package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  1895. package/node_modules/math-intrinsics/LICENSE +21 -0
  1896. package/node_modules/math-intrinsics/README.md +50 -0
  1897. package/node_modules/math-intrinsics/abs.d.ts +1 -0
  1898. package/node_modules/math-intrinsics/abs.js +4 -0
  1899. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  1900. package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  1901. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  1902. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  1903. package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  1904. package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  1905. package/node_modules/math-intrinsics/floor.d.ts +1 -0
  1906. package/node_modules/math-intrinsics/floor.js +4 -0
  1907. package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  1908. package/node_modules/math-intrinsics/isFinite.js +12 -0
  1909. package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  1910. package/node_modules/math-intrinsics/isInteger.js +16 -0
  1911. package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  1912. package/node_modules/math-intrinsics/isNaN.js +6 -0
  1913. package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  1914. package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  1915. package/node_modules/math-intrinsics/max.d.ts +1 -0
  1916. package/node_modules/math-intrinsics/max.js +4 -0
  1917. package/node_modules/math-intrinsics/min.d.ts +1 -0
  1918. package/node_modules/math-intrinsics/min.js +4 -0
  1919. package/node_modules/math-intrinsics/mod.d.ts +3 -0
  1920. package/node_modules/math-intrinsics/mod.js +9 -0
  1921. package/node_modules/math-intrinsics/package.json +86 -0
  1922. package/node_modules/math-intrinsics/pow.d.ts +1 -0
  1923. package/node_modules/math-intrinsics/pow.js +4 -0
  1924. package/node_modules/math-intrinsics/round.d.ts +1 -0
  1925. package/node_modules/math-intrinsics/round.js +4 -0
  1926. package/node_modules/math-intrinsics/sign.d.ts +3 -0
  1927. package/node_modules/math-intrinsics/sign.js +11 -0
  1928. package/node_modules/math-intrinsics/test/index.js +192 -0
  1929. package/node_modules/math-intrinsics/tsconfig.json +3 -0
  1930. package/node_modules/mime-db/HISTORY.md +507 -0
  1931. package/node_modules/mime-db/LICENSE +23 -0
  1932. package/node_modules/mime-db/README.md +100 -0
  1933. package/node_modules/mime-db/db.json +8519 -0
  1934. package/node_modules/mime-db/index.js +12 -0
  1935. package/node_modules/mime-db/package.json +60 -0
  1936. package/node_modules/mime-types/HISTORY.md +397 -0
  1937. package/node_modules/mime-types/LICENSE +23 -0
  1938. package/node_modules/mime-types/README.md +113 -0
  1939. package/node_modules/mime-types/index.js +188 -0
  1940. package/node_modules/mime-types/package.json +44 -0
  1941. package/node_modules/minimist/.eslintrc +29 -0
  1942. package/node_modules/minimist/.github/FUNDING.yml +12 -0
  1943. package/node_modules/minimist/.nycrc +14 -0
  1944. package/node_modules/minimist/CHANGELOG.md +298 -0
  1945. package/node_modules/minimist/LICENSE +18 -0
  1946. package/node_modules/minimist/README.md +121 -0
  1947. package/node_modules/minimist/example/parse.js +4 -0
  1948. package/node_modules/minimist/index.js +263 -0
  1949. package/node_modules/minimist/package.json +75 -0
  1950. package/node_modules/minimist/test/all_bool.js +34 -0
  1951. package/node_modules/minimist/test/bool.js +177 -0
  1952. package/node_modules/minimist/test/dash.js +43 -0
  1953. package/node_modules/minimist/test/default_bool.js +37 -0
  1954. package/node_modules/minimist/test/dotted.js +24 -0
  1955. package/node_modules/minimist/test/kv_short.js +32 -0
  1956. package/node_modules/minimist/test/long.js +33 -0
  1957. package/node_modules/minimist/test/num.js +38 -0
  1958. package/node_modules/minimist/test/parse.js +209 -0
  1959. package/node_modules/minimist/test/parse_modified.js +11 -0
  1960. package/node_modules/minimist/test/proto.js +64 -0
  1961. package/node_modules/minimist/test/short.js +69 -0
  1962. package/node_modules/minimist/test/stop_early.js +17 -0
  1963. package/node_modules/minimist/test/unknown.js +104 -0
  1964. package/node_modules/minimist/test/whitespace.js +10 -0
  1965. package/node_modules/ms/index.js +162 -0
  1966. package/node_modules/ms/license.md +21 -0
  1967. package/node_modules/ms/package.json +38 -0
  1968. package/node_modules/ms/readme.md +59 -0
  1969. package/node_modules/node-addon-api/LICENSE.md +9 -0
  1970. package/node_modules/node-addon-api/README.md +319 -0
  1971. package/node_modules/node-addon-api/common.gypi +20 -0
  1972. package/node_modules/node-addon-api/except.gypi +25 -0
  1973. package/node_modules/node-addon-api/index.js +12 -0
  1974. package/node_modules/node-addon-api/napi-inl.deprecated.h +186 -0
  1975. package/node_modules/node-addon-api/napi-inl.h +6607 -0
  1976. package/node_modules/node-addon-api/napi.h +3201 -0
  1977. package/node_modules/node-addon-api/node_addon_api.gyp +32 -0
  1978. package/node_modules/node-addon-api/node_api.gyp +9 -0
  1979. package/node_modules/node-addon-api/noexcept.gypi +26 -0
  1980. package/node_modules/node-addon-api/nothing.c +0 -0
  1981. package/node_modules/node-addon-api/package-support.json +21 -0
  1982. package/node_modules/node-addon-api/package.json +480 -0
  1983. package/node_modules/node-addon-api/tools/README.md +73 -0
  1984. package/node_modules/node-addon-api/tools/check-napi.js +99 -0
  1985. package/node_modules/node-addon-api/tools/clang-format.js +71 -0
  1986. package/node_modules/node-addon-api/tools/conversion.js +301 -0
  1987. package/node_modules/node-addon-api/tools/eslint-format.js +79 -0
  1988. package/node_modules/once/LICENSE +15 -0
  1989. package/node_modules/once/README.md +79 -0
  1990. package/node_modules/once/once.js +42 -0
  1991. package/node_modules/once/package.json +33 -0
  1992. package/node_modules/possible-typed-array-names/.eslintrc +5 -0
  1993. package/node_modules/possible-typed-array-names/.github/FUNDING.yml +12 -0
  1994. package/node_modules/possible-typed-array-names/CHANGELOG.md +29 -0
  1995. package/node_modules/possible-typed-array-names/LICENSE +21 -0
  1996. package/node_modules/possible-typed-array-names/README.md +50 -0
  1997. package/node_modules/possible-typed-array-names/index.d.ts +16 -0
  1998. package/node_modules/possible-typed-array-names/index.js +17 -0
  1999. package/node_modules/possible-typed-array-names/package.json +84 -0
  2000. package/node_modules/possible-typed-array-names/test/index.js +19 -0
  2001. package/node_modules/possible-typed-array-names/tsconfig.json +9 -0
  2002. package/node_modules/process-nextick-args/index.js +45 -0
  2003. package/node_modules/process-nextick-args/license.md +19 -0
  2004. package/node_modules/process-nextick-args/package.json +25 -0
  2005. package/node_modules/process-nextick-args/readme.md +18 -0
  2006. package/node_modules/proxy-from-env/LICENSE +20 -0
  2007. package/node_modules/proxy-from-env/README.md +163 -0
  2008. package/node_modules/proxy-from-env/index.cjs +105 -0
  2009. package/node_modules/proxy-from-env/index.js +103 -0
  2010. package/node_modules/proxy-from-env/package.json +43 -0
  2011. package/node_modules/pump/.travis.yml +5 -0
  2012. package/node_modules/pump/LICENSE +21 -0
  2013. package/node_modules/pump/README.md +56 -0
  2014. package/node_modules/pump/index.js +80 -0
  2015. package/node_modules/pump/package.json +24 -0
  2016. package/node_modules/pump/test-browser.js +58 -0
  2017. package/node_modules/pump/test.js +46 -0
  2018. package/node_modules/safe-buffer/LICENSE +21 -0
  2019. package/node_modules/safe-buffer/README.md +584 -0
  2020. package/node_modules/safe-buffer/index.d.ts +187 -0
  2021. package/node_modules/safe-buffer/index.js +65 -0
  2022. package/node_modules/safe-buffer/package.json +51 -0
  2023. package/node_modules/set-function-length/.eslintrc +27 -0
  2024. package/node_modules/set-function-length/.github/FUNDING.yml +12 -0
  2025. package/node_modules/set-function-length/.nycrc +13 -0
  2026. package/node_modules/set-function-length/CHANGELOG.md +70 -0
  2027. package/node_modules/set-function-length/LICENSE +21 -0
  2028. package/node_modules/set-function-length/README.md +56 -0
  2029. package/node_modules/set-function-length/env.d.ts +9 -0
  2030. package/node_modules/set-function-length/env.js +25 -0
  2031. package/node_modules/set-function-length/index.d.ts +7 -0
  2032. package/node_modules/set-function-length/index.js +42 -0
  2033. package/node_modules/set-function-length/package.json +102 -0
  2034. package/node_modules/set-function-length/tsconfig.json +9 -0
  2035. package/node_modules/tar-fs/.travis.yml +3 -0
  2036. package/node_modules/tar-fs/LICENSE +21 -0
  2037. package/node_modules/tar-fs/README.md +163 -0
  2038. package/node_modules/tar-fs/index.js +356 -0
  2039. package/node_modules/tar-fs/node_modules/chownr/LICENSE +15 -0
  2040. package/node_modules/tar-fs/node_modules/chownr/README.md +3 -0
  2041. package/node_modules/tar-fs/node_modules/chownr/chownr.js +167 -0
  2042. package/node_modules/tar-fs/node_modules/chownr/package.json +29 -0
  2043. package/node_modules/tar-fs/node_modules/mkdirp/LICENSE +21 -0
  2044. package/node_modules/tar-fs/node_modules/mkdirp/bin/cmd.js +33 -0
  2045. package/node_modules/tar-fs/node_modules/mkdirp/bin/usage.txt +12 -0
  2046. package/node_modules/tar-fs/node_modules/mkdirp/index.js +102 -0
  2047. package/node_modules/tar-fs/node_modules/mkdirp/package.json +33 -0
  2048. package/node_modules/tar-fs/node_modules/mkdirp/readme.markdown +100 -0
  2049. package/node_modules/tar-fs/package.json +41 -0
  2050. package/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  2051. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  2052. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  2053. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  2054. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  2055. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  2056. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  2057. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  2058. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  2059. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  2060. package/node_modules/tar-fs/test/index.js +346 -0
  2061. package/node_modules/tar-stream/LICENSE +21 -0
  2062. package/node_modules/tar-stream/README.md +168 -0
  2063. package/node_modules/tar-stream/extract.js +258 -0
  2064. package/node_modules/tar-stream/headers.js +283 -0
  2065. package/node_modules/tar-stream/index.js +2 -0
  2066. package/node_modules/tar-stream/node_modules/bl/.jshintrc +59 -0
  2067. package/node_modules/tar-stream/node_modules/bl/.travis.yml +13 -0
  2068. package/node_modules/tar-stream/node_modules/bl/LICENSE.md +13 -0
  2069. package/node_modules/tar-stream/node_modules/bl/README.md +208 -0
  2070. package/node_modules/tar-stream/node_modules/bl/bl.js +290 -0
  2071. package/node_modules/tar-stream/node_modules/bl/package.json +35 -0
  2072. package/node_modules/tar-stream/node_modules/bl/test/test.js +718 -0
  2073. package/node_modules/tar-stream/node_modules/isarray/.npmignore +1 -0
  2074. package/node_modules/tar-stream/node_modules/isarray/.travis.yml +4 -0
  2075. package/node_modules/tar-stream/node_modules/isarray/Makefile +6 -0
  2076. package/node_modules/tar-stream/node_modules/isarray/README.md +60 -0
  2077. package/node_modules/tar-stream/node_modules/isarray/component.json +19 -0
  2078. package/node_modules/tar-stream/node_modules/isarray/index.js +5 -0
  2079. package/node_modules/tar-stream/node_modules/isarray/package.json +45 -0
  2080. package/node_modules/tar-stream/node_modules/isarray/test.js +20 -0
  2081. package/node_modules/tar-stream/node_modules/readable-stream/.travis.yml +34 -0
  2082. package/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  2083. package/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +136 -0
  2084. package/node_modules/tar-stream/node_modules/readable-stream/LICENSE +47 -0
  2085. package/node_modules/tar-stream/node_modules/readable-stream/README.md +58 -0
  2086. package/node_modules/tar-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  2087. package/node_modules/tar-stream/node_modules/readable-stream/duplex-browser.js +1 -0
  2088. package/node_modules/tar-stream/node_modules/readable-stream/duplex.js +1 -0
  2089. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  2090. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  2091. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  2092. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  2093. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js +685 -0
  2094. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/BufferList.js +78 -0
  2095. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +84 -0
  2096. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  2097. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  2098. package/node_modules/tar-stream/node_modules/readable-stream/package.json +52 -0
  2099. package/node_modules/tar-stream/node_modules/readable-stream/passthrough.js +1 -0
  2100. package/node_modules/tar-stream/node_modules/readable-stream/readable-browser.js +7 -0
  2101. package/node_modules/tar-stream/node_modules/readable-stream/readable.js +19 -0
  2102. package/node_modules/tar-stream/node_modules/readable-stream/transform.js +1 -0
  2103. package/node_modules/tar-stream/node_modules/readable-stream/writable-browser.js +1 -0
  2104. package/node_modules/tar-stream/node_modules/readable-stream/writable.js +8 -0
  2105. package/node_modules/tar-stream/node_modules/safe-buffer/LICENSE +21 -0
  2106. package/node_modules/tar-stream/node_modules/safe-buffer/README.md +584 -0
  2107. package/node_modules/tar-stream/node_modules/safe-buffer/index.d.ts +187 -0
  2108. package/node_modules/tar-stream/node_modules/safe-buffer/index.js +62 -0
  2109. package/node_modules/tar-stream/node_modules/safe-buffer/package.json +37 -0
  2110. package/node_modules/tar-stream/node_modules/string_decoder/.travis.yml +50 -0
  2111. package/node_modules/tar-stream/node_modules/string_decoder/LICENSE +48 -0
  2112. package/node_modules/tar-stream/node_modules/string_decoder/README.md +47 -0
  2113. package/node_modules/tar-stream/node_modules/string_decoder/lib/string_decoder.js +296 -0
  2114. package/node_modules/tar-stream/node_modules/string_decoder/package.json +31 -0
  2115. package/node_modules/tar-stream/pack.js +255 -0
  2116. package/node_modules/tar-stream/package.json +60 -0
  2117. package/node_modules/targz/.npmignore +2 -0
  2118. package/node_modules/targz/LICENSE +22 -0
  2119. package/node_modules/targz/README.md +103 -0
  2120. package/node_modules/targz/index.js +1 -0
  2121. package/node_modules/targz/lib/targz.js +78 -0
  2122. package/node_modules/targz/package.json +28 -0
  2123. package/node_modules/to-buffer/.github/FUNDING.yml +12 -0
  2124. package/node_modules/to-buffer/CHANGELOG.md +81 -0
  2125. package/node_modules/to-buffer/LICENSE +21 -0
  2126. package/node_modules/to-buffer/README.md +44 -0
  2127. package/node_modules/to-buffer/index.js +109 -0
  2128. package/node_modules/to-buffer/package.json +62 -0
  2129. package/node_modules/typed-array-buffer/.eslintrc +13 -0
  2130. package/node_modules/typed-array-buffer/.github/FUNDING.yml +12 -0
  2131. package/node_modules/typed-array-buffer/.nycrc +13 -0
  2132. package/node_modules/typed-array-buffer/CHANGELOG.md +50 -0
  2133. package/node_modules/typed-array-buffer/LICENSE +21 -0
  2134. package/node_modules/typed-array-buffer/README.md +42 -0
  2135. package/node_modules/typed-array-buffer/index.d.ts +9 -0
  2136. package/node_modules/typed-array-buffer/index.js +19 -0
  2137. package/node_modules/typed-array-buffer/package.json +82 -0
  2138. package/node_modules/typed-array-buffer/test/index.js +23 -0
  2139. package/node_modules/typed-array-buffer/tsconfig.json +9 -0
  2140. package/node_modules/universalify/LICENSE +20 -0
  2141. package/node_modules/universalify/README.md +76 -0
  2142. package/node_modules/universalify/index.js +24 -0
  2143. package/node_modules/universalify/package.json +34 -0
  2144. package/node_modules/util-deprecate/History.md +16 -0
  2145. package/node_modules/util-deprecate/LICENSE +24 -0
  2146. package/node_modules/util-deprecate/README.md +53 -0
  2147. package/node_modules/util-deprecate/browser.js +67 -0
  2148. package/node_modules/util-deprecate/node.js +6 -0
  2149. package/node_modules/util-deprecate/package.json +27 -0
  2150. package/node_modules/which-typed-array/.editorconfig +20 -0
  2151. package/node_modules/which-typed-array/.github/FUNDING.yml +12 -0
  2152. package/node_modules/which-typed-array/.nycrc +13 -0
  2153. package/node_modules/which-typed-array/CHANGELOG.md +287 -0
  2154. package/node_modules/which-typed-array/LICENSE +22 -0
  2155. package/node_modules/which-typed-array/README.md +70 -0
  2156. package/node_modules/which-typed-array/eslint.config.mjs +12 -0
  2157. package/node_modules/which-typed-array/index.d.ts +35 -0
  2158. package/node_modules/which-typed-array/index.js +135 -0
  2159. package/node_modules/which-typed-array/package.json +130 -0
  2160. package/node_modules/which-typed-array/test/index.js +105 -0
  2161. package/node_modules/which-typed-array/tsconfig.json +9 -0
  2162. package/node_modules/wrappy/LICENSE +15 -0
  2163. package/node_modules/wrappy/README.md +36 -0
  2164. package/node_modules/wrappy/package.json +29 -0
  2165. package/node_modules/wrappy/wrappy.js +33 -0
  2166. package/node_modules/xtend/.jshintrc +30 -0
  2167. package/node_modules/xtend/LICENSE +20 -0
  2168. package/node_modules/xtend/README.md +32 -0
  2169. package/node_modules/xtend/immutable.js +19 -0
  2170. package/node_modules/xtend/mutable.js +17 -0
  2171. package/node_modules/xtend/package.json +55 -0
  2172. package/node_modules/xtend/test.js +103 -0
  2173. package/package.json +32 -18
  2174. package/npm-shrinkwrap.json +0 -608
@@ -0,0 +1,4293 @@
1
+ /*
2
+ Copyright (c) 2013, Dan VerWeire <dverweire@gmail.com>
3
+ Copyright (c) 2010, Lee Smith <notwink@gmail.com>
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
+ */
17
+
18
+ 'use strict';
19
+
20
+ // Setting SQLLIB bin path to the path env before load for windows
21
+ var os = require('os'),
22
+ path = require('path');
23
+ var platform = os.platform();
24
+
25
+ // Set PATH and LIB env vars for clidriver.
26
+ var clidriver = path.resolve(__dirname, '../installer/clidriver');
27
+ if (process.env.IBM_DB_HOME) {
28
+ clidriver = process.env.IBM_DB_HOME;
29
+ }
30
+ if(platform == 'win32')
31
+ {
32
+ process.env.PATH = path.resolve(clidriver, 'bin') + ';' +
33
+ path.resolve(clidriver, 'bin/amd64.VC12.CRT') + ';' +
34
+ path.resolve(clidriver, 'bin/icc64') + ';' +
35
+ path.resolve(clidriver, 'lib') + ';' + process.env.PATH;
36
+ process.env.LIB = path.resolve(clidriver, 'bin') + ';' +
37
+ path.resolve(clidriver, 'bin/icc64') + ';' +
38
+ path.resolve(clidriver, 'lib') + ';' + process.env.LIB;
39
+ }
40
+ else if(platform == 'linux') {
41
+ process.env.PATH = path.resolve(clidriver, 'bin') + ':' +
42
+ path.resolve(clidriver, 'lib') + ':' + process.env.PATH;
43
+ process.env.LD_LIBRARY_PATH = path.resolve(clidriver, 'lib') + ':' +
44
+ path.resolve(clidriver, 'lib/icc') + ':' + process.env.LD_LIBRARY_PATH;
45
+ }
46
+ else if(platform == 'darwin') {
47
+ process.env.PATH = path.resolve(clidriver, 'bin') + ':' +
48
+ path.resolve(clidriver, 'lib') + ':' + process.env.PATH;
49
+ process.env.DYLD_LIBRARY_PATH = path.resolve(clidriver, 'lib') + ':' +
50
+ path.resolve(clidriver, 'lib/icc') + ':' + process.env.DYLD_LIBRARY_PATH;
51
+ }
52
+ else if(platform == 'aix') {
53
+ process.env.PATH = path.resolve(clidriver, 'bin') + ':' +
54
+ path.resolve(clidriver, 'lib') + ':' + process.env.PATH;
55
+ process.env.LIBPATH = path.resolve(clidriver, 'lib') + ':' +
56
+ path.resolve(clidriver, 'lib/icc') + ':' + process.env.LIBPATH;
57
+ }
58
+
59
+ var odbc = require("bindings")("odbc_bindings")
60
+ , SimpleQueue = require("./simple-queue")
61
+ , macro = require("./climacros")
62
+ , util = require("util")
63
+ , Readable = require('stream').Readable;
64
+
65
+ function createDeferred() {
66
+ var resolvePromise;
67
+ var rejectPromise;
68
+ var promise = new Promise(function (resolve, reject) {
69
+ resolvePromise = resolve;
70
+ rejectPromise = reject;
71
+ });
72
+
73
+ return {
74
+ promise: promise,
75
+ resolve: resolvePromise,
76
+ reject: rejectPromise
77
+ };
78
+ }
79
+
80
+
81
+ // Call of odbc.ODBC() loads odbc library and allocate environment handle.
82
+ // All calls of new Database() should use this same odbc unless passed as
83
+ // options.odbc. ENV will keep value of this odbc after first call of Database.
84
+ var ENV;
85
+ module.exports = function (options)
86
+ {
87
+ return new Database(options);
88
+ };
89
+
90
+ module.exports.Database = Database;
91
+ module.exports.ODBC = odbc.ODBC;
92
+ module.exports.ODBCConnection = odbc.ODBCConnection;
93
+ module.exports.ODBCStatement = odbc.ODBCStatement;
94
+ module.exports.ODBCResult = odbc.ODBCResult;
95
+
96
+ exports.debug = false;
97
+ var logParams = false;
98
+ var ibmdbStartTime = new Date();
99
+ var getElapsedTime = function(){
100
+ var tstamp = (new Date() - ibmdbStartTime)/1000.0;
101
+ //process.stdout.write(tstamp + " :: ");
102
+ return (tstamp + " :: ");
103
+ };
104
+ module.exports.getElapsedTime = getElapsedTime;
105
+
106
+ module.exports.debug = function(x) {
107
+ if(x) {
108
+ exports.debug = true;
109
+ console.log("node-ibm_db logs enabled.");
110
+ if(x == 2) {
111
+ logParams = true;
112
+ }
113
+ }
114
+ else {
115
+ exports.debug = false;
116
+ console.log("node-ibm_db logs disabled.");
117
+ }
118
+ };
119
+
120
+ var connError = {
121
+ message: "Connection not open.",
122
+ sqlstate: "08001",
123
+ sqlcode: -30081
124
+ };
125
+
126
+ module.exports.open = function (connStr, options, cb)
127
+ {
128
+ var db, deferred;
129
+
130
+ var DBFactory = function(options) {
131
+ return new Database(options);
132
+ };
133
+
134
+ if (!cb && typeof options !== 'function')
135
+ {
136
+ if(!options)
137
+ {
138
+ options = null;
139
+ }
140
+ db = DBFactory(options);
141
+ deferred = createDeferred();
142
+ db.open(connStr, function(err) {
143
+ if (err)
144
+ {
145
+ deferred.reject(err);
146
+ }
147
+ else
148
+ {
149
+ deferred.resolve(db);
150
+ }
151
+ });
152
+ return deferred.promise;
153
+ }
154
+
155
+ else if (typeof options === 'function')
156
+ {
157
+ cb = options;
158
+ options = null;
159
+ }
160
+
161
+ db = DBFactory(options);
162
+
163
+ db.open(connStr, function (err) {
164
+ cb && cb(err, db);
165
+ });
166
+ }; // ibmdb.open
167
+
168
+ module.exports.openSync = function (connStr, options)
169
+ {
170
+ var db = new Database(options);
171
+ db.openSync(connStr);
172
+ return db;
173
+ }; // ibmdb.openSync
174
+
175
+ /*
176
+ * Create Database.
177
+ * (createDbSync)
178
+ * args: dbName, codeSet, mode.
179
+ * (codeSet, mode are optional and default values will be null)
180
+ *
181
+ * return: TRUE on success or FALSE on failure.
182
+ */
183
+ module.exports.createDbSync = function (dbName, connStr, options)
184
+ {
185
+ // createDbSync API is not supported on z/OS:
186
+ // Databases are implemented/used in Db2 for z/OS differently than
187
+ // and Db2 for LUW. A database in z/OS is simply a logical collection
188
+ // of table/index spaces that you create using the "CREATE DATABASE"
189
+ // SQL statement, while a database in LUW is conceptually equivalent
190
+ // to a subsystem in z/OS. Connecting to a Db2 on z/OS subsystem
191
+ // entails a "database" is created already. As such, this API is
192
+ // not applicable.
193
+ if (os.type() === "OS/390")
194
+ {
195
+ throw new Error("[node-ibm_db] createDbSync API is not supported on z/OS");
196
+ }
197
+
198
+ var result;
199
+ var db = new Database(options);
200
+
201
+ if (typeof(connStr) === "object")
202
+ {
203
+ var obj = connStr;
204
+ connStr = "";
205
+
206
+ Object.keys(obj).forEach(function (key) {
207
+ connStr += key + "=" + obj[key] + ";";
208
+ });
209
+ }
210
+ var conStr = connStr + ";" + "ATTACH=true";
211
+
212
+ var connectionOpen = db.openSync(conStr);
213
+
214
+ if (connectionOpen)
215
+ {
216
+ db.connected = true;
217
+ }
218
+
219
+ if (!db.connected)
220
+ {
221
+ throw ({ message : "Connection not open."});
222
+ }
223
+ else
224
+ {
225
+ if(dbName == null )
226
+ {
227
+ throw ({ message : "Database Name <db_Name> is required."});
228
+ }
229
+ else
230
+ {
231
+ // IF: argument "options" is not passed while calling.
232
+ // THEN: db.codeSet and db.mode will be "null" (default value).
233
+ result = db.conn.createDbSync(dbName, db.codeSet, db.mode);
234
+ return result;
235
+ }
236
+ }
237
+ }; // ibmdb.createDbSync
238
+
239
+ /*
240
+ * Drop Database.
241
+ * (dropDbSync)
242
+ * args: dbName
243
+ *
244
+ * return: TRUE on success or FALSE on failure.
245
+ */
246
+ module.exports.dropDbSync = function (dbName, connStr, options)
247
+ {
248
+ // dropDbSync API is not supported on z/OS:
249
+ // Databases are implemented/used in Db2 for z/OS differently than
250
+ // and Db2 for LUW. A database in z/OS is simply a logical collection
251
+ // of table/index spaces that you create using the "CREATE DATABASE"
252
+ // SQL statement, while a database in LUW is conceptually equivalent
253
+ // to a subsystem in z/OS. Connecting to a Db2 on z/OS subsystem
254
+ // entails a "database" is created already. As such, this API is
255
+ // not applicable for Db2 on z/OS servers.
256
+ if (os.type() === "OS/390")
257
+ {
258
+ throw new Error("[node-ibm_db] dropDbSync API is not supported on z/OS");
259
+ }
260
+
261
+ var result;
262
+ var db = new Database(options);
263
+
264
+ if (typeof(connStr) === "object")
265
+ {
266
+ var obj = connStr;
267
+ connStr = "";
268
+
269
+ Object.keys(obj).forEach(function (key) {
270
+ connStr += key + "=" + obj[key] + ";";
271
+ });
272
+ }
273
+ var conStr = connStr + ";" + "ATTACH=true";
274
+
275
+ var connectionOpen = db.openSync(conStr);
276
+
277
+ if (connectionOpen)
278
+ {
279
+ db.connected = true;
280
+ }
281
+
282
+ if (!db.connected)
283
+ {
284
+ throw ({ message : "Connection not open."});
285
+ }
286
+ else
287
+ {
288
+ if(dbName == null )
289
+ {
290
+ throw ({ message : "Database Name <db_Name> is required."});
291
+ }
292
+ else
293
+ {
294
+ result = db.conn.dropDbSync(dbName);
295
+ return result;
296
+ }
297
+ }
298
+ }; // ibmdb.dropDbSync
299
+
300
+ module.exports.close = function(db)
301
+ {
302
+ if(db && typeof(db) === "object")
303
+ {
304
+ for(var key in db)
305
+ {
306
+ delete db[key];
307
+ }
308
+ db = undefined;
309
+ }
310
+ }; // ibmdb.close
311
+
312
+ function Database(options)
313
+ {
314
+ var self = this;
315
+
316
+ options = options || {};
317
+
318
+ self.odbc = (options.odbc) ? options.odbc : ((ENV) ? ENV : new odbc.ODBC());
319
+ if(!ENV) ENV = self.odbc;
320
+ self.queue = new SimpleQueue();
321
+ self.fetchMode = options.fetchMode || null;
322
+ self.connected = false;
323
+ self.connectTimeout = options.connectTimeout || null;
324
+ self.systemNaming = options.systemNaming;
325
+ self.codeSet = options.codeSet || null;
326
+ self.mode = options.mode || null;
327
+ self.pool = options.pool || null;
328
+ if( self.pool ) { // Its a pooled connection
329
+ if( !self.realClose ) {
330
+ self.realClose = self.close;
331
+ self.close = self.poolClose;
332
+ self.realCloseSync = self.closeSync;
333
+ self.closeSync = self.poolCloseSync;
334
+ }
335
+ self.connStr = options.connStr || null;
336
+ }
337
+ } // Database()
338
+
339
+ //Expose constants
340
+ Object.keys(odbc.ODBC).forEach(function (key) {
341
+ if (typeof odbc.ODBC[key] !== "function")
342
+ {
343
+ //On the database prototype
344
+ Database.prototype[key] = odbc.ODBC[key];
345
+
346
+ //On the exports
347
+ module.exports[key] = odbc.ODBC[key];
348
+ }
349
+ });
350
+
351
+ // Expose convertRowsToColumns for use with prepare/bind/execute pattern
352
+ module.exports.convertRowsToColumns = convertRowsToColumns;
353
+
354
+ Database.prototype.open = function (connStr, cb) {
355
+ var self = this, deferred;
356
+
357
+ if (typeof(connStr) === "object")
358
+ {
359
+ var obj = connStr;
360
+ connStr = "";
361
+
362
+ Object.keys(obj).forEach(function (key) {
363
+ connStr += key + "=" + obj[key] + ";";
364
+ });
365
+ }
366
+
367
+ if (!cb)
368
+ {
369
+ deferred = createDeferred();
370
+ }
371
+
372
+ self.odbc.createConnection(function (err, conn) {
373
+ if(!cb)
374
+ {
375
+ if (err) deferred.reject(err);
376
+ } else
377
+ {
378
+ if (err) return cb(err);
379
+ }
380
+
381
+ self.conn = conn;
382
+
383
+ if (self.connectTimeout || self.connectTimeout === 0)
384
+ {
385
+ self.conn.connectTimeout = self.connectTimeout;
386
+ }
387
+ if (typeof(self.systemNaming) !== 'undefined')
388
+ {
389
+ self.conn.systemNaming = self.systemNaming;
390
+ }
391
+
392
+ self.conn.open(connStr, function (err, result)
393
+ {
394
+ if(cb)
395
+ {
396
+ if (err) cb(err);
397
+ else {
398
+ self.connected = true;
399
+ cb(err, result);
400
+ }
401
+ }
402
+ else
403
+ {
404
+ if(err) deferred.reject(err);
405
+
406
+ self.connected = true;
407
+ deferred.resolve(result);
408
+ }
409
+ }); //conn.open
410
+ }); // odbc.createConnection
411
+
412
+ return deferred ? deferred.promise : null;
413
+ }; // Database.open function
414
+
415
+ Database.prototype.openSync = function (connStr)
416
+ {
417
+ var self = this;
418
+
419
+ self.conn = self.odbc.createConnectionSync();
420
+
421
+ if (self.connectTimeout || self.connectTimeout === 0)
422
+ {
423
+ self.conn.connectTimeout = self.connectTimeout;
424
+ }
425
+ if (typeof(self.systemNaming) !== 'undefined')
426
+ {
427
+ self.conn.systemNaming = self.systemNaming;
428
+ }
429
+
430
+ if (typeof(connStr) === "object")
431
+ {
432
+ var obj = connStr;
433
+ connStr = "";
434
+
435
+ Object.keys(obj).forEach(function (key) {
436
+ connStr += key + "=" + obj[key] + ";";
437
+ });
438
+ }
439
+
440
+ var result = self.conn.openSync(connStr);
441
+
442
+ if (result)
443
+ {
444
+ self.connected = true;
445
+ }
446
+
447
+ return result;
448
+ }; // Database.openSync
449
+
450
+ Database.prototype.close = function (cb)
451
+ {
452
+ var self = this, deferred;
453
+ if(!cb)
454
+ {
455
+ deferred = createDeferred();
456
+ }
457
+
458
+ self.queue.push(function (next) {
459
+ if(self.conn)
460
+ {
461
+ self.conn.close(function (err) {
462
+ self.connected = false;
463
+ delete self.conn;
464
+
465
+ if (err) {
466
+ deferred ? deferred.reject(err) : cb(err);
467
+ } else {
468
+ deferred ? deferred.resolve(true) : cb(null);
469
+ }
470
+ return next();
471
+ });
472
+ }
473
+ else
474
+ {
475
+ self.connected = false;
476
+ deferred ? deferred.resolve(true) : cb(null);
477
+ return next();
478
+ }
479
+ }); // self.queue.push
480
+
481
+ return deferred ? deferred.promise : false;
482
+ }; // Database.close
483
+
484
+ Database.prototype.closeSync = function ()
485
+ {
486
+ var self = this;
487
+
488
+ var result;
489
+ if(self.conn) result = self.conn.closeSync();
490
+
491
+ self.connected = false;
492
+ delete self.conn;
493
+
494
+ return result;
495
+ }; // closeSync
496
+
497
+ Database.prototype.checkConnectionError = function (err)
498
+ {
499
+ // For pooled connection, if we get SQL30081N, then close
500
+ // the connection now only and then proceed.
501
+
502
+ var self = this;
503
+ if(self.realClose){
504
+ if((err && err['message'] && err['message'].search("SQL30081N") != -1))
505
+ {
506
+ // Close all connections in availablePool as all are invalid now
507
+ // It will be removed from available pool on next pool.open for connected=false
508
+ self.closeSync(); //Move connection from usedPool to availablePool
509
+ var availablePool = self.pool.availablePool[self.connStr];
510
+ if (availablePool && availablePool.length) {
511
+ for (var i = 0, len = availablePool.length; i < len; i++) {
512
+ availablePool[i].realCloseSync();
513
+ }
514
+ }
515
+ self.realCloseSync();
516
+ }
517
+ }
518
+ }
519
+
520
+ Database.prototype.query = function (query, params, cb)
521
+ {
522
+ var self = this, deferred, sql, resultset = [], multipleResultSet = false;
523
+ var sqlca = {sqlstate:"0", sqlcode: 0};
524
+
525
+ exports.debug && console.log(getElapsedTime(), "odbc.js:query() => Entry");
526
+ //support for promises
527
+ if (!cb && typeof params !== 'function')
528
+ {
529
+ deferred = createDeferred();
530
+ !params ? params = null : '';
531
+ }
532
+
533
+ if (typeof(params) === 'function')
534
+ {
535
+ cb = params;
536
+ params = null;
537
+ }
538
+
539
+ self.queue.push(function (next) {
540
+ function cbQuery (initialErr, result, outparams)
541
+ {
542
+ if(outparams) {
543
+ resultset = outparams;
544
+ multipleResultSet = true;
545
+ }
546
+ if (result && typeof(result) === 'object') {
547
+ fetchMore();
548
+ } else {
549
+ if (initialErr) {
550
+ if (initialErr.sqlstate) {
551
+ sqlca.sqlstate = initialErr.sqlstate;
552
+ }
553
+ if (initialErr.sqlcode) {
554
+ sqlca.sqlcode = initialErr.sqlcode;
555
+ }
556
+ self.checkConnectionError(initialErr);
557
+ if(deferred) {
558
+ let error = {};
559
+ if(typeof initialErr === 'object') {
560
+ error = initialErr;
561
+ } else {
562
+ error["message"] = initialErr;
563
+ }
564
+ error["resultset"] = resultset;
565
+ error.sqlcode = sqlca.sqlcode;
566
+ error.sqlstate = sqlca.sqlstate;
567
+ deferred.reject(error);
568
+ } else {
569
+ cb(initialErr, resultset, sqlca);
570
+ }
571
+ }
572
+ if (result) { result.closeSync(); }
573
+ initialErr = null;
574
+ return next();
575
+ }
576
+
577
+ function fetchMore()
578
+ {
579
+ if (self.fetchMode)
580
+ {
581
+ result.fetchMode = self.fetchMode;
582
+ }
583
+
584
+ result._fetchAll(function (err, data, colcount) {
585
+ var moreResults = false, moreResultsError = null;
586
+
587
+ // If there is any error, return it now only.
588
+ if( err || initialErr )
589
+ {
590
+ self.checkConnectionError(err || initialErr);
591
+ if(multipleResultSet) resultset.push(data);
592
+ else resultset = data;
593
+ err = initialErr || err;
594
+ sqlca.sqlstate = err.sqlstate || sqlca.sqlstate;
595
+ sqlca.sqlcode = err.sqlcode || sqlca.sqlcode;
596
+ console.log(err, sqlca);
597
+ if(deferred) {
598
+ err["resultset"] = resultset;
599
+ err.sqlcode = sqlca.sqlcode;
600
+ err.sqlstate = sqlca.sqlstate;
601
+ deferred.reject(err);
602
+ } else {
603
+ cb(err, resultset, sqlca);
604
+ }
605
+ if (result) { result.closeSync(); }
606
+ initialErr = null;
607
+ err = null;
608
+ return next();
609
+ }
610
+
611
+ // Get the result data
612
+ try
613
+ {
614
+ moreResults = result.moreResultsSync();
615
+ }
616
+ catch (e)
617
+ {
618
+ moreResultsError = e;
619
+ moreResults = false;
620
+ sqlca.sqlstate = e.sqlstate || sqlca.sqlstate;
621
+ sqlca.sqlcode = e.sqlcode || sqlca.sqlcode;
622
+ }
623
+
624
+ //close the result before calling back
625
+ //if there are not more result sets
626
+ if (moreResults)
627
+ {
628
+ resultset.push(data);
629
+ multipleResultSet = true;
630
+ fetchMore();
631
+ }
632
+ else
633
+ {
634
+ result.closeSync();
635
+ if( colcount ) {
636
+ if(multipleResultSet) resultset.push(data);
637
+ else resultset = data;
638
+ }
639
+
640
+ exports.debug && console.log(getElapsedTime(), "odbc.js:query() => Done.");
641
+ // send exception error and/or data to callback function.
642
+ // only once with all the results.
643
+ if( !sqlca.sqlcode && colcount && !resultset.length ) {
644
+ sqlca.sqlcode = 100;
645
+ }
646
+ if(deferred) {
647
+ if(moreResultsError) {
648
+ moreResultsError["resultset"] = resultset;
649
+ moreResultsError.sqlcode = sqlca.sqlcode;
650
+ moreResultsError.sqlstate = sqlca.sqlstate;
651
+ deferred.reject(moreResultsError);
652
+ } else {
653
+ deferred.resolve(resultset);
654
+ }
655
+ } else {
656
+ cb(moreResultsError, resultset, sqlca);
657
+ }
658
+ }
659
+
660
+ moreResultsError = null;
661
+ return next();
662
+ });
663
+ } // function fetchMore
664
+ } //function cbQuery
665
+
666
+ if (!self.connected)
667
+ {
668
+ sqlca = {sqlstate: "08001", sqlcode : -30081};
669
+ deferred ? deferred.reject(connError) : cb(connError, [], sqlca);
670
+ return next();
671
+ }
672
+
673
+ if(typeof query === "object")
674
+ {
675
+ var rowsErr = processRowsOption(query);
676
+ if(rowsErr) {
677
+ deferred ? deferred.reject(rowsErr) : cb(rowsErr);
678
+ return next();
679
+ }
680
+ sql = query.sql;
681
+ if(query.params) params = query.params;
682
+ }
683
+ else
684
+ {
685
+ sql = query;
686
+ }
687
+ exports.debug && console.log(getElapsedTime(), "odbc.js:query() => ", sql);
688
+
689
+ try {
690
+ if (params && params.length > 0)
691
+ {
692
+ // Resolve any Readable stream Data before proceeding
693
+ resolveStreamParams(params, function(streamErr) {
694
+ if (streamErr) {
695
+ deferred ? deferred.reject(streamErr) : cb(streamErr);
696
+ return next();
697
+ }
698
+ if(Array.isArray(params))
699
+ {
700
+ var err = parseParams(params);
701
+ if(err) deferred ? deferred.reject(err) : cb(err);
702
+ }
703
+ if(exports.debug && logParams) {
704
+ console.log("%s odbc.js:query() params = ", getElapsedTime(), params);
705
+ }
706
+ if(typeof query === 'object')
707
+ {
708
+ query.params = params;
709
+ self.conn.query(query, cbQuery);
710
+ }
711
+ else
712
+ self.conn.query(query, params, cbQuery);
713
+ }); // resolveStreamParams
714
+ }
715
+ else
716
+ {
717
+ self.conn.query(query, cbQuery);
718
+ }
719
+ } catch (err)
720
+ {
721
+ self.checkConnectionError(err);
722
+ deferred ? deferred.reject(err) : cb(err);
723
+ return next();
724
+ }
725
+ }); //self.queue.push
726
+ return deferred ? deferred.promise : false;
727
+ }; // Database.query
728
+
729
+ Database.prototype.queryResult = function (query, params, cb)
730
+ {
731
+ var self = this, deferred, sql;
732
+
733
+ //support for promises
734
+ if (!cb && typeof params !== 'function')
735
+ {
736
+ deferred = createDeferred();
737
+ !params ? params = null : '';
738
+ }
739
+
740
+ if (typeof(params) === 'function')
741
+ {
742
+ cb = params;
743
+ params = null;
744
+ }
745
+
746
+ if(typeof query === "object")
747
+ {
748
+ var rowsErr = processRowsOption(query);
749
+ if(rowsErr) {
750
+ deferred ? deferred.reject(rowsErr) : ( cb && cb(rowsErr) );
751
+ return deferred ? deferred.promise : false;
752
+ }
753
+ sql = query.sql;
754
+ if(query.params) params = query.params;
755
+ }
756
+ else
757
+ {
758
+ sql = query;
759
+ }
760
+
761
+ exports.debug && console.log(getElapsedTime(), "odbc.js:queryResult() => ", sql);
762
+ self.queue.push(function (next) {
763
+ //ODBCConnection.query() is the fastest-path querying mechanism.
764
+ if (!self.connected)
765
+ {
766
+ deferred ? deferred.reject(connError) : cb(connError);
767
+ return next();
768
+ }
769
+
770
+ if (params && params.length > 0)
771
+ {
772
+ if(Array.isArray(params))
773
+ {
774
+ var err = parseParams(params);
775
+ if(err) deferred ? deferred.reject(err) : ( cb && cb(err) );
776
+ }
777
+ if(typeof query === 'object')
778
+ {
779
+ query.params = params;
780
+ self.conn.query(query, cbQuery);
781
+ }
782
+ else
783
+ self.conn.query(sql, params, cbQuery);
784
+ }
785
+ else
786
+ {
787
+ self.conn.query(sql, cbQuery);
788
+ }
789
+
790
+ function cbQuery (err, result, outparams)
791
+ {
792
+ if (err)
793
+ {
794
+ self.checkConnectionError(err);
795
+ deferred ? deferred.reject(err) : ( cb && cb(err, null, outparams) );
796
+ return next();
797
+ }
798
+
799
+ if (result && typeof(result) === 'object') {
800
+ if (self.fetchMode)
801
+ {
802
+ result.fetchMode = self.fetchMode;
803
+ }
804
+ }
805
+ else if( result ) // noResults = true is passed by application.
806
+ {
807
+ outparams = result;
808
+ result = null;
809
+ }
810
+
811
+ !cb ? deferred.resolve([result, outparams]) : cb(err, result, outparams);
812
+
813
+ return next();
814
+ } // function cbQuery
815
+ }); //self.queue.push
816
+ return deferred ? deferred.promise : false;
817
+ }; // Database.queryResult
818
+
819
+ Database.prototype.queryResultSync = function (query, params)
820
+ {
821
+ var self = this, sql, outparams;
822
+ var result; // Must get closed by caller for success case.
823
+
824
+ if (!self.connected)
825
+ {
826
+ throw ({ message : "Connection not open."});
827
+ }
828
+
829
+ if(typeof query === "object")
830
+ {
831
+ var rowsErr = processRowsOption(query);
832
+ if(rowsErr) return rowsErr;
833
+ sql = query.sql;
834
+ if(query.params) params = query.params;
835
+ }
836
+ else
837
+ {
838
+ sql = query;
839
+ }
840
+
841
+ exports.debug && console.log(getElapsedTime(), "odbc.js:queryResultSync() => ", sql);
842
+ try {
843
+ if (params)
844
+ {
845
+ if(Array.isArray(params))
846
+ {
847
+ var err = parseParams(params);
848
+ if(err) return err;
849
+ }
850
+ if(typeof query === 'object')
851
+ {
852
+ query.params = params;
853
+ result = self.conn.querySync(query);
854
+ }
855
+ else
856
+ {
857
+ result = self.conn.querySync(sql, params);
858
+ }
859
+ }
860
+ else
861
+ {
862
+ result = self.conn.querySync(sql); // Always returns [stmt, outparms]
863
+ }
864
+ } catch (e)
865
+ {
866
+ self.checkConnectionError(e);
867
+ throw e;
868
+ }
869
+
870
+ if(Array.isArray(result)) // Its a CALL stmt with OUT params.
871
+ {
872
+ if(result[1]) {
873
+ outparams = result[1]; // INOUT and OUTPUT param values for SP.
874
+ }
875
+ result = result[0];
876
+ }
877
+ if (result && typeof(result) === 'object' && self.fetchMode)
878
+ {
879
+ result.fetchMode = self.fetchMode;
880
+ }
881
+ if( outparams ) return [result, outparams];
882
+ else return result;
883
+ }; // Database.queryResultSync
884
+
885
+ Database.prototype.querySync = function (query, params)
886
+ {
887
+ var self = this, result, sql, outparams = null;
888
+
889
+ if (!self.connected)
890
+ {
891
+ throw ({ message : "Connection not open."});
892
+ }
893
+
894
+ if(typeof query === "object")
895
+ {
896
+ var rowsErr = processRowsOption(query);
897
+ if(rowsErr) return rowsErr;
898
+ sql = query.sql;
899
+ if(query.params) params = query.params;
900
+ }
901
+ else
902
+ {
903
+ sql = query;
904
+ }
905
+
906
+ exports.debug && console.log(getElapsedTime(), "odbc.js:querySync() => ", sql);
907
+ try {
908
+ if (params)
909
+ {
910
+ if(Array.isArray(params))
911
+ {
912
+ var err = parseParams(params);
913
+ if(err) return err;
914
+ if(logParams) {
915
+ console.log("%s odbc.js:querySync() params = ", getElapsedTime(), params);
916
+ }
917
+ }
918
+ if(typeof query === 'object')
919
+ {
920
+ query.params = params;
921
+ result = self.conn.querySync(query);
922
+ }
923
+ else
924
+ {
925
+ result = self.conn.querySync(sql, params);
926
+ }
927
+ }
928
+ else
929
+ {
930
+ result = self.conn.querySync(query);
931
+ }
932
+ } catch (e)
933
+ {
934
+ self.checkConnectionError(e);
935
+ return e;
936
+ }
937
+
938
+ if(Array.isArray(result))
939
+ {
940
+ if(result[1]) {
941
+ outparams = result[1]; // INOUT and OUT param values for SP.
942
+ }
943
+ result = result[0];
944
+ }
945
+ if(!result) return outparams; // For noResults.
946
+
947
+ // Processing for resultset.
948
+ var data, resultset = [], moreResults = true, moreResultsError = null;
949
+ var nullresult = true;
950
+
951
+ if(outparams) {
952
+ resultset = outparams;
953
+ nullresult = false;
954
+ }
955
+ if (self.fetchMode)
956
+ {
957
+ result.fetchMode = self.fetchMode;
958
+ }
959
+
960
+ while(moreResults)
961
+ {
962
+ data = result.fetchAllSync();
963
+ if(!data.length) {
964
+ moreResults = false;
965
+ break;
966
+ }
967
+ try
968
+ {
969
+ moreResults = result.moreResultsSync();
970
+ }
971
+ catch (e)
972
+ {
973
+ moreResultsError = e;
974
+ moreResults = false;
975
+ break;
976
+ }
977
+ if(data.length) {
978
+ if(nullresult && !moreResults) resultset = data;
979
+ else resultset.push(data);
980
+ nullresult = false;
981
+ }
982
+ }
983
+ result.closeSync();
984
+
985
+ if(moreResultsError) {
986
+ self.checkConnectionError(moreResultsError);
987
+ return moreResultsError;
988
+ }
989
+ if(nullresult) return [];
990
+
991
+ return resultset;
992
+ }; // Database.querySync
993
+
994
+ Database.prototype.executeFile = function (inputfile, delimiter, outputfile, cb) {
995
+ var fs = require('fs-extra');
996
+ var self = this, deferred, sql;
997
+
998
+ if (typeof (delimiter) === 'function') {
999
+ cb = delimiter;
1000
+ delimiter = ';'
1001
+ }
1002
+
1003
+ if (typeof (outputfile) === 'function') {
1004
+ cb = outputfile;
1005
+ outputfile = undefined;
1006
+ }
1007
+
1008
+ //support for promises
1009
+ if (!cb) {
1010
+ deferred = createDeferred();
1011
+ }
1012
+
1013
+ if (typeof inputfile !== "string") {
1014
+ sql = inputfile.sql;
1015
+ if (inputfile.delimiter) delimiter = inputfile.delimiter;
1016
+ if (inputfile.outputfile) outputfile = inputfile.outputfile;
1017
+ }
1018
+ else {
1019
+ sql = inputfile;
1020
+ }
1021
+
1022
+ if (!self.connected) {
1023
+ deferred ? deferred.reject(connError) : cb(connError);
1024
+ }
1025
+ fs.readFile(sql, function (err, sql) {
1026
+ if (err) {
1027
+ deferred ? deferred.reject(err) : cb(err);
1028
+ }
1029
+ else {
1030
+ var query = sql.toString();
1031
+ var myarray = query.split(delimiter);
1032
+ var res = "";
1033
+ if (outputfile !== undefined) {
1034
+ if (fs.existsSync(outputfile)) {
1035
+ fs.unlinkSync(outputfile)
1036
+ }
1037
+ else {
1038
+ fs.ensureFileSync(outputfile)
1039
+ }
1040
+ }
1041
+ for (var i = 0; i < myarray.length; i++) {
1042
+ query = (myarray[i]).trim();
1043
+ var result = [];
1044
+ if(query) {
1045
+ result = self.querySync(query);
1046
+ if (!Array.isArray(result)) {
1047
+ if (outputfile === undefined) {
1048
+ deferred ? deferred.reject(result) : cb(result);
1049
+ }
1050
+ else {
1051
+ fs.appendFileSync(outputfile, result);
1052
+ }
1053
+ }
1054
+ if (result.length > 0) {
1055
+ result = JSON.stringify(result);
1056
+ if (outputfile === undefined) {
1057
+ res += result + delimiter;
1058
+ }
1059
+ else {
1060
+ fs.appendFileSync(outputfile, result + delimiter);
1061
+ }
1062
+ }
1063
+ }
1064
+ }
1065
+ deferred ? deferred.resolve(res) : cb(err, res);
1066
+ }
1067
+ });
1068
+ };
1069
+
1070
+ Database.prototype.executeFileSync = function (inputfile, delimiter, outputfile)
1071
+ {
1072
+ var fs = require('fs-extra');
1073
+ var self = this, sql = null;
1074
+ if (!self.connected)
1075
+ {
1076
+ throw ({ message: "Connection not open." });
1077
+ }
1078
+ if (typeof inputfile !== "string")
1079
+ {
1080
+ sql = inputfile.sql;
1081
+ if (inputfile.delimiter) delimiter = inputfile.delimiter;
1082
+ if (inputfile.outputfile) outputfile = inputfile.outputfile;
1083
+ }
1084
+ else
1085
+ {
1086
+ sql = inputfile;
1087
+ }
1088
+ if (!fs.existsSync(sql))
1089
+ {
1090
+ return Error("[node-ibm_db] Input file " + sql + " does not exists");
1091
+ }
1092
+ if (outputfile !== undefined)
1093
+ {
1094
+ if (fs.existsSync(outputfile))
1095
+ {
1096
+ fs.unlinkSync(outputfile)
1097
+ }
1098
+ else
1099
+ {
1100
+ fs.ensureFileSync(outputfile)
1101
+ }
1102
+ }
1103
+ if (delimiter === undefined)
1104
+ {
1105
+ delimiter = ';'
1106
+ }
1107
+ var query = fs.readFileSync(sql, 'utf8')
1108
+ var myarray = query.split(delimiter);
1109
+ var res = "";
1110
+ for (var i = 0; i < myarray.length; i++)
1111
+ {
1112
+ var result = self.querySync(myarray[i]);
1113
+ if (!Array.isArray(result))
1114
+ {
1115
+ return result;
1116
+ }
1117
+ if (result.length > 0)
1118
+ {
1119
+ result = JSON.stringify(result)
1120
+ if (outputfile === undefined)
1121
+ {
1122
+ res += result + delimiter
1123
+ }
1124
+ else
1125
+ {
1126
+ fs.appendFileSync(outputfile, result + delimiter)
1127
+ }
1128
+ }
1129
+ }
1130
+ return res;
1131
+ };
1132
+
1133
+ Database.prototype.queryStream = function queryStream(sql, params)
1134
+ {
1135
+ var self = this;
1136
+ var stream = new Readable({ objectMode: true });
1137
+ var results;
1138
+ stream._read = function()
1139
+ {
1140
+ // after the first internal call to _read, the 'results' should be set
1141
+ // and the stream can continue fetching the results
1142
+ if (results) return self.fetchStreamingResults(results, stream);
1143
+
1144
+ // in the first call to _read the stream starts to emit data once we've
1145
+ // queried for results
1146
+ return self.queryResult(sql, params, function (err, result)
1147
+ {
1148
+ if (err)
1149
+ {
1150
+ return process.nextTick(function () { stream.emit('error', err); });
1151
+ }
1152
+ results = result;
1153
+ return self.fetchStreamingResults(results, stream);
1154
+ });
1155
+ };
1156
+ return stream;
1157
+ };
1158
+
1159
+ Database.prototype.fetchStreamingResults = function(results, stream)
1160
+ {
1161
+ var self = this;
1162
+ return results.fetch(function (err, data)
1163
+ {
1164
+ if (err)
1165
+ {
1166
+ return process.nextTick(function () { stream.emit('error', err); });
1167
+ }
1168
+ // when no more data returns, return push null to indicate the end of stream
1169
+ if (!data)
1170
+ {
1171
+ results.closeSync(); // Close stmt handle.
1172
+ stream.push(null);
1173
+ }
1174
+ else {
1175
+ stream.push(data);
1176
+ }
1177
+ });
1178
+ };
1179
+
1180
+ Database.prototype.beginTransaction = function (cb)
1181
+ {
1182
+ var self = this
1183
+ , deferred = null
1184
+ , onBeginTransaction;
1185
+ if(!cb)
1186
+ {
1187
+ deferred = createDeferred();
1188
+ }
1189
+ onBeginTransaction = function(err)
1190
+ {
1191
+ if(err)
1192
+ {
1193
+ self.checkConnectionError(err);
1194
+ deferred ? deferred.reject(err) : cb(err);
1195
+ }
1196
+ else
1197
+ {
1198
+ deferred ? deferred.resolve(true) : cb(null);
1199
+ }
1200
+ };
1201
+
1202
+ self.conn.beginTransaction(onBeginTransaction);
1203
+ self.conn.inTransaction = true;
1204
+
1205
+ return deferred ? deferred.promise : self;
1206
+ };
1207
+
1208
+ Database.prototype.endTransaction = function (rollback, cb)
1209
+ {
1210
+ var self = this, deferred = null;
1211
+
1212
+ if(!cb)
1213
+ {
1214
+ deferred = createDeferred();
1215
+ }
1216
+ var onEndTransaction = function(err)
1217
+ {
1218
+ if(err)
1219
+ {
1220
+ self.checkConnectionError(err);
1221
+ deferred ? deferred.reject(err) : cb(err);
1222
+ }
1223
+ else
1224
+ {
1225
+ deferred ? deferred.resolve(true) : cb(null);
1226
+ }
1227
+ };
1228
+ self.conn.endTransaction(rollback, onEndTransaction);
1229
+ self.conn.inTransaction = false;
1230
+
1231
+ return deferred ? deferred.promise : self;
1232
+ };
1233
+
1234
+ Database.prototype.commitTransaction = function (cb)
1235
+ {
1236
+ var self = this;
1237
+ //don't rollback
1238
+ return self.endTransaction(false, cb);
1239
+ };
1240
+
1241
+ Database.prototype.rollbackTransaction = function (cb)
1242
+ {
1243
+ var self = this;
1244
+ return self.endTransaction(true, cb); //rollback
1245
+ };
1246
+
1247
+ Database.prototype.beginTransactionSync = function ()
1248
+ {
1249
+ var self = this;
1250
+
1251
+ try {
1252
+ self.conn.beginTransactionSync();
1253
+ } catch (e) {
1254
+ self.checkConnectionError(e);
1255
+ throw e;
1256
+ }
1257
+ self.conn.inTransaction = true;
1258
+
1259
+ return self;
1260
+ };
1261
+
1262
+ Database.prototype.endTransactionSync = function (rollback)
1263
+ {
1264
+ var self = this;
1265
+
1266
+ self.conn.inTransaction = false;
1267
+ try {
1268
+ self.conn.endTransactionSync(rollback);
1269
+ } catch (e) {
1270
+ self.checkConnectionError(e);
1271
+ throw e;
1272
+ }
1273
+
1274
+ return self;
1275
+ };
1276
+
1277
+ Database.prototype.commitTransactionSync = function ()
1278
+ {
1279
+ var self = this;
1280
+ return self.endTransactionSync(false); //don't rollback
1281
+ };
1282
+
1283
+ Database.prototype.rollbackTransactionSync = function ()
1284
+ {
1285
+ var self = this;
1286
+ return self.endTransactionSync(true); //rollback
1287
+ };
1288
+
1289
+ Database.prototype.columns = async function(catalog, schema, table, column, callback)
1290
+ {
1291
+ var self = this, deferred;
1292
+ var error = {
1293
+ error : "[node-ibm_db] Missing Arguments",
1294
+ message : "The object you passed must contain four arguments: " +
1295
+ "catalog, schema, table and column. " +
1296
+ "This is required for the columns method to work."
1297
+ };
1298
+ if (!self.queue) self.queue = [];
1299
+
1300
+ callback = callback || arguments[arguments.length - 1];
1301
+ if(typeof(callback) !== 'function') {
1302
+ callback = null;
1303
+ deferred = createDeferred();
1304
+ if( arguments.length != 4 ) {
1305
+ deferred.reject(error);
1306
+ }
1307
+ }
1308
+ else if( arguments.length != 5 ) {
1309
+ callback(error, [], false);
1310
+ }
1311
+ self.queue.push(function (next)
1312
+ {
1313
+ self.conn.columns(catalog, schema, table, column, function (err, result)
1314
+ {
1315
+ if (err) {
1316
+ self.checkConnectionError(err);
1317
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1318
+ }
1319
+
1320
+ result._fetchAll(function (err, data)
1321
+ {
1322
+ result.closeSync();
1323
+ self.checkConnectionError(err);
1324
+ deferred ? deferred.resolve(data) : callback(err, data);
1325
+ return next();
1326
+ });
1327
+ });
1328
+ });
1329
+ if(deferred) return deferred.promise;
1330
+ };
1331
+
1332
+ Database.prototype.tables = function(catalog, schema, table, type, callback)
1333
+ {
1334
+ var self = this, deferred;
1335
+ var error = {
1336
+ error : "[node-ibm_db] Missing Arguments",
1337
+ message : "The object you passed must contain four arguments: " +
1338
+ "catalog, schema, table and type. " +
1339
+ "This is required for the tables method to work."
1340
+ };
1341
+ if (!self.queue) self.queue = [];
1342
+
1343
+ callback = callback || arguments[arguments.length - 1];
1344
+ if(typeof(callback) !== 'function') {
1345
+ callback = null;
1346
+ deferred = createDeferred();
1347
+ if( arguments.length != 4 ) {
1348
+ deferred.reject(error);
1349
+ }
1350
+ }
1351
+ else if( arguments.length != 5 ) {
1352
+ callback(error, [], false);
1353
+ }
1354
+
1355
+ self.queue.push(function (next)
1356
+ {
1357
+ self.conn.tables(catalog, schema, table, type, function (err, result)
1358
+ {
1359
+ if (err) {
1360
+ self.checkConnectionError(err);
1361
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1362
+ }
1363
+
1364
+ result._fetchAll(function (err, data)
1365
+ {
1366
+ result.closeSync();
1367
+ self.checkConnectionError(err);
1368
+ deferred ? deferred.resolve(data) : callback(err, data);
1369
+ return next();
1370
+ });
1371
+ });
1372
+ });
1373
+ if(deferred) return deferred.promise;
1374
+ };
1375
+
1376
+ Database.prototype.primaryKeys = function(catalog, schema, table, callback)
1377
+ {
1378
+ var self = this, deferred;
1379
+ var error = {
1380
+ error : "[node-ibm_db] Missing Arguments",
1381
+ message : "The object you passed must contain three arguments: " +
1382
+ "catalog, schema and table. " +
1383
+ "This is required for the primaryKeys method to work."
1384
+ };
1385
+ if (!self.queue) self.queue = [];
1386
+
1387
+ callback = callback || arguments[arguments.length - 1];
1388
+ if (typeof(callback) !== 'function') {
1389
+ callback = null;
1390
+ deferred = createDeferred();
1391
+ if (arguments.length < 3) {
1392
+ deferred.reject(error);
1393
+ }
1394
+ }
1395
+ else if (arguments.length < 4) {
1396
+ callback(error, [], false);
1397
+ }
1398
+
1399
+ self.queue.push(function (next)
1400
+ {
1401
+ self.conn.createStatement(function (err, stmt)
1402
+ {
1403
+ if (err) {
1404
+ self.checkConnectionError(err);
1405
+ next();
1406
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1407
+ }
1408
+
1409
+ stmt._primaryKeys(catalog, schema, table, function (err, rows)
1410
+ {
1411
+ stmt.closeSync();
1412
+ self.checkConnectionError(err);
1413
+ if (err) {
1414
+ next();
1415
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1416
+ }
1417
+ deferred ? deferred.resolve(rows) : callback(null, rows);
1418
+ return next();
1419
+ });
1420
+ });
1421
+ });
1422
+ if (deferred) return deferred.promise;
1423
+ };
1424
+
1425
+ Database.prototype.primaryKeysSync = function(catalog, schema, table)
1426
+ {
1427
+ var self = this;
1428
+
1429
+ var stmt;
1430
+ try {
1431
+ stmt = self.conn.createStatementSync();
1432
+ } catch (e) {
1433
+ self.checkConnectionError(e);
1434
+ throw e;
1435
+ }
1436
+
1437
+ try {
1438
+ var rows = stmt._primaryKeysSync(catalog, schema, table);
1439
+ stmt.closeSync();
1440
+ return rows;
1441
+ } catch (e) {
1442
+ try { stmt.closeSync(); } catch (_) {}
1443
+ self.checkConnectionError(e);
1444
+ throw e;
1445
+ }
1446
+ };
1447
+
1448
+ Database.prototype.foreignKeys = function(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable, callback)
1449
+ {
1450
+ var self = this, deferred;
1451
+ var error = {
1452
+ error : "[node-ibm_db] Missing Arguments",
1453
+ message : "The object you passed must contain six arguments: " +
1454
+ "pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema and fkTable. " +
1455
+ "This is required for the foreignKeys method to work."
1456
+ };
1457
+ if (!self.queue) self.queue = [];
1458
+
1459
+ callback = callback || arguments[arguments.length - 1];
1460
+ if (typeof(callback) !== 'function') {
1461
+ callback = null;
1462
+ deferred = createDeferred();
1463
+ if (arguments.length < 6) {
1464
+ deferred.reject(error);
1465
+ }
1466
+ }
1467
+ else if (arguments.length < 7) {
1468
+ callback(error, [], false);
1469
+ }
1470
+
1471
+ self.queue.push(function (next)
1472
+ {
1473
+ self.conn.createStatement(function (err, stmt)
1474
+ {
1475
+ if (err) {
1476
+ self.checkConnectionError(err);
1477
+ next();
1478
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1479
+ }
1480
+
1481
+ stmt._foreignKeys(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable, function (err, rows)
1482
+ {
1483
+ stmt.closeSync();
1484
+ self.checkConnectionError(err);
1485
+ if (err) {
1486
+ next();
1487
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1488
+ }
1489
+ deferred ? deferred.resolve(rows) : callback(null, rows);
1490
+ return next();
1491
+ });
1492
+ });
1493
+ });
1494
+ if (deferred) return deferred.promise;
1495
+ };
1496
+
1497
+ Database.prototype.foreignKeysSync = function(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable)
1498
+ {
1499
+ var self = this;
1500
+
1501
+ var stmt;
1502
+ try {
1503
+ stmt = self.conn.createStatementSync();
1504
+ } catch (e) {
1505
+ self.checkConnectionError(e);
1506
+ throw e;
1507
+ }
1508
+
1509
+ try {
1510
+ var rows = stmt._foreignKeysSync(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable);
1511
+ stmt.closeSync();
1512
+ return rows;
1513
+ } catch (e) {
1514
+ try { stmt.closeSync(); } catch (_) {}
1515
+ self.checkConnectionError(e);
1516
+ throw e;
1517
+ }
1518
+ };
1519
+
1520
+ Database.prototype.procedures = function(catalog, schema, procedure, callback)
1521
+ {
1522
+ var self = this, deferred;
1523
+ var error = {
1524
+ error : "[node-ibm_db] Missing Arguments",
1525
+ message : "The object you passed must contain three arguments: " +
1526
+ "catalog, schema and procedure. " +
1527
+ "This is required for the procedures method to work."
1528
+ };
1529
+ if (!self.queue) self.queue = [];
1530
+
1531
+ callback = callback || arguments[arguments.length - 1];
1532
+ if (typeof(callback) !== 'function') {
1533
+ callback = null;
1534
+ deferred = createDeferred();
1535
+ if (arguments.length < 3) {
1536
+ deferred.reject(error);
1537
+ }
1538
+ }
1539
+ else if (arguments.length < 4) {
1540
+ callback(error, [], false);
1541
+ }
1542
+
1543
+ self.queue.push(function (next)
1544
+ {
1545
+ self.conn.createStatement(function (err, stmt)
1546
+ {
1547
+ if (err) {
1548
+ self.checkConnectionError(err);
1549
+ next();
1550
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1551
+ }
1552
+
1553
+ stmt._procedures(catalog, schema, procedure, function (err, rows)
1554
+ {
1555
+ stmt.closeSync();
1556
+ self.checkConnectionError(err);
1557
+ if (err) {
1558
+ next();
1559
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1560
+ }
1561
+ deferred ? deferred.resolve(rows) : callback(null, rows);
1562
+ return next();
1563
+ });
1564
+ });
1565
+ });
1566
+ if (deferred) return deferred.promise;
1567
+ };
1568
+
1569
+ Database.prototype.proceduresSync = function(catalog, schema, procedure)
1570
+ {
1571
+ var self = this;
1572
+
1573
+ var stmt;
1574
+ try {
1575
+ stmt = self.conn.createStatementSync();
1576
+ } catch (e) {
1577
+ self.checkConnectionError(e);
1578
+ throw e;
1579
+ }
1580
+
1581
+ try {
1582
+ var rows = stmt._proceduresSync(catalog, schema, procedure);
1583
+ stmt.closeSync();
1584
+ return rows;
1585
+ } catch (e) {
1586
+ try { stmt.closeSync(); } catch (_) {}
1587
+ self.checkConnectionError(e);
1588
+ throw e;
1589
+ }
1590
+ };
1591
+
1592
+ Database.prototype.procedureColumns = function(catalog, schema, procedure, column, callback)
1593
+ {
1594
+ var self = this, deferred;
1595
+ var error = {
1596
+ error : "[node-ibm_db] Missing Arguments",
1597
+ message : "The object you passed must contain four arguments: " +
1598
+ "catalog, schema, procedure and column. " +
1599
+ "This is required for the procedureColumns method to work."
1600
+ };
1601
+ if (!self.queue) self.queue = [];
1602
+
1603
+ callback = callback || arguments[arguments.length - 1];
1604
+ if (typeof(callback) !== 'function') {
1605
+ callback = null;
1606
+ deferred = createDeferred();
1607
+ if (arguments.length < 4) {
1608
+ deferred.reject(error);
1609
+ }
1610
+ }
1611
+ else if (arguments.length < 5) {
1612
+ callback(error, [], false);
1613
+ }
1614
+
1615
+ self.queue.push(function (next)
1616
+ {
1617
+ self.conn.createStatement(function (err, stmt)
1618
+ {
1619
+ if (err) {
1620
+ self.checkConnectionError(err);
1621
+ next();
1622
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1623
+ }
1624
+
1625
+ stmt._procedureColumns(catalog, schema, procedure, column, function (err, rows)
1626
+ {
1627
+ stmt.closeSync();
1628
+ self.checkConnectionError(err);
1629
+ if (err) {
1630
+ next();
1631
+ return deferred ? deferred.reject(err) : callback(err, [], false);
1632
+ }
1633
+ deferred ? deferred.resolve(rows) : callback(null, rows);
1634
+ return next();
1635
+ });
1636
+ });
1637
+ });
1638
+ if (deferred) return deferred.promise;
1639
+ };
1640
+
1641
+ Database.prototype.procedureColumnsSync = function(catalog, schema, procedure, column)
1642
+ {
1643
+ var self = this;
1644
+
1645
+ var stmt;
1646
+ try {
1647
+ stmt = self.conn.createStatementSync();
1648
+ } catch (e) {
1649
+ self.checkConnectionError(e);
1650
+ throw e;
1651
+ }
1652
+
1653
+ try {
1654
+ var rows = stmt._procedureColumnsSync(catalog, schema, procedure, column);
1655
+ stmt.closeSync();
1656
+ return rows;
1657
+ } catch (e) {
1658
+ try { stmt.closeSync(); } catch (_) {}
1659
+ self.checkConnectionError(e);
1660
+ throw e;
1661
+ }
1662
+ };
1663
+
1664
+ Database.prototype.describe = async function(obj, callback)
1665
+ {
1666
+ var self = this, deferred;
1667
+ var error = {
1668
+ error : "[node-ibm_db] Missing Arguments",
1669
+ message : "You must pass an object as argument 0 if you want " +
1670
+ "anything productive to happen in the describe method."
1671
+ };
1672
+
1673
+ if (typeof(callback) !== "function") {
1674
+ callback = null;
1675
+ }
1676
+ if(!callback) {
1677
+ deferred = createDeferred();
1678
+ }
1679
+ if (typeof(obj) !== "object") {
1680
+ deferred ? deferred.reject(error) : callback && callback(error, []);
1681
+ }
1682
+
1683
+ if (!obj.database) {
1684
+ error = {
1685
+ error : "[node-ibmdb] Missing Arguments",
1686
+ message : "The object you passed did not contain a database " +
1687
+ "property. This is required for the describe method to work."
1688
+ };
1689
+ deferred ? deferred.reject(error) : callback && callback(error, []);
1690
+ }
1691
+
1692
+ //set some defaults if they weren't passed
1693
+ obj.schema = obj.schema || "%";
1694
+ obj.type = obj.type || "TABLE";
1695
+
1696
+ if (obj.table && obj.column)
1697
+ {
1698
+ //get the column details
1699
+ if(callback)
1700
+ self.columns(obj.database, obj.schema, obj.table, obj.column, callback);
1701
+ else
1702
+ return await self.columns(obj.database, obj.schema, obj.table, obj.column);
1703
+ }
1704
+ else if (obj.table)
1705
+ {
1706
+ //get the columns in the table
1707
+ if(callback)
1708
+ self.columns(obj.database, obj.schema, obj.table, "%", callback);
1709
+ else
1710
+ return await self.columns(obj.database, obj.schema, obj.table, "%")
1711
+ .catch((e)=> { deferred.reject(e); });
1712
+ }
1713
+ else
1714
+ {
1715
+ //get the tables in the database
1716
+ if(callback)
1717
+ self.tables(obj.database, obj.schema, null, obj.type, callback);
1718
+ else
1719
+ return await self.tables(obj.database, obj.schema, null, obj.type);
1720
+ }
1721
+ }; //Database.describe
1722
+
1723
+ Database.prototype.prepare = function (sql, cb)
1724
+ {
1725
+ var self = this, deferred;
1726
+
1727
+ if(!cb)
1728
+ {
1729
+ deferred = createDeferred();
1730
+ }
1731
+
1732
+ self.conn.createStatement(function (err, stmt)
1733
+ {
1734
+ if(err)
1735
+ {
1736
+ self.checkConnectionError(err);
1737
+ if(cb)
1738
+ {
1739
+ return cb(err);
1740
+ } else
1741
+ {
1742
+ deferred.reject(err);
1743
+ }
1744
+ }
1745
+
1746
+ stmt.queue = new SimpleQueue();
1747
+ stmt.db = self; // We need a reference to db to check for connection errors
1748
+
1749
+ stmt.prepare(sql, function (err)
1750
+ {
1751
+ if (err)
1752
+ {
1753
+ self.checkConnectionError(err);
1754
+ if(cb)
1755
+ {
1756
+ return cb(err);
1757
+ } else
1758
+ {
1759
+ deferred.reject(err)
1760
+ }
1761
+ }
1762
+
1763
+ deferred ? deferred.resolve(stmt) : cb(null, stmt);
1764
+ });
1765
+ });
1766
+ return deferred ? deferred.promise : null;
1767
+ };
1768
+
1769
+ Database.prototype.prepareSync = function (sql)
1770
+ {
1771
+ var self = this;
1772
+ var stmt = {};
1773
+
1774
+ try {
1775
+ stmt = self.conn.createStatementSync();
1776
+ } catch (e) {
1777
+ self.checkConnectionError(e);
1778
+ throw e;
1779
+ }
1780
+
1781
+ stmt.queue = new SimpleQueue();
1782
+ stmt.db = self; // We need a reference to db to check for connection errors
1783
+
1784
+ try {
1785
+ stmt.prepareSync(sql);
1786
+ } catch (e) {
1787
+ self.checkConnectionError(e);
1788
+ throw e;
1789
+ }
1790
+
1791
+ return stmt;
1792
+ };
1793
+
1794
+ Database.prototype.setIsolationLevel = function(isolationLevel)
1795
+ {
1796
+ var self = this;
1797
+ try {
1798
+ self.conn.setIsolationLevel(isolationLevel);
1799
+ } catch (e) {
1800
+ self.checkConnectionError(e);
1801
+ throw e;
1802
+ }
1803
+ return true;
1804
+ };
1805
+
1806
+ const MAXINFO_LEN = 256; // odbc.C CLI_MAXINFO_LEN
1807
+ Database.prototype.getInfoSync = function(infoType, infoLen)
1808
+ {
1809
+ // infoType - mandatory
1810
+ // infoLen - optional
1811
+
1812
+ var self = this;
1813
+ if (!self.connected)
1814
+ {
1815
+ throw ({ message : "Connection not open."});
1816
+ }
1817
+ if (Number.isInteger(infoType) === false) {
1818
+ return { message : "Invalid infoType requested."};
1819
+ }
1820
+ if (Number.isInteger(infoLen) === false) {
1821
+ infoLen = MAXINFO_LEN;
1822
+ }
1823
+
1824
+ try {
1825
+ return self.conn.getInfoSync(infoType, infoLen);
1826
+ } catch (e) {
1827
+ self.checkConnectionError(e);
1828
+ throw e;
1829
+ }
1830
+ } //getInfoSync
1831
+
1832
+ Database.prototype.getInfo = function (infoType, infoLen, cb)
1833
+ {
1834
+ // infoType - mandatory
1835
+ // infoLen - optional
1836
+ // cb - optional. If not cb, then return promise
1837
+
1838
+ var self = this, deferred;
1839
+
1840
+ //support for promises
1841
+ if (!cb && typeof infoLen !== 'function')
1842
+ {
1843
+ deferred = createDeferred();
1844
+ }
1845
+ // For (infoType, cb)
1846
+ if (typeof(infoLen) === 'function')
1847
+ {
1848
+ cb = infoLen;
1849
+ infoLen = MAXINFO_LEN;
1850
+ }
1851
+ if (Number.isInteger(infoLen) === false) {
1852
+ infoLen = MAXINFO_LEN;
1853
+ }
1854
+
1855
+ self.queue.push(function (next)
1856
+ {
1857
+ exports.debug && console.log(getElapsedTime(), "odbc.js: infoType => ", infoType);
1858
+ if (!self.connected) {
1859
+ deferred ? deferred.reject(connError) : cb(connError);
1860
+ return next();
1861
+ }
1862
+
1863
+ if (Number.isInteger(infoType) === false) {
1864
+ var err = { message : "Invalid infoType used, " + infoType};
1865
+ deferred ? deferred.reject(err) : cb(err);
1866
+ return next();
1867
+ }
1868
+
1869
+ self.conn.getInfo(infoType, infoLen, function (err, value)
1870
+ {
1871
+ if (err)
1872
+ {
1873
+ self.checkConnectionError(err);
1874
+ deferred ? deferred.reject(err) : cb(err);
1875
+ return next();
1876
+ }
1877
+ deferred ? deferred.resolve(value) : cb(null, value);
1878
+ return next();
1879
+ });
1880
+ });
1881
+ if(deferred) return deferred.promise;
1882
+ } //getInfo
1883
+
1884
+ Database.prototype.getTypeInfoSync = function(dataType)
1885
+ {
1886
+ // infoType - mandatory
1887
+
1888
+ var self = this;
1889
+ var stmt = 0;
1890
+ var data = [];
1891
+ if (!self.connected)
1892
+ {
1893
+ throw ({ message : "Connection not open."});
1894
+ }
1895
+ if (Number.isInteger(dataType) === false) {
1896
+ throw { message : "Invalid dataType used, " + dataType};
1897
+ }
1898
+
1899
+ try {
1900
+ stmt = self.conn.getTypeInfoSync(dataType);
1901
+ data = stmt.fetchAllSync();
1902
+ stmt.closeSync();
1903
+ return data;
1904
+ } catch (e) {
1905
+ self.checkConnectionError(e);
1906
+ throw e;
1907
+ }
1908
+ } //getTypeInfoSync
1909
+
1910
+ Database.prototype.getTypeInfo = function (dataType, cb)
1911
+ {
1912
+ // dataType - mandatory
1913
+ // cb - optional. If not cb, then return promise
1914
+
1915
+ var self = this, deferred;
1916
+
1917
+ if (typeof dataType === 'function')
1918
+ {
1919
+ cb = dataType;
1920
+ }
1921
+ //support for promises
1922
+ if (!cb && typeof dataType !== 'function')
1923
+ {
1924
+ deferred = createDeferred();
1925
+ }
1926
+
1927
+ self.queue.push(function (next)
1928
+ {
1929
+ exports.debug && console.log(getElapsedTime(), "odbc.js: dataType => ", dataType);
1930
+ if (!self.connected) {
1931
+ deferred ? deferred.reject(connError) : cb(connError);
1932
+ return next();
1933
+ }
1934
+
1935
+ if (Number.isInteger(dataType) === false) {
1936
+ var err = { message : "Invalid dataType." };
1937
+ if (typeof dataType === 'function') {
1938
+ err = { message : "Missing dataType." };
1939
+ }
1940
+ deferred ? deferred.reject(err) : cb(err);
1941
+ return next();
1942
+ }
1943
+
1944
+ self.conn.getTypeInfo(dataType, function (err, result)
1945
+ {
1946
+ if (err) {
1947
+ self.checkConnectionError(err);
1948
+ deferred ? deferred.reject(err) : cb(err, false);
1949
+ return next();
1950
+ }
1951
+
1952
+ result.fetchAll(function (err, data)
1953
+ {
1954
+ result.closeSync();
1955
+ if(err) {
1956
+ self.checkConnectionError(err);
1957
+ deferred ? deferred.reject(err) : cb(err, data);
1958
+ } else {
1959
+ deferred ? deferred.resolve(data) : cb(err, data);
1960
+ }
1961
+ return next();
1962
+ });
1963
+ });
1964
+ });
1965
+ if(deferred) return deferred.promise;
1966
+ } //getTypeInfo
1967
+
1968
+ Database.prototype.getFunctionsSync = function(functionId)
1969
+ {
1970
+ // functionId - mandatory
1971
+
1972
+ var self = this;
1973
+ var fExists = 0;
1974
+ if (!self.connected)
1975
+ {
1976
+ throw ({ message : "Connection not open."});
1977
+ }
1978
+ if (Number.isInteger(functionId) === false) {
1979
+ return { message : "Invalid functionId."};
1980
+ }
1981
+
1982
+ try {
1983
+ fExists = self.conn.getFunctionsSync(functionId);
1984
+ } catch (e) {
1985
+ self.checkConnectionError(e);
1986
+ throw e;
1987
+ }
1988
+ if(fExists)
1989
+ {
1990
+ if(functionId) return true;
1991
+ else
1992
+ {
1993
+ var functionMap = {};
1994
+ var i = 0;
1995
+ for ( i = 1; i < 100; i++ )
1996
+ {
1997
+ if(fExists[i])
1998
+ {
1999
+ functionMap[macro.functionids[i]] = true;
2000
+ }
2001
+ else
2002
+ {
2003
+ functionMap[i] = false;
2004
+ }
2005
+ }
2006
+ return functionMap;
2007
+ }
2008
+ }
2009
+ else return false;
2010
+ } //getFunctionsSync
2011
+
2012
+ Database.prototype.getFunctions = function (functionId, cb)
2013
+ {
2014
+ // functionId - mandatory
2015
+ // cb - optional. If not cb, then return promise
2016
+
2017
+ var self = this, deferred;
2018
+
2019
+ if (typeof(functionId) === 'function')
2020
+ {
2021
+ cb = functionId;
2022
+ functionId = null;
2023
+ }
2024
+ //support for promises
2025
+ if (!cb)
2026
+ {
2027
+ deferred = createDeferred();
2028
+ }
2029
+
2030
+ self.queue.push(function (next)
2031
+ {
2032
+ exports.debug && console.log(getElapsedTime(), "odbc.js: functionId => ", functionId);
2033
+ if (!self.connected) {
2034
+ deferred ? deferred.reject(connError) : cb(connError);
2035
+ return next();
2036
+ }
2037
+
2038
+ if (Number.isInteger(functionId) === false) {
2039
+ var err = { message : "Invalid functionId = " + functionId};
2040
+ deferred ? deferred.reject(err) : cb(err);
2041
+ return next();
2042
+ }
2043
+
2044
+ self.conn.getFunctions(functionId, function (err, value)
2045
+ {
2046
+ if (err)
2047
+ {
2048
+ self.checkConnectionError(err);
2049
+ deferred ? deferred.reject(err) : cb(err);
2050
+ return next();
2051
+ }
2052
+ var result = false;
2053
+ if(value)
2054
+ {
2055
+ if(functionId) result = true;
2056
+ else
2057
+ {
2058
+ var functionMap = {};
2059
+ var i = 0;
2060
+ for ( i = 1; i < 100; i++ )
2061
+ {
2062
+ if(value[i])
2063
+ {
2064
+ functionMap[macro.functionids[i]] = true;
2065
+ }
2066
+ else
2067
+ {
2068
+ functionMap[i] = false;
2069
+ }
2070
+ }
2071
+ result = functionMap;
2072
+ }
2073
+ }
2074
+ deferred ? deferred.resolve(result) : cb(null, result);
2075
+ return next();
2076
+ });
2077
+ });
2078
+ if(deferred) return deferred.promise;
2079
+ } //getFunctions
2080
+
2081
+ // Function to set connection level attributes
2082
+ Database.prototype.setAttr = function (attr, value, cb)
2083
+ {
2084
+ // attr, value - mandatory
2085
+ // cb - optional. If not cb, then return promise
2086
+
2087
+ var self = this, deferred;
2088
+
2089
+ //support for promises
2090
+ if (!cb)
2091
+ {
2092
+ deferred = createDeferred();
2093
+ }
2094
+
2095
+ self.queue.push(function (next)
2096
+ {
2097
+ exports.debug && console.log(getElapsedTime(),
2098
+ "odbc.js:setAttr() Attribute = ", attr, ", Value = ", value);
2099
+ if (!self.connected) {
2100
+ deferred ? deferred.reject(connError) : cb(connError);
2101
+ return next();
2102
+ }
2103
+
2104
+ if (Number.isInteger(attr) === false) {
2105
+ var connattr = macro.connAttributes[attr];
2106
+ if (Number.isInteger(connattr) === false) {
2107
+ var err = { message : "Invalid attr = " + attr};
2108
+ deferred ? deferred.reject(err) : cb(err);
2109
+ return next();
2110
+ } else {
2111
+ attr = connattr;
2112
+ }
2113
+ }
2114
+
2115
+ self.conn.setAttr(attr, value, function (err)
2116
+ {
2117
+ if (err)
2118
+ {
2119
+ self.checkConnectionError(err);
2120
+ deferred ? deferred.reject(err) : cb(err);
2121
+ return next();
2122
+ }
2123
+ deferred ? deferred.resolve(true) : cb(null, true);
2124
+ return next();
2125
+ });
2126
+ });
2127
+ if(deferred) return deferred.promise;
2128
+ } //setAttr
2129
+
2130
+ // Async Function to set connection level attributes
2131
+ Database.prototype.setAttrSync = function (attr, value)
2132
+ {
2133
+ // attr, value - mandatory
2134
+ var self = this;
2135
+
2136
+ exports.debug && console.log(getElapsedTime(),
2137
+ "odbc.js:setAttrSync() Attribute = ", attr, ", Value = ", value);
2138
+
2139
+ if (!self.connected) {
2140
+ return (connError);
2141
+ }
2142
+ if (Number.isInteger(attr) === false) {
2143
+ return { message : "Invalid Attribute."};
2144
+ }
2145
+
2146
+ try {
2147
+ return self.conn.setAttrSync(attr, value);
2148
+ } catch (e) {
2149
+ self.checkConnectionError(e);
2150
+ return e;
2151
+ }
2152
+ }; // setAttrSync
2153
+
2154
+ // cancel - Cancel an executing SQL statement
2155
+ // This calls SQLCancel on the statement handle to cancel a long-running query.
2156
+ // Must be called from a different thread/context than the executing query.
2157
+ // Arguments: stmt - the statement object to cancel (required)
2158
+ // cb - callback function (optional, returns Promise if omitted)
2159
+ Database.prototype.cancel = function (stmt, cb)
2160
+ {
2161
+ var self = this, deferred;
2162
+
2163
+ if (!stmt || typeof stmt === 'function') {
2164
+ var err = new Error("cancel() requires a statement object as the first argument");
2165
+ if (typeof stmt === 'function') {
2166
+ return stmt(err);
2167
+ }
2168
+ throw err;
2169
+ }
2170
+
2171
+ //support for promises
2172
+ if (!cb)
2173
+ {
2174
+ deferred = createDeferred();
2175
+ }
2176
+
2177
+ self.queue.push(function (next)
2178
+ {
2179
+ exports.debug && console.log(getElapsedTime(), "odbc.js:cancel()");
2180
+ if (!self.connected) {
2181
+ deferred ? deferred.reject(connError) : cb(connError);
2182
+ return next();
2183
+ }
2184
+
2185
+ try {
2186
+ self.conn.cancel(stmt, function (err, result)
2187
+ {
2188
+ if (err)
2189
+ {
2190
+ self.checkConnectionError(err);
2191
+ deferred ? deferred.reject(err) : cb(err);
2192
+ return next();
2193
+ }
2194
+ deferred ? deferred.resolve(result) : cb(null, result);
2195
+ return next();
2196
+ });
2197
+ } catch (e) {
2198
+ self.checkConnectionError(e);
2199
+ deferred ? deferred.reject(e) : cb(e);
2200
+ return next();
2201
+ }
2202
+ });
2203
+ if(deferred) return deferred.promise;
2204
+ }; // cancel
2205
+
2206
+ // cancelSync - Synchronous version of cancel
2207
+ // Arguments: stmt - the statement object to cancel (required)
2208
+ Database.prototype.cancelSync = function (stmt)
2209
+ {
2210
+ var self = this;
2211
+
2212
+ exports.debug && console.log(getElapsedTime(), "odbc.js:cancelSync()");
2213
+
2214
+ if (!stmt) {
2215
+ throw new Error("cancelSync() requires a statement object");
2216
+ }
2217
+
2218
+ if (!self.connected) {
2219
+ return connError;
2220
+ }
2221
+
2222
+ try {
2223
+ return self.conn.cancelSync(stmt);
2224
+ } catch (e) {
2225
+ self.checkConnectionError(e);
2226
+ return e;
2227
+ }
2228
+ }; // cancelSync
2229
+
2230
+ //Proxy all of the ODBCStatement functions so that they are queued
2231
+ if( !odbc.ODBCStatement.prototype._execute ) { //issue #514
2232
+ odbc.ODBCStatement.prototype._execute = odbc.ODBCStatement.prototype.execute;
2233
+ odbc.ODBCStatement.prototype._executeSync = odbc.ODBCStatement.prototype.executeSync;
2234
+ odbc.ODBCStatement.prototype._executeDirect = odbc.ODBCStatement.prototype.executeDirect;
2235
+ odbc.ODBCStatement.prototype._executeDirectSync = odbc.ODBCStatement.prototype.executeDirectSync;
2236
+ odbc.ODBCStatement.prototype._executeNonQuery = odbc.ODBCStatement.prototype.executeNonQuery;
2237
+ odbc.ODBCStatement.prototype._executeNonQuerySync = odbc.ODBCStatement.prototype.executeNonQuerySync;
2238
+ odbc.ODBCStatement.prototype._prepare = odbc.ODBCStatement.prototype.prepare;
2239
+ odbc.ODBCStatement.prototype._bind = odbc.ODBCStatement.prototype.bind;
2240
+ odbc.ODBCStatement.prototype._bindSync = odbc.ODBCStatement.prototype.bindSync;
2241
+ odbc.ODBCStatement.prototype._setAttr = odbc.ODBCStatement.prototype.setAttr;
2242
+ odbc.ODBCStatement.prototype._setAttrSync = odbc.ODBCStatement.prototype.setAttrSync;
2243
+ odbc.ODBCStatement.prototype._close = odbc.ODBCStatement.prototype.close;
2244
+ odbc.ODBCStatement.prototype._primaryKeys = odbc.ODBCStatement.prototype.primaryKeys;
2245
+ odbc.ODBCStatement.prototype._primaryKeysSync = odbc.ODBCStatement.prototype.primaryKeysSync;
2246
+ odbc.ODBCStatement.prototype._foreignKeys = odbc.ODBCStatement.prototype.foreignKeys;
2247
+ odbc.ODBCStatement.prototype._foreignKeysSync = odbc.ODBCStatement.prototype.foreignKeysSync;
2248
+ odbc.ODBCStatement.prototype._procedures = odbc.ODBCStatement.prototype.procedures;
2249
+ odbc.ODBCStatement.prototype._proceduresSync = odbc.ODBCStatement.prototype.proceduresSync;
2250
+ odbc.ODBCStatement.prototype._procedureColumns = odbc.ODBCStatement.prototype.procedureColumns;
2251
+ odbc.ODBCStatement.prototype._procedureColumnsSync = odbc.ODBCStatement.prototype.procedureColumnsSync;
2252
+ odbc.ODBCStatement.prototype._paramData = odbc.ODBCStatement.prototype.paramData;
2253
+ odbc.ODBCStatement.prototype._paramDataSync = odbc.ODBCStatement.prototype.paramDataSync;
2254
+ odbc.ODBCStatement.prototype._putData = odbc.ODBCStatement.prototype.putData;
2255
+ odbc.ODBCStatement.prototype._putDataSync = odbc.ODBCStatement.prototype.putDataSync;
2256
+ odbc.ODBCStatement.prototype._executeForStreaming = odbc.ODBCStatement.prototype.executeForStreaming;
2257
+ odbc.ODBCStatement.prototype._executeForStreamingSync = odbc.ODBCStatement.prototype.executeForStreamingSync;
2258
+ odbc.ODBCStatement.prototype._cancel = odbc.ODBCStatement.prototype.cancel;
2259
+ odbc.ODBCStatement.prototype._cancelSync = odbc.ODBCStatement.prototype.cancelSync;
2260
+
2261
+ //Proxy all of the ODBCResult functions so that they are queued
2262
+ odbc.ODBCResult.prototype._fetch = odbc.ODBCResult.prototype.fetch;
2263
+ odbc.ODBCResult.prototype._fetchAll = odbc.ODBCResult.prototype.fetchAll;
2264
+ odbc.ODBCResult.prototype._fetchN = odbc.ODBCResult.prototype.fetchN;
2265
+ odbc.ODBCResult.prototype._getData = odbc.ODBCResult.prototype.getData;
2266
+ odbc.ODBCResult.prototype._close = odbc.ODBCResult.prototype.close;
2267
+ }
2268
+
2269
+ odbc.ODBCStatement.prototype.execute = function (params, cb)
2270
+ {
2271
+ var self = this, deferred;
2272
+ self.queue = self.queue || new SimpleQueue();
2273
+
2274
+ if (!cb) {
2275
+ if (typeof params === 'function') {
2276
+ cb = params;
2277
+ params = null;
2278
+ }
2279
+ else {
2280
+ deferred = createDeferred();
2281
+ }
2282
+ }
2283
+
2284
+ self.queue.push(function (next) {
2285
+ //If params were passed to this function, then bind them and
2286
+ //then execute.
2287
+ if (params)
2288
+ {
2289
+ // Resolve any Readable stream Data before proceeding
2290
+ resolveStreamParams(params, function(streamErr) {
2291
+ if (streamErr) {
2292
+ deferred ? deferred.reject(streamErr) : cb(streamErr);
2293
+ return next();
2294
+ }
2295
+ if(Array.isArray(params))
2296
+ {
2297
+ var err = parseParams(params);
2298
+ if(err)
2299
+ {
2300
+ if(deferred)
2301
+ {
2302
+ deferred.reject(err);
2303
+ } else
2304
+ {
2305
+ cb(err);
2306
+ }
2307
+ }
2308
+ }
2309
+ if(exports.debug) {
2310
+ if(logParams) {
2311
+ console.log("%s odbc.js:execute() bind params = ", getElapsedTime(), params);
2312
+ } else {
2313
+ console.log("%s odbc.js:execute()", getElapsedTime());
2314
+ }
2315
+ }
2316
+ self._bind(params, function (err) {
2317
+ if (err) {
2318
+ self.db.checkConnectionError(err);
2319
+ deferred ? deferred.reject(err) : cb(err);
2320
+ return next();
2321
+ }
2322
+
2323
+ self._execute(function (err, result, outparams) {
2324
+ if (err) {
2325
+ self.db.checkConnectionError(err);
2326
+ }
2327
+
2328
+ if(deferred) {
2329
+ if(err) {
2330
+ deferred.reject(err);
2331
+ } else {
2332
+ if(outparams) {
2333
+ deferred.resolve([result, outparams]);
2334
+ } else {
2335
+ deferred.resolve(result);
2336
+ }
2337
+ }
2338
+ } else {
2339
+ cb(err, result, outparams);
2340
+ }
2341
+
2342
+ return next();
2343
+ });
2344
+ });
2345
+ }); // resolveStreamParams
2346
+ }
2347
+ //Otherwise execute and pop the next bind call
2348
+ else
2349
+ {
2350
+ self._execute(function (err, result, outparams) {
2351
+ if (err) {
2352
+ self.db.checkConnectionError(err);
2353
+ }
2354
+
2355
+ if(deferred) {
2356
+ if(err) {
2357
+ deferred.reject(err);
2358
+ } else {
2359
+ if(outparams) {
2360
+ deferred.resolve([result, outparams]);
2361
+ } else {
2362
+ deferred.resolve(result);
2363
+ }
2364
+ }
2365
+ } else {
2366
+ cb(err, result, outparams);
2367
+ }
2368
+
2369
+ //NOTE: We only execute the next queued bind call after
2370
+ // we have called execute() or executeNonQuery(). This ensures
2371
+ // that we don't call a bind() a bunch of times without ever
2372
+ // actually executing that bind. Not
2373
+ self.bindQueue && self.bindQueue.next();
2374
+
2375
+ return next();
2376
+ });
2377
+ }
2378
+ });
2379
+ return deferred ? deferred.promise : null;
2380
+ };
2381
+
2382
+ odbc.ODBCStatement.prototype.executeSync = function (params)
2383
+ {
2384
+ var self = this, err;
2385
+
2386
+ //If params are passed to this function, first bind them and
2387
+ //then execute.
2388
+ if (params)
2389
+ {
2390
+ err = self.bindSync(params);
2391
+ if(err !== true) console.log(err);
2392
+ }
2393
+ return self._executeSync();
2394
+ };
2395
+
2396
+ /*
2397
+ * convertRowsToColumns
2398
+ * Convert row-wise array data to column-wise ARRAY parameters.
2399
+ * rows: Array of arrays, where each inner array is one row of values.
2400
+ * columns (optional): Array of column descriptors with {DataType, CType, Length}.
2401
+ * Returns object with {params, ArraySize} on success, or {error} on failure.
2402
+ */
2403
+ function convertRowsToColumns(rows, columns) {
2404
+ if (!Array.isArray(rows) || rows.length === 0) {
2405
+ return { error: "rows must be a non-empty array." };
2406
+ }
2407
+
2408
+ var numRows = rows.length;
2409
+ var numCols = null;
2410
+
2411
+ for (var r = 0; r < numRows; r++) {
2412
+ if (!Array.isArray(rows[r])) {
2413
+ return { error: "Each element in rows must be an array. " +
2414
+ "Row " + r + " is not an array." };
2415
+ }
2416
+ if (numCols === null) {
2417
+ numCols = rows[r].length;
2418
+ } else if (rows[r].length !== numCols) {
2419
+ return { error: "All rows must have the same number of columns. " +
2420
+ "Row " + r + " has " + rows[r].length +
2421
+ " columns, expected " + numCols + "." };
2422
+ }
2423
+ }
2424
+
2425
+ if (numCols === 0) {
2426
+ return { error: "Rows must have at least one column." };
2427
+ }
2428
+
2429
+ if (columns && (!Array.isArray(columns) || columns.length !== numCols)) {
2430
+ return { error: "columns array length (" +
2431
+ (Array.isArray(columns) ? columns.length : 0) +
2432
+ ") must match the number of columns in rows (" +
2433
+ numCols + ")." };
2434
+ }
2435
+
2436
+ var params = [];
2437
+ for (var c = 0; c < numCols; c++) {
2438
+ var colData = new Array(numRows);
2439
+ for (var r = 0; r < numRows; r++) {
2440
+ colData[r] = rows[r][c];
2441
+ }
2442
+
2443
+ var param = { ParamType: "ARRAY", DataType: 1, Data: colData };
2444
+ if (columns && columns[c]) {
2445
+ if (columns[c].DataType !== undefined) param.DataType = columns[c].DataType;
2446
+ if (columns[c].CType !== undefined) param.CType = columns[c].CType;
2447
+ if (columns[c].SQLType !== undefined) param.SQLType = columns[c].SQLType;
2448
+ if (columns[c].Length !== undefined) param.Length = columns[c].Length;
2449
+ }
2450
+ params.push(param);
2451
+ }
2452
+
2453
+ return { params: params, ArraySize: numRows };
2454
+ }
2455
+
2456
+ /*
2457
+ * processRowsOption
2458
+ * If the query object has a 'rows' property, convert row-wise data to
2459
+ * column-wise ARRAY params and set ArraySize. Mutates the query object.
2460
+ * Returns an error string on failure, or undefined on success.
2461
+ */
2462
+ function processRowsOption(query) {
2463
+ if (typeof query !== 'object' || !query.rows) return;
2464
+
2465
+ var result = convertRowsToColumns(query.rows, query.columns);
2466
+ if (result.error) return result.error;
2467
+
2468
+ query.params = result.params;
2469
+ if (!query.ArraySize) query.ArraySize = result.ArraySize;
2470
+ delete query.rows;
2471
+ delete query.columns;
2472
+ }
2473
+
2474
+ function parseParams(params)
2475
+ {
2476
+ var err, prm, paramtype, ctype, sqltype, datatype, data, len;
2477
+ for (var i = 0; i < params.length; i++)
2478
+ {
2479
+ if(Object.prototype.toString.call(params[i]) == "[object Object]")
2480
+ {
2481
+ //{ParamType:"INPUT", DataType:"BLOB", Data:imgfile}
2482
+ //{"ParamType":"INPUT", CType:"BINARY", SQLType:"BLOB", Data:imgfile, Length:50}
2483
+ paramtype = 1; ctype = undefined; sqltype = undefined;
2484
+ datatype = undefined; data = undefined, len = 0;
2485
+ prm = params[i];
2486
+ if(prm.ParamType)
2487
+ {
2488
+ if(Number.isInteger(prm.ParamType))
2489
+ {
2490
+ if(prm.ParamType > 0 && prm.ParamType < 5)
2491
+ paramtype = prm.ParamType;
2492
+ }
2493
+ else if(prm.ParamType == "OUTPUT")
2494
+ paramtype = 4; // SQL_PARAM_OUTPUT
2495
+ else if(prm.ParamType == "INOUT")
2496
+ paramtype = 2; // SQL_PARAM_INPUT_OUTPUT
2497
+ else if(prm.ParamType == "FILE")
2498
+ paramtype = 3; // SQLBindFileToParam()
2499
+ }
2500
+
2501
+ if(prm.CType)
2502
+ {
2503
+ if(Number.isInteger(prm.CType))
2504
+ {
2505
+ ctype = prm.CType;
2506
+ }
2507
+ else if(prm.CType == "CHAR")
2508
+ ctype = 1;
2509
+ else if(prm.CType == "BINARY")
2510
+ ctype = -2;
2511
+ else if(prm.CType == "DOUBLE" || prm.CType == "DECIMAL")
2512
+ ctype = 8; // SQL_C_DOUBLE=8, SQL_DECIMAL=3
2513
+ else if(prm.CType == "INTEGER")
2514
+ ctype = 4;
2515
+ else if(prm.CType == "BIGINT")
2516
+ ctype = -25;
2517
+ }
2518
+
2519
+ // Either SQLType or DataType must be entered.
2520
+ // If SQLType is used, DataType will be ignored.
2521
+ if(prm.SQLType || prm.DataType)
2522
+ {
2523
+ var type = prm.SQLType || prm.DataType;
2524
+ if(Number.isInteger(type))
2525
+ {
2526
+ sqltype = type;
2527
+ }
2528
+ else if(type == "DOUBLE")
2529
+ {
2530
+ sqltype = 8; // SQL_DOUBLE
2531
+ if(!ctype) ctype = sqltype;
2532
+ }
2533
+ else if(type == "DECIMAL")
2534
+ {
2535
+ sqltype = 3; // SQL_DECIMAL
2536
+ if(!ctype) ctype = 8; // sql_C_DOUBLE
2537
+ }
2538
+ else if(type == "BIGINT")
2539
+ {
2540
+ sqltype = -5; // SQL_BIGINT
2541
+ if(!ctype) ctype = -25; // sql_C_BIGINT
2542
+ }
2543
+ else if(type == "CHAR")
2544
+ {
2545
+ sqltype = 1; // SQL_CHAR
2546
+ if(!ctype) ctype = sqltype;
2547
+ }
2548
+ else if(type == "BINARY")
2549
+ {
2550
+ sqltype = -2;
2551
+ if(!ctype) ctype = sqltype;
2552
+ }
2553
+ else if(type == "BLOB")
2554
+ {
2555
+ sqltype = -98; // SQL_BLOB
2556
+ if(!ctype) ctype = -2;
2557
+ }
2558
+ else if(type == "CLOB")
2559
+ {
2560
+ sqltype = -99;
2561
+ if(!ctype) ctype = 1;
2562
+ }
2563
+ else if(type == "DBCLOB")
2564
+ {
2565
+ sqltype = -350;
2566
+ if(!ctype) ctype = sqltype;
2567
+ }
2568
+ else if(type == "XML")
2569
+ {
2570
+ sqltype = -370;
2571
+ if(!ctype) ctype = 1;
2572
+ }
2573
+ else if(type == "GRAPHIC")
2574
+ {
2575
+ sqltype = -95;
2576
+ if(!ctype) ctype = -99; //SQL_C_DBCHAR
2577
+ }
2578
+ else if(type == "VARGRAPHIC")
2579
+ {
2580
+ sqltype = -96;
2581
+ if(!ctype) ctype = -99; //SQL_C_DBCHAR
2582
+ }
2583
+ else if(type == "LONGGRAPHIC")
2584
+ {
2585
+ sqltype = -97;
2586
+ if(!ctype) ctype = -99; //SQL_C_DBCHAR
2587
+ }
2588
+ }
2589
+ if(prm.Length > 0 && Number.isInteger(prm.Length))
2590
+ {
2591
+ len = prm.Length;
2592
+ }
2593
+
2594
+ if(prm.Data === undefined )
2595
+ {
2596
+ err = "odbc.js:parseParams =>Data is missing from " + JSON.stringify(prm);
2597
+ break;
2598
+ }
2599
+ if(Number.isInteger(prm.Data))
2600
+ {
2601
+ if(!ctype) ctype = -25; // SQL_C_SBIGINT
2602
+ if(!sqltype) sqltype = -5; // SQL_BIGINT
2603
+
2604
+ }
2605
+ else if( (paramtype == 4) && (prm.Data === "") )
2606
+ {
2607
+ prm.Data = "abc";
2608
+ }
2609
+ else if(Array.isArray(prm.Data) && prm.Data.length > 0 &&
2610
+ Buffer.isBuffer(prm.Data[0]) && prm.ParamType !== "ARRAY")
2611
+ {
2612
+ // Array of Buffers: data-at-exec chunked LOB insert.
2613
+ // (Column-wise ARRAY params also carry an Array of per-row
2614
+ // Buffers in Data, so ParamType:"ARRAY" must be excluded here.)
2615
+ paramtype = 5; // DATA_AT_EXEC_PARAM
2616
+ if(!ctype) ctype = -2; // SQL_C_BINARY
2617
+ if(!sqltype) sqltype = -98; // SQL_BLOB
2618
+ }
2619
+
2620
+ if(!ctype) ctype = 1;
2621
+ if(!sqltype) sqltype = 1;
2622
+ if(paramtype == 3) // For BindFileToParam()
2623
+ {
2624
+ ctype = 1;
2625
+ if(!((sqltype == -98) || (sqltype == -99) ||
2626
+ (sqltype == -350) || (sqltype == -370)))
2627
+ {
2628
+ err = "odbc.js:parseParams => DataType is missing form " + prm;
2629
+ break;
2630
+ }
2631
+ }
2632
+
2633
+ params[i] = [paramtype, ctype, sqltype, prm.Data, len];
2634
+ }
2635
+ //console.log(i + "th param = " + params[i]);
2636
+ }
2637
+ return err;
2638
+ }
2639
+
2640
+ /*
2641
+ * resolveStreamParams
2642
+ * Check if any param has a Readable stream as Data.
2643
+ * If so, collect all chunks from the stream and replace Data with
2644
+ * an array of Buffers. Calls cb(err) when done.
2645
+ * If no streams found, calls cb(null) immediately.
2646
+ */
2647
+ function resolveStreamParams(params, cb) {
2648
+ if (!Array.isArray(params)) return cb(null);
2649
+
2650
+ var pending = [];
2651
+ for (var i = 0; i < params.length; i++) {
2652
+ var p = params[i];
2653
+ if (p && typeof p === 'object' && !Array.isArray(p) &&
2654
+ !Buffer.isBuffer(p) && p.Data &&
2655
+ typeof p.Data === 'object' && p.Data !== null &&
2656
+ typeof p.Data.on === 'function' &&
2657
+ typeof p.Data.read === 'function')
2658
+ {
2659
+ pending.push({ index: i, stream: p.Data });
2660
+ }
2661
+ }
2662
+
2663
+ if (pending.length === 0) return cb(null);
2664
+
2665
+ var remaining = pending.length;
2666
+ var hasError = false;
2667
+
2668
+ for (var j = 0; j < pending.length; j++) {
2669
+ (function(item) {
2670
+ var chunks = [];
2671
+ item.stream.on('data', function(chunk) {
2672
+ if (!Buffer.isBuffer(chunk)) chunk = Buffer.from(chunk);
2673
+ chunks.push(chunk);
2674
+ });
2675
+ item.stream.on('end', function() {
2676
+ if (hasError) return;
2677
+ if (chunks.length === 0) chunks.push(Buffer.alloc(0));
2678
+ params[item.index].Data = chunks;
2679
+ remaining--;
2680
+ if (remaining === 0) cb(null);
2681
+ });
2682
+ item.stream.on('error', function(err) {
2683
+ if (!hasError) {
2684
+ hasError = true;
2685
+ cb(err);
2686
+ }
2687
+ });
2688
+ })(pending[j]);
2689
+ }
2690
+ }
2691
+
2692
+ if(Number.isInteger === undefined) // node.js < v0.12.0 do not support isInteger
2693
+ {
2694
+ Number.isInteger = function(x)
2695
+ {
2696
+ if((typeof x === 'number') && (x % 1 === 0)) return true;
2697
+ else return false;
2698
+ };
2699
+ }
2700
+
2701
+ odbc.ODBCStatement.prototype.executeDirect = function (sql, cb)
2702
+ {
2703
+ var self = this, deferred;
2704
+
2705
+ if(!cb) {
2706
+ deferred = createDeferred();
2707
+ }
2708
+ self.queue = self.queue || new SimpleQueue();
2709
+
2710
+ self.queue.push(function (next) {
2711
+ self._executeDirect(sql, function (err, result) {
2712
+ if(err) {
2713
+ deferred ? deferred.reject(err) : cb(err, result);
2714
+ } else {
2715
+ deferred ? deferred.resolve(result) : cb(err, result);
2716
+ }
2717
+
2718
+ return next();
2719
+ });
2720
+ });
2721
+ return deferred ? deferred.promise : null;
2722
+ };
2723
+
2724
+ odbc.ODBCStatement.prototype.executeNonQuery = function (params, cb)
2725
+ {
2726
+ var self = this, deferred;
2727
+
2728
+ if (!cb) {
2729
+ if (typeof params === 'function') {
2730
+ cb = params;
2731
+ params = null;
2732
+ }
2733
+ else {
2734
+ deferred = createDeferred();
2735
+ }
2736
+ }
2737
+ self.queue = self.queue || new SimpleQueue();
2738
+
2739
+ self.queue.push(function (next) {
2740
+ //If params were passed to this function, then bind them and
2741
+ //then executeNonQuery.
2742
+ if (params)
2743
+ {
2744
+ // Resolve any Readable stream Data before proceeding
2745
+ resolveStreamParams(params, function(streamErr) {
2746
+ if (streamErr) {
2747
+ deferred ? deferred.reject(streamErr) : cb(streamErr);
2748
+ return next();
2749
+ }
2750
+ if(Array.isArray(params))
2751
+ {
2752
+ var err = parseParams(params);
2753
+ if(err) deferred ? deferred.reject(err) : cb(err);
2754
+ }
2755
+ if(exports.debug) {
2756
+ if(logParams) {
2757
+ console.log("%s odbc.js:executeNonQuery() bind params = ", getElapsedTime(), params);
2758
+ } else {
2759
+ console.log("%s odbc.js:executeNonQuery()", getElapsedTime());
2760
+ }
2761
+ }
2762
+ self._bind(params, function (err) {
2763
+ if (err) {
2764
+ if(deferred)
2765
+ {
2766
+ deferred.reject(err);
2767
+ }
2768
+ else
2769
+ {
2770
+ cb && cb(err)
2771
+ }
2772
+ return next();
2773
+ }
2774
+
2775
+ self._executeNonQuery(function (err, result) {
2776
+ if(deferred) {
2777
+ if(err) {
2778
+ deferred.reject(err);
2779
+ } else {
2780
+ deferred.resolve(result);
2781
+ }
2782
+ } else {
2783
+ cb && cb(err, result);
2784
+ }
2785
+ return next();
2786
+ });
2787
+ });
2788
+ }); // resolveStreamParams
2789
+ }
2790
+ //Otherwise executeNonQuery and pop the next bind call
2791
+ else {
2792
+ self._executeNonQuery(function (err, result) {
2793
+ if(deferred) {
2794
+ if(err) {
2795
+ deferred.reject(err);
2796
+ } else {
2797
+ deferred.resolve(result);
2798
+ }
2799
+ } else {
2800
+ cb && cb(err, result);
2801
+ }
2802
+
2803
+ //NOTE: We only execute the next queued bind call after
2804
+ // we have called execute() or executeNonQuery(). This ensures
2805
+ // that we don't call a bind() a bunch of times without ever
2806
+ // actually executing that bind.
2807
+ self.bindQueue && self.bindQueue.next();
2808
+
2809
+ return next();
2810
+ });
2811
+ }
2812
+ });
2813
+ return deferred ? deferred.promise : null;
2814
+ };
2815
+
2816
+ odbc.ODBCStatement.prototype.executeNonQuerySync = function (params)
2817
+ {
2818
+ var self = this, err;
2819
+
2820
+ //If params are passed to this function, first bind them and
2821
+ //then execute.
2822
+ if (params)
2823
+ {
2824
+ err = self.bindSync(params);
2825
+ if(err !== true) console.log(err);
2826
+ }
2827
+ return self._executeNonQuerySync();
2828
+ };
2829
+
2830
+ odbc.ODBCStatement.prototype.prepare = function (sql, cb) {
2831
+ var self = this, deferred;
2832
+
2833
+ if(!cb) {
2834
+ deferred = createDeferred();
2835
+ }
2836
+ self.queue = self.queue || new SimpleQueue();
2837
+
2838
+ self.queue.push(function (next) {
2839
+ try {
2840
+ self._prepare(sql, function (err) {
2841
+ if(cb) {
2842
+ cb(err);
2843
+ } else {
2844
+ err ? deferred.reject(err) : deferred.resolve(true);
2845
+ }
2846
+ });
2847
+ } catch (ex) {
2848
+ cb ? cb(ex) : deferred.reject(ex);
2849
+ }
2850
+ return next();
2851
+ });
2852
+ return deferred ? deferred.promise : null;
2853
+ };
2854
+
2855
+ // Function to bind parameters before execute or executeSync
2856
+ odbc.ODBCStatement.prototype.bind = function (ary, cb) {
2857
+ var self = this, deferred;
2858
+
2859
+ if(!cb) {
2860
+ if (typeof ary === 'function') {
2861
+ cb = ary;
2862
+ ary = null;
2863
+ }
2864
+ else {
2865
+ deferred = createDeferred();
2866
+ }
2867
+ }
2868
+ self.bindQueue = self.bindQueue || new SimpleQueue();
2869
+
2870
+ self.bindQueue.push(function () {
2871
+ if(Array.isArray(ary))
2872
+ {
2873
+ var err = parseParams(ary);
2874
+ if(err) deferred ? deferred.reject(err) : cb(err);
2875
+ }
2876
+ if(exports.debug) {
2877
+ if(logParams) {
2878
+ console.log("%s odbc.js:bind() params = ", getElapsedTime(), ary);
2879
+ } else {
2880
+ console.log("%s odbc.js:bind()", getElapsedTime());
2881
+ }
2882
+ }
2883
+ self._bind(ary, function (err) {
2884
+ if(cb) {
2885
+ cb(err);
2886
+ } else {
2887
+ err ? deferred.reject(err) : deferred.resolve(true);
2888
+ }
2889
+
2890
+ //NOTE: we do not call next() here because
2891
+ //we want to pop the next bind call only
2892
+ //after the next execute call
2893
+ });
2894
+ });
2895
+ };
2896
+
2897
+ // Async Function to bind parameters before execute or executeSync
2898
+ odbc.ODBCStatement.prototype.bindSync = function (ary) {
2899
+ var self = this;
2900
+ if(Array.isArray(ary))
2901
+ {
2902
+ var err = parseParams(ary);
2903
+ if(err) return false;
2904
+ }
2905
+ if(exports.debug) {
2906
+ if(logParams) {
2907
+ console.log("%s odbc.js::bindSync() params = ", getElapsedTime(), ary);
2908
+ } else {
2909
+ console.log("%s odbc.js:bindSync()", getElapsedTime());
2910
+ }
2911
+ }
2912
+ return self._bindSync(ary);
2913
+ };
2914
+
2915
+ // Function to set statement attributes before execute or executeSync
2916
+ odbc.ODBCStatement.prototype.setAttr = function (attr, value, cb) {
2917
+ var self = this, deferred;
2918
+
2919
+ if(!cb) {
2920
+ deferred = createDeferred();
2921
+ }
2922
+ self.setAttrQueue = self.setAttrQueue || new SimpleQueue();
2923
+
2924
+ self.setAttrQueue.push(function () {
2925
+ exports.debug && console.log("%s odbc.js:setAttr() Attribute = ", getElapsedTime(), attr, ", value = ", value);
2926
+ self._setAttr(attr, value, function (err) {
2927
+ if(cb) {
2928
+ cb(err);
2929
+ } else {
2930
+ err ? deferred.reject(err) : deferred.resolve(true);
2931
+ }
2932
+ });
2933
+ });
2934
+ return deferred ? deferred.promise : null;
2935
+ };
2936
+
2937
+ // Async Function to set statement attributes before execute or executeSync
2938
+ odbc.ODBCStatement.prototype.setAttrSync = function (attr, value) {
2939
+ var self = this;
2940
+ exports.debug && console.log("%s odbc.js:setAttrSync() Attribute = ", getElapsedTime(), attr, ", Value = ", value);
2941
+ return self._setAttrSync(attr, value);
2942
+ };
2943
+
2944
+ // Async function to get primary key columns for a table.
2945
+ // stmt.primaryKeys(catalog, schema, table, callback) or
2946
+ // stmt.primaryKeys(catalog, schema, table) => returns Promise
2947
+ odbc.ODBCStatement.prototype.primaryKeys = function (catalog, schema, table, cb)
2948
+ {
2949
+ var self = this, deferred;
2950
+
2951
+ if (!cb) {
2952
+ deferred = createDeferred();
2953
+ }
2954
+ self.queue = self.queue || new SimpleQueue();
2955
+
2956
+ self.queue.push(function (next) {
2957
+ self._primaryKeys(catalog, schema, table, function (err, rows) {
2958
+ if (err) {
2959
+ deferred ? deferred.reject(err) : cb(err, []);
2960
+ } else {
2961
+ deferred ? deferred.resolve(rows) : cb(null, rows);
2962
+ }
2963
+ return next();
2964
+ });
2965
+ });
2966
+ return deferred ? deferred.promise : null;
2967
+ };
2968
+
2969
+ // Sync function to get primary key columns for a table.
2970
+ odbc.ODBCStatement.prototype.primaryKeysSync = function (catalog, schema, table)
2971
+ {
2972
+ var self = this;
2973
+ return self._primaryKeysSync(catalog, schema, table);
2974
+ };
2975
+
2976
+ // Async function to get foreign key columns for two tables.
2977
+ // stmt.foreignKeys(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable, callback) or
2978
+ // stmt.foreignKeys(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable) => returns Promise
2979
+ odbc.ODBCStatement.prototype.foreignKeys = function (pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable, cb)
2980
+ {
2981
+ var self = this, deferred;
2982
+
2983
+ if (!cb) {
2984
+ deferred = createDeferred();
2985
+ }
2986
+ self.queue = self.queue || new SimpleQueue();
2987
+
2988
+ self.queue.push(function (next) {
2989
+ self._foreignKeys(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable, function (err, rows) {
2990
+ if (err) {
2991
+ deferred ? deferred.reject(err) : cb(err, []);
2992
+ } else {
2993
+ deferred ? deferred.resolve(rows) : cb(null, rows);
2994
+ }
2995
+ return next();
2996
+ });
2997
+ });
2998
+ return deferred ? deferred.promise : null;
2999
+ };
3000
+
3001
+ // Sync function to get foreign key columns for two tables.
3002
+ odbc.ODBCStatement.prototype.foreignKeysSync = function (pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable)
3003
+ {
3004
+ var self = this;
3005
+ return self._foreignKeysSync(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable);
3006
+ };
3007
+
3008
+ // Async function to get a list of procedure names.
3009
+ // stmt.procedures(catalog, schema, procedure, callback) or
3010
+ // stmt.procedures(catalog, schema, procedure) => returns Promise
3011
+ odbc.ODBCStatement.prototype.procedures = function (catalog, schema, procedure, cb)
3012
+ {
3013
+ var self = this, deferred;
3014
+
3015
+ if (!cb) {
3016
+ deferred = createDeferred();
3017
+ }
3018
+ self.queue = self.queue || new SimpleQueue();
3019
+
3020
+ self.queue.push(function (next) {
3021
+ self._procedures(catalog, schema, procedure, function (err, rows) {
3022
+ if (err) {
3023
+ deferred ? deferred.reject(err) : cb(err, []);
3024
+ } else {
3025
+ deferred ? deferred.resolve(rows) : cb(null, rows);
3026
+ }
3027
+ return next();
3028
+ });
3029
+ });
3030
+ return deferred ? deferred.promise : null;
3031
+ };
3032
+
3033
+ // Sync function to get a list of procedure names.
3034
+ odbc.ODBCStatement.prototype.proceduresSync = function (catalog, schema, procedure)
3035
+ {
3036
+ var self = this;
3037
+ return self._proceduresSync(catalog, schema, procedure);
3038
+ };
3039
+
3040
+ // Async function to get parameter information for a procedure.
3041
+ // stmt.procedureColumns(catalog, schema, procedure, column, callback) or
3042
+ // stmt.procedureColumns(catalog, schema, procedure, column) => returns Promise
3043
+ odbc.ODBCStatement.prototype.procedureColumns = function (catalog, schema, procedure, column, cb)
3044
+ {
3045
+ var self = this, deferred;
3046
+
3047
+ if (!cb) {
3048
+ deferred = createDeferred();
3049
+ }
3050
+ self.queue = self.queue || new SimpleQueue();
3051
+
3052
+ self.queue.push(function (next) {
3053
+ self._procedureColumns(catalog, schema, procedure, column, function (err, rows) {
3054
+ if (err) {
3055
+ deferred ? deferred.reject(err) : cb(err, []);
3056
+ } else {
3057
+ deferred ? deferred.resolve(rows) : cb(null, rows);
3058
+ }
3059
+ return next();
3060
+ });
3061
+ });
3062
+ return deferred ? deferred.promise : null;
3063
+ };
3064
+
3065
+ // Sync function to get parameter information for a procedure.
3066
+ odbc.ODBCStatement.prototype.procedureColumnsSync = function (catalog, schema, procedure, column)
3067
+ {
3068
+ var self = this;
3069
+ return self._procedureColumnsSync(catalog, schema, procedure, column);
3070
+ };
3071
+
3072
+ /*
3073
+ * paramData - Get next parameter for which a data value is needed.
3074
+ * This function calls SQLParamData and is used with putData for sending
3075
+ * large data in chunks or for data-at-execution parameters.
3076
+ * Returns object: { needsData: boolean, paramIndex: number|null }
3077
+ * If callback is not provided, returns a Promise.
3078
+ */
3079
+ odbc.ODBCStatement.prototype.paramData = function (cb)
3080
+ {
3081
+ var self = this, deferred;
3082
+ self.queue = self.queue || new SimpleQueue();
3083
+
3084
+ if (!cb) {
3085
+ deferred = createDeferred();
3086
+ }
3087
+
3088
+ self.queue.push(function (next) {
3089
+ self._paramData(function (err, result) {
3090
+ if (err) {
3091
+ if (self.db) self.db.checkConnectionError(err);
3092
+ deferred ? deferred.reject(err) : cb(err);
3093
+ } else {
3094
+ deferred ? deferred.resolve(result) : cb(null, result);
3095
+ }
3096
+ return next();
3097
+ });
3098
+ });
3099
+ return deferred ? deferred.promise : null;
3100
+ };
3101
+
3102
+ /*
3103
+ * paramDataSync - Synchronously get next parameter for which a data value is needed.
3104
+ * Returns object: { needsData: boolean, paramIndex: number|null }
3105
+ */
3106
+ odbc.ODBCStatement.prototype.paramDataSync = function ()
3107
+ {
3108
+ var self = this;
3109
+ return self._paramDataSync();
3110
+ };
3111
+
3112
+ /*
3113
+ * putData - Send data value for a parameter.
3114
+ * This function calls SQLPutData and is used with paramData for sending
3115
+ * large data in chunks or for data-at-execution parameters.
3116
+ * data: Buffer or String containing the data to send
3117
+ * length: Optional length of data (defaults to buffer/string length)
3118
+ * If callback is not provided, returns a Promise.
3119
+ */
3120
+ odbc.ODBCStatement.prototype.putData = function (data, length, cb)
3121
+ {
3122
+ var self = this, deferred;
3123
+ self.queue = self.queue || new SimpleQueue();
3124
+
3125
+ // Handle optional length argument
3126
+ if (typeof length === 'function') {
3127
+ cb = length;
3128
+ length = undefined;
3129
+ }
3130
+
3131
+ if (!cb) {
3132
+ deferred = createDeferred();
3133
+ }
3134
+
3135
+ self.queue.push(function (next) {
3136
+ var args = length !== undefined ? [data, length] : [data];
3137
+ args.push(function (err, result) {
3138
+ if (err) {
3139
+ if (self.db) self.db.checkConnectionError(err);
3140
+ deferred ? deferred.reject(err) : cb(err);
3141
+ } else {
3142
+ deferred ? deferred.resolve(result) : cb(null, result);
3143
+ }
3144
+ return next();
3145
+ });
3146
+ self._putData.apply(self, args);
3147
+ });
3148
+ return deferred ? deferred.promise : null;
3149
+ };
3150
+
3151
+ /*
3152
+ * putDataSync - Synchronously send data value for a parameter.
3153
+ * data: Buffer or String containing the data to send
3154
+ * length: Optional length of data (defaults to buffer/string length)
3155
+ * Returns true on success.
3156
+ */
3157
+ odbc.ODBCStatement.prototype.putDataSync = function (data, length)
3158
+ {
3159
+ var self = this;
3160
+ if (length !== undefined) {
3161
+ return self._putDataSync(data, length);
3162
+ }
3163
+ return self._putDataSync(data);
3164
+ };
3165
+
3166
+ /*
3167
+ * executeForStreaming(callback)
3168
+ *
3169
+ * Execute the prepared statement but do NOT auto-complete the data-at-execution
3170
+ * loop. Returns { needsData: boolean } to indicate if paramData/putData calls
3171
+ * are required to send data for data-at-execution parameters.
3172
+ *
3173
+ * This is used for true streaming where data is sent incrementally via
3174
+ * paramData()/putData() rather than buffering all data upfront.
3175
+ */
3176
+ odbc.ODBCStatement.prototype.executeForStreaming = function (cb)
3177
+ {
3178
+ var self = this, deferred;
3179
+ self.queue = self.queue || new SimpleQueue();
3180
+
3181
+ if (!cb) {
3182
+ deferred = createDeferred();
3183
+ }
3184
+
3185
+ self.queue.push(function (next) {
3186
+ self._executeForStreaming(function (err, result) {
3187
+ if (err) {
3188
+ deferred ? deferred.reject(err) : cb(err);
3189
+ } else {
3190
+ deferred ? deferred.resolve(result) : cb(null, result);
3191
+ }
3192
+ return next();
3193
+ });
3194
+ });
3195
+
3196
+ return deferred ? deferred.promise : false;
3197
+ };
3198
+
3199
+ /*
3200
+ * executeForStreamingSync()
3201
+ *
3202
+ * Synchronous version. Returns { needsData: boolean }.
3203
+ */
3204
+ odbc.ODBCStatement.prototype.executeForStreamingSync = function ()
3205
+ {
3206
+ var self = this;
3207
+ return self._executeForStreamingSync();
3208
+ };
3209
+
3210
+ /*
3211
+ * executeWithStream(params, streamParamIndex, stream, cb)
3212
+ *
3213
+ * High-level helper for true streaming. Executes the statement and streams
3214
+ * data from a Readable stream to a data-at-execution parameter without
3215
+ * buffering the entire stream in memory.
3216
+ *
3217
+ * @param params - Array of parameters. The stream parameter should have
3218
+ * { ParamType: "INPUT", DataType: "BLOB"|"CLOB", Streaming: true }
3219
+ * @param streamParamIndex - Index of the parameter that will receive streamed data
3220
+ * @param stream - A Readable stream to read data from
3221
+ * @param cb - Callback function(err, result)
3222
+ *
3223
+ * Usage:
3224
+ * stmt.prepareSync("INSERT INTO tbl (id, data) VALUES (?, ?)");
3225
+ * stmt.bindSync([1, { ParamType: "INPUT", DataType: "BLOB", Streaming: true, Length: totalSize }]);
3226
+ * stmt.executeWithStream(1, fs.createReadStream('largefile.bin'), function(err) {
3227
+ * if (err) console.log(err);
3228
+ * else console.log("Streaming insert complete");
3229
+ * });
3230
+ */
3231
+ odbc.ODBCStatement.prototype.executeWithStream = function (streamParamIndex, stream, cb)
3232
+ {
3233
+ var self = this, deferred;
3234
+
3235
+ if (typeof stream === 'function') {
3236
+ cb = stream;
3237
+ stream = streamParamIndex;
3238
+ streamParamIndex = 0; // default to first param
3239
+ }
3240
+
3241
+ if (!cb) {
3242
+ deferred = createDeferred();
3243
+ }
3244
+
3245
+ function done(err, result) {
3246
+ if (err) {
3247
+ deferred ? deferred.reject(err) : cb(err);
3248
+ } else {
3249
+ deferred ? deferred.resolve(result) : cb(null, result);
3250
+ }
3251
+ }
3252
+
3253
+ // Execute - this will return SQL_NEED_DATA if data-at-exec params exist
3254
+ self.executeForStreaming(function (err, execResult) {
3255
+ if (err) return done(err);
3256
+
3257
+ if (!execResult.needsData) {
3258
+ // No data-at-exec params, nothing to stream
3259
+ return done(null, { streamed: false });
3260
+ }
3261
+
3262
+ // Check which param needs data
3263
+ self.paramData(function (err, paramResult) {
3264
+ if (err) return done(err);
3265
+
3266
+ if (!paramResult.needsData) {
3267
+ // Execution completed, no more data needed
3268
+ return done(null, { streamed: false });
3269
+ }
3270
+
3271
+ // Stream data for this parameter
3272
+ var hasError = false;
3273
+
3274
+ stream.on('data', function (chunk) {
3275
+ if (hasError) return;
3276
+
3277
+ // Pause stream for backpressure
3278
+ stream.pause();
3279
+
3280
+ // Ensure chunk is a Buffer
3281
+ if (!Buffer.isBuffer(chunk)) {
3282
+ chunk = Buffer.from(chunk);
3283
+ }
3284
+
3285
+ // Send chunk via putData
3286
+ self.putData(chunk, function (err) {
3287
+ if (err) {
3288
+ hasError = true;
3289
+ stream.destroy();
3290
+ return done(err);
3291
+ }
3292
+ // Resume stream
3293
+ stream.resume();
3294
+ });
3295
+ });
3296
+
3297
+ stream.on('end', function () {
3298
+ if (hasError) return;
3299
+
3300
+ // Call paramData to complete this param and move to next (or complete)
3301
+ self.paramData(function (err, result) {
3302
+ if (err) return done(err);
3303
+
3304
+ if (result.needsData) {
3305
+ // More params need data - for simplicity, this version supports single stream
3306
+ return done(new Error("Multiple streaming params not supported in this call"));
3307
+ }
3308
+
3309
+ done(null, { streamed: true, paramIndex: streamParamIndex });
3310
+ });
3311
+ });
3312
+
3313
+ stream.on('error', function (err) {
3314
+ hasError = true;
3315
+ done(err);
3316
+ });
3317
+
3318
+ // Start reading
3319
+ stream.resume();
3320
+ });
3321
+ });
3322
+
3323
+ return deferred ? deferred.promise : false;
3324
+ };
3325
+
3326
+ // Async funcion to close a statement object to free statement handle
3327
+ // If no callback function, then return Promise.
3328
+ odbc.ODBCStatement.prototype.close = function (closeOption, cb)
3329
+ {
3330
+ var self = this, deferred;
3331
+ self.queue = self.queue || new SimpleQueue();
3332
+
3333
+ if (!cb)
3334
+ {
3335
+ if (typeof closeOption === 'function') {
3336
+ cb = closeOption;
3337
+ closeOption = 1;
3338
+ } else {
3339
+ deferred = createDeferred();
3340
+ }
3341
+ if(!closeOption) closeOption = 1;
3342
+ }
3343
+
3344
+ self.queue.push(function (next) {
3345
+ self._close(closeOption, function (err) {
3346
+ if( err ) {
3347
+ deferred ? deferred.reject(err) : cb(err);
3348
+ } else {
3349
+ deferred ? deferred.resolve(false) : cb(null);
3350
+ }
3351
+
3352
+ return next();
3353
+ });
3354
+ });
3355
+ return deferred ? deferred.promise : false;
3356
+ };
3357
+
3358
+ // Cancel - Cancel an executing SQL statement on this statement handle.
3359
+ // This can be called from another thread to cancel a long-running query.
3360
+ // If no callback function, then return Promise.
3361
+ odbc.ODBCStatement.prototype.cancel = function (cb)
3362
+ {
3363
+ var self = this, deferred;
3364
+ self.queue = self.queue || new SimpleQueue();
3365
+
3366
+ if (!cb)
3367
+ {
3368
+ deferred = createDeferred();
3369
+ }
3370
+
3371
+ self.queue.push(function (next) {
3372
+ self._cancel(function (err, result) {
3373
+ if( err ) {
3374
+ self.db && self.db.checkConnectionError(err);
3375
+ deferred ? deferred.reject(err) : cb(err);
3376
+ } else {
3377
+ deferred ? deferred.resolve(result) : cb(null, result);
3378
+ }
3379
+
3380
+ return next();
3381
+ });
3382
+ });
3383
+ return deferred ? deferred.promise : false;
3384
+ };
3385
+
3386
+ // CancelSync - Synchronous version of cancel.
3387
+ // Calls SQLCancel to cancel an executing statement.
3388
+ odbc.ODBCStatement.prototype.cancelSync = function ()
3389
+ {
3390
+ var self = this;
3391
+ try {
3392
+ return self._cancelSync();
3393
+ } catch (e) {
3394
+ self.db && self.db.checkConnectionError(e);
3395
+ throw e;
3396
+ }
3397
+ };
3398
+
3399
+ // Async function to fetch single row of data post execute or executeSync call.
3400
+ // result.fetch(option, callback);
3401
+ // result.fetch({fetchMode:4|3|0}); default value of fetchMode is 4 - OBJECT
3402
+ // fetchMode:0 => will not return any data, we need to retrieve data using
3403
+ // getData() or getDataSync() APIs.
3404
+ // If callback function is not provided, it will return Promise.
3405
+ // Below is the Promisified implementation of fetch() function.
3406
+ odbc.ODBCResult.prototype.fetch = function (option, cb) {
3407
+ var self = this, deferred;
3408
+ self.queue = self.queue || new SimpleQueue();
3409
+
3410
+ if (!cb)
3411
+ {
3412
+ if(typeof option === 'function')
3413
+ {
3414
+ cb = option;
3415
+ option = undefined;
3416
+ }
3417
+ else
3418
+ {
3419
+ deferred = createDeferred();
3420
+ }
3421
+ }
3422
+ if (typeof option === 'object')
3423
+ {
3424
+ if (option.fetchMode !=0 && option.fetchMode !=3 && option.fetchMode !=4)
3425
+ {
3426
+ var error = "Invalid fetchMode!";
3427
+ !cb ? deferred.reject(error) : cb(error);
3428
+ } else {
3429
+ self.fetchMode = option.fetchMode;
3430
+ }
3431
+ } else {
3432
+ option = undefined;
3433
+ }
3434
+
3435
+ if (option)
3436
+ {
3437
+ self.queue.push(function (next) {
3438
+ self._fetch(option, function (err, data) {
3439
+ if( err ) {
3440
+ deferred ? deferred.reject(err) : cb(err, null);
3441
+ } else {
3442
+ deferred ? deferred.resolve(data) : cb(null, data);
3443
+ }
3444
+ return next();
3445
+ });
3446
+ });
3447
+ }
3448
+ else
3449
+ {
3450
+ self.queue.push(function (next) {
3451
+ self._fetch(function (err, data) {
3452
+ if( err ) {
3453
+ deferred ? deferred.reject(err) : cb(err, null);
3454
+ } else {
3455
+ deferred ? deferred.resolve(data) : cb(null, data);
3456
+ }
3457
+ return next();
3458
+ });
3459
+ });
3460
+ }
3461
+ return deferred ? deferred.promise : false;
3462
+ };
3463
+
3464
+ odbc.ODBCResult.prototype.fetchAll = function (option, cb)
3465
+ {
3466
+ var self = this, deferred;
3467
+
3468
+ if (!cb)
3469
+ {
3470
+ if(typeof option === 'function')
3471
+ {
3472
+ cb = option;
3473
+ option = undefined;
3474
+ }
3475
+ else
3476
+ {
3477
+ deferred = createDeferred();
3478
+ }
3479
+ }
3480
+ if (typeof option === 'object')
3481
+ {
3482
+ if (option.fetchMode !=3 && option.fetchMode !=4)
3483
+ {
3484
+ var error = "Invalid fetchMode!";
3485
+ !cb ? deferred.reject(error) : cb(error);
3486
+ } else {
3487
+ self.fetchMode = option.fetchMode;
3488
+ }
3489
+ } else {
3490
+ option = undefined;
3491
+ }
3492
+
3493
+ if (option)
3494
+ {
3495
+ self._fetchAll(option, function (err, data, count) {
3496
+ if( err ) {
3497
+ deferred ? deferred.reject(err) : cb(err, null, 0);
3498
+ } else {
3499
+ deferred ? deferred.resolve(data) : cb(null, data, count);
3500
+ }
3501
+ });
3502
+ }
3503
+ else
3504
+ {
3505
+ self._fetchAll(function (err, data, count) {
3506
+ if( err ) {
3507
+ deferred ? deferred.reject(err) : cb(err, null, 0);
3508
+ } else {
3509
+ deferred ? deferred.resolve(data) : cb(null, data, count);
3510
+ }
3511
+ });
3512
+ }
3513
+ return deferred ? deferred.promise : false;
3514
+ };
3515
+
3516
+ // Async function to fetch up to N rows from the result set.
3517
+ // result.fetchN(count, [option], callback);
3518
+ // count: positive integer - maximum number of rows to fetch in this batch.
3519
+ // option: optional object {fetchMode: 4|3} default is 4 (OBJECT).
3520
+ // callback: optional - callback(err, rows). rows is an array.
3521
+ // If callback is not provided, returns a Promise that resolves to the rows array.
3522
+ // Does not close the cursor or free columns, so it can be called repeatedly.
3523
+ odbc.ODBCResult.prototype.fetchN = function (count, option, cb) {
3524
+ var self = this, deferred;
3525
+ self.queue = self.queue || new SimpleQueue();
3526
+
3527
+ if (typeof option === 'function')
3528
+ {
3529
+ cb = option;
3530
+ option = undefined;
3531
+ }
3532
+
3533
+ if (!cb)
3534
+ {
3535
+ deferred = createDeferred();
3536
+ }
3537
+
3538
+ if (typeof count !== 'number' || count <= 0 || !Number.isInteger(count))
3539
+ {
3540
+ var error = { message: "fetchN(): count must be a positive integer." };
3541
+ deferred ? deferred.reject(error) : (cb && cb(error));
3542
+ return deferred ? deferred.promise : false;
3543
+ }
3544
+
3545
+ if (typeof option === 'object')
3546
+ {
3547
+ if (option.fetchMode != 3 && option.fetchMode != 4)
3548
+ {
3549
+ var error = "Invalid fetchMode!";
3550
+ deferred ? deferred.reject(error) : cb(error);
3551
+ return deferred ? deferred.promise : false;
3552
+ }
3553
+ } else {
3554
+ option = undefined;
3555
+ }
3556
+
3557
+ self.queue.push(function (next) {
3558
+ var args = option ? [count, option] : [count];
3559
+ args.push(function (err, rows) {
3560
+ if (err) {
3561
+ deferred ? deferred.reject(err) : cb(err, null);
3562
+ } else {
3563
+ deferred ? deferred.resolve(rows) : cb(null, rows);
3564
+ }
3565
+ return next();
3566
+ });
3567
+ self._fetchN.apply(self, args);
3568
+ });
3569
+ return deferred ? deferred.promise : false;
3570
+ };
3571
+
3572
+ // Async funcion to getData for a column after call of fetch with fetchMode:0
3573
+ // If no callback function, then return Promise.
3574
+ odbc.ODBCResult.prototype.getData = function (colNum, dataSize, cb)
3575
+ {
3576
+ var self = this, deferred;
3577
+
3578
+ if (!cb && typeof colNum !== 'function' && typeof dataSize !== 'function')
3579
+ {
3580
+ deferred = createDeferred();
3581
+ }
3582
+ self.queue = self.queue || new SimpleQueue();
3583
+
3584
+ if (!cb && typeof dataSize === 'function')
3585
+ {
3586
+ cb = dataSize;
3587
+ dataSize = 0;
3588
+ }
3589
+ if (!colNum)
3590
+ {
3591
+ colNum = 0;
3592
+ }
3593
+
3594
+ self.queue.push(function (next) {
3595
+ self._getData(colNum, dataSize, function (err, data) {
3596
+ if( err ) {
3597
+ deferred ? deferred.reject(err) : cb(err, null);
3598
+ } else {
3599
+ deferred ? deferred.resolve(data) : cb(null, data);
3600
+ }
3601
+
3602
+ return next();
3603
+ });
3604
+ });
3605
+ return deferred ? deferred.promise : false;
3606
+ };
3607
+
3608
+ // Async funcion to close a result object to free statement handle
3609
+ // If no callback function, then return Promise.
3610
+ odbc.ODBCResult.prototype.close = function (closeOption, cb)
3611
+ {
3612
+ var self = this, deferred;
3613
+ self.queue = self.queue || new SimpleQueue();
3614
+
3615
+ if (!cb)
3616
+ {
3617
+ if (typeof closeOption === 'function') {
3618
+ cb = closeOption;
3619
+ closeOption = 1;
3620
+ } else {
3621
+ deferred = createDeferred();
3622
+ }
3623
+ if(!closeOption) closeOption = 1;
3624
+ }
3625
+
3626
+ self.queue.push(function (next) {
3627
+ self._close(closeOption, function (err) {
3628
+ if( err ) {
3629
+ deferred ? deferred.reject(err) : cb(err);
3630
+ } else {
3631
+ deferred ? deferred.resolve(false) : cb(null);
3632
+ }
3633
+
3634
+ return next();
3635
+ });
3636
+ });
3637
+ return deferred ? deferred.promise : false;
3638
+ };
3639
+
3640
+ // Async version of bindFileToColSync.
3641
+ // Bind a LOB result column to an output file using SQLBindFileToCol.
3642
+ // result.bindFileToCol(colNum, filePath, fileOption, callback);
3643
+ // If callback is not provided, returns a Promise.
3644
+ odbc.ODBCResult.prototype.bindFileToCol = function (colNum, filePath, fileOption, cb)
3645
+ {
3646
+ var self = this, deferred;
3647
+
3648
+ if (typeof fileOption === 'function') {
3649
+ cb = fileOption;
3650
+ fileOption = exports.SQL_FILE_OVERWRITE;
3651
+ }
3652
+ if (!cb) {
3653
+ deferred = createDeferred();
3654
+ }
3655
+
3656
+ try {
3657
+ self.bindFileToColSync(colNum, filePath, fileOption);
3658
+ deferred ? deferred.resolve(true) : cb(null);
3659
+ } catch(err) {
3660
+ deferred ? deferred.reject(err) : cb(err);
3661
+ }
3662
+ return deferred ? deferred.promise : undefined;
3663
+ };
3664
+
3665
+
3666
+ /***** CONNECTION POOLING RELATED APIs *******/
3667
+ /*===========================================*/
3668
+
3669
+ module.exports.Pool = Pool;
3670
+
3671
+ Pool.count = 0;
3672
+
3673
+ function Pool (_options) {
3674
+ var self = this;
3675
+ self.options = {};
3676
+ self.maxPoolSize = 0;
3677
+ if(_options)
3678
+ {
3679
+ if(_options.idleTimeout && !isNaN(_options.idleTimeout))
3680
+ self.options.idleTimeout = _options.idleTimeout;
3681
+ if(_options.autoCleanIdle)
3682
+ self.options.autoCleanIdle = _options.autoCleanIdle;
3683
+ if(_options.maxPoolSize)
3684
+ self.maxPoolSize = _options.maxPoolSize;
3685
+ if(_options.connectTimeout)
3686
+ self.options.connectTimeout = _options.connectTimeout;
3687
+ if(_options.systemNaming)
3688
+ self.options.systemNaming=_options.systemNaming;
3689
+ }
3690
+ self.index = Pool.count++;
3691
+ self.availablePool = {};
3692
+ self.usedPool = {};
3693
+ self.poolSize = 0;
3694
+ self.queue = self.queue || new SimpleQueue();
3695
+ self.queue.executing = true; // Do not call next, untill next is called by db.close();
3696
+ if(!ENV) ENV = new odbc.ODBC();
3697
+ self.odbc = ENV;
3698
+ self.options.connectTimeout = self.options.connectTimeout || 60;
3699
+ }
3700
+
3701
+ // Get a new connection from pool asynchronously
3702
+ Pool.prototype.open = function (connStr, callback)
3703
+ {
3704
+ var self = this
3705
+ , db, deferred
3706
+ ;
3707
+
3708
+ if (!callback)
3709
+ {
3710
+ deferred = createDeferred();
3711
+ }
3712
+ //check to see if we already have a connection for this connection string
3713
+ if (self.availablePool[connStr] && self.availablePool[connStr].length)
3714
+ {
3715
+ // Remove connection if marked as not connected.
3716
+ do {
3717
+ db = self.availablePool[connStr].shift();
3718
+ if (db && !db.connected) {
3719
+ db = null;
3720
+ if(self.poolSize) self.poolSize--;
3721
+ }
3722
+ else { break; }
3723
+ } while (!db);
3724
+ }
3725
+ if (db) {
3726
+ db.lastUsed=null;
3727
+ self.usedPool[connStr] = self.usedPool[connStr] || [];
3728
+ self.usedPool[connStr].push(db);
3729
+ deferred ? deferred.resolve(db) : callback(null, db);
3730
+ }
3731
+ else if((self.maxPoolSize > 0) && (self.poolSize >= self.maxPoolSize))
3732
+ {
3733
+ // Move it to queue untill an existing connection is not closed.
3734
+ // Call it from db.close() version of pool.open and pool.init.
3735
+ function queueCallback(next) {
3736
+ if (self.availablePool[connStr] && self.availablePool[connStr].length)
3737
+ {
3738
+ db = self.availablePool[connStr].shift();
3739
+ db.lastUsed=null;
3740
+ self.usedPool[connStr] = self.usedPool[connStr] || [];
3741
+ self.usedPool[connStr].push(db);
3742
+ deferred ? deferred.resolve(db) : callback(null, db);
3743
+ }
3744
+ else {
3745
+ self.queue.push(queueCallback);
3746
+ }
3747
+ }
3748
+ self.queue.push(queueCallback);
3749
+ }
3750
+ else
3751
+ {
3752
+ if(typeof(self.options.odbc) === 'undefined')
3753
+ self.options.odbc = self.odbc;
3754
+ self.options.pool = self;
3755
+ self.options.connStr = connStr;
3756
+ db = new Database(self.options);
3757
+ self.poolSize++;
3758
+
3759
+ db.open(connStr, function (error) {
3760
+ exports.debug && console.log("%s odbc.js : pool[%s] : pool.db.open new connection.", getElapsedTime(), self.index);
3761
+ if(error)
3762
+ {
3763
+ self.poolSize--;
3764
+ deferred ? deferred.reject(error) : callback(error, db);
3765
+ }
3766
+ else
3767
+ {
3768
+ self.usedPool[connStr] = self.usedPool[connStr] || [];
3769
+ db.created = Date.now();
3770
+ self.usedPool[connStr].push(db);
3771
+ deferred ? deferred.resolve(db) : callback(error, db);
3772
+ }
3773
+ }); //db.open
3774
+ }
3775
+ return deferred ? deferred.promise : null;
3776
+ };
3777
+
3778
+ // Get a new connection from pool synchronously
3779
+ Pool.prototype.openSync = function (connStr)
3780
+ {
3781
+ var self = this
3782
+ , db
3783
+ ;
3784
+
3785
+ //check to see if we already have a connection for this connection string
3786
+ if (self.availablePool[connStr] && self.availablePool[connStr].length)
3787
+ {
3788
+ // Remove connection if marked as not connected.
3789
+ do {
3790
+ db = self.availablePool[connStr].shift();
3791
+ if (db && !db.connected) {
3792
+ db = null;
3793
+ if(self.poolSize) self.poolSize--;
3794
+ }
3795
+ else { break; }
3796
+ } while (!db);
3797
+ }
3798
+ if (db) {
3799
+ db.lastUsed=null;
3800
+ self.usedPool[connStr] = self.usedPool[connStr] || [];
3801
+ self.usedPool[connStr].push(db);
3802
+ return db;
3803
+ }
3804
+ else if((self.maxPoolSize > 0) && (self.poolSize >= self.maxPoolSize))
3805
+ {
3806
+ // Move it to queue untill an existing connection is not closed.
3807
+ // Call it from db.close() version of pool.open and pool.init.
3808
+ function queueCallback(next) {
3809
+ if (self.availablePool[connStr] && self.availablePool[connStr].length)
3810
+ {
3811
+ db = self.availablePool[connStr].shift();
3812
+ db.lastUsed=null;
3813
+ self.usedPool[connStr] = self.usedPool[connStr] || [];
3814
+ self.usedPool[connStr].push(db);
3815
+ return db;
3816
+ }
3817
+ else {
3818
+ self.queue.push(queueCallback);
3819
+ }
3820
+ }
3821
+ self.queue.push(queueCallback);
3822
+ }
3823
+ else
3824
+ {
3825
+ if(typeof(self.options.odbc) === 'undefined')
3826
+ self.options.odbc = self.odbc;
3827
+ self.options.pool = self;
3828
+ self.options.connStr = connStr;
3829
+ db = new Database(self.options);
3830
+
3831
+ exports.debug && console.log("%s odbc.js : pool[%s] : pool.db.openSync new connection.", getElapsedTime(), self.index);
3832
+ db.openSync(connStr);
3833
+ self.poolSize++;
3834
+ self.usedPool[connStr] = self.usedPool[connStr] || [];
3835
+ db.created = Date.now();
3836
+ self.usedPool[connStr].push(db);
3837
+ return db;
3838
+ }
3839
+ }; //pool.openSync
3840
+
3841
+ // closeSync function for pooled connection.
3842
+ Database.prototype.poolCloseSync = function ()
3843
+ {
3844
+ var db = this;
3845
+ var self = this.pool;
3846
+ var connStr = this.connStr;
3847
+ if( !self ) { return db.closeSync(); }
3848
+
3849
+ self.availablePool[connStr] = self.availablePool[connStr] || [];
3850
+ // If conn.closeSync is called more than once for this connection,
3851
+ // nothing to do. Just return.
3852
+ if( self.availablePool[connStr] &&
3853
+ self.availablePool[connStr].indexOf(db) >= 0 )
3854
+ {
3855
+ return;
3856
+ }
3857
+ db.lastUsed = Date.now();
3858
+
3859
+ // If this connection has some active transaction, rollback the
3860
+ // transaction to free up the held resorces before moving back to
3861
+ // the pool. So that, next request can get afresh connection from pool.
3862
+ if(db.conn && db.conn.inTransaction)
3863
+ {
3864
+ try {
3865
+ db.rollbackTransactionSync();
3866
+ } catch(error) {
3867
+ // Just ignore the error, since we're closing the connection.
3868
+ }
3869
+ }
3870
+
3871
+ //remove this db from the usedPool
3872
+ if(self.usedPool[connStr]) {
3873
+ self.usedPool[connStr].splice(self.usedPool[connStr].indexOf(db), 1);
3874
+ self.poolSize--;
3875
+ }
3876
+
3877
+ //move this connection back to the connection pool at the end.
3878
+ if(db.conn)
3879
+ {
3880
+ self.availablePool[connStr].push(db);
3881
+ self.poolSize++;
3882
+ }
3883
+
3884
+ if(db.conn && self.options.autoCleanIdle) self.cleanUp(connStr);
3885
+ return self.queue.next();
3886
+ }; // db.poolCloseSync function
3887
+
3888
+ // conn.close function for pooled connection.
3889
+ Database.prototype.poolClose = function (cb)
3890
+ {
3891
+ var db = this;
3892
+ var self = this.pool;
3893
+ var connStr = this.connStr;
3894
+ if( !self ) { return db.close(cb); }
3895
+ var deferred;
3896
+ if(!cb) {
3897
+ deferred = createDeferred();
3898
+ }
3899
+
3900
+ self.availablePool[connStr] = self.availablePool[connStr] || [];
3901
+ // If conn.close is called more than once for this connection,
3902
+ // nothing to do. Just call the callback function and return.
3903
+ if( self.availablePool[connStr] &&
3904
+ self.availablePool[connStr].indexOf(db) >= 0 )
3905
+ {
3906
+ deferred ? deferred.resolve(true) : cb(null);
3907
+ return;
3908
+ }
3909
+ db.lastUsed = Date.now();
3910
+
3911
+ // If this connection has some active transaction, rollback the
3912
+ // transaction to free up the held resorces before moving back to
3913
+ // the pool. So that, next request can get afresh connection from pool.
3914
+ if(db.conn && db.conn.inTransaction)
3915
+ {
3916
+ db.rollbackTransaction(function(err){});
3917
+ }
3918
+
3919
+ //remove this db from the usedPool
3920
+ if(self.usedPool[connStr]) {
3921
+ self.usedPool[connStr].splice(self.usedPool[connStr].indexOf(db), 1);
3922
+ self.poolSize--;
3923
+ }
3924
+
3925
+ //move this connection back to the connection pool at the end.
3926
+ if(db.conn)
3927
+ {
3928
+ self.availablePool[connStr].push(db);
3929
+ self.poolSize++;
3930
+ }
3931
+ deferred ? deferred.resolve(true) : cb(null);
3932
+
3933
+ if(db.conn && self.options.autoCleanIdle) self.cleanUp(connStr);
3934
+ //if(exports.debug) {
3935
+ //process.stdout.write(getElapsedTime());
3936
+ //console.log(util.inspect(self, {depth: null}));
3937
+ //}
3938
+ return self.queue.next();
3939
+ }; // poolClose function
3940
+
3941
+ Pool.prototype.init = function(count, connStr)
3942
+ {
3943
+ var self = this;
3944
+ var ret = false;
3945
+ exports.debug && console.log(getElapsedTime(), "Max pool size at start of init = " + self.maxPoolSize);
3946
+
3947
+ //check to see if we already have a connection for this connection string
3948
+ if (self.availablePool[connStr] && self.availablePool[connStr].length)
3949
+ {
3950
+ console.log("Pool is already initialized and it has "+
3951
+ self.availablePool[connStr].length + " available connections.\n");
3952
+ return;
3953
+ }
3954
+ else if(count < 1) {
3955
+ let err = {};
3956
+ err["message"] = "Error: Count should be greater than 0. Pool not initialized.";
3957
+ exports.debug && console.log(getElapsedTime(), err.message);
3958
+ return err;
3959
+ }
3960
+ else
3961
+ {
3962
+ if((self.maxPoolSize > 0) && (count > self.maxPoolSize))
3963
+ {
3964
+ console.log(getElapsedTime(), " ** Can not open connection more than max pool size.\n");
3965
+ count = self.maxPoolSize;
3966
+ }
3967
+
3968
+ if(typeof(self.options.odbc) === 'undefined')
3969
+ self.options.odbc = self.odbc;
3970
+ self.options.pool = self;
3971
+ self.options.connStr = connStr;
3972
+ for(var i = 0; i < count; i++)
3973
+ {
3974
+ var db = new Database(self.options);
3975
+ self.poolSize++;
3976
+ try{
3977
+ ret = db.openSync(connStr);
3978
+ } catch (ret) {
3979
+ self.poolSize--;
3980
+ exports.debug && console.log("%s odbc.js: %d connection(s) initialized.\n", getElapsedTime(), self.poolSize);
3981
+ return ret;
3982
+ }
3983
+ if(ret !== true) break;
3984
+ exports.debug && console.log("%s odbc.js : pool[%s] : pool.init %d", getElapsedTime(), self.index, i);
3985
+
3986
+ self.availablePool[connStr] = self.availablePool[connStr] || [];
3987
+ db.created = Date.now();
3988
+
3989
+ db.availablePool = self.availablePool[connStr] || [];
3990
+ self.availablePool[connStr].push(db);
3991
+ }
3992
+ self.usedPool[connStr] = self.usedPool[connStr] || [];
3993
+ exports.debug && console.log(getElapsedTime(), "Max pool size = " + self.maxPoolSize);
3994
+ exports.debug && console.log(getElapsedTime(), "Pool = ", self);
3995
+ return ret;
3996
+ }
3997
+ };// Pool.init()
3998
+
3999
+ // Initialize pool asynchronously
4000
+ Pool.prototype.initAsync = function(count, connStr, cb)
4001
+ {
4002
+ var self = this, deferred;
4003
+ var ret = false;
4004
+ exports.debug && console.log(getElapsedTime(), "Max pool size at start of init = " + self.maxPoolSize);
4005
+
4006
+ if (typeof(connStr) === "object")
4007
+ {
4008
+ let obj = connStr;
4009
+ connStr = "";
4010
+
4011
+ Object.keys(obj).forEach(function (key) {
4012
+ connStr += key + "=" + obj[key] + ";";
4013
+ });
4014
+ }
4015
+
4016
+ if (!cb)
4017
+ {
4018
+ deferred = createDeferred();
4019
+ }
4020
+ //check to see if we already have a connection for this connection string
4021
+ if (self.availablePool[connStr] && self.availablePool[connStr].length)
4022
+ {
4023
+ console.log("Pool is already initialized and it has "+
4024
+ self.availablePool[connStr].length + " available connections.\n");
4025
+ deferred ? deferred.resolve(true) : cb(null);
4026
+ }
4027
+ else if(count < 1) {
4028
+ let err = {};
4029
+ err["message"] = "Error: Count should be greater than 0. Pool not initialized.";
4030
+ exports.debug && console.log(getElapsedTime(), err.message);
4031
+ deferred ? deferred.reject(err) : cb(err);
4032
+ }
4033
+ else
4034
+ {
4035
+ if((self.maxPoolSize > 0) && (count > self.maxPoolSize))
4036
+ {
4037
+ console.log(getElapsedTime(), " ** Can not open connection more than max pool size.\n");
4038
+ count = self.maxPoolSize;
4039
+ }
4040
+
4041
+ if(typeof(self.options.odbc) === 'undefined')
4042
+ self.options.odbc = self.odbc;
4043
+ self.options.pool = self;
4044
+ self.options.connStr = connStr;
4045
+ self.availablePool[connStr] = self.availablePool[connStr] || [];
4046
+ self.usedPool[connStr] = self.usedPool[connStr] || [];
4047
+
4048
+ for(var i = 0; i < count; i++)
4049
+ {
4050
+ (function (connNo) {
4051
+ var db = new Database(self.options);
4052
+ self.poolSize++;
4053
+ db.open(connStr, function(error) {
4054
+ if(error) {
4055
+ self.poolSize--;
4056
+ } else {
4057
+ exports.debug && console.log("%s odbc.js: %d connections initialized.\n",
4058
+ getElapsedTime(), self.poolSize);
4059
+ exports.debug && console.log("%s odbc.js : pool[%s] : pool.init %d",
4060
+ getElapsedTime(), self.index, connNo);
4061
+
4062
+ db.created = Date.now();
4063
+ db.availablePool = self.availablePool[connStr];
4064
+ self.availablePool[connStr].push(db);
4065
+ }
4066
+ if(connNo == count) {
4067
+ exports.debug && console.log(getElapsedTime(), "Pool = ", self);
4068
+ if(error) {
4069
+ deferred ? deferred.reject(error) : cb(error);
4070
+ } else {
4071
+ deferred ? deferred.resolve(true) : cb(null);
4072
+ }
4073
+ }
4074
+ });
4075
+ })(i+1);
4076
+ }
4077
+ }
4078
+ return deferred ? deferred.promise : null;
4079
+ };// Pool.initAsync()
4080
+
4081
+ // No of active connections in pool should not grow more than maxPoolSize.
4082
+ // Run test/test-max-pool-size.js to test this functionality.
4083
+ Pool.prototype.setMaxPoolSize = function(size)
4084
+ {
4085
+ var self = this;
4086
+ self.maxPoolSize = size;
4087
+ exports.debug && console.log(getElapsedTime(), "Max pool size is set to " + self.maxPoolSize);
4088
+ return true;
4089
+ };
4090
+
4091
+ Pool.prototype.setConnectTimeout = function(timeout)
4092
+ {
4093
+ // Don't use this API. Will be removed in next major release.
4094
+ // It is just a place holder as of now to avoid breaking of
4095
+ // existing applications that uses it.
4096
+
4097
+ // Now there is no timeout for connection request from pool.
4098
+ // Once conn.close() get called for existing pooled connection,
4099
+ // the waiting connection request will get that connection from
4100
+ // pool as connection pooling uses now FIFO queue for new
4101
+ // connections beyond maxPoolSize.
4102
+ return true;
4103
+ };
4104
+
4105
+ // Close idle connections
4106
+ Pool.prototype.cleanUp = function(connStr) {
4107
+ var self = this;
4108
+ if(self.availablePool[connStr].length < 2) return;
4109
+
4110
+ self.availablePool[connStr] = self.availablePool[connStr].filter(function(conn)
4111
+ {
4112
+ if(conn.lastUsed &&
4113
+ (Date.now()-conn.lastUsed > (self.options.idleTimeout || 1800 * 1000)) &&
4114
+ conn.realClose )
4115
+ {
4116
+ conn.realClose(function()
4117
+ {
4118
+ if(self.poolSize) self.poolSize--;
4119
+ exports.debug && console.log("odbc.js : pool[%s] : Pool.cleanUp() : " +
4120
+ "pool.realClose() : Connection duration : %s", self.index,
4121
+ (Date.now() - conn.created)/1000);
4122
+ });
4123
+ return false;
4124
+ }
4125
+ else
4126
+ {
4127
+ return true;
4128
+ }
4129
+ });
4130
+ }; //Pool.cleanUp()
4131
+
4132
+ Pool.prototype.close = function (callback)
4133
+ {
4134
+ var self = this
4135
+ , required = 0
4136
+ , received = 0
4137
+ , connections
4138
+ , key
4139
+ , x
4140
+ , deferred
4141
+ ;
4142
+
4143
+ if(!callback) {
4144
+ deferred = createDeferred();
4145
+ }
4146
+ exports.debug && console.log("%s odbc.js : pool[%s] : pool.close()", getElapsedTime(), self.index);
4147
+ //we set a timeout because a previous db.close() may
4148
+ //have caused db.open() behind the scenes to prepare
4149
+ //a new connection
4150
+ setTimeout(function () {
4151
+ //merge the available pool and the usedPool
4152
+ var pools = {};
4153
+
4154
+ for (key in self.availablePool)
4155
+ {
4156
+ pools[key] = (pools[key] || []).concat(self.availablePool[key]);
4157
+ }
4158
+
4159
+ for (key in self.usedPool)
4160
+ {
4161
+ pools[key] = (pools[key] || []).concat(self.usedPool[key]);
4162
+ }
4163
+
4164
+ exports.debug && console.log("%s odbc.js : pool[%s] : pool.close() - setTimeout() callback", getElapsedTime(), self.index);
4165
+ //console.dir(pools);
4166
+
4167
+ if (Object.keys(pools).length === 0)
4168
+ {
4169
+ if (callback) return callback();
4170
+ else return deferred.resolve(true);
4171
+ }
4172
+
4173
+ for (key in pools)
4174
+ {
4175
+ connections = pools[key];
4176
+ var connLen = connections.length;
4177
+ required += connLen;
4178
+
4179
+ if(exports.debug) {
4180
+ console.log("%s odbc.js : pool[%s] : pool.close() - processing pools - connections: %s",
4181
+ getElapsedTime(), self.index, connections.length);
4182
+ }
4183
+
4184
+ for (x = 0 ; x < connLen; x ++)
4185
+ {
4186
+ (function (x) {
4187
+ //call the realClose method to avoid
4188
+ //automatically re-opening the connection
4189
+ if(exports.debug) {
4190
+ console.log("%s odbc.js : pool[%s] : pool.close() - calling realClose() for connection #%s",
4191
+ getElapsedTime(), self.index, x + 1);
4192
+ }
4193
+
4194
+ if(connections[x].realClose) {
4195
+ connections[x].realClose(function () {
4196
+ if(exports.debug) {
4197
+ console.log("%s odbc.js : pool[%s] : pool.close() - realClose() callback for connection #%s",
4198
+ getElapsedTime(), self.index, x + 1);
4199
+ }
4200
+ module.exports.close(connections[x]);
4201
+ received += 1;
4202
+ if(self.poolSize) self.poolSize--;
4203
+
4204
+ if (received === required)
4205
+ {
4206
+ deferred ? deferred.resolve(true) : callback();
4207
+
4208
+ //prevent mem leaks
4209
+ self = null;
4210
+ connections = null;
4211
+ required = null;
4212
+ received = null;
4213
+ key = null;
4214
+
4215
+ return;
4216
+ }
4217
+ }); // connections[x].realClose i.e. conn.close().
4218
+ }
4219
+ else {
4220
+ exports.debug && console.log("%s realClose is not a member of connection %s", getElapsedTime(), x + 1);
4221
+ }
4222
+ })(x);
4223
+ } //for loop.
4224
+ } //for (key in pools)
4225
+ }, 2000); //setTimeout
4226
+ return deferred ? deferred.promise : null;
4227
+ }; //Pool.close()
4228
+
4229
+ Pool.prototype.closeSync = function ()
4230
+ {
4231
+ var self = this
4232
+ , connections
4233
+ , key
4234
+ , x, error
4235
+ ;
4236
+
4237
+ exports.debug && console.log("%s odbc.js : pool[%s] : pool.closeSync()", getElapsedTime(), self.index);
4238
+
4239
+ //merge the available pool and the usedPool
4240
+ var pools = {};
4241
+
4242
+ for (key in self.availablePool)
4243
+ {
4244
+ pools[key] = (pools[key] || []).concat(self.availablePool[key]);
4245
+ }
4246
+ for (key in self.usedPool)
4247
+ {
4248
+ pools[key] = (pools[key] || []).concat(self.usedPool[key]);
4249
+ }
4250
+
4251
+ if (Object.keys(pools).length === 0)
4252
+ {
4253
+ return null;
4254
+ }
4255
+
4256
+ for (key in pools)
4257
+ {
4258
+ connections = pools[key];
4259
+ var connLen = connections.length;
4260
+
4261
+ if(exports.debug) {
4262
+ console.log("%s odbc.js : pool[%s] : pool.closeSync() - processing pools - connections: %s",
4263
+ getElapsedTime(), self.index, connLen);
4264
+ }
4265
+
4266
+ for (x = 0 ; x < connLen; x ++)
4267
+ {
4268
+ if(exports.debug) {
4269
+ console.log("%s odbc.js : pool[%s] : pool.closeSync() - calling realClose() for connection #%s",
4270
+ getElapsedTime(), self.index, x + 1);
4271
+ }
4272
+
4273
+ if(connections[x].realCloseSync) {
4274
+ error = connections[x].realCloseSync();
4275
+ module.exports.close(connections[x]);
4276
+ if(self.poolSize) self.poolSize--;
4277
+ }
4278
+ else {
4279
+ exports.debug && console.log("%s realCloseSync is not a member of connection %s", getElapsedTime(), x + 1);
4280
+ }
4281
+ }
4282
+ } //for (key in pools)
4283
+ self = null;
4284
+ return error;
4285
+ }; //Pool.closeSync()
4286
+
4287
+
4288
+ // Add attributes from climacros.js
4289
+ var attr;
4290
+ for (attr in macro.attributes) {
4291
+ module.exports[attr] = macro.attributes[attr];
4292
+ }
4293
+