@yanglaofish/fishtools 0.5.2 → 0.5.3
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/README.md +23 -11
- package/manual/README.md +23 -11
- package/manual/docs/deployment.md +3 -3
- package/manual/docs/examples/action-plugin/package.json +1 -1
- package/manual/docs/plugin-development.md +15 -4
- package/manual/docs/releases.md +24 -0
- package/manual/docs/superpowers/plans/2026-10-13-command-shortcuts.md +3 -2
- package/manual/docs/superpowers/plans/2026-10-13-global-plugins.md +56 -0
- package/manual/docs/superpowers/plans/2026-10-13-tui-readable-sessions.md +21 -0
- package/manual/docs/superpowers/reviews/2026-10-13-0.5.3-review.md +28 -0
- package/manual/docs/superpowers/reviews/2026-10-13-command-shortcuts-review.md +7 -0
- package/manual/docs/superpowers/reviews/2026-10-13-tui-sessions-review.md +55 -0
- package/manual/docs/superpowers/specs/2026-10-13-issue-4-workflow-menu.md +23 -0
- package/manual/docs/superpowers/specs/2026-10-13-issue-5-results-and-history.md +20 -0
- package/manual/docs/terminal-commands.md +8 -0
- package/manual/docs/verification.md +30 -0
- package/manual/packages/core/README.md +2 -0
- package/manual/packages/core/package.json +1 -1
- package/manual/packages/core/src/application.js +100 -51
- package/manual/packages/core/src/development-watch-worker.js +10 -1
- package/manual/packages/core/src/development.js +1 -1
- package/manual/packages/core/src/plugin-catalog.js +42 -0
- package/manual/packages/core/src/version.js +1 -1
- package/manual/packages/fst-cli/README.md +4 -0
- package/manual/packages/fst-cli/bin/fst.js +7 -6
- package/manual/packages/fst-cli/package.json +1 -1
- package/manual/packages/fst-cli/src/development.js +6 -1
- package/manual/packages/fst-cli/src/terminal/command-menu.js +8 -3
- package/manual/packages/fst-cli/src/terminal/navigation.js +2 -0
- package/manual/packages/fst-cli/src/terminal/presentation.js +4 -3
- package/manual/packages/fst-cli/src/terminal/run-feed.js +69 -13
- package/manual/packages/fst-cli/src/terminal/run-presentation.js +55 -12
- package/manual/packages/fst-cli/src/terminal/run-viewer.js +26 -10
- package/manual/packages/fst-cli/src/terminal/session-history.js +82 -0
- package/manual/packages/fst-cli/src/terminal/session.js +119 -40
- package/manual/packages/fst-cli/src/terminal/view.js +31 -8
- package/manual/packages/fst-cli/src/terminal/workflow-menu.js +14 -9
- package/manual/packages/fst-devtools/package.json +2 -2
- package/manual/packages/fst-devtools/src/plugin-tools.js +1 -1
- package/manual/packages/fst-logs/README.md +23 -2
- package/manual/packages/fst-logs/package.json +2 -1
- package/manual/packages/fst-logs/src/file-identity.js +23 -0
- package/manual/packages/fst-logs/src/markdown-log.js +4 -3
- package/manual/packages/fst-logs/src/run-logs.js +3 -2
- package/manual/packages/fst-logs/src/session-history.js +180 -0
- package/manual/packages/fst-platform/README.md +4 -0
- package/manual/packages/fst-platform/package.json +3 -3
- package/manual/packages/fst-platform/src/process.js +4 -1
- package/manual/packages/fst-platform/src/shell.js +46 -1
- package/manual/packages/fst-plugin/package.json +1 -1
- package/manual/packages/fst-plugin/src/host.js +31 -23
- package/manual/packages/fst-workflow/package.json +1 -1
- package/manual/packages/fst-workflow/src/engine.js +1 -1
- package/manual/packages/fst-workspace/README.md +2 -0
- package/manual/packages/fst-workspace/package.json +2 -1
- package/manual/packages/fst-workspace/src/plugin-registry.js +58 -0
- package/manual/packages/fst-workspace/src/plugins.js +7 -4
- package/manual/packages/fst-workspace/src/workflows.js +5 -3
- package/manual/packages/pack/package.json +3 -3
- package/manual/packages/pack/runtime-cache.js +26 -0
- package/manual/packages/pack/runtime.js +6 -10
- package/manual/plugins/commands/package.json +1 -1
- package/node_modules/@mytools/commands/package.json +1 -1
- package/node_modules/@mytools/core/README.md +2 -0
- package/node_modules/@mytools/core/package.json +1 -1
- package/node_modules/@mytools/core/src/application.js +100 -51
- package/node_modules/@mytools/core/src/development-watch-worker.js +10 -1
- package/node_modules/@mytools/core/src/development.js +1 -1
- package/node_modules/@mytools/core/src/plugin-catalog.js +42 -0
- package/node_modules/@mytools/core/src/version.js +1 -1
- package/node_modules/@mytools/fst-cli/README.md +4 -0
- package/node_modules/@mytools/fst-cli/bin/fst.js +7 -6
- package/node_modules/@mytools/fst-cli/package.json +1 -1
- package/node_modules/@mytools/fst-cli/src/development.js +6 -1
- package/node_modules/@mytools/fst-cli/src/terminal/command-menu.js +8 -3
- package/node_modules/@mytools/fst-cli/src/terminal/navigation.js +2 -0
- package/node_modules/@mytools/fst-cli/src/terminal/presentation.js +4 -3
- package/node_modules/@mytools/fst-cli/src/terminal/run-feed.js +69 -13
- package/node_modules/@mytools/fst-cli/src/terminal/run-presentation.js +55 -12
- package/node_modules/@mytools/fst-cli/src/terminal/run-viewer.js +26 -10
- package/node_modules/@mytools/fst-cli/src/terminal/session-history.js +82 -0
- package/node_modules/@mytools/fst-cli/src/terminal/session.js +119 -40
- package/node_modules/@mytools/fst-cli/src/terminal/view.js +31 -8
- package/node_modules/@mytools/fst-cli/src/terminal/workflow-menu.js +14 -9
- package/node_modules/@mytools/fst-devtools/package.json +2 -2
- package/node_modules/@mytools/fst-devtools/src/plugin-tools.js +1 -1
- package/node_modules/@mytools/fst-logs/README.md +23 -2
- package/node_modules/@mytools/fst-logs/package.json +2 -1
- package/node_modules/@mytools/fst-logs/src/file-identity.js +23 -0
- package/node_modules/@mytools/fst-logs/src/markdown-log.js +4 -3
- package/node_modules/@mytools/fst-logs/src/run-logs.js +3 -2
- package/node_modules/@mytools/fst-logs/src/session-history.js +180 -0
- package/node_modules/@mytools/fst-platform/README.md +4 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/LICENSE +21 -0
- package/node_modules/{undici/docs/docs/index.md → @mytools/fst-platform/node_modules/undici/README.md} +85 -137
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Agent.md +84 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/BalancedPool.md +99 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/CacheStorage.md +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/CacheStore.md +164 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Client.md +288 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ClientStats.md +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Connector.md +115 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ContentType.md +57 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Cookies.md +128 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Debug.md +62 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +317 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Dispatcher.md +1393 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +159 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Errors.md +49 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/EventSource.md +45 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Fetch.md +60 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/GlobalInstallation.md +139 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/H2CClient.md +263 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockAgent.md +603 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockCallHistory.md +197 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +43 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockClient.md +81 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockErrors.md +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockPool.md +555 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Pool.md +84 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/PoolStats.md +35 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ProxyAgent.md +229 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RedirectHandler.md +93 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RetryAgent.md +50 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RetryHandler.md +118 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RoundRobinPool.md +145 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/SnapshotAgent.md +616 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +275 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Util.md +25 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/WebSocket.md +141 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/api-lifecycle.md +91 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/client-certificate.md +64 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/docs/docs/best-practices/crawling.md +1 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/mocking-request.md +190 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/proxy.md +127 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/docs/docs/best-practices/undici-vs-builtin-fetch.md +8 -10
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/writing-tests.md +63 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index-fetch.js +65 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index.d.ts +3 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index.js +234 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/abort-signal.js +59 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-connect.js +110 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-pipeline.js +252 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-request.js +214 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-stream.js +209 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-upgrade.js +111 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/index.js +7 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/readable.js +580 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/cache/memory-cache-store.js +3 -3
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/cache/sqlite-cache-store.js +1 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/connect.js +153 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/constants.js +143 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/diagnostics.js +227 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/errors.js +477 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/request.js +485 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/symbols.js +75 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/tree.js +160 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/util.js +992 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/agent.js +158 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/balanced-pool.js +221 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client-h1.js +1746 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client-h2.js +1060 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client.js +668 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/dispatcher-base.js +184 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/dispatcher.js +48 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +146 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/h2c-client.js +4 -4
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/pool-base.js +214 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/pool.js +118 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/proxy-agent.js +319 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/round-robin-pool.js +10 -32
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/socks5-proxy-agent.js +63 -153
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/global.js +59 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/cache-handler.js +7 -49
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/cache-revalidation-handler.js +0 -10
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/decorator-handler.js +67 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/deduplication-handler.js +10 -29
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/redirect-handler.js +238 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/retry-handler.js +504 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/unwrap-handler.js +106 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/wrap-handler.js +105 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/cache.js +26 -79
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/decompress.js +3 -13
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/deduplicate.js +4 -5
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/dns.js +571 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/dump.js +99 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/redirect.js +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/response-error.js +95 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/retry.js +19 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/constants.js +531 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/utils.js +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-agent.js +232 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/mock-call-history.js +1 -1
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-client.js +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-errors.js +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-interceptor.js +209 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-pool.js +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-symbols.js +32 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-utils.js +486 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-agent.js +7 -25
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-recorder.js +3 -38
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/cache.js +10 -92
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/util/promise.js +28 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/runtime-features.js +34 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/util/timers.js +425 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/cache.js +864 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/util.js +45 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/constants.js +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/index.js +199 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/parse.js +314 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/util.js +352 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/eventsource-stream.js +494 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/eventsource.js +501 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/util.js +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/LICENSE +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/body.js +509 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/constants.js +131 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/data-url.js +596 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/formdata-parser.js +586 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/formdata.js +259 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/global.js +40 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/headers.js +719 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/index.js +2413 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/request.js +1115 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/response.js +641 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/util.js +1522 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/infra/index.js +1 -16
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/webidl/index.js +21 -7
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/connection.js +339 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/constants.js +126 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/events.js +331 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/frame.js +133 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/receiver.js +507 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/sender.js +109 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/websocket/stream/websocketerror.js +10 -13
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/websocket/stream/websocketstream.js +14 -29
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/util.js +347 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/websocket.js +758 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/package.json +152 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/scripts/strip-comments.js +10 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/README.md +6 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/agent.d.ts +32 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/api.d.ts +43 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/balanced-pool.d.ts +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/cache.d.ts +36 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/client.d.ts +139 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/connector.d.ts +36 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/content-type.d.ts +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/cookies.d.ts +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/diagnostics-channel.d.ts +74 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/dispatcher.d.ts +275 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/errors.d.ts +177 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/eventsource.d.ts +66 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/fetch.d.ts +231 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/formdata.d.ts +114 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/global-dispatcher.d.ts +9 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/global-origin.d.ts +7 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/h2c-client.d.ts +6 -6
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/handlers.d.ts +14 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/header.d.ts +160 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/index.d.ts +91 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/interceptors.d.ts +82 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-agent.d.ts +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-client.d.ts +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-errors.d.ts +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-interceptor.d.ts +94 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-pool.d.ts +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/patch.d.ts +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/pool-stats.d.ts +19 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/pool.d.ts +41 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/proxy-agent.d.ts +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/readable.d.ts +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/retry-agent.d.ts +8 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/retry-handler.d.ts +125 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/round-robin-pool.d.ts +2 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/snapshot-agent.d.ts +0 -4
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/socks5-proxy-agent.d.ts +2 -4
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/util.d.ts +18 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/webidl.d.ts +347 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/websocket.d.ts +188 -0
- package/node_modules/@mytools/fst-platform/package.json +3 -3
- package/node_modules/@mytools/fst-platform/src/process.js +4 -1
- package/node_modules/@mytools/fst-platform/src/shell.js +46 -1
- package/node_modules/@mytools/fst-plugin/package.json +1 -1
- package/node_modules/@mytools/fst-plugin/src/host.js +31 -23
- package/node_modules/@mytools/fst-workflow/package.json +1 -1
- package/node_modules/@mytools/fst-workflow/src/engine.js +1 -1
- package/node_modules/@mytools/fst-workspace/README.md +2 -0
- package/node_modules/@mytools/fst-workspace/package.json +2 -1
- package/node_modules/@mytools/fst-workspace/src/plugin-registry.js +58 -0
- package/node_modules/@mytools/fst-workspace/src/plugins.js +7 -4
- package/node_modules/@mytools/fst-workspace/src/workflows.js +5 -3
- package/node_modules/@mytools/pack/package.json +3 -3
- package/node_modules/@mytools/pack/runtime-cache.js +26 -0
- package/node_modules/@mytools/pack/runtime.js +6 -10
- package/node_modules/@mytools/web/public/THIRD_PARTY_NOTICES.txt +953 -963
- package/node_modules/@npmcli/agent/lib/agents.js +0 -10
- package/node_modules/@npmcli/agent/package.json +12 -11
- package/node_modules/@npmcli/arborist/README.md +2 -2
- package/node_modules/@npmcli/arborist/bin/index.js +2 -1
- package/node_modules/@npmcli/arborist/bin/shrinkwrap.js +7 -0
- package/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js +25 -159
- package/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js +49 -11
- package/node_modules/@npmcli/arborist/lib/arborist/load-actual.js +0 -67
- package/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js +37 -5
- package/node_modules/@npmcli/arborist/lib/arborist/rebuild.js +8 -15
- package/node_modules/@npmcli/arborist/lib/arborist/reify.js +42 -59
- package/node_modules/@npmcli/arborist/lib/consistent-resolve.js +1 -1
- package/node_modules/@npmcli/arborist/lib/diff.js +22 -17
- package/node_modules/@npmcli/arborist/lib/edge.js +2 -22
- package/node_modules/@npmcli/arborist/lib/index.js +0 -2
- package/node_modules/@npmcli/arborist/lib/isolated-classes.js +1 -4
- package/node_modules/@npmcli/arborist/lib/node.js +9 -13
- package/node_modules/@npmcli/arborist/lib/place-dep.js +0 -6
- package/node_modules/@npmcli/arborist/lib/printable.js +5 -0
- package/node_modules/@npmcli/arborist/lib/shrinkwrap.js +32 -55
- package/node_modules/@npmcli/arborist/package.json +26 -32
- package/node_modules/@npmcli/fs/lib/move-file.js +5 -5
- package/node_modules/@npmcli/fs/package.json +5 -5
- package/node_modules/@npmcli/git/package.json +12 -13
- package/node_modules/@npmcli/installed-package-contents/package.json +7 -7
- package/node_modules/@npmcli/map-workspaces/package.json +7 -7
- package/node_modules/@npmcli/metavuln-calculator/package.json +16 -10
- package/node_modules/@npmcli/name-from-folder/package.json +16 -13
- package/node_modules/@npmcli/node-gyp/package.json +5 -5
- package/node_modules/@npmcli/package-json/lib/index.js +1 -2
- package/node_modules/@npmcli/package-json/lib/normalize.js +22 -23
- package/node_modules/@npmcli/package-json/package.json +10 -11
- package/node_modules/@npmcli/promise-spawn/README.md +2 -1
- package/node_modules/@npmcli/promise-spawn/package.json +5 -5
- package/node_modules/@npmcli/redact/package.json +4 -4
- package/node_modules/@npmcli/run-script/lib/is-server-package.js +11 -0
- package/node_modules/@npmcli/run-script/lib/make-spawn-args.js +6 -5
- package/node_modules/@npmcli/run-script/lib/run-script-pkg.js +13 -4
- package/node_modules/@npmcli/run-script/lib/run-script.js +2 -1
- package/node_modules/@npmcli/run-script/package.json +11 -12
- package/node_modules/@sigstore/bundle/README.md +1 -1
- package/node_modules/@sigstore/bundle/dist/error.js +0 -1
- package/node_modules/@sigstore/bundle/package.json +2 -2
- package/node_modules/@sigstore/core/README.md +1 -1
- package/node_modules/@sigstore/core/dist/asn1/length.js +1 -12
- package/node_modules/@sigstore/core/dist/asn1/obj.js +7 -25
- package/node_modules/@sigstore/core/dist/asn1/parse.js +5 -24
- package/node_modules/@sigstore/core/package.json +2 -2
- package/node_modules/@sigstore/sign/README.md +1 -1
- package/node_modules/@sigstore/sign/dist/signer/fulcio/ephemeral.js +1 -1
- package/node_modules/@sigstore/sign/package.json +9 -9
- package/node_modules/@sigstore/tuf/README.md +1 -1
- package/node_modules/@sigstore/tuf/package.json +4 -4
- package/node_modules/@sigstore/tuf/seeds.json +1 -1
- package/node_modules/@sigstore/verify/README.md +1 -1
- package/node_modules/@sigstore/verify/dist/bundle/dsse.d.ts +0 -1
- package/node_modules/@sigstore/verify/dist/bundle/dsse.js +0 -6
- package/node_modules/@sigstore/verify/dist/bundle/message.d.ts +0 -1
- package/node_modules/@sigstore/verify/dist/bundle/message.js +0 -5
- package/node_modules/@sigstore/verify/dist/policy.d.ts +1 -1
- package/node_modules/@sigstore/verify/dist/policy.js +2 -0
- package/node_modules/@sigstore/verify/dist/shared.types.d.ts +1 -6
- package/node_modules/@sigstore/verify/dist/tlog/checkpoint.js +3 -17
- package/node_modules/@sigstore/verify/dist/tlog/hashedrekord.js +4 -4
- package/node_modules/@sigstore/verify/dist/tlog/index.js +1 -13
- package/node_modules/@sigstore/verify/dist/tlog/merkle.js +1 -12
- package/node_modules/@sigstore/verify/dist/verifier.js +5 -13
- package/node_modules/@sigstore/verify/package.json +5 -5
- package/node_modules/@tufjs/models/package.json +3 -3
- package/node_modules/abbrev/package.json +8 -9
- package/node_modules/agent-base/dist/helpers.d.ts +5 -0
- package/node_modules/agent-base/dist/helpers.d.ts.map +1 -1
- package/node_modules/agent-base/dist/helpers.js +34 -5
- package/node_modules/agent-base/dist/helpers.js.map +1 -1
- package/node_modules/agent-base/dist/index.d.ts +5 -1
- package/node_modules/agent-base/dist/index.d.ts.map +1 -1
- package/node_modules/agent-base/dist/index.js +40 -8
- package/node_modules/agent-base/dist/index.js.map +1 -1
- package/node_modules/agent-base/package.json +12 -12
- package/node_modules/bin-links/README.md +4 -5
- package/node_modules/bin-links/lib/fix-bin.js +1 -3
- package/node_modules/bin-links/lib/index.js +16 -8
- package/node_modules/bin-links/lib/link-mans.js +53 -0
- package/node_modules/bin-links/package.json +12 -11
- package/node_modules/cacache/lib/content/write.js +0 -2
- package/node_modules/cacache/lib/entry-index.js +0 -3
- package/node_modules/cacache/lib/rm.js +0 -1
- package/node_modules/cacache/lib/util/tmp.js +1 -5
- package/node_modules/cacache/lib/verify.js +2 -2
- package/node_modules/cacache/package.json +7 -7
- package/node_modules/cmd-shim/lib/index.js +32 -67
- package/node_modules/cmd-shim/package.json +5 -5
- package/node_modules/hosted-git-info/README.md +1 -1
- package/node_modules/hosted-git-info/lib/parse-url.js +3 -1
- package/node_modules/hosted-git-info/package.json +4 -4
- package/node_modules/http-proxy-agent/dist/index.d.ts +5 -8
- package/node_modules/http-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/http-proxy-agent/dist/index.js +42 -26
- package/node_modules/http-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/http-proxy-agent/package.json +14 -15
- package/node_modules/https-proxy-agent/dist/index.d.ts +5 -9
- package/node_modules/https-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/https-proxy-agent/dist/index.js +44 -98
- package/node_modules/https-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +3 -0
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts.map +1 -1
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.js +10 -3
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -1
- package/node_modules/https-proxy-agent/package.json +15 -16
- package/node_modules/ignore-walk/package.json +4 -4
- package/node_modules/ini/package.json +5 -5
- package/node_modules/ip-address/README.md +70 -70
- package/node_modules/ip-address/dist/ipv6.js +7 -4
- package/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
- package/node_modules/ip-address/dist/v6/constants.js +3 -0
- package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/ip-address/package.json +2 -1
- package/node_modules/json-parse-even-better-errors/lib/index.js +1 -3
- package/node_modules/json-parse-even-better-errors/package.json +17 -13
- package/node_modules/make-fetch-happen/package.json +11 -11
- package/node_modules/minipass-fetch/package.json +4 -4
- package/node_modules/node-gyp/.release-please-manifest.json +1 -1
- package/node_modules/node-gyp/CHANGELOG.md +0 -102
- package/node_modules/node-gyp/README.md +2 -3
- package/node_modules/node-gyp/eslint.config.js +1 -4
- package/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
- package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +19 -14
- package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +2 -7
- package/node_modules/node-gyp/gyp/pyproject.toml +1 -1
- package/node_modules/node-gyp/lib/build.js +6 -18
- package/node_modules/node-gyp/lib/create-config-gypi.js +0 -5
- package/node_modules/node-gyp/lib/node-gyp.js +2 -9
- package/node_modules/node-gyp/lib/rebuild.js +3 -3
- package/node_modules/node-gyp/package.json +9 -11
- package/node_modules/nopt/README.md +4 -2
- package/node_modules/nopt/lib/debug.js +5 -0
- package/node_modules/nopt/lib/nopt-lib.js +43 -7
- package/node_modules/nopt/lib/nopt.js +4 -2
- package/node_modules/nopt/lib/type-defs.js +13 -8
- package/node_modules/nopt/package.json +17 -15
- package/node_modules/npm-bundled/package.json +6 -6
- package/node_modules/npm-install-checks/package.json +5 -5
- package/node_modules/npm-normalize-package-bin/package.json +16 -13
- package/node_modules/npm-package-arg/package.json +7 -7
- package/node_modules/npm-packlist/README.md +30 -45
- package/node_modules/npm-packlist/lib/index.js +47 -115
- package/node_modules/npm-packlist/package.json +8 -10
- package/node_modules/npm-pick-manifest/package.json +19 -15
- package/node_modules/npm-registry-fetch/lib/errors.js +3 -8
- package/node_modules/npm-registry-fetch/package.json +12 -12
- package/node_modules/pacote/lib/dir.js +5 -60
- package/node_modules/pacote/lib/fetcher.js +0 -4
- package/node_modules/pacote/lib/git.js +3 -11
- package/node_modules/pacote/lib/util/add-git-sha.js +1 -1
- package/node_modules/pacote/package.json +18 -19
- package/node_modules/parse-conflict-json/package.json +6 -6
- package/node_modules/proc-log/package.json +4 -4
- package/node_modules/read-cmd-shim/lib/index.js +1 -1
- package/node_modules/read-cmd-shim/package.json +18 -14
- package/node_modules/sigstore/README.md +1 -1
- package/node_modules/sigstore/package.json +10 -10
- package/node_modules/socks-proxy-agent/dist/index.d.ts +3 -1
- package/node_modules/socks-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/socks-proxy-agent/dist/index.js +43 -17
- package/node_modules/socks-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/socks-proxy-agent/package.json +15 -15
- package/node_modules/ssri/package.json +4 -4
- package/node_modules/tuf-js/dist/config.d.ts +2 -2
- package/node_modules/tuf-js/dist/fetcher.d.ts +4 -4
- package/node_modules/tuf-js/dist/fetcher.js +16 -55
- package/node_modules/tuf-js/dist/updater.js +2 -2
- package/node_modules/tuf-js/package.json +8 -8
- package/node_modules/undici/README.md +72 -405
- package/node_modules/undici/docs/docs/api/Agent.md +41 -252
- package/node_modules/undici/docs/docs/api/BalancedPool.md +48 -246
- package/node_modules/undici/docs/docs/api/CacheStorage.md +13 -171
- package/node_modules/undici/docs/docs/api/Client.md +139 -395
- package/node_modules/undici/docs/docs/api/Connector.md +35 -118
- package/node_modules/undici/docs/docs/api/ContentType.md +25 -65
- package/node_modules/undici/docs/docs/api/Cookies.md +47 -125
- package/node_modules/undici/docs/docs/api/Debug.md +31 -47
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +97 -409
- package/node_modules/undici/docs/docs/api/DispatchInterceptor.md +60 -0
- package/node_modules/undici/docs/docs/api/Dispatcher.md +1011 -500
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +96 -105
- package/node_modules/undici/docs/docs/api/Errors.md +28 -528
- package/node_modules/undici/docs/docs/api/EventSource.md +13 -326
- package/node_modules/undici/docs/docs/api/Fetch.md +24 -693
- package/node_modules/undici/docs/docs/api/MockAgent.md +264 -346
- package/node_modules/undici/docs/docs/api/MockClient.md +31 -153
- package/node_modules/undici/docs/docs/api/MockErrors.md +5 -56
- package/node_modules/undici/docs/docs/api/MockPool.md +253 -324
- package/node_modules/undici/docs/docs/api/Pool.md +41 -235
- package/node_modules/undici/docs/docs/api/PoolStats.md +13 -119
- package/node_modules/undici/docs/docs/api/ProxyAgent.md +81 -198
- package/node_modules/undici/docs/docs/api/RedirectHandler.md +58 -238
- package/node_modules/undici/docs/docs/api/RetryAgent.md +28 -119
- package/node_modules/undici/docs/docs/api/RetryHandler.md +78 -161
- package/node_modules/undici/docs/docs/api/Util.md +11 -68
- package/node_modules/undici/docs/docs/api/WebSocket.md +24 -509
- package/node_modules/undici/docs/docs/api/api-lifecycle.md +33 -101
- package/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -2
- package/node_modules/undici/docs/docs/best-practices/mocking-request.md +2 -58
- package/node_modules/undici/docs/docs/best-practices/proxy.md +1 -3
- package/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -45
- package/node_modules/undici/index-fetch.js +4 -34
- package/node_modules/undici/index.d.ts +1 -1
- package/node_modules/undici/index.js +20 -87
- package/node_modules/undici/lib/api/abort-signal.js +0 -2
- package/node_modules/undici/lib/api/api-connect.js +11 -15
- package/node_modules/undici/lib/api/api-pipeline.js +19 -33
- package/node_modules/undici/lib/api/api-request.js +59 -89
- package/node_modules/undici/lib/api/api-stream.js +64 -114
- package/node_modules/undici/lib/api/api-upgrade.js +13 -26
- package/node_modules/undici/lib/api/readable.js +87 -317
- package/node_modules/undici/lib/api/util.js +93 -0
- package/node_modules/undici/lib/core/connect.js +125 -77
- package/node_modules/undici/lib/core/constants.js +9 -11
- package/node_modules/undici/lib/core/diagnostics.js +129 -154
- package/node_modules/undici/lib/core/errors.js +50 -122
- package/node_modules/undici/lib/core/request.js +87 -172
- package/node_modules/undici/lib/core/symbols.js +2 -14
- package/node_modules/undici/lib/core/tree.js +2 -10
- package/node_modules/undici/lib/core/util.js +190 -481
- package/node_modules/undici/lib/dispatcher/agent.js +35 -83
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +38 -46
- package/node_modules/undici/lib/dispatcher/client-h1.js +199 -492
- package/node_modules/undici/lib/dispatcher/client-h2.js +380 -1409
- package/node_modules/undici/lib/dispatcher/client.js +130 -253
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +52 -50
- package/node_modules/undici/lib/dispatcher/dispatcher.js +24 -17
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +45 -75
- package/node_modules/undici/lib/dispatcher/fixed-queue.js +50 -68
- package/node_modules/undici/lib/dispatcher/pool-base.js +54 -153
- package/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
- package/node_modules/undici/lib/dispatcher/pool.js +16 -135
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +41 -175
- package/node_modules/undici/lib/dispatcher/retry-agent.js +0 -3
- package/node_modules/undici/lib/global.js +9 -59
- package/node_modules/undici/lib/handler/decorator-handler.js +15 -43
- package/node_modules/undici/lib/handler/redirect-handler.js +116 -127
- package/node_modules/undici/lib/handler/retry-handler.js +182 -398
- package/node_modules/undici/lib/interceptor/dns.js +47 -254
- package/node_modules/undici/lib/interceptor/dump.js +56 -32
- package/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
- package/node_modules/undici/lib/interceptor/redirect.js +14 -11
- package/node_modules/undici/lib/interceptor/response-error.js +22 -31
- package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/undici/lib/llhttp/constants.js +193 -446
- package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -11
- package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -11
- package/node_modules/undici/lib/llhttp/utils.js +12 -9
- package/node_modules/undici/lib/mock/mock-agent.js +22 -106
- package/node_modules/undici/lib/mock/mock-client.js +4 -13
- package/node_modules/undici/lib/mock/mock-errors.js +2 -3
- package/node_modules/undici/lib/mock/mock-interceptor.js +13 -33
- package/node_modules/undici/lib/mock/mock-pool.js +4 -13
- package/node_modules/undici/lib/mock/mock-symbols.js +1 -10
- package/node_modules/undici/lib/mock/mock-utils.js +51 -404
- package/node_modules/undici/lib/mock/pluralizer.js +29 -0
- package/node_modules/undici/lib/util/timers.js +9 -11
- package/node_modules/undici/lib/web/cache/cache.js +51 -63
- package/node_modules/undici/lib/web/cache/cachestorage.js +7 -13
- package/node_modules/undici/lib/web/cache/symbols.js +5 -0
- package/node_modules/undici/lib/web/cookies/index.js +18 -45
- package/node_modules/undici/lib/web/cookies/parse.js +149 -157
- package/node_modules/undici/lib/web/cookies/util.js +2 -4
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +9 -37
- package/node_modules/undici/lib/web/eventsource/eventsource.js +64 -108
- package/node_modules/undici/lib/web/eventsource/util.js +5 -28
- package/node_modules/undici/lib/web/fetch/body.js +148 -173
- package/node_modules/undici/lib/web/fetch/constants.js +6 -13
- package/node_modules/undici/lib/web/fetch/data-url.js +167 -19
- package/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
- package/node_modules/undici/lib/web/fetch/file.js +126 -0
- package/node_modules/undici/lib/web/fetch/formdata-parser.js +117 -229
- package/node_modules/undici/lib/web/fetch/formdata.js +65 -85
- package/node_modules/undici/lib/web/fetch/headers.js +108 -143
- package/node_modules/undici/lib/web/fetch/index.js +446 -627
- package/node_modules/undici/lib/web/fetch/request.js +115 -217
- package/node_modules/undici/lib/web/fetch/response.js +82 -110
- package/node_modules/undici/lib/web/fetch/symbols.js +9 -0
- package/node_modules/undici/lib/web/fetch/util.js +393 -291
- package/node_modules/undici/lib/web/fetch/webidl.js +695 -0
- package/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
- package/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
- package/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
- package/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
- package/node_modules/undici/lib/web/fileapi/util.js +391 -0
- package/node_modules/undici/lib/web/websocket/connection.js +160 -139
- package/node_modules/undici/lib/web/websocket/constants.js +10 -70
- package/node_modules/undici/lib/web/websocket/events.js +30 -49
- package/node_modules/undici/lib/web/websocket/frame.js +20 -51
- package/node_modules/undici/lib/web/websocket/receiver.js +87 -83
- package/node_modules/undici/lib/web/websocket/sender.js +13 -18
- package/node_modules/undici/lib/web/websocket/symbols.js +12 -0
- package/node_modules/undici/lib/web/websocket/util.js +90 -115
- package/node_modules/undici/lib/web/websocket/websocket.js +171 -359
- package/node_modules/undici/package.json +57 -49
- package/node_modules/undici/scripts/strip-comments.js +1 -3
- package/node_modules/undici/types/agent.d.ts +13 -12
- package/node_modules/undici/types/api.d.ts +26 -26
- package/node_modules/undici/types/balanced-pool.d.ts +12 -13
- package/node_modules/undici/types/client.d.ts +39 -98
- package/node_modules/undici/types/connector.d.ts +2 -5
- package/node_modules/undici/types/cookies.d.ts +1 -3
- package/node_modules/undici/types/diagnostics-channel.d.ts +11 -20
- package/node_modules/undici/types/dispatcher.d.ts +139 -136
- package/node_modules/undici/types/env-http-proxy-agent.d.ts +3 -4
- package/node_modules/undici/types/errors.d.ts +54 -86
- package/node_modules/undici/types/eventsource.d.ts +4 -9
- package/node_modules/undici/types/fetch.d.ts +25 -51
- package/node_modules/undici/types/file.d.ts +39 -0
- package/node_modules/undici/types/filereader.d.ts +54 -0
- package/node_modules/undici/types/formdata.d.ts +7 -7
- package/node_modules/undici/types/global-dispatcher.d.ts +4 -4
- package/node_modules/undici/types/global-origin.d.ts +5 -5
- package/node_modules/undici/types/handlers.d.ts +9 -10
- package/node_modules/undici/types/header.d.ts +1 -162
- package/node_modules/undici/types/index.d.ts +47 -69
- package/node_modules/undici/types/interceptors.d.ts +12 -62
- package/node_modules/undici/types/mock-agent.d.ts +27 -46
- package/node_modules/undici/types/mock-client.d.ts +4 -6
- package/node_modules/undici/types/mock-errors.d.ts +3 -3
- package/node_modules/undici/types/mock-interceptor.d.ts +21 -26
- package/node_modules/undici/types/mock-pool.d.ts +4 -6
- package/node_modules/undici/types/patch.d.ts +4 -0
- package/node_modules/undici/types/pool-stats.d.ts +8 -8
- package/node_modules/undici/types/pool.d.ts +14 -14
- package/node_modules/undici/types/proxy-agent.d.ts +6 -13
- package/node_modules/undici/types/readable.d.ts +16 -19
- package/node_modules/undici/types/retry-agent.d.ts +1 -1
- package/node_modules/undici/types/retry-handler.d.ts +9 -18
- package/node_modules/undici/types/util.d.ts +3 -3
- package/node_modules/undici/types/webidl.d.ts +32 -156
- package/node_modules/undici/types/websocket.d.ts +10 -48
- package/node_modules/validate-npm-package-name/package.json +4 -4
- package/node_modules/which/package.json +4 -4
- package/node_modules/write-file-atomic/package.json +4 -4
- package/package.json +56 -60
- package/node_modules/@npmcli/arborist/lib/npm-extension.js +0 -237
- package/node_modules/@npmcli/arborist/lib/package-extensions.js +0 -236
- package/node_modules/@npmcli/arborist/lib/patch.js +0 -111
- package/node_modules/@npmcli/arborist/lib/patched-dependencies.js +0 -168
- package/node_modules/cacache/lib/util/cache-dir.js +0 -29
- package/node_modules/diff/CONTRIBUTING.md +0 -28
- package/node_modules/diff/LICENSE +0 -29
- package/node_modules/diff/README.md +0 -388
- package/node_modules/diff/dist/diff.js +0 -1782
- package/node_modules/diff/dist/diff.min.js +0 -1
- package/node_modules/diff/eslint.config.mjs +0 -182
- package/node_modules/diff/libcjs/convert/dmp.d.ts +0 -8
- package/node_modules/diff/libcjs/convert/dmp.d.ts.map +0 -1
- package/node_modules/diff/libcjs/convert/dmp.js +0 -24
- package/node_modules/diff/libcjs/convert/xml.d.ts +0 -6
- package/node_modules/diff/libcjs/convert/xml.d.ts.map +0 -1
- package/node_modules/diff/libcjs/convert/xml.js +0 -34
- package/node_modules/diff/libcjs/diff/array.d.ts +0 -19
- package/node_modules/diff/libcjs/diff/array.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/array.js +0 -40
- package/node_modules/diff/libcjs/diff/base.d.ts +0 -20
- package/node_modules/diff/libcjs/diff/base.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/base.js +0 -265
- package/node_modules/diff/libcjs/diff/character.d.ts +0 -19
- package/node_modules/diff/libcjs/diff/character.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/character.js +0 -31
- package/node_modules/diff/libcjs/diff/css.d.ts +0 -18
- package/node_modules/diff/libcjs/diff/css.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/css.js +0 -34
- package/node_modules/diff/libcjs/diff/json.d.ts +0 -24
- package/node_modules/diff/libcjs/diff/json.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/json.js +0 -105
- package/node_modules/diff/libcjs/diff/line.d.ts +0 -24
- package/node_modules/diff/libcjs/diff/line.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/line.js +0 -89
- package/node_modules/diff/libcjs/diff/sentence.d.ts +0 -21
- package/node_modules/diff/libcjs/diff/sentence.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/sentence.js +0 -67
- package/node_modules/diff/libcjs/diff/word.d.ts +0 -35
- package/node_modules/diff/libcjs/diff/word.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/word.js +0 -312
- package/node_modules/diff/libcjs/index.d.ts +0 -20
- package/node_modules/diff/libcjs/index.d.ts.map +0 -1
- package/node_modules/diff/libcjs/index.js +0 -64
- package/node_modules/diff/libcjs/package.json +0 -1
- package/node_modules/diff/libcjs/patch/apply.d.ts +0 -62
- package/node_modules/diff/libcjs/patch/apply.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/apply.js +0 -267
- package/node_modules/diff/libcjs/patch/create.d.ts +0 -122
- package/node_modules/diff/libcjs/patch/create.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/create.js +0 -251
- package/node_modules/diff/libcjs/patch/line-endings.d.ts +0 -17
- package/node_modules/diff/libcjs/patch/line-endings.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/line-endings.js +0 -61
- package/node_modules/diff/libcjs/patch/parse.d.ts +0 -8
- package/node_modules/diff/libcjs/patch/parse.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/parse.js +0 -150
- package/node_modules/diff/libcjs/patch/reverse.d.ts +0 -9
- package/node_modules/diff/libcjs/patch/reverse.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/reverse.js +0 -37
- package/node_modules/diff/libcjs/types.d.ts +0 -213
- package/node_modules/diff/libcjs/types.d.ts.map +0 -1
- package/node_modules/diff/libcjs/types.js +0 -2
- package/node_modules/diff/libcjs/util/array.d.ts +0 -3
- package/node_modules/diff/libcjs/util/array.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/array.js +0 -21
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts +0 -2
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/distance-iterator.js +0 -40
- package/node_modules/diff/libcjs/util/params.d.ts +0 -4
- package/node_modules/diff/libcjs/util/params.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/params.js +0 -17
- package/node_modules/diff/libcjs/util/string.d.ts +0 -30
- package/node_modules/diff/libcjs/util/string.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/string.js +0 -200
- package/node_modules/diff/libesm/convert/dmp.d.ts +0 -8
- package/node_modules/diff/libesm/convert/dmp.d.ts.map +0 -1
- package/node_modules/diff/libesm/convert/dmp.js +0 -21
- package/node_modules/diff/libesm/convert/xml.d.ts +0 -6
- package/node_modules/diff/libesm/convert/xml.d.ts.map +0 -1
- package/node_modules/diff/libesm/convert/xml.js +0 -31
- package/node_modules/diff/libesm/diff/array.d.ts +0 -19
- package/node_modules/diff/libesm/diff/array.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/array.js +0 -16
- package/node_modules/diff/libesm/diff/base.d.ts +0 -20
- package/node_modules/diff/libesm/diff/base.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/base.js +0 -253
- package/node_modules/diff/libesm/diff/character.d.ts +0 -19
- package/node_modules/diff/libesm/diff/character.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/character.js +0 -7
- package/node_modules/diff/libesm/diff/css.d.ts +0 -18
- package/node_modules/diff/libesm/diff/css.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/css.js +0 -10
- package/node_modules/diff/libesm/diff/json.d.ts +0 -24
- package/node_modules/diff/libesm/diff/json.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/json.js +0 -78
- package/node_modules/diff/libesm/diff/line.d.ts +0 -24
- package/node_modules/diff/libesm/diff/line.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/line.js +0 -65
- package/node_modules/diff/libesm/diff/sentence.d.ts +0 -21
- package/node_modules/diff/libesm/diff/sentence.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/sentence.js +0 -43
- package/node_modules/diff/libesm/diff/word.d.ts +0 -35
- package/node_modules/diff/libesm/diff/word.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/word.js +0 -281
- package/node_modules/diff/libesm/index.d.ts +0 -20
- package/node_modules/diff/libesm/index.d.ts.map +0 -1
- package/node_modules/diff/libesm/index.js +0 -30
- package/node_modules/diff/libesm/package.json +0 -1
- package/node_modules/diff/libesm/patch/apply.d.ts +0 -62
- package/node_modules/diff/libesm/patch/apply.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/apply.js +0 -257
- package/node_modules/diff/libesm/patch/create.d.ts +0 -122
- package/node_modules/diff/libesm/patch/create.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/create.js +0 -228
- package/node_modules/diff/libesm/patch/line-endings.d.ts +0 -17
- package/node_modules/diff/libesm/patch/line-endings.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/line-endings.js +0 -44
- package/node_modules/diff/libesm/patch/parse.d.ts +0 -8
- package/node_modules/diff/libesm/patch/parse.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/parse.js +0 -147
- package/node_modules/diff/libesm/patch/reverse.d.ts +0 -9
- package/node_modules/diff/libesm/patch/reverse.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/reverse.js +0 -23
- package/node_modules/diff/libesm/types.d.ts +0 -213
- package/node_modules/diff/libesm/types.d.ts.map +0 -1
- package/node_modules/diff/libesm/types.js +0 -1
- package/node_modules/diff/libesm/util/array.d.ts +0 -3
- package/node_modules/diff/libesm/util/array.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/array.js +0 -17
- package/node_modules/diff/libesm/util/distance-iterator.d.ts +0 -2
- package/node_modules/diff/libesm/util/distance-iterator.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/distance-iterator.js +0 -37
- package/node_modules/diff/libesm/util/params.d.ts +0 -4
- package/node_modules/diff/libesm/util/params.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/params.js +0 -14
- package/node_modules/diff/libesm/util/string.d.ts +0 -30
- package/node_modules/diff/libesm/util/string.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/string.js +0 -184
- package/node_modules/diff/package.json +0 -130
- package/node_modules/diff/release-notes.md +0 -432
- package/node_modules/node-gyp/commitlint.config.mjs +0 -3
- package/node_modules/node-gyp/gyp/commitlint.config.js +0 -6
- package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake_test.py +0 -105
- package/node_modules/node-gyp/zizmor.yml +0 -5
- package/node_modules/proxy-agent-negotiate/dist/index.d.ts +0 -14
- package/node_modules/proxy-agent-negotiate/dist/index.d.ts.map +0 -1
- package/node_modules/proxy-agent-negotiate/dist/index.js +0 -35
- package/node_modules/proxy-agent-negotiate/dist/index.js.map +0 -1
- package/node_modules/proxy-agent-negotiate/package.json +0 -47
- package/node_modules/undici/docs/docs/api/CacheStore.md +0 -360
- package/node_modules/undici/docs/docs/api/ClientStats.md +0 -93
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +0 -121
- package/node_modules/undici/docs/docs/api/H2CClient.md +0 -385
- package/node_modules/undici/docs/docs/api/Interceptors.md +0 -419
- package/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -371
- package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -206
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +0 -239
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +0 -361
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +0 -256
- package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +0 -233
- package/node_modules/undici/docs/docs/getting-started.md +0 -281
- package/node_modules/undici/docs/docs/site.json +0 -125
- package/node_modules/undici/docs/docs/type-map.json +0 -79
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +0 -110
- package/node_modules/undici/types/dispatcher1-wrapper.d.ts +0 -7
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/core/socks5-client.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/core/socks5-utils.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/encoding/index.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/llhttp/constants.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/llhttp/utils.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-utils.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/date.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/stats.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/subresource-integrity/Readme.md +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/subresource-integrity/subresource-integrity.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/cache-interceptor.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/client-stats.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/mock-call-history.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/utility.d.ts +0 -0
|
@@ -161,16 +161,6 @@ module.exports = class Agent extends AgentBase {
|
|
|
161
161
|
return socket
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
keepSocketAlive (socket) {
|
|
165
|
-
const keepAlive = super.keepSocketAlive(socket)
|
|
166
|
-
|
|
167
|
-
if (keepAlive && this.#timeouts.idle) {
|
|
168
|
-
socket.setTimeout(this.#timeouts.idle)
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
return keepAlive
|
|
172
|
-
}
|
|
173
|
-
|
|
174
164
|
addRequest (request, options) {
|
|
175
165
|
const proxy = this.#getProxy(options)
|
|
176
166
|
// it would be better to call proxy.addRequest here but this causes the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@npmcli/agent",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "the http/https agent used by the npm cli",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -25,26 +25,27 @@
|
|
|
25
25
|
"lib/"
|
|
26
26
|
],
|
|
27
27
|
"engines": {
|
|
28
|
-
"node": "^
|
|
28
|
+
"node": "^20.17.0 || >=22.9.0"
|
|
29
29
|
},
|
|
30
30
|
"templateOSS": {
|
|
31
31
|
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
|
|
32
|
-
"version": "
|
|
32
|
+
"version": "4.30.0",
|
|
33
33
|
"publish": "true",
|
|
34
|
-
"updateNpm": false
|
|
34
|
+
"updateNpm": false,
|
|
35
|
+
"latestCiVersion": 24
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
|
-
"agent-base": "^
|
|
38
|
-
"http-proxy-agent": "^
|
|
39
|
-
"https-proxy-agent": "^
|
|
38
|
+
"agent-base": "^7.1.0",
|
|
39
|
+
"http-proxy-agent": "^7.0.0",
|
|
40
|
+
"https-proxy-agent": "^7.0.1",
|
|
40
41
|
"lru-cache": "^11.2.1",
|
|
41
|
-
"socks-proxy-agent": "^
|
|
42
|
+
"socks-proxy-agent": "^8.0.3"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
|
-
"@npmcli/eslint-config": "^
|
|
45
|
-
"@npmcli/template-oss": "
|
|
45
|
+
"@npmcli/eslint-config": "^6.0.0",
|
|
46
|
+
"@npmcli/template-oss": "4.30.0",
|
|
46
47
|
"ip-address": "^10.1.0",
|
|
47
|
-
"minipass-fetch": "^
|
|
48
|
+
"minipass-fetch": "^5.0.0",
|
|
48
49
|
"nock": "^14.0.3",
|
|
49
50
|
"tap": "^16.3.0"
|
|
50
51
|
},
|
|
@@ -60,7 +60,7 @@ arb.loadActual().then(tree => {
|
|
|
60
60
|
// tree is also stored at arb.virtualTree
|
|
61
61
|
})
|
|
62
62
|
|
|
63
|
-
// read just what the package-lock.json says
|
|
63
|
+
// read just what the package-lock.json/npm-shrinkwrap says
|
|
64
64
|
// This *also* loads the yarn.lock file, but that's only relevant
|
|
65
65
|
// when building the ideal tree.
|
|
66
66
|
arb.loadVirtual().then(tree => {
|
|
@@ -301,7 +301,7 @@ pruning nodes from the tree.
|
|
|
301
301
|
that the dep is brought in by a peer dep at some point, rather than a
|
|
302
302
|
normal non-peer dependency.
|
|
303
303
|
|
|
304
|
-
Note: `devOptional` is only set in the package-lock file if
|
|
304
|
+
Note: `devOptional` is only set in the shrinkwrap/package-lock file if
|
|
305
305
|
_neither_ `dev` nor `optional` are set, as it would be redundant.
|
|
306
306
|
|
|
307
307
|
## BIN
|
|
@@ -20,7 +20,8 @@ ${message && '\n' + message + '\n'}
|
|
|
20
20
|
* prune: prune the ideal tree and reify (like npm prune)
|
|
21
21
|
* ideal: generate and print the ideal tree
|
|
22
22
|
* actual: read and print the actual tree in node_modules
|
|
23
|
-
* virtual: read and print the virtual tree in the local
|
|
23
|
+
* virtual: read and print the virtual tree in the local shrinkwrap file
|
|
24
|
+
* shrinkwrap: load a local shrinkwrap and print its data
|
|
24
25
|
* audit: perform a security audit on project dependencies
|
|
25
26
|
* funding: query funding information in the local package tree. A second
|
|
26
27
|
positional argument after the path name can limit to a package name.
|
|
@@ -25,10 +25,6 @@ const debug = require('../debug.js')
|
|
|
25
25
|
const fromPath = require('../from-path.js')
|
|
26
26
|
const calcDepFlags = require('../calc-dep-flags.js')
|
|
27
27
|
const { isReleaseAgeExcluded, trustedSpecName } = require('../release-age-exclude.js')
|
|
28
|
-
const { resolvePatchedDependencies } = require('../patched-dependencies.js')
|
|
29
|
-
const PackageExtensions = require('../package-extensions.js')
|
|
30
|
-
const NpmExtension = require('../npm-extension.js')
|
|
31
|
-
const { hasExtensionFile } = require('../npm-extension.js')
|
|
32
28
|
const Shrinkwrap = require('../shrinkwrap.js')
|
|
33
29
|
const { defaultLockfileVersion } = Shrinkwrap
|
|
34
30
|
const Node = require('../node.js')
|
|
@@ -101,8 +97,6 @@ module.exports = cls => class IdealTreeBuilder extends cls {
|
|
|
101
97
|
#loadFailures = new Set()
|
|
102
98
|
#manifests = new Map()
|
|
103
99
|
#mutateTree = false
|
|
104
|
-
#packageExtensions = null
|
|
105
|
-
#npmExtension = null
|
|
106
100
|
#requestedTreeMutation = false
|
|
107
101
|
// a map of each module in a peer set to the thing that depended on
|
|
108
102
|
// that set of peers in the first place. Use a WeakMap so that we
|
|
@@ -181,21 +175,12 @@ module.exports = cls => class IdealTreeBuilder extends cls {
|
|
|
181
175
|
|
|
182
176
|
try {
|
|
183
177
|
await this.#initTree()
|
|
184
|
-
await this.#loadNpmExtension()
|
|
185
|
-
this.#loadPackageExtensions()
|
|
186
178
|
await this.#inflateAncientLockfile()
|
|
187
179
|
await this.#applyUserRequests(options)
|
|
188
180
|
await this.#buildDeps()
|
|
189
181
|
await this.#fixDepFlags()
|
|
190
182
|
await this.#pruneFailedOptional()
|
|
191
183
|
await this.#checkEngineAndPlatform()
|
|
192
|
-
await resolvePatchedDependencies(this.idealTree, {
|
|
193
|
-
path: this.path,
|
|
194
|
-
allowUnusedPatches: this.options.allowUnusedPatches,
|
|
195
|
-
rm: options.rm || [],
|
|
196
|
-
})
|
|
197
|
-
this.#warnWorkspacePackageExtensions()
|
|
198
|
-
this.#warnWorkspaceNpmExtension()
|
|
199
184
|
} finally {
|
|
200
185
|
timeEnd()
|
|
201
186
|
this.finishTracker('idealTree')
|
|
@@ -243,131 +228,6 @@ module.exports = cls => class IdealTreeBuilder extends cls {
|
|
|
243
228
|
}
|
|
244
229
|
}
|
|
245
230
|
|
|
246
|
-
// Load the root project's packageExtensions rule set.
|
|
247
|
-
// Only the workspace root is authoritative, matching the root-only model of overrides.
|
|
248
|
-
// The canonical hash is stashed on the lockfile meta so commit() can persist it.
|
|
249
|
-
#loadPackageExtensions () {
|
|
250
|
-
const rootPkg = this.idealTree.target.package
|
|
251
|
-
const lockedHash = this.idealTree.meta.packageExtensionsHash
|
|
252
|
-
this.#packageExtensions = new PackageExtensions(rootPkg.packageExtensions)
|
|
253
|
-
this.idealTree.meta.packageExtensionsHash = this.#packageExtensions.hash
|
|
254
|
-
|
|
255
|
-
// When the rule set has changed since the lockfile was written, the locked manifests for affected packages are stale.
|
|
256
|
-
// The locked manifest is the effective, already-extended manifest, so detach those nodes and rebuild them from fresh manifests under the current rules.
|
|
257
|
-
if (this.idealTree.meta.loadedFromDisk && lockedHash !== this.#packageExtensions.hash) {
|
|
258
|
-
for (const node of [...this.idealTree.inventory.values()]) {
|
|
259
|
-
if (node.isProjectRoot || node.isWorkspace || node.isTop) {
|
|
260
|
-
continue
|
|
261
|
-
}
|
|
262
|
-
// a node is affected if it carries provenance from the old rules or matches a current selector
|
|
263
|
-
const affected = node.packageExtensionsApplied ||
|
|
264
|
-
this.#packageExtensions.wouldMatch(node.packageName, node.version)
|
|
265
|
-
if (affected) {
|
|
266
|
-
for (const edge of node.edgesIn) {
|
|
267
|
-
this.#depsQueue.push(edge.from)
|
|
268
|
-
}
|
|
269
|
-
node.parent = null
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
// Apply a matching root packageExtension to a copy of a candidate manifest.
|
|
276
|
-
// Returns the possibly-extended manifest and the provenance to attach to the node.
|
|
277
|
-
// Workspace candidates are never extended; that warning is emitted separately.
|
|
278
|
-
#applyPackageExtension (pkg) {
|
|
279
|
-
if (!this.#packageExtensions?.present) {
|
|
280
|
-
return { pkg, applied: null }
|
|
281
|
-
}
|
|
282
|
-
const res = this.#packageExtensions.apply(pkg)
|
|
283
|
-
return res ? { pkg: res.pkg, applied: res.applied } : { pkg, applied: null }
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
// Load the root project's .npm-extension file and its transformManifest export.
|
|
287
|
-
// ignore-extension (and, via flatten, ignore-scripts) disables discovery and execution; the lockfile then carries no extension state.
|
|
288
|
-
// The selected file's hash is stashed on the lockfile meta so commit() can persist it and npm ci can detect stale extension state.
|
|
289
|
-
async #loadNpmExtension () {
|
|
290
|
-
const lockedHash = this.idealTree.meta.npmExtensionHash
|
|
291
|
-
// ignore-extension (and, via flatten, ignore-scripts) disables discovery and execution.
|
|
292
|
-
// Leave any locked extension state untouched so npm ci reifies the locked graph as-is and the lockfile stays internally consistent.
|
|
293
|
-
if (this.options.ignoreExtension) {
|
|
294
|
-
return
|
|
295
|
-
}
|
|
296
|
-
const ext = new NpmExtension({
|
|
297
|
-
root: this.idealTree.realpath,
|
|
298
|
-
extensionFile: this.options.extensionFile,
|
|
299
|
-
})
|
|
300
|
-
this.#npmExtension = ext
|
|
301
|
-
this.idealTree.meta.npmExtensionHash = ext.hash
|
|
302
|
-
if (ext.present) {
|
|
303
|
-
await ext.load()
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// When the extension file changed since the lockfile was written, locked manifests may no longer reflect its output.
|
|
307
|
-
// This also covers removal: a now-absent file hashes to null, which differs from the locked hash and reverts the previously transformed nodes.
|
|
308
|
-
// Arbitrary code has no selector to predict which packages it affects, so re-resolve any node that carried old provenance or that the current file now transforms.
|
|
309
|
-
if (this.idealTree.meta.loadedFromDisk && lockedHash !== ext.hash) {
|
|
310
|
-
for (const node of [...this.idealTree.inventory.values()]) {
|
|
311
|
-
if (node.isProjectRoot || node.isWorkspace || node.isTop || node.isLink) {
|
|
312
|
-
continue
|
|
313
|
-
}
|
|
314
|
-
// A node with old provenance carries an already-transformed manifest, so always refetch it.
|
|
315
|
-
// Otherwise probe the locked manifest (without caching, so the authoritative full-manifest fetch is not pre-seeded).
|
|
316
|
-
// The locked manifest carries every resolution-relevant field (name, version, dependencies, peer metadata); a transform that newly targets a node by a field not persisted in the lockfile is the documented edge that may need a manual re-lock.
|
|
317
|
-
const affected = node.npmExtensionApplied || ext.apply(node.package, { memoize: false })
|
|
318
|
-
if (affected) {
|
|
319
|
-
for (const edge of node.edgesIn) {
|
|
320
|
-
this.#depsQueue.push(edge.from)
|
|
321
|
-
}
|
|
322
|
-
node.parent = null
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
// Apply the root transformManifest to a copy of a candidate manifest, before any packageExtensions rule.
|
|
329
|
-
// Returns the possibly-transformed manifest and the provenance to attach to the node.
|
|
330
|
-
#applyNpmExtension (pkg) {
|
|
331
|
-
const res = this.#npmExtension?.apply(pkg)
|
|
332
|
-
return res ? { pkg: res.pkg, applied: res.applied } : { pkg, applied: null }
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
// Warn when packageExtensions appears in a non-root workspace, or when a root selector matches a workspace member.
|
|
336
|
-
// Workspace package manifests are edited directly and are never extension targets.
|
|
337
|
-
#warnWorkspacePackageExtensions () {
|
|
338
|
-
if (!this.#packageExtensions?.present) {
|
|
339
|
-
return
|
|
340
|
-
}
|
|
341
|
-
for (const node of this.idealTree.inventory.values()) {
|
|
342
|
-
// a workspace is in the inventory as both a Link and its target node; warn once by skipping the link
|
|
343
|
-
if (!node.isWorkspace || node.isLink) {
|
|
344
|
-
continue
|
|
345
|
-
}
|
|
346
|
-
if (node.package.packageExtensions !== undefined) {
|
|
347
|
-
log.warn('packageExtensions',
|
|
348
|
-
`"packageExtensions" in workspace ${node.name} is ignored; it is only honored at the workspace root`)
|
|
349
|
-
}
|
|
350
|
-
if (this.#packageExtensions.wouldMatch(node.name, node.version)) {
|
|
351
|
-
log.warn('packageExtensions',
|
|
352
|
-
`selector matches workspace package ${node.name}@${node.version}; edit its package.json directly instead of using packageExtensions`)
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
// Warn when a non-root workspace package contains a .npm-extension file; only the workspace root's file is honored.
|
|
358
|
-
#warnWorkspaceNpmExtension () {
|
|
359
|
-
for (const node of this.idealTree.inventory.values()) {
|
|
360
|
-
// a workspace is in the inventory as both a Link and its target node; warn once by skipping the link
|
|
361
|
-
if (!node.isWorkspace || node.isLink || node.isProjectRoot) {
|
|
362
|
-
continue
|
|
363
|
-
}
|
|
364
|
-
if (hasExtensionFile(node.realpath)) {
|
|
365
|
-
log.warn('npm-extension',
|
|
366
|
-
`".npm-extension" in workspace ${node.name} is ignored; it is only honored at the workspace root`)
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
|
|
371
231
|
#parseSettings (options) {
|
|
372
232
|
const update = options.update === true ? { all: true }
|
|
373
233
|
: Array.isArray(options.update) ? { names: options.update }
|
|
@@ -887,7 +747,7 @@ module.exports = cls => class IdealTreeBuilder extends cls {
|
|
|
887
747
|
for (const node of this.idealTree.inventory.values()) {
|
|
888
748
|
// XXX add any invalid edgesOut to the queue
|
|
889
749
|
if (this[_updateNames].includes(node.name) &&
|
|
890
|
-
!node.isTop && !node.inDepBundle) {
|
|
750
|
+
!node.isTop && !node.inDepBundle && !node.inShrinkwrap) {
|
|
891
751
|
for (const edge of node.edgesIn) {
|
|
892
752
|
this.addTracker('idealTree', edge.from.name, edge.from.location)
|
|
893
753
|
this.#depsQueue.push(edge.from)
|
|
@@ -1011,11 +871,15 @@ This is a one-time fix-up, please be patient...
|
|
|
1011
871
|
const node = this.#depsQueue.pop()
|
|
1012
872
|
const bd = node.package.bundleDependencies
|
|
1013
873
|
const hasBundle = bd && Array.isArray(bd) && bd.length
|
|
874
|
+
const { hasShrinkwrap } = node
|
|
1014
875
|
|
|
1015
876
|
// if the node was already visited, or has since been removed from the
|
|
1016
|
-
// tree, skip over it and process the rest of the queue.
|
|
877
|
+
// tree, skip over it and process the rest of the queue. If a node has
|
|
878
|
+
// a shrinkwrap, also skip it, because it's going to get its deps
|
|
879
|
+
// satisfied by whatever's in that file anyway.
|
|
1017
880
|
if (this.#depsSeen.has(node) ||
|
|
1018
|
-
node.root !== this.idealTree
|
|
881
|
+
node.root !== this.idealTree ||
|
|
882
|
+
hasShrinkwrap && !this.#complete) {
|
|
1019
883
|
return this.#buildDepStep()
|
|
1020
884
|
}
|
|
1021
885
|
|
|
@@ -1025,15 +889,15 @@ This is a one-time fix-up, please be patient...
|
|
|
1025
889
|
|
|
1026
890
|
// if we're loading a _complete_ ideal tree, for a --package-lock-only
|
|
1027
891
|
// installation for example, we have to crack open the tarball and
|
|
1028
|
-
// look inside if it has bundle deps. note that this is
|
|
892
|
+
// look inside if it has bundle deps or shrinkwraps. note that this is
|
|
1029
893
|
// not necessary during a reification, because we just update the
|
|
1030
|
-
// ideal tree by reading bundles in place.
|
|
894
|
+
// ideal tree by reading bundles/shrinkwraps in place.
|
|
1031
895
|
// Don't bother if the node is from the actual tree and hasn't
|
|
1032
896
|
// been resolved, because we can't fetch it anyway, could be anything!
|
|
1033
897
|
const crackOpen = this.#complete &&
|
|
1034
898
|
node !== this.idealTree &&
|
|
1035
899
|
node.resolved &&
|
|
1036
|
-
hasBundle &&
|
|
900
|
+
(hasBundle || hasShrinkwrap) &&
|
|
1037
901
|
!node.inert
|
|
1038
902
|
if (crackOpen) {
|
|
1039
903
|
const Arborist = this.constructor
|
|
@@ -1046,8 +910,15 @@ This is a one-time fix-up, please be patient...
|
|
|
1046
910
|
integrity: node.integrity,
|
|
1047
911
|
})
|
|
1048
912
|
|
|
1049
|
-
|
|
1050
|
-
|
|
913
|
+
if (hasShrinkwrap) {
|
|
914
|
+
await new Arborist({ ...this.options, path })
|
|
915
|
+
.loadVirtual({ root: node, subtreeOnly: true })
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
if (hasBundle) {
|
|
919
|
+
await new Arborist({ ...this.options, path })
|
|
920
|
+
.loadActual({ root: node, ignoreMissing: true })
|
|
921
|
+
}
|
|
1051
922
|
})
|
|
1052
923
|
}
|
|
1053
924
|
|
|
@@ -1401,6 +1272,11 @@ This is a one-time fix-up, please be patient...
|
|
|
1401
1272
|
continue
|
|
1402
1273
|
}
|
|
1403
1274
|
|
|
1275
|
+
// If it's shrinkwrapped, we use what the shrinkwap wants.
|
|
1276
|
+
if (edge.to && edge.to.inShrinkwrap) {
|
|
1277
|
+
continue
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1404
1280
|
// If the edge has no destination, that's a problem, unless
|
|
1405
1281
|
// if it's peerOptional and not explicitly requested.
|
|
1406
1282
|
if (!edge.to) {
|
|
@@ -1568,17 +1444,7 @@ This is a one-time fix-up, please be patient...
|
|
|
1568
1444
|
)
|
|
1569
1445
|
return this.#failureNode(name, parent, error, edge)
|
|
1570
1446
|
}
|
|
1571
|
-
|
|
1572
|
-
const transformed = this.#applyNpmExtension(pkg)
|
|
1573
|
-
const { pkg: extended, applied } = this.#applyPackageExtension(transformed.pkg)
|
|
1574
|
-
const node = new Node({ name, pkg: extended, parent, installLinks, legacyPeerDeps })
|
|
1575
|
-
if (transformed.applied) {
|
|
1576
|
-
node.npmExtensionApplied = transformed.applied
|
|
1577
|
-
}
|
|
1578
|
-
if (applied) {
|
|
1579
|
-
node.packageExtensionsApplied = applied
|
|
1580
|
-
}
|
|
1581
|
-
return node
|
|
1447
|
+
return new Node({ name, pkg, parent, installLinks, legacyPeerDeps })
|
|
1582
1448
|
},
|
|
1583
1449
|
error => this.#failureNode(name, parent, error, edge)
|
|
1584
1450
|
)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const { mkdirSync } = require('node:fs')
|
|
2
|
+
const pacote = require('pacote')
|
|
1
3
|
const { join } = require('node:path')
|
|
2
4
|
const { depth } = require('treeverse')
|
|
3
5
|
const crypto = require('node:crypto')
|
|
@@ -13,10 +15,7 @@ const getKey = (startNode) => {
|
|
|
13
15
|
getChildren: node => node.dependencies,
|
|
14
16
|
visit: node => {
|
|
15
17
|
branch.push(`${node.packageName}@${node.version}`)
|
|
16
|
-
|
|
17
|
-
// the patch segment is only appended when present, so unpatched keys are unchanged.
|
|
18
|
-
const patch = node.patched ? `::patch:${node.patched.integrity}` : ''
|
|
19
|
-
deps.push(`${branch.join('->')}::${node.resolved}${patch}`)
|
|
18
|
+
deps.push(`${branch.join('->')}::${node.resolved}`)
|
|
20
19
|
},
|
|
21
20
|
leave: () => {
|
|
22
21
|
branch.pop()
|
|
@@ -31,9 +30,7 @@ const getKey = (startNode) => {
|
|
|
31
30
|
.replace(/\+/g, '-')
|
|
32
31
|
.replace(/\//g, '_')
|
|
33
32
|
.replace(/=+$/m, '')
|
|
34
|
-
|
|
35
|
-
const patchSuffix = startNode.patched ? '+patch' : ''
|
|
36
|
-
return `${startNode.packageName}@${startNode.version}-${hash}${patchSuffix}`
|
|
33
|
+
return `${startNode.packageName}@${startNode.version}-${hash}`
|
|
37
34
|
}
|
|
38
35
|
|
|
39
36
|
module.exports = cls => class IsolatedReifier extends cls {
|
|
@@ -54,7 +51,6 @@ module.exports = cls => class IsolatedReifier extends cls {
|
|
|
54
51
|
optional: node.optional,
|
|
55
52
|
package: pkg,
|
|
56
53
|
parent: root,
|
|
57
|
-
patched: node.patched,
|
|
58
54
|
path: join(this.idealGraph.localPath, location),
|
|
59
55
|
resolved: node.resolved,
|
|
60
56
|
root,
|
|
@@ -157,7 +153,46 @@ module.exports = cls => class IsolatedReifier extends cls {
|
|
|
157
153
|
const result = {}
|
|
158
154
|
// XXX this goes recursive if we don't set here because assignCommonProperties also calls this.#externalProxy
|
|
159
155
|
this.#externalProxies.set(node, result)
|
|
160
|
-
await this.#assignCommonProperties(node, result)
|
|
156
|
+
await this.#assignCommonProperties(node, result, !node.hasShrinkwrap)
|
|
157
|
+
if (node.hasShrinkwrap) {
|
|
158
|
+
// strip any path traversal from package.json name fields before they hit path.join below
|
|
159
|
+
/* istanbul ignore next - packageName is always set for real packages */
|
|
160
|
+
const safeName = nameFromFolder(node.packageName || node.path)
|
|
161
|
+
const dir = join(
|
|
162
|
+
node.root.path,
|
|
163
|
+
'node_modules',
|
|
164
|
+
'.store',
|
|
165
|
+
`${safeName}@${node.version}`
|
|
166
|
+
)
|
|
167
|
+
mkdirSync(dir, { recursive: true })
|
|
168
|
+
// TODO this approach feels wrong and shouldn't be necessary for shrinkwraps
|
|
169
|
+
await pacote.extract(node.resolved, dir, {
|
|
170
|
+
...this.options,
|
|
171
|
+
resolved: node.resolved,
|
|
172
|
+
integrity: node.integrity,
|
|
173
|
+
// TODO _isRoot
|
|
174
|
+
})
|
|
175
|
+
const Arborist = this.constructor
|
|
176
|
+
const arb = new Arborist({ ...this.options, path: dir })
|
|
177
|
+
// Make sure that the ideal tree is build as the rest of the algorithm depends on it.
|
|
178
|
+
await arb.buildIdealTree({
|
|
179
|
+
complete: false,
|
|
180
|
+
dev: false,
|
|
181
|
+
})
|
|
182
|
+
await arb.makeIdealGraph()
|
|
183
|
+
this.idealGraph.external.push(...arb.idealGraph.external)
|
|
184
|
+
for (const edge of arb.idealGraph.external) {
|
|
185
|
+
edge.root = this.idealGraph
|
|
186
|
+
edge.id = `${node.id}=>${edge.id}`
|
|
187
|
+
}
|
|
188
|
+
result.localDependencies = []
|
|
189
|
+
result.externalDependencies = arb.idealGraph.externalDependencies
|
|
190
|
+
result.externalOptionalDependencies = arb.idealGraph.externalOptionalDependencies
|
|
191
|
+
result.dependencies = [
|
|
192
|
+
...result.externalDependencies,
|
|
193
|
+
...result.externalOptionalDependencies,
|
|
194
|
+
]
|
|
195
|
+
}
|
|
161
196
|
result.optional = node.optional
|
|
162
197
|
result.resolved = node.resolved
|
|
163
198
|
result.version = node.version
|
|
@@ -171,7 +206,7 @@ module.exports = cls => class IsolatedReifier extends cls {
|
|
|
171
206
|
return result
|
|
172
207
|
}
|
|
173
208
|
|
|
174
|
-
async #assignCommonProperties (node, result) {
|
|
209
|
+
async #assignCommonProperties (node, result, populateDeps = true) {
|
|
175
210
|
result.root = this.idealGraph
|
|
176
211
|
// XXX does anything need this?
|
|
177
212
|
result.id = this.counter++
|
|
@@ -179,10 +214,13 @@ module.exports = cls => class IsolatedReifier extends cls {
|
|
|
179
214
|
result.name = result.isWorkspace ? (node.packageName || node.name) : node.name
|
|
180
215
|
// strip any path traversal from package.json name fields before they hit path.join below
|
|
181
216
|
result.packageName = nameFromFolder(node.packageName || node.path)
|
|
182
|
-
result.patched = node.patched
|
|
183
217
|
result.package = { ...node.package }
|
|
184
218
|
result.package.bundleDependencies = undefined
|
|
185
219
|
|
|
220
|
+
if (!populateDeps) {
|
|
221
|
+
return
|
|
222
|
+
}
|
|
223
|
+
|
|
186
224
|
let edges = [...node.edgesOut.values()].filter(edge =>
|
|
187
225
|
edge.to?.target &&
|
|
188
226
|
!(node.package.bundledDependencies || node.package.bundleDependencies)?.includes(edge.to.name)
|
|
@@ -13,8 +13,6 @@ const calcDepFlags = require('../calc-dep-flags.js')
|
|
|
13
13
|
const Node = require('../node.js')
|
|
14
14
|
const Link = require('../link.js')
|
|
15
15
|
const realpath = require('../realpath.js')
|
|
16
|
-
const PackageExtensions = require('../package-extensions.js')
|
|
17
|
-
const NpmExtension = require('../npm-extension.js')
|
|
18
16
|
|
|
19
17
|
// public symbols
|
|
20
18
|
const _changePath = Symbol.for('_changePath')
|
|
@@ -179,10 +177,6 @@ module.exports = cls => class ActualLoader extends cls {
|
|
|
179
177
|
|
|
180
178
|
this.#linkActualWorkspaces()
|
|
181
179
|
|
|
182
|
-
// .npm-extension runs before packageExtensions, matching the ideal-tree resolution order
|
|
183
|
-
await this.#applyNpmExtension()
|
|
184
|
-
this.#applyPackageExtensions()
|
|
185
|
-
|
|
186
180
|
if (!ignoreMissing) {
|
|
187
181
|
await this.#findMissingEdges()
|
|
188
182
|
}
|
|
@@ -407,34 +401,6 @@ module.exports = cls => class ActualLoader extends cls {
|
|
|
407
401
|
}
|
|
408
402
|
}
|
|
409
403
|
|
|
410
|
-
// packageExtensions never rewrite a package's package.json, so a filesystem-scanned actual tree lacks the extension-created edges and provenance.
|
|
411
|
-
// Re-derive them from the root rule set, as buildIdealTree does.
|
|
412
|
-
// This is always required under the linked strategy, whose store layout forces the filesystem-scan path.
|
|
413
|
-
#applyPackageExtensions () {
|
|
414
|
-
const rootPkg = this.#actualTree.target?.package
|
|
415
|
-
const pe = new PackageExtensions(rootPkg?.packageExtensions)
|
|
416
|
-
if (!pe.present || !pe.selectors.length) {
|
|
417
|
-
return
|
|
418
|
-
}
|
|
419
|
-
for (const node of this.#actualTree.inventory.values()) {
|
|
420
|
-
// only installed dependencies are extended, never the root or a workspace
|
|
421
|
-
if (node.isLink || node.isProjectRoot || !node.name || !node.inNodeModules()) {
|
|
422
|
-
continue
|
|
423
|
-
}
|
|
424
|
-
const res = pe.apply(node.package)
|
|
425
|
-
if (res) {
|
|
426
|
-
node.package = res.pkg
|
|
427
|
-
node.packageExtensionsApplied = res.applied
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
// mirror the provenance onto links so the logical tree location reports it too
|
|
431
|
-
for (const node of this.#actualTree.inventory.values()) {
|
|
432
|
-
if (node.isLink && node.target?.packageExtensionsApplied) {
|
|
433
|
-
node.packageExtensionsApplied = node.target.packageExtensionsApplied
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
|
|
438
404
|
// Re-forward overrides through links once all edges are resolved, since a Link may forward before its subtree resolves and miss a transitive match (npm/cli#9619, #9659).
|
|
439
405
|
#repropagateOverrides () {
|
|
440
406
|
if (!this.#actualTree.overrides) {
|
|
@@ -447,39 +413,6 @@ module.exports = cls => class ActualLoader extends cls {
|
|
|
447
413
|
}
|
|
448
414
|
}
|
|
449
415
|
|
|
450
|
-
// .npm-extension transformManifest, like packageExtensions, never rewrites a package's package.json, so re-derive its edges and provenance on a filesystem-scanned actual tree.
|
|
451
|
-
// This executes the root extension code; ignore-extension (and ignore-scripts via flatten) disables it.
|
|
452
|
-
async #applyNpmExtension () {
|
|
453
|
-
if (this.options.ignoreExtension) {
|
|
454
|
-
return
|
|
455
|
-
}
|
|
456
|
-
const ext = new NpmExtension({
|
|
457
|
-
root: this.#actualTree.realpath,
|
|
458
|
-
extensionFile: this.options.extensionFile,
|
|
459
|
-
})
|
|
460
|
-
if (!ext.present) {
|
|
461
|
-
return
|
|
462
|
-
}
|
|
463
|
-
await ext.load()
|
|
464
|
-
for (const node of this.#actualTree.inventory.values()) {
|
|
465
|
-
// only installed dependencies are transformed, never the root or a workspace
|
|
466
|
-
if (node.isLink || node.isProjectRoot || !node.name || !node.inNodeModules()) {
|
|
467
|
-
continue
|
|
468
|
-
}
|
|
469
|
-
const res = ext.apply(node.package)
|
|
470
|
-
if (res) {
|
|
471
|
-
node.package = res.pkg
|
|
472
|
-
node.npmExtensionApplied = res.applied
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
// mirror the provenance onto links so the logical tree location reports it too
|
|
476
|
-
for (const node of this.#actualTree.inventory.values()) {
|
|
477
|
-
if (node.isLink && node.target?.npmExtensionApplied) {
|
|
478
|
-
node.npmExtensionApplied = node.target.npmExtensionApplied
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
|
|
483
416
|
async #findMissingEdges () {
|
|
484
417
|
// try to resolve any missing edges by walking up the directory tree,
|
|
485
418
|
// checking for the package in each node_modules folder. stop at the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const { resolve } = require('node:path')
|
|
1
|
+
const { isAbsolute, resolve } = require('node:path')
|
|
2
2
|
// mixin providing the loadVirtual method
|
|
3
3
|
const mapWorkspaces = require('@npmcli/map-workspaces')
|
|
4
4
|
const PackageJson = require('@npmcli/package-json')
|
|
@@ -17,6 +17,8 @@ const setWorkspaces = Symbol.for('setWorkspaces')
|
|
|
17
17
|
|
|
18
18
|
module.exports = cls => class VirtualLoader extends cls {
|
|
19
19
|
#rootOptionProvided
|
|
20
|
+
// when true, lockfile entries must stay inside `this.path`
|
|
21
|
+
#subtreeOnly = false
|
|
20
22
|
|
|
21
23
|
// public method
|
|
22
24
|
async loadVirtual (options = {}) {
|
|
@@ -28,6 +30,8 @@ module.exports = cls => class VirtualLoader extends cls {
|
|
|
28
30
|
// XXX: deprecate separate reify() options object.
|
|
29
31
|
options = { ...this.options, ...options }
|
|
30
32
|
|
|
33
|
+
this.#subtreeOnly = !!options.subtreeOnly
|
|
34
|
+
|
|
31
35
|
if (options.root && options.root.meta) {
|
|
32
36
|
await this.#loadFromShrinkwrap(options.root.meta, options.root)
|
|
33
37
|
return treeCheck(this.virtualTree)
|
|
@@ -39,7 +43,7 @@ module.exports = cls => class VirtualLoader extends cls {
|
|
|
39
43
|
resolveOptions: this.options,
|
|
40
44
|
})
|
|
41
45
|
if (!s.loadedFromDisk && !options.root) {
|
|
42
|
-
const er = new Error('loadVirtual requires existing
|
|
46
|
+
const er = new Error('loadVirtual requires existing shrinkwrap file')
|
|
43
47
|
throw Object.assign(er, { code: 'ENOLOCK' })
|
|
44
48
|
}
|
|
45
49
|
|
|
@@ -166,12 +170,40 @@ module.exports = cls => class VirtualLoader extends cls {
|
|
|
166
170
|
}
|
|
167
171
|
}
|
|
168
172
|
|
|
173
|
+
// throw if the resolved path is outside `base`, only in subtreeOnly mode
|
|
174
|
+
#assertContained (base, resolvedPath, location) {
|
|
175
|
+
if (!this.#subtreeOnly) {
|
|
176
|
+
return
|
|
177
|
+
}
|
|
178
|
+
if (isAbsolute(location)) {
|
|
179
|
+
throw Object.assign(
|
|
180
|
+
new Error(`invalid lockfile entry: "${location}" must be a relative location`),
|
|
181
|
+
{ code: 'EINVALIDLOCATION', location, base }
|
|
182
|
+
)
|
|
183
|
+
}
|
|
184
|
+
const rel = relpath(base, resolvedPath)
|
|
185
|
+
if (
|
|
186
|
+
rel === '..' ||
|
|
187
|
+
rel.startsWith('../') ||
|
|
188
|
+
isAbsolute(rel) ||
|
|
189
|
+
// non-root key that collapses back to base (e.g. 'node_modules/..')
|
|
190
|
+
(rel === '' && location !== '')
|
|
191
|
+
) {
|
|
192
|
+
throw Object.assign(
|
|
193
|
+
new Error(`invalid lockfile entry: "${location}" resolves outside of "${base}"`),
|
|
194
|
+
{ code: 'EINVALIDLOCATION', location, base, resolvedPath }
|
|
195
|
+
)
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
169
199
|
// links is the set of metadata, and nodes is the map of non-Link nodes
|
|
170
200
|
// Set the targets to nodes in the set, if we have them (we might not)
|
|
171
201
|
// XXX build-ideal-tree also has a #resolveLinks, is there overlap?
|
|
172
202
|
async #resolveLinks (links, nodes) {
|
|
173
203
|
for (const [location, meta] of links.entries()) {
|
|
174
204
|
const targetPath = resolve(this.path, meta.resolved)
|
|
205
|
+
// check before nodes.get so we surface EINVALIDLOCATION instead of EMISSINGTARGET
|
|
206
|
+
this.#assertContained(this.path, targetPath, meta.resolved || location)
|
|
175
207
|
const targetLoc = relpath(this.path, targetPath)
|
|
176
208
|
const target = nodes.get(targetLoc)
|
|
177
209
|
|
|
@@ -230,6 +262,7 @@ To fix:
|
|
|
230
262
|
#loadNode (location, sw, loadOverrides) {
|
|
231
263
|
const p = this.virtualTree ? this.virtualTree.realpath : this.path
|
|
232
264
|
const path = resolve(p, location)
|
|
265
|
+
this.#assertContained(p, path, location)
|
|
233
266
|
// shrinkwrap doesn't include package name unless necessary
|
|
234
267
|
if (!sw.name) {
|
|
235
268
|
sw.name = nameFromFolder(path)
|
|
@@ -242,11 +275,9 @@ To fix:
|
|
|
242
275
|
path,
|
|
243
276
|
realpath: path,
|
|
244
277
|
integrity: sw.integrity,
|
|
245
|
-
patched: sw.patched,
|
|
246
|
-
packageExtensionsApplied: sw.packageExtensionsApplied,
|
|
247
|
-
npmExtensionApplied: sw.npmExtensionApplied,
|
|
248
278
|
resolved: consistentResolve(sw.resolved, this.path, path),
|
|
249
279
|
pkg: sw,
|
|
280
|
+
hasShrinkwrap: sw.hasShrinkwrap,
|
|
250
281
|
loadOverrides,
|
|
251
282
|
// cast to boolean because they're undefined in the lock file when false
|
|
252
283
|
extraneous: !!sw.extraneous,
|
|
@@ -261,6 +292,7 @@ To fix:
|
|
|
261
292
|
|
|
262
293
|
#loadLink (location, targetLoc, target) {
|
|
263
294
|
const path = resolve(this.path, location)
|
|
295
|
+
this.#assertContained(this.path, path, location)
|
|
264
296
|
const link = new Link({
|
|
265
297
|
installLinks: this.installLinks,
|
|
266
298
|
legacyPeerDeps: this.legacyPeerDeps,
|