@pnpm/exe 11.0.5 → 11.0.7

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 (381) hide show
  1. package/dist/node-gyp-bin/node-gyp +0 -0
  2. package/dist/node-gyp-bin/node-gyp.cmd +0 -0
  3. package/dist/node_modules/node-gyp/.release-please-manifest.json +1 -1
  4. package/dist/node_modules/node-gyp/bin/node-gyp.js +0 -0
  5. package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
  6. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +11 -3
  7. package/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +2 -3
  8. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +1 -1
  9. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2 -1
  10. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +26 -16
  11. package/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +1 -1
  12. package/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1 -1
  13. package/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +2 -2
  14. package/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +3 -20
  15. package/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +2 -14
  16. package/dist/node_modules/node-gyp/gyp/pyproject.toml +5 -3
  17. package/dist/node_modules/node-gyp/lib/download.js +55 -8
  18. package/dist/node_modules/node-gyp/lib/find-visualstudio.js +1 -1
  19. package/dist/node_modules/node-gyp/lib/process-release.js +17 -19
  20. package/dist/node_modules/node-gyp/package.json +3 -3
  21. package/dist/node_modules/{safer-buffer → undici}/LICENSE +1 -1
  22. package/dist/node_modules/undici/index-fetch.js +35 -0
  23. package/dist/node_modules/undici/index.js +169 -0
  24. package/dist/node_modules/undici/lib/api/abort-signal.js +57 -0
  25. package/dist/node_modules/undici/lib/api/api-connect.js +108 -0
  26. package/dist/node_modules/undici/lib/api/api-pipeline.js +251 -0
  27. package/dist/node_modules/undici/lib/api/api-request.js +214 -0
  28. package/dist/node_modules/undici/lib/api/api-stream.js +220 -0
  29. package/dist/node_modules/undici/lib/api/api-upgrade.js +108 -0
  30. package/dist/node_modules/undici/lib/api/index.js +7 -0
  31. package/dist/node_modules/undici/lib/api/readable.js +385 -0
  32. package/dist/node_modules/undici/lib/api/util.js +93 -0
  33. package/dist/node_modules/undici/lib/core/connect.js +240 -0
  34. package/dist/node_modules/undici/lib/core/constants.js +118 -0
  35. package/dist/node_modules/undici/lib/core/diagnostics.js +202 -0
  36. package/dist/node_modules/undici/lib/core/errors.js +425 -0
  37. package/dist/node_modules/undici/lib/core/request.js +405 -0
  38. package/dist/node_modules/undici/lib/core/symbols.js +67 -0
  39. package/dist/node_modules/undici/lib/core/tree.js +152 -0
  40. package/dist/node_modules/undici/lib/core/util.js +719 -0
  41. package/dist/node_modules/undici/lib/dispatcher/agent.js +130 -0
  42. package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +209 -0
  43. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +1370 -0
  44. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +744 -0
  45. package/dist/node_modules/undici/lib/dispatcher/client.js +623 -0
  46. package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
  47. package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +65 -0
  48. package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +160 -0
  49. package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +117 -0
  50. package/dist/node_modules/undici/lib/dispatcher/pool-base.js +194 -0
  51. package/dist/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
  52. package/dist/node_modules/undici/lib/dispatcher/pool.js +107 -0
  53. package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +274 -0
  54. package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
  55. package/dist/node_modules/undici/lib/global.js +32 -0
  56. package/dist/node_modules/undici/lib/handler/decorator-handler.js +44 -0
  57. package/dist/node_modules/undici/lib/handler/redirect-handler.js +232 -0
  58. package/dist/node_modules/undici/lib/handler/retry-handler.js +374 -0
  59. package/dist/node_modules/undici/lib/interceptor/dns.js +375 -0
  60. package/dist/node_modules/undici/lib/interceptor/dump.js +123 -0
  61. package/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
  62. package/dist/node_modules/undici/lib/interceptor/redirect.js +24 -0
  63. package/dist/node_modules/undici/lib/interceptor/response-error.js +86 -0
  64. package/dist/node_modules/undici/lib/interceptor/retry.js +19 -0
  65. package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  66. package/dist/node_modules/undici/lib/llhttp/constants.js +278 -0
  67. package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +5 -0
  68. package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +5 -0
  69. package/dist/node_modules/undici/lib/llhttp/utils.js +15 -0
  70. package/dist/node_modules/undici/lib/mock/mock-agent.js +160 -0
  71. package/dist/node_modules/undici/lib/mock/mock-client.js +59 -0
  72. package/dist/node_modules/undici/lib/mock/mock-errors.js +28 -0
  73. package/dist/node_modules/undici/lib/mock/mock-interceptor.js +207 -0
  74. package/dist/node_modules/undici/lib/mock/mock-pool.js +59 -0
  75. package/dist/node_modules/undici/lib/mock/mock-symbols.js +23 -0
  76. package/dist/node_modules/undici/lib/mock/mock-utils.js +367 -0
  77. package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  78. package/dist/node_modules/undici/lib/mock/pluralizer.js +29 -0
  79. package/dist/node_modules/undici/lib/util/timers.js +423 -0
  80. package/dist/node_modules/undici/lib/web/cache/cache.js +859 -0
  81. package/dist/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
  82. package/dist/node_modules/undici/lib/web/cache/symbols.js +5 -0
  83. package/dist/node_modules/undici/lib/web/cache/util.js +45 -0
  84. package/dist/node_modules/undici/lib/web/cookies/constants.js +12 -0
  85. package/dist/node_modules/undici/lib/web/cookies/index.js +184 -0
  86. package/dist/node_modules/undici/lib/web/cookies/parse.js +317 -0
  87. package/dist/node_modules/undici/lib/web/cookies/util.js +282 -0
  88. package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +398 -0
  89. package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +480 -0
  90. package/dist/node_modules/undici/lib/web/eventsource/util.js +37 -0
  91. package/dist/node_modules/{@npmcli/redact → undici/lib/web/fetch}/LICENSE +1 -1
  92. package/dist/node_modules/undici/lib/web/fetch/body.js +529 -0
  93. package/dist/node_modules/undici/lib/web/fetch/constants.js +124 -0
  94. package/dist/node_modules/undici/lib/web/fetch/data-url.js +744 -0
  95. package/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
  96. package/dist/node_modules/undici/lib/web/fetch/file.js +126 -0
  97. package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +474 -0
  98. package/dist/node_modules/undici/lib/web/fetch/formdata.js +252 -0
  99. package/dist/node_modules/undici/lib/web/fetch/global.js +40 -0
  100. package/dist/node_modules/undici/lib/web/fetch/headers.js +687 -0
  101. package/dist/node_modules/undici/lib/web/fetch/index.js +2272 -0
  102. package/dist/node_modules/undici/lib/web/fetch/request.js +1037 -0
  103. package/dist/node_modules/undici/lib/web/fetch/response.js +610 -0
  104. package/dist/node_modules/undici/lib/web/fetch/symbols.js +9 -0
  105. package/dist/node_modules/undici/lib/web/fetch/util.js +1632 -0
  106. package/dist/node_modules/undici/lib/web/fetch/webidl.js +695 -0
  107. package/dist/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
  108. package/dist/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
  109. package/dist/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
  110. package/dist/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
  111. package/dist/node_modules/undici/lib/web/fileapi/util.js +391 -0
  112. package/dist/node_modules/undici/lib/web/websocket/connection.js +371 -0
  113. package/dist/node_modules/undici/lib/web/websocket/constants.js +66 -0
  114. package/dist/node_modules/undici/lib/web/websocket/events.js +329 -0
  115. package/dist/node_modules/undici/lib/web/websocket/frame.js +96 -0
  116. package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +100 -0
  117. package/dist/node_modules/undici/lib/web/websocket/receiver.js +490 -0
  118. package/dist/node_modules/undici/lib/web/websocket/sender.js +104 -0
  119. package/dist/node_modules/undici/lib/web/websocket/symbols.js +12 -0
  120. package/dist/node_modules/undici/lib/web/websocket/util.js +322 -0
  121. package/dist/node_modules/undici/lib/web/websocket/websocket.js +592 -0
  122. package/dist/node_modules/undici/package.json +160 -0
  123. package/dist/node_modules/undici/scripts/strip-comments.js +8 -0
  124. package/dist/node_modules/yallist/package.json +51 -12
  125. package/dist/pnpm.mjs +5915 -5140
  126. package/dist/worker.js +70 -67
  127. package/package.json +21 -13
  128. package/setup.js +17 -3
  129. package/dist/node_modules/@gar/promise-retry/LICENSE +0 -20
  130. package/dist/node_modules/@gar/promise-retry/lib/index.js +0 -62
  131. package/dist/node_modules/@gar/promise-retry/lib/retry.js +0 -109
  132. package/dist/node_modules/@gar/promise-retry/package.json +0 -45
  133. package/dist/node_modules/@npmcli/agent/lib/agents.js +0 -206
  134. package/dist/node_modules/@npmcli/agent/lib/dns.js +0 -53
  135. package/dist/node_modules/@npmcli/agent/lib/errors.js +0 -61
  136. package/dist/node_modules/@npmcli/agent/lib/index.js +0 -56
  137. package/dist/node_modules/@npmcli/agent/lib/options.js +0 -86
  138. package/dist/node_modules/@npmcli/agent/lib/proxy.js +0 -88
  139. package/dist/node_modules/@npmcli/agent/package.json +0 -60
  140. package/dist/node_modules/@npmcli/fs/lib/common/get-options.js +0 -20
  141. package/dist/node_modules/@npmcli/fs/lib/common/node.js +0 -9
  142. package/dist/node_modules/@npmcli/fs/lib/cp/LICENSE +0 -15
  143. package/dist/node_modules/@npmcli/fs/lib/cp/errors.js +0 -129
  144. package/dist/node_modules/@npmcli/fs/lib/cp/index.js +0 -22
  145. package/dist/node_modules/@npmcli/fs/lib/cp/polyfill.js +0 -428
  146. package/dist/node_modules/@npmcli/fs/lib/index.js +0 -13
  147. package/dist/node_modules/@npmcli/fs/lib/move-file.js +0 -78
  148. package/dist/node_modules/@npmcli/fs/lib/readdir-scoped.js +0 -20
  149. package/dist/node_modules/@npmcli/fs/lib/with-temp-dir.js +0 -39
  150. package/dist/node_modules/@npmcli/fs/package.json +0 -54
  151. package/dist/node_modules/@npmcli/redact/lib/deep-map.js +0 -71
  152. package/dist/node_modules/@npmcli/redact/lib/error.js +0 -28
  153. package/dist/node_modules/@npmcli/redact/lib/index.js +0 -44
  154. package/dist/node_modules/@npmcli/redact/lib/matchers.js +0 -88
  155. package/dist/node_modules/@npmcli/redact/lib/server.js +0 -59
  156. package/dist/node_modules/@npmcli/redact/lib/utils.js +0 -202
  157. package/dist/node_modules/@npmcli/redact/package.json +0 -52
  158. package/dist/node_modules/agent-base/LICENSE +0 -22
  159. package/dist/node_modules/agent-base/dist/helpers.js +0 -66
  160. package/dist/node_modules/agent-base/dist/index.js +0 -178
  161. package/dist/node_modules/agent-base/package.json +0 -46
  162. package/dist/node_modules/balanced-match/dist/commonjs/index.js +0 -59
  163. package/dist/node_modules/balanced-match/dist/esm/index.js +0 -54
  164. package/dist/node_modules/balanced-match/package.json +0 -68
  165. package/dist/node_modules/brace-expansion/LICENSE +0 -23
  166. package/dist/node_modules/brace-expansion/dist/commonjs/index.js +0 -201
  167. package/dist/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
  168. package/dist/node_modules/brace-expansion/dist/esm/index.js +0 -197
  169. package/dist/node_modules/brace-expansion/dist/esm/package.json +0 -3
  170. package/dist/node_modules/brace-expansion/package.json +0 -64
  171. package/dist/node_modules/cacache/lib/content/path.js +0 -29
  172. package/dist/node_modules/cacache/lib/content/read.js +0 -165
  173. package/dist/node_modules/cacache/lib/content/rm.js +0 -18
  174. package/dist/node_modules/cacache/lib/content/write.js +0 -206
  175. package/dist/node_modules/cacache/lib/entry-index.js +0 -336
  176. package/dist/node_modules/cacache/lib/get.js +0 -170
  177. package/dist/node_modules/cacache/lib/index.js +0 -42
  178. package/dist/node_modules/cacache/lib/memoization.js +0 -72
  179. package/dist/node_modules/cacache/lib/put.js +0 -80
  180. package/dist/node_modules/cacache/lib/rm.js +0 -31
  181. package/dist/node_modules/cacache/lib/util/glob.js +0 -7
  182. package/dist/node_modules/cacache/lib/util/hash-to-segments.js +0 -7
  183. package/dist/node_modules/cacache/lib/util/tmp.js +0 -32
  184. package/dist/node_modules/cacache/lib/verify.js +0 -258
  185. package/dist/node_modules/cacache/package.json +0 -81
  186. package/dist/node_modules/debug/LICENSE +0 -20
  187. package/dist/node_modules/debug/package.json +0 -64
  188. package/dist/node_modules/debug/src/browser.js +0 -272
  189. package/dist/node_modules/debug/src/common.js +0 -292
  190. package/dist/node_modules/debug/src/index.js +0 -10
  191. package/dist/node_modules/debug/src/node.js +0 -263
  192. package/dist/node_modules/fs-minipass/LICENSE +0 -15
  193. package/dist/node_modules/fs-minipass/lib/index.js +0 -443
  194. package/dist/node_modules/fs-minipass/package.json +0 -54
  195. package/dist/node_modules/glob/dist/commonjs/glob.js +0 -248
  196. package/dist/node_modules/glob/dist/commonjs/has-magic.js +0 -27
  197. package/dist/node_modules/glob/dist/commonjs/ignore.js +0 -119
  198. package/dist/node_modules/glob/dist/commonjs/index.js +0 -68
  199. package/dist/node_modules/glob/dist/commonjs/index.min.js +0 -4
  200. package/dist/node_modules/glob/dist/commonjs/package.json +0 -3
  201. package/dist/node_modules/glob/dist/commonjs/pattern.js +0 -223
  202. package/dist/node_modules/glob/dist/commonjs/processor.js +0 -301
  203. package/dist/node_modules/glob/dist/commonjs/walker.js +0 -387
  204. package/dist/node_modules/glob/dist/esm/glob.js +0 -244
  205. package/dist/node_modules/glob/dist/esm/has-magic.js +0 -23
  206. package/dist/node_modules/glob/dist/esm/ignore.js +0 -115
  207. package/dist/node_modules/glob/dist/esm/index.js +0 -55
  208. package/dist/node_modules/glob/dist/esm/index.min.js +0 -4
  209. package/dist/node_modules/glob/dist/esm/package.json +0 -3
  210. package/dist/node_modules/glob/dist/esm/pattern.js +0 -219
  211. package/dist/node_modules/glob/dist/esm/processor.js +0 -294
  212. package/dist/node_modules/glob/dist/esm/walker.js +0 -381
  213. package/dist/node_modules/glob/package.json +0 -98
  214. package/dist/node_modules/http-cache-semantics/LICENSE +0 -9
  215. package/dist/node_modules/http-cache-semantics/index.js +0 -928
  216. package/dist/node_modules/http-cache-semantics/package.json +0 -22
  217. package/dist/node_modules/http-proxy-agent/LICENSE +0 -22
  218. package/dist/node_modules/http-proxy-agent/dist/index.js +0 -148
  219. package/dist/node_modules/http-proxy-agent/package.json +0 -47
  220. package/dist/node_modules/https-proxy-agent/LICENSE +0 -22
  221. package/dist/node_modules/https-proxy-agent/dist/index.js +0 -180
  222. package/dist/node_modules/https-proxy-agent/dist/parse-proxy-response.js +0 -101
  223. package/dist/node_modules/https-proxy-agent/package.json +0 -50
  224. package/dist/node_modules/iconv-lite/LICENSE +0 -21
  225. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
  226. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
  227. package/dist/node_modules/iconv-lite/encodings/index.js +0 -23
  228. package/dist/node_modules/iconv-lite/encodings/internal.js +0 -218
  229. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
  230. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  231. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
  232. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  233. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  234. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  235. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  236. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  237. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  238. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
  239. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  240. package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -187
  241. package/dist/node_modules/iconv-lite/encodings/utf32.js +0 -307
  242. package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -283
  243. package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -48
  244. package/dist/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
  245. package/dist/node_modules/iconv-lite/lib/index.js +0 -182
  246. package/dist/node_modules/iconv-lite/lib/streams.js +0 -105
  247. package/dist/node_modules/iconv-lite/package.json +0 -70
  248. package/dist/node_modules/ip-address/LICENSE +0 -19
  249. package/dist/node_modules/ip-address/dist/address-error.js +0 -12
  250. package/dist/node_modules/ip-address/dist/common.js +0 -46
  251. package/dist/node_modules/ip-address/dist/ip-address.js +0 -35
  252. package/dist/node_modules/ip-address/dist/ipv4.js +0 -360
  253. package/dist/node_modules/ip-address/dist/ipv6.js +0 -1003
  254. package/dist/node_modules/ip-address/dist/v4/constants.js +0 -8
  255. package/dist/node_modules/ip-address/dist/v6/constants.js +0 -76
  256. package/dist/node_modules/ip-address/dist/v6/helpers.js +0 -45
  257. package/dist/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
  258. package/dist/node_modules/ip-address/package.json +0 -78
  259. package/dist/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +0 -10
  260. package/dist/node_modules/lru-cache/dist/commonjs/index.js +0 -1692
  261. package/dist/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
  262. package/dist/node_modules/lru-cache/dist/commonjs/package.json +0 -3
  263. package/dist/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +0 -4
  264. package/dist/node_modules/lru-cache/dist/esm/browser/index.js +0 -1688
  265. package/dist/node_modules/lru-cache/dist/esm/browser/index.min.js +0 -2
  266. package/dist/node_modules/lru-cache/dist/esm/diagnostics-channel.js +0 -19
  267. package/dist/node_modules/lru-cache/dist/esm/index.js +0 -1688
  268. package/dist/node_modules/lru-cache/dist/esm/index.min.js +0 -2
  269. package/dist/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +0 -7
  270. package/dist/node_modules/lru-cache/dist/esm/node/index.js +0 -1688
  271. package/dist/node_modules/lru-cache/dist/esm/node/index.min.js +0 -2
  272. package/dist/node_modules/lru-cache/dist/esm/package.json +0 -3
  273. package/dist/node_modules/lru-cache/package.json +0 -126
  274. package/dist/node_modules/make-fetch-happen/LICENSE +0 -16
  275. package/dist/node_modules/make-fetch-happen/lib/cache/entry.js +0 -471
  276. package/dist/node_modules/make-fetch-happen/lib/cache/errors.js +0 -11
  277. package/dist/node_modules/make-fetch-happen/lib/cache/index.js +0 -49
  278. package/dist/node_modules/make-fetch-happen/lib/cache/key.js +0 -17
  279. package/dist/node_modules/make-fetch-happen/lib/cache/policy.js +0 -161
  280. package/dist/node_modules/make-fetch-happen/lib/fetch.js +0 -118
  281. package/dist/node_modules/make-fetch-happen/lib/index.js +0 -41
  282. package/dist/node_modules/make-fetch-happen/lib/options.js +0 -59
  283. package/dist/node_modules/make-fetch-happen/lib/pipeline.js +0 -41
  284. package/dist/node_modules/make-fetch-happen/lib/remote.js +0 -134
  285. package/dist/node_modules/make-fetch-happen/package.json +0 -75
  286. package/dist/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
  287. package/dist/node_modules/minimatch/dist/commonjs/ast.js +0 -845
  288. package/dist/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
  289. package/dist/node_modules/minimatch/dist/commonjs/escape.js +0 -30
  290. package/dist/node_modules/minimatch/dist/commonjs/index.js +0 -1127
  291. package/dist/node_modules/minimatch/dist/commonjs/package.json +0 -3
  292. package/dist/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
  293. package/dist/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
  294. package/dist/node_modules/minimatch/dist/esm/ast.js +0 -841
  295. package/dist/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
  296. package/dist/node_modules/minimatch/dist/esm/escape.js +0 -26
  297. package/dist/node_modules/minimatch/dist/esm/index.js +0 -1114
  298. package/dist/node_modules/minimatch/dist/esm/package.json +0 -3
  299. package/dist/node_modules/minimatch/dist/esm/unescape.js +0 -34
  300. package/dist/node_modules/minimatch/package.json +0 -73
  301. package/dist/node_modules/minipass-collect/LICENSE +0 -15
  302. package/dist/node_modules/minipass-collect/index.js +0 -71
  303. package/dist/node_modules/minipass-collect/package.json +0 -30
  304. package/dist/node_modules/minipass-fetch/LICENSE +0 -28
  305. package/dist/node_modules/minipass-fetch/lib/abort-error.js +0 -17
  306. package/dist/node_modules/minipass-fetch/lib/blob.js +0 -97
  307. package/dist/node_modules/minipass-fetch/lib/body.js +0 -360
  308. package/dist/node_modules/minipass-fetch/lib/fetch-error.js +0 -32
  309. package/dist/node_modules/minipass-fetch/lib/headers.js +0 -267
  310. package/dist/node_modules/minipass-fetch/lib/index.js +0 -376
  311. package/dist/node_modules/minipass-fetch/lib/request.js +0 -282
  312. package/dist/node_modules/minipass-fetch/lib/response.js +0 -90
  313. package/dist/node_modules/minipass-fetch/package.json +0 -70
  314. package/dist/node_modules/minipass-flush/index.js +0 -39
  315. package/dist/node_modules/minipass-flush/node_modules/minipass/LICENSE +0 -15
  316. package/dist/node_modules/minipass-flush/node_modules/minipass/index.js +0 -649
  317. package/dist/node_modules/minipass-flush/node_modules/minipass/package.json +0 -56
  318. package/dist/node_modules/minipass-flush/package.json +0 -42
  319. package/dist/node_modules/minipass-pipeline/LICENSE +0 -15
  320. package/dist/node_modules/minipass-pipeline/index.js +0 -128
  321. package/dist/node_modules/minipass-pipeline/node_modules/minipass/LICENSE +0 -15
  322. package/dist/node_modules/minipass-pipeline/node_modules/minipass/index.js +0 -649
  323. package/dist/node_modules/minipass-pipeline/node_modules/minipass/package.json +0 -56
  324. package/dist/node_modules/minipass-pipeline/package.json +0 -29
  325. package/dist/node_modules/minipass-sized/LICENSE +0 -15
  326. package/dist/node_modules/minipass-sized/dist/commonjs/index.js +0 -69
  327. package/dist/node_modules/minipass-sized/dist/commonjs/package.json +0 -3
  328. package/dist/node_modules/minipass-sized/dist/esm/index.js +0 -64
  329. package/dist/node_modules/minipass-sized/dist/esm/package.json +0 -3
  330. package/dist/node_modules/minipass-sized/package.json +0 -69
  331. package/dist/node_modules/ms/index.js +0 -162
  332. package/dist/node_modules/ms/package.json +0 -38
  333. package/dist/node_modules/negotiator/LICENSE +0 -24
  334. package/dist/node_modules/negotiator/index.js +0 -83
  335. package/dist/node_modules/negotiator/lib/charset.js +0 -169
  336. package/dist/node_modules/negotiator/lib/encoding.js +0 -205
  337. package/dist/node_modules/negotiator/lib/language.js +0 -179
  338. package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
  339. package/dist/node_modules/negotiator/package.json +0 -43
  340. package/dist/node_modules/p-map/index.js +0 -283
  341. package/dist/node_modules/p-map/license +0 -9
  342. package/dist/node_modules/p-map/package.json +0 -57
  343. package/dist/node_modules/path-scurry/dist/commonjs/index.js +0 -2018
  344. package/dist/node_modules/path-scurry/dist/commonjs/package.json +0 -3
  345. package/dist/node_modules/path-scurry/dist/esm/index.js +0 -1983
  346. package/dist/node_modules/path-scurry/dist/esm/package.json +0 -3
  347. package/dist/node_modules/path-scurry/package.json +0 -72
  348. package/dist/node_modules/safer-buffer/dangerous.js +0 -58
  349. package/dist/node_modules/safer-buffer/package.json +0 -34
  350. package/dist/node_modules/safer-buffer/safer.js +0 -77
  351. package/dist/node_modules/safer-buffer/tests.js +0 -406
  352. package/dist/node_modules/smart-buffer/.prettierrc.yaml +0 -5
  353. package/dist/node_modules/smart-buffer/LICENSE +0 -20
  354. package/dist/node_modules/smart-buffer/build/smartbuffer.js +0 -1233
  355. package/dist/node_modules/smart-buffer/build/utils.js +0 -108
  356. package/dist/node_modules/smart-buffer/package.json +0 -79
  357. package/dist/node_modules/socks/.eslintrc.cjs +0 -11
  358. package/dist/node_modules/socks/.prettierrc.yaml +0 -7
  359. package/dist/node_modules/socks/LICENSE +0 -20
  360. package/dist/node_modules/socks/build/client/socksclient.js +0 -793
  361. package/dist/node_modules/socks/build/common/constants.js +0 -108
  362. package/dist/node_modules/socks/build/common/helpers.js +0 -167
  363. package/dist/node_modules/socks/build/common/receivebuffer.js +0 -43
  364. package/dist/node_modules/socks/build/common/util.js +0 -25
  365. package/dist/node_modules/socks/build/index.js +0 -18
  366. package/dist/node_modules/socks/package.json +0 -58
  367. package/dist/node_modules/socks-proxy-agent/LICENSE +0 -22
  368. package/dist/node_modules/socks-proxy-agent/dist/index.js +0 -195
  369. package/dist/node_modules/socks-proxy-agent/package.json +0 -142
  370. package/dist/node_modules/ssri/lib/index.js +0 -550
  371. package/dist/node_modules/ssri/package.json +0 -66
  372. package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/package.json +0 -3
  373. package/dist/node_modules/tar/node_modules/yallist/dist/esm/package.json +0 -3
  374. package/dist/node_modules/tar/node_modules/yallist/package.json +0 -68
  375. package/dist/node_modules/yallist/LICENSE +0 -15
  376. package/dist/node_modules/yallist/iterator.js +0 -8
  377. package/dist/node_modules/yallist/yallist.js +0 -426
  378. /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.js +0 -0
  379. /package/dist/node_modules/{balanced-match → yallist}/dist/commonjs/package.json +0 -0
  380. /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.js +0 -0
  381. /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
- }