@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,19 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
-
4
- var _core = require("@apollo/client/core");
5
- var _chalk = _interopRequireDefault(require("chalk"));
6
- var _debug = _interopRequireDefault(require("debug"));
7
- var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
8
- var _api = _interopRequireDefault(require("../lib/api"));
9
- var _command = _interopRequireDefault(require("../lib/cli/command"));
10
- var _format = require("../lib/cli/format");
11
- var _clientFileUploader = require("../lib/client-file-uploader");
12
- var _progress = require("../lib/media-import/progress");
13
- var _status = require("../lib/media-import/status");
14
- var _utils = require("../lib/media-import/utils");
15
- var _tracker = require("../lib/tracker");
16
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const core_1 = require("@apollo/client/core");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const debug_1 = __importDefault(require("debug"));
10
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
11
+ const api_1 = __importDefault(require("../lib/api"));
12
+ const command_1 = __importDefault(require("../lib/cli/command"));
13
+ const format_1 = require("../lib/cli/format");
14
+ const client_file_uploader_1 = require("../lib/client-file-uploader");
15
+ const progress_1 = require("../lib/media-import/progress");
16
+ const status_1 = require("../lib/media-import/status");
17
+ const utils_1 = require("../lib/media-import/utils");
18
+ const tracker_1 = require("../lib/tracker");
17
19
  const API_VERSION = 'v2';
18
20
  const appQuery = `
19
21
  id,
@@ -28,7 +30,7 @@ const appQuery = `
28
30
  primaryDomain { name }
29
31
  }
30
32
  `;
31
- const START_IMPORT_MUTATION = (0, _graphqlTag.default)`
33
+ const START_IMPORT_MUTATION = (0, graphql_tag_1.default) `
32
34
  mutation StartMediaImport($input: AppEnvironmentStartMediaImportInput) {
33
35
  startMediaImport(input: $input) {
34
36
  applicationId
@@ -42,176 +44,173 @@ const START_IMPORT_MUTATION = (0, _graphqlTag.default)`
42
44
  }
43
45
  `;
44
46
  const usage = 'vip import media';
45
- const debug = (0, _debug.default)('vip:vip-import-media');
46
-
47
+ const debug = (0, debug_1.default)('vip:vip-import-media');
47
48
  // Support legacy direct invocation: when users run the built binary directly
48
49
  // like `node ./dist/bin/vip-import-media.js @1234.production /path/to/archive.tar.gz --flag`
49
50
  // inject the `import media` subcommand into process.argv so the command parser
50
51
  // sees the same shape as the full CLI: `vip import media ...`.
51
-
52
52
  // Command examples for the `vip import media` help prompt
53
- const examples = [{
54
- usage: 'vip @example-app.production import media /path/to/uploads.zip',
55
- description: 'Import the archived file "uploads.zip" from the user\'s local machine to a production environment.'
56
- }, {
57
- usage: 'vip @example-app.production import media https://example.com/uploads.tar.gz',
58
- description: 'Import the archived file "uploads.tar.gz" from a publicly accessible URL to a production environment.'
59
- },
60
- // Format error logs
61
- {
62
- usage: 'vip @example-app.production import media https://example.com/uploads.tgz --overwriteExistingFiles --exportFileErrorsToJson',
63
- description: 'Overwrite existing files with the imported files if they have the same file path and name, and format the error log for the import in JSON.'
64
- },
65
- // `media status` subcommand
66
- {
67
- usage: 'vip @example-app.production import media status',
68
- description: 'Check the status of the most recent media import.'
69
- },
70
- // `media abort` subcommand
71
- {
72
- usage: 'vip @example-app.production import media abort',
73
- description: 'Abort the currently running media import.'
74
- }];
53
+ const examples = [
54
+ {
55
+ usage: 'vip @example-app.production import media /path/to/uploads.zip',
56
+ description: 'Import the archived file "uploads.zip" from the user\'s local machine to a production environment.',
57
+ },
58
+ {
59
+ usage: 'vip @example-app.production import media https://example.com/uploads.tar.gz',
60
+ description: 'Import the archived file "uploads.tar.gz" from a publicly accessible URL to a production environment.',
61
+ },
62
+ // Format error logs
63
+ {
64
+ usage: 'vip @example-app.production import media https://example.com/uploads.tgz --overwriteExistingFiles --exportFileErrorsToJson',
65
+ description: 'Overwrite existing files with the imported files if they have the same file path and name, and format the error log for the import in JSON.',
66
+ },
67
+ // `media status` subcommand
68
+ {
69
+ usage: 'vip @example-app.production import media status',
70
+ description: 'Check the status of the most recent media import.',
71
+ },
72
+ // `media abort` subcommand
73
+ {
74
+ usage: 'vip @example-app.production import media abort',
75
+ description: 'Abort the currently running media import.',
76
+ },
77
+ ];
75
78
  function isSupportedUrl(urlToTest) {
76
- let url;
77
- try {
78
- url = new URL(urlToTest);
79
- } catch {
80
- return false;
81
- }
82
- return url.protocol === 'http:' || url.protocol === 'https:';
79
+ let url;
80
+ try {
81
+ url = new URL(urlToTest);
82
+ }
83
+ catch {
84
+ return false;
85
+ }
86
+ return url.protocol === 'http:' || url.protocol === 'https:';
83
87
  }
84
- (0, _command.default)({
85
- appContext: true,
86
- appQuery,
87
- envContext: true,
88
- module: 'import-media',
89
- requiredArgs: 1,
90
- usage,
91
- requireConfirm: `
92
- ${_chalk.default.red.bold("NOTE: If the provided archive's directory structure contains an `uploads/` directory,")}
93
- ${_chalk.default.red.bold('only the files present inside that directory will be imported and the rest will be ignored.')}
94
- ${_chalk.default.red.bold('If no `uploads/` directory is found, all files will be imported, as is.')}
88
+ (0, command_1.default)({
89
+ appContext: true,
90
+ appQuery,
91
+ envContext: true,
92
+ module: 'import-media',
93
+ requiredArgs: 1,
94
+ usage,
95
+ requireConfirm: `
96
+ ${chalk_1.default.red.bold("NOTE: If the provided archive's directory structure contains an `uploads/` directory,")}
97
+ ${chalk_1.default.red.bold('only the files present inside that directory will be imported and the rest will be ignored.')}
98
+ ${chalk_1.default.red.bold('If no `uploads/` directory is found, all files will be imported, as is.')}
95
99
 
96
100
  Are you sure you want to import the contents of the URL?
97
- `
98
- }).command('status', 'Check the status of a currently running media import or retrieve an error log of the most recent media import.').command('abort', 'Abort the media import currently in progress.').option('exportFileErrorsToJson', 'Format the error log in JSON. Default is TXT.').option('saveErrorLog', 'Skip the confirmation prompt and download an error log for the import automatically.').option('overwriteExistingFiles', 'Overwrite existing files with the imported files if they have the same path and file name.', false).option('importIntermediateImages', 'Include intermediate image files in the import.', false).examples(examples).argv(process.argv, async (args, opts) => {
99
- const {
100
- app,
101
- env,
102
- exportFileErrorsToJson,
103
- saveErrorLog,
104
- overwriteExistingFiles,
105
- importIntermediateImages
106
- } = opts;
107
- const [fileNameOrURL] = args;
108
- let url = '';
109
- let sourceIsLocal = false;
110
- if (String(fileNameOrURL).startsWith('http://') || String(fileNameOrURL).startsWith('https://')) {
111
- url = fileNameOrURL;
112
- // validate supported URL
113
- if (!isSupportedUrl(url)) {
114
- console.log(_chalk.default.red(`
101
+ `,
102
+ })
103
+ .command('status', 'Check the status of a currently running media import or retrieve an error log of the most recent media import.')
104
+ .command('abort', 'Abort the media import currently in progress.')
105
+ .option('exportFileErrorsToJson', 'Format the error log in JSON. Default is TXT.')
106
+ .option('saveErrorLog', 'Skip the confirmation prompt and download an error log for the import automatically.')
107
+ .option('overwriteExistingFiles', 'Overwrite existing files with the imported files if they have the same path and file name.', false)
108
+ .option('importIntermediateImages', 'Include intermediate image files in the import.', false)
109
+ .examples(examples)
110
+ .argv(process.argv, async (args, opts) => {
111
+ const { app, env, exportFileErrorsToJson, saveErrorLog, overwriteExistingFiles, importIntermediateImages, } = opts;
112
+ const [fileNameOrURL] = args;
113
+ let url = '';
114
+ let sourceIsLocal = false;
115
+ if (String(fileNameOrURL).startsWith('http://') ||
116
+ String(fileNameOrURL).startsWith('https://')) {
117
+ url = fileNameOrURL;
118
+ // validate supported URL
119
+ if (!isSupportedUrl(url)) {
120
+ console.log(chalk_1.default.red(`
115
121
  Error:
116
122
  Invalid URL provided: ${url}
117
123
  Please make sure that it is a publicly accessible web URL containing an archive of the media files to import.`));
118
- return;
124
+ return;
125
+ }
119
126
  }
120
- } else {
121
- // treat as local archive path
122
- if (!(await (0, _utils.isLocalArchive)(fileNameOrURL))) {
123
- console.log(_chalk.default.red(`
127
+ else {
128
+ // treat as local archive path
129
+ if (!(await (0, utils_1.isLocalArchive)(fileNameOrURL))) {
130
+ console.log(chalk_1.default.red(`
124
131
  Error:
125
132
  Invalid local archive provided: ${fileNameOrURL}
126
133
  Please make sure the file exists and is one of: .tar.gz, .tgz, .zip`));
127
- return;
128
- }
129
-
130
- // upload archive to S3 and get presigned URL for import
131
- sourceIsLocal = true;
132
- const fileMeta = await (0, _clientFileUploader.getFileMeta)(fileNameOrURL);
133
- fileMeta.fileName = fileNameOrURL;
134
- let lastProgress = '';
135
- const {
136
- fileMeta: {
137
- basename
138
- },
139
- checksum: uploadedMD5,
140
- result
141
- } = await (0, _clientFileUploader.uploadImportFileToS3)({
142
- app,
143
- env,
144
- fileMeta,
145
- progressCallback: percentage => {
146
- if (percentage === lastProgress) {
147
- return;
134
+ return;
148
135
  }
149
- lastProgress = percentage;
150
- process.stdout.write(`\rUpload progress: ${percentage} `);
151
- }
152
- });
153
- process.stdout.write('\n');
154
-
155
- // small debug info to keep variables used
156
- debug('Uploaded file basename:', basename);
157
- debug('Uploaded checksum:', uploadedMD5);
158
- debug('Upload result:', result && typeof result === 'object' ? Object.keys(result) : result);
159
- ({
160
- url
161
- } = await (0, _clientFileUploader.getSignedUploadRequestData)({
162
- appId: app.id,
163
- envId: env.id,
164
- basename,
165
- action: 'GetObject'
166
- }));
167
- }
168
- const track = _tracker.trackEventWithEnv.bind(null, app.id, env.id);
169
- const api = (0, _api.default)();
170
- debug('Options: ', opts);
171
- debug('Args:', args);
172
- await track('import_media_start_execute');
173
- const progressTracker = new _progress.MediaImportProgressTracker([]);
174
- progressTracker.prefix = `
136
+ // upload archive to S3 and get presigned URL for import
137
+ sourceIsLocal = true;
138
+ const fileMeta = await (0, client_file_uploader_1.getFileMeta)(fileNameOrURL);
139
+ fileMeta.fileName = fileNameOrURL;
140
+ let lastProgress = '';
141
+ const { fileMeta: { basename }, checksum: uploadedMD5, result, } = await (0, client_file_uploader_1.uploadImportFileToS3)({
142
+ app,
143
+ env,
144
+ fileMeta,
145
+ progressCallback: percentage => {
146
+ if (percentage === lastProgress) {
147
+ return;
148
+ }
149
+ lastProgress = percentage;
150
+ process.stdout.write(`\rUpload progress: ${percentage} `);
151
+ },
152
+ });
153
+ process.stdout.write('\n');
154
+ // small debug info to keep variables used
155
+ debug('Uploaded file basename:', basename);
156
+ debug('Uploaded checksum:', uploadedMD5);
157
+ debug('Upload result:', result && typeof result === 'object' ? Object.keys(result) : result);
158
+ ({ url } = await (0, client_file_uploader_1.getSignedUploadRequestData)({
159
+ appId: app.id,
160
+ envId: env.id,
161
+ basename,
162
+ action: 'GetObject',
163
+ }));
164
+ }
165
+ const track = tracker_1.trackEventWithEnv.bind(null, app.id, env.id);
166
+ const api = (0, api_1.default)();
167
+ debug('Options: ', opts);
168
+ debug('Args:', args);
169
+ await track('import_media_start_execute');
170
+ const progressTracker = new progress_1.MediaImportProgressTracker([]);
171
+ progressTracker.prefix = `
175
172
  =============================================================
176
173
  Importing Media into your App...
177
174
  `;
178
- console.log();
179
- if (sourceIsLocal) {
180
- console.log(`Importing local archive: ${fileNameOrURL} (uploaded to temporary URL)`);
181
- } else {
182
- console.log(`Importing archive from: ${url}`);
183
- }
184
- console.log(`to: ${env.primaryDomain.name} (${(0, _format.formatEnvironment)(env.type)})`);
185
- try {
186
- await api.mutate({
187
- mutation: START_IMPORT_MUTATION,
188
- variables: {
189
- input: {
190
- applicationId: app.id,
191
- environmentId: env.id,
192
- archiveUrl: url,
193
- overwriteExistingFiles,
194
- importIntermediateImages,
195
- apiVersion: API_VERSION
175
+ console.log();
176
+ if (sourceIsLocal) {
177
+ console.log(`Importing local archive: ${fileNameOrURL} (uploaded to temporary URL)`);
178
+ }
179
+ else {
180
+ console.log(`Importing archive from: ${url}`);
181
+ }
182
+ console.log(`to: ${env.primaryDomain.name} (${(0, format_1.formatEnvironment)(env.type)})`);
183
+ try {
184
+ await api.mutate({
185
+ mutation: START_IMPORT_MUTATION,
186
+ variables: {
187
+ input: {
188
+ applicationId: app.id,
189
+ environmentId: env.id,
190
+ archiveUrl: url,
191
+ overwriteExistingFiles,
192
+ importIntermediateImages,
193
+ apiVersion: API_VERSION,
194
+ },
195
+ },
196
+ });
197
+ await (0, status_1.mediaImportCheckStatus)({
198
+ app,
199
+ env,
200
+ progressTracker,
201
+ exportFileErrorsToJson,
202
+ saveErrorLog,
203
+ });
204
+ }
205
+ catch (error) {
206
+ if (core_1.CombinedGraphQLErrors.is(error)) {
207
+ for (const err of error.errors) {
208
+ console.log(chalk_1.default.red('Error:'), err.message);
209
+ }
210
+ return;
196
211
  }
197
- }
198
- });
199
- await (0, _status.mediaImportCheckStatus)({
200
- app,
201
- env,
202
- progressTracker,
203
- exportFileErrorsToJson,
204
- saveErrorLog
205
- });
206
- } catch (error) {
207
- if (_core.CombinedGraphQLErrors.is(error)) {
208
- for (const err of error.errors) {
209
- console.log(_chalk.default.red('Error:'), err.message);
210
- }
211
- return;
212
+ await track('import_media_start_execute_error', {
213
+ error: `Error: ${error.message}`,
214
+ });
212
215
  }
213
- await track('import_media_start_execute_error', {
214
- error: `Error: ${error.message}`
215
- });
216
- }
217
- });
216
+ });
@@ -1,14 +1,48 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
-
4
- var _command = _interopRequireDefault(require("../lib/cli/command"));
5
- var exit = _interopRequireWildcard(require("../lib/cli/exit"));
6
- var _progress = require("../lib/cli/progress");
7
- var _dbFileImport = require("../lib/site-import/db-file-import");
8
- var _status = require("../lib/site-import/status");
9
- var _tracker = require("../lib/tracker");
10
- 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); }
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const command_1 = __importDefault(require("../lib/cli/command"));
41
+ const exit = __importStar(require("../lib/cli/exit"));
42
+ const progress_1 = require("../lib/cli/progress");
43
+ const db_file_import_1 = require("../lib/site-import/db-file-import");
44
+ const status_1 = require("../lib/site-import/status");
45
+ const tracker_1 = require("../lib/tracker");
12
46
  const appQuery = `
13
47
  id,
14
48
  name,
@@ -27,43 +61,39 @@ environments{
27
61
  }
28
62
  `;
29
63
  const usage = 'vip import sql status';
30
-
31
64
  // Command examples
32
- const examples = [{
33
- usage: 'vip @example-app.develop import sql status',
34
- description: 'Check the status of the most recent SQL database import to the develop environment of the "example-app" application.\n' + ' * If the import is still in progress, the command will poll until the import is complete.'
35
- }];
36
- (0, _command.default)({
37
- appContext: true,
38
- appQuery,
39
- envContext: true,
40
- requiredArgs: 0,
41
- usage
42
- }).examples(examples).argv(process.argv, async (arg, {
43
- app,
44
- env
45
- }) => {
46
- const {
47
- id: envId,
48
- appId
49
- } = env;
50
- const track = _tracker.trackEventWithEnv.bind(null, appId, envId);
51
- if (!(0, _dbFileImport.isSupportedApp)(app)) {
52
- await track('import_sql_command_error', {
53
- errorType: 'unsupported-app'
54
- });
55
- exit.withError('The type of application you specified does not currently support SQL imports.');
56
- }
57
- await track('import_sql_check_status_command_execute');
58
- const progressTracker = new _progress.ProgressTracker([]);
59
- progressTracker.prefix = `
65
+ const examples = [
66
+ {
67
+ usage: 'vip @example-app.develop import sql status',
68
+ description: 'Check the status of the most recent SQL database import to the develop environment of the "example-app" application.\n' +
69
+ ' * If the import is still in progress, the command will poll until the import is complete.',
70
+ },
71
+ ];
72
+ (0, command_1.default)({
73
+ appContext: true,
74
+ appQuery,
75
+ envContext: true,
76
+ requiredArgs: 0,
77
+ usage,
78
+ })
79
+ .examples(examples)
80
+ .argv(process.argv, async (arg, { app, env }) => {
81
+ const { id: envId, appId } = env;
82
+ const track = tracker_1.trackEventWithEnv.bind(null, appId, envId);
83
+ if (!(0, db_file_import_1.isSupportedApp)(app)) {
84
+ await track('import_sql_command_error', { errorType: 'unsupported-app' });
85
+ exit.withError('The type of application you specified does not currently support SQL imports.');
86
+ }
87
+ await track('import_sql_check_status_command_execute');
88
+ const progressTracker = new progress_1.ProgressTracker([]);
89
+ progressTracker.prefix = `
60
90
  =============================================================
61
91
  Checking the SQL import status for your environment...
62
92
  `;
63
- await (0, _status.importSqlCheckStatus)({
64
- app,
65
- env,
66
- progressTracker,
67
- shouldReturnMissingJobImmediately: true
68
- });
69
- });
93
+ await (0, status_1.importSqlCheckStatus)({
94
+ app,
95
+ env,
96
+ progressTracker,
97
+ shouldReturnMissingJobImmediately: true,
98
+ });
99
+ });