pnpm 11.0.6 → 11.0.8

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 (377) hide show
  1. package/dist/node_modules/node-gyp/.release-please-manifest.json +1 -1
  2. package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
  3. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +11 -3
  4. package/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +2 -3
  5. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +1 -1
  6. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2 -1
  7. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +26 -16
  8. package/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +1 -1
  9. package/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1 -1
  10. package/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +2 -2
  11. package/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +3 -20
  12. package/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +2 -14
  13. package/dist/node_modules/node-gyp/gyp/pyproject.toml +5 -3
  14. package/dist/node_modules/node-gyp/lib/download.js +55 -8
  15. package/dist/node_modules/node-gyp/lib/find-visualstudio.js +1 -1
  16. package/dist/node_modules/node-gyp/lib/process-release.js +17 -19
  17. package/dist/node_modules/node-gyp/package.json +3 -3
  18. package/dist/node_modules/{safer-buffer → undici}/LICENSE +1 -1
  19. package/dist/node_modules/undici/index-fetch.js +35 -0
  20. package/dist/node_modules/undici/index.js +169 -0
  21. package/dist/node_modules/undici/lib/api/abort-signal.js +57 -0
  22. package/dist/node_modules/undici/lib/api/api-connect.js +108 -0
  23. package/dist/node_modules/undici/lib/api/api-pipeline.js +251 -0
  24. package/dist/node_modules/undici/lib/api/api-request.js +214 -0
  25. package/dist/node_modules/undici/lib/api/api-stream.js +220 -0
  26. package/dist/node_modules/undici/lib/api/api-upgrade.js +108 -0
  27. package/dist/node_modules/undici/lib/api/index.js +7 -0
  28. package/dist/node_modules/undici/lib/api/readable.js +385 -0
  29. package/dist/node_modules/undici/lib/api/util.js +93 -0
  30. package/dist/node_modules/undici/lib/core/connect.js +240 -0
  31. package/dist/node_modules/undici/lib/core/constants.js +118 -0
  32. package/dist/node_modules/undici/lib/core/diagnostics.js +202 -0
  33. package/dist/node_modules/undici/lib/core/errors.js +425 -0
  34. package/dist/node_modules/undici/lib/core/request.js +405 -0
  35. package/dist/node_modules/undici/lib/core/symbols.js +67 -0
  36. package/dist/node_modules/undici/lib/core/tree.js +152 -0
  37. package/dist/node_modules/undici/lib/core/util.js +719 -0
  38. package/dist/node_modules/undici/lib/dispatcher/agent.js +130 -0
  39. package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +209 -0
  40. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +1370 -0
  41. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +744 -0
  42. package/dist/node_modules/undici/lib/dispatcher/client.js +623 -0
  43. package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
  44. package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +65 -0
  45. package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +160 -0
  46. package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +117 -0
  47. package/dist/node_modules/undici/lib/dispatcher/pool-base.js +194 -0
  48. package/dist/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
  49. package/dist/node_modules/undici/lib/dispatcher/pool.js +107 -0
  50. package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +274 -0
  51. package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
  52. package/dist/node_modules/undici/lib/global.js +32 -0
  53. package/dist/node_modules/undici/lib/handler/decorator-handler.js +44 -0
  54. package/dist/node_modules/undici/lib/handler/redirect-handler.js +232 -0
  55. package/dist/node_modules/undici/lib/handler/retry-handler.js +374 -0
  56. package/dist/node_modules/undici/lib/interceptor/dns.js +375 -0
  57. package/dist/node_modules/undici/lib/interceptor/dump.js +123 -0
  58. package/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
  59. package/dist/node_modules/undici/lib/interceptor/redirect.js +24 -0
  60. package/dist/node_modules/undici/lib/interceptor/response-error.js +86 -0
  61. package/dist/node_modules/undici/lib/interceptor/retry.js +19 -0
  62. package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  63. package/dist/node_modules/undici/lib/llhttp/constants.js +278 -0
  64. package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +5 -0
  65. package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +5 -0
  66. package/dist/node_modules/undici/lib/llhttp/utils.js +15 -0
  67. package/dist/node_modules/undici/lib/mock/mock-agent.js +160 -0
  68. package/dist/node_modules/undici/lib/mock/mock-client.js +59 -0
  69. package/dist/node_modules/undici/lib/mock/mock-errors.js +28 -0
  70. package/dist/node_modules/undici/lib/mock/mock-interceptor.js +207 -0
  71. package/dist/node_modules/undici/lib/mock/mock-pool.js +59 -0
  72. package/dist/node_modules/undici/lib/mock/mock-symbols.js +23 -0
  73. package/dist/node_modules/undici/lib/mock/mock-utils.js +367 -0
  74. package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  75. package/dist/node_modules/undici/lib/mock/pluralizer.js +29 -0
  76. package/dist/node_modules/undici/lib/util/timers.js +423 -0
  77. package/dist/node_modules/undici/lib/web/cache/cache.js +859 -0
  78. package/dist/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
  79. package/dist/node_modules/undici/lib/web/cache/symbols.js +5 -0
  80. package/dist/node_modules/undici/lib/web/cache/util.js +45 -0
  81. package/dist/node_modules/undici/lib/web/cookies/constants.js +12 -0
  82. package/dist/node_modules/undici/lib/web/cookies/index.js +184 -0
  83. package/dist/node_modules/undici/lib/web/cookies/parse.js +317 -0
  84. package/dist/node_modules/undici/lib/web/cookies/util.js +282 -0
  85. package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +398 -0
  86. package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +480 -0
  87. package/dist/node_modules/undici/lib/web/eventsource/util.js +37 -0
  88. package/dist/node_modules/{@npmcli/redact → undici/lib/web/fetch}/LICENSE +1 -1
  89. package/dist/node_modules/undici/lib/web/fetch/body.js +529 -0
  90. package/dist/node_modules/undici/lib/web/fetch/constants.js +124 -0
  91. package/dist/node_modules/undici/lib/web/fetch/data-url.js +744 -0
  92. package/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
  93. package/dist/node_modules/undici/lib/web/fetch/file.js +126 -0
  94. package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +474 -0
  95. package/dist/node_modules/undici/lib/web/fetch/formdata.js +252 -0
  96. package/dist/node_modules/undici/lib/web/fetch/global.js +40 -0
  97. package/dist/node_modules/undici/lib/web/fetch/headers.js +687 -0
  98. package/dist/node_modules/undici/lib/web/fetch/index.js +2272 -0
  99. package/dist/node_modules/undici/lib/web/fetch/request.js +1037 -0
  100. package/dist/node_modules/undici/lib/web/fetch/response.js +610 -0
  101. package/dist/node_modules/undici/lib/web/fetch/symbols.js +9 -0
  102. package/dist/node_modules/undici/lib/web/fetch/util.js +1632 -0
  103. package/dist/node_modules/undici/lib/web/fetch/webidl.js +695 -0
  104. package/dist/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
  105. package/dist/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
  106. package/dist/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
  107. package/dist/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
  108. package/dist/node_modules/undici/lib/web/fileapi/util.js +391 -0
  109. package/dist/node_modules/undici/lib/web/websocket/connection.js +371 -0
  110. package/dist/node_modules/undici/lib/web/websocket/constants.js +66 -0
  111. package/dist/node_modules/undici/lib/web/websocket/events.js +329 -0
  112. package/dist/node_modules/undici/lib/web/websocket/frame.js +96 -0
  113. package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +100 -0
  114. package/dist/node_modules/undici/lib/web/websocket/receiver.js +490 -0
  115. package/dist/node_modules/undici/lib/web/websocket/sender.js +104 -0
  116. package/dist/node_modules/undici/lib/web/websocket/symbols.js +12 -0
  117. package/dist/node_modules/undici/lib/web/websocket/util.js +322 -0
  118. package/dist/node_modules/undici/lib/web/websocket/websocket.js +592 -0
  119. package/dist/node_modules/undici/package.json +160 -0
  120. package/dist/node_modules/undici/scripts/strip-comments.js +8 -0
  121. package/dist/node_modules/yallist/package.json +51 -12
  122. package/dist/pnpm.mjs +4529 -3898
  123. package/dist/worker.js +76 -73
  124. package/package.json +1 -1
  125. package/dist/node_modules/@gar/promise-retry/LICENSE +0 -20
  126. package/dist/node_modules/@gar/promise-retry/lib/index.js +0 -62
  127. package/dist/node_modules/@gar/promise-retry/lib/retry.js +0 -109
  128. package/dist/node_modules/@gar/promise-retry/package.json +0 -45
  129. package/dist/node_modules/@npmcli/agent/lib/agents.js +0 -206
  130. package/dist/node_modules/@npmcli/agent/lib/dns.js +0 -53
  131. package/dist/node_modules/@npmcli/agent/lib/errors.js +0 -61
  132. package/dist/node_modules/@npmcli/agent/lib/index.js +0 -56
  133. package/dist/node_modules/@npmcli/agent/lib/options.js +0 -86
  134. package/dist/node_modules/@npmcli/agent/lib/proxy.js +0 -88
  135. package/dist/node_modules/@npmcli/agent/package.json +0 -60
  136. package/dist/node_modules/@npmcli/fs/lib/common/get-options.js +0 -20
  137. package/dist/node_modules/@npmcli/fs/lib/common/node.js +0 -9
  138. package/dist/node_modules/@npmcli/fs/lib/cp/LICENSE +0 -15
  139. package/dist/node_modules/@npmcli/fs/lib/cp/errors.js +0 -129
  140. package/dist/node_modules/@npmcli/fs/lib/cp/index.js +0 -22
  141. package/dist/node_modules/@npmcli/fs/lib/cp/polyfill.js +0 -428
  142. package/dist/node_modules/@npmcli/fs/lib/index.js +0 -13
  143. package/dist/node_modules/@npmcli/fs/lib/move-file.js +0 -78
  144. package/dist/node_modules/@npmcli/fs/lib/readdir-scoped.js +0 -20
  145. package/dist/node_modules/@npmcli/fs/lib/with-temp-dir.js +0 -39
  146. package/dist/node_modules/@npmcli/fs/package.json +0 -54
  147. package/dist/node_modules/@npmcli/redact/lib/deep-map.js +0 -71
  148. package/dist/node_modules/@npmcli/redact/lib/error.js +0 -28
  149. package/dist/node_modules/@npmcli/redact/lib/index.js +0 -44
  150. package/dist/node_modules/@npmcli/redact/lib/matchers.js +0 -88
  151. package/dist/node_modules/@npmcli/redact/lib/server.js +0 -59
  152. package/dist/node_modules/@npmcli/redact/lib/utils.js +0 -202
  153. package/dist/node_modules/@npmcli/redact/package.json +0 -52
  154. package/dist/node_modules/agent-base/LICENSE +0 -22
  155. package/dist/node_modules/agent-base/dist/helpers.js +0 -66
  156. package/dist/node_modules/agent-base/dist/index.js +0 -178
  157. package/dist/node_modules/agent-base/package.json +0 -46
  158. package/dist/node_modules/balanced-match/dist/commonjs/index.js +0 -59
  159. package/dist/node_modules/balanced-match/dist/esm/index.js +0 -54
  160. package/dist/node_modules/balanced-match/package.json +0 -68
  161. package/dist/node_modules/brace-expansion/LICENSE +0 -23
  162. package/dist/node_modules/brace-expansion/dist/commonjs/index.js +0 -201
  163. package/dist/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
  164. package/dist/node_modules/brace-expansion/dist/esm/index.js +0 -197
  165. package/dist/node_modules/brace-expansion/dist/esm/package.json +0 -3
  166. package/dist/node_modules/brace-expansion/package.json +0 -64
  167. package/dist/node_modules/cacache/lib/content/path.js +0 -29
  168. package/dist/node_modules/cacache/lib/content/read.js +0 -165
  169. package/dist/node_modules/cacache/lib/content/rm.js +0 -18
  170. package/dist/node_modules/cacache/lib/content/write.js +0 -206
  171. package/dist/node_modules/cacache/lib/entry-index.js +0 -336
  172. package/dist/node_modules/cacache/lib/get.js +0 -170
  173. package/dist/node_modules/cacache/lib/index.js +0 -42
  174. package/dist/node_modules/cacache/lib/memoization.js +0 -72
  175. package/dist/node_modules/cacache/lib/put.js +0 -80
  176. package/dist/node_modules/cacache/lib/rm.js +0 -31
  177. package/dist/node_modules/cacache/lib/util/glob.js +0 -7
  178. package/dist/node_modules/cacache/lib/util/hash-to-segments.js +0 -7
  179. package/dist/node_modules/cacache/lib/util/tmp.js +0 -32
  180. package/dist/node_modules/cacache/lib/verify.js +0 -258
  181. package/dist/node_modules/cacache/package.json +0 -81
  182. package/dist/node_modules/debug/LICENSE +0 -20
  183. package/dist/node_modules/debug/package.json +0 -64
  184. package/dist/node_modules/debug/src/browser.js +0 -272
  185. package/dist/node_modules/debug/src/common.js +0 -292
  186. package/dist/node_modules/debug/src/index.js +0 -10
  187. package/dist/node_modules/debug/src/node.js +0 -263
  188. package/dist/node_modules/fs-minipass/LICENSE +0 -15
  189. package/dist/node_modules/fs-minipass/lib/index.js +0 -443
  190. package/dist/node_modules/fs-minipass/package.json +0 -54
  191. package/dist/node_modules/glob/dist/commonjs/glob.js +0 -248
  192. package/dist/node_modules/glob/dist/commonjs/has-magic.js +0 -27
  193. package/dist/node_modules/glob/dist/commonjs/ignore.js +0 -119
  194. package/dist/node_modules/glob/dist/commonjs/index.js +0 -68
  195. package/dist/node_modules/glob/dist/commonjs/index.min.js +0 -4
  196. package/dist/node_modules/glob/dist/commonjs/package.json +0 -3
  197. package/dist/node_modules/glob/dist/commonjs/pattern.js +0 -223
  198. package/dist/node_modules/glob/dist/commonjs/processor.js +0 -301
  199. package/dist/node_modules/glob/dist/commonjs/walker.js +0 -387
  200. package/dist/node_modules/glob/dist/esm/glob.js +0 -244
  201. package/dist/node_modules/glob/dist/esm/has-magic.js +0 -23
  202. package/dist/node_modules/glob/dist/esm/ignore.js +0 -115
  203. package/dist/node_modules/glob/dist/esm/index.js +0 -55
  204. package/dist/node_modules/glob/dist/esm/index.min.js +0 -4
  205. package/dist/node_modules/glob/dist/esm/package.json +0 -3
  206. package/dist/node_modules/glob/dist/esm/pattern.js +0 -219
  207. package/dist/node_modules/glob/dist/esm/processor.js +0 -294
  208. package/dist/node_modules/glob/dist/esm/walker.js +0 -381
  209. package/dist/node_modules/glob/package.json +0 -98
  210. package/dist/node_modules/http-cache-semantics/LICENSE +0 -9
  211. package/dist/node_modules/http-cache-semantics/index.js +0 -928
  212. package/dist/node_modules/http-cache-semantics/package.json +0 -22
  213. package/dist/node_modules/http-proxy-agent/LICENSE +0 -22
  214. package/dist/node_modules/http-proxy-agent/dist/index.js +0 -148
  215. package/dist/node_modules/http-proxy-agent/package.json +0 -47
  216. package/dist/node_modules/https-proxy-agent/LICENSE +0 -22
  217. package/dist/node_modules/https-proxy-agent/dist/index.js +0 -180
  218. package/dist/node_modules/https-proxy-agent/dist/parse-proxy-response.js +0 -101
  219. package/dist/node_modules/https-proxy-agent/package.json +0 -50
  220. package/dist/node_modules/iconv-lite/LICENSE +0 -21
  221. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
  222. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
  223. package/dist/node_modules/iconv-lite/encodings/index.js +0 -23
  224. package/dist/node_modules/iconv-lite/encodings/internal.js +0 -218
  225. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
  226. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  227. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
  228. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  229. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  230. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  231. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  232. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  233. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  234. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
  235. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  236. package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -187
  237. package/dist/node_modules/iconv-lite/encodings/utf32.js +0 -307
  238. package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -283
  239. package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -48
  240. package/dist/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
  241. package/dist/node_modules/iconv-lite/lib/index.js +0 -182
  242. package/dist/node_modules/iconv-lite/lib/streams.js +0 -105
  243. package/dist/node_modules/iconv-lite/package.json +0 -70
  244. package/dist/node_modules/ip-address/LICENSE +0 -19
  245. package/dist/node_modules/ip-address/dist/address-error.js +0 -12
  246. package/dist/node_modules/ip-address/dist/common.js +0 -46
  247. package/dist/node_modules/ip-address/dist/ip-address.js +0 -35
  248. package/dist/node_modules/ip-address/dist/ipv4.js +0 -360
  249. package/dist/node_modules/ip-address/dist/ipv6.js +0 -1003
  250. package/dist/node_modules/ip-address/dist/v4/constants.js +0 -8
  251. package/dist/node_modules/ip-address/dist/v6/constants.js +0 -76
  252. package/dist/node_modules/ip-address/dist/v6/helpers.js +0 -45
  253. package/dist/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
  254. package/dist/node_modules/ip-address/package.json +0 -78
  255. package/dist/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +0 -10
  256. package/dist/node_modules/lru-cache/dist/commonjs/index.js +0 -1692
  257. package/dist/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
  258. package/dist/node_modules/lru-cache/dist/commonjs/package.json +0 -3
  259. package/dist/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +0 -4
  260. package/dist/node_modules/lru-cache/dist/esm/browser/index.js +0 -1688
  261. package/dist/node_modules/lru-cache/dist/esm/browser/index.min.js +0 -2
  262. package/dist/node_modules/lru-cache/dist/esm/diagnostics-channel.js +0 -19
  263. package/dist/node_modules/lru-cache/dist/esm/index.js +0 -1688
  264. package/dist/node_modules/lru-cache/dist/esm/index.min.js +0 -2
  265. package/dist/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +0 -7
  266. package/dist/node_modules/lru-cache/dist/esm/node/index.js +0 -1688
  267. package/dist/node_modules/lru-cache/dist/esm/node/index.min.js +0 -2
  268. package/dist/node_modules/lru-cache/dist/esm/package.json +0 -3
  269. package/dist/node_modules/lru-cache/package.json +0 -126
  270. package/dist/node_modules/make-fetch-happen/LICENSE +0 -16
  271. package/dist/node_modules/make-fetch-happen/lib/cache/entry.js +0 -471
  272. package/dist/node_modules/make-fetch-happen/lib/cache/errors.js +0 -11
  273. package/dist/node_modules/make-fetch-happen/lib/cache/index.js +0 -49
  274. package/dist/node_modules/make-fetch-happen/lib/cache/key.js +0 -17
  275. package/dist/node_modules/make-fetch-happen/lib/cache/policy.js +0 -161
  276. package/dist/node_modules/make-fetch-happen/lib/fetch.js +0 -118
  277. package/dist/node_modules/make-fetch-happen/lib/index.js +0 -41
  278. package/dist/node_modules/make-fetch-happen/lib/options.js +0 -59
  279. package/dist/node_modules/make-fetch-happen/lib/pipeline.js +0 -41
  280. package/dist/node_modules/make-fetch-happen/lib/remote.js +0 -134
  281. package/dist/node_modules/make-fetch-happen/package.json +0 -75
  282. package/dist/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
  283. package/dist/node_modules/minimatch/dist/commonjs/ast.js +0 -845
  284. package/dist/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
  285. package/dist/node_modules/minimatch/dist/commonjs/escape.js +0 -30
  286. package/dist/node_modules/minimatch/dist/commonjs/index.js +0 -1127
  287. package/dist/node_modules/minimatch/dist/commonjs/package.json +0 -3
  288. package/dist/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
  289. package/dist/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
  290. package/dist/node_modules/minimatch/dist/esm/ast.js +0 -841
  291. package/dist/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
  292. package/dist/node_modules/minimatch/dist/esm/escape.js +0 -26
  293. package/dist/node_modules/minimatch/dist/esm/index.js +0 -1114
  294. package/dist/node_modules/minimatch/dist/esm/package.json +0 -3
  295. package/dist/node_modules/minimatch/dist/esm/unescape.js +0 -34
  296. package/dist/node_modules/minimatch/package.json +0 -73
  297. package/dist/node_modules/minipass-collect/LICENSE +0 -15
  298. package/dist/node_modules/minipass-collect/index.js +0 -71
  299. package/dist/node_modules/minipass-collect/package.json +0 -30
  300. package/dist/node_modules/minipass-fetch/LICENSE +0 -28
  301. package/dist/node_modules/minipass-fetch/lib/abort-error.js +0 -17
  302. package/dist/node_modules/minipass-fetch/lib/blob.js +0 -97
  303. package/dist/node_modules/minipass-fetch/lib/body.js +0 -360
  304. package/dist/node_modules/minipass-fetch/lib/fetch-error.js +0 -32
  305. package/dist/node_modules/minipass-fetch/lib/headers.js +0 -267
  306. package/dist/node_modules/minipass-fetch/lib/index.js +0 -376
  307. package/dist/node_modules/minipass-fetch/lib/request.js +0 -282
  308. package/dist/node_modules/minipass-fetch/lib/response.js +0 -90
  309. package/dist/node_modules/minipass-fetch/package.json +0 -70
  310. package/dist/node_modules/minipass-flush/index.js +0 -39
  311. package/dist/node_modules/minipass-flush/node_modules/minipass/LICENSE +0 -15
  312. package/dist/node_modules/minipass-flush/node_modules/minipass/index.js +0 -649
  313. package/dist/node_modules/minipass-flush/node_modules/minipass/package.json +0 -56
  314. package/dist/node_modules/minipass-flush/package.json +0 -42
  315. package/dist/node_modules/minipass-pipeline/LICENSE +0 -15
  316. package/dist/node_modules/minipass-pipeline/index.js +0 -128
  317. package/dist/node_modules/minipass-pipeline/node_modules/minipass/LICENSE +0 -15
  318. package/dist/node_modules/minipass-pipeline/node_modules/minipass/index.js +0 -649
  319. package/dist/node_modules/minipass-pipeline/node_modules/minipass/package.json +0 -56
  320. package/dist/node_modules/minipass-pipeline/package.json +0 -29
  321. package/dist/node_modules/minipass-sized/LICENSE +0 -15
  322. package/dist/node_modules/minipass-sized/dist/commonjs/index.js +0 -69
  323. package/dist/node_modules/minipass-sized/dist/commonjs/package.json +0 -3
  324. package/dist/node_modules/minipass-sized/dist/esm/index.js +0 -64
  325. package/dist/node_modules/minipass-sized/dist/esm/package.json +0 -3
  326. package/dist/node_modules/minipass-sized/package.json +0 -69
  327. package/dist/node_modules/ms/index.js +0 -162
  328. package/dist/node_modules/ms/package.json +0 -38
  329. package/dist/node_modules/negotiator/LICENSE +0 -24
  330. package/dist/node_modules/negotiator/index.js +0 -83
  331. package/dist/node_modules/negotiator/lib/charset.js +0 -169
  332. package/dist/node_modules/negotiator/lib/encoding.js +0 -205
  333. package/dist/node_modules/negotiator/lib/language.js +0 -179
  334. package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
  335. package/dist/node_modules/negotiator/package.json +0 -43
  336. package/dist/node_modules/p-map/index.js +0 -283
  337. package/dist/node_modules/p-map/license +0 -9
  338. package/dist/node_modules/p-map/package.json +0 -57
  339. package/dist/node_modules/path-scurry/dist/commonjs/index.js +0 -2018
  340. package/dist/node_modules/path-scurry/dist/commonjs/package.json +0 -3
  341. package/dist/node_modules/path-scurry/dist/esm/index.js +0 -1983
  342. package/dist/node_modules/path-scurry/dist/esm/package.json +0 -3
  343. package/dist/node_modules/path-scurry/package.json +0 -72
  344. package/dist/node_modules/safer-buffer/dangerous.js +0 -58
  345. package/dist/node_modules/safer-buffer/package.json +0 -34
  346. package/dist/node_modules/safer-buffer/safer.js +0 -77
  347. package/dist/node_modules/safer-buffer/tests.js +0 -406
  348. package/dist/node_modules/smart-buffer/.prettierrc.yaml +0 -5
  349. package/dist/node_modules/smart-buffer/LICENSE +0 -20
  350. package/dist/node_modules/smart-buffer/build/smartbuffer.js +0 -1233
  351. package/dist/node_modules/smart-buffer/build/utils.js +0 -108
  352. package/dist/node_modules/smart-buffer/package.json +0 -79
  353. package/dist/node_modules/socks/.eslintrc.cjs +0 -11
  354. package/dist/node_modules/socks/.prettierrc.yaml +0 -7
  355. package/dist/node_modules/socks/LICENSE +0 -20
  356. package/dist/node_modules/socks/build/client/socksclient.js +0 -793
  357. package/dist/node_modules/socks/build/common/constants.js +0 -108
  358. package/dist/node_modules/socks/build/common/helpers.js +0 -167
  359. package/dist/node_modules/socks/build/common/receivebuffer.js +0 -43
  360. package/dist/node_modules/socks/build/common/util.js +0 -25
  361. package/dist/node_modules/socks/build/index.js +0 -18
  362. package/dist/node_modules/socks/package.json +0 -58
  363. package/dist/node_modules/socks-proxy-agent/LICENSE +0 -22
  364. package/dist/node_modules/socks-proxy-agent/dist/index.js +0 -195
  365. package/dist/node_modules/socks-proxy-agent/package.json +0 -142
  366. package/dist/node_modules/ssri/lib/index.js +0 -550
  367. package/dist/node_modules/ssri/package.json +0 -66
  368. package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/package.json +0 -3
  369. package/dist/node_modules/tar/node_modules/yallist/dist/esm/package.json +0 -3
  370. package/dist/node_modules/tar/node_modules/yallist/package.json +0 -68
  371. package/dist/node_modules/yallist/LICENSE +0 -15
  372. package/dist/node_modules/yallist/iterator.js +0 -8
  373. package/dist/node_modules/yallist/yallist.js +0 -426
  374. /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.js +0 -0
  375. /package/dist/node_modules/{balanced-match → yallist}/dist/commonjs/package.json +0 -0
  376. /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.js +0 -0
  377. /package/dist/node_modules/{balanced-match → yallist}/dist/esm/package.json +0 -0
@@ -1,142 +0,0 @@
1
- {
2
- "name": "socks-proxy-agent",
3
- "version": "8.0.5",
4
- "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
5
- "main": "./dist/index.js",
6
- "types": "./dist/index.d.ts",
7
- "files": [
8
- "dist"
9
- ],
10
- "author": {
11
- "email": "nathan@tootallnate.net",
12
- "name": "Nathan Rajlich",
13
- "url": "http://n8.io/"
14
- },
15
- "contributors": [
16
- {
17
- "name": "Kiko Beats",
18
- "email": "josefrancisco.verdu@gmail.com"
19
- },
20
- {
21
- "name": "Josh Glazebrook",
22
- "email": "josh@joshglazebrook.com"
23
- },
24
- {
25
- "name": "talmobi",
26
- "email": "talmobi@users.noreply.github.com"
27
- },
28
- {
29
- "name": "Indospace.io",
30
- "email": "justin@indospace.io"
31
- },
32
- {
33
- "name": "Kilian von Pflugk",
34
- "email": "github@jumoog.io"
35
- },
36
- {
37
- "name": "Kyle",
38
- "email": "admin@hk1229.cn"
39
- },
40
- {
41
- "name": "Matheus Fernandes",
42
- "email": "matheus.frndes@gmail.com"
43
- },
44
- {
45
- "name": "Ricky Miller",
46
- "email": "richardkazuomiller@gmail.com"
47
- },
48
- {
49
- "name": "Shantanu Sharma",
50
- "email": "shantanu34@outlook.com"
51
- },
52
- {
53
- "name": "Tim Perry",
54
- "email": "pimterry@gmail.com"
55
- },
56
- {
57
- "name": "Vadim Baryshev",
58
- "email": "vadimbaryshev@gmail.com"
59
- },
60
- {
61
- "name": "jigu",
62
- "email": "luo1257857309@gmail.com"
63
- },
64
- {
65
- "name": "Alba Mendez",
66
- "email": "me@jmendeth.com"
67
- },
68
- {
69
- "name": "Дмитрий Гуденков",
70
- "email": "Dimangud@rambler.ru"
71
- },
72
- {
73
- "name": "Andrei Bitca",
74
- "email": "63638922+andrei-bitca-dc@users.noreply.github.com"
75
- },
76
- {
77
- "name": "Andrew Casey",
78
- "email": "amcasey@users.noreply.github.com"
79
- },
80
- {
81
- "name": "Brandon Ros",
82
- "email": "brandonros1@gmail.com"
83
- },
84
- {
85
- "name": "Dang Duy Thanh",
86
- "email": "thanhdd.it@gmail.com"
87
- },
88
- {
89
- "name": "Dimitar Nestorov",
90
- "email": "8790386+dimitarnestorov@users.noreply.github.com"
91
- }
92
- ],
93
- "repository": {
94
- "type": "git",
95
- "url": "https://github.com/TooTallNate/proxy-agents.git",
96
- "directory": "packages/socks-proxy-agent"
97
- },
98
- "keywords": [
99
- "agent",
100
- "http",
101
- "https",
102
- "proxy",
103
- "socks",
104
- "socks4",
105
- "socks4a",
106
- "socks5",
107
- "socks5h"
108
- ],
109
- "dependencies": {
110
- "agent-base": "^7.1.2",
111
- "debug": "^4.3.4",
112
- "socks": "^2.8.3"
113
- },
114
- "devDependencies": {
115
- "@types/async-retry": "^1.4.5",
116
- "@types/debug": "^4.1.7",
117
- "@types/dns2": "^2.0.3",
118
- "@types/jest": "^29.5.1",
119
- "@types/node": "^14.18.45",
120
- "async-listen": "^3.0.0",
121
- "async-retry": "^1.3.3",
122
- "cacheable-lookup": "^6.1.0",
123
- "dns2": "^2.1.0",
124
- "jest": "^29.5.0",
125
- "socksv5": "github:TooTallNate/socksv5#fix/dstSock-close-event",
126
- "ts-jest": "^29.1.0",
127
- "typescript": "^5.0.4",
128
- "proxy": "2.2.0",
129
- "tsconfig": "0.0.0"
130
- },
131
- "engines": {
132
- "node": ">= 14"
133
- },
134
- "license": "MIT",
135
- "scripts": {
136
- "build": "tsc",
137
- "test": "jest --env node --verbose --bail test/test.ts",
138
- "test-e2e": "jest --env node --verbose --bail test/e2e.test.ts",
139
- "lint": "eslint . --ext .ts",
140
- "pack": "node ../../scripts/pack.mjs"
141
- }
142
- }
@@ -1,550 +0,0 @@
1
- 'use strict'
2
-
3
- const crypto = require('crypto')
4
- const { Minipass } = require('minipass')
5
-
6
- const SPEC_ALGORITHMS = ['sha512', 'sha384', 'sha256']
7
- const DEFAULT_ALGORITHMS = ['sha512']
8
- const NODE_HASHES = crypto.getHashes()
9
-
10
- // TODO: this should really be a hardcoded list of algorithms we support, rather than [a-z0-9].
11
- const BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i
12
- const SRI_REGEX = /^([a-z0-9]+)-([^?]+)(\?[?\S*]*)?$/
13
- const STRICT_SRI_REGEX = /^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)?$/
14
- const VCHAR_REGEX = /^[\x21-\x7E]+$/
15
-
16
- // This is a Best Effort™ at a reasonable priority for hash algos
17
- const DEFAULT_PRIORITY = [
18
- 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',
19
- // TODO - it's unclear _which_ of these Node will actually use as its name for the algorithm, so we guesswork it based on the OpenSSL names.
20
- 'sha3', 'sha3-256', 'sha3-384', 'sha3-512', 'sha3_256', 'sha3_384', 'sha3_512',
21
- ].filter(algo => NODE_HASHES.includes(algo))
22
-
23
- const getOptString = options => options?.length ? `?${options.join('?')}` : ''
24
-
25
- class IntegrityStream extends Minipass {
26
- #emittedIntegrity
27
- #emittedSize
28
- #emittedVerified
29
-
30
- constructor (opts) {
31
- super()
32
- this.size = 0
33
- this.opts = opts
34
-
35
- // may be overridden later, but set now for class consistency
36
- this.#getOptions()
37
-
38
- // options used for calculating stream. can't be changed.
39
- if (opts?.algorithms) {
40
- this.algorithms = [...opts.algorithms]
41
- } else {
42
- this.algorithms = [...DEFAULT_ALGORITHMS]
43
- }
44
- if (this.algorithm !== null && !this.algorithms.includes(this.algorithm)) {
45
- this.algorithms.push(this.algorithm)
46
- }
47
-
48
- this.hashes = this.algorithms.map(crypto.createHash)
49
- }
50
-
51
- #getOptions () {
52
- // For verification
53
- this.sri = this.opts?.integrity ? parse(this.opts?.integrity, this.opts) : null
54
- this.expectedSize = this.opts?.size
55
-
56
- if (!this.sri) {
57
- this.algorithm = null
58
- } else if (this.sri.isHash) {
59
- this.goodSri = true
60
- this.algorithm = this.sri.algorithm
61
- } else {
62
- this.goodSri = !this.sri.isEmpty()
63
- this.algorithm = this.sri.pickAlgorithm(this.opts)
64
- }
65
-
66
- this.digests = this.goodSri ? this.sri[this.algorithm] : null
67
- this.optString = getOptString(this.opts?.options)
68
- }
69
-
70
- on (ev, handler) {
71
- if (ev === 'size' && this.#emittedSize) {
72
- return handler(this.#emittedSize)
73
- }
74
-
75
- if (ev === 'integrity' && this.#emittedIntegrity) {
76
- return handler(this.#emittedIntegrity)
77
- }
78
-
79
- if (ev === 'verified' && this.#emittedVerified) {
80
- return handler(this.#emittedVerified)
81
- }
82
-
83
- return super.on(ev, handler)
84
- }
85
-
86
- emit (ev, data) {
87
- if (ev === 'end') {
88
- this.#onEnd()
89
- }
90
- return super.emit(ev, data)
91
- }
92
-
93
- write (data) {
94
- this.size += data.length
95
- this.hashes.forEach(h => h.update(data))
96
- return super.write(data)
97
- }
98
-
99
- #onEnd () {
100
- if (!this.goodSri) {
101
- this.#getOptions()
102
- }
103
- const newSri = parse(this.hashes.map((h, i) => {
104
- return `${this.algorithms[i]}-${h.digest('base64')}${this.optString}`
105
- }).join(' '), this.opts)
106
- // Integrity verification mode
107
- const match = this.goodSri && newSri.match(this.sri, this.opts)
108
- if (typeof this.expectedSize === 'number' && this.size !== this.expectedSize) {
109
- const err = new Error(`stream size mismatch when checking ${this.sri}.\n Wanted: ${this.expectedSize}\n Found: ${this.size}`)
110
- err.code = 'EBADSIZE'
111
- err.found = this.size
112
- err.expected = this.expectedSize
113
- err.sri = this.sri
114
- this.emit('error', err)
115
- } else if (this.sri && !match) {
116
- const err = new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${newSri}. (${this.size} bytes)`)
117
- err.code = 'EINTEGRITY'
118
- err.found = newSri
119
- err.expected = this.digests
120
- err.algorithm = this.algorithm
121
- err.sri = this.sri
122
- this.emit('error', err)
123
- } else {
124
- this.#emittedSize = this.size
125
- this.emit('size', this.size)
126
- this.#emittedIntegrity = newSri
127
- this.emit('integrity', newSri)
128
- if (match) {
129
- this.#emittedVerified = match
130
- this.emit('verified', match)
131
- }
132
- }
133
- }
134
- }
135
-
136
- class Hash {
137
- get isHash () {
138
- return true
139
- }
140
-
141
- constructor (hash, opts) {
142
- const strict = opts?.strict
143
- this.source = hash.trim()
144
-
145
- // set default values so that we make V8 happy to always see a familiar object template.
146
- this.digest = ''
147
- this.algorithm = ''
148
- this.options = []
149
-
150
- // 3.1. Integrity metadata (called "Hash" by ssri)
151
- // https://w3c.github.io/webappsec-subresource-integrity/#integrity-metadata-description
152
- const match = this.source.match(
153
- strict
154
- ? STRICT_SRI_REGEX
155
- : SRI_REGEX
156
- )
157
- if (!match) {
158
- return
159
- }
160
- if (strict && !SPEC_ALGORITHMS.includes(match[1])) {
161
- return
162
- }
163
- if (!NODE_HASHES.includes(match[1])) {
164
- return
165
- }
166
- this.algorithm = match[1]
167
- this.digest = match[2]
168
-
169
- const rawOpts = match[3]
170
- if (rawOpts) {
171
- this.options = rawOpts.slice(1).split('?')
172
- }
173
- }
174
-
175
- hexDigest () {
176
- return this.digest && Buffer.from(this.digest, 'base64').toString('hex')
177
- }
178
-
179
- toJSON () {
180
- return this.toString()
181
- }
182
-
183
- match (integrity, opts) {
184
- const other = parse(integrity, opts)
185
- if (!other) {
186
- return false
187
- }
188
- if (other.isIntegrity) {
189
- const algo = other.pickAlgorithm(opts, [this.algorithm])
190
-
191
- if (!algo) {
192
- return false
193
- }
194
-
195
- const foundHash = other[algo].find(hash => hash.digest === this.digest)
196
-
197
- if (foundHash) {
198
- return foundHash
199
- }
200
-
201
- return false
202
- }
203
- return other.digest === this.digest ? other : false
204
- }
205
-
206
- toString (opts) {
207
- if (opts?.strict) {
208
- // Strict mode enforces the standard as close to the foot of the letter as it can.
209
- if (!(
210
- // The spec has very restricted productions for algorithms.
211
- // https://www.w3.org/TR/CSP2/#source-list-syntax
212
- SPEC_ALGORITHMS.includes(this.algorithm) &&
213
- // Usually, if someone insists on using a "different" base64, we leave it as-is, since there are multiple standards, and the specified is not a URL-safe variant.
214
- // https://www.w3.org/TR/CSP2/#base64_value
215
- this.digest.match(BASE64_REGEX) &&
216
- // Option syntax is strictly visual chars.
217
- // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-option-expression
218
- // https://tools.ietf.org/html/rfc5234#appendix-B.1
219
- this.options.every(opt => opt.match(VCHAR_REGEX))
220
- )) {
221
- return ''
222
- }
223
- }
224
- return `${this.algorithm}-${this.digest}${getOptString(this.options)}`
225
- }
226
- }
227
-
228
- function integrityHashToString (toString, sep, opts, hashes) {
229
- const toStringIsNotEmpty = toString !== ''
230
-
231
- let shouldAddFirstSep = false
232
- let complement = ''
233
-
234
- const lastIndex = hashes.length - 1
235
-
236
- for (let i = 0; i < lastIndex; i++) {
237
- const hashString = Hash.prototype.toString.call(hashes[i], opts)
238
-
239
- if (hashString) {
240
- shouldAddFirstSep = true
241
-
242
- complement += hashString
243
- complement += sep
244
- }
245
- }
246
-
247
- const finalHashString = Hash.prototype.toString.call(hashes[lastIndex], opts)
248
-
249
- if (finalHashString) {
250
- shouldAddFirstSep = true
251
- complement += finalHashString
252
- }
253
-
254
- if (toStringIsNotEmpty && shouldAddFirstSep) {
255
- return toString + sep + complement
256
- }
257
-
258
- return toString + complement
259
- }
260
-
261
- class Integrity {
262
- get isIntegrity () {
263
- return true
264
- }
265
-
266
- toJSON () {
267
- return this.toString()
268
- }
269
-
270
- isEmpty () {
271
- return Object.keys(this).length === 0
272
- }
273
-
274
- toString (opts) {
275
- let sep = opts?.sep || ' '
276
- let toString = ''
277
-
278
- if (opts?.strict) {
279
- // Entries must be separated by whitespace, according to spec.
280
- sep = sep.replace(/\S+/g, ' ')
281
-
282
- for (const hash of SPEC_ALGORITHMS) {
283
- if (this[hash]) {
284
- toString = integrityHashToString(toString, sep, opts, this[hash])
285
- }
286
- }
287
- } else {
288
- for (const hash of Object.keys(this)) {
289
- toString = integrityHashToString(toString, sep, opts, this[hash])
290
- }
291
- }
292
-
293
- return toString
294
- }
295
-
296
- concat (integrity, opts) {
297
- const other = typeof integrity === 'string'
298
- ? integrity
299
- : stringify(integrity, opts)
300
- return parse(`${this.toString(opts)} ${other}`, opts)
301
- }
302
-
303
- hexDigest () {
304
- return parse(this, { single: true }).hexDigest()
305
- }
306
-
307
- // add additional hashes to an integrity value, but prevent *changing* an existing integrity hash.
308
- merge (integrity, opts) {
309
- const other = parse(integrity, opts)
310
- for (const algo in other) {
311
- if (this[algo]) {
312
- if (!this[algo].find(hash =>
313
- other[algo].find(otherhash =>
314
- hash.digest === otherhash.digest))) {
315
- throw new Error('hashes do not match, cannot update integrity')
316
- }
317
- } else {
318
- this[algo] = other[algo]
319
- }
320
- }
321
- }
322
-
323
- match (integrity, opts) {
324
- const other = parse(integrity, opts)
325
- if (!other) {
326
- return false
327
- }
328
- const algo = other.pickAlgorithm(opts, Object.keys(this))
329
- return !!algo && this[algo].find(hash =>
330
- other[algo].find(otherhash =>
331
- hash.digest === otherhash.digest
332
- )
333
- ) || false
334
- }
335
-
336
- // Pick the highest priority algorithm present, optionally also limited to a set of hashes found in another integrity.
337
- // When limiting it may return nothing.
338
- pickAlgorithm (opts, hashes) {
339
- const pickAlgorithm = opts?.pickAlgorithm || getPrioritizedHash
340
- let keys = Object.keys(this)
341
- if (hashes?.length) {
342
- keys = keys.filter(k => hashes.includes(k))
343
- }
344
- if (keys.length) {
345
- return keys.reduce((acc, algo) => pickAlgorithm(acc, algo) || acc)
346
- }
347
- // no intersection between this and hashes
348
- return null
349
- }
350
- }
351
-
352
- module.exports.parse = parse
353
- function parse (sri, opts) {
354
- if (!sri) {
355
- return null
356
- }
357
- if (typeof sri === 'string') {
358
- return _parse(sri, opts)
359
- } else if (sri.algorithm && sri.digest) {
360
- const fullSri = new Integrity()
361
- fullSri[sri.algorithm] = [sri]
362
- return _parse(stringify(fullSri, opts), opts)
363
- } else {
364
- return _parse(stringify(sri, opts), opts)
365
- }
366
- }
367
-
368
- function _parse (integrity, opts) {
369
- // 3.4.3. Parse metadata
370
- // https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata
371
- if (opts?.single) {
372
- return new Hash(integrity, opts)
373
- }
374
- const hashes = integrity.trim().split(/\s+/).reduce((acc, string) => {
375
- const hash = new Hash(string, opts)
376
- if (hash.algorithm && hash.digest) {
377
- const algo = hash.algorithm
378
- if (!Object.keys(acc).includes(algo)) {
379
- acc[algo] = []
380
- }
381
- acc[algo].push(hash)
382
- }
383
- return acc
384
- }, new Integrity())
385
- return hashes.isEmpty() ? null : hashes
386
- }
387
-
388
- module.exports.stringify = stringify
389
- function stringify (obj, opts) {
390
- if (obj.algorithm && obj.digest) {
391
- return Hash.prototype.toString.call(obj, opts)
392
- } else if (typeof obj === 'string') {
393
- return stringify(parse(obj, opts), opts)
394
- } else {
395
- return Integrity.prototype.toString.call(obj, opts)
396
- }
397
- }
398
-
399
- module.exports.fromHex = fromHex
400
- function fromHex (hexDigest, algorithm, opts) {
401
- const optString = getOptString(opts?.options)
402
- return parse(
403
- `${algorithm}-${
404
- Buffer.from(hexDigest, 'hex').toString('base64')
405
- }${optString}`, opts
406
- )
407
- }
408
-
409
- module.exports.fromData = fromData
410
- function fromData (data, opts) {
411
- const algorithms = opts?.algorithms || [...DEFAULT_ALGORITHMS]
412
- const optString = getOptString(opts?.options)
413
- return algorithms.reduce((acc, algo) => {
414
- const digest = crypto.createHash(algo).update(data).digest('base64')
415
- const hash = new Hash(
416
- `${algo}-${digest}${optString}`,
417
- opts
418
- )
419
- // istanbul ignore else - it would be VERY strange if the string we just calculated with an algo did not have an algo or digest.
420
- if (hash.algorithm && hash.digest) {
421
- const hashAlgo = hash.algorithm
422
- if (!acc[hashAlgo]) {
423
- acc[hashAlgo] = []
424
- }
425
- acc[hashAlgo].push(hash)
426
- }
427
- return acc
428
- }, new Integrity())
429
- }
430
-
431
- module.exports.fromStream = fromStream
432
- function fromStream (stream, opts) {
433
- const istream = integrityStream(opts)
434
- return new Promise((resolve, reject) => {
435
- stream.pipe(istream)
436
- stream.on('error', reject)
437
- istream.on('error', reject)
438
- let sri
439
- istream.on('integrity', s => {
440
- sri = s
441
- })
442
- istream.on('end', () => resolve(sri))
443
- istream.resume()
444
- })
445
- }
446
-
447
- module.exports.checkData = checkData
448
- function checkData (data, sri, opts) {
449
- sri = parse(sri, opts)
450
- if (!sri || !Object.keys(sri).length) {
451
- if (opts?.error) {
452
- throw Object.assign(
453
- new Error('No valid integrity hashes to check against'), {
454
- code: 'EINTEGRITY',
455
- }
456
- )
457
- } else {
458
- return false
459
- }
460
- }
461
- const algorithm = sri.pickAlgorithm(opts)
462
- const digest = crypto.createHash(algorithm).update(data).digest('base64')
463
- const newSri = parse({ algorithm, digest })
464
- const match = newSri.match(sri, opts)
465
- opts = opts || {}
466
- if (match || !(opts.error)) {
467
- return match
468
- } else if (typeof opts.size === 'number' && (data.length !== opts.size)) {
469
- const err = new Error(`data size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${data.length}`)
470
- err.code = 'EBADSIZE'
471
- err.found = data.length
472
- err.expected = opts.size
473
- err.sri = sri
474
- throw err
475
- } else {
476
- const err = new Error(`Integrity checksum failed when using ${algorithm}: Wanted ${sri}, but got ${newSri}. (${data.length} bytes)`)
477
- err.code = 'EINTEGRITY'
478
- err.found = newSri
479
- err.expected = sri
480
- err.algorithm = algorithm
481
- err.sri = sri
482
- throw err
483
- }
484
- }
485
-
486
- module.exports.checkStream = checkStream
487
- function checkStream (stream, sri, opts) {
488
- opts = opts || Object.create(null)
489
- opts.integrity = sri
490
- sri = parse(sri, opts)
491
- if (!sri || !Object.keys(sri).length) {
492
- return Promise.reject(Object.assign(
493
- new Error('No valid integrity hashes to check against'), {
494
- code: 'EINTEGRITY',
495
- }
496
- ))
497
- }
498
- const checker = integrityStream(opts)
499
- return new Promise((resolve, reject) => {
500
- stream.pipe(checker)
501
- stream.on('error', reject)
502
- checker.on('error', reject)
503
- let verified
504
- checker.on('verified', s => {
505
- verified = s
506
- })
507
- checker.on('end', () => resolve(verified))
508
- checker.resume()
509
- })
510
- }
511
-
512
- module.exports.integrityStream = integrityStream
513
- function integrityStream (opts = Object.create(null)) {
514
- return new IntegrityStream(opts)
515
- }
516
-
517
- module.exports.create = createIntegrity
518
- function createIntegrity (opts) {
519
- const algorithms = opts?.algorithms || [...DEFAULT_ALGORITHMS]
520
- const optString = getOptString(opts?.options)
521
-
522
- const hashes = algorithms.map(crypto.createHash)
523
-
524
- return {
525
- update: function (chunk, enc) {
526
- hashes.forEach(h => h.update(chunk, enc))
527
- return this
528
- },
529
- digest: function () {
530
- const integrity = algorithms.reduce((acc, algo) => {
531
- const digest = hashes.shift().digest('base64')
532
- const hash = new Hash(`${algo}-${digest}${optString}`, opts)
533
- if (!acc[hash.algorithm]) {
534
- acc[hash.algorithm] = []
535
- }
536
- acc[hash.algorithm].push(hash)
537
- return acc
538
- }, new Integrity())
539
-
540
- return integrity
541
- },
542
- }
543
- }
544
-
545
- function getPrioritizedHash (algo1, algo2) {
546
- /* eslint-disable-next-line max-len */
547
- return DEFAULT_PRIORITY.indexOf(algo1.toLowerCase()) >= DEFAULT_PRIORITY.indexOf(algo2.toLowerCase())
548
- ? algo1
549
- : algo2
550
- }