monitor-transfer-dsh 0.0.0-stage → 0.1.2

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 (367) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +51 -2
  3. package/cordis.patch.yml +4 -0
  4. package/lib/client.js +381 -0
  5. package/lib/index.js +267 -0
  6. package/package.json +67 -3
  7. package/skill/SKILL.md +48 -0
  8. package/skill/tools/node_modules/.package-lock.json +163 -0
  9. package/skill/tools/node_modules/pg/LICENSE +21 -0
  10. package/skill/tools/node_modules/pg/README.md +96 -0
  11. package/skill/tools/node_modules/pg/esm/index.mjs +20 -0
  12. package/skill/tools/node_modules/pg/lib/client.js +846 -0
  13. package/skill/tools/node_modules/pg/lib/connection-parameters.js +184 -0
  14. package/skill/tools/node_modules/pg/lib/connection.js +250 -0
  15. package/skill/tools/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
  16. package/skill/tools/node_modules/pg/lib/crypto/sasl.js +262 -0
  17. package/skill/tools/node_modules/pg/lib/crypto/utils.js +89 -0
  18. package/skill/tools/node_modules/pg/lib/defaults.js +94 -0
  19. package/skill/tools/node_modules/pg/lib/index.js +73 -0
  20. package/skill/tools/node_modules/pg/lib/native/client.js +428 -0
  21. package/skill/tools/node_modules/pg/lib/native/index.js +2 -0
  22. package/skill/tools/node_modules/pg/lib/native/query.js +167 -0
  23. package/skill/tools/node_modules/pg/lib/query.js +263 -0
  24. package/skill/tools/node_modules/pg/lib/result.js +109 -0
  25. package/skill/tools/node_modules/pg/lib/stream.js +83 -0
  26. package/skill/tools/node_modules/pg/lib/type-overrides.js +35 -0
  27. package/skill/tools/node_modules/pg/lib/utils.js +225 -0
  28. package/skill/tools/node_modules/pg/package.json +76 -0
  29. package/skill/tools/node_modules/pg-cloudflare/LICENSE +21 -0
  30. package/skill/tools/node_modules/pg-cloudflare/README.md +112 -0
  31. package/skill/tools/node_modules/pg-cloudflare/dist/empty.d.ts +2 -0
  32. package/skill/tools/node_modules/pg-cloudflare/dist/empty.js +6 -0
  33. package/skill/tools/node_modules/pg-cloudflare/dist/empty.js.map +1 -0
  34. package/skill/tools/node_modules/pg-cloudflare/dist/index.d.ts +29 -0
  35. package/skill/tools/node_modules/pg-cloudflare/dist/index.js +171 -0
  36. package/skill/tools/node_modules/pg-cloudflare/dist/index.js.map +1 -0
  37. package/skill/tools/node_modules/pg-cloudflare/esm/index.mjs +3 -0
  38. package/skill/tools/node_modules/pg-cloudflare/package.json +39 -0
  39. package/skill/tools/node_modules/pg-cloudflare/src/empty.ts +3 -0
  40. package/skill/tools/node_modules/pg-cloudflare/src/index.ts +187 -0
  41. package/skill/tools/node_modules/pg-cloudflare/src/types.d.ts +25 -0
  42. package/skill/tools/node_modules/pg-connection-string/LICENSE +21 -0
  43. package/skill/tools/node_modules/pg-connection-string/README.md +105 -0
  44. package/skill/tools/node_modules/pg-connection-string/esm/index.mjs +8 -0
  45. package/skill/tools/node_modules/pg-connection-string/index.d.ts +37 -0
  46. package/skill/tools/node_modules/pg-connection-string/index.js +237 -0
  47. package/skill/tools/node_modules/pg-connection-string/package.json +51 -0
  48. package/skill/tools/node_modules/pg-int8/LICENSE +13 -0
  49. package/skill/tools/node_modules/pg-int8/README.md +16 -0
  50. package/skill/tools/node_modules/pg-int8/index.js +100 -0
  51. package/skill/tools/node_modules/pg-int8/package.json +24 -0
  52. package/skill/tools/node_modules/pg-pool/LICENSE +21 -0
  53. package/skill/tools/node_modules/pg-pool/README.md +357 -0
  54. package/skill/tools/node_modules/pg-pool/esm/index.mjs +5 -0
  55. package/skill/tools/node_modules/pg-pool/index.js +517 -0
  56. package/skill/tools/node_modules/pg-pool/package.json +51 -0
  57. package/skill/tools/node_modules/pg-protocol/LICENSE +21 -0
  58. package/skill/tools/node_modules/pg-protocol/README.md +3 -0
  59. package/skill/tools/node_modules/pg-protocol/dist/b.d.ts +1 -0
  60. package/skill/tools/node_modules/pg-protocol/dist/b.js +23 -0
  61. package/skill/tools/node_modules/pg-protocol/dist/b.js.map +1 -0
  62. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.d.ts +14 -0
  63. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
  64. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js.map +1 -0
  65. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.d.ts +21 -0
  66. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js +113 -0
  67. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -0
  68. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.d.ts +1 -0
  69. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js +538 -0
  70. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js.map +1 -0
  71. package/skill/tools/node_modules/pg-protocol/dist/index.d.ts +5 -0
  72. package/skill/tools/node_modules/pg-protocol/dist/index.js +15 -0
  73. package/skill/tools/node_modules/pg-protocol/dist/index.js.map +1 -0
  74. package/skill/tools/node_modules/pg-protocol/dist/messages.d.ts +161 -0
  75. package/skill/tools/node_modules/pg-protocol/dist/messages.js +160 -0
  76. package/skill/tools/node_modules/pg-protocol/dist/messages.js.map +1 -0
  77. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts +1 -0
  78. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js +325 -0
  79. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js.map +1 -0
  80. package/skill/tools/node_modules/pg-protocol/dist/parser.d.ts +22 -0
  81. package/skill/tools/node_modules/pg-protocol/dist/parser.js +325 -0
  82. package/skill/tools/node_modules/pg-protocol/dist/parser.js.map +1 -0
  83. package/skill/tools/node_modules/pg-protocol/dist/serializer.d.ts +42 -0
  84. package/skill/tools/node_modules/pg-protocol/dist/serializer.js +198 -0
  85. package/skill/tools/node_modules/pg-protocol/dist/serializer.js.map +1 -0
  86. package/skill/tools/node_modules/pg-protocol/esm/index.js +11 -0
  87. package/skill/tools/node_modules/pg-protocol/package.json +44 -0
  88. package/skill/tools/node_modules/pg-protocol/src/b.ts +25 -0
  89. package/skill/tools/node_modules/pg-protocol/src/buffer-reader.ts +58 -0
  90. package/skill/tools/node_modules/pg-protocol/src/buffer-writer.ts +120 -0
  91. package/skill/tools/node_modules/pg-protocol/src/inbound-parser.test.ts +585 -0
  92. package/skill/tools/node_modules/pg-protocol/src/index.ts +11 -0
  93. package/skill/tools/node_modules/pg-protocol/src/messages.ts +262 -0
  94. package/skill/tools/node_modules/pg-protocol/src/outbound-serializer.test.ts +356 -0
  95. package/skill/tools/node_modules/pg-protocol/src/parser.ts +414 -0
  96. package/skill/tools/node_modules/pg-protocol/src/serializer.ts +286 -0
  97. package/skill/tools/node_modules/pg-protocol/src/testing/buffer-list.ts +67 -0
  98. package/skill/tools/node_modules/pg-protocol/src/testing/test-buffers.ts +166 -0
  99. package/skill/tools/node_modules/pg-types/.travis.yml +7 -0
  100. package/skill/tools/node_modules/pg-types/Makefile +14 -0
  101. package/skill/tools/node_modules/pg-types/README.md +75 -0
  102. package/skill/tools/node_modules/pg-types/index.d.ts +137 -0
  103. package/skill/tools/node_modules/pg-types/index.js +47 -0
  104. package/skill/tools/node_modules/pg-types/index.test-d.ts +21 -0
  105. package/skill/tools/node_modules/pg-types/lib/arrayParser.js +11 -0
  106. package/skill/tools/node_modules/pg-types/lib/binaryParsers.js +257 -0
  107. package/skill/tools/node_modules/pg-types/lib/builtins.js +73 -0
  108. package/skill/tools/node_modules/pg-types/lib/textParsers.js +215 -0
  109. package/skill/tools/node_modules/pg-types/package.json +42 -0
  110. package/skill/tools/node_modules/pg-types/test/index.js +24 -0
  111. package/skill/tools/node_modules/pg-types/test/types.js +597 -0
  112. package/skill/tools/node_modules/pgpass/README.md +74 -0
  113. package/skill/tools/node_modules/pgpass/lib/helper.js +233 -0
  114. package/skill/tools/node_modules/pgpass/lib/index.js +23 -0
  115. package/skill/tools/node_modules/pgpass/package.json +41 -0
  116. package/skill/tools/node_modules/postgres-array/index.d.ts +4 -0
  117. package/skill/tools/node_modules/postgres-array/index.js +97 -0
  118. package/skill/tools/node_modules/postgres-array/license +21 -0
  119. package/skill/tools/node_modules/postgres-array/package.json +35 -0
  120. package/skill/tools/node_modules/postgres-array/readme.md +43 -0
  121. package/skill/tools/node_modules/postgres-bytea/index.js +33 -0
  122. package/skill/tools/node_modules/postgres-bytea/license +21 -0
  123. package/skill/tools/node_modules/postgres-bytea/package.json +34 -0
  124. package/skill/tools/node_modules/postgres-bytea/readme.md +34 -0
  125. package/skill/tools/node_modules/postgres-date/index.js +116 -0
  126. package/skill/tools/node_modules/postgres-date/license +21 -0
  127. package/skill/tools/node_modules/postgres-date/package.json +33 -0
  128. package/skill/tools/node_modules/postgres-date/readme.md +49 -0
  129. package/skill/tools/node_modules/postgres-interval/index.d.ts +20 -0
  130. package/skill/tools/node_modules/postgres-interval/index.js +125 -0
  131. package/skill/tools/node_modules/postgres-interval/license +21 -0
  132. package/skill/tools/node_modules/postgres-interval/package.json +36 -0
  133. package/skill/tools/node_modules/postgres-interval/readme.md +48 -0
  134. package/skill/tools/node_modules/split2/LICENSE +13 -0
  135. package/skill/tools/node_modules/split2/README.md +85 -0
  136. package/skill/tools/node_modules/split2/bench.js +27 -0
  137. package/skill/tools/node_modules/split2/index.js +141 -0
  138. package/skill/tools/node_modules/split2/package.json +39 -0
  139. package/skill/tools/node_modules/split2/test.js +409 -0
  140. package/skill/tools/node_modules/undici/LICENSE +21 -0
  141. package/skill/tools/node_modules/undici/README.md +828 -0
  142. package/skill/tools/node_modules/undici/docs/docs/api/Agent.md +291 -0
  143. package/skill/tools/node_modules/undici/docs/docs/api/BalancedPool.md +297 -0
  144. package/skill/tools/node_modules/undici/docs/docs/api/CacheStorage.md +188 -0
  145. package/skill/tools/node_modules/undici/docs/docs/api/CacheStore.md +375 -0
  146. package/skill/tools/node_modules/undici/docs/docs/api/Client.md +538 -0
  147. package/skill/tools/node_modules/undici/docs/docs/api/ClientStats.md +93 -0
  148. package/skill/tools/node_modules/undici/docs/docs/api/Connector.md +198 -0
  149. package/skill/tools/node_modules/undici/docs/docs/api/ContentType.md +97 -0
  150. package/skill/tools/node_modules/undici/docs/docs/api/Cookies.md +179 -0
  151. package/skill/tools/node_modules/undici/docs/docs/api/Debug.md +78 -0
  152. package/skill/tools/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +518 -0
  153. package/skill/tools/node_modules/undici/docs/docs/api/Dispatcher.md +842 -0
  154. package/skill/tools/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +171 -0
  155. package/skill/tools/node_modules/undici/docs/docs/api/Errors.md +624 -0
  156. package/skill/tools/node_modules/undici/docs/docs/api/EventSource.md +358 -0
  157. package/skill/tools/node_modules/undici/docs/docs/api/Fetch.md +721 -0
  158. package/skill/tools/node_modules/undici/docs/docs/api/GlobalInstallation.md +121 -0
  159. package/skill/tools/node_modules/undici/docs/docs/api/H2CClient.md +386 -0
  160. package/skill/tools/node_modules/undici/docs/docs/api/Interceptors.md +439 -0
  161. package/skill/tools/node_modules/undici/docs/docs/api/MockAgent.md +622 -0
  162. package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistory.md +371 -0
  163. package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +206 -0
  164. package/skill/tools/node_modules/undici/docs/docs/api/MockClient.md +199 -0
  165. package/skill/tools/node_modules/undici/docs/docs/api/MockErrors.md +63 -0
  166. package/skill/tools/node_modules/undici/docs/docs/api/MockPool.md +618 -0
  167. package/skill/tools/node_modules/undici/docs/docs/api/Pool.md +278 -0
  168. package/skill/tools/node_modules/undici/docs/docs/api/PoolStats.md +141 -0
  169. package/skill/tools/node_modules/undici/docs/docs/api/ProxyAgent.md +248 -0
  170. package/skill/tools/node_modules/undici/docs/docs/api/RedirectHandler.md +279 -0
  171. package/skill/tools/node_modules/undici/docs/docs/api/RetryAgent.md +136 -0
  172. package/skill/tools/node_modules/undici/docs/docs/api/RetryHandler.md +200 -0
  173. package/skill/tools/node_modules/undici/docs/docs/api/RoundRobinPool.md +239 -0
  174. package/skill/tools/node_modules/undici/docs/docs/api/SnapshotAgent.md +361 -0
  175. package/skill/tools/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +256 -0
  176. package/skill/tools/node_modules/undici/docs/docs/api/Util.md +82 -0
  177. package/skill/tools/node_modules/undici/docs/docs/api/WebSocket.md +536 -0
  178. package/skill/tools/node_modules/undici/docs/docs/api/api-lifecycle.md +159 -0
  179. package/skill/tools/node_modules/undici/docs/docs/best-practices/client-certificate.md +66 -0
  180. package/skill/tools/node_modules/undici/docs/docs/best-practices/crawling.md +60 -0
  181. package/skill/tools/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  182. package/skill/tools/node_modules/undici/docs/docs/best-practices/mocking-request.md +192 -0
  183. package/skill/tools/node_modules/undici/docs/docs/best-practices/proxy.md +129 -0
  184. package/skill/tools/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +226 -0
  185. package/skill/tools/node_modules/undici/docs/docs/best-practices/writing-tests.md +65 -0
  186. package/skill/tools/node_modules/undici/docs/docs/getting-started.md +281 -0
  187. package/skill/tools/node_modules/undici/docs/docs/index.md +793 -0
  188. package/skill/tools/node_modules/undici/docs/docs/site.json +125 -0
  189. package/skill/tools/node_modules/undici/docs/docs/type-map.json +79 -0
  190. package/skill/tools/node_modules/undici/index-fetch.js +65 -0
  191. package/skill/tools/node_modules/undici/index.d.ts +3 -0
  192. package/skill/tools/node_modules/undici/index.js +236 -0
  193. package/skill/tools/node_modules/undici/lib/api/abort-signal.js +59 -0
  194. package/skill/tools/node_modules/undici/lib/api/api-connect.js +112 -0
  195. package/skill/tools/node_modules/undici/lib/api/api-pipeline.js +265 -0
  196. package/skill/tools/node_modules/undici/lib/api/api-request.js +244 -0
  197. package/skill/tools/node_modules/undici/lib/api/api-stream.js +270 -0
  198. package/skill/tools/node_modules/undici/lib/api/api-upgrade.js +121 -0
  199. package/skill/tools/node_modules/undici/lib/api/index.js +7 -0
  200. package/skill/tools/node_modules/undici/lib/api/readable.js +615 -0
  201. package/skill/tools/node_modules/undici/lib/cache/memory-cache-store.js +314 -0
  202. package/skill/tools/node_modules/undici/lib/cache/sqlite-cache-store.js +593 -0
  203. package/skill/tools/node_modules/undici/lib/core/connect.js +198 -0
  204. package/skill/tools/node_modules/undici/lib/core/constants.js +131 -0
  205. package/skill/tools/node_modules/undici/lib/core/diagnostics.js +227 -0
  206. package/skill/tools/node_modules/undici/lib/core/errors.js +534 -0
  207. package/skill/tools/node_modules/undici/lib/core/request.js +582 -0
  208. package/skill/tools/node_modules/undici/lib/core/socks5-client.js +422 -0
  209. package/skill/tools/node_modules/undici/lib/core/socks5-utils.js +212 -0
  210. package/skill/tools/node_modules/undici/lib/core/symbols.js +81 -0
  211. package/skill/tools/node_modules/undici/lib/core/tree.js +160 -0
  212. package/skill/tools/node_modules/undici/lib/core/util.js +1035 -0
  213. package/skill/tools/node_modules/undici/lib/dispatcher/agent.js +181 -0
  214. package/skill/tools/node_modules/undici/lib/dispatcher/balanced-pool.js +217 -0
  215. package/skill/tools/node_modules/undici/lib/dispatcher/client-h1.js +1846 -0
  216. package/skill/tools/node_modules/undici/lib/dispatcher/client-h2.js +1989 -0
  217. package/skill/tools/node_modules/undici/lib/dispatcher/client.js +749 -0
  218. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
  219. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher.js +58 -0
  220. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +127 -0
  221. package/skill/tools/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +190 -0
  222. package/skill/tools/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
  223. package/skill/tools/node_modules/undici/lib/dispatcher/h2c-client.js +51 -0
  224. package/skill/tools/node_modules/undici/lib/dispatcher/parser-h1.js +1065 -0
  225. package/skill/tools/node_modules/undici/lib/dispatcher/pool-base.js +347 -0
  226. package/skill/tools/node_modules/undici/lib/dispatcher/pool.js +229 -0
  227. package/skill/tools/node_modules/undici/lib/dispatcher/proxy-agent.js +418 -0
  228. package/skill/tools/node_modules/undici/lib/dispatcher/retry-agent.js +48 -0
  229. package/skill/tools/node_modules/undici/lib/dispatcher/round-robin-pool.js +169 -0
  230. package/skill/tools/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +350 -0
  231. package/skill/tools/node_modules/undici/lib/encoding/index.js +33 -0
  232. package/skill/tools/node_modules/undici/lib/global.js +82 -0
  233. package/skill/tools/node_modules/undici/lib/handler/cache-handler.js +1222 -0
  234. package/skill/tools/node_modules/undici/lib/handler/cache-revalidation-handler.js +134 -0
  235. package/skill/tools/node_modules/undici/lib/handler/decorator-handler.js +76 -0
  236. package/skill/tools/node_modules/undici/lib/handler/deduplication-handler.js +540 -0
  237. package/skill/tools/node_modules/undici/lib/handler/redirect-handler.js +284 -0
  238. package/skill/tools/node_modules/undici/lib/handler/retry-handler.js +686 -0
  239. package/skill/tools/node_modules/undici/lib/interceptor/cache.js +771 -0
  240. package/skill/tools/node_modules/undici/lib/interceptor/decompress.js +574 -0
  241. package/skill/tools/node_modules/undici/lib/interceptor/deduplicate.js +118 -0
  242. package/skill/tools/node_modules/undici/lib/interceptor/dns.js +593 -0
  243. package/skill/tools/node_modules/undici/lib/interceptor/dump.js +99 -0
  244. package/skill/tools/node_modules/undici/lib/interceptor/redirect.js +21 -0
  245. package/skill/tools/node_modules/undici/lib/interceptor/response-error.js +139 -0
  246. package/skill/tools/node_modules/undici/lib/interceptor/retry.js +19 -0
  247. package/skill/tools/node_modules/undici/lib/llhttp/constants.d.ts +195 -0
  248. package/skill/tools/node_modules/undici/lib/llhttp/constants.js +531 -0
  249. package/skill/tools/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
  250. package/skill/tools/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
  251. package/skill/tools/node_modules/undici/lib/llhttp/utils.d.ts +2 -0
  252. package/skill/tools/node_modules/undici/lib/llhttp/utils.js +12 -0
  253. package/skill/tools/node_modules/undici/lib/milo/LICENSE.md +7 -0
  254. package/skill/tools/node_modules/undici/lib/milo/no-simd.js +1002 -0
  255. package/skill/tools/node_modules/undici/lib/milo/simd.js +1002 -0
  256. package/skill/tools/node_modules/undici/lib/mock/mock-agent.js +255 -0
  257. package/skill/tools/node_modules/undici/lib/mock/mock-call-history.js +248 -0
  258. package/skill/tools/node_modules/undici/lib/mock/mock-client.js +68 -0
  259. package/skill/tools/node_modules/undici/lib/mock/mock-errors.js +29 -0
  260. package/skill/tools/node_modules/undici/lib/mock/mock-interceptor.js +227 -0
  261. package/skill/tools/node_modules/undici/lib/mock/mock-pool.js +68 -0
  262. package/skill/tools/node_modules/undici/lib/mock/mock-symbols.js +32 -0
  263. package/skill/tools/node_modules/undici/lib/mock/mock-utils.js +730 -0
  264. package/skill/tools/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  265. package/skill/tools/node_modules/undici/lib/mock/snapshot-agent.js +371 -0
  266. package/skill/tools/node_modules/undici/lib/mock/snapshot-recorder.js +624 -0
  267. package/skill/tools/node_modules/undici/lib/mock/snapshot-utils.js +159 -0
  268. package/skill/tools/node_modules/undici/lib/util/cache.js +764 -0
  269. package/skill/tools/node_modules/undici/lib/util/date.js +670 -0
  270. package/skill/tools/node_modules/undici/lib/util/runtime-features.js +93 -0
  271. package/skill/tools/node_modules/undici/lib/util/stats.js +32 -0
  272. package/skill/tools/node_modules/undici/lib/util/timers.js +425 -0
  273. package/skill/tools/node_modules/undici/lib/web/cache/cache.js +871 -0
  274. package/skill/tools/node_modules/undici/lib/web/cache/cachestorage.js +158 -0
  275. package/skill/tools/node_modules/undici/lib/web/cache/util.js +45 -0
  276. package/skill/tools/node_modules/undici/lib/web/cookies/constants.js +12 -0
  277. package/skill/tools/node_modules/undici/lib/web/cookies/index.js +211 -0
  278. package/skill/tools/node_modules/undici/lib/web/cookies/parse.js +318 -0
  279. package/skill/tools/node_modules/undici/lib/web/cookies/util.js +371 -0
  280. package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource-stream.js +575 -0
  281. package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource.js +547 -0
  282. package/skill/tools/node_modules/undici/lib/web/eventsource/util.js +60 -0
  283. package/skill/tools/node_modules/undici/lib/web/fetch/LICENSE +21 -0
  284. package/skill/tools/node_modules/undici/lib/web/fetch/body.js +583 -0
  285. package/skill/tools/node_modules/undici/lib/web/fetch/constants.js +131 -0
  286. package/skill/tools/node_modules/undici/lib/web/fetch/data-url.js +596 -0
  287. package/skill/tools/node_modules/undici/lib/web/fetch/formdata-parser.js +594 -0
  288. package/skill/tools/node_modules/undici/lib/web/fetch/formdata.js +272 -0
  289. package/skill/tools/node_modules/undici/lib/web/fetch/global.js +40 -0
  290. package/skill/tools/node_modules/undici/lib/web/fetch/headers.js +722 -0
  291. package/skill/tools/node_modules/undici/lib/web/fetch/index.js +2451 -0
  292. package/skill/tools/node_modules/undici/lib/web/fetch/request.js +1117 -0
  293. package/skill/tools/node_modules/undici/lib/web/fetch/response.js +638 -0
  294. package/skill/tools/node_modules/undici/lib/web/fetch/util.js +1530 -0
  295. package/skill/tools/node_modules/undici/lib/web/infra/index.js +244 -0
  296. package/skill/tools/node_modules/undici/lib/web/subresource-integrity/Readme.md +9 -0
  297. package/skill/tools/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +307 -0
  298. package/skill/tools/node_modules/undici/lib/web/webidl/index.js +992 -0
  299. package/skill/tools/node_modules/undici/lib/web/websocket/connection.js +350 -0
  300. package/skill/tools/node_modules/undici/lib/web/websocket/constants.js +126 -0
  301. package/skill/tools/node_modules/undici/lib/web/websocket/events.js +348 -0
  302. package/skill/tools/node_modules/undici/lib/web/websocket/frame.js +127 -0
  303. package/skill/tools/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
  304. package/skill/tools/node_modules/undici/lib/web/websocket/receiver.js +530 -0
  305. package/skill/tools/node_modules/undici/lib/web/websocket/sender.js +109 -0
  306. package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketerror.js +107 -0
  307. package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketstream.js +511 -0
  308. package/skill/tools/node_modules/undici/lib/web/websocket/util.js +347 -0
  309. package/skill/tools/node_modules/undici/lib/web/websocket/websocket.js +783 -0
  310. package/skill/tools/node_modules/undici/package.json +154 -0
  311. package/skill/tools/node_modules/undici/scripts/strip-comments.js +10 -0
  312. package/skill/tools/node_modules/undici/types/README.md +6 -0
  313. package/skill/tools/node_modules/undici/types/agent.d.ts +30 -0
  314. package/skill/tools/node_modules/undici/types/api.d.ts +43 -0
  315. package/skill/tools/node_modules/undici/types/balanced-pool.d.ts +30 -0
  316. package/skill/tools/node_modules/undici/types/cache-interceptor.d.ts +189 -0
  317. package/skill/tools/node_modules/undici/types/cache.d.ts +36 -0
  318. package/skill/tools/node_modules/undici/types/client-stats.d.ts +15 -0
  319. package/skill/tools/node_modules/undici/types/client.d.ts +190 -0
  320. package/skill/tools/node_modules/undici/types/connector.d.ts +37 -0
  321. package/skill/tools/node_modules/undici/types/content-type.d.ts +21 -0
  322. package/skill/tools/node_modules/undici/types/cookies.d.ts +30 -0
  323. package/skill/tools/node_modules/undici/types/diagnostics-channel.d.ts +75 -0
  324. package/skill/tools/node_modules/undici/types/dispatcher.d.ts +253 -0
  325. package/skill/tools/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  326. package/skill/tools/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
  327. package/skill/tools/node_modules/undici/types/errors.d.ts +202 -0
  328. package/skill/tools/node_modules/undici/types/eventsource.d.ts +66 -0
  329. package/skill/tools/node_modules/undici/types/fetch.d.ts +235 -0
  330. package/skill/tools/node_modules/undici/types/formdata.d.ts +108 -0
  331. package/skill/tools/node_modules/undici/types/global-dispatcher.d.ts +9 -0
  332. package/skill/tools/node_modules/undici/types/global-origin.d.ts +7 -0
  333. package/skill/tools/node_modules/undici/types/h2c-client.d.ts +73 -0
  334. package/skill/tools/node_modules/undici/types/handlers.d.ts +16 -0
  335. package/skill/tools/node_modules/undici/types/header.d.ts +165 -0
  336. package/skill/tools/node_modules/undici/types/index.d.ts +93 -0
  337. package/skill/tools/node_modules/undici/types/interceptors.d.ts +87 -0
  338. package/skill/tools/node_modules/undici/types/mock-agent.d.ts +69 -0
  339. package/skill/tools/node_modules/undici/types/mock-call-history.d.ts +111 -0
  340. package/skill/tools/node_modules/undici/types/mock-client.d.ts +27 -0
  341. package/skill/tools/node_modules/undici/types/mock-errors.d.ts +12 -0
  342. package/skill/tools/node_modules/undici/types/mock-interceptor.d.ts +98 -0
  343. package/skill/tools/node_modules/undici/types/mock-pool.d.ts +27 -0
  344. package/skill/tools/node_modules/undici/types/patch.d.ts +29 -0
  345. package/skill/tools/node_modules/undici/types/pool-stats.d.ts +19 -0
  346. package/skill/tools/node_modules/undici/types/pool.d.ts +39 -0
  347. package/skill/tools/node_modules/undici/types/proxy-agent.d.ts +36 -0
  348. package/skill/tools/node_modules/undici/types/readable.d.ts +68 -0
  349. package/skill/tools/node_modules/undici/types/retry-agent.d.ts +8 -0
  350. package/skill/tools/node_modules/undici/types/retry-handler.d.ts +125 -0
  351. package/skill/tools/node_modules/undici/types/round-robin-pool.d.ts +39 -0
  352. package/skill/tools/node_modules/undici/types/snapshot-agent.d.ts +113 -0
  353. package/skill/tools/node_modules/undici/types/socks5-proxy-agent.d.ts +27 -0
  354. package/skill/tools/node_modules/undici/types/util.d.ts +18 -0
  355. package/skill/tools/node_modules/undici/types/utility.d.ts +7 -0
  356. package/skill/tools/node_modules/undici/types/webidl.d.ts +352 -0
  357. package/skill/tools/node_modules/undici/types/websocket.d.ts +188 -0
  358. package/skill/tools/node_modules/xtend/.jshintrc +30 -0
  359. package/skill/tools/node_modules/xtend/LICENSE +20 -0
  360. package/skill/tools/node_modules/xtend/README.md +32 -0
  361. package/skill/tools/node_modules/xtend/immutable.js +19 -0
  362. package/skill/tools/node_modules/xtend/mutable.js +17 -0
  363. package/skill/tools/node_modules/xtend/package.json +55 -0
  364. package/skill/tools/node_modules/xtend/test.js +103 -0
  365. package/skill/tools/package-lock.json +172 -0
  366. package/skill/tools/package.json +9 -0
  367. package/skill/tools/transfer_core.js +414 -0
@@ -0,0 +1,262 @@
1
+ 'use strict'
2
+ const crypto = require('./utils')
3
+ const { signatureAlgorithmHashFromCertificate } = require('./cert-signatures')
4
+
5
+ // SASLprep (RFC 4013) — minimal in-tree implementation.
6
+ //
7
+ // Per RFC 5802 §2.2, the SCRAM-SHA-256 client must normalize the password via
8
+ // SASLprep before feeding it into PBKDF2. PostgreSQL's server applies the same
9
+ // SASLprep when computing the stored verifier, and libpq does the same client
10
+ // side, so passwords whose NFKC form differs from the raw form
11
+ // would otherwise authenticate against psql/libpq but fail against pg with `28P01`.
12
+ //
13
+ // We deliberately implement only the three steps that change the byte content:
14
+ // 1. RFC 3454 Table C.1.2 (non-ASCII space) → U+0020 SPACE.
15
+ // 2. RFC 3454 Table B.1 (commonly mapped to nothing) → empty.
16
+ // 3. NFKC normalization.
17
+ // We skip the prohibition (RFC 4013 §2.3) and bidi (RFC 3454 §6) checks.
18
+ // libpq is forgiving on those paths and Postgres's own SASLprep matches that
19
+ // leniency for legacy roles, so omitting the rejection logic keeps existing
20
+ // roles working without adding complexity.
21
+ function saslprep(password) {
22
+ // RFC 3454 Table C.1.2 — non-ASCII space characters, mapped to U+0020.
23
+ const nonAsciiSpace = /[\u00A0\u1680\u2000-\u200B\u202F\u205F\u3000]/g
24
+ // RFC 3454 Table B.1 — "commonly mapped to nothing". The set intentionally
25
+ // contains zero-width joiners and variation selectors — the very characters
26
+ // ESLint's no-misleading-character-class warns about — because they combine
27
+ // with their neighbors and the RFC strips them for that reason.
28
+ // eslint-disable-next-line no-misleading-character-class
29
+ const mappedToNothing = /[\u00AD\u034F\u1806\u180B\u180C\u180D\u200C\u200D\u2060\uFE00-\uFE0F\uFEFF]/g
30
+ return password.replace(nonAsciiSpace, ' ').replace(mappedToNothing, '').normalize('NFKC')
31
+ }
32
+
33
+ const DEFAULT_MAX_SCRAM_ITERATIONS = 100000
34
+
35
+ function startSession(mechanisms, stream, scramMaxIterations = DEFAULT_MAX_SCRAM_ITERATIONS) {
36
+ const candidates = ['SCRAM-SHA-256']
37
+ if (stream) candidates.unshift('SCRAM-SHA-256-PLUS') // higher-priority, so placed first
38
+
39
+ const mechanism = candidates.find((candidate) => mechanisms.includes(candidate))
40
+
41
+ if (!mechanism) {
42
+ throw new Error('SASL: Only mechanism(s) ' + candidates.join(' and ') + ' are supported')
43
+ }
44
+
45
+ if (mechanism === 'SCRAM-SHA-256-PLUS' && typeof stream.getPeerCertificate !== 'function') {
46
+ // this should never happen if we are really talking to a Postgres server
47
+ throw new Error('SASL: Mechanism SCRAM-SHA-256-PLUS requires a certificate')
48
+ }
49
+
50
+ const clientNonce = crypto.randomBytes(18).toString('base64')
51
+ const gs2Header = mechanism === 'SCRAM-SHA-256-PLUS' ? 'p=tls-server-end-point' : stream ? 'y' : 'n'
52
+
53
+ return {
54
+ mechanism,
55
+ clientNonce,
56
+ response: gs2Header + ',,n=*,r=' + clientNonce,
57
+ message: 'SASLInitialResponse',
58
+ scramMaxIterations,
59
+ }
60
+ }
61
+
62
+ async function continueSession(session, password, serverData, stream) {
63
+ if (session.message !== 'SASLInitialResponse') {
64
+ throw new Error('SASL: Last message was not SASLInitialResponse')
65
+ }
66
+ if (typeof password !== 'string') {
67
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string')
68
+ }
69
+ if (password === '') {
70
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a non-empty string')
71
+ }
72
+ if (typeof serverData !== 'string') {
73
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: serverData must be a string')
74
+ }
75
+
76
+ const sv = parseServerFirstMessage(serverData)
77
+
78
+ if (!sv.nonce.startsWith(session.clientNonce)) {
79
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce does not start with client nonce')
80
+ } else if (sv.nonce.length === session.clientNonce.length) {
81
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce is too short')
82
+ }
83
+
84
+ const scramMaxIterations =
85
+ typeof session.scramMaxIterations === 'number' ? session.scramMaxIterations : DEFAULT_MAX_SCRAM_ITERATIONS
86
+ // a value of 0 disables the iteration count check
87
+ if (scramMaxIterations !== 0 && sv.iteration > scramMaxIterations) {
88
+ throw new Error(
89
+ 'SASL: SCRAM-SERVER-FIRST-MESSAGE: iteration count ' +
90
+ sv.iteration +
91
+ ' exceeds scramMaxIterations of ' +
92
+ scramMaxIterations
93
+ )
94
+ }
95
+
96
+ const clientFirstMessageBare = 'n=*,r=' + session.clientNonce
97
+ const serverFirstMessage = 'r=' + sv.nonce + ',s=' + sv.salt + ',i=' + sv.iteration
98
+
99
+ // without channel binding:
100
+ let channelBinding = stream ? 'eSws' : 'biws' // 'y,,' or 'n,,', base64-encoded
101
+
102
+ // override if channel binding is in use:
103
+ if (session.mechanism === 'SCRAM-SHA-256-PLUS') {
104
+ const peerCert = stream.getPeerCertificate().raw
105
+ let hashName = signatureAlgorithmHashFromCertificate(peerCert)
106
+ if (hashName === 'MD5' || hashName === 'SHA-1') hashName = 'SHA-256'
107
+ const certHash = await crypto.hashByName(hashName, peerCert)
108
+ const bindingData = Buffer.concat([Buffer.from('p=tls-server-end-point,,'), Buffer.from(certHash)])
109
+ channelBinding = bindingData.toString('base64')
110
+ }
111
+
112
+ const clientFinalMessageWithoutProof = 'c=' + channelBinding + ',r=' + sv.nonce
113
+ const authMessage = clientFirstMessageBare + ',' + serverFirstMessage + ',' + clientFinalMessageWithoutProof
114
+
115
+ const saltBytes = Buffer.from(sv.salt, 'base64')
116
+ const saltedPassword = await crypto.deriveKey(saslprep(password), saltBytes, sv.iteration)
117
+ const clientKey = await crypto.hmacSha256(saltedPassword, 'Client Key')
118
+ const storedKey = await crypto.sha256(clientKey)
119
+ const clientSignature = await crypto.hmacSha256(storedKey, authMessage)
120
+ const clientProof = xorBuffers(Buffer.from(clientKey), Buffer.from(clientSignature)).toString('base64')
121
+ const serverKey = await crypto.hmacSha256(saltedPassword, 'Server Key')
122
+ const serverSignatureBytes = await crypto.hmacSha256(serverKey, authMessage)
123
+
124
+ session.message = 'SASLResponse'
125
+ session.serverSignature = Buffer.from(serverSignatureBytes).toString('base64')
126
+ session.response = clientFinalMessageWithoutProof + ',p=' + clientProof
127
+ }
128
+
129
+ function finalizeSession(session, serverData) {
130
+ if (session.message !== 'SASLResponse') {
131
+ throw new Error('SASL: Last message was not SASLResponse')
132
+ }
133
+ if (typeof serverData !== 'string') {
134
+ throw new Error('SASL: SCRAM-SERVER-FINAL-MESSAGE: serverData must be a string')
135
+ }
136
+
137
+ const { serverSignature } = parseServerFinalMessage(serverData)
138
+
139
+ if (serverSignature !== session.serverSignature) {
140
+ throw new Error('SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature does not match')
141
+ }
142
+ }
143
+
144
+ /**
145
+ * printable = %x21-2B / %x2D-7E
146
+ * ;; Printable ASCII except ",".
147
+ * ;; Note that any "printable" is also
148
+ * ;; a valid "value".
149
+ */
150
+ function isPrintableChars(text) {
151
+ if (typeof text !== 'string') {
152
+ throw new TypeError('SASL: text must be a string')
153
+ }
154
+ return text
155
+ .split('')
156
+ .map((_, i) => text.charCodeAt(i))
157
+ .every((c) => (c >= 0x21 && c <= 0x2b) || (c >= 0x2d && c <= 0x7e))
158
+ }
159
+
160
+ /**
161
+ * base64-char = ALPHA / DIGIT / "/" / "+"
162
+ *
163
+ * base64-4 = 4base64-char
164
+ *
165
+ * base64-3 = 3base64-char "="
166
+ *
167
+ * base64-2 = 2base64-char "=="
168
+ *
169
+ * base64 = *base64-4 [base64-3 / base64-2]
170
+ */
171
+ function isBase64(text) {
172
+ return /^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$/.test(text)
173
+ }
174
+
175
+ function parseAttributePairs(text) {
176
+ if (typeof text !== 'string') {
177
+ throw new TypeError('SASL: attribute pairs text must be a string')
178
+ }
179
+
180
+ return new Map(
181
+ text.split(',').map((attrValue) => {
182
+ if (!/^.=/.test(attrValue)) {
183
+ throw new Error('SASL: Invalid attribute pair entry')
184
+ }
185
+ const name = attrValue[0]
186
+ const value = attrValue.substring(2)
187
+ return [name, value]
188
+ })
189
+ )
190
+ }
191
+
192
+ function parseServerFirstMessage(data) {
193
+ const attrPairs = parseAttributePairs(data)
194
+
195
+ const nonce = attrPairs.get('r')
196
+ if (!nonce) {
197
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce missing')
198
+ } else if (!isPrintableChars(nonce)) {
199
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce must only contain printable characters')
200
+ }
201
+ const salt = attrPairs.get('s')
202
+ if (!salt) {
203
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: salt missing')
204
+ } else if (!isBase64(salt)) {
205
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: salt must be base64')
206
+ }
207
+ const iterationText = attrPairs.get('i')
208
+ if (!iterationText) {
209
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: iteration missing')
210
+ } else if (!/^[1-9][0-9]*$/.test(iterationText)) {
211
+ throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: invalid iteration count')
212
+ }
213
+ const iteration = parseInt(iterationText, 10)
214
+
215
+ return {
216
+ nonce,
217
+ salt,
218
+ iteration,
219
+ }
220
+ }
221
+
222
+ function parseServerFinalMessage(serverData) {
223
+ const attrPairs = parseAttributePairs(serverData)
224
+ const error = attrPairs.get('e')
225
+ const serverSignature = attrPairs.get('v')
226
+
227
+ if (error) {
228
+ throw new Error(`SASL: SCRAM-SERVER-FINAL-MESSAGE: server returned error: "${error}"`)
229
+ }
230
+
231
+ if (!serverSignature) {
232
+ throw new Error('SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature is missing')
233
+ } else if (!isBase64(serverSignature)) {
234
+ throw new Error('SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature must be base64')
235
+ }
236
+ return {
237
+ serverSignature,
238
+ }
239
+ }
240
+
241
+ function xorBuffers(a, b) {
242
+ if (!Buffer.isBuffer(a)) {
243
+ throw new TypeError('first argument must be a Buffer')
244
+ }
245
+ if (!Buffer.isBuffer(b)) {
246
+ throw new TypeError('second argument must be a Buffer')
247
+ }
248
+ if (a.length !== b.length) {
249
+ throw new Error('Buffer lengths must match')
250
+ }
251
+ if (a.length === 0) {
252
+ throw new Error('Buffers cannot be empty')
253
+ }
254
+ return Buffer.from(a.map((_, i) => a[i] ^ b[i]))
255
+ }
256
+
257
+ module.exports = {
258
+ startSession,
259
+ continueSession,
260
+ finalizeSession,
261
+ DEFAULT_MAX_SCRAM_ITERATIONS,
262
+ }
@@ -0,0 +1,89 @@
1
+ const nodeCrypto = require('crypto')
2
+
3
+ module.exports = {
4
+ postgresMd5PasswordHash,
5
+ randomBytes,
6
+ deriveKey,
7
+ sha256,
8
+ hashByName,
9
+ hmacSha256,
10
+ md5,
11
+ }
12
+
13
+ /**
14
+ * The Web Crypto API - grabbed from the Node.js library or the global
15
+ * @type Crypto
16
+ */
17
+ // eslint-disable-next-line no-undef
18
+ const webCrypto = nodeCrypto.webcrypto || globalThis.crypto
19
+ /**
20
+ * The SubtleCrypto API for low level crypto operations.
21
+ * @type SubtleCrypto
22
+ */
23
+ const subtleCrypto = webCrypto.subtle
24
+ const textEncoder = new TextEncoder()
25
+
26
+ /**
27
+ *
28
+ * @param {*} length
29
+ * @returns
30
+ */
31
+ function randomBytes(length) {
32
+ return webCrypto.getRandomValues(Buffer.alloc(length))
33
+ }
34
+
35
+ async function md5(string) {
36
+ try {
37
+ return nodeCrypto.createHash('md5').update(string, 'utf-8').digest('hex')
38
+ } catch (e) {
39
+ // `createHash()` failed so we are probably not in Node.js, use the WebCrypto API instead.
40
+ // Note that the MD5 algorithm on WebCrypto is not available in Node.js.
41
+ // This is why we cannot just use WebCrypto in all environments.
42
+ const data = typeof string === 'string' ? textEncoder.encode(string) : string
43
+ const hash = await subtleCrypto.digest('MD5', data)
44
+ return Array.from(new Uint8Array(hash))
45
+ .map((b) => b.toString(16).padStart(2, '0'))
46
+ .join('')
47
+ }
48
+ }
49
+
50
+ // See AuthenticationMD5Password at https://www.postgresql.org/docs/current/static/protocol-flow.html
51
+ async function postgresMd5PasswordHash(user, password, salt) {
52
+ const inner = await md5(password + user)
53
+ const outer = await md5(Buffer.concat([Buffer.from(inner), salt]))
54
+ return 'md5' + outer
55
+ }
56
+
57
+ /**
58
+ * Create a SHA-256 digest of the given data
59
+ * @param {Buffer} data
60
+ */
61
+ async function sha256(text) {
62
+ return await subtleCrypto.digest('SHA-256', text)
63
+ }
64
+
65
+ async function hashByName(hashName, text) {
66
+ return await subtleCrypto.digest(hashName, text)
67
+ }
68
+
69
+ /**
70
+ * Sign the message with the given key
71
+ * @param {ArrayBuffer} keyBuffer
72
+ * @param {string} msg
73
+ */
74
+ async function hmacSha256(keyBuffer, msg) {
75
+ const key = await subtleCrypto.importKey('raw', keyBuffer, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign'])
76
+ return await subtleCrypto.sign('HMAC', key, textEncoder.encode(msg))
77
+ }
78
+
79
+ /**
80
+ * Derive a key from the password and salt
81
+ * @param {string} password
82
+ * @param {Uint8Array} salt
83
+ * @param {number} iterations
84
+ */
85
+ async function deriveKey(password, salt, iterations) {
86
+ const key = await subtleCrypto.importKey('raw', textEncoder.encode(password), 'PBKDF2', false, ['deriveBits'])
87
+ const params = { name: 'PBKDF2', hash: 'SHA-256', salt: salt, iterations: iterations }
88
+ return await subtleCrypto.deriveBits(params, key, 32 * 8, ['deriveBits'])
89
+ }
@@ -0,0 +1,94 @@
1
+ 'use strict'
2
+
3
+ let user
4
+ try {
5
+ user = process.platform === 'win32' ? process.env.USERNAME : process.env.USER
6
+ } catch {
7
+ // ignore, e.g., Deno without --allow-env
8
+ }
9
+
10
+ module.exports = {
11
+ // database host. defaults to localhost
12
+ host: 'localhost',
13
+
14
+ // database user's name
15
+ user,
16
+
17
+ // name of database to connect
18
+ database: undefined,
19
+
20
+ // database user's password
21
+ password: null,
22
+
23
+ // a Postgres connection string to be used instead of setting individual connection items
24
+ // NOTE: Setting this value will cause it to override any other value (such as database or user) defined
25
+ // in the defaults object.
26
+ connectionString: undefined,
27
+
28
+ // database port
29
+ port: 5432,
30
+
31
+ // number of rows to return at a time from a prepared statement's
32
+ // portal. 0 will return all rows at once
33
+ rows: 0,
34
+
35
+ // binary result mode
36
+ binary: false,
37
+
38
+ // Connection pool options - see https://github.com/brianc/node-pg-pool
39
+
40
+ // number of connections to use in connection pool
41
+ // 0 will disable connection pooling
42
+ max: 10,
43
+
44
+ // max milliseconds a client can go unused before it is removed
45
+ // from the pool and destroyed
46
+ idleTimeoutMillis: 30000,
47
+
48
+ client_encoding: '',
49
+
50
+ ssl: false,
51
+
52
+ // SSL negotiation style: 'postgres' (traditional SSLRequest) or 'direct'
53
+ sslnegotiation: undefined,
54
+
55
+ application_name: undefined,
56
+
57
+ fallback_application_name: undefined,
58
+
59
+ options: undefined,
60
+
61
+ parseInputDatesAsUTC: false,
62
+
63
+ // max milliseconds any query using this connection will execute for before timing out in error.
64
+ // false=unlimited
65
+ statement_timeout: false,
66
+
67
+ // Abort any statement that waits longer than the specified duration in milliseconds while attempting to acquire a lock.
68
+ // false=unlimited
69
+ lock_timeout: false,
70
+
71
+ // Terminate any session with an open transaction that has been idle for longer than the specified duration in milliseconds
72
+ // false=unlimited
73
+ idle_in_transaction_session_timeout: false,
74
+
75
+ // max milliseconds to wait for query to complete (client side)
76
+ query_timeout: false,
77
+
78
+ connect_timeout: 0,
79
+
80
+ keepalives: 1,
81
+
82
+ keepalives_idle: 0,
83
+ }
84
+
85
+ const pgTypes = require('pg-types')
86
+ // save default parsers
87
+ const parseBigInteger = pgTypes.getTypeParser(20, 'text')
88
+ const parseBigIntegerArray = pgTypes.getTypeParser(1016, 'text')
89
+
90
+ // parse int8 so you can get your count values as actual numbers
91
+ module.exports.__defineSetter__('parseInt8', function (val) {
92
+ pgTypes.setTypeParser(20, 'text', val ? pgTypes.getTypeParser(23, 'text') : parseBigInteger)
93
+ pgTypes.setTypeParser(1016, 'text', val ? pgTypes.getTypeParser(1007, 'text') : parseBigIntegerArray)
94
+ })
@@ -0,0 +1,73 @@
1
+ 'use strict'
2
+
3
+ const Client = require('./client')
4
+ const defaults = require('./defaults')
5
+ const Connection = require('./connection')
6
+ const Result = require('./result')
7
+ const utils = require('./utils')
8
+ const Pool = require('pg-pool')
9
+ const TypeOverrides = require('./type-overrides')
10
+ const { DatabaseError } = require('pg-protocol')
11
+ const { escapeIdentifier, escapeLiteral } = require('./utils')
12
+
13
+ const poolFactory = (Client) => {
14
+ return class BoundPool extends Pool {
15
+ constructor(options) {
16
+ super(options, Client)
17
+ }
18
+ }
19
+ }
20
+
21
+ const PG = function (clientConstructor) {
22
+ this.defaults = defaults
23
+ this.Client = clientConstructor
24
+ this.Query = this.Client.Query
25
+ this.Pool = poolFactory(this.Client)
26
+ this._pools = []
27
+ this.Connection = Connection
28
+ this.types = require('pg-types')
29
+ this.DatabaseError = DatabaseError
30
+ this.TypeOverrides = TypeOverrides
31
+ this.escapeIdentifier = escapeIdentifier
32
+ this.escapeLiteral = escapeLiteral
33
+ this.Result = Result
34
+ this.utils = utils
35
+ }
36
+
37
+ let clientConstructor = Client
38
+
39
+ let forceNative = false
40
+ try {
41
+ forceNative = !!process.env.NODE_PG_FORCE_NATIVE
42
+ } catch {
43
+ // ignore, e.g., Deno without --allow-env
44
+ }
45
+
46
+ if (forceNative) {
47
+ clientConstructor = require('./native')
48
+ }
49
+
50
+ module.exports = new PG(clientConstructor)
51
+
52
+ // lazy require native module...the native module may not have installed
53
+ Object.defineProperty(module.exports, 'native', {
54
+ configurable: true,
55
+ enumerable: false,
56
+ get() {
57
+ let native = null
58
+ try {
59
+ native = new PG(require('./native'))
60
+ } catch (err) {
61
+ if (err.code !== 'MODULE_NOT_FOUND') {
62
+ throw err
63
+ }
64
+ }
65
+
66
+ // overwrite module.exports.native so that getter is never called again
67
+ Object.defineProperty(module.exports, 'native', {
68
+ value: native,
69
+ })
70
+
71
+ return native
72
+ },
73
+ })