@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,31 +1,60 @@
1
1
  #!/usr/bin/env node
2
-
3
- /**
4
- * External dependencies
5
- */
6
2
  "use strict";
7
-
8
- exports.__esModule = true;
9
- exports.appDeployCmd = appDeployCmd;
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 });
10
40
  exports.promptToContinue = promptToContinue;
11
- var _chalk = _interopRequireDefault(require("chalk"));
12
- var _debug = _interopRequireDefault(require("debug"));
13
- var _enquirer = require("enquirer");
14
- var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
15
- var _api = _interopRequireDefault(require("../lib/api"));
16
- var _command = _interopRequireDefault(require("../lib/cli/command"));
17
- var exit = _interopRequireWildcard(require("../lib/cli/exit"));
18
- var _format = require("../lib/cli/format");
19
- var _progress = require("../lib/cli/progress");
20
- var _clientFileUploader = require("../lib/client-file-uploader");
21
- var _customDeploy = require("../lib/custom-deploy/custom-deploy");
22
- var _tracker = require("../lib/tracker");
23
- 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); }
24
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
41
+ exports.appDeployCmd = appDeployCmd;
25
42
  /**
26
- * Internal dependencies
43
+ * External dependencies
27
44
  */
28
- const START_DEPLOY_MUTATION = (0, _graphqlTag.default)`
45
+ const chalk_1 = __importDefault(require("chalk"));
46
+ const debug_1 = __importDefault(require("debug"));
47
+ const enquirer_1 = require("enquirer");
48
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
49
+ const api_1 = __importDefault(require("../lib/api"));
50
+ const command_1 = __importDefault(require("../lib/cli/command"));
51
+ const exit = __importStar(require("../lib/cli/exit"));
52
+ const format_1 = require("../lib/cli/format");
53
+ const progress_1 = require("../lib/cli/progress");
54
+ const client_file_uploader_1 = require("../lib/client-file-uploader");
55
+ const custom_deploy_1 = require("../lib/custom-deploy/custom-deploy");
56
+ const tracker_1 = require("../lib/tracker");
57
+ const START_DEPLOY_MUTATION = (0, graphql_tag_1.default) `
29
58
  mutation StartCustomDeploy($input: AppEnvironmentCustomDeployInput) {
30
59
  startCustomDeploy(input: $input) {
31
60
  success
@@ -33,210 +62,188 @@ const START_DEPLOY_MUTATION = (0, _graphqlTag.default)`
33
62
  }
34
63
  }
35
64
  `;
36
- const debug = (0, _debug.default)('@automattic/vip:bin:vip-app-deploy');
65
+ const debug = (0, debug_1.default)('@automattic/vip:bin:vip-app-deploy');
37
66
  const baseUsage = 'vip app deploy';
38
- const DEPLOY_PREFLIGHT_PROGRESS_STEPS = [{
39
- id: 'upload',
40
- name: 'Uploading file'
41
- }, {
42
- id: 'deploy',
43
- name: 'Triggering deployment'
44
- }];
67
+ const DEPLOY_PREFLIGHT_PROGRESS_STEPS = [
68
+ { id: 'upload', name: 'Uploading file' },
69
+ { id: 'deploy', name: 'Triggering deployment' },
70
+ ];
45
71
  /**
46
72
  * Prompt the user to confirm the environment they are deploying to.
47
73
  * @param {PromptToContinueParams} PromptToContinueParams
48
74
  */
49
75
  async function promptToContinue(params) {
50
- const promptToMatch = params.domain.toUpperCase();
51
- const promptResponse = await (0, _enquirer.prompt)({
52
- type: 'input',
53
- name: 'confirmedDomain',
54
- message: `You are about to deploy to a ${params.launched ? 'launched' : 'un-launched'} ${params.formattedEnvironment} site ${_chalk.default.yellow(params.domain)}.\nType '${_chalk.default.yellow(promptToMatch)}' (without the quotes) to continue:\n`
55
- });
56
- if (promptResponse.confirmedDomain.toUpperCase() !== promptToMatch) {
57
- await params.track('deploy_app_unexpected_input');
58
- exit.withError('The input did not match the expected environment label. Deploy aborted.');
59
- }
76
+ const promptToMatch = params.domain.toUpperCase();
77
+ const promptResponse = await (0, enquirer_1.prompt)({
78
+ type: 'input',
79
+ name: 'confirmedDomain',
80
+ message: `You are about to deploy to a ${params.launched ? 'launched' : 'un-launched'} ${params.formattedEnvironment} site ${chalk_1.default.yellow(params.domain)}.\nType '${chalk_1.default.yellow(promptToMatch)}' (without the quotes) to continue:\n`,
81
+ });
82
+ if (promptResponse.confirmedDomain.toUpperCase() !== promptToMatch) {
83
+ await params.track('deploy_app_unexpected_input');
84
+ exit.withError('The input did not match the expected environment label. Deploy aborted.');
85
+ }
60
86
  }
61
87
  async function appDeployCmd(arg = [], opts = {}) {
62
- const app = opts.app;
63
- const env = opts.env;
64
- const [fileName] = arg;
65
- const fileMeta = await (0, _clientFileUploader.getFileMeta)(fileName);
66
- debug('Options: ', opts);
67
- debug('Args: ', arg);
68
- debug('Validating custom deploy key...');
69
- const {
70
- appId,
71
- envId,
72
- ...validatedArgs
73
- } = await (0, _customDeploy.validateCustomDeployKey)(app, env);
74
- debug('Validated environment data: ', {
75
- appId,
76
- envId,
77
- validatedArgs
78
- });
79
- const track = _tracker.trackEventWithEnv.bind(null, appId, envId);
80
- debug('Validating file...');
81
- await (0, _customDeploy.validateFile)(appId, envId, fileMeta);
82
- if (!opts.skipLargeFileValidation) {
83
- await (0, _customDeploy.validateLargeArchiveFiles)(appId, envId, fileMeta);
84
- }
85
- await track('deploy_app_command_execute');
86
-
87
- // Upload file as different name to avoid overwriting existing same named files
88
- const datePrefix = new Date().toISOString()
89
- // eslint-disable-next-line no-useless-escape
90
- .replace(/[\-T:\.Z]/g, '').slice(0, 14);
91
- fileMeta.basename = `${datePrefix}-${fileMeta.basename}`;
92
- const deployMessage = opts.message ?? '';
93
- const skipConfirm = opts.force || opts.skipConfirmation;
94
- if (!skipConfirm) {
95
- const promptParams = {
96
- launched: Boolean(validatedArgs.launched),
97
- formattedEnvironment: (0, _format.formatEnvironment)(validatedArgs.envType),
98
- track,
99
- domain: validatedArgs.primaryDomainName
100
- };
101
- await promptToContinue(promptParams);
102
- }
103
-
104
- /**
105
- * =========== WARNING =============
106
- *
107
- * NO `console.log` after this point!
108
- * Yes, even inside called functions.
109
- * It will break the progress printing.
110
- *
111
- * =========== WARNING =============
112
- */
113
- const progressTracker = new _progress.ProgressTracker(DEPLOY_PREFLIGHT_PROGRESS_STEPS);
114
- let status = 'running';
115
- const setProgressTrackerPrefixAndSuffix = () => {
116
- progressTracker.prefix = `
88
+ const app = opts.app;
89
+ const env = opts.env;
90
+ const [fileName] = arg;
91
+ const fileMeta = await (0, client_file_uploader_1.getFileMeta)(fileName);
92
+ debug('Options: ', opts);
93
+ debug('Args: ', arg);
94
+ debug('Validating custom deploy key...');
95
+ const { appId, envId, ...validatedArgs } = await (0, custom_deploy_1.validateCustomDeployKey)(app, env);
96
+ debug('Validated environment data: ', { appId, envId, validatedArgs });
97
+ const track = tracker_1.trackEventWithEnv.bind(null, appId, envId);
98
+ debug('Validating file...');
99
+ await (0, custom_deploy_1.validateFile)(appId, envId, fileMeta);
100
+ if (!opts.skipLargeFileValidation) {
101
+ await (0, custom_deploy_1.validateLargeArchiveFiles)(appId, envId, fileMeta);
102
+ }
103
+ await track('deploy_app_command_execute');
104
+ // Upload file as different name to avoid overwriting existing same named files
105
+ const datePrefix = new Date()
106
+ .toISOString()
107
+ // eslint-disable-next-line no-useless-escape
108
+ .replace(/[\-T:\.Z]/g, '')
109
+ .slice(0, 14);
110
+ fileMeta.basename = `${datePrefix}-${fileMeta.basename}`;
111
+ const deployMessage = opts.message ?? '';
112
+ const skipConfirm = opts.force || opts.skipConfirmation;
113
+ if (!skipConfirm) {
114
+ const promptParams = {
115
+ launched: Boolean(validatedArgs.launched),
116
+ formattedEnvironment: (0, format_1.formatEnvironment)(validatedArgs.envType),
117
+ track,
118
+ domain: validatedArgs.primaryDomainName,
119
+ };
120
+ await promptToContinue(promptParams);
121
+ }
122
+ /**
123
+ * =========== WARNING =============
124
+ *
125
+ * NO `console.log` after this point!
126
+ * Yes, even inside called functions.
127
+ * It will break the progress printing.
128
+ *
129
+ * =========== WARNING =============
130
+ */
131
+ const progressTracker = new progress_1.ProgressTracker(DEPLOY_PREFLIGHT_PROGRESS_STEPS);
132
+ let status = 'running';
133
+ const setProgressTrackerPrefixAndSuffix = () => {
134
+ progressTracker.prefix = `
117
135
  =============================================================
118
136
  Processing the file for deployment to your environment...
119
137
  `;
120
- progressTracker.suffix = `\n${(0, _format.getGlyphForStatus)(status, progressTracker.runningSprite)} Running...`;
121
- };
122
- const failWithError = failureError => {
123
- status = 'failed';
124
- setProgressTrackerPrefixAndSuffix();
125
- progressTracker.stopPrinting();
126
- progressTracker.print({
127
- clearAfter: true
128
- });
129
- exit.withError(failureError);
130
- };
131
- progressTracker.startPrinting(setProgressTrackerPrefixAndSuffix);
132
- progressTracker.stepRunning('upload');
133
-
134
- // Call the Public API
135
- const api = (0, _api.default)();
136
- const progressCallback = percentage => {
137
- progressTracker.setUploadPercentage(percentage);
138
- };
139
- const appInput = {
140
- id: appId
141
- };
142
- const envInput = {
143
- id: envId
144
- };
145
- const uploadParams = {
146
- app: appInput,
147
- env: envInput,
148
- fileMeta,
149
- progressCallback,
150
- hashType: 'sha256'
151
- };
152
- const startDeployVariables = {
153
- input: {}
154
- };
155
- try {
156
- const {
157
- fileMeta: {
158
- basename
159
- },
160
- checksum,
161
- result
162
- } = await (0, _clientFileUploader.uploadImportFileToS3)(uploadParams);
163
- startDeployVariables.input = {
164
- id: appId,
165
- environmentId: envId,
166
- basename: fileMeta.basename,
167
- checksum,
168
- deployMessage
138
+ progressTracker.suffix = `\n${(0, format_1.getGlyphForStatus)(status, progressTracker.runningSprite)} Running...`;
169
139
  };
170
- debug({
171
- basename,
172
- checksum,
173
- result,
174
- startDeployVariables
175
- });
176
- debug('Upload complete. Initiating the deploy.');
177
- progressTracker.stepSuccess('upload');
178
- await track('deploy_app_upload_complete');
179
- } catch (uploadError) {
180
- await track('deploy_app_command_error', {
181
- error_type: 'upload_failed',
182
- upload_error: uploadError.message
183
- });
184
- progressTracker.stepFailed('upload');
185
- return failWithError(uploadError);
186
- }
187
- progressTracker.stepRunning('deploy');
188
-
189
- // Start the deploy
190
- try {
191
- const WPVIP_DEPLOY_TOKEN = process.env.WPVIP_DEPLOY_TOKEN;
192
- const startDeployResults = await api.mutate({
193
- mutation: START_DEPLOY_MUTATION,
194
- variables: startDeployVariables,
195
- context: {
196
- headers: {
197
- Authorization: `Bearer ${WPVIP_DEPLOY_TOKEN}`
198
- }
199
- }
200
- });
201
- debug({
202
- startDeployResults
203
- });
204
- } catch (gqlErr) {
205
- progressTracker.stepFailed('deploy');
206
- await track('deploy_app_command_error', {
207
- error_type: 'StartDeploy-failed',
208
- gql_err: gqlErr
209
- });
210
- progressTracker.stepFailed('deploy');
211
- return failWithError(`StartDeploy call failed: ${gqlErr.message}`);
212
- }
213
- progressTracker.stepSuccess('deploy');
214
- progressTracker.stopPrinting();
215
- progressTracker.suffix = '';
216
- progressTracker.print({
217
- clearAfter: true
218
- });
219
- const deploymentsUrl = `https://dashboard.wpvip.com/apps/${appId}/${validatedArgs.envUniqueLabel}/code/deployments`;
220
- console.log(`\n✅ ${_chalk.default.bold(_chalk.default.underline(_chalk.default.magenta(fileMeta.basename)))} has been sent for deployment to ${_chalk.default.bold(_chalk.default.blue(validatedArgs.primaryDomainName))}. \nTo check deployment status, go to ${_chalk.default.bold('VIP Dashboard')}: ${deploymentsUrl}`);
140
+ const failWithError = (failureError) => {
141
+ status = 'failed';
142
+ setProgressTrackerPrefixAndSuffix();
143
+ progressTracker.stopPrinting();
144
+ progressTracker.print({ clearAfter: true });
145
+ exit.withError(failureError);
146
+ };
147
+ progressTracker.startPrinting(setProgressTrackerPrefixAndSuffix);
148
+ progressTracker.stepRunning('upload');
149
+ // Call the Public API
150
+ const api = (0, api_1.default)();
151
+ const progressCallback = (percentage) => {
152
+ progressTracker.setUploadPercentage(percentage);
153
+ };
154
+ const appInput = { id: appId };
155
+ const envInput = { id: envId };
156
+ const uploadParams = {
157
+ app: appInput,
158
+ env: envInput,
159
+ fileMeta,
160
+ progressCallback,
161
+ hashType: 'sha256',
162
+ };
163
+ const startDeployVariables = { input: {} };
164
+ try {
165
+ const { fileMeta: { basename }, checksum, result, } = await (0, client_file_uploader_1.uploadImportFileToS3)(uploadParams);
166
+ startDeployVariables.input = {
167
+ id: appId,
168
+ environmentId: envId,
169
+ basename: fileMeta.basename,
170
+ checksum,
171
+ deployMessage,
172
+ };
173
+ debug({ basename, checksum, result, startDeployVariables });
174
+ debug('Upload complete. Initiating the deploy.');
175
+ progressTracker.stepSuccess('upload');
176
+ await track('deploy_app_upload_complete');
177
+ }
178
+ catch (uploadError) {
179
+ await track('deploy_app_command_error', {
180
+ error_type: 'upload_failed',
181
+ upload_error: uploadError.message,
182
+ });
183
+ progressTracker.stepFailed('upload');
184
+ return failWithError(uploadError);
185
+ }
186
+ progressTracker.stepRunning('deploy');
187
+ // Start the deploy
188
+ try {
189
+ const WPVIP_DEPLOY_TOKEN = process.env.WPVIP_DEPLOY_TOKEN;
190
+ const startDeployResults = await api.mutate({
191
+ mutation: START_DEPLOY_MUTATION,
192
+ variables: startDeployVariables,
193
+ context: {
194
+ headers: {
195
+ Authorization: `Bearer ${WPVIP_DEPLOY_TOKEN}`,
196
+ },
197
+ },
198
+ });
199
+ debug({ startDeployResults });
200
+ }
201
+ catch (gqlErr) {
202
+ progressTracker.stepFailed('deploy');
203
+ await track('deploy_app_command_error', {
204
+ error_type: 'StartDeploy-failed',
205
+ gql_err: gqlErr,
206
+ });
207
+ progressTracker.stepFailed('deploy');
208
+ return failWithError(`StartDeploy call failed: ${gqlErr.message}`);
209
+ }
210
+ progressTracker.stepSuccess('deploy');
211
+ progressTracker.stopPrinting();
212
+ progressTracker.suffix = '';
213
+ progressTracker.print({ clearAfter: true });
214
+ const deploymentsUrl = `https://dashboard.wpvip.com/apps/${appId}/${validatedArgs.envUniqueLabel}/code/deployments`;
215
+ console.log(`\n✅ ${chalk_1.default.bold(chalk_1.default.underline(chalk_1.default.magenta(fileMeta.basename)))} has been sent for deployment to ${chalk_1.default.bold(chalk_1.default.blue(validatedArgs.primaryDomainName))}. \nTo check deployment status, go to ${chalk_1.default.bold('VIP Dashboard')}: ${deploymentsUrl}`);
221
216
  }
222
-
223
217
  // Command examples for the `vip deploy app` help prompt
224
218
  const examples = [
225
- // `app` subcommand
226
- {
227
- usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.zip',
228
- description: 'Deploy a local archived file named "file.zip" that contains application code to a VIP Platform environment that has Custom Deployment enabled.'
229
- }, {
230
- usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.tgz --message="A description for this deploy"',
231
- description: 'Add a descriptive message for the Custom Deployment of the archived file named "file.tgz".'
232
- }, {
233
- usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.tar.gz --skip-confirmation',
234
- description: 'Skip the confirmation prompt for the Custom Deployment of the archived file named "file.tar.gz" to the environment.'
235
- }, {
236
- usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.zip --skip-large-file-validation',
237
- description: 'Skip checking the deploy archive for repository archive files larger than 20 MB.'
238
- }];
239
- void (0, _command.default)({
240
- requiredArgs: 1,
241
- usage: baseUsage
242
- }).command('validate', 'Validate the directory structure of an archived file.').examples(examples).option('message', 'Add a description of a deployment.').option('skip-confirmation', 'Skip the confirmation prompt.').option('skip-large-file-validation', 'Skip checking for repository archive files over 20 MB.', false).option('force', 'Skip confirmation prompt (deprecated)').option('app', 'Target an application. Accepts a string value for the application name or an integer for the application ID.').option('env', 'Target an environment. Accepts a string value for the environment type.').argv(process.argv, appDeployCmd);
219
+ // `app` subcommand
220
+ {
221
+ usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.zip',
222
+ description: 'Deploy a local archived file named "file.zip" that contains application code to a VIP Platform environment that has Custom Deployment enabled.',
223
+ },
224
+ {
225
+ usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.tgz --message="A description for this deploy"',
226
+ description: 'Add a descriptive message for the Custom Deployment of the archived file named "file.tgz".',
227
+ },
228
+ {
229
+ usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.tar.gz --skip-confirmation',
230
+ description: 'Skip the confirmation prompt for the Custom Deployment of the archived file named "file.tar.gz" to the environment.',
231
+ },
232
+ {
233
+ usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.zip --skip-large-file-validation',
234
+ description: 'Skip checking the deploy archive for repository archive files larger than 20 MB.',
235
+ },
236
+ ];
237
+ void (0, command_1.default)({
238
+ requiredArgs: 1,
239
+ usage: baseUsage,
240
+ })
241
+ .command('validate', 'Validate the directory structure of an archived file.')
242
+ .examples(examples)
243
+ .option('message', 'Add a description of a deployment.')
244
+ .option('skip-confirmation', 'Skip the confirmation prompt.')
245
+ .option('skip-large-file-validation', 'Skip checking for repository archive files over 20 MB.', false)
246
+ .option('force', 'Skip confirmation prompt (deprecated)')
247
+ .option('app', 'Target an application. Accepts a string value for the application name or an integer for the application ID.')
248
+ .option('env', 'Target an environment. Accepts a string value for the environment type.')
249
+ .argv(process.argv, appDeployCmd);
@@ -1,25 +1,36 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
-
4
- var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
5
- var _api = _interopRequireDefault(require("../lib/api"));
6
- var _command = _interopRequireDefault(require("../lib/cli/command"));
7
- var _tracker = require("../lib/tracker");
8
- 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 graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ const api_1 = __importDefault(require("../lib/api"));
9
+ const command_1 = __importDefault(require("../lib/cli/command"));
10
+ const tracker_1 = require("../lib/tracker");
9
11
  const baseUsage = 'vip app list';
10
- (0, _command.default)({
11
- format: true,
12
- usage: baseUsage
13
- }).examples([{
14
- usage: baseUsage + '\n' + ' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' + ' - │ id │ name │ repo │\n' + ' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' + ' - │ 8886 │ example-app │ wpcomvip/my-org-example-app │\n' + ' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' + ' - │ 4325 │ mytestmultisite │ wpcomvip/my-org-mytestmultisite │\n' + ' - └──────┴─────────────────┴─────────────────────────────────┘\n',
15
- description: 'Retrieve a list of applications that can be accessed by the current authenticated VIP-CLI user.'
16
- }]).argv(process.argv, async () => {
17
- const api = (0, _api.default)();
18
- await (0, _tracker.trackEvent)('app_list_command_execute');
19
- let response;
20
- try {
21
- response = await api.query({
22
- query: (0, _graphqlTag.default)`
12
+ (0, command_1.default)({ format: true, usage: baseUsage })
13
+ .examples([
14
+ {
15
+ usage: baseUsage +
16
+ '\n' +
17
+ ' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' +
18
+ ' - │ id │ name │ repo │\n' +
19
+ ' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' +
20
+ ' - │ 8886 │ example-app │ wpcomvip/my-org-example-app │\n' +
21
+ ' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' +
22
+ ' - │ 4325 │ mytestmultisite │ wpcomvip/my-org-mytestmultisite │\n' +
23
+ ' - └──────┴─────────────────┴─────────────────────────────────┘\n',
24
+ description: 'Retrieve a list of applications that can be accessed by the current authenticated VIP-CLI user.',
25
+ },
26
+ ])
27
+ .argv(process.argv, async () => {
28
+ const api = (0, api_1.default)();
29
+ await (0, tracker_1.trackEvent)('app_list_command_execute');
30
+ let response;
31
+ try {
32
+ response = await api.query({
33
+ query: (0, graphql_tag_1.default) `
23
34
  query Apps($first: Int, $after: String) {
24
35
  apps(first: $first, after: $after) {
25
36
  total
@@ -32,27 +43,32 @@ const baseUsage = 'vip app list';
32
43
  }
33
44
  }
34
45
  `,
35
- variables: {
36
- first: 100,
37
- after: null // TODO make dynamic
38
- }
39
- });
40
- } catch (err) {
41
- const message = err.toString();
42
- await (0, _tracker.trackEvent)('app_list_command_fetch_error', {
43
- error: message
44
- });
45
- console.log('Failed to fetch apps: %s', message);
46
- return;
47
- }
48
- if (!response || !response.data || !response.data.apps || !response.data.apps.edges || !response.data.apps.edges.length) {
49
- const message = 'No apps found';
50
- await (0, _tracker.trackEvent)('app_list_command_fetch_error', {
51
- error: message
52
- });
53
- console.log(message);
54
- return;
55
- }
56
- await (0, _tracker.trackEvent)('app_list_command_success');
57
- return response.data.apps.edges;
58
- });
46
+ variables: {
47
+ first: 100,
48
+ after: null, // TODO make dynamic
49
+ },
50
+ });
51
+ }
52
+ catch (err) {
53
+ const message = err.toString();
54
+ await (0, tracker_1.trackEvent)('app_list_command_fetch_error', {
55
+ error: message,
56
+ });
57
+ console.log('Failed to fetch apps: %s', message);
58
+ return;
59
+ }
60
+ if (!response ||
61
+ !response.data ||
62
+ !response.data.apps ||
63
+ !response.data.apps.edges ||
64
+ !response.data.apps.edges.length) {
65
+ const message = 'No apps found';
66
+ await (0, tracker_1.trackEvent)('app_list_command_fetch_error', {
67
+ error: message,
68
+ });
69
+ console.log(message);
70
+ return;
71
+ }
72
+ await (0, tracker_1.trackEvent)('app_list_command_success');
73
+ return response.data.apps.edges;
74
+ });