@pnpm/exe 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.
- package/dist/node-gyp-bin/node-gyp +0 -0
- package/dist/node-gyp-bin/node-gyp.cmd +0 -0
- package/dist/node_modules/node-gyp/.release-please-manifest.json +1 -1
- package/dist/node_modules/node-gyp/bin/node-gyp.js +0 -0
- package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +11 -3
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +2 -3
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +26 -16
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +2 -2
- package/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +3 -20
- package/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +2 -14
- package/dist/node_modules/node-gyp/gyp/pyproject.toml +5 -3
- package/dist/node_modules/node-gyp/lib/download.js +55 -8
- package/dist/node_modules/node-gyp/lib/find-visualstudio.js +1 -1
- package/dist/node_modules/node-gyp/lib/process-release.js +17 -19
- package/dist/node_modules/node-gyp/package.json +3 -3
- package/dist/node_modules/{safer-buffer → undici}/LICENSE +1 -1
- package/dist/node_modules/undici/index-fetch.js +35 -0
- package/dist/node_modules/undici/index.js +169 -0
- package/dist/node_modules/undici/lib/api/abort-signal.js +57 -0
- package/dist/node_modules/undici/lib/api/api-connect.js +108 -0
- package/dist/node_modules/undici/lib/api/api-pipeline.js +251 -0
- package/dist/node_modules/undici/lib/api/api-request.js +214 -0
- package/dist/node_modules/undici/lib/api/api-stream.js +220 -0
- package/dist/node_modules/undici/lib/api/api-upgrade.js +108 -0
- package/dist/node_modules/undici/lib/api/index.js +7 -0
- package/dist/node_modules/undici/lib/api/readable.js +385 -0
- package/dist/node_modules/undici/lib/api/util.js +93 -0
- package/dist/node_modules/undici/lib/core/connect.js +240 -0
- package/dist/node_modules/undici/lib/core/constants.js +118 -0
- package/dist/node_modules/undici/lib/core/diagnostics.js +202 -0
- package/dist/node_modules/undici/lib/core/errors.js +425 -0
- package/dist/node_modules/undici/lib/core/request.js +405 -0
- package/dist/node_modules/undici/lib/core/symbols.js +67 -0
- package/dist/node_modules/undici/lib/core/tree.js +152 -0
- package/dist/node_modules/undici/lib/core/util.js +719 -0
- package/dist/node_modules/undici/lib/dispatcher/agent.js +130 -0
- package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +209 -0
- package/dist/node_modules/undici/lib/dispatcher/client-h1.js +1370 -0
- package/dist/node_modules/undici/lib/dispatcher/client-h2.js +744 -0
- package/dist/node_modules/undici/lib/dispatcher/client.js +623 -0
- package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
- package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +65 -0
- package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +160 -0
- package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +117 -0
- package/dist/node_modules/undici/lib/dispatcher/pool-base.js +194 -0
- package/dist/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
- package/dist/node_modules/undici/lib/dispatcher/pool.js +107 -0
- package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +274 -0
- package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
- package/dist/node_modules/undici/lib/global.js +32 -0
- package/dist/node_modules/undici/lib/handler/decorator-handler.js +44 -0
- package/dist/node_modules/undici/lib/handler/redirect-handler.js +232 -0
- package/dist/node_modules/undici/lib/handler/retry-handler.js +374 -0
- package/dist/node_modules/undici/lib/interceptor/dns.js +375 -0
- package/dist/node_modules/undici/lib/interceptor/dump.js +123 -0
- package/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
- package/dist/node_modules/undici/lib/interceptor/redirect.js +24 -0
- package/dist/node_modules/undici/lib/interceptor/response-error.js +86 -0
- package/dist/node_modules/undici/lib/interceptor/retry.js +19 -0
- package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/dist/node_modules/undici/lib/llhttp/constants.js +278 -0
- package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +5 -0
- package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +5 -0
- package/dist/node_modules/undici/lib/llhttp/utils.js +15 -0
- package/dist/node_modules/undici/lib/mock/mock-agent.js +160 -0
- package/dist/node_modules/undici/lib/mock/mock-client.js +59 -0
- package/dist/node_modules/undici/lib/mock/mock-errors.js +28 -0
- package/dist/node_modules/undici/lib/mock/mock-interceptor.js +207 -0
- package/dist/node_modules/undici/lib/mock/mock-pool.js +59 -0
- package/dist/node_modules/undici/lib/mock/mock-symbols.js +23 -0
- package/dist/node_modules/undici/lib/mock/mock-utils.js +367 -0
- package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
- package/dist/node_modules/undici/lib/mock/pluralizer.js +29 -0
- package/dist/node_modules/undici/lib/util/timers.js +423 -0
- package/dist/node_modules/undici/lib/web/cache/cache.js +859 -0
- package/dist/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
- package/dist/node_modules/undici/lib/web/cache/symbols.js +5 -0
- package/dist/node_modules/undici/lib/web/cache/util.js +45 -0
- package/dist/node_modules/undici/lib/web/cookies/constants.js +12 -0
- package/dist/node_modules/undici/lib/web/cookies/index.js +184 -0
- package/dist/node_modules/undici/lib/web/cookies/parse.js +317 -0
- package/dist/node_modules/undici/lib/web/cookies/util.js +282 -0
- package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +398 -0
- package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +480 -0
- package/dist/node_modules/undici/lib/web/eventsource/util.js +37 -0
- package/dist/node_modules/{@npmcli/redact → undici/lib/web/fetch}/LICENSE +1 -1
- package/dist/node_modules/undici/lib/web/fetch/body.js +529 -0
- package/dist/node_modules/undici/lib/web/fetch/constants.js +124 -0
- package/dist/node_modules/undici/lib/web/fetch/data-url.js +744 -0
- package/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
- package/dist/node_modules/undici/lib/web/fetch/file.js +126 -0
- package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +474 -0
- package/dist/node_modules/undici/lib/web/fetch/formdata.js +252 -0
- package/dist/node_modules/undici/lib/web/fetch/global.js +40 -0
- package/dist/node_modules/undici/lib/web/fetch/headers.js +687 -0
- package/dist/node_modules/undici/lib/web/fetch/index.js +2272 -0
- package/dist/node_modules/undici/lib/web/fetch/request.js +1037 -0
- package/dist/node_modules/undici/lib/web/fetch/response.js +610 -0
- package/dist/node_modules/undici/lib/web/fetch/symbols.js +9 -0
- package/dist/node_modules/undici/lib/web/fetch/util.js +1632 -0
- package/dist/node_modules/undici/lib/web/fetch/webidl.js +695 -0
- package/dist/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
- package/dist/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
- package/dist/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
- package/dist/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
- package/dist/node_modules/undici/lib/web/fileapi/util.js +391 -0
- package/dist/node_modules/undici/lib/web/websocket/connection.js +371 -0
- package/dist/node_modules/undici/lib/web/websocket/constants.js +66 -0
- package/dist/node_modules/undici/lib/web/websocket/events.js +329 -0
- package/dist/node_modules/undici/lib/web/websocket/frame.js +96 -0
- package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +100 -0
- package/dist/node_modules/undici/lib/web/websocket/receiver.js +490 -0
- package/dist/node_modules/undici/lib/web/websocket/sender.js +104 -0
- package/dist/node_modules/undici/lib/web/websocket/symbols.js +12 -0
- package/dist/node_modules/undici/lib/web/websocket/util.js +322 -0
- package/dist/node_modules/undici/lib/web/websocket/websocket.js +592 -0
- package/dist/node_modules/undici/package.json +160 -0
- package/dist/node_modules/undici/scripts/strip-comments.js +8 -0
- package/dist/node_modules/yallist/package.json +51 -12
- package/dist/pnpm.mjs +4529 -3898
- package/dist/worker.js +76 -73
- package/package.json +21 -13
- package/setup.js +17 -3
- package/dist/node_modules/@gar/promise-retry/LICENSE +0 -20
- package/dist/node_modules/@gar/promise-retry/lib/index.js +0 -62
- package/dist/node_modules/@gar/promise-retry/lib/retry.js +0 -109
- package/dist/node_modules/@gar/promise-retry/package.json +0 -45
- package/dist/node_modules/@npmcli/agent/lib/agents.js +0 -206
- package/dist/node_modules/@npmcli/agent/lib/dns.js +0 -53
- package/dist/node_modules/@npmcli/agent/lib/errors.js +0 -61
- package/dist/node_modules/@npmcli/agent/lib/index.js +0 -56
- package/dist/node_modules/@npmcli/agent/lib/options.js +0 -86
- package/dist/node_modules/@npmcli/agent/lib/proxy.js +0 -88
- package/dist/node_modules/@npmcli/agent/package.json +0 -60
- package/dist/node_modules/@npmcli/fs/lib/common/get-options.js +0 -20
- package/dist/node_modules/@npmcli/fs/lib/common/node.js +0 -9
- package/dist/node_modules/@npmcli/fs/lib/cp/LICENSE +0 -15
- package/dist/node_modules/@npmcli/fs/lib/cp/errors.js +0 -129
- package/dist/node_modules/@npmcli/fs/lib/cp/index.js +0 -22
- package/dist/node_modules/@npmcli/fs/lib/cp/polyfill.js +0 -428
- package/dist/node_modules/@npmcli/fs/lib/index.js +0 -13
- package/dist/node_modules/@npmcli/fs/lib/move-file.js +0 -78
- package/dist/node_modules/@npmcli/fs/lib/readdir-scoped.js +0 -20
- package/dist/node_modules/@npmcli/fs/lib/with-temp-dir.js +0 -39
- package/dist/node_modules/@npmcli/fs/package.json +0 -54
- package/dist/node_modules/@npmcli/redact/lib/deep-map.js +0 -71
- package/dist/node_modules/@npmcli/redact/lib/error.js +0 -28
- package/dist/node_modules/@npmcli/redact/lib/index.js +0 -44
- package/dist/node_modules/@npmcli/redact/lib/matchers.js +0 -88
- package/dist/node_modules/@npmcli/redact/lib/server.js +0 -59
- package/dist/node_modules/@npmcli/redact/lib/utils.js +0 -202
- package/dist/node_modules/@npmcli/redact/package.json +0 -52
- package/dist/node_modules/agent-base/LICENSE +0 -22
- package/dist/node_modules/agent-base/dist/helpers.js +0 -66
- package/dist/node_modules/agent-base/dist/index.js +0 -178
- package/dist/node_modules/agent-base/package.json +0 -46
- package/dist/node_modules/balanced-match/dist/commonjs/index.js +0 -59
- package/dist/node_modules/balanced-match/dist/esm/index.js +0 -54
- package/dist/node_modules/balanced-match/package.json +0 -68
- package/dist/node_modules/brace-expansion/LICENSE +0 -23
- package/dist/node_modules/brace-expansion/dist/commonjs/index.js +0 -201
- package/dist/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
- package/dist/node_modules/brace-expansion/dist/esm/index.js +0 -197
- package/dist/node_modules/brace-expansion/dist/esm/package.json +0 -3
- package/dist/node_modules/brace-expansion/package.json +0 -64
- package/dist/node_modules/cacache/lib/content/path.js +0 -29
- package/dist/node_modules/cacache/lib/content/read.js +0 -165
- package/dist/node_modules/cacache/lib/content/rm.js +0 -18
- package/dist/node_modules/cacache/lib/content/write.js +0 -206
- package/dist/node_modules/cacache/lib/entry-index.js +0 -336
- package/dist/node_modules/cacache/lib/get.js +0 -170
- package/dist/node_modules/cacache/lib/index.js +0 -42
- package/dist/node_modules/cacache/lib/memoization.js +0 -72
- package/dist/node_modules/cacache/lib/put.js +0 -80
- package/dist/node_modules/cacache/lib/rm.js +0 -31
- package/dist/node_modules/cacache/lib/util/glob.js +0 -7
- package/dist/node_modules/cacache/lib/util/hash-to-segments.js +0 -7
- package/dist/node_modules/cacache/lib/util/tmp.js +0 -32
- package/dist/node_modules/cacache/lib/verify.js +0 -258
- package/dist/node_modules/cacache/package.json +0 -81
- package/dist/node_modules/debug/LICENSE +0 -20
- package/dist/node_modules/debug/package.json +0 -64
- package/dist/node_modules/debug/src/browser.js +0 -272
- package/dist/node_modules/debug/src/common.js +0 -292
- package/dist/node_modules/debug/src/index.js +0 -10
- package/dist/node_modules/debug/src/node.js +0 -263
- package/dist/node_modules/fs-minipass/LICENSE +0 -15
- package/dist/node_modules/fs-minipass/lib/index.js +0 -443
- package/dist/node_modules/fs-minipass/package.json +0 -54
- package/dist/node_modules/glob/dist/commonjs/glob.js +0 -248
- package/dist/node_modules/glob/dist/commonjs/has-magic.js +0 -27
- package/dist/node_modules/glob/dist/commonjs/ignore.js +0 -119
- package/dist/node_modules/glob/dist/commonjs/index.js +0 -68
- package/dist/node_modules/glob/dist/commonjs/index.min.js +0 -4
- package/dist/node_modules/glob/dist/commonjs/package.json +0 -3
- package/dist/node_modules/glob/dist/commonjs/pattern.js +0 -223
- package/dist/node_modules/glob/dist/commonjs/processor.js +0 -301
- package/dist/node_modules/glob/dist/commonjs/walker.js +0 -387
- package/dist/node_modules/glob/dist/esm/glob.js +0 -244
- package/dist/node_modules/glob/dist/esm/has-magic.js +0 -23
- package/dist/node_modules/glob/dist/esm/ignore.js +0 -115
- package/dist/node_modules/glob/dist/esm/index.js +0 -55
- package/dist/node_modules/glob/dist/esm/index.min.js +0 -4
- package/dist/node_modules/glob/dist/esm/package.json +0 -3
- package/dist/node_modules/glob/dist/esm/pattern.js +0 -219
- package/dist/node_modules/glob/dist/esm/processor.js +0 -294
- package/dist/node_modules/glob/dist/esm/walker.js +0 -381
- package/dist/node_modules/glob/package.json +0 -98
- package/dist/node_modules/http-cache-semantics/LICENSE +0 -9
- package/dist/node_modules/http-cache-semantics/index.js +0 -928
- package/dist/node_modules/http-cache-semantics/package.json +0 -22
- package/dist/node_modules/http-proxy-agent/LICENSE +0 -22
- package/dist/node_modules/http-proxy-agent/dist/index.js +0 -148
- package/dist/node_modules/http-proxy-agent/package.json +0 -47
- package/dist/node_modules/https-proxy-agent/LICENSE +0 -22
- package/dist/node_modules/https-proxy-agent/dist/index.js +0 -180
- package/dist/node_modules/https-proxy-agent/dist/parse-proxy-response.js +0 -101
- package/dist/node_modules/https-proxy-agent/package.json +0 -50
- package/dist/node_modules/iconv-lite/LICENSE +0 -21
- package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
- package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
- package/dist/node_modules/iconv-lite/encodings/index.js +0 -23
- package/dist/node_modules/iconv-lite/encodings/internal.js +0 -218
- package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
- package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
- package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
- package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
- package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
- package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
- package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
- package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
- package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
- package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
- package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -187
- package/dist/node_modules/iconv-lite/encodings/utf32.js +0 -307
- package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -283
- package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -48
- package/dist/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
- package/dist/node_modules/iconv-lite/lib/index.js +0 -182
- package/dist/node_modules/iconv-lite/lib/streams.js +0 -105
- package/dist/node_modules/iconv-lite/package.json +0 -70
- package/dist/node_modules/ip-address/LICENSE +0 -19
- package/dist/node_modules/ip-address/dist/address-error.js +0 -12
- package/dist/node_modules/ip-address/dist/common.js +0 -46
- package/dist/node_modules/ip-address/dist/ip-address.js +0 -35
- package/dist/node_modules/ip-address/dist/ipv4.js +0 -360
- package/dist/node_modules/ip-address/dist/ipv6.js +0 -1003
- package/dist/node_modules/ip-address/dist/v4/constants.js +0 -8
- package/dist/node_modules/ip-address/dist/v6/constants.js +0 -76
- package/dist/node_modules/ip-address/dist/v6/helpers.js +0 -45
- package/dist/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
- package/dist/node_modules/ip-address/package.json +0 -78
- package/dist/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +0 -10
- package/dist/node_modules/lru-cache/dist/commonjs/index.js +0 -1692
- package/dist/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/commonjs/package.json +0 -3
- package/dist/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +0 -4
- package/dist/node_modules/lru-cache/dist/esm/browser/index.js +0 -1688
- package/dist/node_modules/lru-cache/dist/esm/browser/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/esm/diagnostics-channel.js +0 -19
- package/dist/node_modules/lru-cache/dist/esm/index.js +0 -1688
- package/dist/node_modules/lru-cache/dist/esm/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +0 -7
- package/dist/node_modules/lru-cache/dist/esm/node/index.js +0 -1688
- package/dist/node_modules/lru-cache/dist/esm/node/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/esm/package.json +0 -3
- package/dist/node_modules/lru-cache/package.json +0 -126
- package/dist/node_modules/make-fetch-happen/LICENSE +0 -16
- package/dist/node_modules/make-fetch-happen/lib/cache/entry.js +0 -471
- package/dist/node_modules/make-fetch-happen/lib/cache/errors.js +0 -11
- package/dist/node_modules/make-fetch-happen/lib/cache/index.js +0 -49
- package/dist/node_modules/make-fetch-happen/lib/cache/key.js +0 -17
- package/dist/node_modules/make-fetch-happen/lib/cache/policy.js +0 -161
- package/dist/node_modules/make-fetch-happen/lib/fetch.js +0 -118
- package/dist/node_modules/make-fetch-happen/lib/index.js +0 -41
- package/dist/node_modules/make-fetch-happen/lib/options.js +0 -59
- package/dist/node_modules/make-fetch-happen/lib/pipeline.js +0 -41
- package/dist/node_modules/make-fetch-happen/lib/remote.js +0 -134
- package/dist/node_modules/make-fetch-happen/package.json +0 -75
- package/dist/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
- package/dist/node_modules/minimatch/dist/commonjs/ast.js +0 -845
- package/dist/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
- package/dist/node_modules/minimatch/dist/commonjs/escape.js +0 -30
- package/dist/node_modules/minimatch/dist/commonjs/index.js +0 -1127
- package/dist/node_modules/minimatch/dist/commonjs/package.json +0 -3
- package/dist/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
- package/dist/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
- package/dist/node_modules/minimatch/dist/esm/ast.js +0 -841
- package/dist/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
- package/dist/node_modules/minimatch/dist/esm/escape.js +0 -26
- package/dist/node_modules/minimatch/dist/esm/index.js +0 -1114
- package/dist/node_modules/minimatch/dist/esm/package.json +0 -3
- package/dist/node_modules/minimatch/dist/esm/unescape.js +0 -34
- package/dist/node_modules/minimatch/package.json +0 -73
- package/dist/node_modules/minipass-collect/LICENSE +0 -15
- package/dist/node_modules/minipass-collect/index.js +0 -71
- package/dist/node_modules/minipass-collect/package.json +0 -30
- package/dist/node_modules/minipass-fetch/LICENSE +0 -28
- package/dist/node_modules/minipass-fetch/lib/abort-error.js +0 -17
- package/dist/node_modules/minipass-fetch/lib/blob.js +0 -97
- package/dist/node_modules/minipass-fetch/lib/body.js +0 -360
- package/dist/node_modules/minipass-fetch/lib/fetch-error.js +0 -32
- package/dist/node_modules/minipass-fetch/lib/headers.js +0 -267
- package/dist/node_modules/minipass-fetch/lib/index.js +0 -376
- package/dist/node_modules/minipass-fetch/lib/request.js +0 -282
- package/dist/node_modules/minipass-fetch/lib/response.js +0 -90
- package/dist/node_modules/minipass-fetch/package.json +0 -70
- package/dist/node_modules/minipass-flush/index.js +0 -39
- package/dist/node_modules/minipass-flush/node_modules/minipass/LICENSE +0 -15
- package/dist/node_modules/minipass-flush/node_modules/minipass/index.js +0 -649
- package/dist/node_modules/minipass-flush/node_modules/minipass/package.json +0 -56
- package/dist/node_modules/minipass-flush/package.json +0 -42
- package/dist/node_modules/minipass-pipeline/LICENSE +0 -15
- package/dist/node_modules/minipass-pipeline/index.js +0 -128
- package/dist/node_modules/minipass-pipeline/node_modules/minipass/LICENSE +0 -15
- package/dist/node_modules/minipass-pipeline/node_modules/minipass/index.js +0 -649
- package/dist/node_modules/minipass-pipeline/node_modules/minipass/package.json +0 -56
- package/dist/node_modules/minipass-pipeline/package.json +0 -29
- package/dist/node_modules/minipass-sized/LICENSE +0 -15
- package/dist/node_modules/minipass-sized/dist/commonjs/index.js +0 -69
- package/dist/node_modules/minipass-sized/dist/commonjs/package.json +0 -3
- package/dist/node_modules/minipass-sized/dist/esm/index.js +0 -64
- package/dist/node_modules/minipass-sized/dist/esm/package.json +0 -3
- package/dist/node_modules/minipass-sized/package.json +0 -69
- package/dist/node_modules/ms/index.js +0 -162
- package/dist/node_modules/ms/package.json +0 -38
- package/dist/node_modules/negotiator/LICENSE +0 -24
- package/dist/node_modules/negotiator/index.js +0 -83
- package/dist/node_modules/negotiator/lib/charset.js +0 -169
- package/dist/node_modules/negotiator/lib/encoding.js +0 -205
- package/dist/node_modules/negotiator/lib/language.js +0 -179
- package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
- package/dist/node_modules/negotiator/package.json +0 -43
- package/dist/node_modules/p-map/index.js +0 -283
- package/dist/node_modules/p-map/license +0 -9
- package/dist/node_modules/p-map/package.json +0 -57
- package/dist/node_modules/path-scurry/dist/commonjs/index.js +0 -2018
- package/dist/node_modules/path-scurry/dist/commonjs/package.json +0 -3
- package/dist/node_modules/path-scurry/dist/esm/index.js +0 -1983
- package/dist/node_modules/path-scurry/dist/esm/package.json +0 -3
- package/dist/node_modules/path-scurry/package.json +0 -72
- package/dist/node_modules/safer-buffer/dangerous.js +0 -58
- package/dist/node_modules/safer-buffer/package.json +0 -34
- package/dist/node_modules/safer-buffer/safer.js +0 -77
- package/dist/node_modules/safer-buffer/tests.js +0 -406
- package/dist/node_modules/smart-buffer/.prettierrc.yaml +0 -5
- package/dist/node_modules/smart-buffer/LICENSE +0 -20
- package/dist/node_modules/smart-buffer/build/smartbuffer.js +0 -1233
- package/dist/node_modules/smart-buffer/build/utils.js +0 -108
- package/dist/node_modules/smart-buffer/package.json +0 -79
- package/dist/node_modules/socks/.eslintrc.cjs +0 -11
- package/dist/node_modules/socks/.prettierrc.yaml +0 -7
- package/dist/node_modules/socks/LICENSE +0 -20
- package/dist/node_modules/socks/build/client/socksclient.js +0 -793
- package/dist/node_modules/socks/build/common/constants.js +0 -108
- package/dist/node_modules/socks/build/common/helpers.js +0 -167
- package/dist/node_modules/socks/build/common/receivebuffer.js +0 -43
- package/dist/node_modules/socks/build/common/util.js +0 -25
- package/dist/node_modules/socks/build/index.js +0 -18
- package/dist/node_modules/socks/package.json +0 -58
- package/dist/node_modules/socks-proxy-agent/LICENSE +0 -22
- package/dist/node_modules/socks-proxy-agent/dist/index.js +0 -195
- package/dist/node_modules/socks-proxy-agent/package.json +0 -142
- package/dist/node_modules/ssri/lib/index.js +0 -550
- package/dist/node_modules/ssri/package.json +0 -66
- package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/package.json +0 -3
- package/dist/node_modules/tar/node_modules/yallist/dist/esm/package.json +0 -3
- package/dist/node_modules/tar/node_modules/yallist/package.json +0 -68
- package/dist/node_modules/yallist/LICENSE +0 -15
- package/dist/node_modules/yallist/iterator.js +0 -8
- package/dist/node_modules/yallist/yallist.js +0 -426
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.js +0 -0
- /package/dist/node_modules/{balanced-match → yallist}/dist/commonjs/package.json +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.js +0 -0
- /package/dist/node_modules/{balanced-match → yallist}/dist/esm/package.json +0 -0
|
@@ -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
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const get = require('./get.js')
|
|
4
|
-
const put = require('./put.js')
|
|
5
|
-
const rm = require('./rm.js')
|
|
6
|
-
const verify = require('./verify.js')
|
|
7
|
-
const { clearMemoized } = require('./memoization.js')
|
|
8
|
-
const tmp = require('./util/tmp.js')
|
|
9
|
-
const index = require('./entry-index.js')
|
|
10
|
-
|
|
11
|
-
module.exports.index = {}
|
|
12
|
-
module.exports.index.compact = index.compact
|
|
13
|
-
module.exports.index.insert = index.insert
|
|
14
|
-
|
|
15
|
-
module.exports.ls = index.ls
|
|
16
|
-
module.exports.ls.stream = index.lsStream
|
|
17
|
-
|
|
18
|
-
module.exports.get = get
|
|
19
|
-
module.exports.get.byDigest = get.byDigest
|
|
20
|
-
module.exports.get.stream = get.stream
|
|
21
|
-
module.exports.get.stream.byDigest = get.stream.byDigest
|
|
22
|
-
module.exports.get.copy = get.copy
|
|
23
|
-
module.exports.get.copy.byDigest = get.copy.byDigest
|
|
24
|
-
module.exports.get.info = get.info
|
|
25
|
-
module.exports.get.hasContent = get.hasContent
|
|
26
|
-
|
|
27
|
-
module.exports.put = put
|
|
28
|
-
module.exports.put.stream = put.stream
|
|
29
|
-
|
|
30
|
-
module.exports.rm = rm.entry
|
|
31
|
-
module.exports.rm.all = rm.all
|
|
32
|
-
module.exports.rm.entry = module.exports.rm
|
|
33
|
-
module.exports.rm.content = rm.content
|
|
34
|
-
|
|
35
|
-
module.exports.clearMemoized = clearMemoized
|
|
36
|
-
|
|
37
|
-
module.exports.tmp = {}
|
|
38
|
-
module.exports.tmp.mkdir = tmp.mkdir
|
|
39
|
-
module.exports.tmp.withTmp = tmp.withTmp
|
|
40
|
-
|
|
41
|
-
module.exports.verify = verify
|
|
42
|
-
module.exports.verify.lastRun = verify.lastRun
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { LRUCache } = require('lru-cache')
|
|
4
|
-
|
|
5
|
-
const MEMOIZED = new LRUCache({
|
|
6
|
-
max: 500,
|
|
7
|
-
maxSize: 50 * 1024 * 1024, // 50MB
|
|
8
|
-
ttl: 3 * 60 * 1000, // 3 minutes
|
|
9
|
-
sizeCalculation: (entry, key) => key.startsWith('key:') ? entry.data.length : entry.length,
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
module.exports.clearMemoized = clearMemoized
|
|
13
|
-
|
|
14
|
-
function clearMemoized () {
|
|
15
|
-
const old = {}
|
|
16
|
-
MEMOIZED.forEach((v, k) => {
|
|
17
|
-
old[k] = v
|
|
18
|
-
})
|
|
19
|
-
MEMOIZED.clear()
|
|
20
|
-
return old
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
module.exports.put = put
|
|
24
|
-
|
|
25
|
-
function put (cache, entry, data, opts) {
|
|
26
|
-
pickMem(opts).set(`key:${cache}:${entry.key}`, { entry, data })
|
|
27
|
-
putDigest(cache, entry.integrity, data, opts)
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
module.exports.put.byDigest = putDigest
|
|
31
|
-
|
|
32
|
-
function putDigest (cache, integrity, data, opts) {
|
|
33
|
-
pickMem(opts).set(`digest:${cache}:${integrity}`, data)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
module.exports.get = get
|
|
37
|
-
|
|
38
|
-
function get (cache, key, opts) {
|
|
39
|
-
return pickMem(opts).get(`key:${cache}:${key}`)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
module.exports.get.byDigest = getDigest
|
|
43
|
-
|
|
44
|
-
function getDigest (cache, integrity, opts) {
|
|
45
|
-
return pickMem(opts).get(`digest:${cache}:${integrity}`)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
class ObjProxy {
|
|
49
|
-
constructor (obj) {
|
|
50
|
-
this.obj = obj
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
get (key) {
|
|
54
|
-
return this.obj[key]
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
set (key, val) {
|
|
58
|
-
this.obj[key] = val
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function pickMem (opts) {
|
|
63
|
-
if (!opts || !opts.memoize) {
|
|
64
|
-
return MEMOIZED
|
|
65
|
-
} else if (opts.memoize.get && opts.memoize.set) {
|
|
66
|
-
return opts.memoize
|
|
67
|
-
} else if (typeof opts.memoize === 'object') {
|
|
68
|
-
return new ObjProxy(opts.memoize)
|
|
69
|
-
} else {
|
|
70
|
-
return MEMOIZED
|
|
71
|
-
}
|
|
72
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const index = require('./entry-index')
|
|
4
|
-
const memo = require('./memoization')
|
|
5
|
-
const write = require('./content/write')
|
|
6
|
-
const Flush = require('minipass-flush')
|
|
7
|
-
const { PassThrough } = require('minipass-collect')
|
|
8
|
-
const Pipeline = require('minipass-pipeline')
|
|
9
|
-
|
|
10
|
-
const putOpts = (opts) => ({
|
|
11
|
-
algorithms: ['sha512'],
|
|
12
|
-
...opts,
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
module.exports = putData
|
|
16
|
-
|
|
17
|
-
async function putData (cache, key, data, opts = {}) {
|
|
18
|
-
const { memoize } = opts
|
|
19
|
-
opts = putOpts(opts)
|
|
20
|
-
const res = await write(cache, data, opts)
|
|
21
|
-
const entry = await index.insert(cache, key, res.integrity, { ...opts, size: res.size })
|
|
22
|
-
if (memoize) {
|
|
23
|
-
memo.put(cache, entry, data, opts)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return res.integrity
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
module.exports.stream = putStream
|
|
30
|
-
|
|
31
|
-
function putStream (cache, key, opts = {}) {
|
|
32
|
-
const { memoize } = opts
|
|
33
|
-
opts = putOpts(opts)
|
|
34
|
-
let integrity
|
|
35
|
-
let size
|
|
36
|
-
let error
|
|
37
|
-
|
|
38
|
-
let memoData
|
|
39
|
-
const pipeline = new Pipeline()
|
|
40
|
-
// first item in the pipeline is the memoizer, because we need
|
|
41
|
-
// that to end first and get the collected data.
|
|
42
|
-
if (memoize) {
|
|
43
|
-
const memoizer = new PassThrough().on('collect', data => {
|
|
44
|
-
memoData = data
|
|
45
|
-
})
|
|
46
|
-
pipeline.push(memoizer)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// contentStream is a write-only, not a passthrough
|
|
50
|
-
// no data comes out of it.
|
|
51
|
-
const contentStream = write.stream(cache, opts)
|
|
52
|
-
.on('integrity', (int) => {
|
|
53
|
-
integrity = int
|
|
54
|
-
})
|
|
55
|
-
.on('size', (s) => {
|
|
56
|
-
size = s
|
|
57
|
-
})
|
|
58
|
-
.on('error', (err) => {
|
|
59
|
-
error = err
|
|
60
|
-
})
|
|
61
|
-
|
|
62
|
-
pipeline.push(contentStream)
|
|
63
|
-
|
|
64
|
-
// last but not least, we write the index and emit hash and size,
|
|
65
|
-
// and memoize if we're doing that
|
|
66
|
-
pipeline.push(new Flush({
|
|
67
|
-
async flush () {
|
|
68
|
-
if (!error) {
|
|
69
|
-
const entry = await index.insert(cache, key, integrity, { ...opts, size })
|
|
70
|
-
if (memoize && memoData) {
|
|
71
|
-
memo.put(cache, entry, memoData, opts)
|
|
72
|
-
}
|
|
73
|
-
pipeline.emit('integrity', integrity)
|
|
74
|
-
pipeline.emit('size', size)
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
}))
|
|
78
|
-
|
|
79
|
-
return pipeline
|
|
80
|
-
}
|