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,206 +0,0 @@
1
- 'use strict'
2
-
3
- const events = require('events')
4
-
5
- const contentPath = require('./path')
6
- const fs = require('fs/promises')
7
- const { moveFile } = require('@npmcli/fs')
8
- const { Minipass } = require('minipass')
9
- const Pipeline = require('minipass-pipeline')
10
- const Flush = require('minipass-flush')
11
- const path = require('path')
12
- const ssri = require('ssri')
13
- const { tmpName } = require('../util/tmp')
14
- const fsm = require('fs-minipass')
15
-
16
- module.exports = write
17
-
18
- // Cache of move operations in process so we don't duplicate
19
- const moveOperations = new Map()
20
-
21
- async function write (cache, data, opts = {}) {
22
- const { algorithms, size, integrity } = opts
23
-
24
- if (typeof size === 'number' && data.length !== size) {
25
- throw sizeError(size, data.length)
26
- }
27
-
28
- const sri = ssri.fromData(data, algorithms ? { algorithms } : {})
29
- if (integrity && !ssri.checkData(data, integrity, opts)) {
30
- throw checksumError(integrity, sri)
31
- }
32
-
33
- for (const algo in sri) {
34
- const tmp = await makeTmp(cache, opts)
35
- const hash = sri[algo].toString()
36
- try {
37
- await fs.writeFile(tmp.target, data, { flag: 'wx' })
38
- await moveToDestination(tmp, cache, hash, opts)
39
- } finally {
40
- if (!tmp.moved) {
41
- await fs.rm(tmp.target, { recursive: true, force: true })
42
- }
43
- }
44
- }
45
- return { integrity: sri, size: data.length }
46
- }
47
-
48
- module.exports.stream = writeStream
49
-
50
- // writes proxied to the 'inputStream' that is passed to the Promise
51
- // 'end' is deferred until content is handled.
52
- class CacacheWriteStream extends Flush {
53
- constructor (cache, opts) {
54
- super()
55
- this.opts = opts
56
- this.cache = cache
57
- this.inputStream = new Minipass()
58
- this.inputStream.on('error', er => this.emit('error', er))
59
- this.inputStream.on('drain', () => this.emit('drain'))
60
- this.handleContentP = null
61
- }
62
-
63
- write (chunk, encoding, cb) {
64
- if (!this.handleContentP) {
65
- this.handleContentP = handleContent(
66
- this.inputStream,
67
- this.cache,
68
- this.opts
69
- )
70
- this.handleContentP.catch(error => this.emit('error', error))
71
- }
72
- return this.inputStream.write(chunk, encoding, cb)
73
- }
74
-
75
- flush (cb) {
76
- this.inputStream.end(() => {
77
- if (!this.handleContentP) {
78
- const e = new Error('Cache input stream was empty')
79
- e.code = 'ENODATA'
80
- // empty streams are probably emitting end right away.
81
- // defer this one tick by rejecting a promise on it.
82
- return Promise.reject(e).catch(cb)
83
- }
84
- // eslint-disable-next-line promise/catch-or-return
85
- this.handleContentP.then(
86
- (res) => {
87
- res.integrity && this.emit('integrity', res.integrity)
88
- // eslint-disable-next-line promise/always-return
89
- res.size !== null && this.emit('size', res.size)
90
- cb()
91
- },
92
- (er) => cb(er)
93
- )
94
- })
95
- }
96
- }
97
-
98
- function writeStream (cache, opts = {}) {
99
- return new CacacheWriteStream(cache, opts)
100
- }
101
-
102
- async function handleContent (inputStream, cache, opts) {
103
- const tmp = await makeTmp(cache, opts)
104
- try {
105
- const res = await pipeToTmp(inputStream, cache, tmp.target, opts)
106
- await moveToDestination(
107
- tmp,
108
- cache,
109
- res.integrity,
110
- opts
111
- )
112
- return res
113
- } finally {
114
- if (!tmp.moved) {
115
- await fs.rm(tmp.target, { recursive: true, force: true })
116
- }
117
- }
118
- }
119
-
120
- async function pipeToTmp (inputStream, cache, tmpTarget, opts) {
121
- const outStream = new fsm.WriteStream(tmpTarget, {
122
- flags: 'wx',
123
- })
124
-
125
- if (opts.integrityEmitter) {
126
- // we need to create these all simultaneously since they can fire in any order
127
- const [integrity, size] = await Promise.all([
128
- events.once(opts.integrityEmitter, 'integrity').then(res => res[0]),
129
- events.once(opts.integrityEmitter, 'size').then(res => res[0]),
130
- new Pipeline(inputStream, outStream).promise(),
131
- ])
132
- return { integrity, size }
133
- }
134
-
135
- let integrity
136
- let size
137
- const hashStream = ssri.integrityStream({
138
- integrity: opts.integrity,
139
- algorithms: opts.algorithms,
140
- size: opts.size,
141
- })
142
- hashStream.on('integrity', i => {
143
- integrity = i
144
- })
145
- hashStream.on('size', s => {
146
- size = s
147
- })
148
-
149
- const pipeline = new Pipeline(inputStream, hashStream, outStream)
150
- await pipeline.promise()
151
- return { integrity, size }
152
- }
153
-
154
- async function makeTmp (cache, opts) {
155
- const tmpTarget = tmpName(cache, opts.tmpPrefix)
156
- await fs.mkdir(path.dirname(tmpTarget), { recursive: true })
157
- return {
158
- target: tmpTarget,
159
- moved: false,
160
- }
161
- }
162
-
163
- async function moveToDestination (tmp, cache, sri) {
164
- const destination = contentPath(cache, sri)
165
- const destDir = path.dirname(destination)
166
- if (moveOperations.has(destination)) {
167
- return moveOperations.get(destination)
168
- }
169
- moveOperations.set(
170
- destination,
171
- fs.mkdir(destDir, { recursive: true })
172
- .then(async () => {
173
- await moveFile(tmp.target, destination, { overwrite: false })
174
- tmp.moved = true
175
- return tmp.moved
176
- })
177
- .catch(err => {
178
- if (!err.message.startsWith('The destination file exists')) {
179
- throw Object.assign(err, { code: 'EEXIST' })
180
- }
181
- }).finally(() => {
182
- moveOperations.delete(destination)
183
- })
184
-
185
- )
186
- return moveOperations.get(destination)
187
- }
188
-
189
- function sizeError (expected, found) {
190
- /* eslint-disable-next-line max-len */
191
- const err = new Error(`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)
192
- err.expected = expected
193
- err.found = found
194
- err.code = 'EBADSIZE'
195
- return err
196
- }
197
-
198
- function checksumError (expected, found) {
199
- const err = new Error(`Integrity check failed:
200
- Wanted: ${expected}
201
- Found: ${found}`)
202
- err.code = 'EINTEGRITY'
203
- err.expected = expected
204
- err.found = found
205
- return err
206
- }
@@ -1,336 +0,0 @@
1
- 'use strict'
2
-
3
- const crypto = require('crypto')
4
- const {
5
- appendFile,
6
- mkdir,
7
- readFile,
8
- readdir,
9
- rm,
10
- writeFile,
11
- } = require('fs/promises')
12
- const { Minipass } = require('minipass')
13
- const path = require('path')
14
- const ssri = require('ssri')
15
- const { tmpName } = require('./util/tmp')
16
-
17
- const contentPath = require('./content/path')
18
- const hashToSegments = require('./util/hash-to-segments')
19
- const indexV = require('../package.json')['cache-version'].index
20
- const { moveFile } = require('@npmcli/fs')
21
-
22
- const lsStreamConcurrency = 5
23
-
24
- module.exports.NotFoundError = class NotFoundError extends Error {
25
- constructor (cache, key) {
26
- super(`No cache entry for ${key} found in ${cache}`)
27
- this.code = 'ENOENT'
28
- this.cache = cache
29
- this.key = key
30
- }
31
- }
32
-
33
- module.exports.compact = compact
34
-
35
- async function compact (cache, key, matchFn, opts = {}) {
36
- const bucket = bucketPath(cache, key)
37
- const entries = await bucketEntries(bucket)
38
- const newEntries = []
39
- // we loop backwards because the bottom-most result is the newest
40
- // since we add new entries with appendFile
41
- for (let i = entries.length - 1; i >= 0; --i) {
42
- const entry = entries[i]
43
- // a null integrity could mean either a delete was appended
44
- // or the user has simply stored an index that does not map
45
- // to any content. we determine if the user wants to keep the
46
- // null integrity based on the validateEntry function passed in options.
47
- // if the integrity is null and no validateEntry is provided, we break
48
- // as we consider the null integrity to be a deletion of everything
49
- // that came before it.
50
- if (entry.integrity === null && !opts.validateEntry) {
51
- break
52
- }
53
-
54
- // if this entry is valid, and it is either the first entry or
55
- // the newEntries array doesn't already include an entry that
56
- // matches this one based on the provided matchFn, then we add
57
- // it to the beginning of our list
58
- if ((!opts.validateEntry || opts.validateEntry(entry) === true) &&
59
- (newEntries.length === 0 ||
60
- !newEntries.find((oldEntry) => matchFn(oldEntry, entry)))) {
61
- newEntries.unshift(entry)
62
- }
63
- }
64
-
65
- const newIndex = '\n' + newEntries.map((entry) => {
66
- const stringified = JSON.stringify(entry)
67
- const hash = hashEntry(stringified)
68
- return `${hash}\t${stringified}`
69
- }).join('\n')
70
-
71
- const setup = async () => {
72
- const target = tmpName(cache, opts.tmpPrefix)
73
- await mkdir(path.dirname(target), { recursive: true })
74
- return {
75
- target,
76
- moved: false,
77
- }
78
- }
79
-
80
- const teardown = async (tmp) => {
81
- if (!tmp.moved) {
82
- return rm(tmp.target, { recursive: true, force: true })
83
- }
84
- }
85
-
86
- const write = async (tmp) => {
87
- await writeFile(tmp.target, newIndex, { flag: 'wx' })
88
- await mkdir(path.dirname(bucket), { recursive: true })
89
- // we use @npmcli/move-file directly here because we
90
- // want to overwrite the existing file
91
- await moveFile(tmp.target, bucket)
92
- tmp.moved = true
93
- }
94
-
95
- // write the file atomically
96
- const tmp = await setup()
97
- try {
98
- await write(tmp)
99
- } finally {
100
- await teardown(tmp)
101
- }
102
-
103
- // we reverse the list we generated such that the newest
104
- // entries come first in order to make looping through them easier
105
- // the true passed to formatEntry tells it to keep null
106
- // integrity values, if they made it this far it's because
107
- // validateEntry returned true, and as such we should return it
108
- return newEntries.reverse().map((entry) => formatEntry(cache, entry, true))
109
- }
110
-
111
- module.exports.insert = insert
112
-
113
- async function insert (cache, key, integrity, opts = {}) {
114
- const { metadata, size, time } = opts
115
- const bucket = bucketPath(cache, key)
116
- const entry = {
117
- key,
118
- integrity: integrity && ssri.stringify(integrity),
119
- time: time || Date.now(),
120
- size,
121
- metadata,
122
- }
123
- try {
124
- await mkdir(path.dirname(bucket), { recursive: true })
125
- const stringified = JSON.stringify(entry)
126
- // NOTE - Cleverness ahoy!
127
- //
128
- // This works because it's tremendously unlikely for an entry to corrupt
129
- // another while still preserving the string length of the JSON in
130
- // question. So, we just slap the length in there and verify it on read.
131
- //
132
- // Thanks to @isaacs for the whiteboarding session that ended up with
133
- // this.
134
- await appendFile(bucket, `\n${hashEntry(stringified)}\t${stringified}`)
135
- } catch (err) {
136
- if (err.code === 'ENOENT') {
137
- return undefined
138
- }
139
-
140
- throw err
141
- }
142
- return formatEntry(cache, entry)
143
- }
144
-
145
- module.exports.find = find
146
-
147
- async function find (cache, key) {
148
- const bucket = bucketPath(cache, key)
149
- try {
150
- const entries = await bucketEntries(bucket)
151
- return entries.reduce((latest, next) => {
152
- if (next && next.key === key) {
153
- return formatEntry(cache, next)
154
- } else {
155
- return latest
156
- }
157
- }, null)
158
- } catch (err) {
159
- if (err.code === 'ENOENT') {
160
- return null
161
- } else {
162
- throw err
163
- }
164
- }
165
- }
166
-
167
- module.exports.delete = del
168
-
169
- function del (cache, key, opts = {}) {
170
- if (!opts.removeFully) {
171
- return insert(cache, key, null, opts)
172
- }
173
-
174
- const bucket = bucketPath(cache, key)
175
- return rm(bucket, { recursive: true, force: true })
176
- }
177
-
178
- module.exports.lsStream = lsStream
179
-
180
- function lsStream (cache) {
181
- const indexDir = bucketDir(cache)
182
- const stream = new Minipass({ objectMode: true })
183
-
184
- // Set all this up to run on the stream and then just return the stream
185
- Promise.resolve().then(async () => {
186
- const { default: pMap } = await import('p-map')
187
- const buckets = await readdirOrEmpty(indexDir)
188
- await pMap(buckets, async (bucket) => {
189
- const bucketPath = path.join(indexDir, bucket)
190
- const subbuckets = await readdirOrEmpty(bucketPath)
191
- await pMap(subbuckets, async (subbucket) => {
192
- const subbucketPath = path.join(bucketPath, subbucket)
193
-
194
- // "/cachename/<bucket 0xFF>/<bucket 0xFF>./*"
195
- const subbucketEntries = await readdirOrEmpty(subbucketPath)
196
- await pMap(subbucketEntries, async (entry) => {
197
- const entryPath = path.join(subbucketPath, entry)
198
- try {
199
- const entries = await bucketEntries(entryPath)
200
- // using a Map here prevents duplicate keys from showing up
201
- // twice, I guess?
202
- const reduced = entries.reduce((acc, entry) => {
203
- acc.set(entry.key, entry)
204
- return acc
205
- }, new Map())
206
- // reduced is a map of key => entry
207
- for (const entry of reduced.values()) {
208
- const formatted = formatEntry(cache, entry)
209
- if (formatted) {
210
- stream.write(formatted)
211
- }
212
- }
213
- } catch (err) {
214
- if (err.code === 'ENOENT') {
215
- return undefined
216
- }
217
- throw err
218
- }
219
- },
220
- { concurrency: lsStreamConcurrency })
221
- },
222
- { concurrency: lsStreamConcurrency })
223
- },
224
- { concurrency: lsStreamConcurrency })
225
- stream.end()
226
- return stream
227
- }).catch(err => stream.emit('error', err))
228
-
229
- return stream
230
- }
231
-
232
- module.exports.ls = ls
233
-
234
- async function ls (cache) {
235
- const entries = await lsStream(cache).collect()
236
- return entries.reduce((acc, xs) => {
237
- acc[xs.key] = xs
238
- return acc
239
- }, {})
240
- }
241
-
242
- module.exports.bucketEntries = bucketEntries
243
-
244
- async function bucketEntries (bucket, filter) {
245
- const data = await readFile(bucket, 'utf8')
246
- return _bucketEntries(data, filter)
247
- }
248
-
249
- function _bucketEntries (data) {
250
- const entries = []
251
- data.split('\n').forEach((entry) => {
252
- if (!entry) {
253
- return
254
- }
255
-
256
- const pieces = entry.split('\t')
257
- if (!pieces[1] || hashEntry(pieces[1]) !== pieces[0]) {
258
- // Hash is no good! Corruption or malice? Doesn't matter!
259
- // EJECT EJECT
260
- return
261
- }
262
- let obj
263
- try {
264
- obj = JSON.parse(pieces[1])
265
- } catch (_) {
266
- // eslint-ignore-next-line no-empty-block
267
- }
268
- // coverage disabled here, no need to test with an entry that parses to something falsey
269
- // istanbul ignore else
270
- if (obj) {
271
- entries.push(obj)
272
- }
273
- })
274
- return entries
275
- }
276
-
277
- module.exports.bucketDir = bucketDir
278
-
279
- function bucketDir (cache) {
280
- return path.join(cache, `index-v${indexV}`)
281
- }
282
-
283
- module.exports.bucketPath = bucketPath
284
-
285
- function bucketPath (cache, key) {
286
- const hashed = hashKey(key)
287
- return path.join.apply(
288
- path,
289
- [bucketDir(cache)].concat(hashToSegments(hashed))
290
- )
291
- }
292
-
293
- module.exports.hashKey = hashKey
294
-
295
- function hashKey (key) {
296
- return hash(key, 'sha256')
297
- }
298
-
299
- module.exports.hashEntry = hashEntry
300
-
301
- function hashEntry (str) {
302
- return hash(str, 'sha1')
303
- }
304
-
305
- function hash (str, digest) {
306
- return crypto
307
- .createHash(digest)
308
- .update(str)
309
- .digest('hex')
310
- }
311
-
312
- function formatEntry (cache, entry, keepAll) {
313
- // Treat null digests as deletions. They'll shadow any previous entries.
314
- if (!entry.integrity && !keepAll) {
315
- return null
316
- }
317
-
318
- return {
319
- key: entry.key,
320
- integrity: entry.integrity,
321
- path: entry.integrity ? contentPath(cache, entry.integrity) : undefined,
322
- size: entry.size,
323
- time: entry.time,
324
- metadata: entry.metadata,
325
- }
326
- }
327
-
328
- function readdirOrEmpty (dir) {
329
- return readdir(dir).catch((err) => {
330
- if (err.code === 'ENOENT' || err.code === 'ENOTDIR') {
331
- return []
332
- }
333
-
334
- throw err
335
- })
336
- }
@@ -1,170 +0,0 @@
1
- 'use strict'
2
-
3
- const Collect = require('minipass-collect')
4
- const { Minipass } = require('minipass')
5
- const Pipeline = require('minipass-pipeline')
6
-
7
- const index = require('./entry-index')
8
- const memo = require('./memoization')
9
- const read = require('./content/read')
10
-
11
- async function getData (cache, key, opts = {}) {
12
- const { integrity, memoize, size } = opts
13
- const memoized = memo.get(cache, key, opts)
14
- if (memoized && memoize !== false) {
15
- return {
16
- metadata: memoized.entry.metadata,
17
- data: memoized.data,
18
- integrity: memoized.entry.integrity,
19
- size: memoized.entry.size,
20
- }
21
- }
22
-
23
- const entry = await index.find(cache, key, opts)
24
- if (!entry) {
25
- throw new index.NotFoundError(cache, key)
26
- }
27
- const data = await read(cache, entry.integrity, { integrity, size })
28
- if (memoize) {
29
- memo.put(cache, entry, data, opts)
30
- }
31
-
32
- return {
33
- data,
34
- metadata: entry.metadata,
35
- size: entry.size,
36
- integrity: entry.integrity,
37
- }
38
- }
39
- module.exports = getData
40
-
41
- async function getDataByDigest (cache, key, opts = {}) {
42
- const { integrity, memoize, size } = opts
43
- const memoized = memo.get.byDigest(cache, key, opts)
44
- if (memoized && memoize !== false) {
45
- return memoized
46
- }
47
-
48
- const res = await read(cache, key, { integrity, size })
49
- if (memoize) {
50
- memo.put.byDigest(cache, key, res, opts)
51
- }
52
- return res
53
- }
54
- module.exports.byDigest = getDataByDigest
55
-
56
- const getMemoizedStream = (memoized) => {
57
- const stream = new Minipass()
58
- stream.on('newListener', function (ev, cb) {
59
- ev === 'metadata' && cb(memoized.entry.metadata)
60
- ev === 'integrity' && cb(memoized.entry.integrity)
61
- ev === 'size' && cb(memoized.entry.size)
62
- })
63
- stream.end(memoized.data)
64
- return stream
65
- }
66
-
67
- function getStream (cache, key, opts = {}) {
68
- const { memoize, size } = opts
69
- const memoized = memo.get(cache, key, opts)
70
- if (memoized && memoize !== false) {
71
- return getMemoizedStream(memoized)
72
- }
73
-
74
- const stream = new Pipeline()
75
- // Set all this up to run on the stream and then just return the stream
76
- Promise.resolve().then(async () => {
77
- const entry = await index.find(cache, key)
78
- if (!entry) {
79
- throw new index.NotFoundError(cache, key)
80
- }
81
-
82
- stream.emit('metadata', entry.metadata)
83
- stream.emit('integrity', entry.integrity)
84
- stream.emit('size', entry.size)
85
- stream.on('newListener', function (ev, cb) {
86
- ev === 'metadata' && cb(entry.metadata)
87
- ev === 'integrity' && cb(entry.integrity)
88
- ev === 'size' && cb(entry.size)
89
- })
90
-
91
- const src = read.readStream(
92
- cache,
93
- entry.integrity,
94
- { ...opts, size: typeof size !== 'number' ? entry.size : size }
95
- )
96
-
97
- if (memoize) {
98
- const memoStream = new Collect.PassThrough()
99
- memoStream.on('collect', data => memo.put(cache, entry, data, opts))
100
- stream.unshift(memoStream)
101
- }
102
- stream.unshift(src)
103
- return stream
104
- }).catch((err) => stream.emit('error', err))
105
-
106
- return stream
107
- }
108
-
109
- module.exports.stream = getStream
110
-
111
- function getStreamDigest (cache, integrity, opts = {}) {
112
- const { memoize } = opts
113
- const memoized = memo.get.byDigest(cache, integrity, opts)
114
- if (memoized && memoize !== false) {
115
- const stream = new Minipass()
116
- stream.end(memoized)
117
- return stream
118
- } else {
119
- const stream = read.readStream(cache, integrity, opts)
120
- if (!memoize) {
121
- return stream
122
- }
123
-
124
- const memoStream = new Collect.PassThrough()
125
- memoStream.on('collect', data => memo.put.byDigest(
126
- cache,
127
- integrity,
128
- data,
129
- opts
130
- ))
131
- return new Pipeline(stream, memoStream)
132
- }
133
- }
134
-
135
- module.exports.stream.byDigest = getStreamDigest
136
-
137
- function info (cache, key, opts = {}) {
138
- const { memoize } = opts
139
- const memoized = memo.get(cache, key, opts)
140
- if (memoized && memoize !== false) {
141
- return Promise.resolve(memoized.entry)
142
- } else {
143
- return index.find(cache, key)
144
- }
145
- }
146
- module.exports.info = info
147
-
148
- async function copy (cache, key, dest, opts = {}) {
149
- const entry = await index.find(cache, key, opts)
150
- if (!entry) {
151
- throw new index.NotFoundError(cache, key)
152
- }
153
- await read.copy(cache, entry.integrity, dest, opts)
154
- return {
155
- metadata: entry.metadata,
156
- size: entry.size,
157
- integrity: entry.integrity,
158
- }
159
- }
160
-
161
- module.exports.copy = copy
162
-
163
- async function copyByDigest (cache, key, dest, opts = {}) {
164
- await read.copy(cache, key, dest, opts)
165
- return key
166
- }
167
-
168
- module.exports.copy.byDigest = copyByDigest
169
-
170
- module.exports.hasContent = read.hasContent