@automattic/vip 4.1.2 → 4.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.buildkite/build-macos-installer.sh +34 -0
- package/.buildkite/build-macos.sh +2 -3
- package/.buildkite/build-windows-installer.ps1 +65 -0
- package/.buildkite/build-windows.ps1 +2 -18
- package/.buildkite/pipeline.yml +32 -0
- package/.buildkite/sign-windows.ps1 +21 -0
- package/.buildkite/test-windows-installer-download.ps1 +54 -0
- package/.buildkite/test_pipeline.py +69 -0
- package/Gemfile.lock +44 -41
- package/cmd/installer-payload/main.go +19 -0
- package/cmd/installer-version/main.go +22 -0
- package/cmd/vip-next/commands/app_debug_test.go +89 -0
- package/cmd/vip-next/commands/app_deploy.go +4 -0
- package/cmd/vip-next/commands/app_deploy_validate.go +2 -0
- package/cmd/vip-next/commands/config_debug_test.go +137 -0
- package/cmd/vip-next/commands/config_envvar_delete.go +2 -0
- package/cmd/vip-next/commands/config_envvar_get.go +2 -0
- package/cmd/vip-next/commands/config_envvar_get_all.go +2 -0
- package/cmd/vip-next/commands/config_envvar_list.go +2 -0
- package/cmd/vip-next/commands/config_envvar_set.go +2 -0
- package/cmd/vip-next/commands/config_software_update.go +12 -1
- package/cmd/vip-next/commands/devenv_create_test.go +5 -5
- package/cmd/vip-next/commands/devenv_debug_test.go +34 -0
- package/cmd/vip-next/commands/devenv_envvar.go +6 -0
- package/cmd/vip-next/commands/devenv_lifecycle.go +30 -11
- package/cmd/vip-next/commands/devenv_update.go +1 -1
- package/cmd/vip-next/commands/devenv_update_test.go +28 -2
- package/cmd/vip-next/commands/import_debug_test.go +110 -0
- package/cmd/vip-next/commands/import_media.go +4 -0
- package/cmd/vip-next/commands/import_sql.go +9 -1
- package/cmd/vip-next/commands/logout.go +1 -1
- package/cmd/vip-next/commands/searchreplace.go +3 -1
- package/cmd/vip-next/commands/searchreplace_debug_test.go +82 -0
- package/cmd/vip-next/commands/whoami.go +10 -1
- package/cmd/vip-next/commands/whoami_debug_test.go +79 -0
- package/cmd/vip-next/commands/wp.go +2 -0
- package/cmd/vip-next/commands/wp_debug_test.go +32 -0
- package/cmd/vip-next/debug_args.go +63 -0
- package/cmd/vip-next/debug_test.go +122 -0
- package/cmd/vip-next/main.go +58 -2
- package/cmd/vip-next/pendo_wiring_test.go +148 -0
- package/cmd/vip-next/root.go +17 -0
- package/dist/bin/vip-dev-env-envvar-get.js +2 -2
- package/dist/bin/vip-dev-env-envvar-set.js +2 -2
- package/dist/bin/vip-dev-env-update.js +1 -1
- package/dist/lib/analytics/clients/pendo.js +19 -7
- package/dist/lib/constants/dev-environment.js +8 -7
- package/dist/lib/dev-environment/dev-environment-cli.js +10 -2
- package/dist/lib/dev-environment/dev-environment-core.js +1 -1
- package/dist/lib/edge-workers/toolchains/assemblyscript/constants.js +1 -1
- package/docs/BUILD-SIGNING.md +147 -6
- package/docs/DEBUGGING.md +61 -0
- package/docs/EDGE-WORKERS.md +2 -2
- package/docs/GO-UPDATES.md +7 -1
- package/docs/NPM-RELEASE-RECOVERY.md +47 -0
- package/docs/RELEASING.md +3 -2
- package/docs/SETUP.md +2 -1
- package/fastlane/Fastfile +66 -3
- package/fastlane/test_signing.rb +83 -0
- package/internal/auth/logout.go +14 -1
- package/internal/auth/logout_test.go +46 -0
- package/internal/debuglog/debuglog.go +85 -0
- package/internal/debuglog/debuglog_test.go +44 -0
- package/internal/devenv/compose/view.go +6 -3
- package/internal/devenv/compose/view_test.go +1 -1
- package/internal/devenv/debug.go +4 -0
- package/internal/devenv/debug_test.go +103 -0
- package/internal/devenv/devenv.go +20 -2
- package/internal/devenv/devexec.go +3 -0
- package/internal/devenv/importdata.go +4 -1
- package/internal/devenv/list.go +9 -1
- package/internal/devenv/logs.go +2 -0
- package/internal/devenv/proxy/ca.go +9 -2
- package/internal/devenv/proxy/ca_test.go +1 -1
- package/internal/devenv/proxy/network.go +7 -3
- package/internal/devenv/proxy/network_test.go +6 -0
- package/internal/devenv/proxy/proxy.go +37 -8
- package/internal/devenv/proxy/proxy_test.go +61 -6
- package/internal/devenv/proxy/scripts/gen-certs.sh +20 -5
- package/internal/devenv/update.go +2 -0
- package/internal/edgeworkers/build_test.go +1 -1
- package/internal/edgeworkers/templates/edge-workers.json +1 -1
- package/internal/edgeworkers/templates/package.json +1 -1
- package/internal/gql/debug_test.go +79 -0
- package/internal/gql/error.go +27 -1
- package/internal/gql/rechallenge.go +9 -5
- package/internal/gql/retry.go +21 -2
- package/internal/gql/transport.go +9 -0
- package/internal/httpproxy/debug_test.go +32 -0
- package/internal/httpproxy/httpproxy.go +8 -1
- package/internal/installer/version.go +41 -0
- package/internal/installer/version_test.go +33 -0
- package/internal/parity/edge_workers_debug_test.go +87 -0
- package/internal/parity/pendo_test.go +122 -0
- package/internal/rechallenge/flow.go +8 -0
- package/internal/rechallenge/flow_test.go +15 -1
- package/internal/releasepromotion/buildkite.go +12 -1
- package/internal/releasepromotion/buildkite_test.go +31 -0
- package/internal/releasepromotion/contract.go +49 -1
- package/internal/releasepromotion/contract_test.go +38 -0
- package/internal/releasepromotion/github.go +4 -10
- package/internal/releasepromotion/optional_installers_test.go +87 -0
- package/internal/releasepromotion/verify.go +99 -2
- package/internal/releasepromotion/verify_test.go +99 -0
- package/internal/searchreplace/debug_test.go +71 -0
- package/internal/searchreplace/searchreplace.go +14 -0
- package/internal/siteimport/debug_test.go +34 -0
- package/internal/siteimport/status.go +11 -0
- package/internal/telemetry/pendo.go +41 -10
- package/internal/telemetry/pendo_auth_test.go +92 -0
- package/internal/telemetry/pendo_test.go +24 -5
- package/internal/telemetry/tracker.go +26 -0
- package/internal/update/github.go +36 -17
- package/internal/update/ownership.go +22 -0
- package/internal/update/ownership_test.go +44 -0
- package/internal/update/release_test.go +53 -13
- package/internal/update/service_test.go +39 -0
- package/internal/upload/debug_test.go +76 -0
- package/internal/upload/multipart.go +3 -0
- package/internal/upload/orchestrate.go +10 -0
- package/internal/upload/putobject.go +3 -0
- package/internal/wpssh/debug_test.go +67 -0
- package/internal/wpssh/wpssh.go +7 -0
- package/internal/wpstream/debug_test.go +116 -0
- package/internal/wpstream/run.go +10 -1
- package/node_modules/@apollo/client/CHANGELOG.md +1130 -0
- package/node_modules/@apollo/client/__cjs/cache/core/Scalar.cjs +36 -0
- package/node_modules/@apollo/client/__cjs/cache/core/Scalar.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/cache/core/Scalar.d.cts +56 -0
- package/node_modules/@apollo/client/__cjs/cache/core/cache.cjs +32 -1
- package/node_modules/@apollo/client/__cjs/cache/core/cache.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/core/cache.d.cts +89 -6
- package/node_modules/@apollo/client/__cjs/cache/core/types/Cache.d.cts +30 -2
- package/node_modules/@apollo/client/__cjs/cache/index.cjs +3 -1
- package/node_modules/@apollo/client/__cjs/cache/index.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/index.d.cts +2 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.cjs +63 -5
- package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.d.cts +3 -0
- package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.d.cts +11 -2
- package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs +95 -4
- package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.d.cts +44 -5
- package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs +34 -6
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.d.cts +3 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.cjs +489 -45
- package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.d.cts +11 -2
- package/node_modules/@apollo/client/__cjs/cache/inmemory/types.d.cts +31 -4
- package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs +5 -9
- package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/ApolloClient.cjs +14 -14
- package/node_modules/@apollo/client/__cjs/core/ApolloClient.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/ApolloClient.d.cts +11 -11
- package/node_modules/@apollo/client/__cjs/core/ObservableQuery.cjs +186 -72
- package/node_modules/@apollo/client/__cjs/core/ObservableQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/ObservableQuery.d.cts +4 -7
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs +164 -197
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.d.cts +17 -21
- package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs +75 -48
- package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/QueryManager.d.cts +4 -4
- package/node_modules/@apollo/client/__cjs/core/RefetchEventManager.cjs +3 -3
- package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.d.cts +3 -0
- package/node_modules/@apollo/client/__cjs/core/deprecated.d.cts +3 -3
- package/node_modules/@apollo/client/__cjs/core/index.cjs +2 -1
- package/node_modules/@apollo/client/__cjs/core/index.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/index.d.cts +4 -3
- package/node_modules/@apollo/client/__cjs/core/types.d.cts +11 -7
- package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.d.cts +55 -0
- package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.d.cts +2 -4
- package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.cjs +47 -16
- package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.d.cts +29 -6
- package/node_modules/@apollo/client/__cjs/incremental/handlers/notImplemented.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/index.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/index.d.cts +1 -0
- package/node_modules/@apollo/client/__cjs/{utilities/internal/types/NoInfer.cjs → incremental/internal/types.cjs} +1 -1
- package/node_modules/@apollo/client/__cjs/incremental/internal/types.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/incremental/internal/types.d.cts +17 -0
- package/node_modules/@apollo/client/__cjs/incremental/types.d.cts +55 -4
- package/node_modules/@apollo/client/__cjs/invariantErrorCodes.cjs +164 -113
- package/node_modules/@apollo/client/__cjs/link/core/ApolloLink.cjs +3 -3
- package/node_modules/@apollo/client/__cjs/link/http/checkFetcher.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/link/persisted-queries/index.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/link/ws/index.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/local-state/LocalState.cjs +11 -11
- package/node_modules/@apollo/client/__cjs/local-state/LocalState.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/local-state/LocalState.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/masking/internal/types.d.cts +1 -2
- package/node_modules/@apollo/client/__cjs/masking/maskDefinition.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/masking/maskFragment.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/masking/maskOperation.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/masking/utils.cjs +3 -3
- package/node_modules/@apollo/client/__cjs/react/context/ApolloContext.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/context/ApolloProvider.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/react/hooks/useApolloClient.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useBackgroundQuery.d.cts +3 -3
- package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.d.cts +0 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useLoadableQuery.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/react/hooks/useMutation.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useMutation.d.cts +14 -14
- package/node_modules/@apollo/client/__cjs/react/hooks/useQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useQuery.d.cts +16 -3
- package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.cjs +7 -3
- package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.d.cts +27 -5
- package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseFragment.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseQuery.d.cts +30 -30
- package/node_modules/@apollo/client/__cjs/react/hooks/useSyncExternalStore.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/internal/cache/QueryReference.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/query-preloader/createQueryPreloader.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/react/ssr/prerenderStatic.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/react/types/deprecated.d.cts +5 -4
- package/node_modules/@apollo/client/__cjs/react/types/types.documentation.d.cts +12 -1
- package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.cjs +25 -5
- package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.d.cts +1 -2
- package/node_modules/@apollo/client/__cjs/utilities/caching/sizes.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/caching/sizes.d.cts +39 -1
- package/node_modules/@apollo/client/__cjs/utilities/graphql/DocumentTransform.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.cjs +27 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.d.cts +12 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.cjs +33 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.d.cts +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.d.cts +7 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs +102 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.d.cts +9 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/constants.cjs +20 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/constants.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/constants.d.cts +19 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.cjs +19 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.d.cts +9 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentDefinition.cjs +3 -3
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentDefinition.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentFromSelection.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentFromSelection.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentQueryDocument.cjs +2 -2
- package/node_modules/@apollo/client/__cjs/utilities/internal/getMainDefinition.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.cjs +6 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.d.cts +4 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/getQueryDefinition.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/index.cjs +27 -2
- package/node_modules/@apollo/client/__cjs/utilities/internal/index.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/index.d.cts +17 -2
- package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.cjs +38 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.d.cts +9 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.cjs +37 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.d.cts +9 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.cjs +7 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.d.cts +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.cjs +17 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.d.cts +8 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.d.cts +8 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/removeDirectivesFromDocument.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/shouldInclude.cjs +4 -4
- package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.cjs +20 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.d.cts +8 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.d.cts +10 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.d.cts +2 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.d.cts +10 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.cjs +3 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.d.cts +4 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/StreamInfoTrie.d.cts +2 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.cjs +12 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.cjs.map +1 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.d.cts +10 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/valueToObjectRepresentation.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/version.cjs +1 -1
- package/node_modules/@apollo/client/__cjs/version.cjs.map +1 -1
- package/node_modules/@apollo/client/cache/core/Scalar.d.ts +56 -0
- package/node_modules/@apollo/client/cache/core/Scalar.js +32 -0
- package/node_modules/@apollo/client/cache/core/Scalar.js.map +1 -0
- package/node_modules/@apollo/client/cache/core/cache.d.ts +89 -6
- package/node_modules/@apollo/client/cache/core/cache.js +33 -2
- package/node_modules/@apollo/client/cache/core/cache.js.map +1 -1
- package/node_modules/@apollo/client/cache/core/types/Cache.d.ts +30 -2
- package/node_modules/@apollo/client/cache/core/types/Cache.js.map +1 -1
- package/node_modules/@apollo/client/cache/index.d.ts +2 -1
- package/node_modules/@apollo/client/cache/index.js +1 -0
- package/node_modules/@apollo/client/cache/index.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/entityStore.d.ts +3 -0
- package/node_modules/@apollo/client/cache/inmemory/entityStore.js +64 -6
- package/node_modules/@apollo/client/cache/inmemory/entityStore.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/helpers.d.ts +11 -2
- package/node_modules/@apollo/client/cache/inmemory/helpers.js +11 -0
- package/node_modules/@apollo/client/cache/inmemory/helpers.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.d.ts +44 -5
- package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js +97 -6
- package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/key-extractor.js +1 -1
- package/node_modules/@apollo/client/cache/inmemory/policies.d.ts +3 -1
- package/node_modules/@apollo/client/cache/inmemory/policies.js +34 -6
- package/node_modules/@apollo/client/cache/inmemory/policies.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/readFromStore.d.ts +11 -2
- package/node_modules/@apollo/client/cache/inmemory/readFromStore.js +485 -45
- package/node_modules/@apollo/client/cache/inmemory/readFromStore.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/types.d.ts +32 -5
- package/node_modules/@apollo/client/cache/inmemory/types.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/writeToStore.js +6 -10
- package/node_modules/@apollo/client/cache/inmemory/writeToStore.js.map +1 -1
- package/node_modules/@apollo/client/core/ApolloClient.d.ts +11 -11
- package/node_modules/@apollo/client/core/ApolloClient.js +14 -14
- package/node_modules/@apollo/client/core/ApolloClient.js.map +1 -1
- package/node_modules/@apollo/client/core/ObservableQuery.d.ts +4 -7
- package/node_modules/@apollo/client/core/ObservableQuery.js +183 -73
- package/node_modules/@apollo/client/core/ObservableQuery.js.map +1 -1
- package/node_modules/@apollo/client/core/QueryInfo.d.ts +18 -22
- package/node_modules/@apollo/client/core/QueryInfo.js +165 -198
- package/node_modules/@apollo/client/core/QueryInfo.js.map +1 -1
- package/node_modules/@apollo/client/core/QueryManager.d.ts +4 -4
- package/node_modules/@apollo/client/core/QueryManager.js +76 -49
- package/node_modules/@apollo/client/core/QueryManager.js.map +1 -1
- package/node_modules/@apollo/client/core/RefetchEventManager.js +3 -3
- package/node_modules/@apollo/client/core/dataStateErrorCache.d.ts +3 -0
- package/node_modules/@apollo/client/core/dataStateErrorCache.js +9 -0
- package/node_modules/@apollo/client/core/dataStateErrorCache.js.map +1 -0
- package/node_modules/@apollo/client/core/deprecated.d.ts +3 -3
- package/node_modules/@apollo/client/core/deprecated.js.map +1 -1
- package/node_modules/@apollo/client/core/index.d.ts +4 -3
- package/node_modules/@apollo/client/core/index.js +1 -1
- package/node_modules/@apollo/client/core/index.js.map +1 -1
- package/node_modules/@apollo/client/core/types.d.ts +11 -7
- package/node_modules/@apollo/client/core/types.js.map +1 -1
- package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.d.ts +55 -0
- package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.js +2 -0
- package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.js.map +1 -0
- package/node_modules/@apollo/client/incremental/handlers/defer20220824.d.ts +2 -4
- package/node_modules/@apollo/client/incremental/handlers/defer20220824.js.map +1 -1
- package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.d.ts +29 -6
- package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.js +48 -17
- package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.js.map +1 -1
- package/node_modules/@apollo/client/incremental/handlers/notImplemented.js +1 -1
- package/node_modules/@apollo/client/incremental/index.d.ts +1 -0
- package/node_modules/@apollo/client/incremental/index.js.map +1 -1
- package/node_modules/@apollo/client/incremental/internal/types.d.ts +17 -0
- package/node_modules/@apollo/client/incremental/internal/types.js +2 -0
- package/node_modules/@apollo/client/incremental/internal/types.js.map +1 -0
- package/node_modules/@apollo/client/incremental/types.d.ts +55 -4
- package/node_modules/@apollo/client/incremental/types.js.map +1 -1
- package/node_modules/@apollo/client/invariantErrorCodes.js +164 -113
- package/node_modules/@apollo/client/link/core/ApolloLink.js +3 -3
- package/node_modules/@apollo/client/link/http/checkFetcher.js +1 -1
- package/node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js +1 -1
- package/node_modules/@apollo/client/link/persisted-queries/index.js +2 -2
- package/node_modules/@apollo/client/link/ws/index.js +1 -1
- package/node_modules/@apollo/client/local-state/LocalState.d.ts +1 -1
- package/node_modules/@apollo/client/local-state/LocalState.js +11 -11
- package/node_modules/@apollo/client/local-state/LocalState.js.map +1 -1
- package/node_modules/@apollo/client/masking/internal/types.d.ts +1 -2
- package/node_modules/@apollo/client/masking/internal/types.js.map +1 -1
- package/node_modules/@apollo/client/masking/maskDefinition.js +2 -2
- package/node_modules/@apollo/client/masking/maskFragment.js +2 -2
- package/node_modules/@apollo/client/masking/maskOperation.js +1 -1
- package/node_modules/@apollo/client/masking/utils.js +3 -3
- package/node_modules/@apollo/client/package.json +1 -1
- package/node_modules/@apollo/client/react/context/ApolloContext.js +1 -1
- package/node_modules/@apollo/client/react/context/ApolloProvider.js +1 -1
- package/node_modules/@apollo/client/react/hooks/internal/validateSuspenseHookOptions.js +2 -2
- package/node_modules/@apollo/client/react/hooks/useApolloClient.js +1 -1
- package/node_modules/@apollo/client/react/hooks/useBackgroundQuery.d.ts +3 -3
- package/node_modules/@apollo/client/react/hooks/useBackgroundQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useFragment.d.ts +0 -1
- package/node_modules/@apollo/client/react/hooks/useFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useLazyQuery.d.ts +1 -1
- package/node_modules/@apollo/client/react/hooks/useLazyQuery.js +2 -2
- package/node_modules/@apollo/client/react/hooks/useLazyQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useLoadableQuery.js +2 -2
- package/node_modules/@apollo/client/react/hooks/useMutation.d.ts +14 -14
- package/node_modules/@apollo/client/react/hooks/useMutation.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useQuery.d.ts +16 -3
- package/node_modules/@apollo/client/react/hooks/useQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useSubscription.d.ts +27 -5
- package/node_modules/@apollo/client/react/hooks/useSubscription.js +7 -3
- package/node_modules/@apollo/client/react/hooks/useSubscription.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useSuspenseFragment.d.ts +1 -1
- package/node_modules/@apollo/client/react/hooks/useSuspenseFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useSuspenseQuery.d.ts +30 -30
- package/node_modules/@apollo/client/react/hooks/useSuspenseQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks/useSyncExternalStore.js +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/internal/validateSuspenseHookOptions.js +2 -2
- package/node_modules/@apollo/client/react/hooks-compiled/useApolloClient.js +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useBackgroundQuery.d.ts +3 -3
- package/node_modules/@apollo/client/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useFragment.d.ts +0 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.d.ts +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.js +2 -2
- package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useLoadableQuery.js +2 -2
- package/node_modules/@apollo/client/react/hooks-compiled/useMutation.d.ts +14 -14
- package/node_modules/@apollo/client/react/hooks-compiled/useMutation.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useQuery.d.ts +16 -3
- package/node_modules/@apollo/client/react/hooks-compiled/useQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.d.ts +27 -5
- package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.js +107 -93
- package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseFragment.d.ts +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseQuery.d.ts +30 -30
- package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useSyncExternalStore.js +1 -1
- package/node_modules/@apollo/client/react/internal/cache/QueryReference.js +1 -1
- package/node_modules/@apollo/client/react/query-preloader/createQueryPreloader.d.ts +1 -1
- package/node_modules/@apollo/client/react/query-preloader/createQueryPreloader.js.map +1 -1
- package/node_modules/@apollo/client/react/ssr/prerenderStatic.js +2 -2
- package/node_modules/@apollo/client/react/types/deprecated.d.ts +5 -4
- package/node_modules/@apollo/client/react/types/deprecated.js.map +1 -1
- package/node_modules/@apollo/client/react/types/types.documentation.d.ts +12 -1
- package/node_modules/@apollo/client/react/types/types.documentation.js.map +1 -1
- package/node_modules/@apollo/client/testing/core/mocking/mockLink.d.ts +1 -2
- package/node_modules/@apollo/client/testing/core/mocking/mockLink.js +25 -5
- package/node_modules/@apollo/client/testing/core/mocking/mockLink.js.map +1 -1
- package/node_modules/@apollo/client/utilities/caching/sizes.d.ts +39 -1
- package/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -1
- package/node_modules/@apollo/client/utilities/graphql/DocumentTransform.js +1 -1
- package/node_modules/@apollo/client/utilities/internal/StreamArrayState.d.ts +12 -0
- package/node_modules/@apollo/client/utilities/internal/StreamArrayState.js +23 -0
- package/node_modules/@apollo/client/utilities/internal/StreamArrayState.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.d.ts +3 -0
- package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.js +30 -0
- package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/capitalize.d.ts +7 -0
- package/node_modules/@apollo/client/utilities/internal/capitalize.js +9 -0
- package/node_modules/@apollo/client/utilities/internal/capitalize.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.d.ts +9 -0
- package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.js +95 -0
- package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/constants.d.ts +19 -0
- package/node_modules/@apollo/client/utilities/internal/constants.js +19 -0
- package/node_modules/@apollo/client/utilities/internal/constants.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.d.ts +9 -0
- package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.js +16 -0
- package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/getFragmentDefinition.js +3 -3
- package/node_modules/@apollo/client/utilities/internal/getFragmentDefinition.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/getFragmentFromSelection.js +2 -2
- package/node_modules/@apollo/client/utilities/internal/getFragmentFromSelection.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/getFragmentQueryDocument.js +2 -2
- package/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +1 -1
- package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.d.ts +4 -0
- package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +6 -0
- package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/getQueryDefinition.js +1 -1
- package/node_modules/@apollo/client/utilities/internal/index.d.ts +17 -2
- package/node_modules/@apollo/client/utilities/internal/index.js +13 -1
- package/node_modules/@apollo/client/utilities/internal/index.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.d.ts +9 -0
- package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.js +35 -0
- package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/isStreamField.d.ts +9 -0
- package/node_modules/@apollo/client/utilities/internal/isStreamField.js +34 -0
- package/node_modules/@apollo/client/utilities/internal/isStreamField.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/isTypenameField.d.ts +3 -0
- package/node_modules/@apollo/client/utilities/internal/isTypenameField.js +4 -0
- package/node_modules/@apollo/client/utilities/internal/isTypenameField.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.d.ts +8 -0
- package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.js +14 -0
- package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/matchScalarList.d.ts +8 -0
- package/node_modules/@apollo/client/utilities/internal/matchScalarList.js +9 -0
- package/node_modules/@apollo/client/utilities/internal/matchScalarList.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/removeDirectivesFromDocument.js +1 -1
- package/node_modules/@apollo/client/utilities/internal/shouldInclude.js +4 -4
- package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.d.ts +8 -0
- package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.js +17 -0
- package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.d.ts +10 -0
- package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.js +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/Exact.d.ts +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/Exact.js +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/Exact.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.d.ts +10 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.js +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.d.ts +4 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.js +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/types/StreamInfoTrie.d.ts +2 -0
- package/node_modules/@apollo/client/utilities/internal/types/StreamInfoTrie.js.map +1 -1
- package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.d.ts +10 -0
- package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.js +9 -0
- package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.js.map +1 -0
- package/node_modules/@apollo/client/utilities/internal/valueToObjectRepresentation.js +1 -1
- package/node_modules/@apollo/client/version.js +1 -1
- package/node_modules/@apollo/client/version.js.map +1 -1
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/buffer.buffer.d.ts +10 -5
- package/node_modules/@types/node/buffer.d.ts +1 -0
- package/node_modules/@types/node/crypto.d.ts +2 -4
- package/node_modules/@types/node/dgram.d.ts +119 -4
- package/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
- package/node_modules/@types/node/ffi.d.ts +1 -1
- package/node_modules/@types/node/fs/promises.d.ts +61 -65
- package/node_modules/@types/node/fs.d.ts +86 -76
- package/node_modules/@types/node/http.d.ts +18 -2
- package/node_modules/@types/node/http2.d.ts +12 -4
- package/node_modules/@types/node/index.d.ts +1 -0
- package/node_modules/@types/node/inspector.d.ts +2 -1
- package/node_modules/@types/node/net.d.ts +108 -16
- package/node_modules/@types/node/package.json +3 -3
- package/node_modules/@types/node/perf_hooks.d.ts +31 -19
- package/node_modules/@types/node/process.d.ts +52 -0
- package/node_modules/@types/node/quic.d.ts +252 -42
- package/node_modules/@types/node/sqlite.d.ts +6 -2
- package/node_modules/@types/node/stream/iter.d.ts +4 -4
- package/node_modules/@types/node/stream/web.d.ts +20 -0
- package/node_modules/@types/node/test.d.ts +36 -0
- package/node_modules/@types/node/tls.d.ts +50 -15
- package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +5 -0
- package/node_modules/@types/node/ts5.6/index.d.ts +1 -0
- package/node_modules/@types/node/ts5.7/index.d.ts +1 -0
- package/node_modules/@types/node/tty.d.ts +4 -3
- package/node_modules/@types/node/vfs.d.ts +211 -0
- package/node_modules/@types/node/vm.d.ts +1 -1
- package/node_modules/@types/node/web-globals/streams.d.ts +4 -0
- package/node_modules/@types/node/zlib.d.ts +17 -0
- package/node_modules/cpu-features/build/Makefile +2 -2
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/filesystem.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_macos_or_iphone.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_windows.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_arm_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_mips_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_ppc_linux.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_freebsd.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_macos.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_windows.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/stack_line_reader.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/string_view.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpufeatures/src/binding.o.d +145 -145
- package/node_modules/cpu-features/build/config.gypi +8 -9
- package/node_modules/cpu-features/build/cpufeatures.target.mk +14 -14
- package/node_modules/cpu-features/build/deps/cpu_features/cpu_features.target.mk +14 -14
- package/node_modules/default-browser/package.json +1 -1
- package/node_modules/default-browser/windows.js +3 -1
- package/node_modules/js-yaml/README.md +0 -3
- package/node_modules/js-yaml/dist/browser/js-yaml.esm.min.mjs +822 -779
- package/node_modules/js-yaml/dist/browser/js-yaml.esm.min.mjs.map +1 -1
- package/node_modules/js-yaml/dist/browser/js-yaml.umd.min.js +29 -23
- package/node_modules/js-yaml/dist/browser/js-yaml.umd.min.js.map +1 -1
- package/node_modules/js-yaml/dist/js-yaml.cjs.js +425 -397
- package/node_modules/js-yaml/dist/js-yaml.cjs.js.map +1 -1
- package/node_modules/js-yaml/dist/js-yaml.d.ts +101 -32
- package/node_modules/js-yaml/dist/js-yaml.mjs +429 -397
- package/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
- package/node_modules/js-yaml/package.json +1 -1
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.js +11 -3
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.js.map +1 -1
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.min.js +1 -1
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.min.js.map +1 -1
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.mjs +11 -3
- package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
- package/node_modules/lando/node_modules/js-yaml/lib/loader.js +16 -3
- package/node_modules/lando/node_modules/js-yaml/package.json +1 -1
- package/node_modules/open/index.js +15 -3
- package/node_modules/open/package.json +3 -3
- package/node_modules/{lando → path-scurry}/node_modules/lru-cache/README.md +96 -10
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.js +7 -0
- package/node_modules/{lando/node_modules/lru-cache/dist/commonjs → path-scurry/node_modules/lru-cache/dist/commonjs/browser}/index.d.ts +109 -32
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.js +1733 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.js +10 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.cjs.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.d.cts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +7 -0
- package/node_modules/{lando/node_modules/lru-cache/dist/esm → path-scurry/node_modules/lru-cache/dist/commonjs}/index.d.ts +109 -32
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js +1733 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.js +9 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.d.ts +1400 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.js +1733 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.js +10 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.js +10 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +4 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.d.ts +1400 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -0
- package/node_modules/{lando/node_modules/lru-cache/dist/esm → path-scurry/node_modules/lru-cache/dist/esm/browser}/index.js +315 -177
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.js +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.mjs.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel.js +19 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.d.ts +1400 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -0
- package/node_modules/{lando/node_modules/lru-cache/dist/commonjs → path-scurry/node_modules/lru-cache/dist/esm}/index.js +316 -182
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel.d.ts +5 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +6 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.d.ts +1400 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.js +1729 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.min.js +2 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.min.js.map +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.js +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.d.ts +12 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.d.ts.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.js +7 -0
- package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.js.map +1 -0
- package/node_modules/path-scurry/node_modules/lru-cache/package.json +154 -0
- package/node_modules/powershell-utils/index.d.ts +16 -2
- package/node_modules/powershell-utils/index.js +12 -9
- package/node_modules/powershell-utils/package.json +1 -1
- package/node_modules/powershell-utils/readme.md +7 -2
- package/node_modules/ssh2/lib/protocol/crypto/build/Makefile +2 -2
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d +237 -237
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto/src/binding.o +0 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto.node +0 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/sshcrypto.node +0 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/sshcrypto.target.mk +14 -14
- package/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +3 -2
- package/node_modules/undici/docs/docs/api/EventSource.md +4 -0
- package/node_modules/undici/docs/docs/api/Interceptors.md +7 -3
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +7 -1
- package/node_modules/undici/lib/cache/memory-cache-store.js +2 -2
- package/node_modules/undici/lib/core/symbols.js +2 -0
- package/node_modules/undici/lib/dispatcher/agent.js +7 -2
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +7 -4
- package/node_modules/undici/lib/dispatcher/client-h1.js +12 -4
- package/node_modules/undici/lib/dispatcher/client-h2.js +43 -3
- package/node_modules/undici/lib/dispatcher/client.js +3 -2
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +13 -1
- package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -1
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -0
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +10 -3
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -1
- package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/node_modules/undici/lib/dispatcher/round-robin-pool.js +1 -1
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +91 -21
- package/node_modules/undici/lib/handler/cache-handler.js +29 -5
- package/node_modules/undici/lib/handler/decorator-handler.js +7 -1
- package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
- package/node_modules/undici/lib/handler/redirect-handler.js +21 -4
- package/node_modules/undici/lib/handler/retry-handler.js +148 -30
- package/node_modules/undici/lib/interceptor/cache.js +65 -12
- package/node_modules/undici/lib/interceptor/decompress.js +115 -13
- package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/node_modules/undici/lib/interceptor/dns.js +7 -0
- package/node_modules/undici/lib/interceptor/dump.js +10 -23
- package/node_modules/undici/lib/mock/mock-agent.js +13 -1
- package/node_modules/undici/lib/mock/mock-utils.js +11 -10
- package/node_modules/undici/lib/util/cache.js +45 -3
- package/node_modules/undici/lib/web/cookies/parse.js +150 -147
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +13 -3
- package/node_modules/undici/lib/web/fetch/index.js +6 -0
- package/node_modules/undici/lib/web/fetch/request.js +2 -3
- package/node_modules/undici/lib/web/fetch/util.js +6 -1
- package/node_modules/undici/lib/web/webidl/index.js +3 -3
- package/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/node_modules/undici/package.json +3 -3
- package/node_modules/undici/types/client.d.ts +10 -0
- package/node_modules/undici/types/interceptors.d.ts +2 -0
- package/node_modules/undici/types/mock-agent.d.ts +11 -10
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +2 -0
- package/node_modules/undici-types/client.d.ts +8 -3
- package/node_modules/undici-types/connector.d.ts +1 -0
- package/node_modules/undici-types/cookies.d.ts +1 -1
- package/node_modules/undici-types/dispatcher.d.ts +3 -3
- package/node_modules/undici-types/errors.d.ts +10 -0
- package/node_modules/undici-types/fetch.d.ts +5 -1
- package/node_modules/undici-types/handlers.d.ts +2 -0
- package/node_modules/undici-types/interceptors.d.ts +1 -1
- package/node_modules/undici-types/mock-interceptor.d.ts +5 -1
- package/node_modules/undici-types/package.json +1 -1
- package/node_modules/undici-types/proxy-agent.d.ts +7 -0
- package/package.json +2 -2
- package/packaging/macos/build-pkg.sh +53 -0
- package/packaging/macos/preinstall +33 -0
- package/packaging/macos/test-install.sh +51 -0
- package/packaging/macos/test_package.py +74 -0
- package/packaging/macos/uninstall.sh +24 -0
- package/packaging/macos/verify-pkg.py +61 -0
- package/packaging/windows/build-msi.ps1 +153 -0
- package/packaging/windows/test-msi.ps1 +225 -0
- package/packaging/windows/verify-msi.ps1 +74 -0
- package/packaging/windows/vip-next.wxs +79 -0
- package/testdata/installer-fixture/main.go +40 -0
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/NoInfer.cjs.map +0 -1
- package/node_modules/@apollo/client/__cjs/utilities/internal/types/NoInfer.d.cts +0 -35
- package/node_modules/@apollo/client/utilities/internal/types/NoInfer.d.ts +0 -35
- package/node_modules/@apollo/client/utilities/internal/types/NoInfer.js +0 -2
- package/node_modules/@apollo/client/utilities/internal/types/NoInfer.js.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.d.ts.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.js.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
- package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.min.js.map +0 -7
- package/node_modules/lando/node_modules/lru-cache/dist/esm/index.d.ts.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/esm/index.js.map +0 -1
- package/node_modules/lando/node_modules/lru-cache/dist/esm/index.min.js +0 -2
- package/node_modules/lando/node_modules/lru-cache/dist/esm/index.min.js.map +0 -7
- package/node_modules/lando/node_modules/lru-cache/package.json +0 -93
- /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/LICENSE.md +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/README.md +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.d.ts +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.d.ts.map +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.js +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.js.map +0 -0
- /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/dist/commonjs/package.json +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.d.ts +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.d.ts.map +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.js +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.js.map +0 -0
- /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/dist/esm/package.json +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/LICENSE.md +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/dist/commonjs/package.json +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/dist/esm/package.json +0 -0
- /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/package.json +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Verify a built PKG's payload without installing it (including signed PKGs)."""
|
|
3
|
+
import argparse
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
import subprocess
|
|
6
|
+
import tempfile
|
|
7
|
+
import xml.etree.ElementTree as ET
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def verify(package, numeric_version, arch, cli, helper):
|
|
11
|
+
repo = Path(__file__).resolve().parents[2]
|
|
12
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
13
|
+
expanded = Path(tmp) / "expanded"
|
|
14
|
+
subprocess.run(["pkgutil", "--expand-full", str(package), str(expanded)], check=True)
|
|
15
|
+
distribution = ET.parse(expanded / "Distribution")
|
|
16
|
+
expected_arch = {"arm64": "arm64", "amd64": "x86_64"}[arch]
|
|
17
|
+
if distribution.find("options").get("hostArchitectures") != expected_arch:
|
|
18
|
+
raise ValueError("Incorrect installer architecture restriction")
|
|
19
|
+
domains = distribution.find("domains")
|
|
20
|
+
if domains is None or domains.attrib != {"enable_anywhere": "false", "enable_currentUserHome": "false", "enable_localSystem": "true"}:
|
|
21
|
+
raise ValueError("Installer must target the local system volume only")
|
|
22
|
+
component = expanded / "vip-cli.pkg"
|
|
23
|
+
info = ET.parse(component / "PackageInfo").getroot()
|
|
24
|
+
if (info.get("identifier"), info.get("version"), info.get("install-location")) != ("com.automattic.vip-cli", numeric_version, "/"):
|
|
25
|
+
raise ValueError("Incorrect package identity/version/install location")
|
|
26
|
+
prefix = "usr/local/lib/vip-cli/"
|
|
27
|
+
expected = {
|
|
28
|
+
prefix + "bin/vip-next": Path(cli).read_bytes(),
|
|
29
|
+
prefix + "bin/go-search-replace": Path(helper).read_bytes(),
|
|
30
|
+
prefix + "bin/.vip-next-installer.json": b'{"schema":1,"manager":"pkg"}\n',
|
|
31
|
+
prefix + "package-version": (numeric_version + "\n").encode(),
|
|
32
|
+
prefix + "LICENSE": (repo / "LICENSE").read_bytes(),
|
|
33
|
+
prefix + "uninstall.sh": (repo / "packaging/macos/uninstall.sh").read_bytes(),
|
|
34
|
+
"etc/paths.d/vip-cli": b"/usr/local/lib/vip-cli/bin\n",
|
|
35
|
+
}
|
|
36
|
+
payload = component / "Payload"
|
|
37
|
+
files = {}
|
|
38
|
+
for entry in payload.rglob("*"):
|
|
39
|
+
if entry.is_symlink():
|
|
40
|
+
raise ValueError("Unexpected symlink in installer payload")
|
|
41
|
+
if entry.is_file():
|
|
42
|
+
files[entry.relative_to(payload).as_posix()] = entry.read_bytes()
|
|
43
|
+
if files != expected:
|
|
44
|
+
raise ValueError("Installer payload differs from the signed inputs or expected files")
|
|
45
|
+
for executable in ["bin/vip-next", "bin/go-search-replace", "uninstall.sh"]:
|
|
46
|
+
if not (payload / prefix / executable).stat().st_mode & 0o111:
|
|
47
|
+
raise ValueError("Installer payload is missing executable permissions")
|
|
48
|
+
preinstall = (repo / "packaging/macos/preinstall").read_text().replace("@PACKAGE_VERSION@", numeric_version)
|
|
49
|
+
if (component / "Scripts/preinstall").read_text() != preinstall:
|
|
50
|
+
raise ValueError("Installer preinstall script differs from expected version")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
if __name__ == "__main__":
|
|
54
|
+
parser = argparse.ArgumentParser(description=__doc__)
|
|
55
|
+
parser.add_argument("package")
|
|
56
|
+
parser.add_argument("numeric_version")
|
|
57
|
+
parser.add_argument("arch", choices=["amd64", "arm64"])
|
|
58
|
+
parser.add_argument("cli")
|
|
59
|
+
parser.add_argument("helper")
|
|
60
|
+
args = parser.parse_args()
|
|
61
|
+
verify(args.package, args.numeric_version, args.arch, args.cli, args.helper)
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
#Requires -Version 5.1
|
|
2
|
+
[CmdletBinding()]
|
|
3
|
+
param(
|
|
4
|
+
[Parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string]$Version,
|
|
5
|
+
[Parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string]$CLI,
|
|
6
|
+
[Parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string]$Helper,
|
|
7
|
+
[Parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string]$Output
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
$ErrorActionPreference = 'Stop'
|
|
11
|
+
Set-StrictMode -Version Latest
|
|
12
|
+
|
|
13
|
+
$wixVersion = '5.0.2'
|
|
14
|
+
$uiExtension = "WixToolset.UI.wixext/$wixVersion"
|
|
15
|
+
$repoRoot = [IO.Path]::GetFullPath((Join-Path $PSScriptRoot '..\..'))
|
|
16
|
+
$wixSource = Join-Path $PSScriptRoot 'vip-next.wxs'
|
|
17
|
+
$licenseSource = Join-Path $repoRoot 'LICENSE'
|
|
18
|
+
$tempRoot = Join-Path ([IO.Path]::GetTempPath()) ("vip-cli-msi-build-{0}" -f [Guid]::NewGuid().ToString('N'))
|
|
19
|
+
$stageDir = Join-Path $tempRoot 'stage'
|
|
20
|
+
$toolDir = Join-Path $tempRoot 'tools'
|
|
21
|
+
$originalDotnetRollForward = [Environment]::GetEnvironmentVariable('DOTNET_ROLL_FORWARD', 'Process')
|
|
22
|
+
|
|
23
|
+
function Resolve-InputFile([string]$Path, [string]$Label) {
|
|
24
|
+
if (-not (Test-Path -LiteralPath $Path -PathType Leaf)) {
|
|
25
|
+
throw "$Label does not exist or is not a file: $Path"
|
|
26
|
+
}
|
|
27
|
+
return (Resolve-Path -LiteralPath $Path).ProviderPath
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function Invoke-External([string]$Command, [string[]]$Arguments, [string]$Failure) {
|
|
31
|
+
& $Command @Arguments
|
|
32
|
+
if ($LASTEXITCODE -ne 0) { throw "$Failure (exit $LASTEXITCODE)" }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function Convert-LicenseToRtf([string]$Source, [string]$Destination) {
|
|
36
|
+
$body = [IO.File]::ReadAllText($Source)
|
|
37
|
+
$body = $body.Replace('\', '\\').Replace('{', '\{').Replace('}', '\}')
|
|
38
|
+
$body = $body.Replace("`r`n", "`n").Replace("`r", "`n").Replace("`n", "\par`r`n")
|
|
39
|
+
$rtf = '{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}}\viewkind4\uc1\pard\f0\fs18 ' + $body + '}'
|
|
40
|
+
[IO.File]::WriteAllText($Destination, $rtf, (New-Object Text.ASCIIEncoding))
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function Get-ProductCode([string]$NumericVersion) {
|
|
44
|
+
$seed = "vip-cli-msi:{9D089A27-73D9-4A31-91E1-A21A37ED94F1}:$NumericVersion"
|
|
45
|
+
$sha256 = [Security.Cryptography.SHA256]::Create()
|
|
46
|
+
try {
|
|
47
|
+
$hash = $sha256.ComputeHash([Text.Encoding]::UTF8.GetBytes($seed))
|
|
48
|
+
} finally {
|
|
49
|
+
$sha256.Dispose()
|
|
50
|
+
}
|
|
51
|
+
$hash[6] = ($hash[6] -band 0x0f) -bor 0x50
|
|
52
|
+
$hash[8] = ($hash[8] -band 0x3f) -bor 0x80
|
|
53
|
+
$hex = ([BitConverter]::ToString($hash, 0, 16)).Replace('-', '')
|
|
54
|
+
return '{' + $hex.Substring(0, 8) + '-' + $hex.Substring(8, 4) + '-' +
|
|
55
|
+
$hex.Substring(12, 4) + '-' + $hex.Substring(16, 4) + '-' + $hex.Substring(20, 12) + '}'
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
$cliPath = Resolve-InputFile $CLI 'CLI executable'
|
|
59
|
+
$helperPath = Resolve-InputFile $Helper 'Helper executable'
|
|
60
|
+
$licensePath = Resolve-InputFile $licenseSource 'Repository license'
|
|
61
|
+
$wixSourcePath = Resolve-InputFile $wixSource 'WiX source'
|
|
62
|
+
|
|
63
|
+
$outputFullPath = [IO.Path]::GetFullPath($Output)
|
|
64
|
+
$outputDirectory = Split-Path -Parent $outputFullPath
|
|
65
|
+
if (-not $outputDirectory) { $outputDirectory = (Get-Location).ProviderPath }
|
|
66
|
+
New-Item -ItemType Directory -Force -Path $outputDirectory | Out-Null
|
|
67
|
+
$outputDirectory = (Resolve-Path -LiteralPath $outputDirectory).ProviderPath
|
|
68
|
+
$outputFullPath = Join-Path $outputDirectory (Split-Path -Leaf $outputFullPath)
|
|
69
|
+
|
|
70
|
+
$dotnet = Get-Command dotnet -ErrorAction SilentlyContinue
|
|
71
|
+
if (-not $dotnet) {
|
|
72
|
+
throw 'Building the MSI requires the .NET 8 SDK or newer. Install it and rerun packaging/windows/build-msi.ps1.'
|
|
73
|
+
}
|
|
74
|
+
$dotnetVersion = (& $dotnet.Source --version | Out-String).Trim()
|
|
75
|
+
if ($LASTEXITCODE -ne 0 -or $dotnetVersion -notmatch '^(\d+)\.') {
|
|
76
|
+
throw 'Unable to determine the installed .NET SDK version.'
|
|
77
|
+
}
|
|
78
|
+
if ([int]$Matches[1] -lt 8) {
|
|
79
|
+
throw "Building the MSI requires the .NET 8 SDK or newer; found $dotnetVersion."
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
$go = Get-Command go -ErrorAction SilentlyContinue
|
|
83
|
+
if (-not $go) { throw 'Building the MSI requires Go to resolve the shared numeric installer version.' }
|
|
84
|
+
|
|
85
|
+
New-Item -ItemType Directory -Force -Path $stageDir, $toolDir | Out-Null
|
|
86
|
+
try {
|
|
87
|
+
Push-Location $repoRoot
|
|
88
|
+
try {
|
|
89
|
+
$numericVersion = (& $go.Source run -mod=mod ./cmd/installer-version $Version | Out-String).Trim()
|
|
90
|
+
if ($LASTEXITCODE -ne 0 -or -not $numericVersion) {
|
|
91
|
+
throw "installer-version failed for $Version"
|
|
92
|
+
}
|
|
93
|
+
} finally {
|
|
94
|
+
Pop-Location
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
$stagedCli = Join-Path $stageDir 'vip-next.exe'
|
|
98
|
+
$stagedHelper = Join-Path $stageDir 'go-search-replace.exe'
|
|
99
|
+
Copy-Item -LiteralPath $cliPath -Destination $stagedCli
|
|
100
|
+
Copy-Item -LiteralPath $helperPath -Destination $stagedHelper
|
|
101
|
+
if ((Get-FileHash -LiteralPath $cliPath -Algorithm SHA256).Hash -ne
|
|
102
|
+
(Get-FileHash -LiteralPath $stagedCli -Algorithm SHA256).Hash) {
|
|
103
|
+
throw 'Staging modified the CLI executable bytes.'
|
|
104
|
+
}
|
|
105
|
+
if ((Get-FileHash -LiteralPath $helperPath -Algorithm SHA256).Hash -ne
|
|
106
|
+
(Get-FileHash -LiteralPath $stagedHelper -Algorithm SHA256).Hash) {
|
|
107
|
+
throw 'Staging modified the helper executable bytes.'
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
Copy-Item -LiteralPath $licensePath -Destination (Join-Path $stageDir 'LICENSE.txt')
|
|
111
|
+
[IO.File]::WriteAllText(
|
|
112
|
+
(Join-Path $stageDir '.vip-next-installer.json'),
|
|
113
|
+
'{"schema":1,"manager":"msi"}',
|
|
114
|
+
(New-Object Text.UTF8Encoding($false))
|
|
115
|
+
)
|
|
116
|
+
$licenseRtf = Join-Path $stageDir 'LICENSE.rtf'
|
|
117
|
+
Convert-LicenseToRtf $licensePath $licenseRtf
|
|
118
|
+
|
|
119
|
+
$env:DOTNET_ROLL_FORWARD = 'Major'
|
|
120
|
+
Invoke-External $dotnet.Source @(
|
|
121
|
+
'tool', 'install', 'wix', '--tool-path', $toolDir, '--version', $wixVersion
|
|
122
|
+
) 'Installing the pinned WiX tool failed'
|
|
123
|
+
$wix = Join-Path $toolDir 'wix.exe'
|
|
124
|
+
if (-not (Test-Path -LiteralPath $wix -PathType Leaf)) {
|
|
125
|
+
throw "Pinned WiX executable was not installed at $wix"
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
Push-Location $tempRoot
|
|
129
|
+
try {
|
|
130
|
+
Invoke-External $wix @('extension', 'add', $uiExtension) 'Installing the pinned WiX UI extension failed'
|
|
131
|
+
Invoke-External $wix @(
|
|
132
|
+
'build', $wixSourcePath,
|
|
133
|
+
'-arch', 'x64',
|
|
134
|
+
'-ext', $uiExtension,
|
|
135
|
+
'-d', "NumericVersion=$numericVersion",
|
|
136
|
+
'-d', "ProductCode=$(Get-ProductCode $numericVersion)",
|
|
137
|
+
'-d', "StageDir=$stageDir",
|
|
138
|
+
'-d', "LicenseRtf=$licenseRtf",
|
|
139
|
+
'-out', $outputFullPath
|
|
140
|
+
) 'WiX MSI build failed'
|
|
141
|
+
} finally {
|
|
142
|
+
Pop-Location
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (-not (Test-Path -LiteralPath $outputFullPath -PathType Leaf)) {
|
|
146
|
+
throw "WiX reported success but did not create $outputFullPath"
|
|
147
|
+
}
|
|
148
|
+
} finally {
|
|
149
|
+
[Environment]::SetEnvironmentVariable('DOTNET_ROLL_FORWARD', $originalDotnetRollForward, 'Process')
|
|
150
|
+
if (Test-Path -LiteralPath $tempRoot) {
|
|
151
|
+
Remove-Item -LiteralPath $tempRoot -Recurse -Force
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
#Requires -Version 5.1
|
|
2
|
+
[CmdletBinding()]
|
|
3
|
+
param()
|
|
4
|
+
|
|
5
|
+
$ErrorActionPreference = 'Stop'
|
|
6
|
+
Set-StrictMode -Version Latest
|
|
7
|
+
|
|
8
|
+
if ([Environment]::OSVersion.Platform -ne [PlatformID]::Win32NT) {
|
|
9
|
+
throw 'The MSI lifecycle test must run on a disposable Windows CI runner.'
|
|
10
|
+
}
|
|
11
|
+
if ($env:VIP_INSTALLER_E2E -ne '1' -or
|
|
12
|
+
$env:GITHUB_ACTIONS -notmatch '^(?i:true)$' -or
|
|
13
|
+
$env:RUNNER_ENVIRONMENT -notmatch '^(?i:github-hosted)$') {
|
|
14
|
+
throw 'Refusing to modify the host. This test requires VIP_INSTALLER_E2E=1 on a GitHub-hosted Actions runner.'
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
|
|
18
|
+
$principal = New-Object Security.Principal.WindowsPrincipal($identity)
|
|
19
|
+
if (-not $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
|
|
20
|
+
throw 'The MSI lifecycle test requires an elevated disposable Windows CI runner.'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
$repoRoot = [IO.Path]::GetFullPath((Join-Path $PSScriptRoot '..\..'))
|
|
24
|
+
$buildScript = Join-Path $PSScriptRoot 'build-msi.ps1'
|
|
25
|
+
$verifyScript = Join-Path $PSScriptRoot 'verify-msi.ps1'
|
|
26
|
+
$installDir = Join-Path $env:ProgramFiles 'Automattic\VIP CLI'
|
|
27
|
+
$markerPath = Join-Path $installDir '.vip-next-installer.json'
|
|
28
|
+
$pathTarget = $installDir.TrimEnd('\')
|
|
29
|
+
$initialMachinePath = [Environment]::GetEnvironmentVariable('Path', 'Machine')
|
|
30
|
+
$tempRoot = Join-Path ([IO.Path]::GetTempPath()) ("vip-cli-msi-e2e-{0}" -f [Guid]::NewGuid().ToString('N'))
|
|
31
|
+
$logsDir = Join-Path $tempRoot 'logs'
|
|
32
|
+
$testInstalledProduct = $false
|
|
33
|
+
|
|
34
|
+
function Test-PathContainsTarget([AllowNull()][string]$PathValue) {
|
|
35
|
+
if ($null -eq $PathValue) { return $false }
|
|
36
|
+
foreach ($entry in $PathValue.Split(';', [StringSplitOptions]::RemoveEmptyEntries)) {
|
|
37
|
+
if ([StringComparer]::OrdinalIgnoreCase.Equals($entry.Trim().TrimEnd('\'), $pathTarget)) {
|
|
38
|
+
return $true
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return $false
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function Get-VipCliUninstallEntries {
|
|
45
|
+
$roots = @(
|
|
46
|
+
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
|
|
47
|
+
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
|
|
48
|
+
)
|
|
49
|
+
return @(Get-ItemProperty -Path $roots -ErrorAction SilentlyContinue | Where-Object {
|
|
50
|
+
$displayName = $_.PSObject.Properties['DisplayName']
|
|
51
|
+
$installLocation = $_.PSObject.Properties['InstallLocation']
|
|
52
|
+
($displayName -and $displayName.Value -eq 'VIP CLI') -or
|
|
53
|
+
($installLocation -and $installLocation.Value -and
|
|
54
|
+
[StringComparer]::OrdinalIgnoreCase.Equals($installLocation.Value.TrimEnd('\'), $pathTarget))
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function Invoke-MsiExec {
|
|
59
|
+
param(
|
|
60
|
+
[Parameter(Mandatory = $true)][ValidateSet('install', 'uninstall')][string]$Action,
|
|
61
|
+
[Parameter(Mandatory = $true)][string]$Target,
|
|
62
|
+
[Parameter(Mandatory = $true)][string]$Log,
|
|
63
|
+
[int[]]$ExpectedExitCodes = @(0)
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
$verb = if ($Action -eq 'install') { '/i' } else { '/x' }
|
|
67
|
+
$arguments = @($verb, "`"$Target`"", '/qn', '/norestart', '/l*v', "`"$Log`"")
|
|
68
|
+
$process = Start-Process -FilePath "$env:SystemRoot\System32\msiexec.exe" `
|
|
69
|
+
-ArgumentList $arguments `
|
|
70
|
+
-Wait -PassThru
|
|
71
|
+
if ($ExpectedExitCodes -notcontains $process.ExitCode) {
|
|
72
|
+
if (Test-Path -LiteralPath $Log) { Get-Content -LiteralPath $Log | Write-Host }
|
|
73
|
+
throw "msiexec $Action exited $($process.ExitCode); expected $($ExpectedExitCodes -join ', '). Log: $Log"
|
|
74
|
+
}
|
|
75
|
+
return $process.ExitCode
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function New-FixtureExecutable {
|
|
79
|
+
param(
|
|
80
|
+
[Parameter(Mandatory = $true)][string]$Name,
|
|
81
|
+
[Parameter(Mandatory = $true)][string]$Version,
|
|
82
|
+
[Parameter(Mandatory = $true)][string]$Output
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
Push-Location $repoRoot
|
|
86
|
+
try {
|
|
87
|
+
$env:CGO_ENABLED = '0'
|
|
88
|
+
$env:GOOS = 'windows'
|
|
89
|
+
$env:GOARCH = 'amd64'
|
|
90
|
+
& go build -buildvcs=false -trimpath `
|
|
91
|
+
-ldflags "-s -w -X main.fixtureVersion=$Version" `
|
|
92
|
+
-o $Output ./testdata/installer-fixture
|
|
93
|
+
if ($LASTEXITCODE -ne 0) { throw "go build failed for $Name $Version" }
|
|
94
|
+
} finally {
|
|
95
|
+
Pop-Location
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function Assert-InstalledPayload {
|
|
100
|
+
param(
|
|
101
|
+
[Parameter(Mandatory = $true)][string]$Version,
|
|
102
|
+
[Parameter(Mandatory = $true)][string]$ExpectedCli,
|
|
103
|
+
[Parameter(Mandatory = $true)][string]$ExpectedHelper
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
$installedCli = Join-Path $installDir 'vip-next.exe'
|
|
107
|
+
$installedHelper = Join-Path $installDir 'go-search-replace.exe'
|
|
108
|
+
foreach ($pair in @(@($installedCli, $ExpectedCli), @($installedHelper, $ExpectedHelper))) {
|
|
109
|
+
if (-not (Test-Path -LiteralPath $pair[0] -PathType Leaf)) { throw "Missing installed file: $($pair[0])" }
|
|
110
|
+
$actualHash = (Get-FileHash -LiteralPath $pair[0] -Algorithm SHA256).Hash
|
|
111
|
+
$expectedHash = (Get-FileHash -LiteralPath $pair[1] -Algorithm SHA256).Hash
|
|
112
|
+
if ($actualHash -ne $expectedHash) { throw "Installed bytes differ for $($pair[0])" }
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
$cliVersion = (& $installedCli --version | Out-String).Trim()
|
|
116
|
+
if ($LASTEXITCODE -ne 0 -or $cliVersion -ne $Version) {
|
|
117
|
+
throw "Unexpected vip-next version output: $cliVersion"
|
|
118
|
+
}
|
|
119
|
+
$helperVersion = (& $installedHelper --version | Out-String).Trim()
|
|
120
|
+
if ($LASTEXITCODE -ne 0 -or $helperVersion -ne "${Version}-helper") {
|
|
121
|
+
throw "Unexpected go-search-replace version output: $helperVersion"
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if ((Get-Content -LiteralPath $markerPath -Raw) -ne '{"schema":1,"manager":"msi"}') {
|
|
125
|
+
throw 'Installer marker contents do not match the ownership contract.'
|
|
126
|
+
}
|
|
127
|
+
$installedLicense = Join-Path $installDir 'LICENSE.txt'
|
|
128
|
+
if (-not (Test-Path -LiteralPath $installedLicense -PathType Leaf) -or
|
|
129
|
+
(Get-FileHash -LiteralPath $installedLicense -Algorithm SHA256).Hash -ne
|
|
130
|
+
(Get-FileHash -LiteralPath (Join-Path $repoRoot 'LICENSE') -Algorithm SHA256).Hash) {
|
|
131
|
+
throw 'Installed license does not match the repository license.'
|
|
132
|
+
}
|
|
133
|
+
if (-not (Test-PathContainsTarget ([Environment]::GetEnvironmentVariable('Path', 'Machine')))) {
|
|
134
|
+
throw "The system PATH does not contain $installDir"
|
|
135
|
+
}
|
|
136
|
+
$owner = (& $installedCli --installer-owner | Out-String).Trim()
|
|
137
|
+
if ($LASTEXITCODE -ne 0 -or $owner -notmatch '(?i)\.msi') {
|
|
138
|
+
throw "Installed fixture did not report MSI ownership instructions: $owner"
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (Get-VipCliUninstallEntries) { throw 'Refusing to run with an existing VIP CLI MSI installation.' }
|
|
143
|
+
if (Test-Path -LiteralPath $installDir) { throw "Refusing to run because $installDir already exists." }
|
|
144
|
+
if (Test-Path -LiteralPath $markerPath) { throw "Refusing to run because $markerPath already exists." }
|
|
145
|
+
if (Test-PathContainsTarget $initialMachinePath) { throw "Refusing to run because system PATH already contains $installDir." }
|
|
146
|
+
if (-not (Get-Command go -ErrorAction SilentlyContinue)) { throw 'Go is required to build the lifecycle fixture executables.' }
|
|
147
|
+
|
|
148
|
+
New-Item -ItemType Directory -Force -Path $logsDir | Out-Null
|
|
149
|
+
|
|
150
|
+
try {
|
|
151
|
+
$versions = @('5.0.0-alpha.0', '5.0.0-alpha.1')
|
|
152
|
+
$artifacts = @{}
|
|
153
|
+
foreach ($version in $versions) {
|
|
154
|
+
$versionDir = Join-Path $tempRoot ($version -replace '[^A-Za-z0-9.-]', '-')
|
|
155
|
+
New-Item -ItemType Directory -Force -Path $versionDir | Out-Null
|
|
156
|
+
$cli = Join-Path $versionDir 'vip-next.exe'
|
|
157
|
+
$helper = Join-Path $versionDir 'go-search-replace.exe'
|
|
158
|
+
$msi = Join-Path $versionDir 'vip-next-windows-amd64.msi'
|
|
159
|
+
New-FixtureExecutable -Name 'vip-next' -Version $version -Output $cli
|
|
160
|
+
New-FixtureExecutable -Name 'go-search-replace' -Version "${version}-helper" -Output $helper
|
|
161
|
+
& $buildScript -Version $version -CLI $cli -Helper $helper -Output $msi
|
|
162
|
+
if ($LASTEXITCODE -ne 0) { throw "build-msi.ps1 failed for $version" }
|
|
163
|
+
& $verifyScript -MSI $msi -CLI $cli -Helper $helper
|
|
164
|
+
if ($LASTEXITCODE -ne 0) { throw "verify-msi.ps1 failed for $version" }
|
|
165
|
+
$artifacts[$version] = @{ CLI = $cli; Helper = $helper; MSI = $msi }
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
$alpha0 = $artifacts['5.0.0-alpha.0']
|
|
169
|
+
$alpha1 = $artifacts['5.0.0-alpha.1']
|
|
170
|
+
Invoke-MsiExec -Action install -Target $alpha0.MSI -Log (Join-Path $logsDir 'install-alpha.0.log')
|
|
171
|
+
$testInstalledProduct = $true
|
|
172
|
+
Assert-InstalledPayload -Version '5.0.0-alpha.0' -ExpectedCli $alpha0.CLI -ExpectedHelper $alpha0.Helper
|
|
173
|
+
|
|
174
|
+
Invoke-MsiExec -Action install -Target $alpha1.MSI -Log (Join-Path $logsDir 'upgrade-alpha.1.log')
|
|
175
|
+
Assert-InstalledPayload -Version '5.0.0-alpha.1' -ExpectedCli $alpha1.CLI -ExpectedHelper $alpha1.Helper
|
|
176
|
+
|
|
177
|
+
$downgradeExit = Invoke-MsiExec -Action install -Target $alpha0.MSI `
|
|
178
|
+
-Log (Join-Path $logsDir 'downgrade-alpha.0.log') -ExpectedExitCodes @(1603, 1638)
|
|
179
|
+
if ($downgradeExit -eq 0) { throw 'Downgrade unexpectedly succeeded.' }
|
|
180
|
+
Assert-InstalledPayload -Version '5.0.0-alpha.1' -ExpectedCli $alpha1.CLI -ExpectedHelper $alpha1.Helper
|
|
181
|
+
|
|
182
|
+
$entry = @(Get-VipCliUninstallEntries)
|
|
183
|
+
if ($entry.Count -ne 1 -or $entry[0].PSChildName -notmatch '^\{[0-9A-Fa-f-]{36}\}$') {
|
|
184
|
+
throw "Expected one uninstall registry entry, found $($entry.Count)."
|
|
185
|
+
}
|
|
186
|
+
Invoke-MsiExec -Action uninstall -Target $entry[0].PSChildName -Log (Join-Path $logsDir 'uninstall.log')
|
|
187
|
+
$testInstalledProduct = $false
|
|
188
|
+
|
|
189
|
+
foreach ($path in @(
|
|
190
|
+
(Join-Path $installDir 'vip-next.exe'),
|
|
191
|
+
(Join-Path $installDir 'go-search-replace.exe'),
|
|
192
|
+
(Join-Path $installDir 'LICENSE.txt'),
|
|
193
|
+
$markerPath
|
|
194
|
+
)) {
|
|
195
|
+
if (Test-Path -LiteralPath $path) { throw "Uninstall left managed file behind: $path" }
|
|
196
|
+
}
|
|
197
|
+
$finalMachinePath = [Environment]::GetEnvironmentVariable('Path', 'Machine')
|
|
198
|
+
if ($finalMachinePath -ne $initialMachinePath) {
|
|
199
|
+
throw 'Uninstall did not restore the exact initial system PATH.'
|
|
200
|
+
}
|
|
201
|
+
if (Get-VipCliUninstallEntries) { throw 'Uninstall registry entry remains after uninstall.' }
|
|
202
|
+
} catch {
|
|
203
|
+
Get-ChildItem -LiteralPath $logsDir -Filter '*.log' -ErrorAction SilentlyContinue | ForEach-Object {
|
|
204
|
+
Write-Host "--- MSI log: $($_.FullName)"
|
|
205
|
+
Get-Content -LiteralPath $_.FullName | Write-Host
|
|
206
|
+
}
|
|
207
|
+
throw
|
|
208
|
+
} finally {
|
|
209
|
+
if ($testInstalledProduct) {
|
|
210
|
+
$entries = @(Get-VipCliUninstallEntries)
|
|
211
|
+
foreach ($entry in $entries) {
|
|
212
|
+
if ($entry.PSChildName -match '^\{[0-9A-Fa-f-]{36}\}$') {
|
|
213
|
+
try {
|
|
214
|
+
Invoke-MsiExec -Action uninstall -Target $entry.PSChildName `
|
|
215
|
+
-Log (Join-Path $logsDir 'cleanup-uninstall.log') -ExpectedExitCodes @(0, 1605, 3010)
|
|
216
|
+
} catch {
|
|
217
|
+
Write-Warning "Cleanup uninstall failed: $_"
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (Test-Path -LiteralPath $tempRoot) {
|
|
223
|
+
Remove-Item -LiteralPath $tempRoot -Recurse -Force
|
|
224
|
+
}
|
|
225
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#Requires -Version 5.1
|
|
2
|
+
[CmdletBinding()]
|
|
3
|
+
param(
|
|
4
|
+
[Parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string]$MSI,
|
|
5
|
+
[Parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string]$CLI,
|
|
6
|
+
[Parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string]$Helper
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
$ErrorActionPreference = 'Stop'
|
|
10
|
+
Set-StrictMode -Version Latest
|
|
11
|
+
|
|
12
|
+
if ([Environment]::OSVersion.Platform -ne [PlatformID]::Win32NT) {
|
|
13
|
+
throw 'MSI payload verification requires Windows and msiexec.'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function Resolve-InputFile([string]$Path, [string]$Label) {
|
|
17
|
+
if (-not (Test-Path -LiteralPath $Path -PathType Leaf)) {
|
|
18
|
+
throw "$Label does not exist or is not a file: $Path"
|
|
19
|
+
}
|
|
20
|
+
return (Resolve-Path -LiteralPath $Path).ProviderPath
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
$repoRoot = [IO.Path]::GetFullPath((Join-Path $PSScriptRoot '..\..'))
|
|
24
|
+
$msiPath = Resolve-InputFile $MSI 'MSI package'
|
|
25
|
+
$cliPath = Resolve-InputFile $CLI 'CLI executable'
|
|
26
|
+
$helperPath = Resolve-InputFile $Helper 'Helper executable'
|
|
27
|
+
$licensePath = Resolve-InputFile (Join-Path $repoRoot 'LICENSE') 'Repository license'
|
|
28
|
+
$initialMsiHash = (Get-FileHash -LiteralPath $msiPath -Algorithm SHA256).Hash
|
|
29
|
+
$verifyRoot = Join-Path ([IO.Path]::GetTempPath()) ("vip-cli-msi-verify-{0}" -f [Guid]::NewGuid().ToString('N'))
|
|
30
|
+
$extractRoot = Join-Path $verifyRoot 'image'
|
|
31
|
+
$log = Join-Path $verifyRoot 'admin-extract.log'
|
|
32
|
+
|
|
33
|
+
New-Item -ItemType Directory -Force -Path $extractRoot | Out-Null
|
|
34
|
+
try {
|
|
35
|
+
$arguments = @('/a', "`"$msiPath`"", "TARGETDIR=`"$extractRoot`"", '/qn', '/l*v', "`"$log`"")
|
|
36
|
+
$process = Start-Process -FilePath "$env:SystemRoot\System32\msiexec.exe" `
|
|
37
|
+
-ArgumentList $arguments -Wait -PassThru
|
|
38
|
+
if ($process.ExitCode -ne 0) {
|
|
39
|
+
throw "MSI administrative extraction failed with exit $($process.ExitCode)"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
$payloads = @(
|
|
43
|
+
@{ Name = 'vip-next.exe'; Expected = $cliPath },
|
|
44
|
+
@{ Name = 'go-search-replace.exe'; Expected = $helperPath },
|
|
45
|
+
@{ Name = 'LICENSE.txt'; Expected = $licensePath }
|
|
46
|
+
)
|
|
47
|
+
foreach ($payload in $payloads) {
|
|
48
|
+
$payloadFiles = @(Get-ChildItem -LiteralPath $extractRoot -Filter $payload.Name -File -Recurse)
|
|
49
|
+
if ($payloadFiles.Count -ne 1) {
|
|
50
|
+
throw "Expected one $($payload.Name) in MSI, found $($payloadFiles.Count)"
|
|
51
|
+
}
|
|
52
|
+
$actualHash = (Get-FileHash -LiteralPath $payloadFiles[0].FullName -Algorithm SHA256).Hash
|
|
53
|
+
$expectedHash = (Get-FileHash -LiteralPath $payload.Expected -Algorithm SHA256).Hash
|
|
54
|
+
if ($actualHash -ne $expectedHash) { throw "MSI payload bytes differ for $($payload.Name)" }
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
$markers = @(Get-ChildItem -LiteralPath $extractRoot -Filter '.vip-next-installer.json' -File -Recurse)
|
|
58
|
+
if ($markers.Count -ne 1 -or
|
|
59
|
+
(Get-Content -LiteralPath $markers[0].FullName -Raw) -ne '{"schema":1,"manager":"msi"}') {
|
|
60
|
+
throw 'MSI ownership marker is missing, duplicated, or invalid.'
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
$finalMsiHash = (Get-FileHash -LiteralPath $msiPath -Algorithm SHA256).Hash
|
|
64
|
+
if ($finalMsiHash -ne $initialMsiHash) {
|
|
65
|
+
throw 'MSI administrative extraction modified the source package.'
|
|
66
|
+
}
|
|
67
|
+
} catch {
|
|
68
|
+
if (Test-Path -LiteralPath $log) { Get-Content -LiteralPath $log | Write-Host }
|
|
69
|
+
throw
|
|
70
|
+
} finally {
|
|
71
|
+
if (Test-Path -LiteralPath $verifyRoot) {
|
|
72
|
+
Remove-Item -LiteralPath $verifyRoot -Recurse -Force
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
|
|
3
|
+
xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui"
|
|
4
|
+
RequiredVersion="5.0.2">
|
|
5
|
+
<Package Name="VIP CLI"
|
|
6
|
+
Manufacturer="Automattic"
|
|
7
|
+
Version="$(NumericVersion)"
|
|
8
|
+
ProductCode="$(ProductCode)"
|
|
9
|
+
UpgradeCode="{9D089A27-73D9-4A31-91E1-A21A37ED94F1}"
|
|
10
|
+
Language="1033"
|
|
11
|
+
Scope="perMachine"
|
|
12
|
+
InstallerVersion="500"
|
|
13
|
+
Compressed="yes">
|
|
14
|
+
<SummaryInformation Description="WordPress VIP command-line interface"
|
|
15
|
+
Manufacturer="Automattic" />
|
|
16
|
+
<MajorUpgrade AllowDowngrades="no"
|
|
17
|
+
AllowSameVersionUpgrades="no"
|
|
18
|
+
DowngradeErrorMessage="A newer version of VIP CLI is already installed."
|
|
19
|
+
Schedule="afterInstallInitialize" />
|
|
20
|
+
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
|
|
21
|
+
|
|
22
|
+
<StandardDirectory Id="ProgramFiles64Folder">
|
|
23
|
+
<Directory Id="AutomatticFolder" Name="Automattic">
|
|
24
|
+
<Directory Id="INSTALLFOLDER" Name="VIP CLI">
|
|
25
|
+
<Component Id="VipNextExecutable" Bitness="always64">
|
|
26
|
+
<File Id="VipNextExecutableFile"
|
|
27
|
+
Name="vip-next.exe"
|
|
28
|
+
Source="$(StageDir)\vip-next.exe"
|
|
29
|
+
KeyPath="yes" />
|
|
30
|
+
</Component>
|
|
31
|
+
<Component Id="SearchReplaceExecutable" Bitness="always64">
|
|
32
|
+
<File Id="SearchReplaceExecutableFile"
|
|
33
|
+
Name="go-search-replace.exe"
|
|
34
|
+
Source="$(StageDir)\go-search-replace.exe"
|
|
35
|
+
KeyPath="yes" />
|
|
36
|
+
</Component>
|
|
37
|
+
<Component Id="InstallerMarker" Bitness="always64">
|
|
38
|
+
<File Id="InstallerMarkerFile"
|
|
39
|
+
Name=".vip-next-installer.json"
|
|
40
|
+
Source="$(StageDir)\.vip-next-installer.json"
|
|
41
|
+
KeyPath="yes" />
|
|
42
|
+
</Component>
|
|
43
|
+
<Component Id="LicenseFile" Bitness="always64">
|
|
44
|
+
<File Id="LicenseTextFile"
|
|
45
|
+
Name="LICENSE.txt"
|
|
46
|
+
Source="$(StageDir)\LICENSE.txt"
|
|
47
|
+
KeyPath="yes" />
|
|
48
|
+
</Component>
|
|
49
|
+
<Component Id="SystemPathEntry" Bitness="always64">
|
|
50
|
+
<Environment Id="VipCliSystemPath"
|
|
51
|
+
Name="PATH"
|
|
52
|
+
Value="[INSTALLFOLDER]"
|
|
53
|
+
Action="set"
|
|
54
|
+
Part="last"
|
|
55
|
+
System="yes"
|
|
56
|
+
Permanent="no" />
|
|
57
|
+
<RegistryValue Root="HKLM"
|
|
58
|
+
Key="Software\Automattic\VIP CLI"
|
|
59
|
+
Name="InstallLocation"
|
|
60
|
+
Type="string"
|
|
61
|
+
Value="[INSTALLFOLDER]"
|
|
62
|
+
KeyPath="yes" />
|
|
63
|
+
</Component>
|
|
64
|
+
</Directory>
|
|
65
|
+
</Directory>
|
|
66
|
+
</StandardDirectory>
|
|
67
|
+
|
|
68
|
+
<Feature Id="Complete" Title="VIP CLI" Level="1">
|
|
69
|
+
<ComponentRef Id="VipNextExecutable" />
|
|
70
|
+
<ComponentRef Id="SearchReplaceExecutable" />
|
|
71
|
+
<ComponentRef Id="InstallerMarker" />
|
|
72
|
+
<ComponentRef Id="LicenseFile" />
|
|
73
|
+
<ComponentRef Id="SystemPathEntry" />
|
|
74
|
+
</Feature>
|
|
75
|
+
|
|
76
|
+
<ui:WixUI Id="WixUI_Minimal" />
|
|
77
|
+
<WixVariable Id="WixUILicenseRtf" Value="$(LicenseRtf)" />
|
|
78
|
+
</Package>
|
|
79
|
+
</Wix>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Tiny runnable payload for disposable native installer lifecycle tests.
|
|
2
|
+
package main
|
|
3
|
+
|
|
4
|
+
import (
|
|
5
|
+
"context"
|
|
6
|
+
"fmt"
|
|
7
|
+
"os"
|
|
8
|
+
"path/filepath"
|
|
9
|
+
"runtime"
|
|
10
|
+
|
|
11
|
+
"github.com/Automattic/vip/internal/update"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
var fixtureVersion = "fixture"
|
|
15
|
+
|
|
16
|
+
func main() {
|
|
17
|
+
if len(os.Args) == 2 && os.Args[1] == "--version" {
|
|
18
|
+
fmt.Println(fixtureVersion)
|
|
19
|
+
return
|
|
20
|
+
}
|
|
21
|
+
if len(os.Args) == 2 && os.Args[1] == "--installer-owner" {
|
|
22
|
+
exe, err := os.Executable()
|
|
23
|
+
if err != nil {
|
|
24
|
+
panic(err)
|
|
25
|
+
}
|
|
26
|
+
helper := "go-search-replace"
|
|
27
|
+
if runtime.GOOS == "windows" {
|
|
28
|
+
helper += ".exe"
|
|
29
|
+
}
|
|
30
|
+
owner, err := update.InspectOwnership(context.Background(), update.Layout{CLI: exe, Helper: filepath.Join(filepath.Dir(exe), helper)})
|
|
31
|
+
if err != nil || !owner.Managed {
|
|
32
|
+
fmt.Fprintln(os.Stderr, "installer ownership missing:", err)
|
|
33
|
+
os.Exit(1)
|
|
34
|
+
}
|
|
35
|
+
fmt.Println(owner.Instructions)
|
|
36
|
+
return
|
|
37
|
+
}
|
|
38
|
+
fmt.Fprintln(os.Stderr, "expected --version or --installer-owner")
|
|
39
|
+
os.Exit(1)
|
|
40
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NoInfer.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Helper type that allows using a type in a way that cannot be "widened" by inference on the value it is used on.
|
|
3
|
-
*
|
|
4
|
-
* This type was first suggested [in this Github discussion](https://github.com/microsoft/TypeScript/issues/14829#issuecomment-504042546).
|
|
5
|
-
*
|
|
6
|
-
* Example usage:
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* export function useQuery<
|
|
10
|
-
* TData = unknown,
|
|
11
|
-
* TVariables extends OperationVariables = OperationVariables,
|
|
12
|
-
* >(
|
|
13
|
-
* query: DocumentNode | TypedDocumentNode<TData, TVariables>,
|
|
14
|
-
* options: QueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> = {}
|
|
15
|
-
* );
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* In this case, `TData` and `TVariables` should be inferred from `query`, but never widened from something in `options`.
|
|
19
|
-
*
|
|
20
|
-
* So, in this code example:
|
|
21
|
-
*
|
|
22
|
-
* ```ts
|
|
23
|
-
* declare const typedNode: TypedDocumentNode<{ foo: string }, { bar: number }>;
|
|
24
|
-
* const { variables } = useQuery(typedNode, {
|
|
25
|
-
* variables: { bar: 4, nonExistingVariable: "string" },
|
|
26
|
-
* });
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* Without the use of `NoInfer`, `variables` would now be of the type `{ bar: number, nonExistingVariable: "string" }`.
|
|
30
|
-
* With `NoInfer`, it will instead give an error on `nonExistingVariable`.
|
|
31
|
-
*
|
|
32
|
-
* @deprecated use the official `NoInfer` type instead.
|
|
33
|
-
*/
|
|
34
|
-
export type NoInfer<T> = [T][T extends any ? 0 : never];
|
|
35
|
-
//# sourceMappingURL=NoInfer.d.cts.map
|