@automattic/vip 4.1.3 → 4.1.4
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/.buildkite/build-macos-installer.sh +34 -0
- package/.buildkite/build-macos.sh +2 -3
- package/.buildkite/build-windows-installer.ps1 +65 -0
- package/.buildkite/build-windows.ps1 +2 -18
- package/.buildkite/pipeline.yml +32 -0
- package/.buildkite/sign-windows.ps1 +21 -0
- package/.buildkite/test-windows-installer-download.ps1 +54 -0
- package/.buildkite/test_pipeline.py +69 -0
- package/Gemfile.lock +44 -41
- package/cmd/installer-payload/main.go +19 -0
- package/cmd/installer-version/main.go +22 -0
- package/cmd/vip-next/commands/app_debug_test.go +89 -0
- package/cmd/vip-next/commands/app_deploy.go +4 -0
- package/cmd/vip-next/commands/app_deploy_validate.go +2 -0
- package/cmd/vip-next/commands/config_debug_test.go +137 -0
- package/cmd/vip-next/commands/config_envvar_delete.go +2 -0
- package/cmd/vip-next/commands/config_envvar_get.go +2 -0
- package/cmd/vip-next/commands/config_envvar_get_all.go +2 -0
- package/cmd/vip-next/commands/config_envvar_list.go +2 -0
- package/cmd/vip-next/commands/config_envvar_set.go +2 -0
- package/cmd/vip-next/commands/config_software_update.go +12 -1
- package/cmd/vip-next/commands/devenv_create_test.go +5 -5
- package/cmd/vip-next/commands/devenv_debug_test.go +34 -0
- package/cmd/vip-next/commands/devenv_envvar.go +6 -0
- package/cmd/vip-next/commands/devenv_lifecycle.go +30 -11
- package/cmd/vip-next/commands/devenv_update.go +1 -1
- package/cmd/vip-next/commands/devenv_update_test.go +28 -2
- package/cmd/vip-next/commands/import_debug_test.go +110 -0
- package/cmd/vip-next/commands/import_media.go +4 -0
- package/cmd/vip-next/commands/import_sql.go +9 -1
- package/cmd/vip-next/commands/logout.go +1 -1
- package/cmd/vip-next/commands/searchreplace.go +3 -1
- package/cmd/vip-next/commands/searchreplace_debug_test.go +82 -0
- package/cmd/vip-next/commands/whoami.go +10 -1
- package/cmd/vip-next/commands/whoami_debug_test.go +79 -0
- package/cmd/vip-next/commands/wp.go +2 -0
- package/cmd/vip-next/commands/wp_debug_test.go +32 -0
- package/cmd/vip-next/debug_args.go +63 -0
- package/cmd/vip-next/debug_test.go +122 -0
- package/cmd/vip-next/main.go +58 -2
- package/cmd/vip-next/pendo_wiring_test.go +148 -0
- package/cmd/vip-next/root.go +17 -0
- package/dist/bin/vip-dev-env-envvar-get.js +2 -2
- package/dist/bin/vip-dev-env-envvar-set.js +2 -2
- package/dist/bin/vip-dev-env-update.js +1 -1
- package/dist/lib/analytics/clients/pendo.js +19 -7
- package/dist/lib/constants/dev-environment.js +8 -7
- package/dist/lib/dev-environment/dev-environment-cli.js +10 -2
- package/dist/lib/dev-environment/dev-environment-core.js +1 -1
- package/docs/BUILD-SIGNING.md +147 -6
- package/docs/DEBUGGING.md +61 -0
- package/docs/GO-UPDATES.md +7 -1
- package/docs/RELEASING.md +3 -2
- package/docs/SETUP.md +2 -1
- package/fastlane/Fastfile +66 -3
- package/fastlane/test_signing.rb +83 -0
- package/internal/auth/logout.go +14 -1
- package/internal/auth/logout_test.go +46 -0
- package/internal/debuglog/debuglog.go +85 -0
- package/internal/debuglog/debuglog_test.go +44 -0
- package/internal/devenv/compose/view.go +6 -3
- package/internal/devenv/compose/view_test.go +1 -1
- package/internal/devenv/debug.go +4 -0
- package/internal/devenv/debug_test.go +103 -0
- package/internal/devenv/devenv.go +20 -2
- package/internal/devenv/devexec.go +3 -0
- package/internal/devenv/importdata.go +4 -1
- package/internal/devenv/list.go +9 -1
- package/internal/devenv/logs.go +2 -0
- package/internal/devenv/proxy/ca.go +9 -2
- package/internal/devenv/proxy/ca_test.go +1 -1
- package/internal/devenv/proxy/network.go +7 -3
- package/internal/devenv/proxy/network_test.go +6 -0
- package/internal/devenv/proxy/proxy.go +37 -8
- package/internal/devenv/proxy/proxy_test.go +61 -6
- package/internal/devenv/proxy/scripts/gen-certs.sh +20 -5
- package/internal/devenv/update.go +2 -0
- package/internal/gql/debug_test.go +79 -0
- package/internal/gql/error.go +27 -1
- package/internal/gql/rechallenge.go +9 -5
- package/internal/gql/retry.go +21 -2
- package/internal/gql/transport.go +9 -0
- package/internal/httpproxy/debug_test.go +32 -0
- package/internal/httpproxy/httpproxy.go +8 -1
- package/internal/installer/version.go +41 -0
- package/internal/installer/version_test.go +33 -0
- package/internal/parity/edge_workers_debug_test.go +87 -0
- package/internal/parity/pendo_test.go +122 -0
- package/internal/rechallenge/flow.go +8 -0
- package/internal/rechallenge/flow_test.go +15 -1
- package/internal/releasepromotion/buildkite.go +12 -1
- package/internal/releasepromotion/buildkite_test.go +31 -0
- package/internal/releasepromotion/contract.go +49 -1
- package/internal/releasepromotion/contract_test.go +38 -0
- package/internal/releasepromotion/github.go +4 -10
- package/internal/releasepromotion/optional_installers_test.go +87 -0
- package/internal/releasepromotion/verify.go +99 -2
- package/internal/releasepromotion/verify_test.go +99 -0
- package/internal/searchreplace/debug_test.go +71 -0
- package/internal/searchreplace/searchreplace.go +14 -0
- package/internal/siteimport/debug_test.go +34 -0
- package/internal/siteimport/status.go +11 -0
- package/internal/telemetry/pendo.go +41 -10
- package/internal/telemetry/pendo_auth_test.go +92 -0
- package/internal/telemetry/pendo_test.go +24 -5
- package/internal/telemetry/tracker.go +26 -0
- package/internal/update/github.go +36 -17
- package/internal/update/ownership.go +22 -0
- package/internal/update/ownership_test.go +44 -0
- package/internal/update/release_test.go +53 -13
- package/internal/update/service_test.go +39 -0
- package/internal/upload/debug_test.go +76 -0
- package/internal/upload/multipart.go +3 -0
- package/internal/upload/orchestrate.go +10 -0
- package/internal/upload/putobject.go +3 -0
- package/internal/wpssh/debug_test.go +67 -0
- package/internal/wpssh/wpssh.go +7 -0
- package/internal/wpstream/debug_test.go +116 -0
- package/internal/wpstream/run.go +10 -1
- package/node_modules/@apollo/client/CHANGELOG.md +1130 -0
- package/node_modules/@apollo/client/__cjs/cache/core/Scalar.cjs +36 -0
- package/node_modules/@apollo/client/__cjs/cache/core/Scalar.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/cache/core/Scalar.d.cts +56 -0
- package/node_modules/@apollo/client/__cjs/cache/core/cache.cjs +32 -1
- package/node_modules/@apollo/client/__cjs/cache/core/cache.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/core/cache.d.cts +89 -6
- package/node_modules/@apollo/client/__cjs/cache/core/types/Cache.d.cts +30 -2
- package/node_modules/@apollo/client/__cjs/cache/index.cjs +3 -1
- package/node_modules/@apollo/client/__cjs/cache/index.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/index.d.cts +2 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.cjs +63 -5
- package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.d.cts +3 -0
- package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.d.cts +11 -2
- package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs +95 -4
- package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.d.cts +44 -5
- package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs +34 -6
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.d.cts +3 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.cjs +489 -45
- package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.d.cts +11 -2
- package/node_modules/@apollo/client/__cjs/cache/inmemory/types.d.cts +31 -4
- package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs +5 -9
- package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/ApolloClient.cjs +14 -14
- package/node_modules/@apollo/client/__cjs/core/ApolloClient.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/ApolloClient.d.cts +11 -11
- package/node_modules/@apollo/client/__cjs/core/ObservableQuery.cjs +186 -72
- package/node_modules/@apollo/client/__cjs/core/ObservableQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/ObservableQuery.d.cts +4 -7
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs +164 -197
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.d.cts +17 -21
- package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs +75 -48
- package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/QueryManager.d.cts +4 -4
- package/node_modules/@apollo/client/__cjs/core/RefetchEventManager.cjs +3 -3
- package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.d.cts +3 -0
- package/node_modules/@apollo/client/__cjs/core/deprecated.d.cts +3 -3
- package/node_modules/@apollo/client/__cjs/core/index.cjs +2 -1
- package/node_modules/@apollo/client/__cjs/core/index.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/index.d.cts +4 -3
- package/node_modules/@apollo/client/__cjs/core/types.d.cts +11 -7
- package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.d.cts +55 -0
- package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.d.cts +2 -4
- package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.cjs +47 -16
- package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.d.cts +29 -6
- package/node_modules/@apollo/client/__cjs/incremental/handlers/notImplemented.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/index.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/index.d.cts +1 -0
- package/node_modules/@apollo/client/__cjs/{utilities/internal/types/NoInfer.cjs → incremental/internal/types.cjs} +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/internal/types.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/incremental/internal/types.d.cts +17 -0
- package/node_modules/@apollo/client/__cjs/incremental/types.d.cts +55 -4
- package/node_modules/@apollo/client/__cjs/invariantErrorCodes.cjs +164 -113
- package/node_modules/@apollo/client/__cjs/link/core/ApolloLink.cjs +3 -3
- package/node_modules/@apollo/client/__cjs/link/http/checkFetcher.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/link/persisted-queries/index.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/link/ws/index.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/local-state/LocalState.cjs +11 -11
- package/node_modules/@apollo/client/__cjs/local-state/LocalState.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/local-state/LocalState.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/masking/internal/types.d.cts +1 -2
- package/node_modules/@apollo/client/__cjs/masking/maskDefinition.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/masking/maskFragment.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/masking/maskOperation.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/masking/utils.cjs +3 -3
- package/node_modules/@apollo/client/__cjs/react/context/ApolloContext.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/context/ApolloProvider.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/react/hooks/useApolloClient.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useBackgroundQuery.d.cts +3 -3
- package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.d.cts +0 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useLoadableQuery.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/react/hooks/useMutation.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useMutation.d.cts +14 -14
- package/node_modules/@apollo/client/__cjs/react/hooks/useQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useQuery.d.cts +16 -3
- package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.cjs +7 -3
- package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.d.cts +27 -5
- package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseFragment.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseQuery.d.cts +30 -30
- package/node_modules/@apollo/client/__cjs/react/hooks/useSyncExternalStore.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/internal/cache/QueryReference.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/query-preloader/createQueryPreloader.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/react/ssr/prerenderStatic.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/react/types/deprecated.d.cts +5 -4
- package/node_modules/@apollo/client/__cjs/react/types/types.documentation.d.cts +12 -1
- package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.cjs +25 -5
- package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.d.cts +1 -2
- package/node_modules/@apollo/client/__cjs/utilities/caching/sizes.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/caching/sizes.d.cts +39 -1
- package/node_modules/@apollo/client/__cjs/utilities/graphql/DocumentTransform.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.cjs +27 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.d.cts +12 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.cjs +33 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.d.cts +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.d.cts +7 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs +102 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.d.cts +9 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/constants.cjs +20 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/constants.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/constants.d.cts +19 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.cjs +19 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.d.cts +9 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentDefinition.cjs +3 -3
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentDefinition.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentFromSelection.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentFromSelection.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentQueryDocument.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/utilities/internal/getMainDefinition.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.cjs +6 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.d.cts +4 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getQueryDefinition.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/index.cjs +27 -2
- package/node_modules/@apollo/client/__cjs/utilities/internal/index.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/index.d.cts +17 -2
- package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.cjs +38 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.d.cts +9 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.cjs +37 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.d.cts +9 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.cjs +7 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.d.cts +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.cjs +17 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.d.cts +8 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.d.cts +8 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/removeDirectivesFromDocument.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/shouldInclude.cjs +4 -4
- package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.cjs +20 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.d.cts +8 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.d.cts +10 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.d.cts +2 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.d.cts +10 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.d.cts +4 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/StreamInfoTrie.d.cts +2 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.d.cts +10 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/valueToObjectRepresentation.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/version.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/version.cjs.map +1 -1
- package/node_modules/@apollo/client/cache/core/Scalar.d.ts +56 -0
- package/node_modules/@apollo/client/cache/core/Scalar.js +32 -0
- package/node_modules/@apollo/client/cache/core/Scalar.js.map +1 -0
- package/node_modules/@apollo/client/cache/core/cache.d.ts +89 -6
- package/node_modules/@apollo/client/cache/core/cache.js +33 -2
- package/node_modules/@apollo/client/cache/core/cache.js.map +1 -1
- package/node_modules/@apollo/client/cache/core/types/Cache.d.ts +30 -2
- package/node_modules/@apollo/client/cache/core/types/Cache.js.map +1 -1
- package/node_modules/@apollo/client/cache/index.d.ts +2 -1
- package/node_modules/@apollo/client/cache/index.js +1 -0
- package/node_modules/@apollo/client/cache/index.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/entityStore.d.ts +3 -0
- package/node_modules/@apollo/client/cache/inmemory/entityStore.js +64 -6
- package/node_modules/@apollo/client/cache/inmemory/entityStore.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/helpers.d.ts +11 -2
- package/node_modules/@apollo/client/cache/inmemory/helpers.js +11 -0
- package/node_modules/@apollo/client/cache/inmemory/helpers.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.d.ts +44 -5
- package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js +97 -6
- package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/key-extractor.js +1 -1
- package/node_modules/@apollo/client/cache/inmemory/policies.d.ts +3 -1
- package/node_modules/@apollo/client/cache/inmemory/policies.js +34 -6
- package/node_modules/@apollo/client/cache/inmemory/policies.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/readFromStore.d.ts +11 -2
- package/node_modules/@apollo/client/cache/inmemory/readFromStore.js +485 -45
- package/node_modules/@apollo/client/cache/inmemory/readFromStore.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/types.d.ts +32 -5
- package/node_modules/@apollo/client/cache/inmemory/types.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/writeToStore.js +6 -10
- package/node_modules/@apollo/client/cache/inmemory/writeToStore.js.map +1 -1
- package/node_modules/@apollo/client/core/ApolloClient.d.ts +11 -11
- package/node_modules/@apollo/client/core/ApolloClient.js +14 -14
- package/node_modules/@apollo/client/core/ApolloClient.js.map +1 -1
- package/node_modules/@apollo/client/core/ObservableQuery.d.ts +4 -7
- package/node_modules/@apollo/client/core/ObservableQuery.js +183 -73
- package/node_modules/@apollo/client/core/ObservableQuery.js.map +1 -1
- package/node_modules/@apollo/client/core/QueryInfo.d.ts +18 -22
- package/node_modules/@apollo/client/core/QueryInfo.js +165 -198
- package/node_modules/@apollo/client/core/QueryInfo.js.map +1 -1
- package/node_modules/@apollo/client/core/QueryManager.d.ts +4 -4
- package/node_modules/@apollo/client/core/QueryManager.js +76 -49
- package/node_modules/@apollo/client/core/QueryManager.js.map +1 -1
- package/node_modules/@apollo/client/core/RefetchEventManager.js +3 -3
- package/node_modules/@apollo/client/core/dataStateErrorCache.d.ts +3 -0
- package/node_modules/@apollo/client/core/dataStateErrorCache.js +9 -0
- package/node_modules/@apollo/client/core/dataStateErrorCache.js.map +1 -0
- package/node_modules/@apollo/client/core/deprecated.d.ts +3 -3
- package/node_modules/@apollo/client/core/deprecated.js.map +1 -1
- package/node_modules/@apollo/client/core/index.d.ts +4 -3
- package/node_modules/@apollo/client/core/index.js +1 -1
- package/node_modules/@apollo/client/core/index.js.map +1 -1
- package/node_modules/@apollo/client/core/types.d.ts +11 -7
- package/node_modules/@apollo/client/core/types.js.map +1 -1
- package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.d.ts +55 -0
- package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.js +2 -0
- package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.js.map +1 -0
- package/node_modules/@apollo/client/incremental/handlers/defer20220824.d.ts +2 -4
- package/node_modules/@apollo/client/incremental/handlers/defer20220824.js.map +1 -1
- package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.d.ts +29 -6
- package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.js +48 -17
- package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.js.map +1 -1
- package/node_modules/@apollo/client/incremental/handlers/notImplemented.js +1 -1
- package/node_modules/@apollo/client/incremental/index.d.ts +1 -0
- package/node_modules/@apollo/client/incremental/index.js.map +1 -1
- package/node_modules/@apollo/client/incremental/internal/types.d.ts +17 -0
- package/node_modules/@apollo/client/incremental/internal/types.js +2 -0
- package/node_modules/@apollo/client/incremental/internal/types.js.map +1 -0
- package/node_modules/@apollo/client/incremental/types.d.ts +55 -4
- package/node_modules/@apollo/client/incremental/types.js.map +1 -1
- package/node_modules/@apollo/client/invariantErrorCodes.js +164 -113
- package/node_modules/@apollo/client/link/core/ApolloLink.js +3 -3
- package/node_modules/@apollo/client/link/http/checkFetcher.js +1 -1
- package/node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js +1 -1
- package/node_modules/@apollo/client/link/persisted-queries/index.js +2 -2
- package/node_modules/@apollo/client/link/ws/index.js +1 -1
- package/node_modules/@apollo/client/local-state/LocalState.d.ts +1 -1
- package/node_modules/@apollo/client/local-state/LocalState.js +11 -11
- package/node_modules/@apollo/client/local-state/LocalState.js.map +1 -1
- package/node_modules/@apollo/client/masking/internal/types.d.ts +1 -2
- package/node_modules/@apollo/client/masking/internal/types.js.map +1 -1
- package/node_modules/@apollo/client/masking/maskDefinition.js +2 -2
- package/node_modules/@apollo/client/masking/maskFragment.js +2 -2
- package/node_modules/@apollo/client/masking/maskOperation.js +1 -1
- package/node_modules/@apollo/client/masking/utils.js +3 -3
- package/node_modules/@apollo/client/package.json +1 -1
- package/node_modules/@apollo/client/react/context/ApolloContext.js +1 -1
- package/node_modules/@apollo/client/react/context/ApolloProvider.js +1 -1
- package/node_modules/@apollo/client/react/hooks/internal/validateSuspenseHookOptions.js +2 -2
- package/node_modules/@apollo/client/react/hooks/useApolloClient.js +1 -1
- package/node_modules/@apollo/client/react/hooks/useBackgroundQuery.d.ts +3 -3
- package/node_modules/@apollo/client/react/hooks/useBackgroundQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useFragment.d.ts +0 -1
- package/node_modules/@apollo/client/react/hooks/useFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useLazyQuery.d.ts +1 -1
- package/node_modules/@apollo/client/react/hooks/useLazyQuery.js +2 -2
- package/node_modules/@apollo/client/react/hooks/useLazyQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useLoadableQuery.js +2 -2
- package/node_modules/@apollo/client/react/hooks/useMutation.d.ts +14 -14
- package/node_modules/@apollo/client/react/hooks/useMutation.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useQuery.d.ts +16 -3
- package/node_modules/@apollo/client/react/hooks/useQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useSubscription.d.ts +27 -5
- package/node_modules/@apollo/client/react/hooks/useSubscription.js +7 -3
- package/node_modules/@apollo/client/react/hooks/useSubscription.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useSuspenseFragment.d.ts +1 -1
- package/node_modules/@apollo/client/react/hooks/useSuspenseFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useSuspenseQuery.d.ts +30 -30
- package/node_modules/@apollo/client/react/hooks/useSuspenseQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useSyncExternalStore.js +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/internal/validateSuspenseHookOptions.js +2 -2
- package/node_modules/@apollo/client/react/hooks-compiled/useApolloClient.js +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useBackgroundQuery.d.ts +3 -3
- package/node_modules/@apollo/client/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useFragment.d.ts +0 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.d.ts +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.js +2 -2
- package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useLoadableQuery.js +2 -2
- package/node_modules/@apollo/client/react/hooks-compiled/useMutation.d.ts +14 -14
- package/node_modules/@apollo/client/react/hooks-compiled/useMutation.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useQuery.d.ts +16 -3
- package/node_modules/@apollo/client/react/hooks-compiled/useQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.d.ts +27 -5
- package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.js +107 -93
- package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseFragment.d.ts +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseQuery.d.ts +30 -30
- package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSyncExternalStore.js +1 -1
- package/node_modules/@apollo/client/react/internal/cache/QueryReference.js +1 -1
- package/node_modules/@apollo/client/react/query-preloader/createQueryPreloader.d.ts +1 -1
- package/node_modules/@apollo/client/react/query-preloader/createQueryPreloader.js.map +1 -1
- package/node_modules/@apollo/client/react/ssr/prerenderStatic.js +2 -2
- package/node_modules/@apollo/client/react/types/deprecated.d.ts +5 -4
- package/node_modules/@apollo/client/react/types/deprecated.js.map +1 -1
- package/node_modules/@apollo/client/react/types/types.documentation.d.ts +12 -1
- package/node_modules/@apollo/client/react/types/types.documentation.js.map +1 -1
- package/node_modules/@apollo/client/testing/core/mocking/mockLink.d.ts +1 -2
- package/node_modules/@apollo/client/testing/core/mocking/mockLink.js +25 -5
- package/node_modules/@apollo/client/testing/core/mocking/mockLink.js.map +1 -1
- package/node_modules/@apollo/client/utilities/caching/sizes.d.ts +39 -1
- package/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -1
- package/node_modules/@apollo/client/utilities/graphql/DocumentTransform.js +1 -1
- package/node_modules/@apollo/client/utilities/internal/StreamArrayState.d.ts +12 -0
- package/node_modules/@apollo/client/utilities/internal/StreamArrayState.js +23 -0
- package/node_modules/@apollo/client/utilities/internal/StreamArrayState.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.d.ts +3 -0
- package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.js +30 -0
- package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/capitalize.d.ts +7 -0
- package/node_modules/@apollo/client/utilities/internal/capitalize.js +9 -0
- package/node_modules/@apollo/client/utilities/internal/capitalize.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.d.ts +9 -0
- package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.js +95 -0
- package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/constants.d.ts +19 -0
- package/node_modules/@apollo/client/utilities/internal/constants.js +19 -0
- package/node_modules/@apollo/client/utilities/internal/constants.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.d.ts +9 -0
- package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.js +16 -0
- package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/getFragmentDefinition.js +3 -3
- package/node_modules/@apollo/client/utilities/internal/getFragmentDefinition.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/getFragmentFromSelection.js +2 -2
- package/node_modules/@apollo/client/utilities/internal/getFragmentFromSelection.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/getFragmentQueryDocument.js +2 -2
- package/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +1 -1
- package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.d.ts +4 -0
- package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +6 -0
- package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/getQueryDefinition.js +1 -1
- package/node_modules/@apollo/client/utilities/internal/index.d.ts +17 -2
- package/node_modules/@apollo/client/utilities/internal/index.js +13 -1
- package/node_modules/@apollo/client/utilities/internal/index.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.d.ts +9 -0
- package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.js +35 -0
- package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/isStreamField.d.ts +9 -0
- package/node_modules/@apollo/client/utilities/internal/isStreamField.js +34 -0
- package/node_modules/@apollo/client/utilities/internal/isStreamField.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/isTypenameField.d.ts +3 -0
- package/node_modules/@apollo/client/utilities/internal/isTypenameField.js +4 -0
- package/node_modules/@apollo/client/utilities/internal/isTypenameField.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.d.ts +8 -0
- package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.js +14 -0
- package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/matchScalarList.d.ts +8 -0
- package/node_modules/@apollo/client/utilities/internal/matchScalarList.js +9 -0
- package/node_modules/@apollo/client/utilities/internal/matchScalarList.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/removeDirectivesFromDocument.js +1 -1
- package/node_modules/@apollo/client/utilities/internal/shouldInclude.js +4 -4
- package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.d.ts +8 -0
- package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.js +17 -0
- package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.d.ts +10 -0
- package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.js +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/Exact.d.ts +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/Exact.js +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/Exact.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.d.ts +10 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.js +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.d.ts +4 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.js +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/StreamInfoTrie.d.ts +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/StreamInfoTrie.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.d.ts +10 -0
- package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.js +9 -0
- package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/valueToObjectRepresentation.js +1 -1
- package/node_modules/@apollo/client/version.js +1 -1
- package/node_modules/@apollo/client/version.js.map +1 -1
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/buffer.buffer.d.ts +10 -5
- package/node_modules/@types/node/buffer.d.ts +1 -0
- package/node_modules/@types/node/crypto.d.ts +2 -4
- package/node_modules/@types/node/dgram.d.ts +119 -4
- package/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
- package/node_modules/@types/node/ffi.d.ts +1 -1
- package/node_modules/@types/node/fs/promises.d.ts +61 -65
- package/node_modules/@types/node/fs.d.ts +86 -76
- package/node_modules/@types/node/http.d.ts +18 -2
- package/node_modules/@types/node/http2.d.ts +12 -4
- package/node_modules/@types/node/index.d.ts +1 -0
- package/node_modules/@types/node/inspector.d.ts +2 -1
- package/node_modules/@types/node/net.d.ts +108 -16
- package/node_modules/@types/node/package.json +3 -3
- package/node_modules/@types/node/perf_hooks.d.ts +31 -19
- package/node_modules/@types/node/process.d.ts +52 -0
- package/node_modules/@types/node/quic.d.ts +252 -42
- package/node_modules/@types/node/sqlite.d.ts +6 -2
- package/node_modules/@types/node/stream/iter.d.ts +4 -4
- package/node_modules/@types/node/stream/web.d.ts +20 -0
- package/node_modules/@types/node/test.d.ts +36 -0
- package/node_modules/@types/node/tls.d.ts +50 -15
- package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +5 -0
- package/node_modules/@types/node/ts5.6/index.d.ts +1 -0
- package/node_modules/@types/node/ts5.7/index.d.ts +1 -0
- package/node_modules/@types/node/tty.d.ts +4 -3
- package/node_modules/@types/node/vfs.d.ts +211 -0
- package/node_modules/@types/node/vm.d.ts +1 -1
- package/node_modules/@types/node/web-globals/streams.d.ts +4 -0
- package/node_modules/@types/node/zlib.d.ts +17 -0
- package/node_modules/cpu-features/build/Makefile +2 -2
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/filesystem.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_macos_or_iphone.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_windows.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_arm_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_mips_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_ppc_linux.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_freebsd.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_macos.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_windows.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/stack_line_reader.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/string_view.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpufeatures/src/binding.o.d +145 -145
- package/node_modules/cpu-features/build/config.gypi +8 -9
- package/node_modules/cpu-features/build/cpufeatures.target.mk +14 -14
- package/node_modules/cpu-features/build/deps/cpu_features/cpu_features.target.mk +14 -14
- package/node_modules/default-browser/package.json +1 -1
- package/node_modules/default-browser/windows.js +3 -1
- package/node_modules/js-yaml/README.md +0 -3
- package/node_modules/js-yaml/dist/browser/js-yaml.esm.min.mjs +822 -779
- package/node_modules/js-yaml/dist/browser/js-yaml.esm.min.mjs.map +1 -1
- package/node_modules/js-yaml/dist/browser/js-yaml.umd.min.js +29 -23
- package/node_modules/js-yaml/dist/browser/js-yaml.umd.min.js.map +1 -1
- package/node_modules/js-yaml/dist/js-yaml.cjs.js +425 -397
- package/node_modules/js-yaml/dist/js-yaml.cjs.js.map +1 -1
- package/node_modules/js-yaml/dist/js-yaml.d.ts +101 -32
- package/node_modules/js-yaml/dist/js-yaml.mjs +429 -397
- package/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
- package/node_modules/js-yaml/package.json +1 -1
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.js +11 -3
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.js.map +1 -1
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.min.js +1 -1
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.min.js.map +1 -1
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.mjs +11 -3
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
- package/node_modules/lando/node_modules/js-yaml/lib/loader.js +16 -3
- package/node_modules/lando/node_modules/js-yaml/package.json +1 -1
- package/node_modules/open/index.js +15 -3
- package/node_modules/open/package.json +3 -3
- package/node_modules/{lando → path-scurry}/node_modules/lru-cache/README.md +96 -10
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.js +7 -0
- package/node_modules/{lando/node_modules/lru-cache/dist/commonjs → path-scurry/node_modules/lru-cache/dist/commonjs/browser}/index.d.ts +109 -32
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.js +1733 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.js +10 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.cjs.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.d.cts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +7 -0
- package/node_modules/{lando/node_modules/lru-cache/dist/esm → path-scurry/node_modules/lru-cache/dist/commonjs}/index.d.ts +109 -32
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js +1733 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.js +9 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.d.ts +1400 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.js +1733 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.js +10 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.js +10 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +4 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.d.ts +1400 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -0
- package/node_modules/{lando/node_modules/lru-cache/dist/esm → path-scurry/node_modules/lru-cache/dist/esm/browser}/index.js +315 -177
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.js +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.mjs.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel.js +19 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.d.ts +1400 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -0
- package/node_modules/{lando/node_modules/lru-cache/dist/commonjs → path-scurry/node_modules/lru-cache/dist/esm}/index.js +316 -182
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +6 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.d.ts +1400 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.js +1729 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.js +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.js +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/package.json +154 -0
- package/node_modules/powershell-utils/index.d.ts +16 -2
- package/node_modules/powershell-utils/index.js +12 -9
- package/node_modules/powershell-utils/package.json +1 -1
- package/node_modules/powershell-utils/readme.md +7 -2
- package/node_modules/ssh2/lib/protocol/crypto/build/Makefile +2 -2
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d +237 -237
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto/src/binding.o +0 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto.node +0 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/sshcrypto.node +0 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/sshcrypto.target.mk +14 -14
- package/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +3 -2
- package/node_modules/undici/docs/docs/api/EventSource.md +4 -0
- package/node_modules/undici/docs/docs/api/Interceptors.md +7 -3
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +7 -1
- package/node_modules/undici/lib/cache/memory-cache-store.js +2 -2
- package/node_modules/undici/lib/core/symbols.js +2 -0
- package/node_modules/undici/lib/dispatcher/agent.js +7 -2
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +7 -4
- package/node_modules/undici/lib/dispatcher/client-h1.js +12 -4
- package/node_modules/undici/lib/dispatcher/client-h2.js +43 -3
- package/node_modules/undici/lib/dispatcher/client.js +3 -2
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +13 -1
- package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -1
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -0
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +10 -3
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -1
- package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/node_modules/undici/lib/dispatcher/round-robin-pool.js +1 -1
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +91 -21
- package/node_modules/undici/lib/handler/cache-handler.js +29 -5
- package/node_modules/undici/lib/handler/decorator-handler.js +7 -1
- package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
- package/node_modules/undici/lib/handler/redirect-handler.js +21 -4
- package/node_modules/undici/lib/handler/retry-handler.js +148 -30
- package/node_modules/undici/lib/interceptor/cache.js +65 -12
- package/node_modules/undici/lib/interceptor/decompress.js +115 -13
- package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/node_modules/undici/lib/interceptor/dns.js +7 -0
- package/node_modules/undici/lib/interceptor/dump.js +10 -23
- package/node_modules/undici/lib/mock/mock-agent.js +13 -1
- package/node_modules/undici/lib/mock/mock-utils.js +11 -10
- package/node_modules/undici/lib/util/cache.js +45 -3
- package/node_modules/undici/lib/web/cookies/parse.js +150 -147
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +13 -3
- package/node_modules/undici/lib/web/fetch/index.js +6 -0
- package/node_modules/undici/lib/web/fetch/request.js +2 -3
- package/node_modules/undici/lib/web/fetch/util.js +6 -1
- package/node_modules/undici/lib/web/webidl/index.js +3 -3
- package/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/node_modules/undici/package.json +3 -3
- package/node_modules/undici/types/client.d.ts +10 -0
- package/node_modules/undici/types/interceptors.d.ts +2 -0
- package/node_modules/undici/types/mock-agent.d.ts +11 -10
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +2 -0
- package/node_modules/undici-types/client.d.ts +8 -3
- package/node_modules/undici-types/connector.d.ts +1 -0
- package/node_modules/undici-types/cookies.d.ts +1 -1
- package/node_modules/undici-types/dispatcher.d.ts +3 -3
- package/node_modules/undici-types/errors.d.ts +10 -0
- package/node_modules/undici-types/fetch.d.ts +5 -1
- package/node_modules/undici-types/handlers.d.ts +2 -0
- package/node_modules/undici-types/interceptors.d.ts +1 -1
- package/node_modules/undici-types/mock-interceptor.d.ts +5 -1
- package/node_modules/undici-types/package.json +1 -1
- package/node_modules/undici-types/proxy-agent.d.ts +7 -0
- package/package.json +2 -2
- package/packaging/macos/build-pkg.sh +53 -0
- package/packaging/macos/preinstall +33 -0
- package/packaging/macos/test-install.sh +51 -0
- package/packaging/macos/test_package.py +74 -0
- package/packaging/macos/uninstall.sh +24 -0
- package/packaging/macos/verify-pkg.py +61 -0
- package/packaging/windows/build-msi.ps1 +153 -0
- package/packaging/windows/test-msi.ps1 +225 -0
- package/packaging/windows/verify-msi.ps1 +74 -0
- package/packaging/windows/vip-next.wxs +79 -0
- package/testdata/installer-fixture/main.go +40 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/NoInfer.cjs.map +0 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/NoInfer.d.cts +0 -35
- package/node_modules/@apollo/client/utilities/internal/types/NoInfer.d.ts +0 -35
- package/node_modules/@apollo/client/utilities/internal/types/NoInfer.js +0 -2
- package/node_modules/@apollo/client/utilities/internal/types/NoInfer.js.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.d.ts.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.js.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
- package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.min.js.map +0 -7
- package/node_modules/lando/node_modules/lru-cache/dist/esm/index.d.ts.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/esm/index.js.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/esm/index.min.js +0 -2
- package/node_modules/lando/node_modules/lru-cache/dist/esm/index.min.js.map +0 -7
- package/node_modules/lando/node_modules/lru-cache/package.json +0 -93
- /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/LICENSE.md +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/README.md +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.d.ts +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.d.ts.map +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.js +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.js.map +0 -0
- /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/dist/commonjs/package.json +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.d.ts +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.d.ts.map +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.js +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.js.map +0 -0
- /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/dist/esm/package.json +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/LICENSE.md +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/dist/commonjs/package.json +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/dist/esm/package.json +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/package.json +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const assert = require('node:assert')
|
|
3
3
|
|
|
4
4
|
const { kRetryHandlerDefaultRetry } = require('../core/symbols')
|
|
5
|
-
const { RequestRetryError } = require('../core/errors')
|
|
5
|
+
const { RequestRetryError, RequestAbortedError } = require('../core/errors')
|
|
6
6
|
const {
|
|
7
7
|
isDisturbed,
|
|
8
8
|
parseRangeHeader,
|
|
@@ -41,19 +41,42 @@ function validatePartialResponseContentLength (headers, range, statusCode, retry
|
|
|
41
41
|
// new one: backpressure pauses the new connection's controller, but the
|
|
42
42
|
// consumer's resume() targets the old one, so the resumed body stalls forever.
|
|
43
43
|
// The proxy always forwards to the controller of the currently active connection.
|
|
44
|
+
// An abort is additionally reported to the handler so it can cancel a pending
|
|
45
|
+
// retry backoff instead of letting the request hang until the backoff elapses.
|
|
46
|
+
// The notification is a private callback the handler hands over on construction,
|
|
47
|
+
// so nothing outside the handler can trigger it.
|
|
44
48
|
class RetryController {
|
|
45
|
-
|
|
49
|
+
#onAbort
|
|
50
|
+
|
|
51
|
+
constructor (onAbort) {
|
|
52
|
+
this.#onAbort = onAbort
|
|
46
53
|
this.target = null
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
pause () { this.target?.pause() }
|
|
50
57
|
resume () { this.target?.resume() }
|
|
51
|
-
|
|
58
|
+
|
|
59
|
+
abort (reason) {
|
|
60
|
+
this.target?.abort(reason)
|
|
61
|
+
this.#onAbort(reason)
|
|
62
|
+
}
|
|
63
|
+
|
|
52
64
|
get paused () { return this.target?.paused ?? false }
|
|
53
65
|
get aborted () { return this.target?.aborted ?? false }
|
|
54
66
|
get reason () { return this.target?.reason ?? null }
|
|
55
67
|
get rawHeaders () { return this.target?.rawHeaders ?? null }
|
|
68
|
+
set rawHeaders (value) {
|
|
69
|
+
if (this.target) {
|
|
70
|
+
this.target.rawHeaders = value
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
56
74
|
get rawTrailers () { return this.target?.rawTrailers ?? null }
|
|
75
|
+
set rawTrailers (value) {
|
|
76
|
+
if (this.target) {
|
|
77
|
+
this.target.rawTrailers = value
|
|
78
|
+
}
|
|
79
|
+
}
|
|
57
80
|
}
|
|
58
81
|
|
|
59
82
|
class RetryHandler {
|
|
@@ -112,15 +135,32 @@ class RetryHandler {
|
|
|
112
135
|
this.etag = null
|
|
113
136
|
this.statusCode = null
|
|
114
137
|
this.headers = null
|
|
115
|
-
this.controllerProxy = new RetryController()
|
|
138
|
+
this.controllerProxy = new RetryController(reason => this.#onAbort(reason))
|
|
139
|
+
// A retry decision is in flight (the policy may be holding a backoff
|
|
140
|
+
// timer). While pending, a consumer abort cancels the wait.
|
|
141
|
+
this.retryPending = false
|
|
142
|
+
// Backoff timer returned by the retry policy, so #onAbort can cancel it.
|
|
143
|
+
// Null for custom policies that do not return their timer.
|
|
144
|
+
this.retryTimer = null
|
|
145
|
+
// Set once an abort during the backoff delivered the terminal error
|
|
146
|
+
// downstream; late policy callbacks and connection errors are then moot.
|
|
147
|
+
this.aborted = false
|
|
116
148
|
}
|
|
117
149
|
|
|
118
150
|
onResponseStartWithRetry (controller, statusCode, headers, statusMessage, err) {
|
|
119
151
|
if (this.retryOpts.throwOnError) {
|
|
120
152
|
// Preserve old behavior for status codes that are not eligible for retry
|
|
121
153
|
if (this.retryOpts.statusCodes.includes(statusCode) === false) {
|
|
122
|
-
this.headersSent
|
|
123
|
-
|
|
154
|
+
if (this.headersSent) {
|
|
155
|
+
// The downstream handler already received the response from an
|
|
156
|
+
// earlier attempt. Forwarding this response would replace the
|
|
157
|
+
// downstream body and leave the original body pending forever.
|
|
158
|
+
this.handler.onResponseError?.(this.controllerProxy, err)
|
|
159
|
+
} else {
|
|
160
|
+
this.headersSent = true
|
|
161
|
+
this.checkpointResponseEnd(headers)
|
|
162
|
+
this.handler.onResponseStart?.(this.controllerProxy, statusCode, headers, statusMessage)
|
|
163
|
+
}
|
|
124
164
|
} else {
|
|
125
165
|
this.error = err
|
|
126
166
|
}
|
|
@@ -130,14 +170,30 @@ class RetryHandler {
|
|
|
130
170
|
|
|
131
171
|
if (isDisturbed(this.opts.body)) {
|
|
132
172
|
this.headersSent = true
|
|
173
|
+
this.checkpointResponseEnd(headers)
|
|
133
174
|
this.handler.onResponseStart?.(this.controllerProxy, statusCode, headers, statusMessage)
|
|
134
175
|
return
|
|
135
176
|
}
|
|
136
177
|
|
|
137
178
|
function shouldRetry (passedErr) {
|
|
179
|
+
if (this.aborted) {
|
|
180
|
+
// Aborted while the policy was deciding; the decision is moot.
|
|
181
|
+
return
|
|
182
|
+
}
|
|
183
|
+
this.retryPending = false
|
|
184
|
+
this.retryTimer = null
|
|
185
|
+
|
|
138
186
|
if (passedErr) {
|
|
139
|
-
this.headersSent
|
|
140
|
-
|
|
187
|
+
if (this.headersSent) {
|
|
188
|
+
// The downstream handler already received the response from an
|
|
189
|
+
// earlier attempt. Forwarding this response would replace the
|
|
190
|
+
// downstream body and leave the original body pending forever.
|
|
191
|
+
this.handler.onResponseError?.(this.controllerProxy, passedErr)
|
|
192
|
+
} else {
|
|
193
|
+
this.headersSent = true
|
|
194
|
+
this.checkpointResponseEnd(headers)
|
|
195
|
+
this.handler.onResponseStart?.(this.controllerProxy, statusCode, headers, statusMessage)
|
|
196
|
+
}
|
|
141
197
|
controller.resume()
|
|
142
198
|
return
|
|
143
199
|
}
|
|
@@ -154,14 +210,31 @@ class RetryHandler {
|
|
|
154
210
|
// between, leaving this one paused forever -- the very stall the proxy exists
|
|
155
211
|
// to prevent.
|
|
156
212
|
controller.pause()
|
|
157
|
-
|
|
213
|
+
// The default policy returns its backoff timer so an abort can cancel it;
|
|
214
|
+
// a custom policy may return anything (or nothing), which is ignored.
|
|
215
|
+
this.retryPending = true
|
|
216
|
+
this.retryTimer = this.retryOpts.retry(
|
|
158
217
|
err,
|
|
159
218
|
{
|
|
160
219
|
state: { counter: this.retryCount },
|
|
161
220
|
opts: { retryOptions: this.retryOpts, ...this.opts }
|
|
162
221
|
},
|
|
163
222
|
shouldRetry.bind(this)
|
|
164
|
-
)
|
|
223
|
+
) ?? null
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
checkpointResponseEnd (headers) {
|
|
227
|
+
if (this.end == null && this.opts.method !== 'HEAD') {
|
|
228
|
+
const contentLength = headers['content-length']
|
|
229
|
+
this.end = contentLength != null ? Number(contentLength) - 1 : null
|
|
230
|
+
|
|
231
|
+
assert(
|
|
232
|
+
this.end == null || Number.isFinite(this.end),
|
|
233
|
+
'invalid content-length'
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
this.resume = this.end != null
|
|
237
|
+
}
|
|
165
238
|
}
|
|
166
239
|
|
|
167
240
|
onRequestStart (controller, context) {
|
|
@@ -176,6 +249,14 @@ class RetryHandler {
|
|
|
176
249
|
}
|
|
177
250
|
}
|
|
178
251
|
|
|
252
|
+
onBodySent (chunk) {
|
|
253
|
+
this.handler.onBodySent?.(chunk)
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
onRequestSent () {
|
|
257
|
+
this.handler.onRequestSent?.()
|
|
258
|
+
}
|
|
259
|
+
|
|
179
260
|
onRequestUpgrade (_controller, statusCode, headers, socket) {
|
|
180
261
|
this.handler.onRequestUpgrade?.(this.controllerProxy, statusCode, headers, socket)
|
|
181
262
|
}
|
|
@@ -190,7 +271,8 @@ class RetryHandler {
|
|
|
190
271
|
timeoutFactor,
|
|
191
272
|
statusCodes,
|
|
192
273
|
errorCodes,
|
|
193
|
-
methods
|
|
274
|
+
methods,
|
|
275
|
+
retryAfter
|
|
194
276
|
} = retryOptions
|
|
195
277
|
const { counter } = state
|
|
196
278
|
|
|
@@ -222,7 +304,7 @@ class RetryHandler {
|
|
|
222
304
|
return
|
|
223
305
|
}
|
|
224
306
|
|
|
225
|
-
let retryAfterHeader = headers?.['retry-after']
|
|
307
|
+
let retryAfterHeader = retryAfter === false ? undefined : headers?.['retry-after']
|
|
226
308
|
if (retryAfterHeader) {
|
|
227
309
|
retryAfterHeader = Number(retryAfterHeader)
|
|
228
310
|
retryAfterHeader = Number.isNaN(retryAfterHeader)
|
|
@@ -237,7 +319,9 @@ class RetryHandler {
|
|
|
237
319
|
? Math.min(retryAfterHeader, maxTimeout)
|
|
238
320
|
: Math.min(minTimeout * timeoutFactor ** (counter - 1), maxTimeout)
|
|
239
321
|
|
|
240
|
-
|
|
322
|
+
// Return the backoff timer so the handler can cancel it when the
|
|
323
|
+
// consumer aborts while the retry decision is pending.
|
|
324
|
+
return setTimeout(() => cb(null), retryTimeout)
|
|
241
325
|
}
|
|
242
326
|
|
|
243
327
|
onResponseStart (controller, statusCode, headers, statusMessage) {
|
|
@@ -251,18 +335,6 @@ class RetryHandler {
|
|
|
251
335
|
this.statusCode = statusCode
|
|
252
336
|
this.headers = headers
|
|
253
337
|
|
|
254
|
-
if (statusCode >= 300) {
|
|
255
|
-
const err = new RequestRetryError('Request failed', statusCode, {
|
|
256
|
-
headers,
|
|
257
|
-
data: {
|
|
258
|
-
count: this.retryCount
|
|
259
|
-
}
|
|
260
|
-
})
|
|
261
|
-
|
|
262
|
-
this.onResponseStartWithRetry(controller, statusCode, headers, statusMessage, err)
|
|
263
|
-
return
|
|
264
|
-
}
|
|
265
|
-
|
|
266
338
|
// Checkpoint for resume from where we left it
|
|
267
339
|
if (this.headersSent) {
|
|
268
340
|
// Only Partial Content 206 supposed to provide Content-Range,
|
|
@@ -299,12 +371,28 @@ class RetryHandler {
|
|
|
299
371
|
|
|
300
372
|
const { start, size, end = size ? size - 1 : null } = contentRange
|
|
301
373
|
|
|
302
|
-
|
|
303
|
-
|
|
374
|
+
if (this.start !== start || (this.end != null && this.end !== end)) {
|
|
375
|
+
throw new RequestRetryError('Content-Range mismatch', statusCode, {
|
|
376
|
+
headers,
|
|
377
|
+
data: { count: this.retryCount }
|
|
378
|
+
})
|
|
379
|
+
}
|
|
304
380
|
|
|
305
381
|
return
|
|
306
382
|
}
|
|
307
383
|
|
|
384
|
+
if (statusCode >= 300) {
|
|
385
|
+
const err = new RequestRetryError('Request failed', statusCode, {
|
|
386
|
+
headers,
|
|
387
|
+
data: {
|
|
388
|
+
count: this.retryCount
|
|
389
|
+
}
|
|
390
|
+
})
|
|
391
|
+
|
|
392
|
+
this.onResponseStartWithRetry(controller, statusCode, headers, statusMessage, err)
|
|
393
|
+
return
|
|
394
|
+
}
|
|
395
|
+
|
|
308
396
|
if (this.end == null) {
|
|
309
397
|
if (statusCode === 206) {
|
|
310
398
|
// First time we receive 206
|
|
@@ -435,14 +523,27 @@ class RetryHandler {
|
|
|
435
523
|
}
|
|
436
524
|
|
|
437
525
|
onResponseError (controller, err) {
|
|
526
|
+
if (this.aborted) {
|
|
527
|
+
// #onAbort already delivered the terminal error downstream; the late
|
|
528
|
+
// error of the torn-down connection must not be forwarded twice.
|
|
529
|
+
return
|
|
530
|
+
}
|
|
531
|
+
|
|
438
532
|
// controller is THIS failed connection (not the proxy): we inspect whether
|
|
439
533
|
// the consumer aborted it to decide retry-vs-propagate.
|
|
440
|
-
if (controller?.aborted || isDisturbed(this.opts.body)) {
|
|
534
|
+
if (controller?.aborted || isDisturbed(this.opts.body) || (this.headersSent && !this.resume)) {
|
|
441
535
|
this.handler.onResponseError?.(this.controllerProxy, err)
|
|
442
536
|
return
|
|
443
537
|
}
|
|
444
538
|
|
|
445
539
|
function shouldRetry (returnedErr) {
|
|
540
|
+
if (this.aborted) {
|
|
541
|
+
// Aborted while the policy was deciding; the decision is moot.
|
|
542
|
+
return
|
|
543
|
+
}
|
|
544
|
+
this.retryPending = false
|
|
545
|
+
this.retryTimer = null
|
|
546
|
+
|
|
446
547
|
if (!returnedErr) {
|
|
447
548
|
this.retry()
|
|
448
549
|
return
|
|
@@ -462,14 +563,31 @@ class RetryHandler {
|
|
|
462
563
|
this.retryCount += 1
|
|
463
564
|
}
|
|
464
565
|
|
|
465
|
-
this.
|
|
566
|
+
this.retryPending = true
|
|
567
|
+
this.retryTimer = this.retryOpts.retry(
|
|
466
568
|
err,
|
|
467
569
|
{
|
|
468
570
|
state: { counter: this.retryCount },
|
|
469
571
|
opts: { retryOptions: this.retryOpts, ...this.opts }
|
|
470
572
|
},
|
|
471
573
|
shouldRetry.bind(this)
|
|
472
|
-
)
|
|
574
|
+
) ?? null
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
#onAbort (reason) {
|
|
578
|
+
// A consumer abort lands on the controller proxy. If the retry policy is
|
|
579
|
+
// still deciding (typically holding a backoff timer), cancel the wait and
|
|
580
|
+
// surface the abort immediately instead of letting the request hang until
|
|
581
|
+
// the backoff elapses.
|
|
582
|
+
if (!this.retryPending) {
|
|
583
|
+
return
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
this.aborted = true
|
|
587
|
+
this.retryPending = false
|
|
588
|
+
clearTimeout(this.retryTimer)
|
|
589
|
+
this.retryTimer = null
|
|
590
|
+
this.handler.onResponseError?.(this.controllerProxy, reason ?? new RequestAbortedError())
|
|
473
591
|
}
|
|
474
592
|
}
|
|
475
593
|
|
|
@@ -6,7 +6,16 @@ const util = require('../core/util')
|
|
|
6
6
|
const CacheHandler = require('../handler/cache-handler')
|
|
7
7
|
const MemoryCacheStore = require('../cache/memory-cache-store')
|
|
8
8
|
const CacheRevalidationHandler = require('../handler/cache-revalidation-handler')
|
|
9
|
-
const {
|
|
9
|
+
const {
|
|
10
|
+
assertCacheStore,
|
|
11
|
+
assertCacheMethods,
|
|
12
|
+
getInterceptorOrigin,
|
|
13
|
+
makeCacheKey,
|
|
14
|
+
normalizeHeaders,
|
|
15
|
+
parseCacheControlHeader,
|
|
16
|
+
isInvalidOrWildcardVaryHeader,
|
|
17
|
+
parseVaryHeader
|
|
18
|
+
} = require('../util/cache.js')
|
|
10
19
|
const { AbortError } = require('../core/errors.js')
|
|
11
20
|
const { parseHttpDate } = require('../util/date.js')
|
|
12
21
|
|
|
@@ -117,7 +126,10 @@ function staleResponseRequiresRevalidation (result, cacheType) {
|
|
|
117
126
|
* @returns {boolean}
|
|
118
127
|
*/
|
|
119
128
|
function revalidationResponseDisallowsCachedReuse (cacheType, headers) {
|
|
120
|
-
if (
|
|
129
|
+
if (
|
|
130
|
+
(headers.vary && isInvalidOrWildcardVaryHeader(headers.vary)) ||
|
|
131
|
+
(cacheType === 'shared' && Object.hasOwn(headers, 'set-cookie'))
|
|
132
|
+
) {
|
|
121
133
|
return true
|
|
122
134
|
}
|
|
123
135
|
|
|
@@ -135,6 +147,25 @@ function revalidationResponseUpdatesCacheControl (headers) {
|
|
|
135
147
|
return headers['cache-control'] !== undefined
|
|
136
148
|
}
|
|
137
149
|
|
|
150
|
+
/**
|
|
151
|
+
* @param {import('../../types/cache-interceptor.d.ts').default.GetResult} result
|
|
152
|
+
* @param {Record<string, string | string[] | null> | undefined} varyDirectives
|
|
153
|
+
* @returns {boolean}
|
|
154
|
+
*/
|
|
155
|
+
function revalidationResponseAddsVary (result, varyDirectives) {
|
|
156
|
+
if (!varyDirectives) {
|
|
157
|
+
return false
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
for (const key in varyDirectives) {
|
|
161
|
+
if (result.vary == null || !Object.hasOwn(result.vary, key)) {
|
|
162
|
+
return true
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return false
|
|
167
|
+
}
|
|
168
|
+
|
|
138
169
|
function deleteCachedValue (store, cacheKey) {
|
|
139
170
|
try {
|
|
140
171
|
store.delete(cacheKey)?.catch?.(nop)
|
|
@@ -389,6 +420,17 @@ function handleResult (
|
|
|
389
420
|
return handleUncachedResponse(dispatch, globalOpts, cacheKey, handler, opts, reqCacheControl)
|
|
390
421
|
}
|
|
391
422
|
|
|
423
|
+
// Shared stores may outlive the Undici version that wrote them. Do not
|
|
424
|
+
// re-serve a Set-Cookie header from an existing shared-cache entry.
|
|
425
|
+
if (globalOpts.type === 'shared' && Object.hasOwn(result.headers, 'set-cookie')) {
|
|
426
|
+
if (util.isStream(result.body)) {
|
|
427
|
+
result.body.on('error', nop).destroy()
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
deleteCachedValue(globalOpts.store, cacheKey)
|
|
431
|
+
return handleUncachedResponse(dispatch, globalOpts, cacheKey, handler, opts, reqCacheControl)
|
|
432
|
+
}
|
|
433
|
+
|
|
392
434
|
const now = Date.now()
|
|
393
435
|
if (now > result.deleteAt) {
|
|
394
436
|
// Response is expired, cache store shouldn't have given this to us
|
|
@@ -471,6 +513,13 @@ function handleResult (
|
|
|
471
513
|
|
|
472
514
|
if (revalidationResponseUpdatesCacheControl(headers)) {
|
|
473
515
|
deleteCachedValue(globalOpts.store, cacheKey)
|
|
516
|
+
} else if (revalidationResponseAddsVary(result, headers.vary ? parseVaryHeader(headers.vary, opts.headers) : undefined)) {
|
|
517
|
+
if (util.isStream(result.body)) {
|
|
518
|
+
result.body.on('error', nop).destroy()
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
deleteCachedValue(globalOpts.store, cacheKey)
|
|
522
|
+
return dispatch(opts, new CacheHandler(globalOpts, cacheKey, handler))
|
|
474
523
|
}
|
|
475
524
|
}
|
|
476
525
|
|
|
@@ -538,29 +587,28 @@ module.exports = (opts = {}) => {
|
|
|
538
587
|
}
|
|
539
588
|
}
|
|
540
589
|
|
|
541
|
-
return dispatch => {
|
|
590
|
+
return (dispatch, interceptorOrigin) => {
|
|
542
591
|
return (opts, handler) => {
|
|
543
|
-
|
|
544
|
-
|
|
592
|
+
const requestOrigin = getInterceptorOrigin(opts, interceptorOrigin)
|
|
593
|
+
if (!requestOrigin || arrayIncludes(safeMethodsToNotCache, opts.method)) {
|
|
594
|
+
// We cannot safely cache without an authoritative origin, or this is
|
|
595
|
+
// not a method we want to cache.
|
|
545
596
|
return dispatch(opts, handler)
|
|
546
597
|
}
|
|
547
598
|
|
|
548
599
|
// Check if origin is in whitelist
|
|
549
600
|
if (origins !== undefined) {
|
|
550
|
-
|
|
551
|
-
return dispatch(opts, handler)
|
|
552
|
-
}
|
|
553
|
-
const requestOrigin = opts.origin.toString().toLowerCase()
|
|
601
|
+
const normalizedRequestOrigin = requestOrigin.toString().toLowerCase()
|
|
554
602
|
let isAllowed = false
|
|
555
603
|
|
|
556
604
|
for (let i = 0; i < origins.length; i++) {
|
|
557
605
|
const allowed = origins[i]
|
|
558
606
|
if (typeof allowed === 'string') {
|
|
559
|
-
if (allowed.toLowerCase() ===
|
|
607
|
+
if (allowed.toLowerCase() === normalizedRequestOrigin) {
|
|
560
608
|
isAllowed = true
|
|
561
609
|
break
|
|
562
610
|
}
|
|
563
|
-
} else if (allowed.test(
|
|
611
|
+
} else if (allowed.test(normalizedRequestOrigin)) {
|
|
564
612
|
isAllowed = true
|
|
565
613
|
break
|
|
566
614
|
}
|
|
@@ -589,7 +637,12 @@ module.exports = (opts = {}) => {
|
|
|
589
637
|
/**
|
|
590
638
|
* @type {import('../../types/cache-interceptor.d.ts').default.CacheKey}
|
|
591
639
|
*/
|
|
592
|
-
const cacheKey = makeCacheKey(opts)
|
|
640
|
+
const cacheKey = makeCacheKey(opts, requestOrigin)
|
|
641
|
+
|
|
642
|
+
if (!arrayIncludes(util.safeHTTPMethods, opts.method)) {
|
|
643
|
+
return dispatch(opts, new CacheHandler(globalOpts, cacheKey, handler))
|
|
644
|
+
}
|
|
645
|
+
|
|
593
646
|
const result = store.get(cacheKey)
|
|
594
647
|
|
|
595
648
|
if (result && typeof result.then === 'function') {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const { createInflate, createGunzip, createBrotliDecompress, createZstdDecompress } = require('node:zlib')
|
|
4
|
-
const { pipeline } = require('node:stream')
|
|
4
|
+
const { pipeline, Transform: TransformStream } = require('node:stream')
|
|
5
|
+
const { InvalidArgumentError, ResponseExceededMaxSizeError } = require('../core/errors')
|
|
5
6
|
const DecoratorHandler = require('../handler/decorator-handler')
|
|
6
7
|
|
|
7
8
|
/** @typedef {import('node:stream').Transform} Transform */
|
|
@@ -20,6 +21,31 @@ const supportedEncodings = {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
const defaultSkipStatusCodes = /** @type {const} */ ([204, 304])
|
|
24
|
+
const defaultMaxSize = 64 * 1024 * 1024
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Limits the output of one stage in a decompression chain.
|
|
28
|
+
* @param {number} maxSize - Maximum output size in bytes
|
|
29
|
+
* @returns {Transform}
|
|
30
|
+
*/
|
|
31
|
+
function createMaxSizeLimiter (maxSize) {
|
|
32
|
+
let size = 0
|
|
33
|
+
|
|
34
|
+
return new TransformStream({
|
|
35
|
+
transform (chunk, _encoding, callback) {
|
|
36
|
+
const decompressedSize = size + chunk.length
|
|
37
|
+
if (decompressedSize > maxSize) {
|
|
38
|
+
callback(new ResponseExceededMaxSizeError(
|
|
39
|
+
`Decompressed response size (${decompressedSize}) exceeded maxSize (${maxSize})`
|
|
40
|
+
))
|
|
41
|
+
return
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
size = decompressedSize
|
|
45
|
+
callback(null, chunk)
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
}
|
|
23
49
|
|
|
24
50
|
let warningEmitted = /** @type {boolean} */ (false)
|
|
25
51
|
|
|
@@ -27,6 +53,7 @@ let warningEmitted = /** @type {boolean} */ (false)
|
|
|
27
53
|
* @typedef {Object} DecompressHandlerOptions
|
|
28
54
|
* @property {number[]|Readonly<number[]>} [skipStatusCodes=[204, 304]] - List of status codes to skip decompression for
|
|
29
55
|
* @property {boolean} [skipErrorResponses] - Whether to skip decompression for error responses (status codes >= 400)
|
|
56
|
+
* @property {number} [maxSize=67108864] - Maximum decompressed response size in bytes
|
|
30
57
|
*/
|
|
31
58
|
|
|
32
59
|
class DecompressHandler extends DecoratorHandler {
|
|
@@ -38,11 +65,24 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
38
65
|
#skipStatusCodes
|
|
39
66
|
/** @type {boolean} */
|
|
40
67
|
#skipErrorResponses
|
|
68
|
+
/** @type {number} */
|
|
69
|
+
#maxSize
|
|
70
|
+
/** @type {number} */
|
|
71
|
+
#decompressedSize = 0
|
|
72
|
+
/** @type {boolean} */
|
|
73
|
+
#terminated = false
|
|
74
|
+
/** @type {boolean} */
|
|
75
|
+
#inputEnded = false
|
|
76
|
+
|
|
77
|
+
constructor (handler, { skipStatusCodes = defaultSkipStatusCodes, skipErrorResponses = true, maxSize = defaultMaxSize } = {}) {
|
|
78
|
+
if (!Number.isSafeInteger(maxSize) || maxSize < 1) {
|
|
79
|
+
throw new InvalidArgumentError('maxSize must be a positive integer')
|
|
80
|
+
}
|
|
41
81
|
|
|
42
|
-
constructor (handler, { skipStatusCodes = defaultSkipStatusCodes, skipErrorResponses = true } = {}) {
|
|
43
82
|
super(handler)
|
|
44
83
|
this.#skipStatusCodes = skipStatusCodes
|
|
45
84
|
this.#skipErrorResponses = skipErrorResponses
|
|
85
|
+
this.#maxSize = maxSize
|
|
46
86
|
}
|
|
47
87
|
|
|
48
88
|
/**
|
|
@@ -62,7 +102,7 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
62
102
|
* Creates a chain of decompressors for multiple content encodings
|
|
63
103
|
*
|
|
64
104
|
* @param {string} encodings - Comma-separated list of content encodings
|
|
65
|
-
* @returns {Array<
|
|
105
|
+
* @returns {Array<Transform>} - Array of decompressor and limiting streams
|
|
66
106
|
* @throws {Error} - If the number of content-encodings exceeds the maximum allowed
|
|
67
107
|
*/
|
|
68
108
|
#createDecompressionChain (encodings) {
|
|
@@ -90,7 +130,40 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
90
130
|
decompressors.push(supportedEncodings[encoding]())
|
|
91
131
|
}
|
|
92
132
|
|
|
93
|
-
|
|
133
|
+
if (decompressors.length < 2) {
|
|
134
|
+
return decompressors
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** @type {Transform[]} */
|
|
138
|
+
const streams = []
|
|
139
|
+
for (let i = 0; i < decompressors.length; i++) {
|
|
140
|
+
streams.push(decompressors[i])
|
|
141
|
+
if (i < decompressors.length - 1) {
|
|
142
|
+
streams.push(createMaxSizeLimiter(this.#maxSize))
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return streams
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Stops decompression and reports an error.
|
|
151
|
+
* @param {Controller} controller - The controller to coordinate with
|
|
152
|
+
* @param {Error} error - The decompression error
|
|
153
|
+
* @returns {void}
|
|
154
|
+
*/
|
|
155
|
+
#fail (controller, error) {
|
|
156
|
+
if (this.#terminated) {
|
|
157
|
+
return
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (this.#inputEnded) {
|
|
161
|
+
// The request is already marked complete once the compressed input ends,
|
|
162
|
+
// so controller.abort() can no longer propagate decoder flush errors.
|
|
163
|
+
this.onResponseError(controller, error)
|
|
164
|
+
} else {
|
|
165
|
+
controller.abort(error)
|
|
166
|
+
}
|
|
94
167
|
}
|
|
95
168
|
|
|
96
169
|
/**
|
|
@@ -101,8 +174,21 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
101
174
|
*/
|
|
102
175
|
#setupDecompressorEvents (decompressor, controller) {
|
|
103
176
|
decompressor.on('readable', () => {
|
|
177
|
+
if (this.#terminated) {
|
|
178
|
+
return
|
|
179
|
+
}
|
|
180
|
+
|
|
104
181
|
let chunk
|
|
105
182
|
while ((chunk = decompressor.read()) !== null) {
|
|
183
|
+
const decompressedSize = this.#decompressedSize + chunk.length
|
|
184
|
+
if (decompressedSize > this.#maxSize) {
|
|
185
|
+
this.#fail(controller, new ResponseExceededMaxSizeError(
|
|
186
|
+
`Decompressed response size (${decompressedSize}) exceeded maxSize (${this.#maxSize})`
|
|
187
|
+
))
|
|
188
|
+
return
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
this.#decompressedSize = decompressedSize
|
|
106
192
|
const result = super.onResponseData(controller, chunk)
|
|
107
193
|
if (result === false) {
|
|
108
194
|
break
|
|
@@ -111,7 +197,7 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
111
197
|
})
|
|
112
198
|
|
|
113
199
|
decompressor.on('error', (error) => {
|
|
114
|
-
|
|
200
|
+
this.#fail(controller, error)
|
|
115
201
|
})
|
|
116
202
|
}
|
|
117
203
|
|
|
@@ -125,6 +211,12 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
125
211
|
this.#setupDecompressorEvents(decompressor, controller)
|
|
126
212
|
|
|
127
213
|
decompressor.on('end', () => {
|
|
214
|
+
if (this.#terminated) {
|
|
215
|
+
return
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
this.#terminated = true
|
|
219
|
+
this.#cleanupDecompressors()
|
|
128
220
|
super.onResponseEnd(controller, this.#trailers)
|
|
129
221
|
})
|
|
130
222
|
}
|
|
@@ -139,10 +231,17 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
139
231
|
this.#setupDecompressorEvents(lastDecompressor, controller)
|
|
140
232
|
|
|
141
233
|
pipeline(this.#decompressors, (err) => {
|
|
234
|
+
if (this.#terminated) {
|
|
235
|
+
return
|
|
236
|
+
}
|
|
237
|
+
|
|
142
238
|
if (err) {
|
|
143
|
-
|
|
239
|
+
this.#fail(controller, err)
|
|
144
240
|
return
|
|
145
241
|
}
|
|
242
|
+
|
|
243
|
+
this.#terminated = true
|
|
244
|
+
this.#cleanupDecompressors()
|
|
146
245
|
super.onResponseEnd(controller, this.#trailers)
|
|
147
246
|
})
|
|
148
247
|
}
|
|
@@ -198,7 +297,7 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
198
297
|
|
|
199
298
|
filteredHeaders.push(rawHeaders[i], rawHeaders[i + 1])
|
|
200
299
|
}
|
|
201
|
-
|
|
300
|
+
rawHeaders.splice(0, rawHeaders.length, ...filteredHeaders)
|
|
202
301
|
} else if (typeof rawHeaders === 'object') {
|
|
203
302
|
for (const name of Object.keys(rawHeaders)) {
|
|
204
303
|
const lowerName = name.toLowerCase()
|
|
@@ -238,9 +337,9 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
238
337
|
*/
|
|
239
338
|
onResponseEnd (controller, trailers) {
|
|
240
339
|
if (this.#decompressors.length > 0) {
|
|
340
|
+
this.#inputEnded = true
|
|
241
341
|
this.#trailers = trailers
|
|
242
342
|
this.#decompressors[0].end()
|
|
243
|
-
this.#cleanupDecompressors()
|
|
244
343
|
return
|
|
245
344
|
}
|
|
246
345
|
super.onResponseEnd(controller, trailers)
|
|
@@ -252,12 +351,15 @@ class DecompressHandler extends DecoratorHandler {
|
|
|
252
351
|
* @returns {void}
|
|
253
352
|
*/
|
|
254
353
|
onResponseError (controller, err) {
|
|
255
|
-
if (this.#
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
354
|
+
if (this.#terminated) {
|
|
355
|
+
return
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
this.#terminated = true
|
|
359
|
+
for (const decompressor of this.#decompressors) {
|
|
360
|
+
decompressor.destroy()
|
|
260
361
|
}
|
|
362
|
+
this.#cleanupDecompressors()
|
|
261
363
|
super.onResponseError(controller, err)
|
|
262
364
|
}
|
|
263
365
|
}
|