@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
package/docs/BUILD-SIGNING.md
CHANGED
|
@@ -229,7 +229,7 @@ real release with a CA certificate.
|
|
|
229
229
|
Release builds run on **Buildkite** (Automattic's signing stack), not GitHub
|
|
230
230
|
Actions. See `.buildkite/pipeline.yml` and the per-platform scripts.
|
|
231
231
|
|
|
232
|
-
- **Pipeline:** `.buildkite/pipeline.yml` — three independent steps (macOS,
|
|
232
|
+
- **Pipeline:** `.buildkite/pipeline.yml` — three independent binary steps (macOS,
|
|
233
233
|
Windows, Linux), each building on its own native agent.
|
|
234
234
|
Setup sources `.buildkite/shared-pipeline-vars` before pipeline upload
|
|
235
235
|
(CI toolkit plugin pin, `BIN_BASE`, `IMAGE_ID`).
|
|
@@ -240,13 +240,151 @@ Actions. See `.buildkite/pipeline.yml` and the per-platform scripts.
|
|
|
240
240
|
every build.
|
|
241
241
|
- **macOS certs:** fastlane `match` (`fastlane/Fastfile` →
|
|
242
242
|
`configure_code_signing`), `type: developer_id`, stored in S3
|
|
243
|
-
(`a8c-fastlane-match`)
|
|
244
|
-
`
|
|
245
|
-
|
|
243
|
+
(`a8c-fastlane-match`), in readonly mode. The separate
|
|
244
|
+
`configure_installer_signing` lane adds the Developer ID Installer
|
|
245
|
+
certificate through match's `additional_cert_types`. Signing and
|
|
246
|
+
notarization are the `sign_and_notarize` lane: Developer ID Application,
|
|
247
|
+
identifier `com.automattic.vip-cli`, no staple on a bare Mach-O.
|
|
246
248
|
- **macOS artifacts:** per-arch `.tar.gz` of `vip-next` + `go-search-replace`,
|
|
247
|
-
both signed and notarized (online-verified)
|
|
249
|
+
both signed and notarized (online-verified), plus a signed, notarized,
|
|
250
|
+
stapled `.pkg` for each architecture.
|
|
248
251
|
- **Windows / Linux artifacts:** the same tarball layout. Windows Authenticode-
|
|
249
|
-
signs both PEs via Azure Trusted Signing; Linux checksums only.
|
|
252
|
+
signs both PEs and the x64 `.msi` via Azure Trusted Signing; Linux checksums only.
|
|
253
|
+
|
|
254
|
+
### Native installers
|
|
255
|
+
|
|
256
|
+
Separate macOS and Windows installer jobs depend on their platform's binary
|
|
257
|
+
job. They download its signed archives from the same Buildkite build, verify
|
|
258
|
+
checksums and the exact two-file payload, and package those existing bytes.
|
|
259
|
+
Installer jobs use Buildkite `soft_fail` so missing signing prerequisites or
|
|
260
|
+
packaging failures do not fail the binary build. Their failures remain visible
|
|
261
|
+
in Buildkite. Archives remain available for portable installations and
|
|
262
|
+
`vip-next update`. No Node.js runtime is installed or required by these packages.
|
|
263
|
+
|
|
264
|
+
| Platform | Package | Installation |
|
|
265
|
+
| ------------------- | ---------------------------- | ----------------------------------- |
|
|
266
|
+
| macOS Apple Silicon | `vip-next-darwin-arm64.pkg` | `/usr/local/lib/vip-cli/bin` |
|
|
267
|
+
| macOS Intel | `vip-next-darwin-amd64.pkg` | `/usr/local/lib/vip-cli/bin` |
|
|
268
|
+
| Windows x64 | `vip-next-windows-amd64.msi` | `%ProgramFiles%\Automattic\VIP CLI` |
|
|
269
|
+
|
|
270
|
+
Run the package to install or upgrade; administrative privileges are required.
|
|
271
|
+
Open a new terminal afterward, then run `vip-next --version`. The macOS package
|
|
272
|
+
adds `/etc/paths.d/vip-cli`; Windows adds its directory to the system PATH and
|
|
273
|
+
removes that entry on uninstall. Neither package creates a `vip` alias or
|
|
274
|
+
replaces the Node/npm installation. Existing earlier PATH entries can still
|
|
275
|
+
select a different `vip-next`; use `command -v vip-next` (macOS) or
|
|
276
|
+
`where.exe vip-next` (Windows) to identify the active installation.
|
|
277
|
+
|
|
278
|
+
Installer-owned directories contain `.vip-next-installer.json`. The Go updater
|
|
279
|
+
recognizes this file and directs users to download the appropriate installer
|
|
280
|
+
instead of replacing package-managed binaries. Keep this metadata intact.
|
|
281
|
+
`vip-next update --check` still checks for available releases. Portable tarballs
|
|
282
|
+
do not contain this marker and retain their existing self-update behavior.
|
|
283
|
+
|
|
284
|
+
On Windows, uninstall **VIP CLI** through Installed apps or `msiexec /x` with
|
|
285
|
+
the installed package. On macOS, run:
|
|
286
|
+
|
|
287
|
+
```sh
|
|
288
|
+
sudo /usr/local/lib/vip-cli/uninstall.sh
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
The macOS uninstaller removes only package-owned files, the matching PATH entry,
|
|
292
|
+
and its receipt (`com.automattic.vip-cli`); it preserves other files in the
|
|
293
|
+
installation directory. Neither uninstaller deletes user configuration or
|
|
294
|
+
credentials. Uninstall first if deliberately moving to an older version.
|
|
295
|
+
|
|
296
|
+
#### Build prerequisites
|
|
297
|
+
|
|
298
|
+
- **macOS:** `configure_code_signing` retrieves only the **Developer ID Application**
|
|
299
|
+
certificate. The installer job separately calls `configure_installer_signing`
|
|
300
|
+
for the **Developer ID Installer** certificate. Both use the existing fastlane
|
|
301
|
+
match S3 storage in readonly mode. Builds never create or renew certificates.
|
|
302
|
+
The Installer certificate is not yet in match storage, so the installer job
|
|
303
|
+
fails until it is provisioned (see below). Xcode command-line tools provide
|
|
304
|
+
`pkgbuild`, `productbuild`, `productsign`, `notarytool`, and `stapler`.
|
|
305
|
+
- **Windows:** the build uses .NET SDK 8 and pinned WiX 5.0.2, with a matching
|
|
306
|
+
UI extension, as build-only tools. WiX is restored into a temporary build
|
|
307
|
+
directory. This pin does not adopt WiX 6+ sponsorship requirements. Existing
|
|
308
|
+
Azure Trusted Signing credentials/signing tools sign the final MSI.
|
|
309
|
+
- Missing signing prerequisites fail only the corresponding job; there is no
|
|
310
|
+
unsigned fallback. Binary job failures still fail the build. Installer jobs
|
|
311
|
+
upload explicitly only after all packages pass signing and payload verification;
|
|
312
|
+
automatic post-failure uploads are disabled. Checksums follow final signing/stapling.
|
|
313
|
+
|
|
314
|
+
The promotion helper requires all five archive/checksum pairs (10 assets).
|
|
315
|
+
The three installer/checksum pairs are optional (up to 16 assets total), but a
|
|
316
|
+
package and its checksum must appear together. It verifies every supplied
|
|
317
|
+
checksum, the exact two-binary tar layout, and the installer container type.
|
|
318
|
+
Unknown, duplicate, incomplete, or corrupt artifacts still block promotion. Native jobs verify
|
|
319
|
+
signatures; the Linux promotion job does not independently verify Apple or
|
|
320
|
+
Authenticode signatures. Before checksumming/uploading, macOS expands the final
|
|
321
|
+
PKG and Windows performs a temporary administrative extraction of the signed
|
|
322
|
+
MSI to verify the packaged executable hashes, license, and ownership metadata.
|
|
323
|
+
These checks do not install the CLI on the Buildkite host.
|
|
324
|
+
|
|
325
|
+
#### Provisioning the Developer ID Installer certificate
|
|
326
|
+
|
|
327
|
+
App Store Connect's API does not model this certificate type at all:
|
|
328
|
+
`filter[certificateType]=DEVELOPER_ID_INSTALLER` is rejected as an invalid
|
|
329
|
+
value, and the accepted list contains `DEVELOPER_ID_APPLICATION` and
|
|
330
|
+
`DEVELOPER_ID_KEXT` but no installer entry. No API-driven inventory can
|
|
331
|
+
therefore report whether the team already holds one; check
|
|
332
|
+
<https://developer.apple.com/account/resources/certificates> directly. Creating
|
|
333
|
+
one is Account Holder only and cannot be automated from CI.
|
|
334
|
+
|
|
335
|
+
Import the `.cer` and `.p12` into match storage (the command prompts for both
|
|
336
|
+
paths):
|
|
337
|
+
|
|
338
|
+
```sh
|
|
339
|
+
bundle exec fastlane match import \
|
|
340
|
+
--type developer_id_installer \
|
|
341
|
+
--platform macos \
|
|
342
|
+
--team_id PZYM8XX95Q \
|
|
343
|
+
--storage_mode s3 \
|
|
344
|
+
--s3_bucket a8c-fastlane-match \
|
|
345
|
+
--s3_region us-east-2 \
|
|
346
|
+
--skip_provisioning_profiles true \
|
|
347
|
+
--skip_certificate_matching true
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
`--skip_certificate_matching true` is required, not optional: without it
|
|
351
|
+
`match import` looks the certificate up on the portal by type to recover its
|
|
352
|
+
ID, which fails on the same rejected filter value.
|
|
353
|
+
|
|
354
|
+
Note the asymmetry: `match import` handles `developer_id_installer` as a
|
|
355
|
+
top-level `--type`, but `match` itself does not. Fetching it requires
|
|
356
|
+
`additional_cert_types`, as `configure_installer_signing` does — passing it as
|
|
357
|
+
match's top-level `type` silently installs an Apple Distribution certificate
|
|
358
|
+
instead and reports success.
|
|
359
|
+
|
|
360
|
+
#### Package version ordering
|
|
361
|
+
|
|
362
|
+
MSI requires three numeric version fields. Both installer formats use
|
|
363
|
+
`major.minor.(patch * 1000 + stage)` from `cmd/installer-version`: development
|
|
364
|
+
builds use stage 0; alpha.N uses 100+N; beta.N uses 300+N; rc.N uses 500+N;
|
|
365
|
+
stable uses 999. For example, `5.0.0-beta.1` becomes `5.0.301` and `5.0.0`
|
|
366
|
+
becomes `5.0.999`. The binaries retain their full semantic version.
|
|
367
|
+
|
|
368
|
+
Major/minor are limited to 255, patch to 64, and prerelease sequence to 199.
|
|
369
|
+
Unsupported values fail explicitly in installer jobs; binary releases retain
|
|
370
|
+
their existing semantic-version range.
|
|
371
|
+
Development builds of the same semantic base share a package version and may
|
|
372
|
+
require uninstalling the previous development MSI before installing another.
|
|
373
|
+
|
|
374
|
+
#### Installer tests
|
|
375
|
+
|
|
376
|
+
`python3 -m unittest discover -s packaging/macos -p 'test_package.py'` creates
|
|
377
|
+
and expands real unsigned packages in temporary directories. It verifies
|
|
378
|
+
payload bytes and runs preinstall conflict/downgrade checks against a temporary
|
|
379
|
+
volume tree; it does not install on the host.
|
|
380
|
+
|
|
381
|
+
The existing Go CI native matrix also runs `packaging/macos/test-install.sh`
|
|
382
|
+
and `packaging/windows/test-msi.ps1` on disposable GitHub-hosted runners. These
|
|
383
|
+
tests require `VIP_INSTALLER_E2E=1`, check for pre-existing installations, and
|
|
384
|
+
exercise actual install, upgrade, downgrade refusal, executable versions, PATH,
|
|
385
|
+
updater ownership, and uninstall using unsigned fixture packages. They are not
|
|
386
|
+
run on shared Buildkite agents. Signature/notarization validation happens in
|
|
387
|
+
the production Buildkite build and must also pass before a release is promoted.
|
|
250
388
|
|
|
251
389
|
### GitHub prerelease promotion setup
|
|
252
390
|
|
|
@@ -282,6 +420,9 @@ On a Buildkite build, confirm:
|
|
|
282
420
|
- macOS binaries: `codesign --verify --strict --verbose=2` passes and
|
|
283
421
|
`codesign --display` shows `Identifier=com.automattic.vip-cli`.
|
|
284
422
|
- Windows: `signtool verify /pa /v <exe>` passes.
|
|
423
|
+
- macOS installers: `pkgutil --check-signature <pkg>`, `xcrun stapler validate
|
|
424
|
+
<pkg>`, and `spctl --assess --type install <pkg>` pass.
|
|
425
|
+
- Windows installer: `signtool verify /pa /v <msi>` passes.
|
|
285
426
|
- Every artifact has a matching `.sha256`.
|
|
286
427
|
|
|
287
428
|
## Release checklist
|
package/docs/DEBUGGING.md
CHANGED
|
@@ -31,3 +31,64 @@ For help, see: https://nodejs.org/en/docs/inspector
|
|
|
31
31
|
6. Confirm that you attached the debugger to continue command execution.
|
|
32
32
|
7. Resolve the problem.
|
|
33
33
|
8. [Optional but recommended] Pay it forward and implement a similar approach to other internal/external tooling.
|
|
34
|
+
|
|
35
|
+
## Go CLI diagnostics
|
|
36
|
+
|
|
37
|
+
Use `-d` or `--debug` to send diagnostics to stderr while keeping command results on stdout:
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
vip-next dev-env list --debug
|
|
41
|
+
vip-next @example.develop edge-workers list -d --format=json > workers.json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The Go CLI uses the corresponding Node CLI namespaces. Select namespaces with a
|
|
45
|
+
comma-separated list or wildcards, and exclude namespaces with a leading `-`:
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
vip-next @example.develop edge-workers list --debug='@automattic/vip:http*'
|
|
49
|
+
vip-next dev-env list --debug='*,-vip:proxy-dispatcher'
|
|
50
|
+
DEBUG='@automattic/vip:bin:dev-environment' vip-next dev-env list
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
A nonempty debug flag overrides `DEBUG`. For remote WP-CLI, put VIP's debug flag **before**
|
|
54
|
+
`wp`; arguments after `wp` belong to WP-CLI:
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
vip-next @example.develop -d wp option get home
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Available diagnostics
|
|
61
|
+
|
|
62
|
+
| Namespace | Diagnostics |
|
|
63
|
+
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
|
|
64
|
+
| `@automattic/vip:http` | API requests, without URL credentials or arbitrary query parameters |
|
|
65
|
+
| `@automattic/vip:http:graphql` | Failed requests, retries, operation names, HTTP status, safe GraphQL error metadata |
|
|
66
|
+
| `vip:proxy-dispatcher` | Selected proxy scheme and host |
|
|
67
|
+
| `@automattic/vip:analytics:clients:pendo` | Telemetry send/skip stages and HTTP response status, without credentials, event properties or response bodies |
|
|
68
|
+
| `@automattic/vip:rechallenge:*` | Step-up session creation, pending polling, flow failures |
|
|
69
|
+
| `@automattic/vip:bin:dev-environment` | Local environment lifecycle, discovered environments, container status, import and execution stages |
|
|
70
|
+
| `@automattic/vip:bin:config:envvar` | Remote and local environment-variable operations, without values |
|
|
71
|
+
| `@automattic/vip:bin:config-software` | Software update requests and polling |
|
|
72
|
+
| `@automattic/vip:bin:vip-app-deploy*` | Deployment validation and upload/deployment stages |
|
|
73
|
+
| `@automattic/vip:bin:vip-import-sql`, `vip:vip-import-sql`, `vip:validations:line-by-line` | SQL import options and validation summaries |
|
|
74
|
+
| `vip:vip-import-media` | Media import summaries |
|
|
75
|
+
| `vip:lib/client-file-uploader` | Compression, checksum computation, upload strategy and completion |
|
|
76
|
+
| `vip:lib/site-import/status` | SQL import job and step status |
|
|
77
|
+
| `@automattic/vip:lib:search-and-replace` | Input/output routing and processing stages |
|
|
78
|
+
| `@automattic/vip:wp`, `@automattic/vip:wp/ssh` | Remote connection, retry and exit stages |
|
|
79
|
+
|
|
80
|
+
Messages follow each runtime's implementation. Go uses Compose rather than Lando,
|
|
81
|
+
so Lando initialization messages do not apply. Raw argument, configuration,
|
|
82
|
+
response, SQL and credential dumps from older Node diagnostics are replaced with
|
|
83
|
+
targeted summaries. A successful command can remain quiet when its implementation
|
|
84
|
+
has no applicable diagnostics, or when its namespaces are excluded.
|
|
85
|
+
|
|
86
|
+
The command-family audit covered app, backup, cache, config, db, defensive-mode,
|
|
87
|
+
dev-env, edge-workers, export, import, login, logout, logs, search-replace,
|
|
88
|
+
slowlogs, sync, update, whoami and wp. Families without command-specific Node
|
|
89
|
+
diagnostics use shared request logging where applicable. The Go-only updater has
|
|
90
|
+
no Node command diagnostics to port. Use `DEBUG` to inspect Pendo delivery during
|
|
91
|
+
authentication bootstrap, before command flags are parsed. Pendo requests use the
|
|
92
|
+
current stored token and are skipped when no token is available. Delivery failures
|
|
93
|
+
do not fail the command. Tracking opt-outs also disable Pendo; these diagnostics
|
|
94
|
+
do not add credential-store dumps.
|
package/docs/GO-UPDATES.md
CHANGED
|
@@ -86,6 +86,12 @@ beside the CLI. PATH and `VIP_SEARCH_REPLACE_BIN` targets are never overwritten;
|
|
|
86
86
|
an active override continues to control helper execution.
|
|
87
87
|
|
|
88
88
|
Recognized package-managed installations receive package-manager instructions
|
|
89
|
-
instead of file replacement.
|
|
89
|
+
instead of file replacement. Installations created by the macOS `.pkg` or
|
|
90
|
+
Windows `.msi` contain `.vip-next-installer.json` beside the binaries; keep this
|
|
91
|
+
file intact. When an update is available, `vip-next update` directs these
|
|
92
|
+
installations to the matching installer download. `--check` remains available.
|
|
93
|
+
See [native installer installation and upgrades](BUILD-SIGNING.md#native-installers).
|
|
94
|
+
|
|
95
|
+
Missing bundles, ambiguous layouts, and unwritable
|
|
90
96
|
locations require manual installation. The updater does not elevate privileges.
|
|
91
97
|
Supported release assets are macOS and Linux amd64/arm64, and Windows amd64.
|
package/docs/RELEASING.md
CHANGED
|
@@ -87,8 +87,9 @@ To publish a prerelease:
|
|
|
87
87
|
4. The workflow creates the tag at the selected full commit and creates a draft
|
|
88
88
|
release. The tag triggers Buildkite's native signing jobs.
|
|
89
89
|
5. Wait while the workflow finds the Buildkite build with that exact tag and
|
|
90
|
-
commit, downloads all five archives
|
|
91
|
-
|
|
90
|
+
commit, downloads all five archives, any available native installers, and their
|
|
91
|
+
checksums, validates the archive contents and installer containers, and
|
|
92
|
+
uploads the verified files. See [native installers](BUILD-SIGNING.md#native-installers).
|
|
92
93
|
6. The release becomes public only after all verification and uploads succeed.
|
|
93
94
|
|
|
94
95
|
If a run fails, its tag and draft release remain in place. Fix the cause and
|
package/docs/SETUP.md
CHANGED
|
@@ -98,7 +98,7 @@ This application uses environmental variables for vital configuration informatio
|
|
|
98
98
|
TODO: Update description of the variables.
|
|
99
99
|
|
|
100
100
|
- `API_HOST`: HTTP endpoint to use rather than the default. [For internal VIP use](TESTING.md#local-testing).
|
|
101
|
-
- `DEBUG
|
|
101
|
+
- `DEBUG`: Enable diagnostic namespaces in the Node.js and Go CLIs, for example `DEBUG='@automattic/vip:http*'`. See [debugging](DEBUGGING.md).
|
|
102
102
|
- `DOCKER_CERT_PATH`:
|
|
103
103
|
- `DOCKER_CLIENT_TIMEOUT`:
|
|
104
104
|
- `DOCKER_HOST`:
|
|
@@ -107,6 +107,7 @@ TODO: Update description of the variables.
|
|
|
107
107
|
- `SOCKS_PROXY`:
|
|
108
108
|
- `HTTP_PROXY`:
|
|
109
109
|
- `NO_PROXY`:
|
|
110
|
+
- `VIP_INSTALLER_E2E`: Set to `1` only for native installer lifecycle tests on disposable GitHub-hosted runners. The tests also require `GITHUB_ACTIONS=true` and `RUNNER_ENVIRONMENT=github-hosted`; they install and uninstall system-wide fixture packages. See [installer tests](BUILD-SIGNING.md#installer-tests).
|
|
110
111
|
- `VIP_NO_UPDATE_NOTIFIER`: Set to `1` to disable automatic update checks and notices in the Go CLI. Explicit `vip-next update` commands remain available. See [Go CLI updates](GO-UPDATES.md).
|
|
111
112
|
- `VIP_PROXY`: [For internal VIP use](TESTING.md#local-testing).
|
|
112
113
|
- `VIP_USE_SYSTEM_PROXY`:
|
package/fastlane/Fastfile
CHANGED
|
@@ -9,6 +9,7 @@ PROJECT_ROOT_FOLDER = File.dirname(File.expand_path(__dir__))
|
|
|
9
9
|
|
|
10
10
|
APPLE_TEAM_ID = 'PZYM8XX95Q'
|
|
11
11
|
SIGNING_IDENTITY = "Developer ID Application: Automattic, Inc. (#{APPLE_TEAM_ID})"
|
|
12
|
+
INSTALLER_SIGNING_IDENTITY = "Developer ID Installer: Automattic, Inc. (#{APPLE_TEAM_ID})"
|
|
12
13
|
|
|
13
14
|
# The signature's designated requirement embeds this identifier, and the Keychain ACL
|
|
14
15
|
# guarding the master key is bound to that requirement. `codesign` otherwise derives it
|
|
@@ -38,7 +39,7 @@ before_all do
|
|
|
38
39
|
setup_ci
|
|
39
40
|
end
|
|
40
41
|
|
|
41
|
-
# Fetch the Developer ID Application certificate into the keychain.
|
|
42
|
+
# Fetch only the Developer ID Application certificate into the keychain.
|
|
42
43
|
#
|
|
43
44
|
# @param readonly [Boolean] Use `true` to only fetch the existing certificate from S3 via
|
|
44
45
|
# `match`. Use `false` to create or renew it on App Store Connect.
|
|
@@ -60,6 +61,59 @@ lane :configure_code_signing do |readonly: true|
|
|
|
60
61
|
)
|
|
61
62
|
end
|
|
62
63
|
|
|
64
|
+
# Fetch the Developer ID Installer certificate into the keychain.
|
|
65
|
+
#
|
|
66
|
+
# Separate from `configure_code_signing` so a missing Installer certificate cannot stop the
|
|
67
|
+
# binary jobs publishing portable archives.
|
|
68
|
+
#
|
|
69
|
+
# Do not collapse this into match's top-level `type: 'developer_id_installer'`: match maps only
|
|
70
|
+
# `developer_id_application` through to the certificate generator, so the installer type
|
|
71
|
+
# silently resolves to an Apple Distribution certificate (`match/lib/match/generator.rb`).
|
|
72
|
+
#
|
|
73
|
+
# Readonly with no override, because creating this certificate needs Apple Account Holder
|
|
74
|
+
# access that an App Store Connect API key does not grant. Provision it out of band with
|
|
75
|
+
# `fastlane match import --type developer_id_installer`.
|
|
76
|
+
#
|
|
77
|
+
lane :configure_installer_signing do
|
|
78
|
+
require_env_vars!(*CODE_SIGNING_ENV_VARS)
|
|
79
|
+
|
|
80
|
+
sync_code_signing(
|
|
81
|
+
type: 'developer_id',
|
|
82
|
+
additional_cert_types: ['developer_id_installer'],
|
|
83
|
+
platform: 'macos',
|
|
84
|
+
team_id: APPLE_TEAM_ID,
|
|
85
|
+
app_identifier: [],
|
|
86
|
+
skip_provisioning_profiles: true,
|
|
87
|
+
readonly: true,
|
|
88
|
+
**CODE_SIGNING_STORAGE_OPTIONS
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
verify_installer_identity!
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# The PKG has its own signing identity and stapled notarization ticket. Fetch
|
|
95
|
+
# the Installer certificate via configure_installer_signing before invoking this.
|
|
96
|
+
lane :sign_and_notarize_installer do |package:|
|
|
97
|
+
package = resolve_from_project_root(package)
|
|
98
|
+
UI.user_error!("No installer at '#{package}'") unless File.file?(package)
|
|
99
|
+
require_env_vars!(*ASC_API_KEY_ENV_VARS)
|
|
100
|
+
signed = "#{package}.signed.pkg"
|
|
101
|
+
begin
|
|
102
|
+
sh('productsign', '--sign', INSTALLER_SIGNING_IDENTITY, '--timestamp', package, signed)
|
|
103
|
+
details = sh('pkgutil', '--check-signature', signed, log: false)
|
|
104
|
+
unless details.include?(INSTALLER_SIGNING_IDENTITY)
|
|
105
|
+
UI.user_error!("Installer is not signed by '#{INSTALLER_SIGNING_IDENTITY}'")
|
|
106
|
+
end
|
|
107
|
+
notarize(package: signed, skip_stapling: true, api_key: app_store_connect_api_key, print_log: true)
|
|
108
|
+
sh('xcrun', 'stapler', 'staple', signed)
|
|
109
|
+
sh('xcrun', 'stapler', 'validate', signed)
|
|
110
|
+
sh('spctl', '--assess', '--type', 'install', '--verbose=2', signed)
|
|
111
|
+
FileUtils.mv(signed, package)
|
|
112
|
+
ensure
|
|
113
|
+
FileUtils.rm_f(signed)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
63
117
|
# Sign a built CLI binary with the Developer ID certificate and submit it for notarization.
|
|
64
118
|
#
|
|
65
119
|
# Run `configure_code_signing` first, or run this on a machine that already holds the
|
|
@@ -92,8 +146,8 @@ lane :sign_and_notarize do |binary:|
|
|
|
92
146
|
|
|
93
147
|
notarize(
|
|
94
148
|
package: archive,
|
|
95
|
-
#
|
|
96
|
-
#
|
|
149
|
+
# A bare binary cannot carry a stapled ticket and relies on the online
|
|
150
|
+
# Gatekeeper check. The separate PKG lane staples the installer instead.
|
|
97
151
|
skip_stapling: true,
|
|
98
152
|
api_key: app_store_connect_api_key,
|
|
99
153
|
print_log: true
|
|
@@ -135,6 +189,15 @@ def resolve_from_project_root(path)
|
|
|
135
189
|
File.absolute_path(path, PROJECT_ROOT_FOLDER)
|
|
136
190
|
end
|
|
137
191
|
|
|
192
|
+
# `match` reports success for whatever certificate storage happens to hold, so the identity
|
|
193
|
+
# `productsign` needs is verified rather than assumed.
|
|
194
|
+
def verify_installer_identity!
|
|
195
|
+
identities = sh('security', 'find-identity', '-v', log: false)
|
|
196
|
+
return if identities.include?(INSTALLER_SIGNING_IDENTITY)
|
|
197
|
+
|
|
198
|
+
UI.user_error!("No '#{INSTALLER_SIGNING_IDENTITY}' identity in the keychain:\n#{identities}")
|
|
199
|
+
end
|
|
200
|
+
|
|
138
201
|
def require_env_vars!(*names)
|
|
139
202
|
missing = names.select { |name| ENV[name].to_s.empty? }
|
|
140
203
|
UI.user_error!("Missing required environment variable(s): #{missing.join(', ')}") unless missing.empty?
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'minitest/autorun'
|
|
4
|
+
|
|
5
|
+
# Evaluate the actual Fastfile DSL without accessing credentials or Apple/S3.
|
|
6
|
+
module FastlaneCore
|
|
7
|
+
module Helper
|
|
8
|
+
def self.bundler?
|
|
9
|
+
true
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module UI
|
|
15
|
+
def self.user_error!(message)
|
|
16
|
+
raise message
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class SigningConfigurationTest < Minitest::Test
|
|
21
|
+
def setup
|
|
22
|
+
@lanes = {}
|
|
23
|
+
@calls = []
|
|
24
|
+
@dsl = Object.new
|
|
25
|
+
lanes = @lanes
|
|
26
|
+
calls = @calls
|
|
27
|
+
@dsl.define_singleton_method(:before_all) { |&block| }
|
|
28
|
+
@dsl.define_singleton_method(:lane) { |name, &block| lanes[name] = block }
|
|
29
|
+
@dsl.define_singleton_method(:sync_code_signing) do |**options|
|
|
30
|
+
calls << options
|
|
31
|
+
raise 'Installer certificate unavailable' if options[:type] == 'developer_id_installer' || options[:additional_cert_types]
|
|
32
|
+
end
|
|
33
|
+
@dsl.instance_eval(File.read(File.join(__dir__, 'Fastfile')), File.join(__dir__, 'Fastfile'))
|
|
34
|
+
@dsl.define_singleton_method(:require_env_vars!) { |*names| }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_missing_installer_identity_does_not_affect_application_lane
|
|
38
|
+
@lanes.fetch(:configure_code_signing).call
|
|
39
|
+
assert_equal 'developer_id', @calls.last[:type]
|
|
40
|
+
assert_equal true, @calls.last[:readonly]
|
|
41
|
+
assert_nil @calls.last[:additional_cert_types]
|
|
42
|
+
error = assert_raises(RuntimeError) { @lanes.fetch(:configure_installer_signing).call }
|
|
43
|
+
assert_equal 'Installer certificate unavailable', error.message
|
|
44
|
+
assert_equal true, @calls.last[:readonly]
|
|
45
|
+
assert_equal true, @calls.last[:skip_provisioning_profiles]
|
|
46
|
+
@lanes.fetch(:configure_code_signing).call
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Match's top-level `developer_id_installer` type silently resolves to an Apple Distribution
|
|
50
|
+
# certificate, so the supported route is pinned rather than left to preference.
|
|
51
|
+
def test_installer_lane_requests_the_installer_certificate_as_an_additional_type
|
|
52
|
+
assert_raises(RuntimeError) { @lanes.fetch(:configure_installer_signing).call }
|
|
53
|
+
|
|
54
|
+
assert_equal 'developer_id', @calls.last[:type]
|
|
55
|
+
assert_equal ['developer_id_installer'], @calls.last[:additional_cert_types]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_installer_lane_never_creates_certificates
|
|
59
|
+
assert_raises(RuntimeError) { @lanes.fetch(:configure_installer_signing).call }
|
|
60
|
+
|
|
61
|
+
assert_equal true, @calls.last[:readonly]
|
|
62
|
+
assert_nil @calls.last[:api_key]
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_identity_check_accepts_the_installer_identity
|
|
66
|
+
stub_identities(' 1) ABC123 "Developer ID Installer: Automattic, Inc. (PZYM8XX95Q)"')
|
|
67
|
+
|
|
68
|
+
@dsl.send(:verify_installer_identity!)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def test_identity_check_rejects_a_substituted_certificate
|
|
72
|
+
stub_identities(' 1) ABC123 "Apple Distribution: Automattic, Inc. (PZYM8XX95Q)"')
|
|
73
|
+
|
|
74
|
+
error = assert_raises(RuntimeError) { @dsl.send(:verify_installer_identity!) }
|
|
75
|
+
assert_includes error.message, 'Developer ID Installer: Automattic, Inc. (PZYM8XX95Q)'
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
private
|
|
79
|
+
|
|
80
|
+
def stub_identities(output)
|
|
81
|
+
@dsl.define_singleton_method(:sh) { |*_args, **_options| output }
|
|
82
|
+
end
|
|
83
|
+
end
|
package/internal/auth/logout.go
CHANGED
|
@@ -5,6 +5,7 @@ import (
|
|
|
5
5
|
"net/http"
|
|
6
6
|
"time"
|
|
7
7
|
|
|
8
|
+
"github.com/Automattic/vip/internal/debuglog"
|
|
8
9
|
"github.com/Automattic/vip/internal/httpproxy"
|
|
9
10
|
)
|
|
10
11
|
|
|
@@ -13,13 +14,25 @@ import (
|
|
|
13
14
|
// ignored; only a transport failure returns a non-nil error. The caller always
|
|
14
15
|
// purges the local token regardless.
|
|
15
16
|
func PostLogout(apiHost, rawToken string) error {
|
|
16
|
-
|
|
17
|
+
return PostLogoutContext(context.Background(), apiHost, rawToken)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// PostLogoutContext preserves invocation diagnostics and cancellation while
|
|
21
|
+
// retaining the bounded, best-effort server-side invalidation behavior.
|
|
22
|
+
func PostLogoutContext(ctx context.Context, apiHost, rawToken string) error {
|
|
23
|
+
if ctx == nil {
|
|
24
|
+
ctx = context.Background()
|
|
25
|
+
}
|
|
26
|
+
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
|
|
17
27
|
defer cancel()
|
|
18
28
|
req, err := http.NewRequestWithContext(ctx, http.MethodPost, apiHost+"/logout", nil)
|
|
19
29
|
if err != nil {
|
|
20
30
|
return err
|
|
21
31
|
}
|
|
22
32
|
req.Header.Set("Authorization", "Bearer "+rawToken)
|
|
33
|
+
// Node's HTTP helper logs the request target. Only expose the fixed logout
|
|
34
|
+
// path and target host; URL userinfo, queries and headers may carry secrets.
|
|
35
|
+
debuglog.Printf(ctx, "@automattic/vip:http", "running fetch %s://%s/logout", req.URL.Scheme, req.URL.Host)
|
|
23
36
|
// NOT http.DefaultClient: this request carries the bearer token, and Node
|
|
24
37
|
// routes /logout through api/http.ts's proxy agent. See internal/httpproxy.
|
|
25
38
|
resp, err := httpproxy.Client().Do(req)
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
package auth
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"bytes"
|
|
5
|
+
"context"
|
|
4
6
|
"net/http"
|
|
5
7
|
"net/http/httptest"
|
|
8
|
+
"strings"
|
|
6
9
|
"testing"
|
|
10
|
+
|
|
11
|
+
"github.com/Automattic/vip/internal/debuglog"
|
|
7
12
|
)
|
|
8
13
|
|
|
9
14
|
func TestPostLogoutSendsBearer(t *testing.T) {
|
|
@@ -21,6 +26,47 @@ func TestPostLogoutSendsBearer(t *testing.T) {
|
|
|
21
26
|
}
|
|
22
27
|
}
|
|
23
28
|
|
|
29
|
+
func TestPostLogoutContextDiagnostics(t *testing.T) {
|
|
30
|
+
for _, key := range []string{"VIP_PROXY", "vip_proxy", "SOCKS_PROXY", "socks_proxy", "NO_PROXY", "no_proxy"} {
|
|
31
|
+
t.Setenv(key, "")
|
|
32
|
+
}
|
|
33
|
+
proxy := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
34
|
+
if r.Method != http.MethodPost || r.URL.Path != "/logout" || r.Header.Get("Authorization") != "Bearer fixture-token-secret" {
|
|
35
|
+
t.Error("logout request changed")
|
|
36
|
+
}
|
|
37
|
+
w.WriteHeader(http.StatusInternalServerError)
|
|
38
|
+
_, _ = w.Write([]byte("server-body-secret"))
|
|
39
|
+
}))
|
|
40
|
+
defer proxy.Close()
|
|
41
|
+
t.Setenv("VIP_USE_SYSTEM_PROXY", "1")
|
|
42
|
+
t.Setenv("HTTPS_PROXY", strings.Replace(proxy.URL, "http://", "http://proxy-user:proxy-password-secret@", 1))
|
|
43
|
+
for _, namespaces := range []string{"", "@automattic/vip:http,vip:proxy-dispatcher"} {
|
|
44
|
+
t.Run(namespaces, func(t *testing.T) {
|
|
45
|
+
var out bytes.Buffer
|
|
46
|
+
ctx := debuglog.WithLogger(context.Background(), namespaces, &out)
|
|
47
|
+
if err := PostLogoutContext(ctx, "http://url-user:url-password-secret@logout.example.test", "fixture-token-secret"); err != nil {
|
|
48
|
+
t.Fatal(err)
|
|
49
|
+
}
|
|
50
|
+
if namespaces == "" {
|
|
51
|
+
if out.Len() != 0 {
|
|
52
|
+
t.Fatalf("default diagnostics = %q", out.String())
|
|
53
|
+
}
|
|
54
|
+
return
|
|
55
|
+
}
|
|
56
|
+
for _, want := range []string{"@automattic/vip:http running fetch http://logout.example.test/logout", "vip:proxy-dispatcher Enabling fetch dispatcher proxy support using config: " + proxy.URL} {
|
|
57
|
+
if !strings.Contains(out.String(), want) {
|
|
58
|
+
t.Errorf("missing %q in %q", want, out.String())
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
for _, forbidden := range []string{"secret", "proxy-user", "url-user", "Authorization"} {
|
|
62
|
+
if strings.Contains(out.String(), forbidden) {
|
|
63
|
+
t.Errorf("diagnostics exposed %q: %q", forbidden, out.String())
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
24
70
|
func TestPostLogoutIgnoresServerError(t *testing.T) {
|
|
25
71
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
|
26
72
|
w.WriteHeader(http.StatusInternalServerError)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Package debuglog emits opt-in diagnostics using Node debug namespace selectors.
|
|
2
|
+
// Loggers belong to an invocation context, so commands and tests cannot leak
|
|
3
|
+
// their debug settings or output writers into another invocation.
|
|
4
|
+
package debuglog
|
|
5
|
+
|
|
6
|
+
import (
|
|
7
|
+
"context"
|
|
8
|
+
"fmt"
|
|
9
|
+
"io"
|
|
10
|
+
"regexp"
|
|
11
|
+
"strings"
|
|
12
|
+
"sync"
|
|
13
|
+
"unicode"
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
type contextKey struct{}
|
|
17
|
+
|
|
18
|
+
type logger struct {
|
|
19
|
+
mu sync.Mutex
|
|
20
|
+
out io.Writer
|
|
21
|
+
include, exclude []*regexp.Regexp
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// WithLogger accepts comma/whitespace-separated namespaces, '*' wildcards,
|
|
25
|
+
// and '-' exclusions, matching the Node debug package's selector grammar.
|
|
26
|
+
func WithLogger(ctx context.Context, namespaces string, out io.Writer) context.Context {
|
|
27
|
+
l := &logger{out: out}
|
|
28
|
+
for _, pattern := range strings.FieldsFunc(namespaces, func(r rune) bool { return r == ',' || unicode.IsSpace(r) }) {
|
|
29
|
+
exclude := strings.HasPrefix(pattern, "-")
|
|
30
|
+
pattern = strings.TrimPrefix(pattern, "-")
|
|
31
|
+
if pattern == "" {
|
|
32
|
+
continue
|
|
33
|
+
}
|
|
34
|
+
expression := "^" + strings.ReplaceAll(regexp.QuoteMeta(pattern), `\*`, ".*") + "$"
|
|
35
|
+
re := regexp.MustCompile(expression)
|
|
36
|
+
if exclude {
|
|
37
|
+
l.exclude = append(l.exclude, re)
|
|
38
|
+
} else {
|
|
39
|
+
l.include = append(l.include, re)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return context.WithValue(ctx, contextKey{}, l)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Enabled lets callers avoid constructing expensive diagnostic metadata when
|
|
46
|
+
// its namespace is disabled.
|
|
47
|
+
func Enabled(ctx context.Context, namespace string) bool {
|
|
48
|
+
if ctx == nil {
|
|
49
|
+
return false
|
|
50
|
+
}
|
|
51
|
+
l, _ := ctx.Value(contextKey{}).(*logger)
|
|
52
|
+
if l == nil || l.out == nil {
|
|
53
|
+
return false
|
|
54
|
+
}
|
|
55
|
+
for _, re := range l.exclude {
|
|
56
|
+
if re.MatchString(namespace) {
|
|
57
|
+
return false
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
for _, re := range l.include {
|
|
61
|
+
if re.MatchString(namespace) {
|
|
62
|
+
return true
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Printf writes one diagnostic line if namespace is enabled. Callers must pass
|
|
69
|
+
// only safe fields: this function escapes terminal controls, not secrets.
|
|
70
|
+
func Printf(ctx context.Context, namespace, format string, args ...any) {
|
|
71
|
+
if !Enabled(ctx, namespace) {
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
l := ctx.Value(contextKey{}).(*logger)
|
|
75
|
+
line := namespace + " " + fmt.Sprintf(format, args...)
|
|
76
|
+
line = strings.Map(func(r rune) rune {
|
|
77
|
+
if unicode.IsControl(r) {
|
|
78
|
+
return ' '
|
|
79
|
+
}
|
|
80
|
+
return r
|
|
81
|
+
}, line)
|
|
82
|
+
l.mu.Lock()
|
|
83
|
+
defer l.mu.Unlock()
|
|
84
|
+
_, _ = fmt.Fprintln(l.out, line)
|
|
85
|
+
}
|