@automattic/vip 4.1.6 → 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 (311) hide show
  1. package/assets/dev-env.lando.template.yml.ejs +1 -1
  2. package/dist/bin/vip-app-deploy-token-generate.js +110 -78
  3. package/dist/bin/vip-app-deploy-token.js +24 -16
  4. package/dist/bin/vip-app-deploy-validate.js +45 -41
  5. package/dist/bin/vip-app-deploy.js +222 -215
  6. package/dist/bin/vip-app-list.js +59 -43
  7. package/dist/bin/vip-app.js +97 -66
  8. package/dist/bin/vip-backup-db.js +36 -29
  9. package/dist/bin/vip-backup.js +16 -9
  10. package/dist/bin/vip-cache-purge-url.js +93 -55
  11. package/dist/bin/vip-cache.js +23 -14
  12. package/dist/bin/vip-config-envvar-delete.js +74 -73
  13. package/dist/bin/vip-config-envvar-get-all.js +68 -68
  14. package/dist/bin/vip-config-envvar-get.js +46 -46
  15. package/dist/bin/vip-config-envvar-list.js +54 -57
  16. package/dist/bin/vip-config-envvar-set.js +102 -96
  17. package/dist/bin/vip-config-envvar.js +38 -24
  18. package/dist/bin/vip-config-software-get.js +88 -75
  19. package/dist/bin/vip-config-software-update.js +116 -120
  20. package/dist/bin/vip-config-software.js +31 -21
  21. package/dist/bin/vip-config.js +25 -17
  22. package/dist/bin/vip-db-phpmyadmin.js +40 -39
  23. package/dist/bin/vip-db.js +13 -12
  24. package/dist/bin/vip-defensive-mode-configure.js +197 -197
  25. package/dist/bin/vip-defensive-mode-disable.js +43 -35
  26. package/dist/bin/vip-defensive-mode-enable.js +47 -38
  27. package/dist/bin/vip-defensive-mode.js +28 -17
  28. package/dist/bin/vip-dev-env-create.js +147 -104
  29. package/dist/bin/vip-dev-env-destroy.js +48 -39
  30. package/dist/bin/vip-dev-env-envvar-delete.js +60 -49
  31. package/dist/bin/vip-dev-env-envvar-get-all.js +52 -45
  32. package/dist/bin/vip-dev-env-envvar-get.js +48 -37
  33. package/dist/bin/vip-dev-env-envvar-list.js +48 -41
  34. package/dist/bin/vip-dev-env-envvar-set.js +83 -70
  35. package/dist/bin/vip-dev-env-envvar.js +38 -23
  36. package/dist/bin/vip-dev-env-exec.js +81 -74
  37. package/dist/bin/vip-dev-env-import-media.js +34 -26
  38. package/dist/bin/vip-dev-env-import-sql.js +65 -51
  39. package/dist/bin/vip-dev-env-import.js +23 -14
  40. package/dist/bin/vip-dev-env-info.js +59 -50
  41. package/dist/bin/vip-dev-env-list.js +34 -31
  42. package/dist/bin/vip-dev-env-logs.js +59 -49
  43. package/dist/bin/vip-dev-env-purge.js +71 -63
  44. package/dist/bin/vip-dev-env-shell.js +82 -71
  45. package/dist/bin/vip-dev-env-start.js +77 -65
  46. package/dist/bin/vip-dev-env-stop.js +80 -74
  47. package/dist/bin/vip-dev-env-sync-sql.js +80 -72
  48. package/dist/bin/vip-dev-env-sync.js +18 -11
  49. package/dist/bin/vip-dev-env-update.js +93 -84
  50. package/dist/bin/vip-dev-env.js +25 -8
  51. package/dist/bin/vip-edge-workers-build.js +82 -54
  52. package/dist/bin/vip-edge-workers-delete.js +84 -52
  53. package/dist/bin/vip-edge-workers-deploy.js +186 -126
  54. package/dist/bin/vip-edge-workers-disable.js +75 -44
  55. package/dist/bin/vip-edge-workers-enable.js +86 -54
  56. package/dist/bin/vip-edge-workers-get.js +108 -88
  57. package/dist/bin/vip-edge-workers-init.js +83 -53
  58. package/dist/bin/vip-edge-workers-list.js +89 -54
  59. package/dist/bin/vip-edge-workers-new.js +98 -69
  60. package/dist/bin/vip-edge-workers-validate.js +123 -82
  61. package/dist/bin/vip-edge-workers.js +19 -6
  62. package/dist/bin/vip-export-sql.js +75 -69
  63. package/dist/bin/vip-export.js +12 -7
  64. package/dist/bin/vip-import-media-abort.js +99 -73
  65. package/dist/bin/vip-import-media-status.js +83 -51
  66. package/dist/bin/vip-import-media.js +165 -166
  67. package/dist/bin/vip-import-sql-status.js +75 -45
  68. package/dist/bin/vip-import-sql.js +536 -596
  69. package/dist/bin/vip-import-validate-files.js +122 -141
  70. package/dist/bin/vip-import-validate-sql.js +52 -16
  71. package/dist/bin/vip-import.js +16 -7
  72. package/dist/bin/vip-logout.js +17 -13
  73. package/dist/bin/vip-logs.js +209 -183
  74. package/dist/bin/vip-search-replace.js +85 -53
  75. package/dist/bin/vip-slowlogs.js +168 -147
  76. package/dist/bin/vip-sync.js +163 -133
  77. package/dist/bin/vip-whoami.js +71 -35
  78. package/dist/bin/vip-wp.js +506 -549
  79. package/dist/bin/vip.js +161 -116
  80. package/dist/commands/backup-db.js +183 -149
  81. package/dist/commands/dev-env-import-sql.js +162 -117
  82. package/dist/commands/dev-env-sync-sql.js +372 -330
  83. package/dist/commands/export-sql.js +441 -425
  84. package/dist/commands/phpmyadmin.js +232 -212
  85. package/dist/commands/wp-ssh.js +218 -187
  86. package/dist/lib/analytics/clients/tracks.js +84 -91
  87. package/dist/lib/analytics/index.js +27 -27
  88. package/dist/lib/api/app.js +37 -36
  89. package/dist/lib/api/cache-purge.js +17 -20
  90. package/dist/lib/api/constants.js +5 -6
  91. package/dist/lib/api/edge-workers.js +84 -135
  92. package/dist/lib/api/error-debug.js +10 -13
  93. package/dist/lib/api/feature-flags.js +16 -17
  94. package/dist/lib/api/http.js +47 -48
  95. package/dist/lib/api/user.js +17 -18
  96. package/dist/lib/api.js +107 -116
  97. package/dist/lib/app-logs/app-logs.js +24 -25
  98. package/dist/lib/app-slowlogs/app-slowlogs.js +23 -24
  99. package/dist/lib/app-slowlogs/types.js +2 -1
  100. package/dist/lib/app.js +6 -8
  101. package/dist/lib/backup-storage-availability/backup-storage-availability.js +119 -119
  102. package/dist/lib/backup-storage-availability/docker-machine-not-found-error.js +5 -6
  103. package/dist/lib/cli/apiConfig.js +71 -41
  104. package/dist/lib/cli/command.js +1120 -873
  105. package/dist/lib/cli/config.js +29 -29
  106. package/dist/lib/cli/envAlias.js +35 -50
  107. package/dist/lib/cli/exit.js +19 -19
  108. package/dist/lib/cli/format.js +172 -172
  109. package/dist/lib/cli/progress.js +193 -236
  110. package/dist/lib/cli/prompt.js +14 -15
  111. package/dist/lib/cli/runtime-mode.js +5 -6
  112. package/dist/lib/client-file-uploader.js +489 -641
  113. package/dist/lib/config/software.js +206 -212
  114. package/dist/lib/constants/dev-environment.js +40 -37
  115. package/dist/lib/constants/file-size.js +6 -7
  116. package/dist/lib/constants/vipgo.js +24 -12
  117. package/dist/lib/custom-deploy/custom-deploy.js +138 -120
  118. package/dist/lib/database.js +88 -85
  119. package/dist/lib/defensive-mode/api.js +41 -46
  120. package/dist/lib/defensive-mode/cli-helpers.js +40 -40
  121. package/dist/lib/dev-environment/dev-environment-cli.js +776 -735
  122. package/dist/lib/dev-environment/dev-environment-configuration-file.js +224 -191
  123. package/dist/lib/dev-environment/dev-environment-core.js +697 -732
  124. package/dist/lib/dev-environment/dev-environment-database.js +57 -41
  125. package/dist/lib/dev-environment/dev-environment-lando.js +734 -666
  126. package/dist/lib/dev-environment/docker-utils.js +96 -90
  127. package/dist/lib/dev-environment/env-vars.js +61 -59
  128. package/dist/lib/dev-environment/lando-loader.js +6 -7
  129. package/dist/lib/dev-environment/types.js +2 -1
  130. package/dist/lib/edge-workers/confirmation.js +42 -36
  131. package/dist/lib/edge-workers/deployment.js +150 -159
  132. package/dist/lib/edge-workers/index.js +68 -85
  133. package/dist/lib/edge-workers/location.js +26 -26
  134. package/dist/lib/edge-workers/output.js +14 -15
  135. package/dist/lib/edge-workers/project.js +123 -132
  136. package/dist/lib/edge-workers/toolchains/assemblyscript/constants.js +6 -8
  137. package/dist/lib/edge-workers/toolchains/assemblyscript/index.js +100 -101
  138. package/dist/lib/edge-workers/toolchains/assemblyscript/templates.js +31 -33
  139. package/dist/lib/edge-workers/toolchains/index.js +15 -15
  140. package/dist/lib/edge-workers/types.js +10 -38
  141. package/dist/lib/edge-workers/validation.js +161 -150
  142. package/dist/lib/env.js +16 -17
  143. package/dist/lib/envvar/api-delete.js +16 -18
  144. package/dist/lib/envvar/api-get-all.js +15 -19
  145. package/dist/lib/envvar/api-get.js +8 -9
  146. package/dist/lib/envvar/api-list.js +16 -21
  147. package/dist/lib/envvar/api-set.js +20 -19
  148. package/dist/lib/envvar/api.js +34 -29
  149. package/dist/lib/envvar/input.js +29 -34
  150. package/dist/lib/envvar/logging.js +9 -11
  151. package/dist/lib/envvar/read-file.js +6 -7
  152. package/dist/lib/http/download-file.js +76 -44
  153. package/dist/lib/http/proxy-agent.js +37 -40
  154. package/dist/lib/http/proxy-dispatcher.js +69 -71
  155. package/dist/lib/keychain/insecure.js +40 -36
  156. package/dist/lib/keychain/keychain.js +2 -1
  157. package/dist/lib/keychain/secure.js +16 -15
  158. package/dist/lib/keychain.js +22 -22
  159. package/dist/lib/live-backup-copy.js +117 -115
  160. package/dist/lib/logout.js +17 -19
  161. package/dist/lib/media-import/config.js +15 -14
  162. package/dist/lib/media-import/media-file-import.js +9 -13
  163. package/dist/lib/media-import/progress.js +53 -65
  164. package/dist/lib/media-import/status.js +241 -256
  165. package/dist/lib/media-import/utils.js +15 -15
  166. package/dist/lib/node-version-check.js +16 -16
  167. package/dist/lib/promise.js +16 -17
  168. package/dist/lib/read-file.js +48 -16
  169. package/dist/lib/rechallenge/client.js +37 -43
  170. package/dist/lib/rechallenge/errors.js +38 -37
  171. package/dist/lib/rechallenge/flow.js +148 -123
  172. package/dist/lib/rechallenge/index.js +23 -24
  173. package/dist/lib/rechallenge/link.js +153 -151
  174. package/dist/lib/rechallenge/open-browser.js +14 -17
  175. package/dist/lib/rechallenge/token-cache.js +83 -86
  176. package/dist/lib/rechallenge/types.js +5 -14
  177. package/dist/lib/retry.js +93 -129
  178. package/dist/lib/search-and-replace.js +164 -148
  179. package/dist/lib/site-import/db-file-import.js +12 -16
  180. package/dist/lib/site-import/status.js +291 -291
  181. package/dist/lib/token.js +86 -87
  182. package/dist/lib/tracker.js +51 -62
  183. package/dist/lib/types/graphql/rate-limit-exceeded-error.js +2 -1
  184. package/dist/lib/types.js +2 -1
  185. package/dist/lib/user-error.js +6 -8
  186. package/dist/lib/utils.js +81 -87
  187. package/dist/lib/validations/custom-deploy.js +218 -186
  188. package/dist/lib/validations/is-multi-site-sql-dump.js +6 -6
  189. package/dist/lib/validations/is-multi-site.js +83 -50
  190. package/dist/lib/validations/is-multisite-domain-mapped.js +92 -62
  191. package/dist/lib/validations/line-by-line.js +78 -46
  192. package/dist/lib/validations/site-type.js +59 -63
  193. package/dist/lib/validations/sql-insert-parser.js +415 -0
  194. package/dist/lib/validations/sql.js +551 -431
  195. package/dist/lib/validations/utils.js +27 -29
  196. package/dist/lib/vip-import-validate-files.js +481 -490
  197. package/dist/lib/wp/helpers.js +41 -45
  198. package/dist/lib/wp/readline.js +21 -57
  199. package/dist/lib/xdg-data.js +11 -12
  200. package/helpers/mark-cli-executable.js +9 -0
  201. package/node_modules/@apollo/client/CHANGELOG.md +10 -0
  202. package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs +5 -0
  203. package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs.map +1 -1
  204. package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs +2 -1
  205. package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  206. package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs +14 -2
  207. package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs.map +1 -1
  208. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs +16 -0
  209. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs.map +1 -1
  210. package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.d.cts +2 -0
  211. package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs +3 -2
  212. package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  213. package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs +9 -1
  214. package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs.map +1 -1
  215. package/node_modules/@apollo/client/__cjs/core/QueryInfo.d.cts +1 -1
  216. package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs +10 -3
  217. package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs.map +1 -1
  218. package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.cjs.map +1 -1
  219. package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.d.cts +42 -43
  220. package/node_modules/@apollo/client/__cjs/version.cjs +1 -1
  221. package/node_modules/@apollo/client/cache/inmemory/helpers.js +5 -0
  222. package/node_modules/@apollo/client/cache/inmemory/helpers.js.map +1 -1
  223. package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js +2 -1
  224. package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js.map +1 -1
  225. package/node_modules/@apollo/client/cache/inmemory/key-extractor.js +14 -2
  226. package/node_modules/@apollo/client/cache/inmemory/key-extractor.js.map +1 -1
  227. package/node_modules/@apollo/client/cache/inmemory/policies.d.ts +2 -0
  228. package/node_modules/@apollo/client/cache/inmemory/policies.js +17 -1
  229. package/node_modules/@apollo/client/cache/inmemory/policies.js.map +1 -1
  230. package/node_modules/@apollo/client/cache/inmemory/writeToStore.js +3 -2
  231. package/node_modules/@apollo/client/cache/inmemory/writeToStore.js.map +1 -1
  232. package/node_modules/@apollo/client/core/QueryInfo.d.ts +1 -1
  233. package/node_modules/@apollo/client/core/QueryInfo.js +10 -2
  234. package/node_modules/@apollo/client/core/QueryInfo.js.map +1 -1
  235. package/node_modules/@apollo/client/core/QueryManager.js +10 -3
  236. package/node_modules/@apollo/client/core/QueryManager.js.map +1 -1
  237. package/node_modules/@apollo/client/package.json +1 -1
  238. package/node_modules/@apollo/client/react/hooks/useFragment.d.ts +42 -43
  239. package/node_modules/@apollo/client/react/hooks/useFragment.js.map +1 -1
  240. package/node_modules/@apollo/client/react/hooks-compiled/useFragment.d.ts +42 -43
  241. package/node_modules/@apollo/client/react/hooks-compiled/useFragment.js.map +1 -1
  242. package/node_modules/@apollo/client/version.js +1 -1
  243. package/node_modules/@automattic/vip-search-replace/README.md +6 -1
  244. package/node_modules/@automattic/vip-search-replace/lib/index.js +46 -14
  245. package/node_modules/@automattic/vip-search-replace/package.json +1 -1
  246. package/node_modules/@types/node/README.md +1 -1
  247. package/node_modules/@types/node/package.json +2 -2
  248. package/node_modules/@types/node/zlib.d.ts +752 -0
  249. package/node_modules/check-disk-space/README.md +92 -32
  250. package/node_modules/check-disk-space/dist/check-disk-space.d.mts +58 -0
  251. package/node_modules/check-disk-space/dist/check-disk-space.mjs +170 -190
  252. package/node_modules/check-disk-space/package.json +43 -71
  253. package/node_modules/cpu-features/build/Makefile +2 -2
  254. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/filesystem.o.d +1 -1
  255. 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
  256. 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
  257. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_windows.o.d +1 -1
  258. 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
  259. 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
  260. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_ppc_linux.o.d +1 -1
  261. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_freebsd.o.d +1 -1
  262. 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
  263. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_macos.o.d +1 -1
  264. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_windows.o.d +1 -1
  265. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/stack_line_reader.o.d +1 -1
  266. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/string_view.o.d +1 -1
  267. package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpufeatures/src/binding.o.d +157 -145
  268. package/node_modules/cpu-features/build/Release/cpufeatures.node +0 -0
  269. package/node_modules/cpu-features/build/Release/obj.target/cpufeatures/src/binding.o +0 -0
  270. package/node_modules/cpu-features/build/Release/obj.target/cpufeatures.node +0 -0
  271. package/node_modules/cpu-features/build/config.gypi +100 -31
  272. package/node_modules/cpu-features/build/cpufeatures.target.mk +14 -14
  273. package/node_modules/cpu-features/build/deps/cpu_features/cpu_features.target.mk +14 -14
  274. package/node_modules/ssh2/lib/protocol/crypto/build/Makefile +2 -2
  275. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d.raw +136 -0
  276. package/node_modules/ssh2/lib/protocol/crypto/build/sshcrypto.target.mk +14 -14
  277. package/node_modules/undici/docs/docs/api/Interceptors.md +15 -2
  278. package/node_modules/undici/lib/dispatcher/client-h2.js +78 -3
  279. package/node_modules/undici/lib/dispatcher/pool-base.js +20 -3
  280. package/node_modules/undici/package.json +3 -3
  281. package/node_modules/undici/types/api.d.ts +1 -1
  282. package/node_modules/undici/types/utility.d.ts +4 -4
  283. package/package.json +44 -13
  284. package/dist/lib/analytics/clients/client.js +0 -1
  285. package/dist/lib/analytics/clients/pendo.js +0 -78
  286. package/helpers/check-version.js +0 -16
  287. package/node_modules/check-disk-space/dist/check-disk-space.cjs +0 -210
  288. package/node_modules/check-disk-space/dist/check-disk-space.d.ts +0 -53
  289. package/node_modules/fetch-retry/.eslintignore +0 -1
  290. package/node_modules/fetch-retry/.eslintrc.yml +0 -20
  291. package/node_modules/fetch-retry/.github/workflows/node.js.yml +0 -32
  292. package/node_modules/fetch-retry/.husky/pre-commit +0 -6
  293. package/node_modules/fetch-retry/.nycrc.json +0 -24
  294. package/node_modules/fetch-retry/.travis.yml +0 -3
  295. package/node_modules/fetch-retry/LICENSE +0 -21
  296. package/node_modules/fetch-retry/README.md +0 -128
  297. package/node_modules/fetch-retry/dist/fetch-retry.umd.js +0 -151
  298. package/node_modules/fetch-retry/index.d.ts +0 -29
  299. package/node_modules/fetch-retry/index.js +0 -143
  300. package/node_modules/fetch-retry/package.json +0 -41
  301. package/node_modules/fetch-retry/rollup.config.js +0 -12
  302. package/node_modules/fetch-retry/test/.eslintrc.yml +0 -7
  303. package/node_modules/fetch-retry/test/integration/index.js +0 -212
  304. package/node_modules/fetch-retry/test/integration/mock-api/index.js +0 -42
  305. package/node_modules/fetch-retry/test/unit/index.js +0 -1169
  306. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d +0 -265
  307. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto.node.d +0 -1
  308. package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/sshcrypto.node.d +0 -1
  309. package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto/src/binding.o +0 -0
  310. package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto.node +0 -0
  311. package/node_modules/ssh2/lib/protocol/crypto/build/Release/sshcrypto.node +0 -0
@@ -1,25 +1,58 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.DB_BACKUP_JOB_STATUS_QUERY = exports.CREATE_DB_BACKUP_JOB_MUTATION = exports.BackupDBCommand = void 0;
5
- var _chalk = _interopRequireDefault(require("chalk"));
6
- var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
7
- var _api = _interopRequireWildcard(require("../lib/api"));
8
- var exit = _interopRequireWildcard(require("../lib/cli/exit"));
9
- var _format = require("../lib/cli/format");
10
- var _progress = require("../lib/cli/progress");
11
- var _utils = require("../lib/utils");
12
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.BackupDBCommand = exports.DB_BACKUP_JOB_STATUS_QUERY = exports.CREATE_DB_BACKUP_JOB_MUTATION = void 0;
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
42
+ const api_1 = __importStar(require("../lib/api"));
43
+ const exit = __importStar(require("../lib/cli/exit"));
44
+ const format_1 = require("../lib/cli/format");
45
+ const progress_1 = require("../lib/cli/progress");
46
+ const utils_1 = require("../lib/utils");
14
47
  const DB_BACKUP_PROGRESS_POLL_INTERVAL = 1000;
15
- const CREATE_DB_BACKUP_JOB_MUTATION = exports.CREATE_DB_BACKUP_JOB_MUTATION = (0, _graphqlTag.default)`
48
+ exports.CREATE_DB_BACKUP_JOB_MUTATION = (0, graphql_tag_1.default) `
16
49
  mutation TriggerDatabaseBackup($input: AppEnvironmentTriggerDBBackupInput) {
17
50
  triggerDatabaseBackup(input: $input) {
18
51
  success
19
52
  }
20
53
  }
21
54
  `;
22
- const DB_BACKUP_JOB_STATUS_QUERY = exports.DB_BACKUP_JOB_STATUS_QUERY = (0, _graphqlTag.default)`
55
+ exports.DB_BACKUP_JOB_STATUS_QUERY = (0, graphql_tag_1.default) `
23
56
  query AppBackupJobStatus($appId: Int!, $envId: Int!) {
24
57
  app(id: $appId) {
25
58
  id
@@ -44,150 +77,151 @@ const DB_BACKUP_JOB_STATUS_QUERY = exports.DB_BACKUP_JOB_STATUS_QUERY = (0, _gra
44
77
  }
45
78
  `;
46
79
  async function getBackupJob(appId, envId) {
47
- const api = (0, _api.default)();
48
- const response = await api.query({
49
- query: DB_BACKUP_JOB_STATUS_QUERY,
50
- variables: {
51
- appId,
52
- envId
53
- },
54
- fetchPolicy: 'network-only'
55
- });
56
- return response.data?.app?.environments?.[0]?.jobs?.[0] ?? undefined;
80
+ const api = (0, api_1.default)();
81
+ const response = await api.query({
82
+ query: exports.DB_BACKUP_JOB_STATUS_QUERY,
83
+ variables: { appId, envId },
84
+ fetchPolicy: 'network-only',
85
+ });
86
+ return (response.data?.app?.environments?.[0]?.jobs?.[0] ?? undefined);
57
87
  }
58
88
  async function createBackupJob(appId, envId) {
59
- // Disable global error handling so that we can handle errors ourselves
60
- (0, _api.disableGlobalGraphQLErrorHandling)();
61
- const api = (0, _api.default)();
62
- await api.mutate({
63
- mutation: CREATE_DB_BACKUP_JOB_MUTATION,
64
- variables: {
65
- input: {
66
- id: appId,
67
- environmentId: envId
68
- }
69
- }
70
- });
71
-
72
- // Re-enable global error handling
73
- (0, _api.enableGlobalGraphQLErrorHandling)();
89
+ // Disable global error handling so that we can handle errors ourselves
90
+ (0, api_1.disableGlobalGraphQLErrorHandling)();
91
+ const api = (0, api_1.default)();
92
+ await api.mutate({
93
+ mutation: exports.CREATE_DB_BACKUP_JOB_MUTATION,
94
+ variables: {
95
+ input: {
96
+ id: appId,
97
+ environmentId: envId,
98
+ },
99
+ },
100
+ });
101
+ // Re-enable global error handling
102
+ (0, api_1.enableGlobalGraphQLErrorHandling)();
74
103
  }
75
-
76
104
  // Library for a possible command in the future: vip backup db @app.env
77
105
  class BackupDBCommand {
78
- job;
79
- jobStatus;
80
- jobAge;
81
- backupName;
82
- silent;
83
- steps = {
84
- PREPARE: 'prepare',
85
- GENERATE: 'generate'
86
- };
87
- progressTracker;
88
- constructor(app, env, track = async () => {}) {
89
- this.app = app;
90
- this.env = env;
91
- this.track = track;
92
- this.progressTracker = new _progress.ProgressTracker([{
93
- id: this.steps.PREPARE,
94
- name: 'Preparing for backup generation'
95
- }, {
96
- id: this.steps.GENERATE,
97
- name: 'Generating backup'
98
- }]);
99
- }
100
- log(msg) {
101
- if (this.silent) {
102
- return;
106
+ app;
107
+ env;
108
+ track;
109
+ job;
110
+ jobStatus;
111
+ jobAge;
112
+ backupName;
113
+ silent;
114
+ steps = {
115
+ PREPARE: 'prepare',
116
+ GENERATE: 'generate',
117
+ };
118
+ progressTracker;
119
+ constructor(app, env, track = async () => { }) {
120
+ this.app = app;
121
+ this.env = env;
122
+ this.track = track;
123
+ this.progressTracker = new progress_1.ProgressTracker([
124
+ { id: this.steps.PREPARE, name: 'Preparing for backup generation' },
125
+ { id: this.steps.GENERATE, name: 'Generating backup' },
126
+ ]);
103
127
  }
104
- console.log(msg);
105
- }
106
- isDone(job) {
107
- return !job?.inProgressLock;
108
- }
109
-
110
- /**
111
- * Stops the progress tracker
112
- *
113
- * @return {void}
114
- */
115
- stopProgressTracker() {
116
- this.progressTracker.print();
117
- this.progressTracker.stopPrinting();
118
- }
119
- async loadBackupJob() {
120
- this.job = await getBackupJob(this.app.id ?? 0, this.env.id ?? 0);
121
- this.backupName = this.job?.metadata?.find(meta => meta?.name === 'backupName')?.value ?? 'Unknown';
122
- this.jobStatus = this.job?.progress?.status ?? undefined;
123
- if (this.job?.completedAt) {
124
- this.jobAge = (new Date().getTime() - new Date(this.job.completedAt).getTime()) / 1000 / 60;
125
- } else {
126
- this.jobAge = undefined;
128
+ log(msg) {
129
+ if (this.silent) {
130
+ return;
131
+ }
132
+ console.log(msg);
127
133
  }
128
- return this.job;
129
- }
130
- async run(silent = false) {
131
- this.silent = silent;
132
- await this.loadBackupJob();
133
- if (this.job?.inProgressLock) {
134
- this.log('Database backup already in progress...');
135
- } else {
136
- try {
137
- this.log('Generating a new database backup...');
138
- this.progressTracker.stepRunning(this.steps.PREPARE);
139
- this.progressTracker.startPrinting();
140
- await createBackupJob(this.app.id ?? 0, this.env.id ?? 0);
141
- } catch (err) {
142
- const error = err;
143
- const graphQLError = error.graphQLErrors?.[0];
144
- this.progressTracker.stepFailed(this.steps.PREPARE);
145
- this.stopProgressTracker();
146
- if (graphQLError?.extensions?.errorHttpCode === 429) {
147
- const retryAfter = graphQLError.extensions.retryAfter;
148
- await this.track('error', {
149
- error_type: 'rate_limit_exceeded',
150
- error_message: `Couldn't create a new database backup job: ${error.message}`,
151
- stack: error.stack
152
- });
153
- const errMessage = `A new database backup was not generated because a recently generated backup already exists.
154
- If you would like to run the same command, you can retry in ${(0, _format.formatDuration)(new Date(), new Date(retryAfter))}
155
- Alternatively, you can export the latest existing database backup by running: ${_chalk.default.green('vip @app.env export sql')}, right away.
134
+ isDone(job) {
135
+ return !job?.inProgressLock;
136
+ }
137
+ /**
138
+ * Stops the progress tracker
139
+ *
140
+ * @return {void}
141
+ */
142
+ stopProgressTracker() {
143
+ this.progressTracker.print();
144
+ this.progressTracker.stopPrinting();
145
+ }
146
+ async loadBackupJob() {
147
+ this.job = await getBackupJob(this.app.id ?? 0, this.env.id ?? 0);
148
+ this.backupName =
149
+ this.job?.metadata?.find(meta => meta?.name === 'backupName')?.value ?? 'Unknown';
150
+ this.jobStatus = this.job?.progress?.status ?? undefined;
151
+ if (this.job?.completedAt) {
152
+ this.jobAge =
153
+ (new Date().getTime() - new Date(this.job.completedAt).getTime()) / 1000 / 60;
154
+ }
155
+ else {
156
+ this.jobAge = undefined;
157
+ }
158
+ return this.job;
159
+ }
160
+ async run(silent = false) {
161
+ this.silent = silent;
162
+ await this.loadBackupJob();
163
+ if (this.job?.inProgressLock) {
164
+ this.log('Database backup already in progress...');
165
+ }
166
+ else {
167
+ try {
168
+ this.log('Generating a new database backup...');
169
+ this.progressTracker.stepRunning(this.steps.PREPARE);
170
+ this.progressTracker.startPrinting();
171
+ await createBackupJob(this.app.id ?? 0, this.env.id ?? 0);
172
+ }
173
+ catch (err) {
174
+ const error = err;
175
+ const graphQLError = error.graphQLErrors?.[0];
176
+ this.progressTracker.stepFailed(this.steps.PREPARE);
177
+ this.stopProgressTracker();
178
+ if (graphQLError?.extensions?.errorHttpCode === 429) {
179
+ const retryAfter = graphQLError.extensions.retryAfter;
180
+ await this.track('error', {
181
+ error_type: 'rate_limit_exceeded',
182
+ error_message: `Couldn't create a new database backup job: ${error.message}`,
183
+ stack: error.stack,
184
+ });
185
+ const errMessage = `A new database backup was not generated because a recently generated backup already exists.
186
+ If you would like to run the same command, you can retry in ${(0, format_1.formatDuration)(new Date(), new Date(retryAfter))}
187
+ Alternatively, you can export the latest existing database backup by running: ${chalk_1.default.green('vip @app.env export sql')}, right away.
156
188
  Learn more about limitations around generating database backups: https://docs.wpvip.com/databases/backups/limitations/
157
189
  `;
158
- exit.withError(errMessage);
190
+ exit.withError(errMessage);
191
+ }
192
+ await this.track('error', {
193
+ error_type: 'db_backup_job_creation_failed',
194
+ error_message: `Database Backup job creation failed: ${error.message}`,
195
+ stack: error.stack,
196
+ });
197
+ exit.withError(`Couldn't create a new database backup job: ${error.message}`);
198
+ }
199
+ }
200
+ this.progressTracker.stepSuccess(this.steps.PREPARE);
201
+ this.progressTracker.stepRunning(this.steps.GENERATE);
202
+ try {
203
+ await (0, utils_1.pollUntil)(this.loadBackupJob.bind(this), DB_BACKUP_PROGRESS_POLL_INTERVAL, this.isDone.bind(this));
204
+ }
205
+ catch (err) {
206
+ const error = err;
207
+ this.progressTracker.stepFailed(this.steps.GENERATE);
208
+ this.stopProgressTracker();
209
+ await this.track('error', {
210
+ error_type: 'db_backup_job_failed',
211
+ error_message: `Database Backup job failed: ${error.message}`,
212
+ stack: error.stack,
213
+ });
214
+ exit.withError(`Failed to create new database backup: ${error.message}`);
215
+ }
216
+ this.progressTracker.stepSuccess(this.steps.GENERATE);
217
+ this.stopProgressTracker();
218
+ await this.loadBackupJob();
219
+ if (this.jobStatus !== 'success') {
220
+ exit.withError('Failed to create a new database backup');
221
+ }
222
+ else {
223
+ this.log('New database backup created');
159
224
  }
160
- await this.track('error', {
161
- error_type: 'db_backup_job_creation_failed',
162
- error_message: `Database Backup job creation failed: ${error.message}`,
163
- stack: error.stack
164
- });
165
- exit.withError(`Couldn't create a new database backup job: ${error.message}`);
166
- }
167
- }
168
- this.progressTracker.stepSuccess(this.steps.PREPARE);
169
- this.progressTracker.stepRunning(this.steps.GENERATE);
170
- try {
171
- await (0, _utils.pollUntil)(this.loadBackupJob.bind(this), DB_BACKUP_PROGRESS_POLL_INTERVAL, this.isDone.bind(this));
172
- } catch (err) {
173
- const error = err;
174
- this.progressTracker.stepFailed(this.steps.GENERATE);
175
- this.stopProgressTracker();
176
- await this.track('error', {
177
- error_type: 'db_backup_job_failed',
178
- error_message: `Database Backup job failed: ${error.message}`,
179
- stack: error.stack
180
- });
181
- exit.withError(`Failed to create new database backup: ${error.message}`);
182
- }
183
- this.progressTracker.stepSuccess(this.steps.GENERATE);
184
- this.stopProgressTracker();
185
- await this.loadBackupJob();
186
- if (this.jobStatus !== 'success') {
187
- exit.withError('Failed to create a new database backup');
188
- } else {
189
- this.log('New database backup created');
190
225
  }
191
- }
192
226
  }
193
- exports.BackupDBCommand = BackupDBCommand;
227
+ exports.BackupDBCommand = BackupDBCommand;
@@ -1,126 +1,171 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
4
39
  exports.DevEnvImportSQLCommand = void 0;
5
- var _chalk = _interopRequireDefault(require("chalk"));
6
- var _fs = _interopRequireDefault(require("fs"));
7
- var _os = _interopRequireDefault(require("os"));
8
- var exit = _interopRequireWildcard(require("../lib/cli/exit"));
9
- var _clientFileUploader = require("../lib/client-file-uploader");
10
- var _database = require("../lib/database");
11
- var _devEnvironmentCli = require("../lib/dev-environment/dev-environment-cli");
12
- var _devEnvironmentCore = require("../lib/dev-environment/dev-environment-core");
13
- var _devEnvironmentDatabase = require("../lib/dev-environment/dev-environment-database");
14
- var _devEnvironmentLando = require("../lib/dev-environment/dev-environment-lando");
15
- var _userError = _interopRequireDefault(require("../lib/user-error"));
16
- var _utils = require("../lib/utils");
17
- var _sql = require("../lib/validations/sql");
18
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const fs_1 = __importDefault(require("fs"));
42
+ const os_1 = __importDefault(require("os"));
43
+ const exit = __importStar(require("../lib/cli/exit"));
44
+ const client_file_uploader_1 = require("../lib/client-file-uploader");
45
+ const database_1 = require("../lib/database");
46
+ const dev_environment_cli_1 = require("../lib/dev-environment/dev-environment-cli");
47
+ const dev_environment_core_1 = require("../lib/dev-environment/dev-environment-core");
48
+ const dev_environment_database_1 = require("../lib/dev-environment/dev-environment-database");
49
+ const dev_environment_lando_1 = require("../lib/dev-environment/dev-environment-lando");
50
+ const user_error_1 = __importDefault(require("../lib/user-error"));
51
+ const utils_1 = require("../lib/utils");
52
+ const sql_1 = require("../lib/validations/sql");
20
53
  class DevEnvImportSQLCommand {
21
- constructor(fileName, options, slug) {
22
- this.fileName = fileName;
23
- this.options = options;
24
- this.slug = slug;
25
- }
26
- async run() {
27
- const lando = await (0, _devEnvironmentLando.bootstrapLando)({
28
- logFile: (0, _devEnvironmentCli.getDevEnvLogFile)(this.slug)
29
- });
30
- (0, _devEnvironmentCli.validateDependencies)(lando);
31
- (0, _sql.validateImportFileExtension)(this.fileName);
32
- const dumpDetails = await (0, _database.getSqlDumpDetails)(this.fileName);
33
- const isMyDumper = dumpDetails.type === _database.SqlDumpType.MYDUMPER;
34
-
35
- // Check if file is compressed and if so, extract the
36
- const fileMeta = await (0, _clientFileUploader.getFileMeta)(this.fileName);
37
- if (fileMeta.isCompressed) {
38
- const tmpDir = (0, _utils.makeTempDir)();
39
- const sqlFile = `${tmpDir}/sql-import.sql`;
40
- try {
41
- if (!this.options.quiet) {
42
- console.log(`Extracting the compressed file ${this.fileName}...`);
54
+ fileName;
55
+ options;
56
+ slug;
57
+ constructor(fileName, options, slug) {
58
+ this.fileName = fileName;
59
+ this.options = options;
60
+ this.slug = slug;
61
+ }
62
+ async run() {
63
+ const lando = await (0, dev_environment_lando_1.bootstrapLando)({ logFile: (0, dev_environment_cli_1.getDevEnvLogFile)(this.slug) });
64
+ (0, dev_environment_cli_1.validateDependencies)(lando);
65
+ (0, sql_1.validateImportFileExtension)(this.fileName);
66
+ const dumpDetails = await (0, database_1.getSqlDumpDetails)(this.fileName);
67
+ const isMyDumper = dumpDetails.type === database_1.SqlDumpType.MYDUMPER;
68
+ // Check if file is compressed and if so, extract the
69
+ const fileMeta = await (0, client_file_uploader_1.getFileMeta)(this.fileName);
70
+ if (fileMeta.isCompressed) {
71
+ const tmpDir = (0, utils_1.makeTempDir)();
72
+ const sqlFile = `${tmpDir}/sql-import.sql`;
73
+ try {
74
+ if (!this.options.quiet) {
75
+ console.log(`Extracting the compressed file ${this.fileName}...`);
76
+ }
77
+ await (0, client_file_uploader_1.unzipFile)(this.fileName, sqlFile);
78
+ if (!this.options.quiet) {
79
+ console.log(`${chalk_1.default.green('✓')} Extracted to ${sqlFile}`);
80
+ }
81
+ this.fileName = sqlFile;
82
+ }
83
+ catch (error) {
84
+ const err = error;
85
+ exit.withError(`Error extracting the SQL file: ${err.message}`);
86
+ }
43
87
  }
44
- await (0, _clientFileUploader.unzipFile)(this.fileName, sqlFile);
45
- if (!this.options.quiet) {
46
- console.log(`${_chalk.default.green('✓')} Extracted to ${sqlFile}`);
88
+ const { searchReplace, inPlace } = this.options;
89
+ const resolvedPath = await (0, dev_environment_core_1.resolveImportPath)(this.slug, this.fileName, searchReplace, inPlace);
90
+ if (!this.options.skipValidate) {
91
+ const isUp = (await Promise.all([
92
+ (0, dev_environment_lando_1.isContainerRunning)(lando, this.slug, 'php'),
93
+ (0, dev_environment_lando_1.isContainerRunning)(lando, this.slug, 'database'),
94
+ ])).every(Boolean);
95
+ if (!isUp) {
96
+ throw new user_error_1.default('Environment needs to be started first');
97
+ }
98
+ const expectedDomain = `${this.slug}.${lando.config.domain}`;
99
+ await (0, sql_1.validate)(resolvedPath, {
100
+ isImport: false,
101
+ skipChecks: isMyDumper ? ['dropTable', 'dropDB'] : [],
102
+ extraCheckParams: { siteHomeUrlLando: expectedDomain },
103
+ });
47
104
  }
48
- this.fileName = sqlFile;
49
- } catch (error) {
50
- const err = error;
51
- exit.withError(`Error extracting the SQL file: ${err.message}`);
52
- }
53
- }
54
- const {
55
- searchReplace,
56
- inPlace
57
- } = this.options;
58
- const resolvedPath = await (0, _devEnvironmentCore.resolveImportPath)(this.slug, this.fileName, searchReplace, inPlace);
59
- if (!this.options.skipValidate) {
60
- const isUp = (await Promise.all([(0, _devEnvironmentLando.isContainerRunning)(lando, this.slug, 'php'), (0, _devEnvironmentLando.isContainerRunning)(lando, this.slug, 'database')])).every(Boolean);
61
- if (!isUp) {
62
- throw new _userError.default('Environment needs to be started first');
63
- }
64
- const expectedDomain = `${this.slug}.${lando.config.domain}`;
65
- await (0, _sql.validate)(resolvedPath, {
66
- isImport: false,
67
- skipChecks: isMyDumper ? ['dropTable', 'dropDB'] : [],
68
- extraCheckParams: {
69
- siteHomeUrlLando: expectedDomain
105
+ const fd = await fs_1.default.promises.open(resolvedPath, 'r');
106
+ const importArg = this.getImportArgs(dumpDetails);
107
+ const origIsTTY = process.stdin.isTTY;
108
+ try {
109
+ /**
110
+ * When stdin is a TTY, Lando passes the `--tty` flag to Docker.
111
+ * This breaks our code when we pass the stream as stdin to Docker.
112
+ * exec() then fails with "the input device is not a TTY".
113
+ *
114
+ * Therefore, for the things to work, we have to pretend that stdin is not a TTY :-)
115
+ */
116
+ process.stdin.isTTY = false;
117
+ await (0, dev_environment_core_1.exec)(lando, this.slug, importArg, { stdio: [fd.fd, 'pipe', 'pipe'] });
118
+ if (!this.options.quiet) {
119
+ console.log(`${chalk_1.default.green.bold('Success:')} Database imported.`);
120
+ }
70
121
  }
71
- });
72
- }
73
- const fd = await _fs.default.promises.open(resolvedPath, 'r');
74
- const importArg = this.getImportArgs(dumpDetails);
75
- const origIsTTY = process.stdin.isTTY;
76
- try {
77
- /**
78
- * When stdin is a TTY, Lando passes the `--tty` flag to Docker.
79
- * This breaks our code when we pass the stream as stdin to Docker.
80
- * exec() then fails with "the input device is not a TTY".
81
- *
82
- * Therefore, for the things to work, we have to pretend that stdin is not a TTY :-)
83
- */
84
- process.stdin.isTTY = false;
85
- await (0, _devEnvironmentCore.exec)(lando, this.slug, importArg, {
86
- stdio: [fd.fd, 'pipe', 'pipe']
87
- });
88
- if (!this.options.quiet) {
89
- console.log(`${_chalk.default.green.bold('Success:')} Database imported.`);
90
- }
91
- } finally {
92
- process.stdin.isTTY = origIsTTY;
93
- }
94
- if (searchReplace?.length && !inPlace) {
95
- _fs.default.unlinkSync(resolvedPath);
96
- }
97
- if (this.options.postImportSQL) {
98
- await (0, _devEnvironmentDatabase.executeQuery)(lando, this.slug, this.options.postImportSQL);
99
- }
100
- await (0, _devEnvironmentDatabase.flushCache)(lando, this.slug, this.options.quiet);
101
- if (undefined === this.options.skipReindex || !(0, _devEnvironmentCli.processBooleanOption)(this.options.skipReindex)) {
102
- try {
103
- await (0, _devEnvironmentDatabase.reIndexSearch)(lando, this.slug);
104
- } catch {
105
- // Exception means they don't have vip-search enabled.
106
- }
122
+ finally {
123
+ process.stdin.isTTY = origIsTTY;
124
+ }
125
+ if (searchReplace?.length && !inPlace) {
126
+ fs_1.default.unlinkSync(resolvedPath);
127
+ }
128
+ if (this.options.postImportSQL) {
129
+ await (0, dev_environment_database_1.executeQuery)(lando, this.slug, this.options.postImportSQL);
130
+ }
131
+ await (0, dev_environment_database_1.flushCache)(lando, this.slug, this.options.quiet);
132
+ if (undefined === this.options.skipReindex ||
133
+ !(0, dev_environment_cli_1.processBooleanOption)(this.options.skipReindex)) {
134
+ try {
135
+ await (0, dev_environment_database_1.reIndexSearch)(lando, this.slug);
136
+ }
137
+ catch {
138
+ // Exception means they don't have vip-search enabled.
139
+ }
140
+ }
141
+ await (0, dev_environment_database_1.addAdminUser)(lando, this.slug);
142
+ await (0, dev_environment_database_1.dataCleanup)(lando, this.slug, this.options.quiet);
107
143
  }
108
- await (0, _devEnvironmentDatabase.addAdminUser)(lando, this.slug);
109
- await (0, _devEnvironmentDatabase.dataCleanup)(lando, this.slug, this.options.quiet);
110
- }
111
- getImportArgs(dumpDetails) {
112
- let importArg = ['db', '--disable-auto-rehash'].concat(this.options.quiet ? '--silent' : []);
113
- const threadCount = Math.max(_os.default.cpus().length - 2, 1);
114
- if (dumpDetails.type === _database.SqlDumpType.MYDUMPER) {
115
- if (!dumpDetails.sourceDb) {
116
- console.log(`${_chalk.default.yellow('!')} Unable to identify source DB. Skipping myloader source-db option`);
117
- }
118
- importArg = ['db-myloader',
119
- // Drop existing tables before restoring. Do not use the long form:
120
- // `--overwrite-tables` is a silent no-op on myloader >= 0.20.
121
- '-o', ...(dumpDetails.sourceDb ? [`--source-db=${dumpDetails.sourceDb}`] : []), `--threads=${threadCount}`, '--max-threads-for-schema-creation=10', '--max-threads-for-index-creation=10', '--skip-triggers', '--skip-post', '--optimize-keys', '--checksum=SKIP', '--metadata-refresh-interval=2000000', '--stream'].concat(this.options.quiet ? ['--verbose=0'] : ['--verbose=3']);
144
+ getImportArgs(dumpDetails) {
145
+ let importArg = ['db', '--disable-auto-rehash'].concat(this.options.quiet ? '--silent' : []);
146
+ const threadCount = Math.max(os_1.default.cpus().length - 2, 1);
147
+ if (dumpDetails.type === database_1.SqlDumpType.MYDUMPER) {
148
+ if (!dumpDetails.sourceDb) {
149
+ console.log(`${chalk_1.default.yellow('!')} Unable to identify source DB. Skipping myloader source-db option`);
150
+ }
151
+ importArg = [
152
+ 'db-myloader',
153
+ // Drop existing tables before restoring. Do not use the long form:
154
+ // `--overwrite-tables` is a silent no-op on myloader >= 0.20.
155
+ '-o',
156
+ ...(dumpDetails.sourceDb ? [`--source-db=${dumpDetails.sourceDb}`] : []),
157
+ `--threads=${threadCount}`,
158
+ '--max-threads-for-schema-creation=10',
159
+ '--max-threads-for-index-creation=10',
160
+ '--skip-triggers',
161
+ '--skip-post',
162
+ '--optimize-keys',
163
+ '--checksum=SKIP',
164
+ '--metadata-refresh-interval=2000000',
165
+ '--stream',
166
+ ].concat(this.options.quiet ? ['--verbose=0'] : ['--verbose=3']);
167
+ }
168
+ return importArg;
122
169
  }
123
- return importArg;
124
- }
125
170
  }
126
- exports.DevEnvImportSQLCommand = DevEnvImportSQLCommand;
171
+ exports.DevEnvImportSQLCommand = DevEnvImportSQLCommand;