@automattic/vip 4.1.3 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (791) hide show
  1. package/.buildkite/build-macos-installer.sh +34 -0
  2. package/.buildkite/build-macos.sh +2 -3
  3. package/.buildkite/build-windows-installer.ps1 +65 -0
  4. package/.buildkite/build-windows.ps1 +2 -18
  5. package/.buildkite/pipeline.yml +32 -0
  6. package/.buildkite/sign-windows.ps1 +21 -0
  7. package/.buildkite/test-windows-installer-download.ps1 +54 -0
  8. package/.buildkite/test_pipeline.py +69 -0
  9. package/Gemfile.lock +44 -41
  10. package/cmd/installer-payload/main.go +19 -0
  11. package/cmd/installer-version/main.go +22 -0
  12. package/cmd/vip-next/commands/app_debug_test.go +89 -0
  13. package/cmd/vip-next/commands/app_deploy.go +4 -0
  14. package/cmd/vip-next/commands/app_deploy_validate.go +2 -0
  15. package/cmd/vip-next/commands/config_debug_test.go +137 -0
  16. package/cmd/vip-next/commands/config_envvar_delete.go +2 -0
  17. package/cmd/vip-next/commands/config_envvar_get.go +2 -0
  18. package/cmd/vip-next/commands/config_envvar_get_all.go +2 -0
  19. package/cmd/vip-next/commands/config_envvar_list.go +2 -0
  20. package/cmd/vip-next/commands/config_envvar_set.go +2 -0
  21. package/cmd/vip-next/commands/config_software_update.go +12 -1
  22. package/cmd/vip-next/commands/devenv_create_test.go +5 -5
  23. package/cmd/vip-next/commands/devenv_debug_test.go +34 -0
  24. package/cmd/vip-next/commands/devenv_envvar.go +6 -0
  25. package/cmd/vip-next/commands/devenv_lifecycle.go +30 -11
  26. package/cmd/vip-next/commands/devenv_update.go +1 -1
  27. package/cmd/vip-next/commands/devenv_update_test.go +28 -2
  28. package/cmd/vip-next/commands/import_debug_test.go +110 -0
  29. package/cmd/vip-next/commands/import_media.go +4 -0
  30. package/cmd/vip-next/commands/import_sql.go +9 -1
  31. package/cmd/vip-next/commands/logout.go +1 -1
  32. package/cmd/vip-next/commands/searchreplace.go +3 -1
  33. package/cmd/vip-next/commands/searchreplace_debug_test.go +82 -0
  34. package/cmd/vip-next/commands/whoami.go +10 -1
  35. package/cmd/vip-next/commands/whoami_debug_test.go +79 -0
  36. package/cmd/vip-next/commands/wp.go +2 -0
  37. package/cmd/vip-next/commands/wp_debug_test.go +32 -0
  38. package/cmd/vip-next/debug_args.go +63 -0
  39. package/cmd/vip-next/debug_test.go +122 -0
  40. package/cmd/vip-next/main.go +58 -2
  41. package/cmd/vip-next/pendo_wiring_test.go +148 -0
  42. package/cmd/vip-next/root.go +17 -0
  43. package/dist/bin/vip-dev-env-envvar-get.js +2 -2
  44. package/dist/bin/vip-dev-env-envvar-set.js +2 -2
  45. package/dist/bin/vip-dev-env-update.js +1 -1
  46. package/dist/lib/analytics/clients/pendo.js +19 -7
  47. package/dist/lib/constants/dev-environment.js +8 -7
  48. package/dist/lib/dev-environment/dev-environment-cli.js +10 -2
  49. package/dist/lib/dev-environment/dev-environment-core.js +1 -1
  50. package/docs/BUILD-SIGNING.md +147 -6
  51. package/docs/DEBUGGING.md +61 -0
  52. package/docs/GO-UPDATES.md +7 -1
  53. package/docs/RELEASING.md +3 -2
  54. package/docs/SETUP.md +2 -1
  55. package/fastlane/Fastfile +66 -3
  56. package/fastlane/test_signing.rb +83 -0
  57. package/internal/auth/logout.go +14 -1
  58. package/internal/auth/logout_test.go +46 -0
  59. package/internal/debuglog/debuglog.go +85 -0
  60. package/internal/debuglog/debuglog_test.go +44 -0
  61. package/internal/devenv/compose/view.go +6 -3
  62. package/internal/devenv/compose/view_test.go +1 -1
  63. package/internal/devenv/debug.go +4 -0
  64. package/internal/devenv/debug_test.go +103 -0
  65. package/internal/devenv/devenv.go +20 -2
  66. package/internal/devenv/devexec.go +3 -0
  67. package/internal/devenv/importdata.go +4 -1
  68. package/internal/devenv/list.go +9 -1
  69. package/internal/devenv/logs.go +2 -0
  70. package/internal/devenv/proxy/ca.go +9 -2
  71. package/internal/devenv/proxy/ca_test.go +1 -1
  72. package/internal/devenv/proxy/network.go +7 -3
  73. package/internal/devenv/proxy/network_test.go +6 -0
  74. package/internal/devenv/proxy/proxy.go +37 -8
  75. package/internal/devenv/proxy/proxy_test.go +61 -6
  76. package/internal/devenv/proxy/scripts/gen-certs.sh +20 -5
  77. package/internal/devenv/update.go +2 -0
  78. package/internal/gql/debug_test.go +79 -0
  79. package/internal/gql/error.go +27 -1
  80. package/internal/gql/rechallenge.go +9 -5
  81. package/internal/gql/retry.go +21 -2
  82. package/internal/gql/transport.go +9 -0
  83. package/internal/httpproxy/debug_test.go +32 -0
  84. package/internal/httpproxy/httpproxy.go +8 -1
  85. package/internal/installer/version.go +41 -0
  86. package/internal/installer/version_test.go +33 -0
  87. package/internal/parity/edge_workers_debug_test.go +87 -0
  88. package/internal/parity/pendo_test.go +122 -0
  89. package/internal/rechallenge/flow.go +8 -0
  90. package/internal/rechallenge/flow_test.go +15 -1
  91. package/internal/releasepromotion/buildkite.go +12 -1
  92. package/internal/releasepromotion/buildkite_test.go +31 -0
  93. package/internal/releasepromotion/contract.go +49 -1
  94. package/internal/releasepromotion/contract_test.go +38 -0
  95. package/internal/releasepromotion/github.go +4 -10
  96. package/internal/releasepromotion/optional_installers_test.go +87 -0
  97. package/internal/releasepromotion/verify.go +99 -2
  98. package/internal/releasepromotion/verify_test.go +99 -0
  99. package/internal/searchreplace/debug_test.go +71 -0
  100. package/internal/searchreplace/searchreplace.go +14 -0
  101. package/internal/siteimport/debug_test.go +34 -0
  102. package/internal/siteimport/status.go +11 -0
  103. package/internal/telemetry/pendo.go +41 -10
  104. package/internal/telemetry/pendo_auth_test.go +92 -0
  105. package/internal/telemetry/pendo_test.go +24 -5
  106. package/internal/telemetry/tracker.go +26 -0
  107. package/internal/update/github.go +36 -17
  108. package/internal/update/ownership.go +22 -0
  109. package/internal/update/ownership_test.go +44 -0
  110. package/internal/update/release_test.go +53 -13
  111. package/internal/update/service_test.go +39 -0
  112. package/internal/upload/debug_test.go +76 -0
  113. package/internal/upload/multipart.go +3 -0
  114. package/internal/upload/orchestrate.go +10 -0
  115. package/internal/upload/putobject.go +3 -0
  116. package/internal/wpssh/debug_test.go +67 -0
  117. package/internal/wpssh/wpssh.go +7 -0
  118. package/internal/wpstream/debug_test.go +116 -0
  119. package/internal/wpstream/run.go +10 -1
  120. package/node_modules/@apollo/client/CHANGELOG.md +1130 -0
  121. package/node_modules/@apollo/client/__cjs/cache/core/Scalar.cjs +36 -0
  122. package/node_modules/@apollo/client/__cjs/cache/core/Scalar.cjs.map +1 -0
  123. package/node_modules/@apollo/client/__cjs/cache/core/Scalar.d.cts +56 -0
  124. package/node_modules/@apollo/client/__cjs/cache/core/cache.cjs +32 -1
  125. package/node_modules/@apollo/client/__cjs/cache/core/cache.cjs.map +1 -1
  126. package/node_modules/@apollo/client/__cjs/cache/core/cache.d.cts +89 -6
  127. package/node_modules/@apollo/client/__cjs/cache/core/types/Cache.d.cts +30 -2
  128. package/node_modules/@apollo/client/__cjs/cache/index.cjs +3 -1
  129. package/node_modules/@apollo/client/__cjs/cache/index.cjs.map +1 -1
  130. package/node_modules/@apollo/client/__cjs/cache/index.d.cts +2 -1
  131. package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.cjs +63 -5
  132. package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  133. package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.d.cts +3 -0
  134. package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs +12 -0
  135. package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs.map +1 -1
  136. package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.d.cts +11 -2
  137. package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs +95 -4
  138. package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  139. package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.d.cts +44 -5
  140. package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  141. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs +34 -6
  142. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs.map +1 -1
  143. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.d.cts +3 -1
  144. package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.cjs +489 -45
  145. package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  146. package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.d.cts +11 -2
  147. package/node_modules/@apollo/client/__cjs/cache/inmemory/types.d.cts +31 -4
  148. package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs +5 -9
  149. package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  150. package/node_modules/@apollo/client/__cjs/core/ApolloClient.cjs +14 -14
  151. package/node_modules/@apollo/client/__cjs/core/ApolloClient.cjs.map +1 -1
  152. package/node_modules/@apollo/client/__cjs/core/ApolloClient.d.cts +11 -11
  153. package/node_modules/@apollo/client/__cjs/core/ObservableQuery.cjs +186 -72
  154. package/node_modules/@apollo/client/__cjs/core/ObservableQuery.cjs.map +1 -1
  155. package/node_modules/@apollo/client/__cjs/core/ObservableQuery.d.cts +4 -7
  156. package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs +164 -197
  157. package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs.map +1 -1
  158. package/node_modules/@apollo/client/__cjs/core/QueryInfo.d.cts +17 -21
  159. package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs +75 -48
  160. package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs.map +1 -1
  161. package/node_modules/@apollo/client/__cjs/core/QueryManager.d.cts +4 -4
  162. package/node_modules/@apollo/client/__cjs/core/RefetchEventManager.cjs +3 -3
  163. package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.cjs +12 -0
  164. package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.cjs.map +1 -0
  165. package/node_modules/@apollo/client/__cjs/core/dataStateErrorCache.d.cts +3 -0
  166. package/node_modules/@apollo/client/__cjs/core/deprecated.d.cts +3 -3
  167. package/node_modules/@apollo/client/__cjs/core/index.cjs +2 -1
  168. package/node_modules/@apollo/client/__cjs/core/index.cjs.map +1 -1
  169. package/node_modules/@apollo/client/__cjs/core/index.d.cts +4 -3
  170. package/node_modules/@apollo/client/__cjs/core/types.d.cts +11 -7
  171. package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.cjs +3 -0
  172. package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.cjs.map +1 -0
  173. package/node_modules/@apollo/client/__cjs/incremental/GraphQLCodegenIncremental.d.cts +55 -0
  174. package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.cjs.map +1 -1
  175. package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.d.cts +2 -4
  176. package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.cjs +47 -16
  177. package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -1
  178. package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.d.cts +29 -6
  179. package/node_modules/@apollo/client/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  180. package/node_modules/@apollo/client/__cjs/incremental/index.cjs.map +1 -1
  181. package/node_modules/@apollo/client/__cjs/incremental/index.d.cts +1 -0
  182. package/node_modules/@apollo/client/__cjs/{utilities/internal/types/NoInfer.cjs → incremental/internal/types.cjs} +1 -1
  183. package/node_modules/@apollo/client/__cjs/incremental/internal/types.cjs.map +1 -0
  184. package/node_modules/@apollo/client/__cjs/incremental/internal/types.d.cts +17 -0
  185. package/node_modules/@apollo/client/__cjs/incremental/types.d.cts +55 -4
  186. package/node_modules/@apollo/client/__cjs/invariantErrorCodes.cjs +164 -113
  187. package/node_modules/@apollo/client/__cjs/link/core/ApolloLink.cjs +3 -3
  188. package/node_modules/@apollo/client/__cjs/link/http/checkFetcher.cjs +1 -1
  189. package/node_modules/@apollo/client/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
  190. package/node_modules/@apollo/client/__cjs/link/persisted-queries/index.cjs +2 -2
  191. package/node_modules/@apollo/client/__cjs/link/ws/index.cjs +1 -1
  192. package/node_modules/@apollo/client/__cjs/local-state/LocalState.cjs +11 -11
  193. package/node_modules/@apollo/client/__cjs/local-state/LocalState.cjs.map +1 -1
  194. package/node_modules/@apollo/client/__cjs/local-state/LocalState.d.cts +1 -1
  195. package/node_modules/@apollo/client/__cjs/masking/internal/types.d.cts +1 -2
  196. package/node_modules/@apollo/client/__cjs/masking/maskDefinition.cjs +2 -2
  197. package/node_modules/@apollo/client/__cjs/masking/maskFragment.cjs +2 -2
  198. package/node_modules/@apollo/client/__cjs/masking/maskOperation.cjs +1 -1
  199. package/node_modules/@apollo/client/__cjs/masking/utils.cjs +3 -3
  200. package/node_modules/@apollo/client/__cjs/react/context/ApolloContext.cjs +1 -1
  201. package/node_modules/@apollo/client/__cjs/react/context/ApolloProvider.cjs +1 -1
  202. package/node_modules/@apollo/client/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs +2 -2
  203. package/node_modules/@apollo/client/__cjs/react/hooks/useApolloClient.cjs +1 -1
  204. package/node_modules/@apollo/client/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  205. package/node_modules/@apollo/client/__cjs/react/hooks/useBackgroundQuery.d.cts +3 -3
  206. package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.cjs.map +1 -1
  207. package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.d.cts +0 -1
  208. package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.cjs +2 -2
  209. package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  210. package/node_modules/@apollo/client/__cjs/react/hooks/useLazyQuery.d.cts +1 -1
  211. package/node_modules/@apollo/client/__cjs/react/hooks/useLoadableQuery.cjs +2 -2
  212. package/node_modules/@apollo/client/__cjs/react/hooks/useMutation.cjs.map +1 -1
  213. package/node_modules/@apollo/client/__cjs/react/hooks/useMutation.d.cts +14 -14
  214. package/node_modules/@apollo/client/__cjs/react/hooks/useQuery.cjs.map +1 -1
  215. package/node_modules/@apollo/client/__cjs/react/hooks/useQuery.d.cts +16 -3
  216. package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.cjs +7 -3
  217. package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  218. package/node_modules/@apollo/client/__cjs/react/hooks/useSubscription.d.cts +27 -5
  219. package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  220. package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseFragment.d.cts +1 -1
  221. package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  222. package/node_modules/@apollo/client/__cjs/react/hooks/useSuspenseQuery.d.cts +30 -30
  223. package/node_modules/@apollo/client/__cjs/react/hooks/useSyncExternalStore.cjs +1 -1
  224. package/node_modules/@apollo/client/__cjs/react/internal/cache/QueryReference.cjs +1 -1
  225. package/node_modules/@apollo/client/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  226. package/node_modules/@apollo/client/__cjs/react/query-preloader/createQueryPreloader.d.cts +1 -1
  227. package/node_modules/@apollo/client/__cjs/react/ssr/prerenderStatic.cjs +2 -2
  228. package/node_modules/@apollo/client/__cjs/react/types/deprecated.d.cts +5 -4
  229. package/node_modules/@apollo/client/__cjs/react/types/types.documentation.d.cts +12 -1
  230. package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.cjs +25 -5
  231. package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  232. package/node_modules/@apollo/client/__cjs/testing/core/mocking/mockLink.d.cts +1 -2
  233. package/node_modules/@apollo/client/__cjs/utilities/caching/sizes.cjs.map +1 -1
  234. package/node_modules/@apollo/client/__cjs/utilities/caching/sizes.d.cts +39 -1
  235. package/node_modules/@apollo/client/__cjs/utilities/graphql/DocumentTransform.cjs +1 -1
  236. package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.cjs +27 -0
  237. package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.cjs.map +1 -0
  238. package/node_modules/@apollo/client/__cjs/utilities/internal/StreamArrayState.d.cts +12 -0
  239. package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.cjs +33 -0
  240. package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.cjs.map +1 -0
  241. package/node_modules/@apollo/client/__cjs/utilities/internal/addDeferFragmentLabels.d.cts +3 -0
  242. package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.cjs +12 -0
  243. package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.cjs.map +1 -0
  244. package/node_modules/@apollo/client/__cjs/utilities/internal/capitalize.d.cts +7 -0
  245. package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs +102 -0
  246. package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs.map +1 -0
  247. package/node_modules/@apollo/client/__cjs/utilities/internal/coerceScalarFieldsToParsed.d.cts +9 -0
  248. package/node_modules/@apollo/client/__cjs/utilities/internal/constants.cjs +20 -1
  249. package/node_modules/@apollo/client/__cjs/utilities/internal/constants.cjs.map +1 -1
  250. package/node_modules/@apollo/client/__cjs/utilities/internal/constants.d.cts +19 -0
  251. package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.cjs +19 -0
  252. package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.cjs.map +1 -0
  253. package/node_modules/@apollo/client/__cjs/utilities/internal/getDirectiveArgValue.d.cts +9 -0
  254. package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentDefinition.cjs +3 -3
  255. package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentDefinition.cjs.map +1 -1
  256. package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentFromSelection.cjs +2 -2
  257. package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentFromSelection.cjs.map +1 -1
  258. package/node_modules/@apollo/client/__cjs/utilities/internal/getFragmentQueryDocument.cjs +2 -2
  259. package/node_modules/@apollo/client/__cjs/utilities/internal/getMainDefinition.cjs +1 -1
  260. package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.cjs +6 -0
  261. package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  262. package/node_modules/@apollo/client/__cjs/utilities/internal/getMemoryInternals.d.cts +4 -0
  263. package/node_modules/@apollo/client/__cjs/utilities/internal/getQueryDefinition.cjs +1 -1
  264. package/node_modules/@apollo/client/__cjs/utilities/internal/index.cjs +27 -2
  265. package/node_modules/@apollo/client/__cjs/utilities/internal/index.cjs.map +1 -1
  266. package/node_modules/@apollo/client/__cjs/utilities/internal/index.d.cts +17 -2
  267. package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.cjs +38 -0
  268. package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.cjs.map +1 -0
  269. package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.d.cts +9 -0
  270. package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.cjs +37 -0
  271. package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.cjs.map +1 -0
  272. package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.d.cts +9 -0
  273. package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.cjs +7 -0
  274. package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.cjs.map +1 -0
  275. package/node_modules/@apollo/client/__cjs/utilities/internal/isTypenameField.d.cts +3 -0
  276. package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.cjs +17 -0
  277. package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.cjs.map +1 -0
  278. package/node_modules/@apollo/client/__cjs/utilities/internal/makeStreamInfoTrie.d.cts +8 -0
  279. package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.cjs +12 -0
  280. package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.cjs.map +1 -0
  281. package/node_modules/@apollo/client/__cjs/utilities/internal/matchScalarList.d.cts +8 -0
  282. package/node_modules/@apollo/client/__cjs/utilities/internal/removeDirectivesFromDocument.cjs +1 -1
  283. package/node_modules/@apollo/client/__cjs/utilities/internal/shouldInclude.cjs +4 -4
  284. package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.cjs +20 -0
  285. package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.cjs.map +1 -0
  286. package/node_modules/@apollo/client/__cjs/utilities/internal/toDiffWithDataState.d.cts +8 -0
  287. package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.cjs +3 -0
  288. package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.cjs.map +1 -0
  289. package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.d.cts +10 -0
  290. package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.cjs +3 -0
  291. package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.cjs.map +1 -0
  292. package/node_modules/@apollo/client/__cjs/utilities/internal/types/Exact.d.cts +2 -0
  293. package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.cjs +3 -0
  294. package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.cjs.map +1 -0
  295. package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsLooselyEqual.d.cts +10 -0
  296. package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.cjs +3 -0
  297. package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.cjs.map +1 -0
  298. package/node_modules/@apollo/client/__cjs/utilities/internal/types/IsNeverish.d.cts +4 -0
  299. package/node_modules/@apollo/client/__cjs/utilities/internal/types/StreamInfoTrie.d.cts +2 -0
  300. package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.cjs +12 -0
  301. package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.cjs.map +1 -0
  302. package/node_modules/@apollo/client/__cjs/utilities/internal/unwrapScalarType.d.cts +10 -0
  303. package/node_modules/@apollo/client/__cjs/utilities/internal/valueToObjectRepresentation.cjs +1 -1
  304. package/node_modules/@apollo/client/__cjs/version.cjs +1 -1
  305. package/node_modules/@apollo/client/__cjs/version.cjs.map +1 -1
  306. package/node_modules/@apollo/client/cache/core/Scalar.d.ts +56 -0
  307. package/node_modules/@apollo/client/cache/core/Scalar.js +32 -0
  308. package/node_modules/@apollo/client/cache/core/Scalar.js.map +1 -0
  309. package/node_modules/@apollo/client/cache/core/cache.d.ts +89 -6
  310. package/node_modules/@apollo/client/cache/core/cache.js +33 -2
  311. package/node_modules/@apollo/client/cache/core/cache.js.map +1 -1
  312. package/node_modules/@apollo/client/cache/core/types/Cache.d.ts +30 -2
  313. package/node_modules/@apollo/client/cache/core/types/Cache.js.map +1 -1
  314. package/node_modules/@apollo/client/cache/index.d.ts +2 -1
  315. package/node_modules/@apollo/client/cache/index.js +1 -0
  316. package/node_modules/@apollo/client/cache/index.js.map +1 -1
  317. package/node_modules/@apollo/client/cache/inmemory/entityStore.d.ts +3 -0
  318. package/node_modules/@apollo/client/cache/inmemory/entityStore.js +64 -6
  319. package/node_modules/@apollo/client/cache/inmemory/entityStore.js.map +1 -1
  320. package/node_modules/@apollo/client/cache/inmemory/helpers.d.ts +11 -2
  321. package/node_modules/@apollo/client/cache/inmemory/helpers.js +11 -0
  322. package/node_modules/@apollo/client/cache/inmemory/helpers.js.map +1 -1
  323. package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.d.ts +44 -5
  324. package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js +97 -6
  325. package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js.map +1 -1
  326. package/node_modules/@apollo/client/cache/inmemory/key-extractor.js +1 -1
  327. package/node_modules/@apollo/client/cache/inmemory/policies.d.ts +3 -1
  328. package/node_modules/@apollo/client/cache/inmemory/policies.js +34 -6
  329. package/node_modules/@apollo/client/cache/inmemory/policies.js.map +1 -1
  330. package/node_modules/@apollo/client/cache/inmemory/readFromStore.d.ts +11 -2
  331. package/node_modules/@apollo/client/cache/inmemory/readFromStore.js +485 -45
  332. package/node_modules/@apollo/client/cache/inmemory/readFromStore.js.map +1 -1
  333. package/node_modules/@apollo/client/cache/inmemory/types.d.ts +32 -5
  334. package/node_modules/@apollo/client/cache/inmemory/types.js.map +1 -1
  335. package/node_modules/@apollo/client/cache/inmemory/writeToStore.js +6 -10
  336. package/node_modules/@apollo/client/cache/inmemory/writeToStore.js.map +1 -1
  337. package/node_modules/@apollo/client/core/ApolloClient.d.ts +11 -11
  338. package/node_modules/@apollo/client/core/ApolloClient.js +14 -14
  339. package/node_modules/@apollo/client/core/ApolloClient.js.map +1 -1
  340. package/node_modules/@apollo/client/core/ObservableQuery.d.ts +4 -7
  341. package/node_modules/@apollo/client/core/ObservableQuery.js +183 -73
  342. package/node_modules/@apollo/client/core/ObservableQuery.js.map +1 -1
  343. package/node_modules/@apollo/client/core/QueryInfo.d.ts +18 -22
  344. package/node_modules/@apollo/client/core/QueryInfo.js +165 -198
  345. package/node_modules/@apollo/client/core/QueryInfo.js.map +1 -1
  346. package/node_modules/@apollo/client/core/QueryManager.d.ts +4 -4
  347. package/node_modules/@apollo/client/core/QueryManager.js +76 -49
  348. package/node_modules/@apollo/client/core/QueryManager.js.map +1 -1
  349. package/node_modules/@apollo/client/core/RefetchEventManager.js +3 -3
  350. package/node_modules/@apollo/client/core/dataStateErrorCache.d.ts +3 -0
  351. package/node_modules/@apollo/client/core/dataStateErrorCache.js +9 -0
  352. package/node_modules/@apollo/client/core/dataStateErrorCache.js.map +1 -0
  353. package/node_modules/@apollo/client/core/deprecated.d.ts +3 -3
  354. package/node_modules/@apollo/client/core/deprecated.js.map +1 -1
  355. package/node_modules/@apollo/client/core/index.d.ts +4 -3
  356. package/node_modules/@apollo/client/core/index.js +1 -1
  357. package/node_modules/@apollo/client/core/index.js.map +1 -1
  358. package/node_modules/@apollo/client/core/types.d.ts +11 -7
  359. package/node_modules/@apollo/client/core/types.js.map +1 -1
  360. package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.d.ts +55 -0
  361. package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.js +2 -0
  362. package/node_modules/@apollo/client/incremental/GraphQLCodegenIncremental.js.map +1 -0
  363. package/node_modules/@apollo/client/incremental/handlers/defer20220824.d.ts +2 -4
  364. package/node_modules/@apollo/client/incremental/handlers/defer20220824.js.map +1 -1
  365. package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.d.ts +29 -6
  366. package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.js +48 -17
  367. package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.js.map +1 -1
  368. package/node_modules/@apollo/client/incremental/handlers/notImplemented.js +1 -1
  369. package/node_modules/@apollo/client/incremental/index.d.ts +1 -0
  370. package/node_modules/@apollo/client/incremental/index.js.map +1 -1
  371. package/node_modules/@apollo/client/incremental/internal/types.d.ts +17 -0
  372. package/node_modules/@apollo/client/incremental/internal/types.js +2 -0
  373. package/node_modules/@apollo/client/incremental/internal/types.js.map +1 -0
  374. package/node_modules/@apollo/client/incremental/types.d.ts +55 -4
  375. package/node_modules/@apollo/client/incremental/types.js.map +1 -1
  376. package/node_modules/@apollo/client/invariantErrorCodes.js +164 -113
  377. package/node_modules/@apollo/client/link/core/ApolloLink.js +3 -3
  378. package/node_modules/@apollo/client/link/http/checkFetcher.js +1 -1
  379. package/node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js +1 -1
  380. package/node_modules/@apollo/client/link/persisted-queries/index.js +2 -2
  381. package/node_modules/@apollo/client/link/ws/index.js +1 -1
  382. package/node_modules/@apollo/client/local-state/LocalState.d.ts +1 -1
  383. package/node_modules/@apollo/client/local-state/LocalState.js +11 -11
  384. package/node_modules/@apollo/client/local-state/LocalState.js.map +1 -1
  385. package/node_modules/@apollo/client/masking/internal/types.d.ts +1 -2
  386. package/node_modules/@apollo/client/masking/internal/types.js.map +1 -1
  387. package/node_modules/@apollo/client/masking/maskDefinition.js +2 -2
  388. package/node_modules/@apollo/client/masking/maskFragment.js +2 -2
  389. package/node_modules/@apollo/client/masking/maskOperation.js +1 -1
  390. package/node_modules/@apollo/client/masking/utils.js +3 -3
  391. package/node_modules/@apollo/client/package.json +1 -1
  392. package/node_modules/@apollo/client/react/context/ApolloContext.js +1 -1
  393. package/node_modules/@apollo/client/react/context/ApolloProvider.js +1 -1
  394. package/node_modules/@apollo/client/react/hooks/internal/validateSuspenseHookOptions.js +2 -2
  395. package/node_modules/@apollo/client/react/hooks/useApolloClient.js +1 -1
  396. package/node_modules/@apollo/client/react/hooks/useBackgroundQuery.d.ts +3 -3
  397. package/node_modules/@apollo/client/react/hooks/useBackgroundQuery.js.map +1 -1
  398. package/node_modules/@apollo/client/react/hooks/useFragment.d.ts +0 -1
  399. package/node_modules/@apollo/client/react/hooks/useFragment.js.map +1 -1
  400. package/node_modules/@apollo/client/react/hooks/useLazyQuery.d.ts +1 -1
  401. package/node_modules/@apollo/client/react/hooks/useLazyQuery.js +2 -2
  402. package/node_modules/@apollo/client/react/hooks/useLazyQuery.js.map +1 -1
  403. package/node_modules/@apollo/client/react/hooks/useLoadableQuery.js +2 -2
  404. package/node_modules/@apollo/client/react/hooks/useMutation.d.ts +14 -14
  405. package/node_modules/@apollo/client/react/hooks/useMutation.js.map +1 -1
  406. package/node_modules/@apollo/client/react/hooks/useQuery.d.ts +16 -3
  407. package/node_modules/@apollo/client/react/hooks/useQuery.js.map +1 -1
  408. package/node_modules/@apollo/client/react/hooks/useSubscription.d.ts +27 -5
  409. package/node_modules/@apollo/client/react/hooks/useSubscription.js +7 -3
  410. package/node_modules/@apollo/client/react/hooks/useSubscription.js.map +1 -1
  411. package/node_modules/@apollo/client/react/hooks/useSuspenseFragment.d.ts +1 -1
  412. package/node_modules/@apollo/client/react/hooks/useSuspenseFragment.js.map +1 -1
  413. package/node_modules/@apollo/client/react/hooks/useSuspenseQuery.d.ts +30 -30
  414. package/node_modules/@apollo/client/react/hooks/useSuspenseQuery.js.map +1 -1
  415. package/node_modules/@apollo/client/react/hooks/useSyncExternalStore.js +1 -1
  416. package/node_modules/@apollo/client/react/hooks-compiled/internal/validateSuspenseHookOptions.js +2 -2
  417. package/node_modules/@apollo/client/react/hooks-compiled/useApolloClient.js +1 -1
  418. package/node_modules/@apollo/client/react/hooks-compiled/useBackgroundQuery.d.ts +3 -3
  419. package/node_modules/@apollo/client/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  420. package/node_modules/@apollo/client/react/hooks-compiled/useFragment.d.ts +0 -1
  421. package/node_modules/@apollo/client/react/hooks-compiled/useFragment.js.map +1 -1
  422. package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.d.ts +1 -1
  423. package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.js +2 -2
  424. package/node_modules/@apollo/client/react/hooks-compiled/useLazyQuery.js.map +1 -1
  425. package/node_modules/@apollo/client/react/hooks-compiled/useLoadableQuery.js +2 -2
  426. package/node_modules/@apollo/client/react/hooks-compiled/useMutation.d.ts +14 -14
  427. package/node_modules/@apollo/client/react/hooks-compiled/useMutation.js.map +1 -1
  428. package/node_modules/@apollo/client/react/hooks-compiled/useQuery.d.ts +16 -3
  429. package/node_modules/@apollo/client/react/hooks-compiled/useQuery.js.map +1 -1
  430. package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.d.ts +27 -5
  431. package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.js +107 -93
  432. package/node_modules/@apollo/client/react/hooks-compiled/useSubscription.js.map +1 -1
  433. package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseFragment.d.ts +1 -1
  434. package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
  435. package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseQuery.d.ts +30 -30
  436. package/node_modules/@apollo/client/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  437. package/node_modules/@apollo/client/react/hooks-compiled/useSyncExternalStore.js +1 -1
  438. package/node_modules/@apollo/client/react/internal/cache/QueryReference.js +1 -1
  439. package/node_modules/@apollo/client/react/query-preloader/createQueryPreloader.d.ts +1 -1
  440. package/node_modules/@apollo/client/react/query-preloader/createQueryPreloader.js.map +1 -1
  441. package/node_modules/@apollo/client/react/ssr/prerenderStatic.js +2 -2
  442. package/node_modules/@apollo/client/react/types/deprecated.d.ts +5 -4
  443. package/node_modules/@apollo/client/react/types/deprecated.js.map +1 -1
  444. package/node_modules/@apollo/client/react/types/types.documentation.d.ts +12 -1
  445. package/node_modules/@apollo/client/react/types/types.documentation.js.map +1 -1
  446. package/node_modules/@apollo/client/testing/core/mocking/mockLink.d.ts +1 -2
  447. package/node_modules/@apollo/client/testing/core/mocking/mockLink.js +25 -5
  448. package/node_modules/@apollo/client/testing/core/mocking/mockLink.js.map +1 -1
  449. package/node_modules/@apollo/client/utilities/caching/sizes.d.ts +39 -1
  450. package/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -1
  451. package/node_modules/@apollo/client/utilities/graphql/DocumentTransform.js +1 -1
  452. package/node_modules/@apollo/client/utilities/internal/StreamArrayState.d.ts +12 -0
  453. package/node_modules/@apollo/client/utilities/internal/StreamArrayState.js +23 -0
  454. package/node_modules/@apollo/client/utilities/internal/StreamArrayState.js.map +1 -0
  455. package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.d.ts +3 -0
  456. package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.js +30 -0
  457. package/node_modules/@apollo/client/utilities/internal/addDeferFragmentLabels.js.map +1 -0
  458. package/node_modules/@apollo/client/utilities/internal/capitalize.d.ts +7 -0
  459. package/node_modules/@apollo/client/utilities/internal/capitalize.js +9 -0
  460. package/node_modules/@apollo/client/utilities/internal/capitalize.js.map +1 -0
  461. package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.d.ts +9 -0
  462. package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.js +95 -0
  463. package/node_modules/@apollo/client/utilities/internal/coerceScalarFieldsToParsed.js.map +1 -0
  464. package/node_modules/@apollo/client/utilities/internal/constants.d.ts +19 -0
  465. package/node_modules/@apollo/client/utilities/internal/constants.js +19 -0
  466. package/node_modules/@apollo/client/utilities/internal/constants.js.map +1 -1
  467. package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.d.ts +9 -0
  468. package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.js +16 -0
  469. package/node_modules/@apollo/client/utilities/internal/getDirectiveArgValue.js.map +1 -0
  470. package/node_modules/@apollo/client/utilities/internal/getFragmentDefinition.js +3 -3
  471. package/node_modules/@apollo/client/utilities/internal/getFragmentDefinition.js.map +1 -1
  472. package/node_modules/@apollo/client/utilities/internal/getFragmentFromSelection.js +2 -2
  473. package/node_modules/@apollo/client/utilities/internal/getFragmentFromSelection.js.map +1 -1
  474. package/node_modules/@apollo/client/utilities/internal/getFragmentQueryDocument.js +2 -2
  475. package/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +1 -1
  476. package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.d.ts +4 -0
  477. package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +6 -0
  478. package/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -1
  479. package/node_modules/@apollo/client/utilities/internal/getQueryDefinition.js +1 -1
  480. package/node_modules/@apollo/client/utilities/internal/index.d.ts +17 -2
  481. package/node_modules/@apollo/client/utilities/internal/index.js +13 -1
  482. package/node_modules/@apollo/client/utilities/internal/index.js.map +1 -1
  483. package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.d.ts +9 -0
  484. package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.js +35 -0
  485. package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.js.map +1 -0
  486. package/node_modules/@apollo/client/utilities/internal/isStreamField.d.ts +9 -0
  487. package/node_modules/@apollo/client/utilities/internal/isStreamField.js +34 -0
  488. package/node_modules/@apollo/client/utilities/internal/isStreamField.js.map +1 -0
  489. package/node_modules/@apollo/client/utilities/internal/isTypenameField.d.ts +3 -0
  490. package/node_modules/@apollo/client/utilities/internal/isTypenameField.js +4 -0
  491. package/node_modules/@apollo/client/utilities/internal/isTypenameField.js.map +1 -0
  492. package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.d.ts +8 -0
  493. package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.js +14 -0
  494. package/node_modules/@apollo/client/utilities/internal/makeStreamInfoTrie.js.map +1 -0
  495. package/node_modules/@apollo/client/utilities/internal/matchScalarList.d.ts +8 -0
  496. package/node_modules/@apollo/client/utilities/internal/matchScalarList.js +9 -0
  497. package/node_modules/@apollo/client/utilities/internal/matchScalarList.js.map +1 -0
  498. package/node_modules/@apollo/client/utilities/internal/removeDirectivesFromDocument.js +1 -1
  499. package/node_modules/@apollo/client/utilities/internal/shouldInclude.js +4 -4
  500. package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.d.ts +8 -0
  501. package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.js +17 -0
  502. package/node_modules/@apollo/client/utilities/internal/toDiffWithDataState.js.map +1 -0
  503. package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.d.ts +10 -0
  504. package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.js +2 -0
  505. package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.js.map +1 -0
  506. package/node_modules/@apollo/client/utilities/internal/types/Exact.d.ts +2 -0
  507. package/node_modules/@apollo/client/utilities/internal/types/Exact.js +2 -0
  508. package/node_modules/@apollo/client/utilities/internal/types/Exact.js.map +1 -0
  509. package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.d.ts +10 -0
  510. package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.js +2 -0
  511. package/node_modules/@apollo/client/utilities/internal/types/IsLooselyEqual.js.map +1 -0
  512. package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.d.ts +4 -0
  513. package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.js +2 -0
  514. package/node_modules/@apollo/client/utilities/internal/types/IsNeverish.js.map +1 -0
  515. package/node_modules/@apollo/client/utilities/internal/types/StreamInfoTrie.d.ts +2 -0
  516. package/node_modules/@apollo/client/utilities/internal/types/StreamInfoTrie.js.map +1 -1
  517. package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.d.ts +10 -0
  518. package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.js +9 -0
  519. package/node_modules/@apollo/client/utilities/internal/unwrapScalarType.js.map +1 -0
  520. package/node_modules/@apollo/client/utilities/internal/valueToObjectRepresentation.js +1 -1
  521. package/node_modules/@apollo/client/version.js +1 -1
  522. package/node_modules/@apollo/client/version.js.map +1 -1
  523. package/node_modules/@types/node/README.md +1 -1
  524. package/node_modules/@types/node/buffer.buffer.d.ts +10 -5
  525. package/node_modules/@types/node/buffer.d.ts +1 -0
  526. package/node_modules/@types/node/crypto.d.ts +2 -4
  527. package/node_modules/@types/node/dgram.d.ts +119 -4
  528. package/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
  529. package/node_modules/@types/node/ffi.d.ts +1 -1
  530. package/node_modules/@types/node/fs/promises.d.ts +61 -65
  531. package/node_modules/@types/node/fs.d.ts +86 -76
  532. package/node_modules/@types/node/http.d.ts +18 -2
  533. package/node_modules/@types/node/http2.d.ts +12 -4
  534. package/node_modules/@types/node/index.d.ts +1 -0
  535. package/node_modules/@types/node/inspector.d.ts +2 -1
  536. package/node_modules/@types/node/net.d.ts +108 -16
  537. package/node_modules/@types/node/package.json +3 -3
  538. package/node_modules/@types/node/perf_hooks.d.ts +31 -19
  539. package/node_modules/@types/node/process.d.ts +52 -0
  540. package/node_modules/@types/node/quic.d.ts +252 -42
  541. package/node_modules/@types/node/sqlite.d.ts +6 -2
  542. package/node_modules/@types/node/stream/iter.d.ts +4 -4
  543. package/node_modules/@types/node/stream/web.d.ts +20 -0
  544. package/node_modules/@types/node/test.d.ts +36 -0
  545. package/node_modules/@types/node/tls.d.ts +50 -15
  546. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +5 -0
  547. package/node_modules/@types/node/ts5.6/index.d.ts +1 -0
  548. package/node_modules/@types/node/ts5.7/index.d.ts +1 -0
  549. package/node_modules/@types/node/tty.d.ts +4 -3
  550. package/node_modules/@types/node/vfs.d.ts +211 -0
  551. package/node_modules/@types/node/vm.d.ts +1 -1
  552. package/node_modules/@types/node/web-globals/streams.d.ts +4 -0
  553. package/node_modules/@types/node/zlib.d.ts +17 -0
  554. package/node_modules/cpu-features/build/Makefile +2 -2
  555. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/filesystem.o.d +1 -1
  556. 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
  557. 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
  558. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_windows.o.d +1 -1
  559. 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
  560. 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
  561. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_ppc_linux.o.d +1 -1
  562. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_freebsd.o.d +1 -1
  563. 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
  564. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_macos.o.d +1 -1
  565. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_windows.o.d +1 -1
  566. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/stack_line_reader.o.d +1 -1
  567. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/string_view.o.d +1 -1
  568. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpufeatures/src/binding.o.d +145 -145
  569. package/node_modules/cpu-features/build/config.gypi +8 -9
  570. package/node_modules/cpu-features/build/cpufeatures.target.mk +14 -14
  571. package/node_modules/cpu-features/build/deps/cpu_features/cpu_features.target.mk +14 -14
  572. package/node_modules/default-browser/package.json +1 -1
  573. package/node_modules/default-browser/windows.js +3 -1
  574. package/node_modules/js-yaml/README.md +0 -3
  575. package/node_modules/js-yaml/dist/browser/js-yaml.esm.min.mjs +822 -779
  576. package/node_modules/js-yaml/dist/browser/js-yaml.esm.min.mjs.map +1 -1
  577. package/node_modules/js-yaml/dist/browser/js-yaml.umd.min.js +29 -23
  578. package/node_modules/js-yaml/dist/browser/js-yaml.umd.min.js.map +1 -1
  579. package/node_modules/js-yaml/dist/js-yaml.cjs.js +425 -397
  580. package/node_modules/js-yaml/dist/js-yaml.cjs.js.map +1 -1
  581. package/node_modules/js-yaml/dist/js-yaml.d.ts +101 -32
  582. package/node_modules/js-yaml/dist/js-yaml.mjs +429 -397
  583. package/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
  584. package/node_modules/js-yaml/package.json +1 -1
  585. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.js +11 -3
  586. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.js.map +1 -1
  587. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.min.js +1 -1
  588. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.min.js.map +1 -1
  589. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.mjs +11 -3
  590. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
  591. package/node_modules/lando/node_modules/js-yaml/lib/loader.js +16 -3
  592. package/node_modules/lando/node_modules/js-yaml/package.json +1 -1
  593. package/node_modules/open/index.js +15 -3
  594. package/node_modules/open/package.json +3 -3
  595. package/node_modules/{lando → path-scurry}/node_modules/lru-cache/README.md +96 -10
  596. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.d.ts.map +1 -0
  597. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.js.map +1 -0
  598. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.d.ts +5 -0
  599. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.js +7 -0
  600. package/node_modules/{lando/node_modules/lru-cache/dist/commonjs → path-scurry/node_modules/lru-cache/dist/commonjs/browser}/index.d.ts +109 -32
  601. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -0
  602. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.js +1733 -0
  603. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -0
  604. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.min.js +2 -0
  605. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +7 -0
  606. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts +12 -0
  607. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts.map +1 -0
  608. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.js +10 -0
  609. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.js.map +1 -0
  610. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.cjs.map +1 -0
  611. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.d.cts.map +1 -0
  612. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel.d.ts +5 -0
  613. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +7 -0
  614. package/node_modules/{lando/node_modules/lru-cache/dist/esm → path-scurry/node_modules/lru-cache/dist/commonjs}/index.d.ts +109 -32
  615. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -0
  616. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js +1733 -0
  617. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js.map +1 -0
  618. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js +2 -0
  619. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js.map +7 -0
  620. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.d.ts.map +1 -0
  621. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.js.map +1 -0
  622. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.d.ts +5 -0
  623. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.js +9 -0
  624. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.d.ts +1400 -0
  625. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -0
  626. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.js +1733 -0
  627. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -0
  628. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.min.js +2 -0
  629. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +7 -0
  630. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.d.ts +12 -0
  631. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.d.ts.map +1 -0
  632. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.js +10 -0
  633. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.js.map +1 -0
  634. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.d.ts +12 -0
  635. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.d.ts.map +1 -0
  636. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.js +10 -0
  637. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.js.map +1 -0
  638. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.d.ts.map +1 -0
  639. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.js.map +1 -0
  640. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.d.ts +5 -0
  641. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +4 -0
  642. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.d.ts +1400 -0
  643. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -0
  644. package/node_modules/{lando/node_modules/lru-cache/dist/esm → path-scurry/node_modules/lru-cache/dist/esm/browser}/index.js +315 -177
  645. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -0
  646. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.min.js +2 -0
  647. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.min.js.map +7 -0
  648. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.d.ts +12 -0
  649. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.d.ts.map +1 -0
  650. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.js +7 -0
  651. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.js.map +1 -0
  652. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +1 -0
  653. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.mjs.map +1 -0
  654. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel.d.ts +5 -0
  655. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel.js +19 -0
  656. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.d.ts +1400 -0
  657. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -0
  658. package/node_modules/{lando/node_modules/lru-cache/dist/commonjs → path-scurry/node_modules/lru-cache/dist/esm}/index.js +316 -182
  659. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.js.map +1 -0
  660. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js +2 -0
  661. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js.map +7 -0
  662. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.ts.map +1 -0
  663. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.js.map +1 -0
  664. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel.d.ts +5 -0
  665. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +6 -0
  666. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.d.ts +1400 -0
  667. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -0
  668. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.js +1729 -0
  669. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.js.map +1 -0
  670. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.min.js +2 -0
  671. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.min.js.map +7 -0
  672. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.d.ts +12 -0
  673. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.d.ts.map +1 -0
  674. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.js +7 -0
  675. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.js.map +1 -0
  676. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.d.ts +12 -0
  677. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.d.ts.map +1 -0
  678. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.js +7 -0
  679. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.js.map +1 -0
  680. package/node_modules/path-scurry/node_modules/lru-cache/package.json +154 -0
  681. package/node_modules/powershell-utils/index.d.ts +16 -2
  682. package/node_modules/powershell-utils/index.js +12 -9
  683. package/node_modules/powershell-utils/package.json +1 -1
  684. package/node_modules/powershell-utils/readme.md +7 -2
  685. package/node_modules/ssh2/lib/protocol/crypto/build/Makefile +2 -2
  686. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d +237 -237
  687. package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto/src/binding.o +0 -0
  688. package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto.node +0 -0
  689. package/node_modules/ssh2/lib/protocol/crypto/build/Release/sshcrypto.node +0 -0
  690. package/node_modules/ssh2/lib/protocol/crypto/build/sshcrypto.target.mk +14 -14
  691. package/node_modules/undici/docs/docs/api/Client.md +4 -0
  692. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +3 -2
  693. package/node_modules/undici/docs/docs/api/EventSource.md +4 -0
  694. package/node_modules/undici/docs/docs/api/Interceptors.md +7 -3
  695. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +7 -1
  696. package/node_modules/undici/lib/cache/memory-cache-store.js +2 -2
  697. package/node_modules/undici/lib/core/symbols.js +2 -0
  698. package/node_modules/undici/lib/dispatcher/agent.js +7 -2
  699. package/node_modules/undici/lib/dispatcher/balanced-pool.js +7 -4
  700. package/node_modules/undici/lib/dispatcher/client-h1.js +12 -4
  701. package/node_modules/undici/lib/dispatcher/client-h2.js +43 -3
  702. package/node_modules/undici/lib/dispatcher/client.js +3 -2
  703. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +13 -1
  704. package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -1
  705. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -0
  706. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +10 -3
  707. package/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -1
  708. package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
  709. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +1 -1
  710. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +91 -21
  711. package/node_modules/undici/lib/handler/cache-handler.js +29 -5
  712. package/node_modules/undici/lib/handler/decorator-handler.js +7 -1
  713. package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
  714. package/node_modules/undici/lib/handler/redirect-handler.js +21 -4
  715. package/node_modules/undici/lib/handler/retry-handler.js +148 -30
  716. package/node_modules/undici/lib/interceptor/cache.js +65 -12
  717. package/node_modules/undici/lib/interceptor/decompress.js +115 -13
  718. package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
  719. package/node_modules/undici/lib/interceptor/dns.js +7 -0
  720. package/node_modules/undici/lib/interceptor/dump.js +10 -23
  721. package/node_modules/undici/lib/mock/mock-agent.js +13 -1
  722. package/node_modules/undici/lib/mock/mock-utils.js +11 -10
  723. package/node_modules/undici/lib/util/cache.js +45 -3
  724. package/node_modules/undici/lib/web/cookies/parse.js +150 -147
  725. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
  726. package/node_modules/undici/lib/web/eventsource/eventsource.js +13 -3
  727. package/node_modules/undici/lib/web/fetch/index.js +6 -0
  728. package/node_modules/undici/lib/web/fetch/request.js +2 -3
  729. package/node_modules/undici/lib/web/fetch/util.js +6 -1
  730. package/node_modules/undici/lib/web/webidl/index.js +3 -3
  731. package/node_modules/undici/lib/web/websocket/connection.js +1 -1
  732. package/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
  733. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
  734. package/node_modules/undici/package.json +3 -3
  735. package/node_modules/undici/types/client.d.ts +10 -0
  736. package/node_modules/undici/types/interceptors.d.ts +2 -0
  737. package/node_modules/undici/types/mock-agent.d.ts +11 -10
  738. package/node_modules/undici/types/socks5-proxy-agent.d.ts +2 -0
  739. package/node_modules/undici-types/client.d.ts +8 -3
  740. package/node_modules/undici-types/connector.d.ts +1 -0
  741. package/node_modules/undici-types/cookies.d.ts +1 -1
  742. package/node_modules/undici-types/dispatcher.d.ts +3 -3
  743. package/node_modules/undici-types/errors.d.ts +10 -0
  744. package/node_modules/undici-types/fetch.d.ts +5 -1
  745. package/node_modules/undici-types/handlers.d.ts +2 -0
  746. package/node_modules/undici-types/interceptors.d.ts +1 -1
  747. package/node_modules/undici-types/mock-interceptor.d.ts +5 -1
  748. package/node_modules/undici-types/package.json +1 -1
  749. package/node_modules/undici-types/proxy-agent.d.ts +7 -0
  750. package/package.json +2 -2
  751. package/packaging/macos/build-pkg.sh +53 -0
  752. package/packaging/macos/preinstall +33 -0
  753. package/packaging/macos/test-install.sh +51 -0
  754. package/packaging/macos/test_package.py +74 -0
  755. package/packaging/macos/uninstall.sh +24 -0
  756. package/packaging/macos/verify-pkg.py +61 -0
  757. package/packaging/windows/build-msi.ps1 +153 -0
  758. package/packaging/windows/test-msi.ps1 +225 -0
  759. package/packaging/windows/verify-msi.ps1 +74 -0
  760. package/packaging/windows/vip-next.wxs +79 -0
  761. package/testdata/installer-fixture/main.go +40 -0
  762. package/node_modules/@apollo/client/__cjs/utilities/internal/types/NoInfer.cjs.map +0 -1
  763. package/node_modules/@apollo/client/__cjs/utilities/internal/types/NoInfer.d.cts +0 -35
  764. package/node_modules/@apollo/client/utilities/internal/types/NoInfer.d.ts +0 -35
  765. package/node_modules/@apollo/client/utilities/internal/types/NoInfer.js +0 -2
  766. package/node_modules/@apollo/client/utilities/internal/types/NoInfer.js.map +0 -1
  767. package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.d.ts.map +0 -1
  768. package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.js.map +0 -1
  769. package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
  770. package/node_modules/lando/node_modules/lru-cache/dist/commonjs/index.min.js.map +0 -7
  771. package/node_modules/lando/node_modules/lru-cache/dist/esm/index.d.ts.map +0 -1
  772. package/node_modules/lando/node_modules/lru-cache/dist/esm/index.js.map +0 -1
  773. package/node_modules/lando/node_modules/lru-cache/dist/esm/index.min.js +0 -2
  774. package/node_modules/lando/node_modules/lru-cache/dist/esm/index.min.js.map +0 -7
  775. package/node_modules/lando/node_modules/lru-cache/package.json +0 -93
  776. /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/LICENSE.md +0 -0
  777. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/README.md +0 -0
  778. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.d.ts +0 -0
  779. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.d.ts.map +0 -0
  780. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.js +0 -0
  781. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/commonjs/index.js.map +0 -0
  782. /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/dist/commonjs/package.json +0 -0
  783. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.d.ts +0 -0
  784. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.d.ts.map +0 -0
  785. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.js +0 -0
  786. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/dist/esm/index.js.map +0 -0
  787. /package/node_modules/{lando/node_modules/lru-cache → path-scurry}/dist/esm/package.json +0 -0
  788. /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/LICENSE.md +0 -0
  789. /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/dist/commonjs/package.json +0 -0
  790. /package/node_modules/{lando/node_modules/path-scurry → path-scurry/node_modules/lru-cache}/dist/esm/package.json +0 -0
  791. /package/node_modules/{lando/node_modules/path-scurry → path-scurry}/package.json +0 -0
@@ -6,6 +6,8 @@ import (
6
6
  "io"
7
7
  "os"
8
8
  "time"
9
+
10
+ "github.com/Automattic/vip/internal/debuglog"
9
11
  )
10
12
 
11
13
  // Tracker is the minimal telemetry interface the runner needs.
@@ -121,6 +123,7 @@ func (r *Runner) Run(ctx context.Context, in RunInput) (*ElevatedToken, error) {
121
123
  return nil, NewInteractionRequiredError(scope)
122
124
  }
123
125
 
126
+ debuglog.Printf(ctx, "@automattic/vip:rechallenge:client", "createSession scope=%s", scope)
124
127
  session, err := r.Client.CreateSession(CreateSessionInput{
125
128
  Path: in.Extension.CreateSessionPath,
126
129
  RequestedOperation: scope,
@@ -182,6 +185,11 @@ func (r *Runner) Run(ctx context.Context, in RunInput) (*ElevatedToken, error) {
182
185
  }
183
186
 
184
187
  if !ss.Status.IsTerminal() {
188
+ status := "unknown"
189
+ if ss.Status == StatusPending {
190
+ status = "pending"
191
+ }
192
+ debuglog.Printf(ctx, "@automattic/vip:rechallenge:flow", "still %s; polling again", status)
185
193
  continue
186
194
  }
187
195
 
@@ -11,6 +11,8 @@ import (
11
11
  "sync/atomic"
12
12
  "testing"
13
13
  "time"
14
+
15
+ "github.com/Automattic/vip/internal/debuglog"
14
16
  )
15
17
 
16
18
  type fakeTracker struct {
@@ -77,7 +79,9 @@ func TestFlowHappyPathVerified(t *testing.T) {
77
79
  Sleep: func(_ context.Context, _ time.Duration) error { return nil },
78
80
  }
79
81
 
80
- tok, err := r.Run(context.Background(), RunInput{
82
+ var diagnostics bytes.Buffer
83
+ debugCtx := debuglog.WithLogger(context.Background(), "@automattic/vip:rechallenge:*", &diagnostics)
84
+ tok, err := r.Run(debugCtx, RunInput{
81
85
  RequestedOperation: "doThing",
82
86
  Interactive: true,
83
87
  Extension: Extension{
@@ -94,6 +98,16 @@ func TestFlowHappyPathVerified(t *testing.T) {
94
98
  if tok.Token != "opaque" {
95
99
  t.Errorf("token = %q", tok.Token)
96
100
  }
101
+ for _, want := range []string{"createSession scope=doThing", "still pending; polling again"} {
102
+ if !strings.Contains(diagnostics.String(), want) {
103
+ t.Errorf("missing %q in diagnostics: %q", want, diagnostics.String())
104
+ }
105
+ }
106
+ for _, secret := range []string{"opaque", "https://example/v/c1"} {
107
+ if strings.Contains(diagnostics.String(), secret) {
108
+ t.Fatal("rechallenge diagnostic leaked credentials")
109
+ }
110
+ }
97
111
  if atomic.LoadInt32(&openCalled) != 1 {
98
112
  t.Errorf("OpenURL called %d times, want 1", openCalled)
99
113
  }
@@ -97,8 +97,19 @@ func (c *BuildkiteClient) DownloadArtifacts(ctx context.Context, build Build, ro
97
97
  return fmt.Errorf("create artifact directory: %w", err)
98
98
  }
99
99
 
100
+ existing, err := os.ReadDir(root)
101
+ if err != nil {
102
+ return fmt.Errorf("read artifact directory: %w", err)
103
+ }
104
+ if len(existing) != 0 {
105
+ return fmt.Errorf("artifact directory must be empty; refusing to mix artifacts from different builds")
106
+ }
107
+
100
108
  for _, artifactPath := range expectedArtifactPaths {
101
- artifact := manifest[artifactPath]
109
+ artifact, ok := manifest[artifactPath]
110
+ if !ok {
111
+ continue
112
+ }
102
113
  if artifact.DownloadURL == "" {
103
114
  return fmt.Errorf("artifact %q has no download URL", artifactPath)
104
115
  }
@@ -251,3 +251,34 @@ func writeJSON(t *testing.T, w http.ResponseWriter, value any) {
251
251
  t.Fatal(err)
252
252
  }
253
253
  }
254
+
255
+ func TestDownloadArtifactsRejectsStaleOptionalInstallers(t *testing.T) {
256
+ server := newBuildkiteServer(t, func(w http.ResponseWriter, r *http.Request) {
257
+ if !strings.HasSuffix(r.URL.Path, "/artifacts") {
258
+ t.Errorf("unexpected download into nonempty directory: %s", r.URL)
259
+ w.WriteHeader(500)
260
+ return
261
+ }
262
+ var artifacts []Artifact
263
+ for _, p := range ExpectedArtifactPaths() {
264
+ if strings.Contains(p, ".tar.gz") {
265
+ artifacts = append(artifacts, Artifact{Path: p, State: "finished", DownloadURL: "https://example.invalid/download"})
266
+ }
267
+ }
268
+ writeJSON(t, w, artifacts)
269
+ })
270
+ defer server.Close()
271
+ root := t.TempDir()
272
+ stale := filepath.Join(root, "vip-next-darwin-amd64.pkg")
273
+ if err := os.WriteFile(stale, []byte("previous build"), 0600); err != nil {
274
+ t.Fatal(err)
275
+ }
276
+ err := testBuildkiteClient(server.URL).DownloadArtifacts(context.Background(), Build{Number: 28}, root)
277
+ if err == nil || !strings.Contains(err.Error(), "must be empty") {
278
+ t.Fatalf("accepted stale artifact: %v", err)
279
+ }
280
+ got, err := os.ReadFile(stale)
281
+ if err != nil || string(got) != "previous build" {
282
+ t.Fatalf("changed existing artifact: %q %v", got, err)
283
+ }
284
+ }
@@ -2,7 +2,9 @@ package releasepromotion
2
2
 
3
3
  import (
4
4
  "fmt"
5
+ "os"
5
6
  "path"
7
+ "path/filepath"
6
8
  "regexp"
7
9
  "sort"
8
10
  "strings"
@@ -18,6 +20,12 @@ const (
18
20
  var prereleaseVersionPattern = regexp.MustCompile(`^5\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)-(alpha|beta|rc)\.(0|[1-9][0-9]*)$`)
19
21
 
20
22
  var expectedArtifactPaths = []string{
23
+ "dist/vip-next-darwin-amd64.pkg",
24
+ "dist/vip-next-darwin-amd64.pkg.sha256",
25
+ "dist/vip-next-darwin-arm64.pkg",
26
+ "dist/vip-next-darwin-arm64.pkg.sha256",
27
+ "dist/vip-next-windows-amd64.msi",
28
+ "dist/vip-next-windows-amd64.msi.sha256",
21
29
  "dist/vip-next-darwin-amd64.tar.gz",
22
30
  "dist/vip-next-darwin-amd64.tar.gz.sha256",
23
31
  "dist/vip-next-darwin-arm64.tar.gz",
@@ -88,7 +96,16 @@ func ValidateArtifactManifest(artifacts []Artifact) (map[string]Artifact, error)
88
96
  var missing []string
89
97
  for _, artifactPath := range expectedArtifactPaths {
90
98
  if _, ok := manifest[artifactPath]; !ok {
91
- missing = append(missing, artifactPath)
99
+ // Portable binaries are mandatory. Installers are optional, but a
100
+ // package and its checksum must always be present together.
101
+ companion := strings.TrimSuffix(artifactPath, ".sha256")
102
+ if companion == artifactPath {
103
+ companion += ".sha256"
104
+ }
105
+ _, paired := manifest[companion]
106
+ if strings.Contains(artifactPath, ".tar.gz") || paired {
107
+ missing = append(missing, artifactPath)
108
+ }
92
109
  }
93
110
  }
94
111
 
@@ -115,3 +132,34 @@ func ValidateArtifactManifest(artifacts []Artifact) (map[string]Artifact, error)
115
132
 
116
133
  return manifest, nil
117
134
  }
135
+
136
+ // localArtifactPaths applies the same contract to downloads before upload. It
137
+ // also rejects unknown files and non-regular entries instead of publishing them.
138
+ func localArtifactPaths(root string) ([]string, error) {
139
+ entries, err := os.ReadDir(root)
140
+ if err != nil {
141
+ return nil, err
142
+ }
143
+ var artifacts []Artifact
144
+ for _, entry := range entries {
145
+ info, err := entry.Info()
146
+ if err != nil {
147
+ return nil, err
148
+ }
149
+ if !info.Mode().IsRegular() {
150
+ return nil, fmt.Errorf("replacement asset %q is not a regular file", entry.Name())
151
+ }
152
+ artifacts = append(artifacts, Artifact{Path: "dist/" + entry.Name(), State: "finished"})
153
+ }
154
+ manifest, err := ValidateArtifactManifest(artifacts)
155
+ if err != nil {
156
+ return nil, err
157
+ }
158
+ paths := make([]string, 0, len(manifest))
159
+ for _, p := range expectedArtifactPaths {
160
+ if _, ok := manifest[p]; ok {
161
+ paths = append(paths, filepath.Base(p))
162
+ }
163
+ }
164
+ return paths, nil
165
+ }
@@ -16,6 +16,8 @@ func TestValidateRequest(t *testing.T) {
16
16
  {"5.0.0-beta.1", "refs/heads/trunk", true},
17
17
  {"5.12.3-alpha.10", "refs/heads/trunk", true},
18
18
  {"5.1.0-rc.2", "refs/heads/trunk", true},
19
+ {"5.0.0-beta.200", "refs/heads/trunk", true},
20
+ {"5.0.65-alpha.1", "refs/heads/trunk", true},
19
21
  {"5.0.0", "refs/heads/trunk", false},
20
22
  {"v5.0.0-beta.1", "refs/heads/trunk", false},
21
23
  {"4.9.0-beta.1", "refs/heads/trunk", false},
@@ -34,6 +36,42 @@ func TestValidateRequest(t *testing.T) {
34
36
  }
35
37
  }
36
38
 
39
+ func TestManifestAllowsMissingInstallerPairs(t *testing.T) {
40
+ var artifacts []Artifact
41
+ for _, p := range ExpectedArtifactPaths() {
42
+ if strings.Contains(p, ".tar.gz") {
43
+ artifacts = append(artifacts, Artifact{Path: p, State: "finished"})
44
+ }
45
+ }
46
+ if _, err := ValidateArtifactManifest(artifacts); err != nil {
47
+ t.Fatal(err)
48
+ }
49
+ artifacts = append(artifacts, Artifact{Path: "dist/vip-next-windows-amd64.msi", State: "finished"}, Artifact{Path: "dist/vip-next-windows-amd64.msi.sha256", State: "finished"})
50
+ if _, err := ValidateArtifactManifest(artifacts); err != nil {
51
+ t.Fatal(err)
52
+ }
53
+ }
54
+
55
+ func TestManifestRejectsPartialInstallerPairs(t *testing.T) {
56
+ for _, missing := range []string{
57
+ "dist/vip-next-darwin-amd64.pkg", "dist/vip-next-darwin-amd64.pkg.sha256",
58
+ "dist/vip-next-darwin-arm64.pkg", "dist/vip-next-darwin-arm64.pkg.sha256",
59
+ "dist/vip-next-windows-amd64.msi", "dist/vip-next-windows-amd64.msi.sha256",
60
+ } {
61
+ t.Run(missing, func(t *testing.T) {
62
+ var artifacts []Artifact
63
+ for _, p := range ExpectedArtifactPaths() {
64
+ if p != missing {
65
+ artifacts = append(artifacts, Artifact{Path: p, State: "finished"})
66
+ }
67
+ }
68
+ if _, err := ValidateArtifactManifest(artifacts); err == nil || !strings.Contains(err.Error(), missing) {
69
+ t.Fatalf("missing installer artifact accepted: %v", err)
70
+ }
71
+ })
72
+ }
73
+ }
74
+
37
75
  func TestValidateArtifactManifest(t *testing.T) {
38
76
  t.Parallel()
39
77
  expected := ExpectedArtifactPaths()
@@ -172,14 +172,9 @@ func (c *GitHubClient) ReplaceAssets(ctx context.Context, release Release, root
172
172
  return fmt.Errorf("unexpected existing asset %q on draft release", asset.Name)
173
173
  }
174
174
  }
175
- for name := range expectedNames {
176
- info, err := os.Stat(filepath.Join(root, name))
177
- if err != nil {
178
- return fmt.Errorf("read replacement asset %q: %w", name, err)
179
- }
180
- if !info.Mode().IsRegular() {
181
- return fmt.Errorf("replacement asset %q is not a regular file", name)
182
- }
175
+ paths, err := localArtifactPaths(root)
176
+ if err != nil {
177
+ return fmt.Errorf("read replacement assets: %w", err)
183
178
  }
184
179
 
185
180
  for _, asset := range release.Assets {
@@ -193,8 +188,7 @@ func (c *GitHubClient) ReplaceAssets(ctx context.Context, release Release, root
193
188
  if uploadBase == "" {
194
189
  uploadBase = fmt.Sprintf("%s/repos/%s/releases/%d/assets", c.uploadsURL(), GitHubRepository, release.ID)
195
190
  }
196
- for _, artifactPath := range expectedArtifactPaths {
197
- name := filepath.Base(artifactPath)
191
+ for _, name := range paths {
198
192
  if err := c.uploadAsset(ctx, uploadBase, name, filepath.Join(root, name)); err != nil {
199
193
  return err
200
194
  }
@@ -0,0 +1,87 @@
1
+ package releasepromotion
2
+
3
+ import (
4
+ "context"
5
+ "io"
6
+ "net/http"
7
+ "net/http/httptest"
8
+ "os"
9
+ "path/filepath"
10
+ "reflect"
11
+ "sort"
12
+ "strings"
13
+ "testing"
14
+ )
15
+
16
+ func TestDownloadVerifyAndReplaceWithOptionalInstallers(t *testing.T) {
17
+ for _, windowsInstaller := range []bool{false, true} {
18
+ name := "binaries-only"
19
+ if windowsInstaller {
20
+ name = "binaries-and-windows-installer"
21
+ }
22
+ t.Run(name, func(t *testing.T) {
23
+ fixtures := t.TempDir()
24
+ writeCompleteArtifactSet(t, fixtures)
25
+ var expected, uploaded []string
26
+ var artifacts []Artifact
27
+ var serverURL string
28
+ deleted := false
29
+ server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
30
+ switch {
31
+ case strings.HasSuffix(r.URL.Path, "/artifacts"):
32
+ writeJSON(t, w, artifacts)
33
+ case strings.HasPrefix(r.URL.Path, "/download/"):
34
+ data, err := os.ReadFile(filepath.Join(fixtures, filepath.Base(r.URL.Path)))
35
+ if err != nil {
36
+ t.Error(err)
37
+ w.WriteHeader(404)
38
+ return
39
+ }
40
+ _, _ = w.Write(data)
41
+ case r.Method == http.MethodDelete:
42
+ deleted = true
43
+ w.WriteHeader(http.StatusNoContent)
44
+ case r.Method == http.MethodPost && r.URL.Path == "/uploads":
45
+ name := r.URL.Query().Get("name")
46
+ data, _ := io.ReadAll(r.Body)
47
+ original, err := os.ReadFile(filepath.Join(fixtures, name))
48
+ if err != nil || string(data) != string(original) {
49
+ t.Errorf("uploaded wrong bytes for %s: %v", name, err)
50
+ }
51
+ uploaded = append(uploaded, name)
52
+ w.WriteHeader(http.StatusCreated)
53
+ default:
54
+ t.Errorf("unexpected request %s %s", r.Method, r.URL)
55
+ w.WriteHeader(500)
56
+ }
57
+ }))
58
+ defer server.Close()
59
+ serverURL = server.URL
60
+ for _, p := range ExpectedArtifactPaths() {
61
+ if !strings.Contains(p, ".tar.gz") && !(windowsInstaller && strings.Contains(p, ".msi")) {
62
+ continue
63
+ }
64
+ expected = append(expected, filepath.Base(p))
65
+ artifacts = append(artifacts, Artifact{Path: p, State: "finished", DownloadURL: serverURL + "/download/" + filepath.Base(p)})
66
+ }
67
+ downloads := t.TempDir()
68
+ if err := testBuildkiteClient(server.URL).DownloadArtifacts(context.Background(), Build{Number: 28}, downloads); err != nil {
69
+ t.Fatal(err)
70
+ }
71
+ if err := VerifyDownloads(downloads); err != nil {
72
+ t.Fatal(err)
73
+ }
74
+ // A retry also removes an old optional installer from the draft when the
75
+ // current exact build did not produce it.
76
+ release := Release{ID: 1, Draft: true, UploadURL: server.URL + "/uploads{?name,label}", Assets: []ReleaseAsset{{ID: 9, Name: "vip-next-darwin-amd64.pkg"}}}
77
+ if err := testGitHubClient(server.URL).ReplaceAssets(context.Background(), release, downloads); err != nil {
78
+ t.Fatal(err)
79
+ }
80
+ sort.Strings(expected)
81
+ sort.Strings(uploaded)
82
+ if !deleted || !reflect.DeepEqual(expected, uploaded) {
83
+ t.Fatalf("deleted=%t uploaded=%v want=%v", deleted, uploaded, expected)
84
+ }
85
+ })
86
+ }
87
+ }
@@ -3,6 +3,7 @@ package releasepromotion
3
3
  import (
4
4
  "archive/tar"
5
5
  "bufio"
6
+ "bytes"
6
7
  "compress/gzip"
7
8
  "crypto/sha256"
8
9
  "crypto/subtle"
@@ -20,8 +21,12 @@ var unixEntries = map[string]struct{}{"vip-next": {}, "go-search-replace": {}}
20
21
  var windowsEntries = map[string]struct{}{"vip-next.exe": {}, "go-search-replace.exe": {}}
21
22
 
22
23
  func VerifyDownloads(root string) error {
23
- for _, artifactPath := range expectedArtifactPaths {
24
- if !strings.HasSuffix(artifactPath, ".tar.gz") {
24
+ paths, err := localArtifactPaths(root)
25
+ if err != nil {
26
+ return err
27
+ }
28
+ for _, artifactPath := range paths {
29
+ if strings.HasSuffix(artifactPath, ".sha256") {
25
30
  continue
26
31
  }
27
32
  archivePath := filepath.Join(root, filepath.Base(artifactPath))
@@ -29,6 +34,12 @@ func VerifyDownloads(root string) error {
29
34
  if err := verifyChecksum(archivePath, checksumPath); err != nil {
30
35
  return fmt.Errorf("verify %s: %w", filepath.Base(archivePath), err)
31
36
  }
37
+ if !strings.HasSuffix(artifactPath, ".tar.gz") {
38
+ if err := verifyInstallerContainer(archivePath); err != nil {
39
+ return fmt.Errorf("verify %s: %w", filepath.Base(archivePath), err)
40
+ }
41
+ continue
42
+ }
32
43
  expected := unixEntries
33
44
  if strings.Contains(filepath.Base(archivePath), "-windows-") {
34
45
  expected = windowsEntries
@@ -40,6 +51,33 @@ func VerifyDownloads(root string) error {
40
51
  return nil
41
52
  }
42
53
 
54
+ // Platform builders verify the actual payload and platform signature before
55
+ // upload. This portable gate checks the container type as well as its checksum;
56
+ // it is deliberately not a replacement for native PKG/MSI validation.
57
+ func verifyInstallerContainer(name string) error {
58
+ f, err := os.Open(name)
59
+ if err != nil {
60
+ return err
61
+ }
62
+ defer f.Close()
63
+ magic, minSize := []byte("xar!"), int64(28)
64
+ if strings.HasSuffix(name, ".msi") {
65
+ magic, minSize = []byte{0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1}, 512
66
+ }
67
+ info, err := f.Stat()
68
+ if err != nil {
69
+ return err
70
+ }
71
+ header := make([]byte, len(magic))
72
+ if _, err := io.ReadFull(f, header); err != nil {
73
+ return fmt.Errorf("truncated installer: %w", err)
74
+ }
75
+ if info.Size() < minSize || !bytes.Equal(header, magic) {
76
+ return fmt.Errorf("invalid installer container")
77
+ }
78
+ return nil
79
+ }
80
+
43
81
  func verifyChecksum(archivePath, checksumPath string) error {
44
82
  checksumFile, err := os.Open(checksumPath)
45
83
  if err != nil {
@@ -140,3 +178,62 @@ func verifyArchive(archivePath string, expected map[string]struct{}) error {
140
178
  }
141
179
  return nil
142
180
  }
181
+
182
+ // ExtractBinaryArchive verifies the checksum and strict two-file archive
183
+ // contract before writing signed payload bytes for a downstream installer job.
184
+ // The destination must be new; no existing installation can be overwritten.
185
+ func ExtractBinaryArchive(platform, archivePath, destination string) error {
186
+ expected := unixEntries
187
+ switch platform {
188
+ case "darwin":
189
+ case "windows":
190
+ expected = windowsEntries
191
+ default:
192
+ return fmt.Errorf("unsupported installer platform %q", platform)
193
+ }
194
+ if err := verifyChecksum(archivePath, archivePath+".sha256"); err != nil {
195
+ return err
196
+ }
197
+ if err := verifyArchive(archivePath, expected); err != nil {
198
+ return err
199
+ }
200
+ if err := os.Mkdir(destination, 0700); err != nil {
201
+ return err
202
+ }
203
+ file, err := os.Open(archivePath)
204
+ if err != nil {
205
+ return err
206
+ }
207
+ defer file.Close()
208
+ gz, err := gzip.NewReader(file)
209
+ if err != nil {
210
+ return err
211
+ }
212
+ defer gz.Close()
213
+ reader := tar.NewReader(gz)
214
+ for {
215
+ header, err := reader.Next()
216
+ if err == io.EOF {
217
+ return nil
218
+ }
219
+ if err != nil {
220
+ return err
221
+ }
222
+ // Recheck names/types on the extraction pass as well.
223
+ if _, ok := expected[header.Name]; !ok || (header.Typeflag != tar.TypeReg && header.Typeflag != tar.TypeRegA) {
224
+ return fmt.Errorf("invalid payload entry %q", header.Name)
225
+ }
226
+ out, err := os.OpenFile(filepath.Join(destination, header.Name), os.O_CREATE|os.O_EXCL|os.O_WRONLY, 0755)
227
+ if err != nil {
228
+ return err
229
+ }
230
+ _, copyErr := io.Copy(out, reader)
231
+ closeErr := out.Close()
232
+ if copyErr != nil {
233
+ return copyErr
234
+ }
235
+ if closeErr != nil {
236
+ return closeErr
237
+ }
238
+ }
239
+ }
@@ -34,6 +34,47 @@ func TestVerifyDownloads(t *testing.T) {
34
34
  }
35
35
  }
36
36
 
37
+ func TestVerifyDownloadsWithoutInstallers(t *testing.T) {
38
+ root := t.TempDir()
39
+ writeCompleteArtifactSet(t, root)
40
+ for _, p := range ExpectedArtifactPaths() {
41
+ if !strings.Contains(p, ".tar.gz") {
42
+ if err := os.Remove(filepath.Join(root, filepath.Base(p))); err != nil {
43
+ t.Fatal(err)
44
+ }
45
+ }
46
+ }
47
+ if err := VerifyDownloads(root); err != nil {
48
+ t.Fatal(err)
49
+ }
50
+ }
51
+
52
+ func TestVerifyInstallerDownloads(t *testing.T) {
53
+ for _, name := range []string{"vip-next-darwin-amd64.pkg", "vip-next-darwin-arm64.pkg", "vip-next-windows-amd64.msi"} {
54
+ for _, mutation := range []string{"checksum", "format", "truncated"} {
55
+ t.Run(name+"/"+mutation, func(t *testing.T) {
56
+ root := t.TempDir()
57
+ writeCompleteArtifactSet(t, root)
58
+ file := filepath.Join(root, name)
59
+ if err := os.WriteFile(file, []byte("invalid installer"), 0600); err != nil {
60
+ t.Fatal(err)
61
+ }
62
+ if mutation == "truncated" {
63
+ if err := os.WriteFile(file, []byte("xar!"), 0600); err != nil {
64
+ t.Fatal(err)
65
+ }
66
+ }
67
+ if mutation != "checksum" {
68
+ writeChecksum(t, root, name, false, false)
69
+ }
70
+ if err := VerifyDownloads(root); err == nil || !strings.Contains(err.Error(), name) {
71
+ t.Fatalf("invalid installer accepted: %v", err)
72
+ }
73
+ })
74
+ }
75
+ }
76
+ }
77
+
37
78
  func TestVerifyDownloadsRejectsInvalidArtifacts(t *testing.T) {
38
79
  t.Parallel()
39
80
  tests := []struct {
@@ -103,6 +144,20 @@ func writeCompleteArtifactSet(t *testing.T, root string) {
103
144
  continue
104
145
  }
105
146
  archiveName := filepath.Base(artifactPath)
147
+ if strings.HasSuffix(archiveName, ".pkg") || strings.HasSuffix(archiveName, ".msi") {
148
+ // Container checks only; platform-native tests validate real payloads.
149
+ data := make([]byte, 512)
150
+ if strings.HasSuffix(archiveName, ".pkg") {
151
+ copy(data, "xar!")
152
+ } else {
153
+ copy(data, []byte{0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1})
154
+ }
155
+ if err := os.WriteFile(filepath.Join(root, archiveName), data, 0600); err != nil {
156
+ t.Fatal(err)
157
+ }
158
+ writeChecksum(t, root, archiveName, false, false)
159
+ continue
160
+ }
106
161
  entries := []archiveEntry{{name: "vip-next", typeflag: tar.TypeReg}, {name: "go-search-replace", typeflag: tar.TypeReg}}
107
162
  if strings.Contains(archiveName, "windows") {
108
163
  entries = []archiveEntry{{name: "vip-next.exe", typeflag: tar.TypeReg}, {name: "go-search-replace.exe", typeflag: tar.TypeReg}}
@@ -195,3 +250,47 @@ func writeChecksum(t *testing.T, root, archiveName string, includeDist, uppercas
195
250
  t.Fatal(err)
196
251
  }
197
252
  }
253
+
254
+ func TestExtractBinaryArchive(t *testing.T) {
255
+ for _, platform := range []string{"darwin", "windows"} {
256
+ t.Run(platform, func(t *testing.T) {
257
+ root := t.TempDir()
258
+ writeCompleteArtifactSet(t, root)
259
+ archive := filepath.Join(root, "vip-next-"+platform+"-amd64.tar.gz")
260
+ destination := filepath.Join(root, "payload")
261
+ if err := ExtractBinaryArchive(platform, archive, destination); err != nil {
262
+ t.Fatal(err)
263
+ }
264
+ expected := unixEntries
265
+ if platform == "windows" {
266
+ expected = windowsEntries
267
+ }
268
+ for name := range expected {
269
+ got, err := os.ReadFile(filepath.Join(destination, name))
270
+ if err != nil || string(got) != "x" {
271
+ t.Fatalf("payload %s = %q, %v", name, got, err)
272
+ }
273
+ }
274
+ if err := ExtractBinaryArchive(platform, archive, destination); err == nil {
275
+ t.Fatal("overwrote existing destination")
276
+ }
277
+ })
278
+ }
279
+ }
280
+
281
+ func TestExtractBinaryArchiveRejectsInvalidPayloadBeforeWriting(t *testing.T) {
282
+ for _, mutation := range []fixtureMutation{corruptChecksum, addReadmeEntry, addNestedVIPNext, replaceVIPNextWithSymlink} {
283
+ t.Run(fmt.Sprint(mutation), func(t *testing.T) {
284
+ root := t.TempDir()
285
+ writeCompleteArtifactSet(t, root)
286
+ applyFixtureMutation(t, root, mutation)
287
+ destination := filepath.Join(root, "payload")
288
+ if err := ExtractBinaryArchive("darwin", filepath.Join(root, "vip-next-darwin-amd64.tar.gz"), destination); err == nil {
289
+ t.Fatal("invalid archive accepted")
290
+ }
291
+ if _, err := os.Stat(destination); !os.IsNotExist(err) {
292
+ t.Fatalf("destination created before validation: %v", err)
293
+ }
294
+ })
295
+ }
296
+ }
@@ -0,0 +1,71 @@
1
+ package searchreplace
2
+
3
+ import (
4
+ "bytes"
5
+ "context"
6
+ "os"
7
+ "path/filepath"
8
+ "strings"
9
+ "testing"
10
+
11
+ "github.com/Automattic/vip/internal/debuglog"
12
+ )
13
+
14
+ func TestRunContextReportsRoutesWithoutSensitiveValues(t *testing.T) {
15
+ for _, mode := range []string{"in-place", "temporary-file", "file"} {
16
+ t.Run(mode, func(t *testing.T) {
17
+ t.Setenv("VIP_SEARCH_REPLACE_BIN", fakeBinary(t))
18
+ input := write(t, "private-input.sql", "-- metadata.header 1\n-- private_table 123\n")
19
+ opts := Options{InPlace: mode == "in-place"}
20
+ if mode == "file" {
21
+ opts.Output = filepath.Join(t.TempDir(), "private-output.sql")
22
+ }
23
+ var diagnostics bytes.Buffer
24
+ ctx := debuglog.WithLogger(context.Background(), "@automattic/vip:lib:search-and-replace", &diagnostics)
25
+ result, err := RunContext(ctx, input, []string{"private-search,private-replacement"}, opts)
26
+ if err != nil {
27
+ t.Fatal(err)
28
+ }
29
+ if mode == "temporary-file" {
30
+ t.Cleanup(func() { _ = os.RemoveAll(filepath.Dir(result.OutputFileName)) })
31
+ }
32
+ got, err := os.ReadFile(result.OutputFileName)
33
+ if err != nil || !strings.Contains(string(got), "-- PRIVATE_TABLE -1") {
34
+ t.Fatalf("mydumper output=%q err=%v", got, err)
35
+ }
36
+ log := diagnostics.String()
37
+ for _, want := range []string{"input=file", "output=" + mode, "stage=started", "mydumper=true", "stage=completed"} {
38
+ if !strings.Contains(log, want) {
39
+ t.Errorf("missing %q in %q", want, log)
40
+ }
41
+ }
42
+ for _, secret := range []string{input, result.OutputFileName, "private-", "PRIVATE_TABLE", "metadata.header"} {
43
+ if strings.Contains(log, secret) {
44
+ t.Errorf("diagnostics expose %q: %q", secret, log)
45
+ }
46
+ }
47
+ })
48
+ }
49
+ }
50
+
51
+ func TestRunContextDoesNotReportCompletionWhenCompanionFails(t *testing.T) {
52
+ t.Setenv("VIP_SEARCH_REPLACE_BIN", failingBinary(t))
53
+ input := write(t, "private-input.sql", "private_sql\n")
54
+ var diagnostics bytes.Buffer
55
+ ctx := debuglog.WithLogger(context.Background(), "*", &diagnostics)
56
+ _, err := RunContext(ctx, input, []string{"private-search,private-replacement"}, Options{InPlace: true})
57
+ if err == nil {
58
+ t.Fatal("expected companion failure")
59
+ }
60
+ log := diagnostics.String()
61
+ if !strings.Contains(log, "stage=started") || strings.Contains(log, "stage=completed") {
62
+ t.Fatalf("inaccurate stage diagnostics: %q", log)
63
+ }
64
+ if strings.Contains(log, "private") {
65
+ t.Fatalf("sensitive diagnostic: %q", log)
66
+ }
67
+ got, err := os.ReadFile(input)
68
+ if err != nil || string(got) != "private_sql\n" {
69
+ t.Fatalf("input changed: %q err=%v", got, err)
70
+ }
71
+ }