@automattic/vip 4.1.5 → 4.1.8

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 (1819) hide show
  1. package/assets/dev-env.lando.template.yml.ejs +7 -3
  2. package/config/config.local.json +6 -0
  3. package/dist/bin/vip-app-deploy-token-generate.js +110 -78
  4. package/dist/bin/vip-app-deploy-token.js +24 -16
  5. package/dist/bin/vip-app-deploy-validate.js +45 -41
  6. package/dist/bin/vip-app-deploy.js +222 -215
  7. package/dist/bin/vip-app-list.js +59 -43
  8. package/dist/bin/vip-app.js +97 -66
  9. package/dist/bin/vip-backup-db.js +36 -29
  10. package/dist/bin/vip-backup.js +16 -9
  11. package/dist/bin/vip-cache-purge-url.js +93 -55
  12. package/dist/bin/vip-cache.js +23 -14
  13. package/dist/bin/vip-config-envvar-delete.js +74 -73
  14. package/dist/bin/vip-config-envvar-get-all.js +68 -68
  15. package/dist/bin/vip-config-envvar-get.js +46 -46
  16. package/dist/bin/vip-config-envvar-list.js +54 -57
  17. package/dist/bin/vip-config-envvar-set.js +102 -96
  18. package/dist/bin/vip-config-envvar.js +38 -24
  19. package/dist/bin/vip-config-software-get.js +89 -67
  20. package/dist/bin/vip-config-software-update.js +116 -120
  21. package/dist/bin/vip-config-software.js +31 -21
  22. package/dist/bin/vip-config.js +25 -17
  23. package/dist/bin/vip-db-phpmyadmin.js +40 -39
  24. package/dist/bin/vip-db.js +13 -12
  25. package/dist/bin/vip-defensive-mode-configure.js +197 -197
  26. package/dist/bin/vip-defensive-mode-disable.js +43 -35
  27. package/dist/bin/vip-defensive-mode-enable.js +47 -38
  28. package/dist/bin/vip-defensive-mode.js +28 -17
  29. package/dist/bin/vip-dev-env-create.js +147 -104
  30. package/dist/bin/vip-dev-env-destroy.js +48 -39
  31. package/dist/bin/vip-dev-env-envvar-delete.js +60 -49
  32. package/dist/bin/vip-dev-env-envvar-get-all.js +52 -45
  33. package/dist/bin/vip-dev-env-envvar-get.js +48 -37
  34. package/dist/bin/vip-dev-env-envvar-list.js +48 -41
  35. package/dist/bin/vip-dev-env-envvar-set.js +83 -70
  36. package/dist/bin/vip-dev-env-envvar.js +38 -23
  37. package/dist/bin/vip-dev-env-exec.js +81 -74
  38. package/dist/bin/vip-dev-env-import-media.js +34 -26
  39. package/dist/bin/vip-dev-env-import-sql.js +65 -51
  40. package/dist/bin/vip-dev-env-import.js +23 -14
  41. package/dist/bin/vip-dev-env-info.js +59 -50
  42. package/dist/bin/vip-dev-env-list.js +34 -31
  43. package/dist/bin/vip-dev-env-logs.js +59 -49
  44. package/dist/bin/vip-dev-env-purge.js +71 -63
  45. package/dist/bin/vip-dev-env-shell.js +82 -71
  46. package/dist/bin/vip-dev-env-start.js +77 -65
  47. package/dist/bin/vip-dev-env-stop.js +80 -74
  48. package/dist/bin/vip-dev-env-sync-sql.js +80 -72
  49. package/dist/bin/vip-dev-env-sync.js +18 -11
  50. package/dist/bin/vip-dev-env-update.js +93 -84
  51. package/dist/bin/vip-dev-env.js +25 -8
  52. package/dist/bin/vip-edge-workers-build.js +82 -54
  53. package/dist/bin/vip-edge-workers-delete.js +84 -52
  54. package/dist/bin/vip-edge-workers-deploy.js +186 -126
  55. package/dist/bin/vip-edge-workers-disable.js +75 -44
  56. package/dist/bin/vip-edge-workers-enable.js +86 -54
  57. package/dist/bin/vip-edge-workers-get.js +108 -88
  58. package/dist/bin/vip-edge-workers-init.js +83 -53
  59. package/dist/bin/vip-edge-workers-list.js +89 -54
  60. package/dist/bin/vip-edge-workers-new.js +98 -69
  61. package/dist/bin/vip-edge-workers-validate.js +123 -82
  62. package/dist/bin/vip-edge-workers.js +19 -6
  63. package/dist/bin/vip-export-sql.js +75 -69
  64. package/dist/bin/vip-export.js +12 -7
  65. package/dist/bin/vip-import-media-abort.js +99 -73
  66. package/dist/bin/vip-import-media-status.js +83 -51
  67. package/dist/bin/vip-import-media.js +165 -166
  68. package/dist/bin/vip-import-sql-status.js +75 -45
  69. package/dist/bin/vip-import-sql.js +536 -596
  70. package/dist/bin/vip-import-validate-files.js +122 -141
  71. package/dist/bin/vip-import-validate-sql.js +52 -16
  72. package/dist/bin/vip-import.js +16 -7
  73. package/dist/bin/vip-logout.js +17 -13
  74. package/dist/bin/vip-logs.js +209 -183
  75. package/dist/bin/vip-search-replace.js +85 -53
  76. package/dist/bin/vip-slowlogs.js +168 -147
  77. package/dist/bin/vip-sync.js +163 -133
  78. package/dist/bin/vip-whoami.js +71 -35
  79. package/dist/bin/vip-wp.js +505 -459
  80. package/dist/bin/vip.js +161 -116
  81. package/dist/commands/backup-db.js +183 -149
  82. package/dist/commands/dev-env-import-sql.js +162 -117
  83. package/dist/commands/dev-env-sync-sql.js +372 -330
  84. package/dist/commands/export-sql.js +441 -425
  85. package/dist/commands/phpmyadmin.js +232 -212
  86. package/dist/commands/wp-ssh.js +218 -187
  87. package/dist/lib/analytics/clients/tracks.js +84 -91
  88. package/dist/lib/analytics/index.js +27 -27
  89. package/dist/lib/api/app.js +37 -36
  90. package/dist/lib/api/cache-purge.js +17 -20
  91. package/dist/lib/api/constants.js +5 -6
  92. package/dist/lib/api/edge-workers.js +84 -135
  93. package/dist/lib/api/error-debug.js +10 -13
  94. package/dist/lib/api/feature-flags.js +16 -17
  95. package/dist/lib/api/http.js +47 -48
  96. package/dist/lib/api/user.js +17 -18
  97. package/dist/lib/api.js +107 -116
  98. package/dist/lib/app-logs/app-logs.js +24 -25
  99. package/dist/lib/app-slowlogs/app-slowlogs.js +23 -24
  100. package/dist/lib/app-slowlogs/types.js +2 -1
  101. package/dist/lib/app.js +6 -8
  102. package/dist/lib/backup-storage-availability/backup-storage-availability.js +119 -119
  103. package/dist/lib/backup-storage-availability/docker-machine-not-found-error.js +5 -6
  104. package/dist/lib/cli/apiConfig.js +71 -41
  105. package/dist/lib/cli/command.js +1120 -873
  106. package/dist/lib/cli/config.js +29 -29
  107. package/dist/lib/cli/envAlias.js +35 -50
  108. package/dist/lib/cli/exit.js +19 -19
  109. package/dist/lib/cli/format.js +172 -172
  110. package/dist/lib/cli/progress.js +193 -236
  111. package/dist/lib/cli/prompt.js +14 -15
  112. package/dist/lib/cli/runtime-mode.js +5 -6
  113. package/dist/lib/client-file-uploader.js +492 -615
  114. package/dist/lib/config/software.js +225 -191
  115. package/dist/lib/constants/dev-environment.js +40 -37
  116. package/dist/lib/constants/file-size.js +6 -7
  117. package/dist/lib/constants/vipgo.js +24 -12
  118. package/dist/lib/custom-deploy/custom-deploy.js +138 -120
  119. package/dist/lib/database.js +88 -85
  120. package/dist/lib/defensive-mode/api.js +41 -46
  121. package/dist/lib/defensive-mode/cli-helpers.js +40 -40
  122. package/dist/lib/dev-environment/dev-environment-cli.js +776 -735
  123. package/dist/lib/dev-environment/dev-environment-configuration-file.js +224 -191
  124. package/dist/lib/dev-environment/dev-environment-core.js +697 -732
  125. package/dist/lib/dev-environment/dev-environment-database.js +57 -41
  126. package/dist/lib/dev-environment/dev-environment-lando.js +734 -666
  127. package/dist/lib/dev-environment/docker-utils.js +96 -90
  128. package/dist/lib/dev-environment/env-vars.js +61 -59
  129. package/dist/lib/dev-environment/lando-loader.js +6 -7
  130. package/dist/lib/dev-environment/types.js +2 -1
  131. package/dist/lib/edge-workers/confirmation.js +42 -36
  132. package/dist/lib/edge-workers/deployment.js +150 -159
  133. package/dist/lib/edge-workers/index.js +68 -85
  134. package/dist/lib/edge-workers/location.js +26 -26
  135. package/dist/lib/edge-workers/output.js +14 -15
  136. package/dist/lib/edge-workers/project.js +123 -132
  137. package/dist/lib/edge-workers/toolchains/assemblyscript/constants.js +6 -8
  138. package/dist/lib/edge-workers/toolchains/assemblyscript/index.js +100 -101
  139. package/dist/lib/edge-workers/toolchains/assemblyscript/templates.js +31 -33
  140. package/dist/lib/edge-workers/toolchains/index.js +15 -15
  141. package/dist/lib/edge-workers/types.js +10 -38
  142. package/dist/lib/edge-workers/validation.js +161 -150
  143. package/dist/lib/env.js +16 -17
  144. package/dist/lib/envvar/api-delete.js +16 -18
  145. package/dist/lib/envvar/api-get-all.js +15 -19
  146. package/dist/lib/envvar/api-get.js +8 -9
  147. package/dist/lib/envvar/api-list.js +16 -21
  148. package/dist/lib/envvar/api-set.js +20 -19
  149. package/dist/lib/envvar/api.js +34 -29
  150. package/dist/lib/envvar/input.js +29 -34
  151. package/dist/lib/envvar/logging.js +9 -11
  152. package/dist/lib/envvar/read-file.js +6 -7
  153. package/dist/lib/http/download-file.js +76 -44
  154. package/dist/lib/http/proxy-agent.js +37 -40
  155. package/dist/lib/http/proxy-dispatcher.js +69 -71
  156. package/dist/lib/keychain/insecure.js +40 -36
  157. package/dist/lib/keychain/keychain.js +2 -1
  158. package/dist/lib/keychain/secure.js +16 -15
  159. package/dist/lib/keychain.js +22 -22
  160. package/dist/lib/live-backup-copy.js +117 -115
  161. package/dist/lib/logout.js +17 -19
  162. package/dist/lib/media-import/config.js +15 -14
  163. package/dist/lib/media-import/media-file-import.js +9 -13
  164. package/dist/lib/media-import/progress.js +53 -65
  165. package/dist/lib/media-import/status.js +241 -256
  166. package/dist/lib/media-import/utils.js +15 -15
  167. package/dist/lib/node-version-check.js +16 -16
  168. package/dist/lib/promise.js +16 -17
  169. package/dist/lib/read-file.js +48 -16
  170. package/dist/lib/rechallenge/client.js +37 -43
  171. package/dist/lib/rechallenge/errors.js +38 -37
  172. package/dist/lib/rechallenge/flow.js +148 -123
  173. package/dist/lib/rechallenge/index.js +23 -24
  174. package/dist/lib/rechallenge/link.js +153 -151
  175. package/dist/lib/rechallenge/open-browser.js +14 -17
  176. package/dist/lib/rechallenge/token-cache.js +83 -86
  177. package/dist/lib/rechallenge/types.js +5 -14
  178. package/dist/lib/retry.js +93 -129
  179. package/dist/lib/search-and-replace.js +164 -148
  180. package/dist/lib/site-import/db-file-import.js +12 -16
  181. package/dist/lib/site-import/status.js +291 -291
  182. package/dist/lib/token.js +86 -87
  183. package/dist/lib/tracker.js +51 -62
  184. package/dist/lib/types/graphql/rate-limit-exceeded-error.js +2 -1
  185. package/dist/lib/types.js +2 -1
  186. package/dist/lib/user-error.js +6 -8
  187. package/dist/lib/utils.js +81 -87
  188. package/dist/lib/validations/custom-deploy.js +218 -186
  189. package/dist/lib/validations/is-multi-site-sql-dump.js +6 -6
  190. package/dist/lib/validations/is-multi-site.js +83 -50
  191. package/dist/lib/validations/is-multisite-domain-mapped.js +92 -62
  192. package/dist/lib/validations/line-by-line.js +78 -46
  193. package/dist/lib/validations/site-type.js +59 -63
  194. package/dist/lib/validations/sql-insert-parser.js +415 -0
  195. package/dist/lib/validations/sql.js +551 -431
  196. package/dist/lib/validations/utils.js +27 -29
  197. package/dist/lib/vip-import-validate-files.js +481 -490
  198. package/dist/lib/wp/helpers.js +41 -45
  199. package/dist/lib/wp/readline.js +21 -57
  200. package/dist/lib/xdg-data.js +11 -12
  201. package/helpers/generate-docs.js +9 -3
  202. package/helpers/mark-cli-executable.js +9 -0
  203. package/node_modules/@apollo/client/CHANGELOG.md +42 -0
  204. package/node_modules/@apollo/client/__cjs/cache/core/cache.cjs +1 -1
  205. package/node_modules/@apollo/client/__cjs/cache/core/cache.cjs.map +1 -1
  206. package/node_modules/@apollo/client/__cjs/cache/core/cache.d.cts +4 -1
  207. package/node_modules/@apollo/client/__cjs/cache/core/types/Cache.d.cts +5 -0
  208. package/node_modules/@apollo/client/__cjs/cache/inmemory/entityStore.cjs +4 -4
  209. package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs +5 -0
  210. package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs.map +1 -1
  211. package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs +17 -6
  212. package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  213. package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.d.cts +3 -1
  214. package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs +15 -3
  215. package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs.map +1 -1
  216. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs +21 -5
  217. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs.map +1 -1
  218. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.d.cts +2 -0
  219. package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.cjs +28 -10
  220. package/node_modules/@apollo/client/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  221. package/node_modules/@apollo/client/__cjs/cache/inmemory/types.d.cts +7 -2
  222. package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs +32 -16
  223. package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  224. package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.d.cts +5 -2
  225. package/node_modules/@apollo/client/__cjs/core/ApolloClient.cjs +14 -14
  226. package/node_modules/@apollo/client/__cjs/core/ObservableQuery.cjs +8 -8
  227. package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs +22 -33
  228. package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs.map +1 -1
  229. package/node_modules/@apollo/client/__cjs/core/QueryInfo.d.cts +1 -1
  230. package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs +22 -15
  231. package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs.map +1 -1
  232. package/node_modules/@apollo/client/__cjs/core/RefetchEventManager.cjs +3 -3
  233. package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.cjs +15 -2
  234. package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.cjs.map +1 -1
  235. package/node_modules/@apollo/client/__cjs/incremental/handlers/defer20220824.d.cts +5 -1
  236. package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.cjs +58 -14
  237. package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -1
  238. package/node_modules/@apollo/client/__cjs/incremental/handlers/graphql17Alpha9.d.cts +23 -12
  239. package/node_modules/@apollo/client/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  240. package/node_modules/@apollo/client/__cjs/incremental/types.d.cts +19 -1
  241. package/node_modules/@apollo/client/__cjs/invariantErrorCodes.cjs +64 -58
  242. package/node_modules/@apollo/client/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
  243. package/node_modules/@apollo/client/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  244. package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.cjs.map +1 -1
  245. package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.d.cts +42 -43
  246. package/node_modules/@apollo/client/__cjs/utilities/internal/index.cjs.map +1 -1
  247. package/node_modules/@apollo/client/__cjs/utilities/internal/index.d.cts +0 -1
  248. package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.cjs +24 -26
  249. package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.cjs.map +1 -1
  250. package/node_modules/@apollo/client/__cjs/utilities/internal/isDeferredFragment.d.cts +1 -1
  251. package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.cjs +24 -20
  252. package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.cjs.map +1 -1
  253. package/node_modules/@apollo/client/__cjs/utilities/internal/isStreamField.d.cts +1 -1
  254. package/node_modules/@apollo/client/__cjs/version.cjs +1 -1
  255. package/node_modules/@apollo/client/cache/core/cache.d.ts +4 -1
  256. package/node_modules/@apollo/client/cache/core/cache.js +1 -1
  257. package/node_modules/@apollo/client/cache/core/cache.js.map +1 -1
  258. package/node_modules/@apollo/client/cache/core/types/Cache.d.ts +5 -0
  259. package/node_modules/@apollo/client/cache/core/types/Cache.js.map +1 -1
  260. package/node_modules/@apollo/client/cache/inmemory/entityStore.js +4 -4
  261. package/node_modules/@apollo/client/cache/inmemory/helpers.js +5 -0
  262. package/node_modules/@apollo/client/cache/inmemory/helpers.js.map +1 -1
  263. package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.d.ts +3 -1
  264. package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js +17 -6
  265. package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js.map +1 -1
  266. package/node_modules/@apollo/client/cache/inmemory/key-extractor.js +15 -3
  267. package/node_modules/@apollo/client/cache/inmemory/key-extractor.js.map +1 -1
  268. package/node_modules/@apollo/client/cache/inmemory/policies.d.ts +2 -0
  269. package/node_modules/@apollo/client/cache/inmemory/policies.js +22 -6
  270. package/node_modules/@apollo/client/cache/inmemory/policies.js.map +1 -1
  271. package/node_modules/@apollo/client/cache/inmemory/readFromStore.js +28 -10
  272. package/node_modules/@apollo/client/cache/inmemory/readFromStore.js.map +1 -1
  273. package/node_modules/@apollo/client/cache/inmemory/types.d.ts +7 -2
  274. package/node_modules/@apollo/client/cache/inmemory/types.js.map +1 -1
  275. package/node_modules/@apollo/client/cache/inmemory/writeToStore.d.ts +5 -2
  276. package/node_modules/@apollo/client/cache/inmemory/writeToStore.js +33 -17
  277. package/node_modules/@apollo/client/cache/inmemory/writeToStore.js.map +1 -1
  278. package/node_modules/@apollo/client/core/ApolloClient.js +14 -14
  279. package/node_modules/@apollo/client/core/ObservableQuery.js +8 -8
  280. package/node_modules/@apollo/client/core/QueryInfo.d.ts +1 -1
  281. package/node_modules/@apollo/client/core/QueryInfo.js +23 -34
  282. package/node_modules/@apollo/client/core/QueryInfo.js.map +1 -1
  283. package/node_modules/@apollo/client/core/QueryManager.js +22 -15
  284. package/node_modules/@apollo/client/core/QueryManager.js.map +1 -1
  285. package/node_modules/@apollo/client/core/RefetchEventManager.js +3 -3
  286. package/node_modules/@apollo/client/incremental/handlers/defer20220824.d.ts +5 -1
  287. package/node_modules/@apollo/client/incremental/handlers/defer20220824.js +15 -2
  288. package/node_modules/@apollo/client/incremental/handlers/defer20220824.js.map +1 -1
  289. package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.d.ts +23 -12
  290. package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.js +58 -14
  291. package/node_modules/@apollo/client/incremental/handlers/graphql17Alpha9.js.map +1 -1
  292. package/node_modules/@apollo/client/incremental/handlers/notImplemented.js +1 -1
  293. package/node_modules/@apollo/client/incremental/types.d.ts +19 -1
  294. package/node_modules/@apollo/client/incremental/types.js.map +1 -1
  295. package/node_modules/@apollo/client/invariantErrorCodes.js +64 -58
  296. package/node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js +1 -1
  297. package/node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js.map +1 -1
  298. package/node_modules/@apollo/client/package.json +1 -1
  299. package/node_modules/@apollo/client/react/hooks/useFragment.d.ts +42 -43
  300. package/node_modules/@apollo/client/react/hooks/useFragment.js.map +1 -1
  301. package/node_modules/@apollo/client/react/hooks-compiled/useFragment.d.ts +42 -43
  302. package/node_modules/@apollo/client/react/hooks-compiled/useFragment.js.map +1 -1
  303. package/node_modules/@apollo/client/utilities/internal/index.d.ts +0 -1
  304. package/node_modules/@apollo/client/utilities/internal/index.js.map +1 -1
  305. package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.d.ts +1 -1
  306. package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.js +23 -25
  307. package/node_modules/@apollo/client/utilities/internal/isDeferredFragment.js.map +1 -1
  308. package/node_modules/@apollo/client/utilities/internal/isStreamField.d.ts +1 -1
  309. package/node_modules/@apollo/client/utilities/internal/isStreamField.js +23 -19
  310. package/node_modules/@apollo/client/utilities/internal/isStreamField.js.map +1 -1
  311. package/node_modules/@apollo/client/version.js +1 -1
  312. package/node_modules/@automattic/vip-search-replace/README.md +6 -1
  313. package/node_modules/@automattic/vip-search-replace/lib/index.js +46 -14
  314. package/node_modules/@automattic/vip-search-replace/package.json +1 -1
  315. package/node_modules/@types/node/README.md +1 -1
  316. package/node_modules/@types/node/crypto.d.ts +2 -2
  317. package/node_modules/@types/node/dgram.d.ts +1 -1
  318. package/node_modules/@types/node/package.json +2 -2
  319. package/node_modules/@types/node/util.d.ts +6 -3
  320. package/node_modules/@types/node/zlib.d.ts +758 -0
  321. package/node_modules/axios/CHANGELOG.md +62 -0
  322. package/node_modules/axios/README.md +297 -5
  323. package/node_modules/axios/dist/axios.js +728 -170
  324. package/node_modules/axios/dist/axios.min.js +3 -3
  325. package/node_modules/axios/dist/axios.min.js.map +1 -1
  326. package/node_modules/axios/dist/browser/axios.cjs +871 -188
  327. package/node_modules/axios/dist/esm/axios.js +871 -188
  328. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  329. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  330. package/node_modules/axios/dist/node/axios.cjs +1037 -225
  331. package/node_modules/axios/index.d.cts +102 -74
  332. package/node_modules/axios/index.d.ts +100 -68
  333. package/node_modules/axios/lib/adapters/fetch.js +64 -11
  334. package/node_modules/axios/lib/adapters/http.js +140 -67
  335. package/node_modules/axios/lib/adapters/xhr.js +52 -3
  336. package/node_modules/axios/lib/core/Axios.js +43 -20
  337. package/node_modules/axios/lib/core/AxiosError.js +33 -2
  338. package/node_modules/axios/lib/core/AxiosHeaders.js +124 -1
  339. package/node_modules/axios/lib/core/InterceptorManager.js +107 -8
  340. package/node_modules/axios/lib/core/buildFullPath.js +41 -15
  341. package/node_modules/axios/lib/core/dispatchRequest.js +8 -2
  342. package/node_modules/axios/lib/core/mergeConfig.js +19 -4
  343. package/node_modules/axios/lib/core/methodList.js +17 -0
  344. package/node_modules/axios/lib/core/setFormDataHeaders.js +27 -0
  345. package/node_modules/axios/lib/defaults/index.js +2 -1
  346. package/node_modules/axios/lib/env/data.js +1 -1
  347. package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -0
  348. package/node_modules/axios/lib/helpers/HttpStatusCode.js +12 -1
  349. package/node_modules/axios/lib/helpers/combineURLs.js +11 -3
  350. package/node_modules/axios/lib/helpers/composeSignals.js +12 -1
  351. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +115 -54
  352. package/node_modules/axios/lib/helpers/formDataToJSON.js +11 -5
  353. package/node_modules/axios/lib/helpers/fromDataURI.js +5 -4
  354. package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
  355. package/node_modules/axios/lib/helpers/parseHeaders.js +5 -3
  356. package/node_modules/axios/lib/helpers/progressEventReducer.js +4 -4
  357. package/node_modules/axios/lib/helpers/resolveConfig.js +5 -17
  358. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +300 -5
  359. package/node_modules/axios/lib/helpers/throttle.js +3 -2
  360. package/node_modules/axios/lib/helpers/toFormData.js +17 -23
  361. package/node_modules/axios/lib/platform/node/classes/Buffer.js +11 -0
  362. package/node_modules/axios/lib/utils.js +151 -18
  363. package/node_modules/axios/package.json +21 -19
  364. package/node_modules/chalk/package.json +1 -1
  365. package/node_modules/chalk/source/index.js +2 -1
  366. package/node_modules/check-disk-space/README.md +92 -32
  367. package/node_modules/check-disk-space/dist/check-disk-space.d.mts +58 -0
  368. package/node_modules/check-disk-space/dist/check-disk-space.mjs +170 -190
  369. package/node_modules/check-disk-space/package.json +43 -71
  370. package/node_modules/cpu-features/build/Makefile +2 -2
  371. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/filesystem.o.d +1 -1
  372. 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
  373. 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
  374. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_windows.o.d +1 -1
  375. 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
  376. 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
  377. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_ppc_linux.o.d +1 -1
  378. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_freebsd.o.d +1 -1
  379. 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
  380. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_macos.o.d +1 -1
  381. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_windows.o.d +1 -1
  382. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/stack_line_reader.o.d +1 -1
  383. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/string_view.o.d +1 -1
  384. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpufeatures/src/binding.o.d +157 -145
  385. package/node_modules/cpu-features/build/Release/cpufeatures.node +0 -0
  386. package/node_modules/cpu-features/build/Release/obj.target/cpufeatures/src/binding.o +0 -0
  387. package/node_modules/cpu-features/build/Release/obj.target/cpufeatures.node +0 -0
  388. package/node_modules/cpu-features/build/config.gypi +100 -31
  389. package/node_modules/cpu-features/build/cpufeatures.target.mk +14 -14
  390. package/node_modules/cpu-features/build/deps/cpu_features/cpu_features.target.mk +14 -14
  391. package/node_modules/ejs/README.md +64 -28
  392. package/node_modules/ejs/bin/cli.js +220 -158
  393. package/node_modules/ejs/ejs.js +64 -94
  394. package/node_modules/ejs/ejs.min.js +1 -1
  395. package/node_modules/ejs/jakefile.js +44 -0
  396. package/node_modules/ejs/lib/cjs/ejs.js +64 -63
  397. package/node_modules/ejs/lib/cjs/parseargs.js +129 -77
  398. package/node_modules/ejs/lib/cjs/utils.js +0 -31
  399. package/node_modules/ejs/lib/esm/ejs.js +66 -65
  400. package/node_modules/ejs/lib/esm/parseargs.js +136 -82
  401. package/node_modules/ejs/lib/esm/utils.js +0 -32
  402. package/node_modules/ejs/package.json +3 -2
  403. package/node_modules/ejs/usage.txt +9 -9
  404. package/node_modules/follow-redirects/index.js +10 -1
  405. package/node_modules/follow-redirects/package.json +1 -1
  406. package/node_modules/graphql-ws/dist/client.cjs +28 -13
  407. package/node_modules/graphql-ws/dist/client.js +28 -13
  408. package/node_modules/graphql-ws/dist/index.cjs +1 -1
  409. package/node_modules/graphql-ws/dist/index.d.cts +1 -1
  410. package/node_modules/graphql-ws/dist/index.d.ts +1 -1
  411. package/node_modules/graphql-ws/dist/index.js +1 -1
  412. package/node_modules/graphql-ws/dist/{server-B8ZBs9OC.d.ts → server-BzBeHlSW.d.ts} +26 -1
  413. package/node_modules/graphql-ws/dist/{server-DN5-9C2B.cjs → server-Ce-Z86Ys.cjs} +10 -4
  414. package/node_modules/graphql-ws/dist/{server-ChpuX357.d.cts → server-u6zrlwzL.d.cts} +26 -1
  415. package/node_modules/graphql-ws/dist/{server-DHPI7HHW.js → server-zBhvXJ_Z.js} +10 -4
  416. package/node_modules/graphql-ws/dist/use/@fastify/websocket.cjs +2 -2
  417. package/node_modules/graphql-ws/dist/use/@fastify/websocket.d.cts +8 -2
  418. package/node_modules/graphql-ws/dist/use/@fastify/websocket.d.ts +8 -2
  419. package/node_modules/graphql-ws/dist/use/@fastify/websocket.js +2 -2
  420. package/node_modules/graphql-ws/dist/use/bun.cjs +1 -1
  421. package/node_modules/graphql-ws/dist/use/bun.d.cts +2 -2
  422. package/node_modules/graphql-ws/dist/use/bun.d.ts +2 -2
  423. package/node_modules/graphql-ws/dist/use/bun.js +2 -2
  424. package/node_modules/graphql-ws/dist/use/crossws.cjs +16 -4
  425. package/node_modules/graphql-ws/dist/use/crossws.d.cts +6 -1
  426. package/node_modules/graphql-ws/dist/use/crossws.d.ts +6 -1
  427. package/node_modules/graphql-ws/dist/use/crossws.js +16 -4
  428. package/node_modules/graphql-ws/dist/use/deno.d.ts +1 -1
  429. package/node_modules/graphql-ws/dist/use/deno.js +1 -1
  430. package/node_modules/graphql-ws/dist/use/uWebSockets.cjs +2 -2
  431. package/node_modules/graphql-ws/dist/use/uWebSockets.d.cts +8 -2
  432. package/node_modules/graphql-ws/dist/use/uWebSockets.d.ts +8 -2
  433. package/node_modules/graphql-ws/dist/use/uWebSockets.js +2 -2
  434. package/node_modules/graphql-ws/dist/use/ws.cjs +2 -2
  435. package/node_modules/graphql-ws/dist/use/ws.d.cts +8 -2
  436. package/node_modules/graphql-ws/dist/use/ws.d.ts +8 -2
  437. package/node_modules/graphql-ws/dist/use/ws.js +2 -2
  438. package/node_modules/graphql-ws/package.json +3 -3
  439. package/node_modules/graphql-ws/umd/graphql-ws.js +28 -13
  440. package/node_modules/graphql-ws/umd/graphql-ws.min.js +1 -1
  441. package/node_modules/graphql-ws/umd/graphql-ws.min.js.gz +0 -0
  442. package/node_modules/js-yaml/dist/browser/js-yaml.esm.min.mjs +522 -495
  443. package/node_modules/js-yaml/dist/browser/js-yaml.esm.min.mjs.map +1 -1
  444. package/node_modules/js-yaml/dist/browser/js-yaml.umd.min.js +24 -24
  445. package/node_modules/js-yaml/dist/browser/js-yaml.umd.min.js.map +1 -1
  446. package/node_modules/js-yaml/dist/js-yaml.cjs.js +135 -78
  447. package/node_modules/js-yaml/dist/js-yaml.cjs.js.map +1 -1
  448. package/node_modules/js-yaml/dist/js-yaml.mjs +129 -72
  449. package/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
  450. package/node_modules/js-yaml/node_modules/argparse/LICENSE +47 -0
  451. package/node_modules/js-yaml/node_modules/argparse/README.md +89 -0
  452. package/node_modules/js-yaml/node_modules/argparse/lib/_colorize.js +72 -0
  453. package/node_modules/js-yaml/node_modules/argparse/lib/argparse.d.ts +292 -0
  454. package/node_modules/{argparse → js-yaml/node_modules/argparse/lib}/argparse.js +1142 -1029
  455. package/node_modules/js-yaml/node_modules/argparse/lib/difflib.js +190 -0
  456. package/node_modules/{argparse → js-yaml/node_modules/argparse}/lib/sub.js +4 -4
  457. package/node_modules/{argparse → js-yaml/node_modules/argparse}/lib/textwrap.js +28 -28
  458. package/node_modules/js-yaml/node_modules/argparse/package.json +38 -0
  459. package/node_modules/js-yaml/package.json +12 -12
  460. package/node_modules/lando/.github/dependabot.yml +4 -0
  461. package/node_modules/lando/.github/workflows/build-util-images.yml +1 -1
  462. package/node_modules/lando/.github/workflows/pr-core-tests.yml +4 -2
  463. package/node_modules/lando/.github/workflows/pr-db-tools-tests.yml +4 -2
  464. package/node_modules/lando/.github/workflows/pr-django-tests.yml +4 -2
  465. package/node_modules/lando/.github/workflows/pr-linter.yml +2 -2
  466. package/node_modules/lando/.github/workflows/pr-unit-tests.yml +2 -2
  467. package/node_modules/lando/.node-version +1 -1
  468. package/node_modules/lando/bin/lando.js +3 -83
  469. package/node_modules/lando/config.yml +0 -1
  470. package/node_modules/lando/eslint.config.mjs +4 -0
  471. package/node_modules/lando/examples/django/.lando.yml +1 -1
  472. package/node_modules/lando/examples/django/README.md +1 -1
  473. package/node_modules/lando/examples/django/requirements.txt +1 -1
  474. package/node_modules/lando/examples/sql-export/README.md +5 -0
  475. package/node_modules/lando/lib/app.js +78 -84
  476. package/node_modules/lando/lib/art.js +86 -30
  477. package/node_modules/lando/lib/bootstrap.js +148 -45
  478. package/node_modules/lando/lib/cache.js +14 -15
  479. package/node_modules/lando/lib/cli.js +67 -63
  480. package/node_modules/lando/lib/compose.js +76 -45
  481. package/node_modules/lando/lib/config.js +51 -33
  482. package/node_modules/lando/lib/daemon.js +27 -10
  483. package/node_modules/lando/lib/docker.js +46 -19
  484. package/node_modules/lando/lib/engine.js +131 -144
  485. package/node_modules/lando/lib/env.js +25 -46
  486. package/node_modules/lando/lib/error.js +15 -6
  487. package/node_modules/lando/lib/esm/package.json +3 -0
  488. package/node_modules/lando/lib/esm/string-argv.js +2 -0
  489. package/node_modules/lando/lib/esm/yargs.js +2 -0
  490. package/node_modules/lando/lib/events.js +15 -15
  491. package/node_modules/lando/lib/factory.js +43 -14
  492. package/node_modules/lando/lib/formatters.js +19 -31
  493. package/node_modules/lando/lib/lando.js +59 -48
  494. package/node_modules/lando/lib/logger.js +12 -24
  495. package/node_modules/lando/lib/plugins.js +27 -15
  496. package/node_modules/lando/lib/promise.js +17 -17
  497. package/node_modules/lando/lib/router.js +75 -21
  498. package/node_modules/lando/lib/scan.js +29 -12
  499. package/node_modules/lando/lib/shell.js +44 -20
  500. package/node_modules/lando/lib/user.js +14 -20
  501. package/node_modules/lando/lib/utils.js +87 -44
  502. package/node_modules/lando/lib/yaml.js +11 -9
  503. package/node_modules/lando/node_modules/ansi-regex/index.d.ts +33 -0
  504. package/node_modules/lando/node_modules/ansi-regex/index.js +15 -0
  505. package/node_modules/lando/node_modules/ansi-regex/package.json +61 -0
  506. package/node_modules/lando/node_modules/ansi-regex/readme.md +66 -0
  507. package/node_modules/lando/node_modules/cliui/README.md +26 -6
  508. package/node_modules/lando/node_modules/cliui/build/lib/index.js +2 -2
  509. package/node_modules/lando/node_modules/cliui/build/tsconfig.tsbuildinfo +1 -0
  510. package/node_modules/lando/node_modules/cliui/index.mjs +7 -5
  511. package/node_modules/lando/node_modules/cliui/node_modules/string-width/index.d.ts +39 -0
  512. package/node_modules/lando/node_modules/cliui/node_modules/string-width/index.js +82 -0
  513. package/node_modules/lando/node_modules/cliui/node_modules/string-width/license +9 -0
  514. package/node_modules/lando/node_modules/cliui/node_modules/string-width/package.json +64 -0
  515. package/node_modules/lando/node_modules/cliui/node_modules/string-width/readme.md +66 -0
  516. package/node_modules/lando/node_modules/cliui/package.json +21 -32
  517. package/node_modules/lando/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  518. package/node_modules/lando/node_modules/emoji-regex/README.md +107 -0
  519. package/node_modules/lando/node_modules/emoji-regex/index.d.ts +3 -0
  520. package/node_modules/lando/node_modules/emoji-regex/index.js +4 -0
  521. package/node_modules/lando/node_modules/emoji-regex/index.mjs +4 -0
  522. package/node_modules/lando/node_modules/emoji-regex/package.json +45 -0
  523. package/node_modules/lando/node_modules/string-width/index.d.ts +39 -0
  524. package/node_modules/lando/node_modules/string-width/index.js +203 -0
  525. package/node_modules/lando/node_modules/string-width/license +9 -0
  526. package/node_modules/lando/node_modules/string-width/package.json +65 -0
  527. package/node_modules/lando/node_modules/string-width/readme.md +66 -0
  528. package/node_modules/lando/node_modules/strip-ansi/index.d.ts +15 -0
  529. package/node_modules/lando/node_modules/strip-ansi/index.js +19 -0
  530. package/node_modules/lando/node_modules/strip-ansi/license +9 -0
  531. package/node_modules/lando/node_modules/strip-ansi/package.json +59 -0
  532. package/node_modules/lando/node_modules/strip-ansi/readme.md +37 -0
  533. package/node_modules/lando/node_modules/yargs/README.md +16 -36
  534. package/node_modules/lando/node_modules/yargs/browser.d.ts +5 -0
  535. package/node_modules/lando/node_modules/yargs/browser.mjs +2 -2
  536. package/node_modules/lando/node_modules/yargs/build/lib/command.js +308 -211
  537. package/node_modules/lando/node_modules/yargs/build/lib/completion-templates.js +28 -9
  538. package/node_modules/lando/node_modules/yargs/build/lib/completion.js +233 -91
  539. package/node_modules/lando/node_modules/yargs/build/lib/middleware.js +51 -16
  540. package/node_modules/lando/node_modules/yargs/build/lib/usage.js +88 -52
  541. package/node_modules/lando/node_modules/yargs/build/lib/utils/apply-extends.js +4 -2
  542. package/node_modules/lando/node_modules/yargs/build/lib/utils/levenshtein.js +9 -1
  543. package/node_modules/lando/node_modules/yargs/build/lib/utils/maybe-async-result.js +17 -0
  544. package/node_modules/lando/node_modules/yargs/build/lib/validation.js +51 -54
  545. package/node_modules/lando/node_modules/yargs/build/lib/yargs-factory.js +1261 -887
  546. package/node_modules/lando/node_modules/yargs/build/lib/yerror.js +3 -1
  547. package/node_modules/lando/node_modules/yargs/index.mjs +4 -2
  548. package/node_modules/lando/node_modules/yargs/lib/platform-shims/browser.mjs +9 -2
  549. package/node_modules/lando/node_modules/yargs/lib/platform-shims/esm.mjs +22 -22
  550. package/node_modules/lando/node_modules/yargs/locales/cs.json +51 -0
  551. package/node_modules/lando/node_modules/yargs/locales/de.json +1 -1
  552. package/node_modules/lando/node_modules/yargs/locales/en.json +4 -0
  553. package/node_modules/lando/node_modules/yargs/locales/fi.json +1 -1
  554. package/node_modules/lando/node_modules/yargs/locales/he.json +55 -0
  555. package/node_modules/lando/node_modules/yargs/locales/ka.json +55 -0
  556. package/node_modules/lando/node_modules/yargs/locales/ko.json +25 -25
  557. package/node_modules/lando/node_modules/yargs/locales/ru.json +6 -1
  558. package/node_modules/lando/node_modules/yargs/locales/uk_UA.json +51 -0
  559. package/node_modules/lando/node_modules/yargs/locales/uz.json +52 -0
  560. package/node_modules/lando/node_modules/yargs/locales/zh_TW.json +50 -46
  561. package/node_modules/lando/node_modules/yargs/package.json +41 -60
  562. package/node_modules/lando/node_modules/yargs-parser/build/lib/index.js +13 -8
  563. package/node_modules/lando/node_modules/yargs-parser/build/lib/yargs-parser.js +21 -12
  564. package/node_modules/lando/node_modules/yargs-parser/package.json +31 -40
  565. package/node_modules/lando/package.json +59 -22
  566. package/node_modules/lando/plugins/lando-compose/index.js +4 -0
  567. package/node_modules/lando/plugins/lando-compose/lib/utils.js +16 -7
  568. package/node_modules/lando/plugins/lando-core/index.js +1 -2
  569. package/node_modules/lando/plugins/lando-core/lib/utils.js +35 -15
  570. package/node_modules/lando/plugins/lando-core/lib/warnings.js +27 -0
  571. package/node_modules/lando/plugins/lando-core/tasks/destroy.js +1 -1
  572. package/node_modules/lando/plugins/lando-core/tasks/rebuild.js +1 -1
  573. package/node_modules/lando/plugins/lando-events/index.js +4 -0
  574. package/node_modules/lando/plugins/lando-events/lib/utils.js +27 -6
  575. package/node_modules/lando/plugins/lando-networking/app.js +2 -2
  576. package/node_modules/lando/plugins/lando-networking/index.js +9 -2
  577. package/node_modules/lando/plugins/lando-networking/test/app.spec.js +87 -0
  578. package/node_modules/lando/plugins/lando-proxy/index.js +6 -1
  579. package/node_modules/lando/plugins/lando-proxy/lib/utils.js +63 -28
  580. package/node_modules/lando/plugins/lando-proxy/lib/warnings.js +10 -0
  581. package/node_modules/lando/plugins/lando-recipes/index.js +4 -0
  582. package/node_modules/lando/plugins/lando-recipes/lib/build.js +22 -4
  583. package/node_modules/lando/plugins/lando-recipes/lib/options.js +42 -66
  584. package/node_modules/lando/plugins/lando-recipes/lib/utils.js +30 -13
  585. package/node_modules/lando/plugins/lando-recipes/lib/warnings.js +5 -0
  586. package/node_modules/lando/plugins/lando-recipes/sources/remote.js +0 -26
  587. package/node_modules/lando/plugins/lando-recipes/tasks/init.js +1 -1
  588. package/node_modules/lando/plugins/lando-services/index.js +4 -0
  589. package/node_modules/lando/plugins/lando-services/lib/utils.js +38 -15
  590. package/node_modules/lando/plugins/lando-sharing/index.js +4 -0
  591. package/node_modules/lando/plugins/lando-sharing/lib/utils.js +28 -5
  592. package/node_modules/lando/plugins/lando-tooling/index.js +5 -0
  593. package/node_modules/lando/plugins/lando-tooling/lib/build.js +5 -2
  594. package/node_modules/lando/plugins/lando-tooling/lib/utils.js +83 -47
  595. package/node_modules/lando/test/cli.spec.js +59 -21
  596. package/node_modules/lando/test/docker.spec.js +24 -28
  597. package/node_modules/lando/test/env.spec.js +8 -0
  598. package/node_modules/lando/test/error.spec.js +1 -1
  599. package/node_modules/lando/test/events.spec.js +6 -7
  600. package/node_modules/lando/test/lando.spec.js +1 -1
  601. package/node_modules/lando/test/plugins.spec.js +2 -3
  602. package/node_modules/lando/test/promise.spec.js +1 -1
  603. package/node_modules/lando/test/scan.spec.js +1 -1
  604. package/node_modules/lando/test/shell.spec.js +19 -2
  605. package/node_modules/lando/test/utils.spec.js +52 -0
  606. package/node_modules/open/index.js +3 -5
  607. package/node_modules/open/package.json +1 -1
  608. package/node_modules/ssh2/lib/protocol/crypto/build/Makefile +2 -2
  609. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d.raw +136 -0
  610. package/node_modules/ssh2/lib/protocol/crypto/build/sshcrypto.target.mk +14 -14
  611. package/node_modules/string-argv/CHANGELOG.md +38 -0
  612. package/node_modules/string-argv/README.md +96 -50
  613. package/node_modules/string-argv/index.d.ts +2 -0
  614. package/node_modules/string-argv/index.js +55 -35
  615. package/node_modules/string-argv/package.json +50 -40
  616. package/node_modules/undici/README.md +25 -3
  617. package/node_modules/undici/docs/docs/api/CacheStore.md +24 -9
  618. package/node_modules/undici/docs/docs/api/Client.md +11 -6
  619. package/node_modules/undici/docs/docs/api/Dispatcher.md +3 -0
  620. package/node_modules/undici/docs/docs/api/Errors.md +76 -1
  621. package/node_modules/undici/docs/docs/api/H2CClient.md +3 -2
  622. package/node_modules/undici/docs/docs/api/Interceptors.md +28 -8
  623. package/node_modules/undici/docs/docs/api/RedirectHandler.md +13 -10
  624. package/node_modules/undici/docs/docs/index.md +12 -12
  625. package/node_modules/undici/docs/docs/type-map.json +66 -66
  626. package/node_modules/undici/lib/cache/memory-cache-store.js +48 -13
  627. package/node_modules/undici/lib/cache/sqlite-cache-store.js +83 -5
  628. package/node_modules/undici/lib/core/connect.js +10 -4
  629. package/node_modules/undici/lib/core/constants.js +12 -1
  630. package/node_modules/undici/lib/core/errors.js +38 -1
  631. package/node_modules/undici/lib/core/request.js +16 -1
  632. package/node_modules/undici/lib/core/symbols.js +2 -0
  633. package/node_modules/undici/lib/core/util.js +26 -1
  634. package/node_modules/undici/lib/dispatcher/agent.js +6 -2
  635. package/node_modules/undici/lib/dispatcher/client-h1.js +116 -80
  636. package/node_modules/undici/lib/dispatcher/client-h2.js +124 -17
  637. package/node_modules/undici/lib/dispatcher/client.js +4 -1
  638. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +3 -2
  639. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +20 -3
  640. package/node_modules/undici/lib/dispatcher/parser-h1.js +1064 -0
  641. package/node_modules/undici/lib/dispatcher/pool-base.js +85 -31
  642. package/node_modules/undici/lib/dispatcher/pool.js +11 -8
  643. package/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -8
  644. package/node_modules/undici/lib/dispatcher/retry-agent.js +10 -0
  645. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +15 -5
  646. package/node_modules/undici/lib/handler/cache-handler.js +153 -15
  647. package/node_modules/undici/lib/handler/deduplication-handler.js +112 -51
  648. package/node_modules/undici/lib/handler/redirect-handler.js +28 -8
  649. package/node_modules/undici/lib/handler/retry-handler.js +44 -11
  650. package/node_modules/undici/lib/interceptor/cache.js +11 -3
  651. package/node_modules/undici/lib/interceptor/decompress.js +22 -9
  652. package/node_modules/undici/lib/interceptor/dns.js +11 -0
  653. package/node_modules/undici/lib/interceptor/response-error.js +72 -28
  654. package/node_modules/undici/lib/milo/LICENSE.md +7 -0
  655. package/node_modules/undici/lib/milo/no-simd.js +1002 -0
  656. package/node_modules/undici/lib/milo/simd.js +1002 -0
  657. package/node_modules/undici/lib/mock/mock-agent.js +11 -0
  658. package/node_modules/undici/lib/mock/snapshot-recorder.js +3 -2
  659. package/node_modules/undici/lib/mock/snapshot-utils.js +3 -2
  660. package/node_modules/undici/lib/util/cache.js +11 -5
  661. package/node_modules/undici/lib/web/cookies/util.js +19 -2
  662. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +69 -15
  663. package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -2
  664. package/node_modules/undici/lib/web/fetch/body.js +47 -38
  665. package/node_modules/undici/lib/web/fetch/formdata-parser.js +12 -4
  666. package/node_modules/undici/lib/web/fetch/headers.js +2 -2
  667. package/node_modules/undici/lib/web/fetch/index.js +8 -4
  668. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  669. package/node_modules/undici/lib/web/websocket/receiver.js +25 -4
  670. package/node_modules/undici/package.json +9 -7
  671. package/node_modules/undici/types/api.d.ts +1 -1
  672. package/node_modules/undici/types/cache-interceptor.d.ts +10 -0
  673. package/node_modules/undici/types/client.d.ts +10 -4
  674. package/node_modules/undici/types/errors.d.ts +16 -1
  675. package/node_modules/undici/types/h2c-client.d.ts +1 -1
  676. package/node_modules/undici/types/interceptors.d.ts +6 -1
  677. package/node_modules/undici/types/utility.d.ts +4 -4
  678. package/node_modules/{fetch-retry → unicode-segmenter}/LICENSE +2 -2
  679. package/node_modules/unicode-segmenter/README.md +324 -0
  680. package/node_modules/unicode-segmenter/_emoji_data.cjs +24 -0
  681. package/node_modules/unicode-segmenter/_emoji_data.d.cts +1 -0
  682. package/node_modules/unicode-segmenter/_emoji_data.d.ts +12 -0
  683. package/node_modules/unicode-segmenter/_emoji_data.js +26 -0
  684. package/node_modules/unicode-segmenter/_general_data.cjs +30 -0
  685. package/node_modules/unicode-segmenter/_general_data.d.cts +1 -0
  686. package/node_modules/unicode-segmenter/_general_data.d.ts +16 -0
  687. package/node_modules/unicode-segmenter/_general_data.js +34 -0
  688. package/node_modules/unicode-segmenter/_grapheme_data.cjs +125 -0
  689. package/node_modules/unicode-segmenter/_grapheme_data.d.cts +1 -0
  690. package/node_modules/unicode-segmenter/_grapheme_data.d.ts +112 -0
  691. package/node_modules/unicode-segmenter/_grapheme_data.js +123 -0
  692. package/node_modules/unicode-segmenter/core.cjs +135 -0
  693. package/node_modules/unicode-segmenter/core.d.cts +1 -0
  694. package/node_modules/unicode-segmenter/core.d.ts +118 -0
  695. package/node_modules/unicode-segmenter/core.js +129 -0
  696. package/node_modules/unicode-segmenter/emoji.cjs +43 -0
  697. package/node_modules/unicode-segmenter/emoji.d.cts +1 -0
  698. package/node_modules/unicode-segmenter/emoji.d.ts +23 -0
  699. package/node_modules/unicode-segmenter/emoji.js +42 -0
  700. package/node_modules/unicode-segmenter/general.cjs +51 -0
  701. package/node_modules/unicode-segmenter/general.d.cts +1 -0
  702. package/node_modules/unicode-segmenter/general.d.ts +26 -0
  703. package/node_modules/unicode-segmenter/general.js +50 -0
  704. package/node_modules/unicode-segmenter/grapheme.cjs +405 -0
  705. package/node_modules/unicode-segmenter/grapheme.d.cts +1 -0
  706. package/node_modules/unicode-segmenter/grapheme.d.ts +64 -0
  707. package/node_modules/unicode-segmenter/grapheme.js +438 -0
  708. package/node_modules/unicode-segmenter/index.cjs +26 -0
  709. package/node_modules/unicode-segmenter/index.d.cts +1 -0
  710. package/node_modules/unicode-segmenter/index.d.ts +4 -0
  711. package/node_modules/unicode-segmenter/index.js +6 -0
  712. package/node_modules/unicode-segmenter/intl-adapter.cjs +124 -0
  713. package/node_modules/unicode-segmenter/intl-adapter.d.cts +1 -0
  714. package/node_modules/unicode-segmenter/intl-adapter.d.ts +62 -0
  715. package/node_modules/unicode-segmenter/intl-adapter.js +113 -0
  716. package/node_modules/unicode-segmenter/intl-polyfill.cjs +17 -0
  717. package/node_modules/unicode-segmenter/intl-polyfill.d.cts +1 -0
  718. package/node_modules/unicode-segmenter/intl-polyfill.d.ts +1 -0
  719. package/node_modules/unicode-segmenter/intl-polyfill.js +16 -0
  720. package/node_modules/unicode-segmenter/package.json +165 -0
  721. package/node_modules/unicode-segmenter/utils.cjs +99 -0
  722. package/node_modules/unicode-segmenter/utils.d.cts +1 -0
  723. package/node_modules/unicode-segmenter/utils.d.ts +64 -0
  724. package/node_modules/unicode-segmenter/utils.js +89 -0
  725. package/package.json +48 -17
  726. package/.buildkite/build-linux.sh +0 -68
  727. package/.buildkite/build-macos-installer.sh +0 -34
  728. package/.buildkite/build-macos.sh +0 -67
  729. package/.buildkite/build-windows-installer.ps1 +0 -65
  730. package/.buildkite/build-windows.ps1 +0 -59
  731. package/.buildkite/fetch-search-replace.sh +0 -65
  732. package/.buildkite/pack-release.sh +0 -26
  733. package/.buildkite/pipeline.yml +0 -81
  734. package/.buildkite/shared-pipeline-vars +0 -16
  735. package/.buildkite/sign-windows.ps1 +0 -21
  736. package/.buildkite/test-windows-installer-download.ps1 +0 -54
  737. package/.buildkite/test_pipeline.py +0 -69
  738. package/.bundle/config +0 -4
  739. package/.editorconfig +0 -11
  740. package/.prettierignore +0 -13
  741. package/.ruby-version +0 -1
  742. package/.sonarcloud.properties +0 -2
  743. package/.xcode-version +0 -1
  744. package/AGENTS.md +0 -101
  745. package/CLAUDE.md +0 -4
  746. package/Gemfile +0 -8
  747. package/Gemfile.lock +0 -377
  748. package/Makefile +0 -293
  749. package/cmd/installer-payload/main.go +0 -19
  750. package/cmd/installer-version/main.go +0 -22
  751. package/cmd/stamp-version/main.go +0 -25
  752. package/cmd/vip-next/auth_bootstrap.go +0 -139
  753. package/cmd/vip-next/auth_bootstrap_test.go +0 -379
  754. package/cmd/vip-next/auth_bypass_wiring_test.go +0 -162
  755. package/cmd/vip-next/cli_error_hook_test.go +0 -91
  756. package/cmd/vip-next/commands/app.go +0 -23
  757. package/cmd/vip-next/commands/app_debug_test.go +0 -89
  758. package/cmd/vip-next/commands/app_deploy.go +0 -217
  759. package/cmd/vip-next/commands/app_deploy_test.go +0 -297
  760. package/cmd/vip-next/commands/app_deploy_validate.go +0 -58
  761. package/cmd/vip-next/commands/app_get.go +0 -293
  762. package/cmd/vip-next/commands/app_get_test.go +0 -226
  763. package/cmd/vip-next/commands/app_list.go +0 -93
  764. package/cmd/vip-next/commands/app_list_test.go +0 -95
  765. package/cmd/vip-next/commands/backup.go +0 -16
  766. package/cmd/vip-next/commands/backup_db.go +0 -137
  767. package/cmd/vip-next/commands/backup_db_test.go +0 -187
  768. package/cmd/vip-next/commands/cache.go +0 -16
  769. package/cmd/vip-next/commands/cache_purge_url.go +0 -90
  770. package/cmd/vip-next/commands/cache_purge_url_test.go +0 -154
  771. package/cmd/vip-next/commands/config.go +0 -17
  772. package/cmd/vip-next/commands/config_debug_test.go +0 -137
  773. package/cmd/vip-next/commands/config_envvar.go +0 -16
  774. package/cmd/vip-next/commands/config_envvar_delete.go +0 -135
  775. package/cmd/vip-next/commands/config_envvar_delete_test.go +0 -140
  776. package/cmd/vip-next/commands/config_envvar_get.go +0 -72
  777. package/cmd/vip-next/commands/config_envvar_get_all.go +0 -58
  778. package/cmd/vip-next/commands/config_envvar_get_all_test.go +0 -83
  779. package/cmd/vip-next/commands/config_envvar_get_test.go +0 -79
  780. package/cmd/vip-next/commands/config_envvar_list.go +0 -70
  781. package/cmd/vip-next/commands/config_envvar_list_test.go +0 -134
  782. package/cmd/vip-next/commands/config_envvar_set.go +0 -162
  783. package/cmd/vip-next/commands/config_envvar_set_test.go +0 -251
  784. package/cmd/vip-next/commands/config_software.go +0 -229
  785. package/cmd/vip-next/commands/config_software_test.go +0 -161
  786. package/cmd/vip-next/commands/config_software_update.go +0 -270
  787. package/cmd/vip-next/commands/config_software_update_test.go +0 -334
  788. package/cmd/vip-next/commands/db.go +0 -16
  789. package/cmd/vip-next/commands/db_phpmyadmin.go +0 -122
  790. package/cmd/vip-next/commands/db_phpmyadmin_test.go +0 -277
  791. package/cmd/vip-next/commands/defensive_mode.go +0 -106
  792. package/cmd/vip-next/commands/defensive_mode_configure.go +0 -150
  793. package/cmd/vip-next/commands/defensive_mode_disable.go +0 -62
  794. package/cmd/vip-next/commands/defensive_mode_enable.go +0 -62
  795. package/cmd/vip-next/commands/defensive_mode_test.go +0 -389
  796. package/cmd/vip-next/commands/devenv.go +0 -49
  797. package/cmd/vip-next/commands/devenv_create_appinfo.go +0 -158
  798. package/cmd/vip-next/commands/devenv_create_appinfo_test.go +0 -29
  799. package/cmd/vip-next/commands/devenv_create_test.go +0 -269
  800. package/cmd/vip-next/commands/devenv_data.go +0 -86
  801. package/cmd/vip-next/commands/devenv_data_confirm_test.go +0 -49
  802. package/cmd/vip-next/commands/devenv_debug_test.go +0 -34
  803. package/cmd/vip-next/commands/devenv_e2e_gate_test.go +0 -17
  804. package/cmd/vip-next/commands/devenv_e2e_test.go +0 -34
  805. package/cmd/vip-next/commands/devenv_envvar.go +0 -186
  806. package/cmd/vip-next/commands/devenv_envvar_test.go +0 -183
  807. package/cmd/vip-next/commands/devenv_exec.go +0 -75
  808. package/cmd/vip-next/commands/devenv_exec_test.go +0 -39
  809. package/cmd/vip-next/commands/devenv_flag_grammar_test.go +0 -241
  810. package/cmd/vip-next/commands/devenv_lifecycle.go +0 -785
  811. package/cmd/vip-next/commands/devenv_logs.go +0 -29
  812. package/cmd/vip-next/commands/devenv_resolve.go +0 -118
  813. package/cmd/vip-next/commands/devenv_resolve_test.go +0 -221
  814. package/cmd/vip-next/commands/devenv_sync.go +0 -256
  815. package/cmd/vip-next/commands/devenv_sync_sites.go +0 -116
  816. package/cmd/vip-next/commands/devenv_sync_sites_test.go +0 -151
  817. package/cmd/vip-next/commands/devenv_sync_test.go +0 -63
  818. package/cmd/vip-next/commands/devenv_telemetry.go +0 -265
  819. package/cmd/vip-next/commands/devenv_telemetry_test.go +0 -322
  820. package/cmd/vip-next/commands/devenv_test.go +0 -60
  821. package/cmd/vip-next/commands/devenv_update.go +0 -207
  822. package/cmd/vip-next/commands/devenv_update_test.go +0 -109
  823. package/cmd/vip-next/commands/devenv_versions_proxy_test.go +0 -133
  824. package/cmd/vip-next/commands/edge_workers.go +0 -197
  825. package/cmd/vip-next/commands/edge_workers_flags.go +0 -56
  826. package/cmd/vip-next/commands/edge_workers_local.go +0 -127
  827. package/cmd/vip-next/commands/edge_workers_mutation.go +0 -130
  828. package/cmd/vip-next/commands/edge_workers_read.go +0 -103
  829. package/cmd/vip-next/commands/edge_workers_test.go +0 -272
  830. package/cmd/vip-next/commands/export.go +0 -16
  831. package/cmd/vip-next/commands/export_sql.go +0 -333
  832. package/cmd/vip-next/commands/export_sql_test.go +0 -321
  833. package/cmd/vip-next/commands/format_env.go +0 -17
  834. package/cmd/vip-next/commands/import.go +0 -19
  835. package/cmd/vip-next/commands/import_debug_test.go +0 -110
  836. package/cmd/vip-next/commands/import_media.go +0 -433
  837. package/cmd/vip-next/commands/import_media_abort.go +0 -76
  838. package/cmd/vip-next/commands/import_media_confirm.go +0 -83
  839. package/cmd/vip-next/commands/import_media_confirm_test.go +0 -249
  840. package/cmd/vip-next/commands/import_media_fetch_test.go +0 -98
  841. package/cmd/vip-next/commands/import_media_status.go +0 -58
  842. package/cmd/vip-next/commands/import_media_test.go +0 -370
  843. package/cmd/vip-next/commands/import_sql.go +0 -1161
  844. package/cmd/vip-next/commands/import_sql_status.go +0 -67
  845. package/cmd/vip-next/commands/import_sql_test.go +0 -746
  846. package/cmd/vip-next/commands/import_validate_files.go +0 -157
  847. package/cmd/vip-next/commands/import_validate_files_test.go +0 -157
  848. package/cmd/vip-next/commands/import_validate_sql.go +0 -207
  849. package/cmd/vip-next/commands/import_validate_sql_test.go +0 -293
  850. package/cmd/vip-next/commands/login.go +0 -53
  851. package/cmd/vip-next/commands/login_test.go +0 -25
  852. package/cmd/vip-next/commands/logout.go +0 -43
  853. package/cmd/vip-next/commands/logout_test.go +0 -158
  854. package/cmd/vip-next/commands/logs.go +0 -169
  855. package/cmd/vip-next/commands/logs_test.go +0 -174
  856. package/cmd/vip-next/commands/nodeflag_aliases.go +0 -59
  857. package/cmd/vip-next/commands/progress_renderer.go +0 -118
  858. package/cmd/vip-next/commands/progress_renderer_test.go +0 -28
  859. package/cmd/vip-next/commands/searchreplace.go +0 -75
  860. package/cmd/vip-next/commands/searchreplace_debug_test.go +0 -82
  861. package/cmd/vip-next/commands/searchreplace_test.go +0 -155
  862. package/cmd/vip-next/commands/slowlogs.go +0 -167
  863. package/cmd/vip-next/commands/slowlogs_test.go +0 -159
  864. package/cmd/vip-next/commands/sqlreport.go +0 -183
  865. package/cmd/vip-next/commands/sqlreport_test.go +0 -66
  866. package/cmd/vip-next/commands/sync.go +0 -189
  867. package/cmd/vip-next/commands/sync_confirm.go +0 -121
  868. package/cmd/vip-next/commands/sync_confirm_test.go +0 -202
  869. package/cmd/vip-next/commands/sync_render.go +0 -207
  870. package/cmd/vip-next/commands/sync_render_test.go +0 -101
  871. package/cmd/vip-next/commands/sync_test.go +0 -148
  872. package/cmd/vip-next/commands/update.go +0 -85
  873. package/cmd/vip-next/commands/update_test.go +0 -49
  874. package/cmd/vip-next/commands/whoami.go +0 -161
  875. package/cmd/vip-next/commands/whoami_debug_test.go +0 -79
  876. package/cmd/vip-next/commands/whoami_test.go +0 -85
  877. package/cmd/vip-next/commands/wp.go +0 -376
  878. package/cmd/vip-next/commands/wp_debug_test.go +0 -32
  879. package/cmd/vip-next/commands/wp_test.go +0 -276
  880. package/cmd/vip-next/debug_args.go +0 -63
  881. package/cmd/vip-next/debug_test.go +0 -122
  882. package/cmd/vip-next/edge_workers_test.go +0 -108
  883. package/cmd/vip-next/flags_node_parity_test.go +0 -434
  884. package/cmd/vip-next/main.go +0 -391
  885. package/cmd/vip-next/main_test.go +0 -202
  886. package/cmd/vip-next/pendo_wiring_test.go +0 -148
  887. package/cmd/vip-next/root.go +0 -211
  888. package/cmd/vip-next/update_bootstrap.go +0 -94
  889. package/cmd/vip-next/update_bootstrap_test.go +0 -85
  890. package/cmd/vip-next/update_integration_test.go +0 -137
  891. package/cmd/vip-next-prerelease/main.go +0 -108
  892. package/cmd/vip-next-prerelease/main_test.go +0 -46
  893. package/dist/lib/analytics/clients/client.js +0 -1
  894. package/dist/lib/analytics/clients/pendo.js +0 -78
  895. package/docs/ARCHITECTURE.md +0 -95
  896. package/docs/BUILD-SIGNING.md +0 -501
  897. package/docs/CHANGELOG.md +0 -1844
  898. package/docs/COMMANDER-MIGRATION.md +0 -45
  899. package/docs/CONTRIBUTING.md +0 -29
  900. package/docs/CUTOVER-BREAKING-CHANGES.md +0 -261
  901. package/docs/DEBUGGING.md +0 -94
  902. package/docs/EDGE-WORKERS.md +0 -256
  903. package/docs/GO-UPDATES.md +0 -97
  904. package/docs/NPM-RELEASE-RECOVERY.md +0 -47
  905. package/docs/RELEASING.md +0 -211
  906. package/docs/SECURITY.md +0 -9
  907. package/docs/SETUP.md +0 -154
  908. package/docs/TESTING.md +0 -67
  909. package/docs/decisions/0001-operation-scoped-elevated-token-reuse.md +0 -87
  910. package/docs/dev-env-windows-wsl-testing.md +0 -191
  911. package/docs/vip-next-vip-command-reference.md +0 -257
  912. package/docs/vip-wp-line-parse-dfa.dot +0 -31
  913. package/eslint.config.js +0 -35
  914. package/fastlane/Fastfile +0 -204
  915. package/fastlane/example.env +0 -8
  916. package/fastlane/test_signing.rb +0 -83
  917. package/go.mod +0 -39
  918. package/go.sum +0 -127
  919. package/helpers/check-version.js +0 -16
  920. package/internal/appctx/app_resolver.go +0 -202
  921. package/internal/appctx/app_resolver_test.go +0 -187
  922. package/internal/appctx/confirm.go +0 -180
  923. package/internal/appctx/confirm_payload_test.go +0 -201
  924. package/internal/appctx/confirm_test.go +0 -120
  925. package/internal/appctx/context.go +0 -94
  926. package/internal/appctx/context_test.go +0 -56
  927. package/internal/appctx/env_resolver.go +0 -110
  928. package/internal/appctx/env_resolver_test.go +0 -215
  929. package/internal/appctx/format.go +0 -72
  930. package/internal/appctx/format_test.go +0 -75
  931. package/internal/appctx/interactive.go +0 -50
  932. package/internal/appctx/interactive_test.go +0 -134
  933. package/internal/appctx/middleware.go +0 -56
  934. package/internal/appctx/middleware_test.go +0 -88
  935. package/internal/appctx/prompts.go +0 -70
  936. package/internal/appctx/prompts_test.go +0 -97
  937. package/internal/appctx/required_args.go +0 -24
  938. package/internal/appctx/required_args_test.go +0 -38
  939. package/internal/appctx/telemetry.go +0 -22
  940. package/internal/appctx/telemetry_test.go +0 -42
  941. package/internal/appctx/wildcard.go +0 -29
  942. package/internal/appctx/wildcard_test.go +0 -53
  943. package/internal/auth/bypass.go +0 -84
  944. package/internal/auth/bypass_test.go +0 -97
  945. package/internal/auth/login.go +0 -156
  946. package/internal/auth/login_test.go +0 -184
  947. package/internal/auth/logout.go +0 -44
  948. package/internal/auth/logout_test.go +0 -78
  949. package/internal/auth/store.go +0 -130
  950. package/internal/auth/store_test.go +0 -339
  951. package/internal/auth/token.go +0 -117
  952. package/internal/auth/token_test.go +0 -90
  953. package/internal/backup/backup.go +0 -194
  954. package/internal/backup/backup_test.go +0 -228
  955. package/internal/cachepurge/cachepurge.go +0 -38
  956. package/internal/cachepurge/cachepurge_test.go +0 -92
  957. package/internal/customdeploy/archive.go +0 -205
  958. package/internal/customdeploy/archive_test.go +0 -174
  959. package/internal/customdeploy/customdeploy.go +0 -91
  960. package/internal/customdeploy/customdeploy_test.go +0 -82
  961. package/internal/debuglog/debuglog.go +0 -85
  962. package/internal/debuglog/debuglog_test.go +0 -44
  963. package/internal/defensivemode/api.go +0 -89
  964. package/internal/defensivemode/api_test.go +0 -122
  965. package/internal/devenv/adapters.go +0 -168
  966. package/internal/devenv/adapters_test.go +0 -44
  967. package/internal/devenv/adopt.go +0 -20
  968. package/internal/devenv/adopt_setup_test.go +0 -30
  969. package/internal/devenv/compose/labels.go +0 -90
  970. package/internal/devenv/compose/labels_test.go +0 -136
  971. package/internal/devenv/compose/project.go +0 -88
  972. package/internal/devenv/compose/project_test.go +0 -148
  973. package/internal/devenv/compose/render.go +0 -54
  974. package/internal/devenv/compose/render_test.go +0 -90
  975. package/internal/devenv/compose/services.go +0 -337
  976. package/internal/devenv/compose/services_test.go +0 -258
  977. package/internal/devenv/compose/testdata/full.golden.yml +0 -265
  978. package/internal/devenv/compose/types.go +0 -97
  979. package/internal/devenv/compose/types_test.go +0 -61
  980. package/internal/devenv/compose/view.go +0 -205
  981. package/internal/devenv/compose/view_test.go +0 -120
  982. package/internal/devenv/configfile.go +0 -300
  983. package/internal/devenv/configfile_test.go +0 -246
  984. package/internal/devenv/create.go +0 -130
  985. package/internal/devenv/create_test.go +0 -98
  986. package/internal/devenv/debug.go +0 -4
  987. package/internal/devenv/debug_test.go +0 -103
  988. package/internal/devenv/devenv.go +0 -434
  989. package/internal/devenv/devenv_test.go +0 -77
  990. package/internal/devenv/devexec.go +0 -140
  991. package/internal/devenv/devexec_test.go +0 -91
  992. package/internal/devenv/devlog/devlog.go +0 -219
  993. package/internal/devenv/devlog/devlog_test.go +0 -112
  994. package/internal/devenv/devterm/devterm.go +0 -65
  995. package/internal/devenv/devterm/devterm_pty.go +0 -58
  996. package/internal/devenv/devterm/devterm_stub.go +0 -20
  997. package/internal/devenv/devterm/devterm_test.go +0 -78
  998. package/internal/devenv/dockercli/capture.go +0 -84
  999. package/internal/devenv/dockercli/capture_test.go +0 -33
  1000. package/internal/devenv/dockercli/compose.go +0 -30
  1001. package/internal/devenv/dockercli/compose_test.go +0 -35
  1002. package/internal/devenv/dockercli/runner.go +0 -214
  1003. package/internal/devenv/dockercli/runner_test.go +0 -157
  1004. package/internal/devenv/dockercli/socket.go +0 -56
  1005. package/internal/devenv/dockercli/socket_test.go +0 -52
  1006. package/internal/devenv/e2e_gate_test.go +0 -17
  1007. package/internal/devenv/e2e_test.go +0 -499
  1008. package/internal/devenv/e2esafety/gate_wiring_test.go +0 -90
  1009. package/internal/devenv/e2esafety/safety.go +0 -52
  1010. package/internal/devenv/e2esafety/safety_test.go +0 -71
  1011. package/internal/devenv/eachenv_test.go +0 -132
  1012. package/internal/devenv/editor.go +0 -82
  1013. package/internal/devenv/editor_test.go +0 -60
  1014. package/internal/devenv/envfile.go +0 -287
  1015. package/internal/devenv/envvar.go +0 -165
  1016. package/internal/devenv/envvar_test.go +0 -178
  1017. package/internal/devenv/hostops/context.go +0 -38
  1018. package/internal/devenv/hostops/context_test.go +0 -24
  1019. package/internal/devenv/hostops/e2e_gate_test.go +0 -17
  1020. package/internal/devenv/hostops/e2e_test.go +0 -429
  1021. package/internal/devenv/hostops/elevate.go +0 -248
  1022. package/internal/devenv/hostops/elevate_message_test.go +0 -35
  1023. package/internal/devenv/hostops/elevate_test.go +0 -111
  1024. package/internal/devenv/hostops/hosts.go +0 -255
  1025. package/internal/devenv/hostops/hosts_test.go +0 -178
  1026. package/internal/devenv/hostops/thumbprint_test.go +0 -57
  1027. package/internal/devenv/hostops/trust.go +0 -115
  1028. package/internal/devenv/hostops/trust_test.go +0 -90
  1029. package/internal/devenv/hostrefresh.go +0 -127
  1030. package/internal/devenv/hostrefresh_test.go +0 -123
  1031. package/internal/devenv/importdata.go +0 -491
  1032. package/internal/devenv/importdata_test.go +0 -142
  1033. package/internal/devenv/importdecompress_test.go +0 -90
  1034. package/internal/devenv/importgate_test.go +0 -166
  1035. package/internal/devenv/importvalidate.go +0 -437
  1036. package/internal/devenv/importvalidate_test.go +0 -293
  1037. package/internal/devenv/info_table.go +0 -165
  1038. package/internal/devenv/info_table_test.go +0 -111
  1039. package/internal/devenv/instancedata/instancedata.go +0 -239
  1040. package/internal/devenv/instancedata/instancedata_test.go +0 -281
  1041. package/internal/devenv/instancedata/testdata/legacy_keys.json +0 -16
  1042. package/internal/devenv/instancedata/testdata/unknown_keys.json +0 -19
  1043. package/internal/devenv/lifecycle/adopt.go +0 -24
  1044. package/internal/devenv/lifecycle/adopt_test.go +0 -43
  1045. package/internal/devenv/lifecycle/health.go +0 -28
  1046. package/internal/devenv/lifecycle/health_test.go +0 -34
  1047. package/internal/devenv/lifecycle/hosts.go +0 -42
  1048. package/internal/devenv/lifecycle/hosts_test.go +0 -41
  1049. package/internal/devenv/lifecycle/migrate.go +0 -44
  1050. package/internal/devenv/lifecycle/migrate_test.go +0 -78
  1051. package/internal/devenv/lifecycle/pull.go +0 -19
  1052. package/internal/devenv/lifecycle/pull_test.go +0 -29
  1053. package/internal/devenv/lifecycle/setup.go +0 -35
  1054. package/internal/devenv/lifecycle/setup_test.go +0 -46
  1055. package/internal/devenv/lifecycle/start.go +0 -132
  1056. package/internal/devenv/lifecycle/start_test.go +0 -350
  1057. package/internal/devenv/lifecycle/teardown.go +0 -32
  1058. package/internal/devenv/lifecycle/teardown_test.go +0 -83
  1059. package/internal/devenv/lifecycle/types.go +0 -86
  1060. package/internal/devenv/lifecycle/waiter.go +0 -49
  1061. package/internal/devenv/lifecycle/waiter_test.go +0 -98
  1062. package/internal/devenv/list.go +0 -49
  1063. package/internal/devenv/list_test.go +0 -24
  1064. package/internal/devenv/logs.go +0 -43
  1065. package/internal/devenv/logs_test.go +0 -28
  1066. package/internal/devenv/materialize.go +0 -44
  1067. package/internal/devenv/materialize_test.go +0 -112
  1068. package/internal/devenv/paths/paths.go +0 -42
  1069. package/internal/devenv/paths/paths_test.go +0 -39
  1070. package/internal/devenv/postimport.go +0 -134
  1071. package/internal/devenv/postimport_test.go +0 -389
  1072. package/internal/devenv/proxy/ca.go +0 -110
  1073. package/internal/devenv/proxy/ca_test.go +0 -111
  1074. package/internal/devenv/proxy/network.go +0 -28
  1075. package/internal/devenv/proxy/network_test.go +0 -68
  1076. package/internal/devenv/proxy/ports.go +0 -104
  1077. package/internal/devenv/proxy/ports_test.go +0 -76
  1078. package/internal/devenv/proxy/proxy.go +0 -143
  1079. package/internal/devenv/proxy/proxy_test.go +0 -149
  1080. package/internal/devenv/proxy/scripts/gen-certs.sh +0 -73
  1081. package/internal/devenv/proxy/spec.go +0 -60
  1082. package/internal/devenv/proxy/spec_test.go +0 -44
  1083. package/internal/devenv/proxy/testhelpers_test.go +0 -7
  1084. package/internal/devenv/proxy_policy_test.go +0 -155
  1085. package/internal/devenv/syncplan.go +0 -573
  1086. package/internal/devenv/syncplan_test.go +0 -256
  1087. package/internal/devenv/syncsql.go +0 -247
  1088. package/internal/devenv/syncsql_repair.go +0 -169
  1089. package/internal/devenv/syncsql_repair_test.go +0 -150
  1090. package/internal/devenv/syncsql_test.go +0 -220
  1091. package/internal/devenv/update.go +0 -87
  1092. package/internal/devenv/update_test.go +0 -47
  1093. package/internal/edgeworkers/api.go +0 -173
  1094. package/internal/edgeworkers/api_test.go +0 -256
  1095. package/internal/edgeworkers/build.go +0 -188
  1096. package/internal/edgeworkers/build_test.go +0 -175
  1097. package/internal/edgeworkers/confirmation.go +0 -72
  1098. package/internal/edgeworkers/deployment.go +0 -156
  1099. package/internal/edgeworkers/deployment_test.go +0 -165
  1100. package/internal/edgeworkers/output.go +0 -131
  1101. package/internal/edgeworkers/output_test.go +0 -98
  1102. package/internal/edgeworkers/project.go +0 -264
  1103. package/internal/edgeworkers/project_test.go +0 -167
  1104. package/internal/edgeworkers/scaffold.go +0 -88
  1105. package/internal/edgeworkers/templates/README.md +0 -25
  1106. package/internal/edgeworkers/templates/edge-workers.json +0 -4
  1107. package/internal/edgeworkers/templates/gitignore +0 -2
  1108. package/internal/edgeworkers/templates/package.json +0 -16
  1109. package/internal/edgeworkers/templates/tsconfig.json +0 -6
  1110. package/internal/edgeworkers/templates/worker.ts +0 -19
  1111. package/internal/edgeworkers/types.go +0 -37
  1112. package/internal/edgeworkers/validation.go +0 -177
  1113. package/internal/envalias/envalias.go +0 -50
  1114. package/internal/envalias/envalias_test.go +0 -147
  1115. package/internal/envvar/envvar.go +0 -253
  1116. package/internal/envvar/envvar_test.go +0 -274
  1117. package/internal/envvar/reload_manifest.go +0 -99
  1118. package/internal/envvar/reload_manifest_test.go +0 -44
  1119. package/internal/envvar/value_confirm.go +0 -26
  1120. package/internal/envvar/value_confirm_test.go +0 -22
  1121. package/internal/exit/exit.go +0 -94
  1122. package/internal/exit/exit_test.go +0 -119
  1123. package/internal/gql/SCHEMA.md +0 -21
  1124. package/internal/gql/client.go +0 -54
  1125. package/internal/gql/client_test.go +0 -71
  1126. package/internal/gql/debug_test.go +0 -79
  1127. package/internal/gql/decoder_compat_helpers_test.go +0 -35
  1128. package/internal/gql/decoder_compat_test.go +0 -78
  1129. package/internal/gql/doc.go +0 -13
  1130. package/internal/gql/edgeworkerinput/input.go +0 -58
  1131. package/internal/gql/edgeworkerinput/input_test.go +0 -52
  1132. package/internal/gql/error.go +0 -163
  1133. package/internal/gql/error_test.go +0 -203
  1134. package/internal/gql/generated.go +0 -10425
  1135. package/internal/gql/genqlient.yaml +0 -26
  1136. package/internal/gql/import_sql_marshal_test.go +0 -69
  1137. package/internal/gql/operation.go +0 -67
  1138. package/internal/gql/operation_test.go +0 -60
  1139. package/internal/gql/operations/app_get.graphql +0 -43
  1140. package/internal/gql/operations/app_list.graphql +0 -9
  1141. package/internal/gql/operations/app_resolve.graphql +0 -37
  1142. package/internal/gql/operations/backup_export_deploy.graphql +0 -123
  1143. package/internal/gql/operations/cachepurge.graphql +0 -6
  1144. package/internal/gql/operations/defensive_mode.graphql +0 -13
  1145. package/internal/gql/operations/dev_env_create.graphql +0 -38
  1146. package/internal/gql/operations/dev_env_sync.graphql +0 -15
  1147. package/internal/gql/operations/edge_workers.graphql +0 -53
  1148. package/internal/gql/operations/envvar.graphql +0 -52
  1149. package/internal/gql/operations/fragments.graphql +0 -5
  1150. package/internal/gql/operations/import_media.graphql +0 -61
  1151. package/internal/gql/operations/import_sql.graphql +0 -135
  1152. package/internal/gql/operations/logs.graphql +0 -22
  1153. package/internal/gql/operations/me.graphql +0 -13
  1154. package/internal/gql/operations/phpmyadmin.graphql +0 -21
  1155. package/internal/gql/operations/slowlogs.graphql +0 -25
  1156. package/internal/gql/operations/software.graphql +0 -53
  1157. package/internal/gql/operations/sync.graphql +0 -51
  1158. package/internal/gql/operations/wp.graphql +0 -37
  1159. package/internal/gql/proxy_test.go +0 -62
  1160. package/internal/gql/rechallenge.go +0 -218
  1161. package/internal/gql/rechallenge_test.go +0 -471
  1162. package/internal/gql/retry.go +0 -130
  1163. package/internal/gql/retry_test.go +0 -230
  1164. package/internal/gql/schema.gql +0 -9337
  1165. package/internal/gql/transport.go +0 -65
  1166. package/internal/gql/transport_helper.go +0 -24
  1167. package/internal/httpproxy/callers_test.go +0 -211
  1168. package/internal/httpproxy/debug_test.go +0 -32
  1169. package/internal/httpproxy/httpproxy.go +0 -315
  1170. package/internal/httpproxy/httpproxy_test.go +0 -435
  1171. package/internal/installer/version.go +0 -41
  1172. package/internal/installer/version_test.go +0 -33
  1173. package/internal/keychain/fallback.go +0 -93
  1174. package/internal/keychain/keychain.go +0 -197
  1175. package/internal/keychain/keychain_select_test.go +0 -34
  1176. package/internal/keychain/keychain_test.go +0 -112
  1177. package/internal/logsapi/logsapi.go +0 -165
  1178. package/internal/logsapi/logsapi_test.go +0 -82
  1179. package/internal/mediaimport/mediaimport.go +0 -26
  1180. package/internal/mediaimport/mediaimport_test.go +0 -46
  1181. package/internal/mediaimport/status.go +0 -162
  1182. package/internal/mediaimport/status_test.go +0 -159
  1183. package/internal/mediaimport/tracker.go +0 -116
  1184. package/internal/mediaimport/tracker_test.go +0 -62
  1185. package/internal/nodeflags/nodeflags.go +0 -130
  1186. package/internal/nodeflags/nodeflags_test.go +0 -138
  1187. package/internal/nodeflags/optionalvalue.go +0 -123
  1188. package/internal/nodeflags/optionalvalue_test.go +0 -158
  1189. package/internal/output/csv.go +0 -178
  1190. package/internal/output/fields.go +0 -22
  1191. package/internal/output/fields_test.go +0 -21
  1192. package/internal/output/ids.go +0 -26
  1193. package/internal/output/ids_test.go +0 -32
  1194. package/internal/output/json.go +0 -113
  1195. package/internal/output/keyvalue.go +0 -35
  1196. package/internal/output/keyvalue_block.go +0 -77
  1197. package/internal/output/keyvalue_block_test.go +0 -95
  1198. package/internal/output/keyvalue_test.go +0 -35
  1199. package/internal/output/ordered.go +0 -44
  1200. package/internal/output/ordered_test.go +0 -42
  1201. package/internal/output/output.go +0 -62
  1202. package/internal/output/output_test.go +0 -400
  1203. package/internal/output/table.go +0 -231
  1204. package/internal/output/table_layout.go +0 -472
  1205. package/internal/output/table_layout_test.go +0 -107
  1206. package/internal/output/table_layout_tty_test.go +0 -63
  1207. package/internal/output/text.go +0 -24
  1208. package/internal/output/text_test.go +0 -31
  1209. package/internal/output/typename.go +0 -35
  1210. package/internal/output/typename_test.go +0 -48
  1211. package/internal/parity/backup_export_deploy_scenario_test.go +0 -285
  1212. package/internal/parity/cache_scenario_test.go +0 -173
  1213. package/internal/parity/command_surface_scenario_test.go +0 -530
  1214. package/internal/parity/defensive_mode_scenario_test.go +0 -133
  1215. package/internal/parity/diff.go +0 -128
  1216. package/internal/parity/diff_test.go +0 -155
  1217. package/internal/parity/differential_test.go +0 -166
  1218. package/internal/parity/edge_workers_build_smoke_test.go +0 -69
  1219. package/internal/parity/edge_workers_cases_test.go +0 -77
  1220. package/internal/parity/edge_workers_debug_test.go +0 -87
  1221. package/internal/parity/edge_workers_differential_test.go +0 -483
  1222. package/internal/parity/edge_workers_prompt_test.go +0 -151
  1223. package/internal/parity/env.go +0 -176
  1224. package/internal/parity/env_test.go +0 -211
  1225. package/internal/parity/envvar_mutation_scenario_test.go +0 -188
  1226. package/internal/parity/harness.go +0 -28
  1227. package/internal/parity/harness_test.go +0 -62
  1228. package/internal/parity/import_media_scenario_test.go +0 -207
  1229. package/internal/parity/import_sql_scenario_test.go +0 -198
  1230. package/internal/parity/import_validate_sql_scenario_test.go +0 -68
  1231. package/internal/parity/keychain.go +0 -538
  1232. package/internal/parity/keychain_test.go +0 -201
  1233. package/internal/parity/m5_differential_test.go +0 -185
  1234. package/internal/parity/m5_scenarios_test.go +0 -225
  1235. package/internal/parity/nodebin.go +0 -120
  1236. package/internal/parity/nodebin_test.go +0 -148
  1237. package/internal/parity/parker.go +0 -491
  1238. package/internal/parity/parker_discovery.go +0 -373
  1239. package/internal/parity/parker_discovery_test.go +0 -267
  1240. package/internal/parity/parker_live_test.go +0 -164
  1241. package/internal/parity/parker_test.go +0 -480
  1242. package/internal/parity/pendo_test.go +0 -122
  1243. package/internal/parity/phpmyadmin_scenario_test.go +0 -214
  1244. package/internal/parity/runner.go +0 -56
  1245. package/internal/parity/runner_test.go +0 -67
  1246. package/internal/parity/scenario.go +0 -82
  1247. package/internal/parity/scenario_test.go +0 -52
  1248. package/internal/parity/surface_differential_test.go +0 -494
  1249. package/internal/parity/sync_scenario_test.go +0 -172
  1250. package/internal/parity/vendored_src_test.go +0 -84
  1251. package/internal/parity/whoami_scenario_test.go +0 -69
  1252. package/internal/parity/wp_scenario_test.go +0 -428
  1253. package/internal/phpmyadmin/client.go +0 -221
  1254. package/internal/phpmyadmin/client_test.go +0 -418
  1255. package/internal/poll/poll.go +0 -85
  1256. package/internal/poll/poll_test.go +0 -136
  1257. package/internal/polling/polling.go +0 -97
  1258. package/internal/polling/polling_test.go +0 -59
  1259. package/internal/rechallenge/browser.go +0 -16
  1260. package/internal/rechallenge/client.go +0 -198
  1261. package/internal/rechallenge/client_test.go +0 -169
  1262. package/internal/rechallenge/errors.go +0 -137
  1263. package/internal/rechallenge/errors_test.go +0 -81
  1264. package/internal/rechallenge/flow.go +0 -232
  1265. package/internal/rechallenge/flow_noninteractive_test.go +0 -285
  1266. package/internal/rechallenge/flow_test.go +0 -217
  1267. package/internal/rechallenge/interactive.go +0 -90
  1268. package/internal/rechallenge/interactive_test.go +0 -106
  1269. package/internal/rechallenge/redact.go +0 -36
  1270. package/internal/rechallenge/redact_test.go +0 -142
  1271. package/internal/rechallenge/tokencache.go +0 -148
  1272. package/internal/rechallenge/tokencache_test.go +0 -139
  1273. package/internal/rechallenge/types.go +0 -100
  1274. package/internal/rechallenge/types_test.go +0 -56
  1275. package/internal/redact/redact.go +0 -99
  1276. package/internal/redact/redact_test.go +0 -80
  1277. package/internal/releasepromotion/buildkite.go +0 -233
  1278. package/internal/releasepromotion/buildkite_test.go +0 -284
  1279. package/internal/releasepromotion/contract.go +0 -165
  1280. package/internal/releasepromotion/contract_test.go +0 -211
  1281. package/internal/releasepromotion/github.go +0 -378
  1282. package/internal/releasepromotion/github_test.go +0 -399
  1283. package/internal/releasepromotion/optional_installers_test.go +0 -87
  1284. package/internal/releasepromotion/promoter.go +0 -134
  1285. package/internal/releasepromotion/promoter_test.go +0 -147
  1286. package/internal/releasepromotion/verify.go +0 -239
  1287. package/internal/releasepromotion/verify_test.go +0 -296
  1288. package/internal/searchreplace/debug_test.go +0 -71
  1289. package/internal/searchreplace/dumpdetails.go +0 -104
  1290. package/internal/searchreplace/dumpdetails_test.go +0 -86
  1291. package/internal/searchreplace/searchreplace.go +0 -261
  1292. package/internal/searchreplace/searchreplace_test.go +0 -250
  1293. package/internal/siteimport/debug_test.go +0 -34
  1294. package/internal/siteimport/siteimport.go +0 -18
  1295. package/internal/siteimport/siteimport_test.go +0 -19
  1296. package/internal/siteimport/sitetype.go +0 -74
  1297. package/internal/siteimport/sitetype_test.go +0 -62
  1298. package/internal/siteimport/status.go +0 -282
  1299. package/internal/siteimport/status_test.go +0 -234
  1300. package/internal/slowlogsapi/slowlogsapi.go +0 -176
  1301. package/internal/slowlogsapi/slowlogsapi_test.go +0 -93
  1302. package/internal/softwaresettings/format.go +0 -192
  1303. package/internal/softwaresettings/format_test.go +0 -123
  1304. package/internal/sqlexport/diskspace.go +0 -36
  1305. package/internal/sqlexport/diskspace_unix.go +0 -24
  1306. package/internal/sqlexport/diskspace_windows.go +0 -26
  1307. package/internal/sqlexport/download.go +0 -75
  1308. package/internal/sqlexport/download_test.go +0 -103
  1309. package/internal/sqlexport/export.go +0 -321
  1310. package/internal/sqlexport/export_test.go +0 -313
  1311. package/internal/sqlexport/format.go +0 -44
  1312. package/internal/sqlexport/livecopy.go +0 -150
  1313. package/internal/sqlexport/livecopy_test.go +0 -273
  1314. package/internal/sqlvalidation/devenv_checks_test.go +0 -134
  1315. package/internal/sqlvalidation/filename.go +0 -30
  1316. package/internal/sqlvalidation/line_by_line.go +0 -91
  1317. package/internal/sqlvalidation/line_by_line_test.go +0 -165
  1318. package/internal/sqlvalidation/multisite.go +0 -31
  1319. package/internal/sqlvalidation/multisite_test.go +0 -34
  1320. package/internal/sqlvalidation/sql.go +0 -510
  1321. package/internal/sqlvalidation/sql_test.go +0 -206
  1322. package/internal/sync/sync.go +0 -246
  1323. package/internal/sync/sync_test.go +0 -253
  1324. package/internal/telemetry/config.go +0 -34
  1325. package/internal/telemetry/default.go +0 -67
  1326. package/internal/telemetry/default_endpoint_test.go +0 -111
  1327. package/internal/telemetry/pendo.go +0 -185
  1328. package/internal/telemetry/pendo_auth_test.go +0 -92
  1329. package/internal/telemetry/pendo_test.go +0 -252
  1330. package/internal/telemetry/scrub.go +0 -90
  1331. package/internal/telemetry/scrub_test.go +0 -131
  1332. package/internal/telemetry/tracker.go +0 -102
  1333. package/internal/telemetry/tracker_test.go +0 -76
  1334. package/internal/telemetry/tracks.go +0 -82
  1335. package/internal/telemetry/tracks_test.go +0 -129
  1336. package/internal/telemetry/uuid.go +0 -50
  1337. package/internal/telemetry/uuid_test.go +0 -90
  1338. package/internal/tui/progress.go +0 -153
  1339. package/internal/tui/progress_test.go +0 -89
  1340. package/internal/tui/progress_tracker.go +0 -299
  1341. package/internal/tui/progress_tracker_test.go +0 -155
  1342. package/internal/update/archive.go +0 -134
  1343. package/internal/update/archive_test.go +0 -132
  1344. package/internal/update/download.go +0 -138
  1345. package/internal/update/download_test.go +0 -32
  1346. package/internal/update/github.go +0 -121
  1347. package/internal/update/install.go +0 -265
  1348. package/internal/update/install_test.go +0 -151
  1349. package/internal/update/lock_unix.go +0 -23
  1350. package/internal/update/lock_windows.go +0 -22
  1351. package/internal/update/native_test.go +0 -70
  1352. package/internal/update/notify.go +0 -91
  1353. package/internal/update/ownership.go +0 -117
  1354. package/internal/update/ownership_test.go +0 -102
  1355. package/internal/update/release.go +0 -120
  1356. package/internal/update/release_test.go +0 -168
  1357. package/internal/update/service.go +0 -197
  1358. package/internal/update/service_test.go +0 -118
  1359. package/internal/update/state.go +0 -116
  1360. package/internal/update/state_test.go +0 -132
  1361. package/internal/upload/debug_test.go +0 -76
  1362. package/internal/upload/filemeta.go +0 -112
  1363. package/internal/upload/filemeta_test.go +0 -94
  1364. package/internal/upload/multipart.go +0 -215
  1365. package/internal/upload/multipart_test.go +0 -210
  1366. package/internal/upload/orchestrate.go +0 -81
  1367. package/internal/upload/parts.go +0 -39
  1368. package/internal/upload/parts_test.go +0 -39
  1369. package/internal/upload/presign.go +0 -103
  1370. package/internal/upload/presign_test.go +0 -128
  1371. package/internal/upload/proxy_test.go +0 -55
  1372. package/internal/upload/putobject.go +0 -92
  1373. package/internal/upload/putobject_test.go +0 -79
  1374. package/internal/upload/retry.go +0 -45
  1375. package/internal/upload/upload.go +0 -22
  1376. package/internal/upload/xmlerror.go +0 -28
  1377. package/internal/validatefiles/files.go +0 -105
  1378. package/internal/validatefiles/files_test.go +0 -143
  1379. package/internal/validatefiles/report.go +0 -172
  1380. package/internal/validatefiles/validatefiles.go +0 -271
  1381. package/internal/validatefiles/validatefiles_test.go +0 -127
  1382. package/internal/version/stamp.go +0 -15
  1383. package/internal/version/stamp_test.go +0 -25
  1384. package/internal/version/version.go +0 -14
  1385. package/internal/version/version_test.go +0 -25
  1386. package/internal/wpshell/parser.go +0 -68
  1387. package/internal/wpshell/parser_test.go +0 -58
  1388. package/internal/wpshell/repl.go +0 -81
  1389. package/internal/wpshell/repl_test.go +0 -71
  1390. package/internal/wpshell/requote.go +0 -13
  1391. package/internal/wpshell/requote_test.go +0 -15
  1392. package/internal/wpssh/debug_test.go +0 -67
  1393. package/internal/wpssh/wpssh.go +0 -124
  1394. package/internal/wpssh/wpssh_test.go +0 -203
  1395. package/internal/wpstream/debug_test.go +0 -116
  1396. package/internal/wpstream/e2e_test.go +0 -178
  1397. package/internal/wpstream/engineio.go +0 -291
  1398. package/internal/wpstream/engineio_test.go +0 -82
  1399. package/internal/wpstream/iostream.go +0 -391
  1400. package/internal/wpstream/iostream_test.go +0 -138
  1401. package/internal/wpstream/run.go +0 -364
  1402. package/internal/wpstream/run_test.go +0 -184
  1403. package/internal/wpstream/socketio.go +0 -435
  1404. package/internal/wpstream/socketio_test.go +0 -402
  1405. package/internal/wpstream/testdata/fixture-server.js +0 -54
  1406. package/make.ps1 +0 -155
  1407. package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.cjs +0 -3
  1408. package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.cjs.map +0 -1
  1409. package/node_modules/@apollo/client/__cjs/utilities/internal/types/DeferInfo.d.cts +0 -10
  1410. package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.d.ts +0 -10
  1411. package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.js +0 -2
  1412. package/node_modules/@apollo/client/utilities/internal/types/DeferInfo.js.map +0 -1
  1413. package/node_modules/argparse/LICENSE +0 -254
  1414. package/node_modules/argparse/README.md +0 -84
  1415. package/node_modules/argparse/package.json +0 -31
  1416. package/node_modules/check-disk-space/dist/check-disk-space.cjs +0 -210
  1417. package/node_modules/check-disk-space/dist/check-disk-space.d.ts +0 -53
  1418. package/node_modules/fetch-retry/.eslintignore +0 -1
  1419. package/node_modules/fetch-retry/.eslintrc.yml +0 -20
  1420. package/node_modules/fetch-retry/.github/workflows/node.js.yml +0 -32
  1421. package/node_modules/fetch-retry/.husky/pre-commit +0 -6
  1422. package/node_modules/fetch-retry/.nycrc.json +0 -24
  1423. package/node_modules/fetch-retry/.travis.yml +0 -3
  1424. package/node_modules/fetch-retry/README.md +0 -128
  1425. package/node_modules/fetch-retry/dist/fetch-retry.umd.js +0 -151
  1426. package/node_modules/fetch-retry/index.d.ts +0 -29
  1427. package/node_modules/fetch-retry/index.js +0 -143
  1428. package/node_modules/fetch-retry/package.json +0 -41
  1429. package/node_modules/fetch-retry/rollup.config.js +0 -12
  1430. package/node_modules/fetch-retry/test/.eslintrc.yml +0 -7
  1431. package/node_modules/fetch-retry/test/integration/index.js +0 -212
  1432. package/node_modules/fetch-retry/test/integration/mock-api/index.js +0 -42
  1433. package/node_modules/fetch-retry/test/unit/index.js +0 -1169
  1434. package/node_modules/lando/node_modules/cliui/build/index.cjs +0 -302
  1435. package/node_modules/lando/node_modules/cliui/build/lib/string-utils.js +0 -27
  1436. package/node_modules/lando/node_modules/js-yaml/LICENSE +0 -21
  1437. package/node_modules/lando/node_modules/js-yaml/README.md +0 -233
  1438. package/node_modules/lando/node_modules/js-yaml/bin/js-yaml.js +0 -117
  1439. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.js +0 -3022
  1440. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.js.map +0 -1
  1441. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.min.js +0 -2
  1442. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.min.js.map +0 -1
  1443. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.mjs +0 -3082
  1444. package/node_modules/lando/node_modules/js-yaml/dist/js-yaml.mjs.map +0 -1
  1445. package/node_modules/lando/node_modules/js-yaml/index.js +0 -44
  1446. package/node_modules/lando/node_modules/js-yaml/lib/common.js +0 -50
  1447. package/node_modules/lando/node_modules/js-yaml/lib/dumper.js +0 -937
  1448. package/node_modules/lando/node_modules/js-yaml/lib/exception.js +0 -51
  1449. package/node_modules/lando/node_modules/js-yaml/lib/index_vite_proxy.tmp.mjs +0 -37
  1450. package/node_modules/lando/node_modules/js-yaml/lib/loader.js +0 -1803
  1451. package/node_modules/lando/node_modules/js-yaml/lib/schema/core.js +0 -9
  1452. package/node_modules/lando/node_modules/js-yaml/lib/schema/default.js +0 -20
  1453. package/node_modules/lando/node_modules/js-yaml/lib/schema/failsafe.js +0 -14
  1454. package/node_modules/lando/node_modules/js-yaml/lib/schema/json.js +0 -17
  1455. package/node_modules/lando/node_modules/js-yaml/lib/schema.js +0 -109
  1456. package/node_modules/lando/node_modules/js-yaml/lib/snippet.js +0 -96
  1457. package/node_modules/lando/node_modules/js-yaml/lib/type/binary.js +0 -122
  1458. package/node_modules/lando/node_modules/js-yaml/lib/type/bool.js +0 -35
  1459. package/node_modules/lando/node_modules/js-yaml/lib/type/float.js +0 -99
  1460. package/node_modules/lando/node_modules/js-yaml/lib/type/int.js +0 -142
  1461. package/node_modules/lando/node_modules/js-yaml/lib/type/map.js +0 -8
  1462. package/node_modules/lando/node_modules/js-yaml/lib/type/merge.js +0 -12
  1463. package/node_modules/lando/node_modules/js-yaml/lib/type/null.js +0 -35
  1464. package/node_modules/lando/node_modules/js-yaml/lib/type/omap.js +0 -45
  1465. package/node_modules/lando/node_modules/js-yaml/lib/type/pairs.js +0 -50
  1466. package/node_modules/lando/node_modules/js-yaml/lib/type/seq.js +0 -8
  1467. package/node_modules/lando/node_modules/js-yaml/lib/type/set.js +0 -29
  1468. package/node_modules/lando/node_modules/js-yaml/lib/type/str.js +0 -8
  1469. package/node_modules/lando/node_modules/js-yaml/lib/type/timestamp.js +0 -88
  1470. package/node_modules/lando/node_modules/js-yaml/lib/type.js +0 -66
  1471. package/node_modules/lando/node_modules/js-yaml/package.json +0 -83
  1472. package/node_modules/lando/node_modules/wrap-ansi/index.js +0 -216
  1473. package/node_modules/lando/node_modules/wrap-ansi/package.json +0 -62
  1474. package/node_modules/lando/node_modules/wrap-ansi/readme.md +0 -91
  1475. package/node_modules/lando/node_modules/yargs/build/index.cjs +0 -2920
  1476. package/node_modules/lando/node_modules/yargs/helpers/index.js +0 -14
  1477. package/node_modules/lando/node_modules/yargs/index.cjs +0 -39
  1478. package/node_modules/lando/node_modules/yargs/yargs +0 -9
  1479. package/node_modules/lando/node_modules/yargs-parser/build/index.cjs +0 -1042
  1480. package/node_modules/lando/plugins/lando-test/index.js +0 -3
  1481. package/node_modules/lando/plugins/lando-test/plugin.yml +0 -2
  1482. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d +0 -265
  1483. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto.node.d +0 -1
  1484. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/sshcrypto.node.d +0 -1
  1485. package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto/src/binding.o +0 -0
  1486. package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto.node +0 -0
  1487. package/node_modules/ssh2/lib/protocol/crypto/build/Release/sshcrypto.node +0 -0
  1488. package/packaging/macos/build-pkg.sh +0 -53
  1489. package/packaging/macos/preinstall +0 -33
  1490. package/packaging/macos/test-install.sh +0 -51
  1491. package/packaging/macos/test_package.py +0 -74
  1492. package/packaging/macos/uninstall.sh +0 -24
  1493. package/packaging/macos/verify-pkg.py +0 -61
  1494. package/packaging/windows/build-msi.ps1 +0 -153
  1495. package/packaging/windows/test-msi.ps1 +0 -225
  1496. package/packaging/windows/verify-msi.ps1 +0 -74
  1497. package/packaging/windows/vip-next.wxs +0 -79
  1498. package/scripts/catalog_script_test.go +0 -123
  1499. package/scripts/vip-next-command-catalog.sh +0 -506
  1500. package/test-utils/undici-mock.js +0 -25
  1501. package/testdata/installer-fixture/main.go +0 -40
  1502. package/testdata/parity/app-deploy-completed.yaml +0 -14
  1503. package/testdata/parity/app-deploy-missing-token.yaml +0 -21
  1504. package/testdata/parity/app-deploy-validate-clean.yaml +0 -11
  1505. package/testdata/parity/app-deploy-validate-missing-themes.yaml +0 -21
  1506. package/testdata/parity/app-get-baseline.yaml +0 -14
  1507. package/testdata/parity/app-get-custom-deploy.yaml +0 -14
  1508. package/testdata/parity/app-get-json.yaml +0 -14
  1509. package/testdata/parity/app-get-not-found.yaml +0 -13
  1510. package/testdata/parity/app-list-baseline.yaml +0 -14
  1511. package/testdata/parity/app-list-csv.yaml +0 -13
  1512. package/testdata/parity/app-list-empty.yaml +0 -13
  1513. package/testdata/parity/app-list-ids.yaml +0 -26
  1514. package/testdata/parity/app-list-json.yaml +0 -13
  1515. package/testdata/parity/app-list-unknown-format.yaml +0 -29
  1516. package/testdata/parity/backup-db-already-in-progress.yaml +0 -15
  1517. package/testdata/parity/backup-db-completed.yaml +0 -14
  1518. package/testdata/parity/backup-db-help.yaml +0 -10
  1519. package/testdata/parity/cache-purge-url-empty.yaml +0 -26
  1520. package/testdata/parity/cache-purge-url-from-file.yaml +0 -21
  1521. package/testdata/parity/cache-purge-url-multi.yaml +0 -19
  1522. package/testdata/parity/cache-purge-url-single.yaml +0 -18
  1523. package/testdata/parity/defensive-mode-enable-with-rechallenge.yaml +0 -20
  1524. package/testdata/parity/edge-workers-artifact-symlink.yaml +0 -8
  1525. package/testdata/parity/edge-workers-bare-location.yaml +0 -8
  1526. package/testdata/parity/edge-workers-bare-path.yaml +0 -8
  1527. package/testdata/parity/edge-workers-bare-type.yaml +0 -8
  1528. package/testdata/parity/edge-workers-build-all.yaml +0 -8
  1529. package/testdata/parity/edge-workers-build-compiler-error.yaml +0 -8
  1530. package/testdata/parity/edge-workers-build-empty.yaml +0 -8
  1531. package/testdata/parity/edge-workers-build-missing-compiler.yaml +0 -8
  1532. package/testdata/parity/edge-workers-build-name-all.yaml +0 -8
  1533. package/testdata/parity/edge-workers-build-one.yaml +0 -8
  1534. package/testdata/parity/edge-workers-delete-force.yaml +0 -8
  1535. package/testdata/parity/edge-workers-delete-rejected.yaml +0 -8
  1536. package/testdata/parity/edge-workers-deploy-active-update-enable.yaml +0 -8
  1537. package/testdata/parity/edge-workers-deploy-active-update.yaml +0 -8
  1538. package/testdata/parity/edge-workers-deploy-all-preparation-failure.yaml +0 -8
  1539. package/testdata/parity/edge-workers-deploy-create-enable.yaml +0 -8
  1540. package/testdata/parity/edge-workers-deploy-create.yaml +0 -8
  1541. package/testdata/parity/edge-workers-deploy-enable-failure.yaml +0 -8
  1542. package/testdata/parity/edge-workers-deploy-inactive-update-enable.yaml +0 -8
  1543. package/testdata/parity/edge-workers-deploy-inactive-update.yaml +0 -8
  1544. package/testdata/parity/edge-workers-deploy-location-clear.yaml +0 -8
  1545. package/testdata/parity/edge-workers-deploy-location-preserve.yaml +0 -8
  1546. package/testdata/parity/edge-workers-deploy-location-replace.yaml +0 -8
  1547. package/testdata/parity/edge-workers-deploy-name-all.yaml +0 -8
  1548. package/testdata/parity/edge-workers-deploy-production-refused.yaml +0 -8
  1549. package/testdata/parity/edge-workers-deploy-production-skip.yaml +0 -8
  1550. package/testdata/parity/edge-workers-deploy-skip-source-create.yaml +0 -8
  1551. package/testdata/parity/edge-workers-deploy-skip-source.yaml +0 -8
  1552. package/testdata/parity/edge-workers-deploy-skip-validate.yaml +0 -8
  1553. package/testdata/parity/edge-workers-deploy-source-empty.yaml +0 -8
  1554. package/testdata/parity/edge-workers-deploy-upload-failure.yaml +0 -8
  1555. package/testdata/parity/edge-workers-disable.yaml +0 -8
  1556. package/testdata/parity/edge-workers-double-dash.yaml +0 -8
  1557. package/testdata/parity/edge-workers-duplicate-names.yaml +0 -8
  1558. package/testdata/parity/edge-workers-enable-production-refused.yaml +0 -8
  1559. package/testdata/parity/edge-workers-enable.yaml +0 -8
  1560. package/testdata/parity/edge-workers-entry-escape.yaml +0 -8
  1561. package/testdata/parity/edge-workers-get-empty-source.yaml +0 -8
  1562. package/testdata/parity/edge-workers-get-missing.yaml +0 -8
  1563. package/testdata/parity/edge-workers-get-no-source.yaml +0 -8
  1564. package/testdata/parity/edge-workers-get-source.yaml +0 -8
  1565. package/testdata/parity/edge-workers-get.yaml +0 -8
  1566. package/testdata/parity/edge-workers-init-invalid-type.yaml +0 -8
  1567. package/testdata/parity/edge-workers-init-nonempty.yaml +0 -8
  1568. package/testdata/parity/edge-workers-init.yaml +0 -8
  1569. package/testdata/parity/edge-workers-json-control-name.yaml +0 -8
  1570. package/testdata/parity/edge-workers-list-csv.yaml +0 -8
  1571. package/testdata/parity/edge-workers-list-empty-json.yaml +0 -8
  1572. package/testdata/parity/edge-workers-list-empty.yaml +0 -8
  1573. package/testdata/parity/edge-workers-list-json.yaml +0 -8
  1574. package/testdata/parity/edge-workers-list-table.yaml +0 -8
  1575. package/testdata/parity/edge-workers-mutation-graphql-error.yaml +0 -8
  1576. package/testdata/parity/edge-workers-mutation-null.yaml +0 -8
  1577. package/testdata/parity/edge-workers-new-invalid-location.yaml +0 -8
  1578. package/testdata/parity/edge-workers-new-invalid-name.yaml +0 -8
  1579. package/testdata/parity/edge-workers-new-location.yaml +0 -8
  1580. package/testdata/parity/edge-workers-new.yaml +0 -8
  1581. package/testdata/parity/edge-workers-read-null.yaml +0 -8
  1582. package/testdata/parity/edge-workers-repeated-path.yaml +0 -8
  1583. package/testdata/parity/edge-workers-repeated-type.yaml +0 -8
  1584. package/testdata/parity/edge-workers-short-equals.yaml +0 -8
  1585. package/testdata/parity/edge-workers-table-control-name.yaml +0 -8
  1586. package/testdata/parity/edge-workers-unicode-order.yaml +0 -8
  1587. package/testdata/parity/edge-workers-validate-all.yaml +0 -8
  1588. package/testdata/parity/edge-workers-validate-invalid.yaml +0 -8
  1589. package/testdata/parity/edge-workers-validate-name-all.yaml +0 -8
  1590. package/testdata/parity/edge-workers-validate-no-artifact.yaml +0 -8
  1591. package/testdata/parity/edge-workers-validate-no-name.yaml +0 -8
  1592. package/testdata/parity/edge-workers-validate-null.yaml +0 -8
  1593. package/testdata/parity/edge-workers-validate.yaml +0 -8
  1594. package/testdata/parity/envvar-delete-baseline.yaml +0 -19
  1595. package/testdata/parity/envvar-delete-prod-cancel.yaml +0 -41
  1596. package/testdata/parity/envvar-delete-typed-mismatch.yaml +0 -44
  1597. package/testdata/parity/envvar-get-baseline.yaml +0 -14
  1598. package/testdata/parity/envvar-get-lowercase-input.yaml +0 -14
  1599. package/testdata/parity/envvar-get-named-help.yaml +0 -24
  1600. package/testdata/parity/envvar-get-not-found.yaml +0 -17
  1601. package/testdata/parity/envvar-getall-baseline.yaml +0 -14
  1602. package/testdata/parity/envvar-getall-empty.yaml +0 -15
  1603. package/testdata/parity/envvar-getall-keyvalue.yaml +0 -22
  1604. package/testdata/parity/envvar-list-baseline.yaml +0 -15
  1605. package/testdata/parity/envvar-list-empty.yaml +0 -15
  1606. package/testdata/parity/envvar-list-ids.yaml +0 -14
  1607. package/testdata/parity/envvar-list-json.yaml +0 -14
  1608. package/testdata/parity/envvar-list-keyvalue.yaml +0 -22
  1609. package/testdata/parity/envvar-set-baseline.yaml +0 -21
  1610. package/testdata/parity/envvar-set-invalid-name.yaml +0 -20
  1611. package/testdata/parity/envvar-set-newrelic-blocked.yaml +0 -21
  1612. package/testdata/parity/envvar-set-prod-cancel.yaml +0 -42
  1613. package/testdata/parity/envvar-set-prod-confirm-skipped.yaml +0 -20
  1614. package/testdata/parity/export-sql-completed.yaml +0 -14
  1615. package/testdata/parity/export-sql-config-conflict.yaml +0 -21
  1616. package/testdata/parity/export-sql-help.yaml +0 -11
  1617. package/testdata/parity/import-media-abort-noninteractive.yaml +0 -19
  1618. package/testdata/parity/import-media-help.yaml +0 -12
  1619. package/testdata/parity/import-media-invalid-archive.yaml +0 -18
  1620. package/testdata/parity/import-media-status-completed.yaml +0 -19
  1621. package/testdata/parity/import-media-status-failed.yaml +0 -18
  1622. package/testdata/parity/import-media-url-completed.yaml +0 -18
  1623. package/testdata/parity/import-sql-bad-extension.yaml +0 -26
  1624. package/testdata/parity/import-sql-help.yaml +0 -12
  1625. package/testdata/parity/import-sql-in-progress.yaml +0 -26
  1626. package/testdata/parity/import-sql-invalid-md5.yaml +0 -27
  1627. package/testdata/parity/import-sql-noninteractive-abort.yaml +0 -20
  1628. package/testdata/parity/import-sql-status-completed.yaml +0 -17
  1629. package/testdata/parity/import-sql-status-no-job.yaml +0 -17
  1630. package/testdata/parity/import-sql-validation-failure.yaml +0 -18
  1631. package/testdata/parity/import-validate-files-clean.yaml +0 -18
  1632. package/testdata/parity/import-validate-files-not-dir.yaml +0 -16
  1633. package/testdata/parity/import-validate-sql-clean.yaml +0 -23
  1634. package/testdata/parity/import-validate-sql-dangerous-stmt.yaml +0 -27
  1635. package/testdata/parity/import-validate-sql-multisite-warn.yaml +0 -23
  1636. package/testdata/parity/logs-baseline.yaml +0 -24
  1637. package/testdata/parity/logs-batch.yaml +0 -24
  1638. package/testdata/parity/logs-empty.yaml +0 -15
  1639. package/testdata/parity/logs-format-json.yaml +0 -15
  1640. package/testdata/parity/logs-limit-100.yaml +0 -24
  1641. package/testdata/parity/phpmyadmin-error.yaml +0 -24
  1642. package/testdata/parity/phpmyadmin-print.yaml +0 -22
  1643. package/testdata/parity/phpmyadmin-silent.yaml +0 -16
  1644. package/testdata/parity/recordings/app-get-baseline/app.json +0 -11
  1645. package/testdata/parity/recordings/app-get-custom-deploy/app.json +0 -8
  1646. package/testdata/parity/recordings/app-get-json/app.json +0 -11
  1647. package/testdata/parity/recordings/app-get-not-found/app.json +0 -1
  1648. package/testdata/parity/recordings/app-list-baseline/apps.json +0 -1
  1649. package/testdata/parity/recordings/app-list-csv/apps.json +0 -1
  1650. package/testdata/parity/recordings/app-list-empty/apps.json +0 -1
  1651. package/testdata/parity/recordings/app-list-json/apps.json +0 -1
  1652. package/testdata/parity/recordings/backup-db-already-in-progress/backup-status-1.json +0 -1
  1653. package/testdata/parity/recordings/backup-db-already-in-progress/backup-status-2.json +0 -1
  1654. package/testdata/parity/recordings/backup-db-completed/backup-status-1.json +0 -1
  1655. package/testdata/parity/recordings/backup-db-completed/backup-status-2.json +0 -1
  1656. package/testdata/parity/recordings/backup-db-completed/backup-status-3.json +0 -1
  1657. package/testdata/parity/recordings/cache-purge-url-empty/resolve-app.json +0 -1
  1658. package/testdata/parity/recordings/cache-purge-url-from-file/purge.json +0 -1
  1659. package/testdata/parity/recordings/cache-purge-url-from-file/resolve-app.json +0 -1
  1660. package/testdata/parity/recordings/cache-purge-url-from-file/urls.txt +0 -2
  1661. package/testdata/parity/recordings/cache-purge-url-multi/purge.json +0 -1
  1662. package/testdata/parity/recordings/cache-purge-url-multi/resolve-app.json +0 -1
  1663. package/testdata/parity/recordings/cache-purge-url-single/purge.json +0 -1
  1664. package/testdata/parity/recordings/cache-purge-url-single/resolve-app.json +0 -1
  1665. package/testdata/parity/recordings/config-software-get/resolve-app.json +0 -1
  1666. package/testdata/parity/recordings/config-software-update/resolve-app.json +0 -1
  1667. package/testdata/parity/recordings/defensive-mode-enable-rechallenge/mutation-elevated.json +0 -1
  1668. package/testdata/parity/recordings/defensive-mode-enable-rechallenge/mutation-success.json +0 -1
  1669. package/testdata/parity/recordings/defensive-mode-enable-rechallenge/parker-create-session.json +0 -1
  1670. package/testdata/parity/recordings/defensive-mode-enable-rechallenge/parker-exchange.json +0 -1
  1671. package/testdata/parity/recordings/defensive-mode-enable-rechallenge/parker-status-verified.json +0 -1
  1672. package/testdata/parity/recordings/envvar-delete-baseline/delete.json +0 -1
  1673. package/testdata/parity/recordings/envvar-delete-baseline/resolve-app.json +0 -1
  1674. package/testdata/parity/recordings/envvar-delete-prod-cancel/resolve-app.json +0 -1
  1675. package/testdata/parity/recordings/envvar-delete-typed-mismatch/resolve-app.json +0 -1
  1676. package/testdata/parity/recordings/envvar-get-baseline/envvars.json +0 -1
  1677. package/testdata/parity/recordings/envvar-get-baseline/resolve-app.json +0 -1
  1678. package/testdata/parity/recordings/envvar-get-lowercase-input/envvars.json +0 -1
  1679. package/testdata/parity/recordings/envvar-get-lowercase-input/resolve-app.json +0 -1
  1680. package/testdata/parity/recordings/envvar-get-named-help/envvars.json +0 -1
  1681. package/testdata/parity/recordings/envvar-get-named-help/resolve-app.json +0 -1
  1682. package/testdata/parity/recordings/envvar-get-not-found/envvars.json +0 -1
  1683. package/testdata/parity/recordings/envvar-get-not-found/resolve-app.json +0 -1
  1684. package/testdata/parity/recordings/envvar-getall-baseline/envvars.json +0 -1
  1685. package/testdata/parity/recordings/envvar-getall-baseline/resolve-app.json +0 -1
  1686. package/testdata/parity/recordings/envvar-getall-empty/envvars.json +0 -1
  1687. package/testdata/parity/recordings/envvar-getall-empty/resolve-app.json +0 -1
  1688. package/testdata/parity/recordings/envvar-getall-keyvalue/envvars.json +0 -1
  1689. package/testdata/parity/recordings/envvar-getall-keyvalue/resolve-app.json +0 -1
  1690. package/testdata/parity/recordings/envvar-list-baseline/envvars.json +0 -1
  1691. package/testdata/parity/recordings/envvar-list-baseline/resolve-app.json +0 -1
  1692. package/testdata/parity/recordings/envvar-list-empty/envvars.json +0 -1
  1693. package/testdata/parity/recordings/envvar-list-empty/resolve-app.json +0 -1
  1694. package/testdata/parity/recordings/envvar-list-ids/envvars.json +0 -1
  1695. package/testdata/parity/recordings/envvar-list-ids/resolve-app.json +0 -1
  1696. package/testdata/parity/recordings/envvar-list-json/envvars.json +0 -1
  1697. package/testdata/parity/recordings/envvar-list-json/resolve-app.json +0 -1
  1698. package/testdata/parity/recordings/envvar-list-keyvalue/envvars.json +0 -1
  1699. package/testdata/parity/recordings/envvar-list-keyvalue/resolve-app.json +0 -1
  1700. package/testdata/parity/recordings/envvar-set-baseline/add.json +0 -1
  1701. package/testdata/parity/recordings/envvar-set-baseline/resolve-app.json +0 -1
  1702. package/testdata/parity/recordings/envvar-set-baseline/value.txt +0 -1
  1703. package/testdata/parity/recordings/envvar-set-invalid-name/resolve-app.json +0 -1
  1704. package/testdata/parity/recordings/envvar-set-invalid-name/value.txt +0 -1
  1705. package/testdata/parity/recordings/envvar-set-newrelic-blocked/resolve-app.json +0 -1
  1706. package/testdata/parity/recordings/envvar-set-newrelic-blocked/value.txt +0 -1
  1707. package/testdata/parity/recordings/envvar-set-prod-cancel/resolve-app.json +0 -1
  1708. package/testdata/parity/recordings/envvar-set-prod-cancel/value.txt +0 -1
  1709. package/testdata/parity/recordings/envvar-set-prod-confirm-skipped/add.json +0 -1
  1710. package/testdata/parity/recordings/envvar-set-prod-confirm-skipped/resolve-app.json +0 -1
  1711. package/testdata/parity/recordings/envvar-set-prod-confirm-skipped/value.txt +0 -1
  1712. package/testdata/parity/recordings/export-sql-completed/export-status-1.json +0 -1
  1713. package/testdata/parity/recordings/export-sql-completed/export-status-2.json +0 -1
  1714. package/testdata/parity/recordings/import-media-invalid-archive/file.sql +0 -1
  1715. package/testdata/parity/recordings/import-media-shared/abort-media-import.json +0 -1
  1716. package/testdata/parity/recordings/import-media-shared/env-info.json +0 -1
  1717. package/testdata/parity/recordings/import-media-shared/resolve-app.json +0 -1
  1718. package/testdata/parity/recordings/import-media-shared/start-media-import.json +0 -1
  1719. package/testdata/parity/recordings/import-media-status-completed/progress.json +0 -1
  1720. package/testdata/parity/recordings/import-media-status-failed/progress.json +0 -1
  1721. package/testdata/parity/recordings/import-media-url-completed/progress.json +0 -1
  1722. package/testdata/parity/recordings/import-sql-bad-extension/file.txt +0 -1
  1723. package/testdata/parity/recordings/import-sql-in-progress/env-info.json +0 -1
  1724. package/testdata/parity/recordings/import-sql-in-progress/resolve-app.json +0 -1
  1725. package/testdata/parity/recordings/import-sql-noninteractive-abort/clean.sql +0 -5
  1726. package/testdata/parity/recordings/import-sql-shared/env-info.json +0 -1
  1727. package/testdata/parity/recordings/import-sql-shared/multisite.json +0 -1
  1728. package/testdata/parity/recordings/import-sql-shared/resolve-app.json +0 -1
  1729. package/testdata/parity/recordings/import-sql-status-completed/progress.json +0 -1
  1730. package/testdata/parity/recordings/import-sql-status-no-job/progress.json +0 -1
  1731. package/testdata/parity/recordings/import-sql-validation-failure/dirty.sql +0 -6
  1732. package/testdata/parity/recordings/import-validate-files-clean/config.json +0 -1
  1733. package/testdata/parity/recordings/import-validate-files-clean/uploads/2020/06/a.jpg +0 -1
  1734. package/testdata/parity/recordings/import-validate-files-clean/uploads/2020/06/b.png +0 -1
  1735. package/testdata/parity/recordings/import-validate-sql-clean/clean.sql +0 -17
  1736. package/testdata/parity/recordings/import-validate-sql-dangerous-stmt/dangerous.sql +0 -11
  1737. package/testdata/parity/recordings/import-validate-sql-multisite-warn/multisite.sql +0 -12
  1738. package/testdata/parity/recordings/logs-baseline/logs.json +0 -1
  1739. package/testdata/parity/recordings/logs-baseline/resolve-app.json +0 -1
  1740. package/testdata/parity/recordings/logs-batch/logs.json +0 -1
  1741. package/testdata/parity/recordings/logs-batch/resolve-app.json +0 -1
  1742. package/testdata/parity/recordings/logs-empty/logs.json +0 -1
  1743. package/testdata/parity/recordings/logs-empty/resolve-app.json +0 -1
  1744. package/testdata/parity/recordings/logs-format-json/logs.json +0 -1
  1745. package/testdata/parity/recordings/logs-format-json/resolve-app.json +0 -1
  1746. package/testdata/parity/recordings/logs-limit-100/logs.json +0 -1
  1747. package/testdata/parity/recordings/logs-limit-100/resolve-app.json +0 -1
  1748. package/testdata/parity/recordings/m7c-shared/resolve-app.json +0 -1
  1749. package/testdata/parity/recordings/phpmyadmin-error/enable.json +0 -1
  1750. package/testdata/parity/recordings/phpmyadmin-error/resolve-app.json +0 -1
  1751. package/testdata/parity/recordings/phpmyadmin-print/enable.json +0 -1
  1752. package/testdata/parity/recordings/phpmyadmin-print/generate.json +0 -1
  1753. package/testdata/parity/recordings/phpmyadmin-print/resolve-app.json +0 -1
  1754. package/testdata/parity/recordings/phpmyadmin-print/status.json +0 -1
  1755. package/testdata/parity/recordings/phpmyadmin-silent/enable.json +0 -1
  1756. package/testdata/parity/recordings/phpmyadmin-silent/generate.json +0 -1
  1757. package/testdata/parity/recordings/phpmyadmin-silent/resolve-app.json +0 -1
  1758. package/testdata/parity/recordings/phpmyadmin-silent/status.json +0 -1
  1759. package/testdata/parity/recordings/slowlogs-baseline/resolve-app.json +0 -1
  1760. package/testdata/parity/recordings/slowlogs-baseline/slowlogs.json +0 -1
  1761. package/testdata/parity/recordings/slowlogs-csv/resolve-app.json +0 -1
  1762. package/testdata/parity/recordings/slowlogs-csv/slowlogs.json +0 -1
  1763. package/testdata/parity/recordings/slowlogs-empty/resolve-app.json +0 -1
  1764. package/testdata/parity/recordings/slowlogs-empty/slowlogs.json +0 -1
  1765. package/testdata/parity/recordings/slowlogs-limit-50/resolve-app.json +0 -1
  1766. package/testdata/parity/recordings/slowlogs-limit-50/slowlogs.json +0 -1
  1767. package/testdata/parity/recordings/sync-already-syncing/resolve-app.json +0 -1
  1768. package/testdata/parity/recordings/sync-already-syncing/sync-start.json +0 -1
  1769. package/testdata/parity/recordings/sync-already-syncing/sync-status-1.json +0 -1
  1770. package/testdata/parity/recordings/sync-already-syncing/sync-status-2.json +0 -1
  1771. package/testdata/parity/recordings/sync-baseline/resolve-app.json +0 -1
  1772. package/testdata/parity/recordings/sync-baseline/sync-start.json +0 -1
  1773. package/testdata/parity/recordings/sync-baseline/sync-status-1.json +0 -1
  1774. package/testdata/parity/recordings/sync-baseline/sync-status-2.json +0 -1
  1775. package/testdata/parity/recordings/whoami-baseline/me-response.json +0 -1
  1776. package/testdata/parity/recordings/wp-nodejs-rejected/resolve-app.json +0 -1
  1777. package/testdata/parity/recordings/wp-production-confirm-decline/resolve-app.json +0 -1
  1778. package/testdata/parity/recordings/wp-ssh-happy/resolve-app.json +0 -1
  1779. package/testdata/parity/recordings/wp-websocket-redirect/resolve-app.json +0 -1
  1780. package/testdata/parity/slowlogs-baseline.yaml +0 -18
  1781. package/testdata/parity/slowlogs-csv.yaml +0 -16
  1782. package/testdata/parity/slowlogs-empty.yaml +0 -17
  1783. package/testdata/parity/slowlogs-limit-50.yaml +0 -16
  1784. package/testdata/parity/sync-already-syncing.yaml +0 -20
  1785. package/testdata/parity/sync-baseline.yaml +0 -19
  1786. package/testdata/parity/version-smoke.yaml +0 -14
  1787. package/testdata/parity/whoami-baseline.yaml +0 -14
  1788. package/testdata/parity/wp-help.yaml +0 -12
  1789. package/testdata/parity/wp-nodejs-rejected.yaml +0 -13
  1790. package/testdata/parity/wp-production-confirm-decline.yaml +0 -14
  1791. package/testdata/parity/wp-ssh-happy.yaml +0 -15
  1792. package/testdata/parity/wp-websocket-redirect.yaml +0 -14
  1793. package/testdata/parity-local/app-get-csv.yaml +0 -8
  1794. package/testdata/parity-local/app-get-json.yaml +0 -8
  1795. package/testdata/parity-local/app-get-table.yaml +0 -8
  1796. package/testdata/parity-local/app-list-csv.yaml +0 -8
  1797. package/testdata/parity-local/app-list-json.yaml +0 -8
  1798. package/testdata/parity-local/app-list-table.yaml +0 -8
  1799. package/testdata/parity-local/edge-workers/basic/edge-workers.json +0 -1
  1800. package/testdata/parity-local/edge-workers/basic/workers/headers/assembly/index.ts +0 -1
  1801. package/testdata/parity-local/edge-workers/basic/workers/headers/worker.json +0 -1
  1802. package/testdata/parity-local/edge-workers/two-workers/edge-workers.json +0 -1
  1803. package/testdata/parity-local/edge-workers/two-workers/workers/a/assembly/index.ts +0 -1
  1804. package/testdata/parity-local/edge-workers/two-workers/workers/a/worker.json +0 -1
  1805. package/testdata/parity-local/edge-workers/two-workers/workers/b/assembly/index.ts +0 -1
  1806. package/testdata/parity-local/edge-workers/two-workers/workers/b/worker.json +0 -1
  1807. package/testdata/parity-local/envvar-list-csv.yaml +0 -8
  1808. package/testdata/parity-local/envvar-list-ids.yaml +0 -8
  1809. package/testdata/parity-local/envvar-list-json.yaml +0 -8
  1810. package/testdata/parity-local/envvar-list-keyvalue.yaml +0 -8
  1811. package/testdata/parity-local/envvar-list-table.yaml +0 -8
  1812. package/testdata/parity-local/software-get-csv.yaml +0 -8
  1813. package/testdata/parity-local/software-get-json.yaml +0 -8
  1814. package/testdata/parity-local/software-get-table.yaml +0 -8
  1815. package/testdata/parity-local/whoami.yaml +0 -8
  1816. package/testdata/update-fixture/main.go +0 -62
  1817. package/third_party/go-search-replace/MANIFEST +0 -33
  1818. package/tsconfig.json +0 -25
  1819. /package/node_modules/lando/node_modules/{wrap-ansi → ansi-regex}/license +0 -0
@@ -1,1161 +0,0 @@
1
- package commands
2
-
3
- import (
4
- "context"
5
- "errors"
6
- "fmt"
7
- "io"
8
- "net/url"
9
- "os"
10
- "regexp"
11
- "strconv"
12
- "strings"
13
- "time"
14
-
15
- "github.com/Khan/genqlient/graphql"
16
- "github.com/fatih/color"
17
- "github.com/spf13/cobra"
18
- "golang.org/x/term"
19
-
20
- "github.com/Automattic/vip/internal/appctx"
21
- "github.com/Automattic/vip/internal/debuglog"
22
- "github.com/Automattic/vip/internal/gql"
23
- "github.com/Automattic/vip/internal/searchreplace"
24
- "github.com/Automattic/vip/internal/siteimport"
25
- "github.com/Automattic/vip/internal/sqlvalidation"
26
- "github.com/Automattic/vip/internal/tui"
27
- "github.com/Automattic/vip/internal/upload"
28
- )
29
-
30
- // ImportSQLCmd returns `vip import sql <file|url>`.
31
- //
32
- // Node parity: src/bin/vip-import-sql.js (852 LOC). Flow: gates →
33
- // (local) SQL validation → playbook → type-the-domain confirm →
34
- // optional skip-backup double confirm → optional in-place confirm →
35
- // progress phase (search-replace, upload / URL passthrough,
36
- // StartImport mutation) → status polling (internal/siteimport).
37
- func ImportSQLCmd() *cobra.Command {
38
- cmd := &cobra.Command{
39
- Use: "sql <file|url>",
40
- Short: "Import a SQL database file into an environment",
41
- Long: "Import a local or remote SQL database file into a VIP Platform environment. " +
42
- "Local files are validated and uploaded; remote files are fetched by the platform. " +
43
- "The command polls the import status until completion.",
44
- Args: cobra.ExactArgs(1),
45
- }
46
-
47
- // Flags — Node .option() registrations, vip-import-sql.js:546-575.
48
- cmd.Flags().BoolP("skip-validate", "s", false, "Do not perform file validation prior to import. If the file contains unsupported entries, the import is likely to fail.")
49
- cmd.Flags().StringArray("search-replace", nil, "Search for a string in a local or remote SQL database file and replace it with a new string. Separate the values by a comma only; no spaces (e.g. --search-replace=\"from,to\"). Can be passed more than once.")
50
- cmd.Flags().BoolP("in-place", "i", false, "Overwrite a local SQL database file with the results of a search and replace operation prior to import.")
51
- cmd.Flags().StringP("output", "o", "", "Save the results of a --search-replace operation that is run against a local SQL database file to a copy of that file. Accepts a local file path. Ignored when used with the --in-place option.")
52
- cmd.Flags().Bool("skip-maintenance-mode", false, "Prevent an unlaunched environment from going into maintenance mode during the import of a local or remote SQL database file. Skipping maintenance mode can cause site instability during import.")
53
- cmd.Flags().StringP("md5", "m", "", "Verify the integrity of a remote SQL database file. Accepts an MD5 hash value.")
54
- cmd.Flags().StringArray("header", nil, "Pass a header name and value (Formatted as \"Name: Value\") in a request for a remote SQL database file. Can be passed more than once for multiple headers and values.")
55
- cmd.Flags().BoolP("skip-backup", "B", false, "Skip creating a backup before importing the SQL file. WARNING: This is extremely dangerous and can result in permanent data loss.")
56
-
57
- addAppEnvFlags(cmd)
58
- cfg := GetConfig()
59
- return appctx.Build(cmd,
60
- appctx.WithAppContext(cfg.AppCtxConfig),
61
- appctx.WithEnvContext(),
62
- ).WithRun(runImportSQL)
63
- }
64
-
65
- // Prompt indirection so command-level tests can stub the interactive
66
- // pieces without a TTY.
67
- var (
68
- importInputPrompt = appctx.Input
69
- importConfirmPrompt = appctx.Confirm
70
- )
71
-
72
- // importHeader mirrors the parsed {name, value} pairs Node builds in
73
- // parseHeaders (vip-import-sql.js:119).
74
- type importHeader struct {
75
- Name string
76
- Value string
77
- }
78
-
79
- // parseImportHeaders ports parseHeaders (vip-import-sql.js:119).
80
- func parseImportHeaders(headers []string) ([]importHeader, error) {
81
- parsed := make([]importHeader, 0, len(headers))
82
- for _, header := range headers {
83
- colonIndex := strings.Index(header, ":")
84
- if colonIndex == -1 {
85
- return nil, fmt.Errorf("Invalid header format: %q. Expected format: \"Name: Value\"", header)
86
- }
87
- name := strings.TrimSpace(header[:colonIndex])
88
- value := strings.TrimSpace(header[colonIndex+1:])
89
- if name == "" {
90
- return nil, fmt.Errorf("Invalid header format: %q. Header name cannot be empty.", header)
91
- }
92
- parsed = append(parsed, importHeader{Name: name, Value: value})
93
- }
94
- return parsed, nil
95
- }
96
-
97
- // driveLetterProtocolRE — Node isValidUrl rejects single-drive-letter
98
- // "protocols" so Windows paths like C:\x don't count as URLs
99
- // (vip-import-sql.js:99).
100
- var driveLetterProtocolRE = regexp.MustCompile(`(?i)^[a-z]:$`)
101
-
102
- // isValidImportURL ports isValidUrl (vip-import-sql.js:96).
103
- func isValidImportURL(s string) bool {
104
- u, err := url.Parse(s)
105
- if err != nil || u.Scheme == "" {
106
- return false
107
- }
108
- return !driveLetterProtocolRE.MatchString(u.Scheme + ":")
109
- }
110
-
111
- // isValidMd5 ports isValidMd5 (vip-import-sql.js:110).
112
- var md5RE = regexp.MustCompile(`(?i)^[a-f0-9]{32}$`)
113
-
114
- func isValidMd5(md5 string) bool { return md5RE.MatchString(md5) }
115
-
116
- // importEnvInfo flattens the ImportSQLEnvInfo response fields the
117
- // handler consumes (Node got these via appQuery — vip-import-sql.js:41).
118
- type importEnvInfo struct {
119
- Launched bool
120
- PrimaryDomainName string
121
- HasImportStatus bool
122
- ImportInProgress bool
123
- DbOperationInProgress bool
124
- WPSites []importWPSite
125
- // WPSitesKnown is false when the API returned no site catalog at all
126
- // (wpSitesSDS null, or wpSitesSDS.nodes null) — Node's `siteArray`
127
- // being undefined. It is true for a present list, INCLUDING an empty
128
- // one. The playbook treats the two cases differently.
129
- WPSitesKnown bool
130
- }
131
-
132
- type importWPSite struct {
133
- ID int64
134
- HomeURL string
135
- }
136
-
137
- func fetchImportEnvInfo(ctx context.Context, client graphql.Client, appID, envID int64) (*importEnvInfo, error) {
138
- resp, err := gql.ImportSQLEnvInfo(ctx, client, appID, envID)
139
- if err != nil {
140
- return nil, err
141
- }
142
- info := &importEnvInfo{}
143
- if resp == nil || resp.App == nil || len(resp.App.Environments) == 0 || resp.App.Environments[0] == nil {
144
- return info, nil
145
- }
146
- env := resp.App.Environments[0]
147
- if env.Launched != nil {
148
- info.Launched = *env.Launched
149
- }
150
- if env.PrimaryDomain != nil {
151
- info.PrimaryDomainName = env.PrimaryDomain.Name
152
- }
153
- if env.ImportStatus != nil {
154
- info.HasImportStatus = true
155
- if env.ImportStatus.ImportInProgress != nil {
156
- info.ImportInProgress = *env.ImportStatus.ImportInProgress
157
- }
158
- if env.ImportStatus.DbOperationInProgress != nil {
159
- info.DbOperationInProgress = *env.ImportStatus.DbOperationInProgress
160
- }
161
- }
162
- // Node reads `selectedEnvironmentObj?.wpSitesSDS?.nodes`, so BOTH a null
163
- // wpSitesSDS and a null nodes leave siteArray undefined. An empty array
164
- // is a real (fatal) answer; undefined is "don't know" (warn + proceed).
165
- if env.WpSitesSDS != nil && env.WpSitesSDS.Nodes != nil {
166
- info.WPSitesKnown = true
167
- for _, n := range env.WpSitesSDS.Nodes {
168
- if n == nil {
169
- continue
170
- }
171
- s := importWPSite{}
172
- if n.Id != nil {
173
- s.ID = *n.Id
174
- }
175
- if n.HomeUrl != nil {
176
- s.HomeURL = *n.HomeUrl
177
- }
178
- info.WPSites = append(info.WPSites, s)
179
- }
180
- }
181
- return info, nil
182
- }
183
-
184
- // isMultiSiteInSiteMeta ports is-multi-site.ts:11 (sans Node's WeakMap
185
- // memo — one call per process here).
186
- func isMultiSiteInSiteMeta(ctx context.Context, client graphql.Client, appID, envID int64) (bool, error) {
187
- resp, err := gql.AppMultiSiteCheck(ctx, client, &appID, &envID)
188
- if err != nil {
189
- // Node: exit.withError(`StartImport call failed: ${GraphQlError}`)
190
- // — is-multi-site.ts:56 (message is a Node copy/paste bug; kept).
191
- return false, fmt.Errorf("StartImport call failed: %s", err)
192
- }
193
- if resp == nil || resp.App == nil || len(resp.App.Environments) == 0 || resp.App.Environments[0] == nil {
194
- return false, nil
195
- }
196
- env := resp.App.Environments[0]
197
- if (env.IsMultisite != nil && *env.IsMultisite) ||
198
- (env.IsSubdirectoryMultisite != nil && *env.IsSubdirectoryMultisite) {
199
- return true, nil
200
- }
201
- return false, nil
202
- }
203
-
204
- // isMultisitePrimaryDomainMapped ports is-multisite-domain-mapped.ts:72.
205
- func isMultisitePrimaryDomainMapped(ctx context.Context, client graphql.Client, appID, envID int64, primaryDomain string) (bool, error) {
206
- resp, err := gql.AppMappedDomains(ctx, client, &appID, &envID)
207
- if err != nil {
208
- // Node: same copy/paste "StartImport call failed" message
209
- // (is-multisite-domain-mapped.ts:111).
210
- return false, fmt.Errorf("StartImport call failed: %s", err)
211
- }
212
- if resp == nil || resp.App == nil || len(resp.App.Environments) == 0 || resp.App.Environments[0] == nil {
213
- return false, nil
214
- }
215
- env := resp.App.Environments[0]
216
- if env.Domains == nil {
217
- return false, nil
218
- }
219
- for _, d := range env.Domains.Nodes {
220
- if d != nil && d.Name == primaryDomain {
221
- return true, nil
222
- }
223
- }
224
- return false, nil
225
- }
226
-
227
- // gateInput carries everything importSQLGates needs; limits are
228
- // injectable so tests don't need 10GB fixtures.
229
- type gateInput struct {
230
- FileNameOrURL string
231
- IsURL bool
232
- Md5 string
233
- Launched bool
234
- AppTypeID int64
235
- Info *importEnvInfo
236
- Out io.Writer
237
- SizeLimit int64
238
- SizeLimitLaunched int64
239
- }
240
-
241
- // importSQLGates ports gates (vip-import-sql.js:154). Every error string
242
- // is verbatim Node.
243
- func importSQLGates(g gateInput) error {
244
- if g.SizeLimit == 0 {
245
- g.SizeLimit = siteimport.SQLImportFileSizeLimit
246
- }
247
- if g.SizeLimitLaunched == 0 {
248
- g.SizeLimitLaunched = siteimport.SQLImportFileSizeLimitLaunched
249
- }
250
-
251
- if g.Md5 != "" && !isValidMd5(g.Md5) {
252
- trackEvent("import_sql_command_error", map[string]any{"error_type": "invalid-md5"})
253
- return errors.New("The provided MD5 hash is invalid. It should be a 32-character hexadecimal string.")
254
- }
255
- if !g.IsURL && g.Md5 != "" {
256
- fmt.Fprintln(g.Out, color.YellowString("The --md5 parameter is only valid for imports from a remote URL. This option will be ignored."))
257
- }
258
-
259
- if !g.IsURL {
260
- fileName := g.FileNameOrURL
261
- meta, metaErr := upload.GetFileMeta(fileName)
262
- if metaErr != nil {
263
- // Node's gates call getFileMeta first (js:175), so a missing
264
- // file errors before any filename validation. Node surfaces a
265
- // raw ENOENT; we use the gate's own unreadable wording since
266
- // the raw errno text is platform-specific anyway.
267
- trackEvent("import_sql_command_error", map[string]any{"error_type": "sqlfile-unreadable"})
268
- return fmt.Errorf("File '%s' does not exist or is not readable.", fileName)
269
- }
270
-
271
- if err := sqlvalidation.ValidateFilename(meta.BaseName); err != nil {
272
- trackEvent("import_sql_command_error", map[string]any{"error_type": "invalid-filename"})
273
- return err
274
- }
275
- if err := sqlvalidation.ValidateImportFileExtension(fileName); err != nil {
276
- trackEvent("import_sql_command_error", map[string]any{"error_type": "invalid-extension"})
277
- return err
278
- }
279
-
280
- fi, statErr := os.Stat(fileName)
281
- if statErr != nil {
282
- trackEvent("import_sql_command_error", map[string]any{"error_type": "sqlfile-unreadable"})
283
- return fmt.Errorf("File '%s' does not exist or is not readable.", fileName)
284
- }
285
- if fi.IsDir() {
286
- trackEvent("import_sql_command_error", map[string]any{"error_type": "sqlfile-notfile"})
287
- return fmt.Errorf("Path '%s' is not a file.", fileName)
288
- }
289
- if f, err := os.Open(fileName); err != nil { // #nosec G304 -- access check, Node checkFileAccess
290
- trackEvent("import_sql_command_error", map[string]any{"error_type": "sqlfile-unreadable"})
291
- return fmt.Errorf("File '%s' does not exist or is not readable.", fileName)
292
- } else {
293
- f.Close()
294
- }
295
- if fi.Size() == 0 {
296
- trackEvent("import_sql_command_error", map[string]any{"error_type": "sqlfile-empty"})
297
- return fmt.Errorf("File '%s' is empty.", fileName)
298
- }
299
-
300
- maxFileSize := g.SizeLimit
301
- if g.Launched {
302
- maxFileSize = g.SizeLimitLaunched
303
- }
304
- if fi.Size() > maxFileSize {
305
- trackEvent("import_sql_command_error", map[string]any{
306
- "error_type": "sqlfile-toobig", "file_size": fi.Size(), "launched": g.Launched,
307
- })
308
- launchedNote := ""
309
- if g.Launched {
310
- launchedNote = " Note: This limit is lower for launched environments to maintain site stability."
311
- }
312
- return fmt.Errorf("The sql import file size (%d bytes) exceeds the limit (%d bytes).%s\n\nPlease split it into multiple files or contact support for assistance.",
313
- fi.Size(), maxFileSize, launchedNote)
314
- }
315
- }
316
-
317
- // currentUserCanImportForApp is a stub in Node (db-file-import.ts:21,
318
- // always true) — no Go branch needed.
319
-
320
- if !siteimport.IsSupportedApp(g.AppTypeID) {
321
- trackEvent("import_sql_command_error", map[string]any{"error_type": "unsupported-app"})
322
- return errors.New("The type of application you specified does not currently support SQL imports.")
323
- }
324
-
325
- if g.Info == nil || !g.Info.HasImportStatus {
326
- trackEvent("import_sql_command_error", map[string]any{"error_type": "empty-import-status"})
327
- return errors.New("Could not determine the import status for this environment. Check the app/environment and if the problem persists, contact support for assistance.")
328
- }
329
- if g.Info.ImportInProgress {
330
- trackEvent("import_sql_command_error", map[string]any{"error_type": "existing-import"})
331
- return errors.New("There is already an import in progress.\n\nYou can view the status with command:\n vip import sql status")
332
- }
333
- if g.Info.DbOperationInProgress {
334
- trackEvent("import_sql_command_error", map[string]any{"error_type": "existing-dbop"})
335
- return errors.New("There is already a database operation in progress. Please try again later.")
336
- }
337
- return nil
338
- }
339
-
340
- // validateAndGetTableNames ports validateAndGetTableNames
341
- // (vip-import-sql.js:420): run the static SQL checks + the site-type
342
- // (multisite) checks, returning the captured table names. The "Reading
343
- // line N " ticker (sql.ts:533) prints every 500 lines.
344
- func validateAndGetTableNames(cmd *cobra.Command, client graphql.Client, appID, envID int64, fileName string, skipValidate bool, searchReplace []string, isMultiSite bool) ([]string, error) {
345
- out := cmd.OutOrStdout()
346
- if skipValidate {
347
- debuglog.Printf(cmd.Context(), "@automattic/vip:bin:vip-import-sql", "Validation was skipped. No playbook information will be displayed.")
348
- fmt.Fprintln(out, "Skipping SQL file validation.")
349
- return []string{}, nil
350
- }
351
-
352
- f, err := os.Open(fileName) // #nosec G304 -- user-supplied CLI path
353
- if err != nil {
354
- // line-by-line.ts:29 wording.
355
- return nil, errors.New("The file at the provided path is either missing or not readable. Please check the input and try again.")
356
- }
357
- defer f.Close()
358
-
359
- // Static checks + multisite capture share one streaming pass, like
360
- // Node's fileLineValidations dispatch loop (line-by-line.ts:51).
361
- wpSiteCapture := siteimport.NewMultilineCapture("INSERT INTO `wp_site`")
362
- var wpSiteStatements [][]string
363
- ticker := newImportLineTicker(out, isTerminalWriter(out))
364
- debuglog.Printf(cmd.Context(), "vip:validations:line-by-line", "Validations: static SQL checks and site type")
365
- res, scanErr := sqlvalidation.ValidateWithLineHook(f, func(line string, lineNum int) {
366
- if lineNum%500 == 0 {
367
- ticker.tick(lineNum) // sql.ts:533 trailing space
368
- }
369
- wpSiteStatements = wpSiteCapture.Feed(line)
370
- })
371
- ticker.done()
372
- if scanErr != nil {
373
- return nil, fmt.Errorf("Error validating input file: %s", scanErr)
374
- }
375
- isMultiSiteSqlDump := res.IsMultiSite
376
- debuglog.Printf(cmd.Context(), "vip:vip-import-sql", "Site type: target_multisite=%t dump_multisite=%t", isMultiSite, isMultiSiteSqlDump)
377
-
378
- // Static-validation report (import mode): problems throw with the
379
- // joined error output + --skip-validate advice (vip-import-sql.js:436).
380
- if msg, problems := buildImportValidationError(res); problems > 0 {
381
- fmt.Fprintln(out, "")
382
- return nil, fmt.Errorf("%s\n\nIf you are confident that the file does not contain unsupported statements, you can retry the command with the %s option.\n",
383
- msg, color.YellowString("--skip-validate"))
384
- }
385
-
386
- // siteTypeValidations.postLineExecutionProcessing (site-type.ts:29).
387
- if !isMultiSite && isMultiSiteSqlDump {
388
- trackEvent("import_sql_command_error", map[string]any{"error_type": "not-multisite-with-multisite-sql-dump"})
389
- return nil, errors.New("You have provided a multisite SQL dump file for import into a single site (non-multisite).")
390
- }
391
- if isMultiSite && !isMultiSiteSqlDump {
392
- trackEvent("import_sql_command_error", map[string]any{"error_type": "subsite-import-without-subsite-sql-dump"})
393
- return nil, errors.New("You have requested a subsite SQL import but have not provided a subsite compatible SQL dump.")
394
- }
395
-
396
- primaryDomain := siteimport.MaybeSearchReplacePrimaryDomain(
397
- siteimport.GetPrimaryDomainFromSQL(wpSiteStatements), searchReplace)
398
- if primaryDomain != "" {
399
- mapped, err := isMultisitePrimaryDomainMapped(cmd.Context(), client, appID, envID, primaryDomain)
400
- if err != nil {
401
- return nil, err
402
- }
403
- if isMultiSite && !mapped {
404
- trackEvent("import_sql_command_error", map[string]any{"error_type": "multisite-import-where-primary-domain-unmapped"})
405
- return nil, errors.New("This import would set the network's main site domain to " + primaryDomain +
406
- ", however this domain is not mapped to the target environment. Please replace this domain in your " +
407
- "import file, or map it to the environment.")
408
- }
409
- }
410
-
411
- return res.TableNames, nil
412
- }
413
-
414
- // isTerminalWriter reports whether w is backed by a terminal. Sensing the
415
- // WRITER (rather than os.Stdout unconditionally) keeps redirected output and
416
- // tests honest.
417
- func isTerminalWriter(w io.Writer) bool {
418
- f, ok := w.(interface{ Fd() uintptr })
419
- return ok && term.IsTerminal(int(f.Fd()))
420
- }
421
-
422
- // importLineTicker renders the "Reading line N" validation counter.
423
- //
424
- // Node's sql.ts imports `{ stdout as log } from '@wwa/single-line-log'` and
425
- // calls log(`Reading line ${lineNum} `) every 500 lines (sql.ts:531-534), so
426
- // the counter REWRITES itself in place. Printing a newline-terminated line
427
- // per tick instead means a 5M-line dump buries the validation findings under
428
- // ~10,000 lines of progress chrome.
429
- //
430
- // tui.MultiLineRenderer is the repo's in-place renderer (the same primitive
431
- // startImportProgressRenderer uses); a one-element frame is the single-line
432
- // case. On a non-TTY sink the ticker goes silent: Node still emits its
433
- // cursor-movement escapes there, but those carry no information once the
434
- // output is a pipe or a CI log — and emitting raw ANSI (or the old
435
- // 10,000 lines) is strictly worse than nothing. This matches the non-TTY
436
- // handling in startImportProgressRenderer (progress_renderer.go:36).
437
- type importLineTicker struct {
438
- r *tui.MultiLineRenderer
439
- }
440
-
441
- func newImportLineTicker(w io.Writer, tty bool) *importLineTicker {
442
- if !tty {
443
- return &importLineTicker{}
444
- }
445
- return &importLineTicker{r: tui.NewMultiLineRenderer(w, true)}
446
- }
447
-
448
- func (t *importLineTicker) tick(lineNum int) {
449
- if t.r == nil {
450
- return
451
- }
452
- // Trailing space is Node's (sql.ts:533).
453
- t.r.Render([]string{fmt.Sprintf("Reading line %d ", lineNum)})
454
- }
455
-
456
- // done releases the line so subsequent output starts fresh instead of
457
- // overwriting the last counter frame.
458
- func (t *importLineTicker) done() {
459
- if t.r == nil {
460
- return
461
- }
462
- t.r.Done()
463
- }
464
-
465
- // importSearchReplacePair is one parsed --search-replace value.
466
- // HasTo distinguishes "no replacement given at all" from "replace with the
467
- // empty string" — two different wire payloads with two different server
468
- // behaviors.
469
- type importSearchReplacePair struct {
470
- From string
471
- To string
472
- HasTo bool
473
- }
474
-
475
- // parseImportSearchReplacePair ports Node's
476
- // `pair.split( ',' ).map( str => str.trim() )` + `{from: arr[0], to: arr[1]}`
477
- // (vip-import-sql.js:821-827; the identical destructure lives in
478
- // formatSearchReplaceValues, format.ts:201).
479
- //
480
- // Two JS behaviors that a naive strings.SplitN(pair, ",", 2) gets wrong:
481
- //
482
- // - split(',') has no limit, so "a,b,c" → ["a","b","c"] and only the first
483
- // two entries are read. The tail is DISCARDED, not appended to `to`.
484
- // - with no comma, arr[1] is undefined, and JSON.stringify omits undefined
485
- // properties — so `to` never reaches the server.
486
- func parseImportSearchReplacePair(pair string) importSearchReplacePair {
487
- parts := strings.Split(pair, ",")
488
- out := importSearchReplacePair{From: strings.TrimSpace(parts[0])}
489
- if len(parts) > 1 {
490
- out.To = strings.TrimSpace(parts[1])
491
- out.HasTo = true
492
- }
493
- return out
494
- }
495
-
496
- // localSearchReplaceNeeded reports whether the local search-replace pass will
497
- // produce anything anyone can observe.
498
- //
499
- // DELIBERATE DIVERGENCE FROM NODE — cost only, no change to imported bytes.
500
- // Node runs the pass for every local file with pairs and then discards the
501
- // result: `outputFileName` is destructured at vip-import-sql.js:674,
502
- // type-checked at :681, and never referenced again, because `fileNameToUpload`
503
- // was pinned to the ORIGINAL at :577. Validation does not use it either (it
504
- // takes the original plus the raw pairs and simulates the replacement). The
505
- // server performs the real replacement from the StartImport payload.
506
- //
507
- // So on the default path Node reads the whole dump and writes a rewritten copy
508
- // to a temp file that nothing ever opens — on a 5 GB dump, 5 GB read and 5 GB
509
- // written for nothing. We run it only when the output is observable:
510
- // - --in-place, which rewrites the user's own file and is the only thing that
511
- // changes what gets uploaded, or
512
- // - an explicit --output, which the user asked for as an artifact.
513
- //
514
- // Note --output is NOT the file that gets imported, in either CLI; only
515
- // --in-place changes that. See TestImportSQLHappyPathUploadsOriginalFile.
516
- func localSearchReplaceNeeded(isURL, inPlace bool, output string, searchReplace []string) bool {
517
- if isURL || len(searchReplace) == 0 {
518
- return false // Node never runs a local pass for a URL
519
- }
520
- return inPlace || output != ""
521
- }
522
-
523
- // serverSideSearchReplaceNeeded reports whether --search-replace pairs must be
524
- // sent to the server, i.e. whether the bytes we uploaded still need replacing.
525
- //
526
- // DELIBERATE DIVERGENCE FROM NODE. Node applies the pairs twice on the
527
- // --in-place path, which silently corrupts non-idempotent replacements:
528
- //
529
- // - vip-import-sql.js:577 sets `fileNameToUpload = fileNameOrURL` BEFORE the
530
- // search-replace block at :671 and never reassigns it, so the rewritten
531
- // --output copy is discarded and the ORIGINAL is uploaded. The server pass
532
- // at :760 is then the only application. Correct.
533
- // - With --in-place the original file on disk IS the rewritten file, so the
534
- // upload already carries the replacements — and :760 is not gated on
535
- // isUrl, so the server applies them again.
536
- //
537
- // A domain swap is idempotent and hides this (the second pass matches
538
- // nothing), but a pair like `a,aa` turns "a" into "aaaa". We send the pairs
539
- // only when the upload has not already been rewritten.
540
- func serverSideSearchReplaceNeeded(isURL, inPlace bool, searchReplace []string) bool {
541
- if len(searchReplace) == 0 {
542
- return false
543
- }
544
- // A URL is never rewritten locally (runImportSQL forces inPlace=false for
545
- // URLs), so the server must always do the work.
546
- if isURL {
547
- return true
548
- }
549
- // Local file: only --in-place mutates what we upload.
550
- return !inPlace
551
- }
552
-
553
- // buildImportSearchReplaceInput maps the raw --search-replace values onto
554
- // the StartImport input shape. A pair with no comma leaves To nil so the
555
- // field is omitted from the JSON body, matching Node. Sending to:"" instead
556
- // would tell the server to replace every occurrence of `from` with nothing.
557
- func buildImportSearchReplaceInput(searchReplace []string) []*gql.AppEnvironmentImportSearchReplace {
558
- pairs := make([]*gql.AppEnvironmentImportSearchReplace, 0, len(searchReplace))
559
- for _, raw := range searchReplace {
560
- p := parseImportSearchReplacePair(raw)
561
- from := p.From
562
- entry := &gql.AppEnvironmentImportSearchReplace{From: &from}
563
- if p.HasTo {
564
- to := p.To
565
- entry.To = &to
566
- }
567
- pairs = append(pairs, entry)
568
- }
569
- return pairs
570
- }
571
-
572
- // displayPlaybook ports displayPlaybook (vip-import-sql.js:446).
573
- func displayPlaybook(out io.Writer, fileName, domain, formattedEnv string, app appctx.App, launched, isMultiSite bool, tableNames, searchReplace []string, wpSites []importWPSite, wpSitesKnown bool) error {
574
- fmt.Fprintln(out)
575
- fmt.Fprintf(out, " importing: %s\n", color.HiBlueString(fileName))
576
- fmt.Fprintf(out, " to: %s\n", color.CyanString(domain))
577
- fmt.Fprintf(out, " site: %s (%s)\n", app.Name, formattedEnv)
578
-
579
- // Node's formatSearchReplaceValues (format.ts:201) destructures the same
580
- // `split(',').map(trim)` as the wire payload, so the playbook must show
581
- // the same from/to the server will receive.
582
- for _, pair := range searchReplace {
583
- p := parseImportSearchReplacePair(pair)
584
- fmt.Fprintf(out, " s-r: %s -> %s\n", color.BlueString(p.From), color.BlueString(p.To))
585
- }
586
-
587
- if isMultiSite {
588
- fmt.Fprintf(out, " multisite: true\n")
589
- }
590
-
591
- if len(tableNames) == 0 {
592
- return nil // validation skipped — no playbook table info (js:481)
593
- }
594
- fmt.Fprintln(out)
595
- if !isMultiSite {
596
- fmt.Fprintln(out, "Tables that will be imported by this process:")
597
- fmt.Fprintln(out, strings.Join(tableNames, " "))
598
- return nil
599
- }
600
-
601
- // Node's three-way branch (js:489-499). `siteArray` is
602
- // `selectedEnvironmentObj?.wpSitesSDS?.nodes`:
603
- //
604
- // undefined (wpSitesSDS or nodes null) → yellow warning, then RETURN
605
- // (the import proceeds)
606
- // [] → throw
607
- // [...] → per-site table breakdown
608
- //
609
- // Proceeding on "unknown" is not unguarded: promptToContinueImport still
610
- // makes the user type the target domain immediately after the playbook.
611
- // Hard-failing here would make SQL import impossible on any multisite
612
- // whose site catalog the API declines to return.
613
- if !wpSitesKnown {
614
- fmt.Fprintln(out, color.YellowString(
615
- "Unable to determine the network sites affected by this import. Please proceed only if you are confident that the contents of the file are valid for import."))
616
- return nil
617
- }
618
- if len(wpSites) == 0 {
619
- return errors.New("There were no sites in your multisite installation.")
620
- }
621
-
622
- if launched {
623
- fmt.Fprintln(out, color.YellowString("You are updating tables in a launched multisite environment. The performance of sites on the network might be impacted by this operation."))
624
- }
625
- fmt.Fprintln(out, color.YellowString("The following sites will be affected by the import:"))
626
- for _, site := range wpSites {
627
- var siteRE *regexp.Regexp
628
- if site.ID == 1 {
629
- siteRE = regexp.MustCompile(`(?i)^wp_[a-z]+`)
630
- } else {
631
- siteRE = regexp.MustCompile(fmt.Sprintf(`(?i)^wp_%d_[a-z]+`, site.ID))
632
- }
633
- var group []string
634
- for _, name := range tableNames {
635
- if siteRE.MatchString(name) {
636
- group = append(group, name)
637
- }
638
- }
639
- fmt.Fprintln(out)
640
- fmt.Fprintln(out, color.HiBlueString(
641
- fmt.Sprintf("Blog with ID %d and URL %s will import the following tables:", site.ID, site.HomeURL)))
642
- fmt.Fprintln(out, strings.Join(group, " "))
643
- }
644
- return nil
645
- }
646
-
647
- // promptToContinueImport ports promptToContinue (vip-import-sql.js:326):
648
- // the user must type the (uppercased) domain to proceed.
649
- func promptToContinueImport(cmd *cobra.Command, out io.Writer, launched bool, formattedEnv, domain string, isMultiSite bool, tableNames []string) error {
650
- fmt.Fprintln(out)
651
- promptToMatch := strings.ToUpper(domain)
652
- source := "the above file"
653
- if !isMultiSite && len(tableNames) > 0 {
654
- source = "the above tables"
655
- }
656
- launchedLabel := "unlaunched"
657
- if launched {
658
- launchedLabel = "launched"
659
- }
660
- message := fmt.Sprintf("You are about to import %s into the %s %s environment %s.\nType '%s' (without the quotes) to continue:\n",
661
- source, launchedLabel, formattedEnv, color.YellowString(domain), color.YellowString(promptToMatch))
662
- answer, err := importInputPrompt(cmd, message, "")
663
- if err != nil || strings.ToUpper(answer) != promptToMatch {
664
- trackEvent("import_sql_unexpected_tables", nil)
665
- return errors.New("The input did not match the expected environment label. Import aborted.")
666
- }
667
- return nil
668
- }
669
-
670
- // confirmSkipBackup ports confirmSkipBackup (vip-import-sql.js:359): the
671
- // ⚠️ warning wall, a y/n confirm, then a typed "yes".
672
- func confirmSkipBackup(cmd *cobra.Command, out io.Writer) (bool, error) {
673
- fmt.Fprintln(out, color.New(color.FgRed, color.Bold).Sprint("⚠️ WARNING ⚠️"))
674
- fmt.Fprintln(out, color.RedString(color.New(color.FgRed, color.Bold).Sprint("YOU ARE ABOUT TO SKIP CREATING A BACKUP BEFORE IMPORTING SQL!\n")))
675
- fmt.Fprintln(out, color.New(color.FgYellow, color.Bold).Sprint("This action is EXTREMELY DANGEROUS and can result in:"))
676
- fmt.Fprintln(out, color.New(color.FgYellow, color.Bold).Sprint("• Permanent data loss"))
677
- fmt.Fprintln(out, color.New(color.FgYellow, color.Bold).Sprint("• Inability to automatically restore your database"))
678
- fmt.Fprintln(out, color.New(color.FgYellow, color.Bold).Sprint("• Complete site failure"))
679
- fmt.Fprintln(out, color.New(color.FgRed, color.Bold).Sprint("There is NO way to undo this action once the import begins!\n"))
680
-
681
- importAbortedMsg := color.RedString("✗ Import aborted.")
682
-
683
- first, err := importConfirmPrompt(cmd, "Are you absolutely certain you want to skip the backup?", false)
684
- if err != nil || !first {
685
- trackEvent("import_sql_skip_backup_cancelled", nil)
686
- fmt.Fprintln(out, importAbortedMsg)
687
- return false, nil
688
- }
689
-
690
- second, err := importInputPrompt(cmd,
691
- fmt.Sprintf("Type '%s' (without quotes) to proceed WITHOUT creating a backup (this cannot be undone):\n", color.YellowString("yes")), "")
692
- if err != nil || strings.ToLower(second) != "yes" {
693
- trackEvent("import_sql_skip_backup_cancelled", nil)
694
- fmt.Fprintln(cmd.ErrOrStderr(), "Failed to confirm!")
695
- fmt.Fprintln(out, importAbortedMsg)
696
- return false, nil
697
- }
698
-
699
- trackEvent("import_sql_skip_backup_confirmed", nil)
700
- fmt.Fprintln(out, color.RedString("⚠️ Backup will be skipped. Proceeding with import..."))
701
- return true, nil
702
- }
703
-
704
- func runImportSQL(cmd *cobra.Command, args []string) error {
705
- ae := appctx.FromContext(cmd.Context())
706
- if ae == nil {
707
- return errors.New("appctx not set; this is a wiring bug")
708
- }
709
- cfg := GetConfig()
710
- out := cmd.OutOrStdout()
711
- fileNameOrURL := args[0]
712
-
713
- skipValidate, _ := cmd.Flags().GetBool("skip-validate")
714
- searchReplace, _ := cmd.Flags().GetStringArray("search-replace")
715
- inPlace, _ := cmd.Flags().GetBool("in-place")
716
- output, _ := cmd.Flags().GetString("output")
717
- skipMaintenanceMode, _ := cmd.Flags().GetBool("skip-maintenance-mode")
718
- md5Flag, _ := cmd.Flags().GetString("md5")
719
- headerFlags, _ := cmd.Flags().GetStringArray("header")
720
- skipBackup, _ := cmd.Flags().GetBool("skip-backup")
721
-
722
- gqlCtx := gql.WithAllowGQLErrors(cmd.Context())
723
- info, err := fetchImportEnvInfo(gqlCtx, cfg.GQLClient, ae.App.ID, ae.Env.ID)
724
- if err != nil {
725
- return err
726
- }
727
- isMultiSite, err := isMultiSiteInSiteMeta(gqlCtx, cfg.GQLClient, ae.App.ID, ae.Env.ID)
728
- if err != nil {
729
- return err
730
- }
731
- isURL := isValidImportURL(fileNameOrURL)
732
-
733
- headers, err := parseImportHeaders(headerFlags)
734
- if err != nil {
735
- return err
736
- }
737
- if !isURL && len(headers) > 0 {
738
- fmt.Fprintln(out, color.YellowString("The --header option is only valid for imports from a remote URL. This option will be ignored."))
739
- }
740
- if isURL && inPlace {
741
- // Node's wording says "remote URL" here — known Node copy bug,
742
- // kept bug-for-bug (vip-import-sql.js:600).
743
- fmt.Fprintln(out, color.YellowString("The --in-place option is only valid for imports from a remote URL. This option will be ignored."))
744
- inPlace = false
745
- }
746
- if isURL && output != "" {
747
- fmt.Fprintln(out, color.YellowString("The --output option is only valid for imports of a local file. This option will be ignored."))
748
- output = ""
749
- }
750
-
751
- debuglog.Printf(cmd.Context(), "@automattic/vip:bin:vip-import-sql", "Options: remote=%t skip_validate=%t skip_backup=%t headers=%d replacements=%d", isURL, skipValidate, skipBackup, len(headers), len(searchReplace))
752
-
753
- trackEvent("import_sql_command_execute", map[string]any{"is_url": isURL})
754
-
755
- if err := importSQLGates(gateInput{
756
- FileNameOrURL: fileNameOrURL, IsURL: isURL, Md5: md5Flag,
757
- Launched: info.Launched, AppTypeID: ae.App.TypeId, Info: info, Out: out,
758
- }); err != nil {
759
- return err
760
- }
761
-
762
- domain := info.PrimaryDomainName
763
- if domain == "" {
764
- domain = fmt.Sprintf("#%d", ae.Env.ID) // js:626
765
- }
766
- formattedEnv := formatEnvironment(ae.Env.Type)
767
- launched := info.Launched
768
-
769
- // fileNameToUpload === fileNameOrURL in Node (js:630, never
770
- // reassigned): the --output copy of a search-replace run is NOT what
771
- // gets uploaded; only --in-place mutates the original. Bug-for-bug.
772
- fileNameToUpload := fileNameOrURL
773
-
774
- var tableNames []string
775
- if !isURL {
776
- tableNames, err = validateAndGetTableNames(cmd, cfg.GQLClient, ae.App.ID, ae.Env.ID,
777
- fileNameToUpload, skipValidate, searchReplace, isMultiSite)
778
- if err != nil {
779
- return err
780
- }
781
- }
782
-
783
- if err := displayPlaybook(out, fileNameOrURL, domain, formattedEnv, ae.App,
784
- launched, isMultiSite, tableNames, searchReplace, info.WPSites, info.WPSitesKnown); err != nil {
785
- return err
786
- }
787
-
788
- if err := promptToContinueImport(cmd, out, launched, formattedEnv, domain, isMultiSite, tableNames); err != nil {
789
- return err
790
- }
791
-
792
- if skipBackup {
793
- confirmed, err := confirmSkipBackup(cmd, out)
794
- if err != nil {
795
- return err
796
- }
797
- if !confirmed {
798
- return nil // Node: process.exit(0)
799
- }
800
- }
801
-
802
- if !isURL && inPlace {
803
- approved, err := importConfirmPrompt(cmd,
804
- "Are you sure you want to run search and replace on your input file? This operation is not reversible.", false)
805
- if err != nil || !approved {
806
- trackEvent("search_replace_in_place_cancelled", map[string]any{"is_import": true, "in_place": inPlace})
807
- return nil // Node: process.exit()
808
- }
809
- }
810
-
811
- // ===== progress phase: no stray prints below (js:690 WARNING) =====
812
- pt := tui.NewProgressTracker([]tui.ProgressStep{
813
- {ID: "replace", Name: "Performing search and replace"},
814
- {ID: "upload", Name: "Uploading file"},
815
- {ID: "queue_import", Name: "Queueing import"},
816
- })
817
- status := "running"
818
- setPrefixSuffix := func() {
819
- pt.SetPrefix("\n=============================================================\nProcessing the SQL import for your environment...\n")
820
- trailing := ""
821
- if status == "running" {
822
- trailing = "Loading remaining steps"
823
- }
824
- pt.SetSuffix("\n" + tui.GlyphForStatus(tui.StepState(status), tui.SpinnerGlyphs[0]) + " " + trailing)
825
- }
826
- setPrefixSuffix()
827
- renderer := startImportProgressRenderer(cmd, pt)
828
- defer renderer.stop(cmd, false)
829
-
830
- failWithError := func(failureErr error) error {
831
- status = "failed"
832
- setPrefixSuffix()
833
- renderer.stop(cmd, true)
834
- return failureErr
835
- }
836
-
837
- switch {
838
- case localSearchReplaceNeeded(isURL, inPlace, output, searchReplace):
839
- _ = pt.StepRunning("replace")
840
- res, srErr := searchreplace.RunContext(cmd.Context(), fileNameOrURL, searchReplace, searchreplace.Options{
841
- InPlace: inPlace, Output: output,
842
- })
843
- if srErr != nil {
844
- _ = pt.StepFailed("replace")
845
- return failWithError(srErr)
846
- }
847
- if res.OutputFileName == "" {
848
- _ = pt.StepFailed("replace")
849
- return failWithError(errors.New("Unable to determine location of the intermediate search and replace file."))
850
- }
851
- _ = pt.StepSuccess("replace")
852
- case !isURL && len(searchReplace) > 0:
853
- // Pairs were given, but the local pass would only write a temp file
854
- // nothing ever opens (see localSearchReplaceNeeded). The server applies
855
- // them from the StartImport payload instead. The step still reports
856
- // success because the replacement IS happening — just not here — so the
857
- // progress output matches Node's.
858
- _ = pt.StepRunning("replace")
859
- _ = pt.StepSuccess("replace")
860
- default:
861
- _ = pt.StepSkipped("replace")
862
- }
863
-
864
- appID := ae.App.ID
865
- envID := ae.Env.ID
866
- input := &gql.AppEnvironmentImportInput{
867
- Id: &appID,
868
- EnvironmentId: &envID,
869
- SkipMaintenanceMode: &skipMaintenanceMode,
870
- }
871
- if skipBackup {
872
- t := true
873
- input.SkipBackup = &t
874
- }
875
-
876
- if isURL {
877
- _ = pt.StepSkipped("upload")
878
- input.Url = &fileNameOrURL
879
- input.SearchReplace = []*gql.AppEnvironmentImportSearchReplace{}
880
- if md5Flag != "" {
881
- input.Md5 = &md5Flag
882
- }
883
- urlHeaders := make([]*gql.RequestHeader, 0, len(headers))
884
- for _, h := range headers {
885
- urlHeaders = append(urlHeaders, &gql.RequestHeader{Name: h.Name, Value: h.Value})
886
- }
887
- input.UrlHeaders = urlHeaders
888
- } else {
889
- _ = pt.StepRunning("upload")
890
- meta, metaErr := upload.GetFileMeta(fileNameToUpload)
891
- if metaErr != nil {
892
- _ = pt.StepFailed("upload")
893
- return failWithError(metaErr)
894
- }
895
- uc := &upload.Client{APIHost: cfg.APIHost, Token: cfg.Token}
896
- res, upErr := uc.UploadImportFile(cmd.Context(), appID, envID, meta, "md5",
897
- func(pct string) { pt.SetUploadPercentage(pct) })
898
- if upErr != nil {
899
- trackEvent("import_sql_command_error", map[string]any{
900
- "error_type": "upload_failed", "upload_error": upErr.Error(),
901
- })
902
- _ = pt.StepFailed("upload")
903
- return failWithError(upErr)
904
- }
905
- basename := res.Meta.BaseName
906
- checksum := res.Checksum
907
- input.Basename = &basename
908
- input.Md5 = &checksum
909
- input.SearchReplace = []*gql.AppEnvironmentImportSearchReplace{}
910
- _ = pt.StepSuccess("upload")
911
- debuglog.Printf(cmd.Context(), "@automattic/vip:bin:vip-import-sql", "Upload complete. Initiating the import.")
912
- trackEvent("import_sql_upload_complete", nil)
913
- }
914
-
915
- // searchReplace pairs → input.SearchReplace [{from,to}] (js:760-774),
916
- // but only when the uploaded bytes have not already been rewritten.
917
- // DELIBERATE DIVERGENCE — see serverSideSearchReplaceNeeded.
918
- if serverSideSearchReplaceNeeded(isURL, inPlace, searchReplace) {
919
- input.SearchReplace = buildImportSearchReplaceInput(searchReplace)
920
- }
921
-
922
- if _, err := gql.StartImport(gql.WithAllowGQLErrors(cmd.Context()), cfg.GQLClient, input); err != nil {
923
- trackEvent("import_sql_command_error", map[string]any{"error_type": "StartImport-failed"})
924
- _ = pt.StepFailed("queue_import")
925
- return failWithError(fmt.Errorf("StartImport call failed: %s", err))
926
- }
927
- debuglog.Printf(cmd.Context(), "@automattic/vip:bin:vip-import-sql", "Import queued")
928
- _ = pt.StepSuccess("queue_import")
929
-
930
- return importSQLCheckStatus(cmd, pt, renderer, ae, domain, false)
931
- }
932
-
933
- // importPollInterval — VIP_IMPORT_SQL_INTERVAL_MS overrides the 5s Node
934
- // default for tests (the VIP_SYNC_INTERVAL_MS precedent, sync.go:180).
935
- func importPollInterval() time.Duration {
936
- if v := os.Getenv("VIP_IMPORT_SQL_INTERVAL_MS"); v != "" {
937
- if n, err := strconv.Atoi(v); err == nil && n > 0 {
938
- return time.Duration(n) * time.Millisecond
939
- }
940
- }
941
- return siteimport.DefaultPollInterval
942
- }
943
-
944
- // importSQLCheckStatus wraps siteimport.CheckStatus: builds the
945
- // ProgressFetch closure over gql.ImportSQLProgress (including the
946
- // pseudo-job synthesis from importStatus.progress — status.ts:288-328),
947
- // renders the Status/Site suffix block, and maps the terminal outcome to
948
- // Node's output + exit semantics.
949
- func importSQLCheckStatus(cmd *cobra.Command, pt *tui.ProgressTracker, renderer *importProgressRenderer, ae *appctx.AppEnv, domain string, returnFast bool) error {
950
- cfg := GetConfig()
951
- pollCtx := gql.WithAllowGQLErrors(cmd.Context())
952
-
953
- fetch := func(ctx context.Context) (*siteimport.ProgressSnapshot, error) {
954
- appID := ae.App.ID
955
- envID := ae.Env.ID
956
- resp, err := gql.ImportSQLProgress(ctx, cfg.GQLClient, &appID, &envID)
957
- if err != nil {
958
- return nil, err
959
- }
960
- if resp == nil || resp.App == nil || len(resp.App.Environments) == 0 || resp.App.Environments[0] == nil {
961
- // status.ts:92 — "Unable to determine import status from environment"
962
- return nil, errors.New("Unable to determine import status from environment")
963
- }
964
- env := resp.App.Environments[0]
965
- snap := &siteimport.ProgressSnapshot{}
966
- if env.Launched != nil {
967
- snap.Launched = *env.Launched
968
- }
969
-
970
- var importStatus = env.ImportStatus
971
- var statusSteps []siteimport.JobStep
972
- var statusStartedAt int64
973
- var failedStep *siteimport.FailedStep
974
- if importStatus != nil && importStatus.Progress != nil {
975
- if importStatus.Progress.Started_at != nil {
976
- statusStartedAt = int64(*importStatus.Progress.Started_at)
977
- }
978
- for _, s := range importStatus.Progress.Steps {
979
- if s == nil {
980
- continue
981
- }
982
- name := ""
983
- if s.Name != nil {
984
- name = *s.Name
985
- }
986
- result := ""
987
- if s.Result != nil {
988
- result = *s.Result
989
- }
990
- statusSteps = append(statusSteps, siteimport.JobStep{
991
- ID: name,
992
- Name: siteimport.Capitalize(strings.ReplaceAll(name, "_", " ")),
993
- Status: tui.StepState(result),
994
- })
995
- if result == "failed" && failedStep == nil {
996
- fs := &siteimport.FailedStep{Name: name, Output: nil}
997
- if s.Started_at != nil {
998
- fs.StartedAt = int64(*s.Started_at)
999
- }
1000
- for _, o := range s.Output {
1001
- if o != nil {
1002
- fs.Output = append(fs.Output, *o)
1003
- }
1004
- }
1005
- failedStep = fs
1006
- }
1007
- }
1008
- }
1009
- snap.StatusProgressStartedAt = statusStartedAt
1010
- snap.FailedStep = failedStep
1011
-
1012
- if len(env.Jobs) > 0 && env.Jobs[0] != nil {
1013
- job := *env.Jobs[0]
1014
- ij := &siteimport.ImportJob{}
1015
- if c := job.GetCreatedAt(); c != nil {
1016
- ij.CreatedAt = *c
1017
- }
1018
- if c := job.GetCompletedAt(); c != nil {
1019
- ij.CompletedAt = *c
1020
- }
1021
- if p := job.GetProgress(); p != nil {
1022
- if p.Status != nil {
1023
- ij.Status = *p.Status
1024
- }
1025
- for _, s := range p.Steps {
1026
- if s == nil {
1027
- continue
1028
- }
1029
- step := siteimport.JobStep{}
1030
- if s.Id != nil {
1031
- step.ID = *s.Id
1032
- }
1033
- if s.Name != nil {
1034
- step.Name = *s.Name
1035
- }
1036
- if s.Status != nil {
1037
- step.Status = tui.StepState(*s.Status)
1038
- }
1039
- ij.Steps = append(ij.Steps, step)
1040
- }
1041
- }
1042
- snap.Job = ij
1043
- return snap, nil
1044
- }
1045
-
1046
- // No k8s job: synthesize from importStatus.progress
1047
- // (status.ts:288-328). No steps yet → Job stays nil (wait).
1048
- if len(statusSteps) == 0 {
1049
- return snap, nil
1050
- }
1051
- ij := &siteimport.ImportJob{Steps: statusSteps}
1052
- anyFailed := false
1053
- allSuccess := true
1054
- restoreDBPending := false
1055
- var maxFinished int64
1056
- for _, s := range importStatus.Progress.Steps {
1057
- if s == nil {
1058
- continue
1059
- }
1060
- result := ""
1061
- if s.Result != nil {
1062
- result = *s.Result
1063
- }
1064
- name := ""
1065
- if s.Name != nil {
1066
- name = *s.Name
1067
- }
1068
- if result == "failed" {
1069
- anyFailed = true
1070
- }
1071
- if result != "success" {
1072
- allSuccess = false
1073
- }
1074
- if name == "restore_db" && result == "" {
1075
- restoreDBPending = true
1076
- }
1077
- if s.Finished_at != nil && int64(*s.Finished_at) > maxFinished {
1078
- maxFinished = int64(*s.Finished_at)
1079
- }
1080
- }
1081
- if anyFailed && !restoreDBPending {
1082
- ij.Status = "error"
1083
- } else if allSuccess {
1084
- ij.Status = "success"
1085
- ij.CompletedAt = time.Unix(maxFinished, 0).UTC().Format(time.RFC1123)
1086
- }
1087
- if statusStartedAt > 0 {
1088
- ij.CreatedAt = time.Unix(statusStartedAt, 0).UTC().Format(time.RFC1123)
1089
- }
1090
- snap.Job = ij
1091
- return snap, nil
1092
- }
1093
-
1094
- overall := "Checking..." // status.ts:213
1095
- setSuffix := func(createdAt, completedAt string) {
1096
- sprite := tui.GlyphForStatus(tui.StepState(overall), tui.SpinnerGlyphs[0])
1097
- formattedCreated := "TBD"
1098
- if createdAt != "" {
1099
- formattedCreated = createdAt
1100
- }
1101
- formattedCompleted := "TBD"
1102
- if createdAt != "" && completedAt != "" {
1103
- formattedCompleted = completedAt
1104
- }
1105
- exitPrompt := "(Press ^C to hide progress. The import will continue in the background.)"
1106
-
1107
- var statusMessage string
1108
- switch overall {
1109
- case "success":
1110
- statusMessage = fmt.Sprintf("Success %s imported data should be visible on your site %s.", sprite, domain)
1111
- case "running":
1112
- if pt.AllStepsSucceeded() {
1113
- statusMessage = fmt.Sprintf("Finishing up... %s ", sprite)
1114
- } else {
1115
- statusMessage = fmt.Sprintf("%s %s", siteimport.Capitalize(overall), sprite)
1116
- }
1117
- default:
1118
- statusMessage = fmt.Sprintf("%s %s", siteimport.Capitalize(overall), sprite)
1119
- }
1120
-
1121
- maybeExitPrompt := ""
1122
- if overall == "running" {
1123
- maybeExitPrompt = exitPrompt
1124
- }
1125
- maybeTimestamps := ""
1126
- if overall == "running" || overall == "success" || overall == "failed" {
1127
- maybeTimestamps = fmt.Sprintf("\nSQL Import Started: %s\nSQL Import Completed: %s", formattedCreated, formattedCompleted)
1128
- }
1129
- pt.SetSuffix(fmt.Sprintf("\n=============================================================\nStatus: %s\nSite: %s (%s)%s\n=============================================================\n%s\n",
1130
- statusMessage, ae.App.Name, formatEnvironment(ae.Env.Type), maybeTimestamps, maybeExitPrompt))
1131
- }
1132
-
1133
- res, err := siteimport.CheckStatus(pollCtx, siteimport.CheckStatusOpts{
1134
- Fetch: fetch,
1135
- Tracker: pt,
1136
- Interval: importPollInterval(),
1137
- ReturnMissingJobImmediately: returnFast,
1138
- OnPoll: func(createdAt, completedAt, _ string) {
1139
- setSuffix(createdAt, completedAt)
1140
- },
1141
- })
1142
- if err != nil {
1143
- var fe *siteimport.ImportFailedError
1144
- if errors.As(err, &fe) {
1145
- overall = "failed"
1146
- renderer.stop(cmd, true)
1147
- return errors.New(siteimport.GetErrorMessage(fe))
1148
- }
1149
- renderer.stop(cmd, true)
1150
- return err
1151
- }
1152
-
1153
- if res.Message != "" {
1154
- overall = res.Message // e.g. "No import job found" (status.ts:421)
1155
- } else {
1156
- overall = res.Status
1157
- }
1158
- setSuffix(res.CreatedAt, res.CompletedAt)
1159
- renderer.stop(cmd, true)
1160
- return nil
1161
- }