@automattic/vip 4.1.2 → 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/dist/lib/edge-workers/toolchains/assemblyscript/constants.js +1 -1
- package/docs/BUILD-SIGNING.md +147 -6
- package/docs/DEBUGGING.md +61 -0
- package/docs/EDGE-WORKERS.md +2 -2
- package/docs/GO-UPDATES.md +7 -1
- package/docs/NPM-RELEASE-RECOVERY.md +47 -0
- 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/edgeworkers/build_test.go +1 -1
- package/internal/edgeworkers/templates/edge-workers.json +1 -1
- package/internal/edgeworkers/templates/package.json +1 -1
- 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
|
@@ -64,24 +64,26 @@ func (g GitHub) Releases(ctx context.Context) ([]Release, error) {
|
|
|
64
64
|
}
|
|
65
65
|
releases = append(releases, batch...)
|
|
66
66
|
next := 0
|
|
67
|
-
for _,
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
for _, value := range resp.Header.Values("Link") {
|
|
68
|
+
for _, part := range strings.Split(value, ",") {
|
|
69
|
+
if !strings.Contains(part, `rel="next"`) {
|
|
70
|
+
continue
|
|
71
|
+
}
|
|
72
|
+
left, right := strings.Index(part, "<"), strings.Index(part, ">")
|
|
73
|
+
if left < 0 || right <= left {
|
|
74
|
+
return nil, fmt.Errorf("invalid release pagination")
|
|
75
|
+
}
|
|
76
|
+
u, err := url.Parse(part[left+1 : right])
|
|
77
|
+
if err != nil {
|
|
78
|
+
return nil, fmt.Errorf("invalid release pagination")
|
|
79
|
+
}
|
|
80
|
+
u = origin.ResolveReference(u)
|
|
81
|
+
n, err := strconv.Atoi(u.Query().Get("page"))
|
|
82
|
+
if err != nil || n <= page || u.Scheme != origin.Scheme || u.Host != origin.Host || !isReleasePaginationPath(u.EscapedPath()) || u.User != nil || next != 0 {
|
|
83
|
+
return nil, fmt.Errorf("invalid release pagination")
|
|
84
|
+
}
|
|
85
|
+
next = n
|
|
70
86
|
}
|
|
71
|
-
left, right := strings.Index(part, "<"), strings.Index(part, ">")
|
|
72
|
-
if left < 0 || right <= left {
|
|
73
|
-
return nil, fmt.Errorf("invalid release pagination")
|
|
74
|
-
}
|
|
75
|
-
u, err := url.Parse(part[left+1 : right])
|
|
76
|
-
if err != nil {
|
|
77
|
-
return nil, fmt.Errorf("invalid release pagination")
|
|
78
|
-
}
|
|
79
|
-
u = origin.ResolveReference(u)
|
|
80
|
-
n, err := strconv.Atoi(u.Query().Get("page"))
|
|
81
|
-
if err != nil || n <= page || u.Scheme != origin.Scheme || u.Host != origin.Host || u.Path != "/repos/"+Repository+"/releases" || u.User != nil || next != 0 {
|
|
82
|
-
return nil, fmt.Errorf("invalid release pagination")
|
|
83
|
-
}
|
|
84
|
-
next = n
|
|
85
87
|
}
|
|
86
88
|
if next == 0 {
|
|
87
89
|
return releases, nil
|
|
@@ -90,6 +92,23 @@ func (g GitHub) Releases(ctx context.Context) ([]Release, error) {
|
|
|
90
92
|
}
|
|
91
93
|
return nil, fmt.Errorf("GitHub release pagination limit exceeded")
|
|
92
94
|
}
|
|
95
|
+
|
|
96
|
+
func isReleasePaginationPath(path string) bool {
|
|
97
|
+
if path == "/repos/"+Repository+"/releases" {
|
|
98
|
+
return true
|
|
99
|
+
}
|
|
100
|
+
repositoryID, ok := strings.CutPrefix(path, "/repositories/")
|
|
101
|
+
if !ok {
|
|
102
|
+
return false
|
|
103
|
+
}
|
|
104
|
+
repositoryID, ok = strings.CutSuffix(repositoryID, "/releases")
|
|
105
|
+
if !ok {
|
|
106
|
+
return false
|
|
107
|
+
}
|
|
108
|
+
id, err := strconv.ParseUint(repositoryID, 10, 64)
|
|
109
|
+
return err == nil && id > 0
|
|
110
|
+
}
|
|
111
|
+
|
|
93
112
|
func readBounded(r io.Reader, max int64) ([]byte, error) {
|
|
94
113
|
b, err := io.ReadAll(io.LimitReader(r, max+1))
|
|
95
114
|
if err != nil {
|
|
@@ -24,6 +24,28 @@ func inspectOwnership(ctx context.Context, l Layout, goos string, query ownershi
|
|
|
24
24
|
ctx, cancel := context.WithTimeout(ctx, 3*time.Second)
|
|
25
25
|
defer cancel()
|
|
26
26
|
for _, target := range []string{l.CLI, l.Helper} {
|
|
27
|
+
if goos == "darwin" || goos == "windows" {
|
|
28
|
+
markerPath := filepath.Join(filepath.Dir(target), ".vip-next-installer.json")
|
|
29
|
+
if _, err := regularFile(markerPath); err == nil {
|
|
30
|
+
var marker struct {
|
|
31
|
+
Schema int `json:"schema"`
|
|
32
|
+
Manager string `json:"manager"`
|
|
33
|
+
}
|
|
34
|
+
if err := readJSON(markerPath, 4096, &marker); err != nil {
|
|
35
|
+
return Ownership{}, fmt.Errorf("read installer ownership: %w", err)
|
|
36
|
+
}
|
|
37
|
+
manager := "pkg"
|
|
38
|
+
if goos == "windows" {
|
|
39
|
+
manager = "msi"
|
|
40
|
+
}
|
|
41
|
+
if marker.Schema != 1 || marker.Manager != manager {
|
|
42
|
+
return Ownership{}, fmt.Errorf("invalid installer ownership record: %s", markerPath)
|
|
43
|
+
}
|
|
44
|
+
return Ownership{true, "This installation is managed by the VIP CLI installer. Download and run the latest ." + manager + " installer for your platform from " + ReleasesURL}, nil
|
|
45
|
+
} else if !os.IsNotExist(err) {
|
|
46
|
+
return Ownership{}, fmt.Errorf("inspect installer ownership: %w", err)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
27
49
|
normalized := filepath.ToSlash(target)
|
|
28
50
|
switch goos {
|
|
29
51
|
case "darwin":
|
|
@@ -5,6 +5,7 @@ import (
|
|
|
5
5
|
"errors"
|
|
6
6
|
"os"
|
|
7
7
|
"path/filepath"
|
|
8
|
+
"strings"
|
|
8
9
|
"testing"
|
|
9
10
|
)
|
|
10
11
|
|
|
@@ -38,6 +39,49 @@ func TestOwnershipUsesReceiptsAndFailsClosed(t *testing.T) {
|
|
|
38
39
|
t.Fatal("bare /usr/local/bin misclassified", o, err)
|
|
39
40
|
}
|
|
40
41
|
}
|
|
42
|
+
|
|
43
|
+
func TestNativeInstallerOwnership(t *testing.T) {
|
|
44
|
+
for _, platform := range []struct{ os, manager, extension string }{{"darwin", "pkg", ".pkg"}, {"windows", "msi", ".msi"}} {
|
|
45
|
+
t.Run(platform.os, func(t *testing.T) {
|
|
46
|
+
for _, helperMarker := range []bool{false, true} {
|
|
47
|
+
dir := t.TempDir()
|
|
48
|
+
helperDir := filepath.Join(dir, "bin")
|
|
49
|
+
if err := os.Mkdir(helperDir, 0755); err != nil {
|
|
50
|
+
t.Fatal(err)
|
|
51
|
+
}
|
|
52
|
+
l := Layout{filepath.Join(dir, "vip-next"), filepath.Join(helperDir, "go-search-replace")}
|
|
53
|
+
markerDir := dir
|
|
54
|
+
if helperMarker {
|
|
55
|
+
markerDir = helperDir
|
|
56
|
+
}
|
|
57
|
+
q := func(context.Context, string, ...string) ([]byte, error) {
|
|
58
|
+
t.Fatal("unexpected external query")
|
|
59
|
+
return nil, nil
|
|
60
|
+
}
|
|
61
|
+
o, err := inspectOwnership(context.Background(), l, platform.os, q)
|
|
62
|
+
if err != nil || o.Managed {
|
|
63
|
+
t.Fatal("portable install misclassified", o, err)
|
|
64
|
+
}
|
|
65
|
+
marker := filepath.Join(markerDir, ".vip-next-installer.json")
|
|
66
|
+
if err := os.WriteFile(marker, []byte(`{"schema":1,"manager":"`+platform.manager+`"}`), 0644); err != nil {
|
|
67
|
+
t.Fatal(err)
|
|
68
|
+
}
|
|
69
|
+
o, err = inspectOwnership(context.Background(), l, platform.os, q)
|
|
70
|
+
if err != nil || !o.Managed || !strings.Contains(o.Instructions, platform.extension) || !strings.Contains(o.Instructions, ReleasesURL) {
|
|
71
|
+
t.Fatal(o, err)
|
|
72
|
+
}
|
|
73
|
+
for _, contents := range []string{"{", `{"schema":2,"manager":"pkg"}`, `{"schema":1,"manager":"unknown"}`} {
|
|
74
|
+
if err := os.WriteFile(marker, []byte(contents), 0644); err != nil {
|
|
75
|
+
t.Fatal(err)
|
|
76
|
+
}
|
|
77
|
+
if _, err := inspectOwnership(context.Background(), l, platform.os, q); err == nil {
|
|
78
|
+
t.Fatal("invalid marker accepted", contents)
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
}
|
|
84
|
+
}
|
|
41
85
|
func TestResolveLayoutPreservesEntrypointSymlink(t *testing.T) {
|
|
42
86
|
l, _ := installFixture(t)
|
|
43
87
|
link := filepath.Join(t.TempDir(), "vip")
|
|
@@ -87,33 +87,73 @@ func TestSelectRejectsIncompleteAndInconsistentReleases(t *testing.T) {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
func TestGitHubPagination(t *testing.T) {
|
|
90
|
+
for _, tc := range []struct {
|
|
91
|
+
name, nextPath string
|
|
92
|
+
}{{"named repository", "/repos/Automattic/vip-cli/releases"}, {"numeric repository ID", "/repositories/116313791/releases"}} {
|
|
93
|
+
t.Run(tc.name, func(t *testing.T) {
|
|
94
|
+
calls := 0
|
|
95
|
+
s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
96
|
+
calls++
|
|
97
|
+
if r.Header.Get("Authorization") != "" {
|
|
98
|
+
t.Error("credentials")
|
|
99
|
+
}
|
|
100
|
+
if r.URL.Path != "/repos/Automattic/vip-cli/releases" {
|
|
101
|
+
t.Error(r.URL.Path)
|
|
102
|
+
}
|
|
103
|
+
if r.URL.Query().Get("page") == "1" {
|
|
104
|
+
w.Header().Set("Link", "<http://"+r.Host+tc.nextPath+"?per_page=100&page=2>; rel=\"next\"")
|
|
105
|
+
fmt.Fprint(w, `[{"tag_name":"4.9.0"}]`)
|
|
106
|
+
} else {
|
|
107
|
+
fmt.Fprint(w, `[{"tag_name":"5.0.0"}]`)
|
|
108
|
+
}
|
|
109
|
+
}))
|
|
110
|
+
defer s.Close()
|
|
111
|
+
rs, err := (GitHub{Client: s.Client(), BaseURL: s.URL}).Releases(context.Background())
|
|
112
|
+
if err != nil || len(rs) != 2 || calls != 2 {
|
|
113
|
+
t.Fatal(rs, err, calls)
|
|
114
|
+
}
|
|
115
|
+
})
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
func TestGitHubRejectsDuplicateNextLinkHeaders(t *testing.T) {
|
|
90
120
|
calls := 0
|
|
91
121
|
s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
92
122
|
calls++
|
|
93
|
-
if r.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if r.URL.Path != "/repos/Automattic/vip-cli/releases" {
|
|
97
|
-
t.Error(r.URL.Path)
|
|
123
|
+
if r.URL.Query().Get("page") == "1" {
|
|
124
|
+
w.Header().Add("Link", "<http://"+r.Host+"/repositories/116313791/releases?page=2>; rel=\"next\"")
|
|
125
|
+
w.Header().Add("Link", "<http://"+r.Host+"/repositories/116313791/releases?page=3>; rel=\"next\"")
|
|
98
126
|
}
|
|
127
|
+
fmt.Fprint(w, `[]`)
|
|
128
|
+
}))
|
|
129
|
+
defer s.Close()
|
|
130
|
+
_, err := (GitHub{Client: s.Client(), BaseURL: s.URL}).Releases(context.Background())
|
|
131
|
+
if err == nil || calls != 1 {
|
|
132
|
+
t.Fatal(err, calls)
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
func TestGitHubRejectsEncodedReleasePaginationSeparator(t *testing.T) {
|
|
137
|
+
calls := 0
|
|
138
|
+
s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
139
|
+
calls++
|
|
99
140
|
if r.URL.Query().Get("page") == "1" {
|
|
100
|
-
w.Header().Set("Link", "<http://"+r.Host+"/
|
|
101
|
-
fmt.Fprint(w, `[{"tag_name":"4.9.0"}]`)
|
|
102
|
-
} else {
|
|
103
|
-
fmt.Fprint(w, `[{"tag_name":"5.0.0"}]`)
|
|
141
|
+
w.Header().Set("Link", "<http://"+r.Host+"/repositories/116313791%2Freleases?page=2>; rel=\"next\"")
|
|
104
142
|
}
|
|
143
|
+
fmt.Fprint(w, `[]`)
|
|
105
144
|
}))
|
|
106
145
|
defer s.Close()
|
|
107
|
-
|
|
108
|
-
if err
|
|
109
|
-
t.Fatal(
|
|
146
|
+
_, err := (GitHub{Client: s.Client(), BaseURL: s.URL}).Releases(context.Background())
|
|
147
|
+
if err == nil || calls != 1 {
|
|
148
|
+
t.Fatal(err, calls)
|
|
110
149
|
}
|
|
111
150
|
}
|
|
151
|
+
|
|
112
152
|
func TestGitHubErrors(t *testing.T) {
|
|
113
153
|
for _, tc := range []struct {
|
|
114
154
|
status int
|
|
115
155
|
body, link string
|
|
116
|
-
}{{429, `{}`, ""}, {200, `broken`, ""}, {200, `[]`, `<https://evil.invalid/next>; rel="next"`}, {200, `[]`, `</repos/Automattic/vip-cli/releases?page=1>; rel="next"`}} {
|
|
156
|
+
}{{429, `{}`, ""}, {200, `broken`, ""}, {200, `[]`, `<https://evil.invalid/next>; rel="next"`}, {200, `[]`, `</repositories/not-a-number/releases?page=2>; rel="next"`}, {200, `[]`, `</repos/Automattic/vip-cli/releases?page=1>; rel="next"`}} {
|
|
117
157
|
s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
118
158
|
w.Header().Set("Link", tc.link)
|
|
119
159
|
w.WriteHeader(tc.status)
|
|
@@ -4,6 +4,7 @@ import (
|
|
|
4
4
|
"context"
|
|
5
5
|
"errors"
|
|
6
6
|
"os"
|
|
7
|
+
"path/filepath"
|
|
7
8
|
"strings"
|
|
8
9
|
"testing"
|
|
9
10
|
"time"
|
|
@@ -28,6 +29,44 @@ func TestServiceCheckAndChannelPersistence(t *testing.T) {
|
|
|
28
29
|
t.Fatal("failed check changed channel")
|
|
29
30
|
}
|
|
30
31
|
}
|
|
32
|
+
|
|
33
|
+
func TestServiceNativeInstallerNeverDownloadsOrReplaces(t *testing.T) {
|
|
34
|
+
for _, manager := range []string{"pkg", "msi"} {
|
|
35
|
+
t.Run(manager, func(t *testing.T) {
|
|
36
|
+
l, _ := installFixture(t)
|
|
37
|
+
before, err := os.ReadFile(l.CLI)
|
|
38
|
+
if err != nil {
|
|
39
|
+
t.Fatal(err)
|
|
40
|
+
}
|
|
41
|
+
if err := os.WriteFile(filepath.Join(filepath.Dir(l.CLI), ".vip-next-installer.json"), []byte(`{"schema":1,"manager":"`+manager+`"}`), 0644); err != nil {
|
|
42
|
+
t.Fatal(err)
|
|
43
|
+
}
|
|
44
|
+
s := Service{Installed: "5.0.0", Platform: Platform{"linux", "amd64"}, State: State{CacheDir: t.TempDir(), ConfigDir: t.TempDir()}, Executable: func() (string, error) { return l.CLI, nil }, Fetch: func(context.Context) ([]Release, error) { return []Release{release("5.0.1")}, nil }}
|
|
45
|
+
s.Installer.InspectOwnership = func(ctx context.Context, layout Layout) (Ownership, error) {
|
|
46
|
+
platform := "darwin"
|
|
47
|
+
if manager == "msi" {
|
|
48
|
+
platform = "windows"
|
|
49
|
+
}
|
|
50
|
+
return inspectOwnership(ctx, layout, platform, func(context.Context, string, ...string) ([]byte, error) { t.Fatal("unexpected query"); return nil, nil })
|
|
51
|
+
}
|
|
52
|
+
s.Stage = func(context.Context, Candidate, Platform, string) (Bundle, error) {
|
|
53
|
+
t.Fatal("installer-managed binaries must not be downloaded")
|
|
54
|
+
return Bundle{}, nil
|
|
55
|
+
}
|
|
56
|
+
out, err := s.Run(context.Background(), Request{}, nil)
|
|
57
|
+
if err != nil || out.Updated || !strings.Contains(out.Instructions, "."+manager) {
|
|
58
|
+
t.Fatal(out, err)
|
|
59
|
+
}
|
|
60
|
+
after, err := os.ReadFile(l.CLI)
|
|
61
|
+
if err != nil || string(before) != string(after) {
|
|
62
|
+
t.Fatal("installed bytes changed", err)
|
|
63
|
+
}
|
|
64
|
+
if _, err := os.Stat(markerPath(l)); !os.IsNotExist(err) {
|
|
65
|
+
t.Fatal("created an update recovery record", err)
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
}
|
|
69
|
+
}
|
|
31
70
|
func TestServiceStableAheadAndManagedInstall(t *testing.T) {
|
|
32
71
|
s := Service{Installed: "5.1.0-beta.1", Platform: Platform{"linux", "amd64"}, State: State{CacheDir: t.TempDir(), ConfigDir: t.TempDir()}, Now: time.Now, Fetch: func(context.Context) ([]Release, error) { return []Release{release("5.0.0")}, nil }}
|
|
33
72
|
out, err := s.Run(context.Background(), Request{Channel: Stable, ExplicitChannel: true}, nil)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
package upload
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"bytes"
|
|
5
|
+
"context"
|
|
6
|
+
"io"
|
|
7
|
+
"net/http"
|
|
8
|
+
"os"
|
|
9
|
+
"path/filepath"
|
|
10
|
+
"strings"
|
|
11
|
+
"testing"
|
|
12
|
+
|
|
13
|
+
"github.com/Automattic/vip/internal/debuglog"
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
func TestUploadDebugSummarizesWithoutFileContentsOrCredentials(t *testing.T) {
|
|
17
|
+
for _, compress := range []bool{false, true} {
|
|
18
|
+
t.Run(map[bool]string{false: "plain", true: "compressed"}[compress], func(t *testing.T) {
|
|
19
|
+
c := stubPresignServer(t, func(w http.ResponseWriter, r *http.Request) {
|
|
20
|
+
_, _ = io.Copy(io.Discard, r.Body)
|
|
21
|
+
_, _ = w.Write([]byte("RESPONSE_SECRET"))
|
|
22
|
+
})
|
|
23
|
+
c.Token = "TOKEN_SECRET"
|
|
24
|
+
content := []byte("SQL_SECRET")
|
|
25
|
+
if compress {
|
|
26
|
+
content = bytes.Repeat(content, int(CompressThreshold)/len(content)+1)
|
|
27
|
+
}
|
|
28
|
+
meta, err := GetFileMeta(writeTemp(t, "PATH_SECRET.sql", content))
|
|
29
|
+
if err != nil {
|
|
30
|
+
t.Fatal(err)
|
|
31
|
+
}
|
|
32
|
+
var logs bytes.Buffer
|
|
33
|
+
res, err := c.UploadImportFile(debuglog.WithLogger(context.Background(), "vip:lib/client-file-uploader", &logs), 1, 2, meta, "md5", nil)
|
|
34
|
+
if err != nil {
|
|
35
|
+
t.Fatal(err)
|
|
36
|
+
}
|
|
37
|
+
if compress {
|
|
38
|
+
defer os.RemoveAll(filepath.Dir(res.Meta.FileName))
|
|
39
|
+
}
|
|
40
|
+
for _, want := range []string{"bytes=", "checksum", "PutObject", "Upload complete"} {
|
|
41
|
+
if !strings.Contains(logs.String(), want) {
|
|
42
|
+
t.Errorf("missing %q in %q", want, logs.String())
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if compress && !strings.Contains(logs.String(), "Compression complete") {
|
|
46
|
+
t.Errorf("missing compression diagnostic: %s", &logs)
|
|
47
|
+
}
|
|
48
|
+
for _, secret := range []string{"SQL_SECRET", "PATH_SECRET", "TOKEN_SECRET", "RESPONSE_SECRET", res.Checksum} {
|
|
49
|
+
if strings.Contains(logs.String(), secret) {
|
|
50
|
+
t.Errorf("leaked %q", secret)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
func TestMultipartDebugReportsPartCountWithoutUploadIdentifiers(t *testing.T) {
|
|
58
|
+
_, c := newMultipartTest(t)
|
|
59
|
+
meta, err := GetFileMeta(writeTemp(t, "PATH_SECRET.sql", bytes.Repeat([]byte("x"), 40)))
|
|
60
|
+
if err != nil {
|
|
61
|
+
t.Fatal(err)
|
|
62
|
+
}
|
|
63
|
+
var logs bytes.Buffer
|
|
64
|
+
_, err = c.uploadUsingMultipart(debuglog.WithLogger(context.Background(), "vip:lib/client-file-uploader", &logs), 1, 2, meta, 16, nil)
|
|
65
|
+
if err != nil {
|
|
66
|
+
t.Fatal(err)
|
|
67
|
+
}
|
|
68
|
+
if !strings.Contains(logs.String(), "Multipart") || !strings.Contains(logs.String(), "parts=3") {
|
|
69
|
+
t.Errorf("missing strategy/count: %s", &logs)
|
|
70
|
+
}
|
|
71
|
+
for _, secret := range []string{"UPLOAD123", "etag-", "PATH_SECRET", c.APIHost} {
|
|
72
|
+
if strings.Contains(logs.String(), secret) {
|
|
73
|
+
t.Errorf("leaked %q", secret)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -10,6 +10,8 @@ import (
|
|
|
10
10
|
"strings"
|
|
11
11
|
"sync"
|
|
12
12
|
"sync/atomic"
|
|
13
|
+
|
|
14
|
+
"github.com/Automattic/vip/internal/debuglog"
|
|
13
15
|
)
|
|
14
16
|
|
|
15
17
|
// initiateResult is S3's CreateMultipartUpload response
|
|
@@ -66,6 +68,7 @@ func (c *Client) uploadUsingMultipart(ctx context.Context, appID, envID int64, m
|
|
|
66
68
|
if err != nil {
|
|
67
69
|
return "", err
|
|
68
70
|
}
|
|
71
|
+
debuglog.Printf(ctx, "vip:lib/client-file-uploader", "Uploading to S3 using Multipart: parts=%d concurrency=%d", len(parts), MaxConcurrentPartUploads)
|
|
69
72
|
etags, err := c.uploadParts(ctx, appID, envID, meta, init.UploadId, parts, progressCb)
|
|
70
73
|
if err != nil {
|
|
71
74
|
return "", err
|
|
@@ -6,6 +6,8 @@ import (
|
|
|
6
6
|
"os"
|
|
7
7
|
"path/filepath"
|
|
8
8
|
"strings"
|
|
9
|
+
|
|
10
|
+
"github.com/Automattic/vip/internal/debuglog"
|
|
9
11
|
)
|
|
10
12
|
|
|
11
13
|
// UploadResult mirrors uploadImportFileToS3's return
|
|
@@ -31,7 +33,10 @@ func gzRename(base string) string {
|
|
|
31
33
|
// 2. checksum the (possibly compressed) file,
|
|
32
34
|
// 3. PutObject below MultipartThreshold, multipart at/above it.
|
|
33
35
|
func (c *Client) UploadImportFile(ctx context.Context, appID, envID int64, meta FileMeta, hashType string, progressCb func(string)) (*UploadResult, error) {
|
|
36
|
+
debuglog.Printf(ctx, "vip:lib/client-file-uploader", "File: bytes=%d compressed=%t", meta.FileSize, meta.IsCompressed)
|
|
34
37
|
if !meta.IsCompressed && meta.FileSize >= CompressThreshold {
|
|
38
|
+
debuglog.Printf(ctx, "vip:lib/client-file-uploader", "Compressing file prior to transfer")
|
|
39
|
+
originalSize := meta.FileSize
|
|
35
40
|
tmpDir, err := os.MkdirTemp("", "vip-client-file-uploader")
|
|
36
41
|
if err != nil {
|
|
37
42
|
return nil, fmt.Errorf("Unable to create temporary working directory: %s", err.Error())
|
|
@@ -48,16 +53,20 @@ func (c *Client) UploadImportFile(ctx context.Context, appID, envID int64, meta
|
|
|
48
53
|
return nil, err
|
|
49
54
|
}
|
|
50
55
|
meta.FileSize = fi.Size()
|
|
56
|
+
debuglog.Printf(ctx, "vip:lib/client-file-uploader", "Compression complete: bytes=%d saved_bytes=%d", meta.FileSize, originalSize-meta.FileSize)
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
if hashType == "" {
|
|
54
60
|
hashType = "md5"
|
|
55
61
|
}
|
|
62
|
+
debuglog.Printf(ctx, "vip:lib/client-file-uploader", "Calculating file checksum")
|
|
56
63
|
checksum, err := FileHash(meta.FileName, hashType)
|
|
57
64
|
if err != nil {
|
|
58
65
|
return nil, err
|
|
59
66
|
}
|
|
60
67
|
|
|
68
|
+
debuglog.Printf(ctx, "vip:lib/client-file-uploader", "Calculated file checksum")
|
|
69
|
+
|
|
61
70
|
var result string
|
|
62
71
|
if meta.FileSize < MultipartThreshold {
|
|
63
72
|
result, err = c.uploadUsingPutObject(ctx, appID, envID, meta, progressCb)
|
|
@@ -67,5 +76,6 @@ func (c *Client) UploadImportFile(ctx context.Context, appID, envID int64, meta
|
|
|
67
76
|
if err != nil {
|
|
68
77
|
return nil, err
|
|
69
78
|
}
|
|
79
|
+
debuglog.Printf(ctx, "vip:lib/client-file-uploader", "Upload complete: bytes=%d", meta.FileSize)
|
|
70
80
|
return &UploadResult{Meta: meta, Checksum: checksum, Result: result}, nil
|
|
71
81
|
}
|
|
@@ -7,6 +7,8 @@ import (
|
|
|
7
7
|
"net/http"
|
|
8
8
|
"os"
|
|
9
9
|
"sync/atomic"
|
|
10
|
+
|
|
11
|
+
"github.com/Automattic/vip/internal/debuglog"
|
|
10
12
|
)
|
|
11
13
|
|
|
12
14
|
// progressReader counts bytes read and reports floor(100*read/total)% via
|
|
@@ -42,6 +44,7 @@ func (rc readCloser) Close() error { return rc.closer.Close() }
|
|
|
42
44
|
// (client-file-uploader.ts:255). Returns "ok" on HTTP 200, otherwise an
|
|
43
45
|
// error wrapping the S3 <Error> payload.
|
|
44
46
|
func (c *Client) uploadUsingPutObject(ctx context.Context, appID, envID int64, meta FileMeta, progressCb func(string)) (string, error) {
|
|
47
|
+
debuglog.Printf(ctx, "vip:lib/client-file-uploader", "Uploading to S3 using PutObject")
|
|
45
48
|
pre, err := c.GetSignedUploadRequestData(ctx, SignedRequestArgs{
|
|
46
49
|
Action: "PutObject", AppID: appID, EnvID: envID, BaseName: meta.BaseName,
|
|
47
50
|
})
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
package wpssh_test
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"bytes"
|
|
5
|
+
"context"
|
|
6
|
+
"errors"
|
|
7
|
+
"io"
|
|
8
|
+
"strings"
|
|
9
|
+
"testing"
|
|
10
|
+
|
|
11
|
+
"github.com/Automattic/vip/internal/debuglog"
|
|
12
|
+
"github.com/Automattic/vip/internal/wpssh"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
func TestSSHDiagnosticsPreserveOutputAndExcludeSessionData(t *testing.T) {
|
|
16
|
+
for _, enabled := range []bool{false, true} {
|
|
17
|
+
for _, code := range []int{0, 7} {
|
|
18
|
+
host, port := startEchoSSHServer(t, code)
|
|
19
|
+
key := testClientKeyPEM(t)
|
|
20
|
+
var out, diagnostics bytes.Buffer
|
|
21
|
+
selector := ""
|
|
22
|
+
if enabled {
|
|
23
|
+
selector = "@automattic/vip:wp/ssh"
|
|
24
|
+
}
|
|
25
|
+
ctx := debuglog.WithLogger(context.Background(), selector, &diagnostics)
|
|
26
|
+
err := wpssh.Run(ctx, wpssh.Auth{Host: host, Port: port, Username: "secret-user", PrivateKey: key, GUID: "secret-guid", InputToken: "secret-token"}, wpssh.Streams{Stdin: strings.NewReader(""), Stdout: &out, Stderr: io.Discard}, wpssh.Meta{Version: "test", Rows: 15, Columns: 100})
|
|
27
|
+
var ec *wpssh.ExitCodeError
|
|
28
|
+
if code == 0 && err != nil || code != 0 && (!errors.As(err, &ec) || ec.Code != code) {
|
|
29
|
+
t.Fatalf("exit %d: %v", code, err)
|
|
30
|
+
}
|
|
31
|
+
if out.String() != "GUID=secret-guid INPUT_TOKEN=secret-token VERSION=test ROWS=15 COLUMNS=100 TTY=false" {
|
|
32
|
+
t.Fatalf("stdout changed: %q", out.String())
|
|
33
|
+
}
|
|
34
|
+
if !enabled {
|
|
35
|
+
if diagnostics.Len() != 0 {
|
|
36
|
+
t.Fatalf("default diagnostics: %s", &diagnostics)
|
|
37
|
+
}
|
|
38
|
+
continue
|
|
39
|
+
}
|
|
40
|
+
for _, stage := range []string{"Connecting to SSH", "SSH connected", "SSH exit code="} {
|
|
41
|
+
if !strings.Contains(diagnostics.String(), stage) {
|
|
42
|
+
t.Errorf("missing %q in %q", stage, diagnostics.String())
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
for _, sensitive := range []string{host, port, "secret-user", key, "secret-guid", "secret-token", "GUID="} {
|
|
46
|
+
if strings.Contains(diagnostics.String(), sensitive) {
|
|
47
|
+
t.Errorf("diagnostics disclose session data %q", sensitive)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
func TestSSHDiagnosticsKeyFailureDoesNotPrintKeyOrPassphrase(t *testing.T) {
|
|
55
|
+
var diagnostics bytes.Buffer
|
|
56
|
+
ctx := debuglog.WithLogger(context.Background(), "@automattic/vip:wp/ssh", &diagnostics)
|
|
57
|
+
err := wpssh.Run(ctx, wpssh.Auth{PrivateKey: "secret-private-key", Passphrase: "secret-passphrase"}, wpssh.Streams{}, wpssh.Meta{})
|
|
58
|
+
if err == nil {
|
|
59
|
+
t.Fatal("expected invalid key error")
|
|
60
|
+
}
|
|
61
|
+
if !strings.Contains(diagnostics.String(), "SSH authentication key rejected") {
|
|
62
|
+
t.Fatalf("missing stage: %q", diagnostics.String())
|
|
63
|
+
}
|
|
64
|
+
if strings.Contains(diagnostics.String(), "secret-") {
|
|
65
|
+
t.Fatalf("secret in diagnostics: %q", diagnostics.String())
|
|
66
|
+
}
|
|
67
|
+
}
|
package/internal/wpssh/wpssh.go
CHANGED
|
@@ -12,6 +12,8 @@ import (
|
|
|
12
12
|
"net"
|
|
13
13
|
|
|
14
14
|
"golang.org/x/crypto/ssh"
|
|
15
|
+
|
|
16
|
+
"github.com/Automattic/vip/internal/debuglog"
|
|
15
17
|
)
|
|
16
18
|
|
|
17
19
|
// SSH_HANDSHAKE_TIMEOUT_MS matches the Node constant (wp-ssh.ts:22).
|
|
@@ -56,6 +58,7 @@ func (e *ExitCodeError) Error() string {
|
|
|
56
58
|
func Run(ctx context.Context, auth Auth, streams Streams, meta Meta) error {
|
|
57
59
|
signer, err := parseSigner(auth.PrivateKey, auth.Passphrase)
|
|
58
60
|
if err != nil {
|
|
61
|
+
debuglog.Printf(ctx, "@automattic/vip:wp/ssh", "SSH authentication key rejected")
|
|
59
62
|
return fmt.Errorf("wpssh: parse private key: %w", err)
|
|
60
63
|
}
|
|
61
64
|
|
|
@@ -70,11 +73,13 @@ func Run(ctx context.Context, auth Auth, streams Streams, meta Meta) error {
|
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
addr := net.JoinHostPort(auth.Host, auth.Port)
|
|
76
|
+
debuglog.Printf(ctx, "@automattic/vip:wp/ssh", "Connecting to SSH")
|
|
73
77
|
client, err := ssh.Dial("tcp", addr, cfg)
|
|
74
78
|
if err != nil {
|
|
75
79
|
return fmt.Errorf("wpssh: dial %s: %w", addr, err)
|
|
76
80
|
}
|
|
77
81
|
defer client.Close()
|
|
82
|
+
debuglog.Printf(ctx, "@automattic/vip:wp/ssh", "SSH connected")
|
|
78
83
|
|
|
79
84
|
session, err := client.NewSession()
|
|
80
85
|
if err != nil {
|
|
@@ -99,10 +104,12 @@ func Run(ctx context.Context, auth Auth, streams Streams, meta Meta) error {
|
|
|
99
104
|
if err := session.Run(cmd); err != nil {
|
|
100
105
|
var exitErr *ssh.ExitError
|
|
101
106
|
if errors.As(err, &exitErr) {
|
|
107
|
+
debuglog.Printf(ctx, "@automattic/vip:wp/ssh", "SSH exit code=%d", exitErr.ExitStatus())
|
|
102
108
|
return &ExitCodeError{Code: exitErr.ExitStatus(), GUID: auth.GUID}
|
|
103
109
|
}
|
|
104
110
|
return fmt.Errorf("wpssh: run: %w", err)
|
|
105
111
|
}
|
|
112
|
+
debuglog.Printf(ctx, "@automattic/vip:wp/ssh", "SSH exit code=0")
|
|
106
113
|
return nil
|
|
107
114
|
}
|
|
108
115
|
|