@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,259 +1,216 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.StepStatus = exports.ProgressTracker = void 0;
5
- var _singleLineLog = require("@wwa/single-line-log");
6
- var _nodeOs = require("node:os");
7
- var _format = require("../../lib/cli/format");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProgressTracker = exports.StepStatus = void 0;
4
+ const single_line_log_1 = require("@wwa/single-line-log");
5
+ const node_os_1 = require("node:os");
6
+ const format_1 = require("../../lib/cli/format");
8
7
  const PRINT_INTERVAL = process.env.DEBUG ? 5000 : 200; // How often the report is printed. Mainly affects the "spinner" animation.
9
- let StepStatus = exports.StepStatus = /*#__PURE__*/function (StepStatus) {
10
- StepStatus["PENDING"] = "pending";
11
- StepStatus["RUNNING"] = "running";
12
- StepStatus["SUCCESS"] = "success";
13
- StepStatus["FAILED"] = "failed";
14
- StepStatus["UNKNOWN"] = "unknown";
15
- StepStatus["SKIPPED"] = "skipped";
16
- return StepStatus;
17
- }({});
8
+ var StepStatus;
9
+ (function (StepStatus) {
10
+ StepStatus["PENDING"] = "pending";
11
+ StepStatus["RUNNING"] = "running";
12
+ StepStatus["SUCCESS"] = "success";
13
+ StepStatus["FAILED"] = "failed";
14
+ StepStatus["UNKNOWN"] = "unknown";
15
+ StepStatus["SKIPPED"] = "skipped";
16
+ })(StepStatus || (exports.StepStatus = StepStatus = {}));
18
17
  const COMPLETED_STEP_SLUGS = [StepStatus.SUCCESS, StepStatus.SKIPPED];
19
18
  class ProgressTracker {
20
- hasFailure;
21
- hasPrinted;
22
- printInterval;
23
-
24
- // Track the state of each step
25
- stepsFromCaller;
26
- stepsFromServer;
27
-
28
- // Spinnerz go brrrr
29
- runningSprite;
30
-
31
- // This gets printed before the step status
32
- prefix;
33
-
34
- // This gets printed after the step status
35
- suffix;
36
-
37
- /**
38
- * This determines from which step should we display the steps
39
- *
40
- * Useful when you want to display a prompt.
41
- *
42
- * And we don't want to repeatedly display the steps that has finished.
43
- */
44
- displayFromStep = 0;
45
- constructor(steps) {
46
- this.runningSprite = new _format.RunningSprite();
47
- this.hasFailure = false;
48
- this.hasPrinted = false;
49
- this.stepsFromCaller = this.mapSteps(steps);
50
- this.stepsFromServer = new Map();
51
- this.prefix = '';
52
- this.suffix = '';
53
- }
54
- getSteps() {
55
- return new Map([...this.stepsFromCaller, ...this.stepsFromServer]);
56
- }
57
- mapSteps(steps) {
58
- return steps.reduce((map, {
59
- id,
60
- name,
61
- status
62
- }) => {
63
- map.set(id, {
64
- id,
65
- name,
66
- status: status ?? StepStatus.PENDING
67
- });
68
- return map;
69
- }, new Map());
70
- }
71
- setUploadPercentage(percentage) {
72
- const uploadStep = this.stepsFromCaller.get('upload');
73
- if (!uploadStep) {
74
- return;
19
+ hasFailure;
20
+ hasPrinted;
21
+ printInterval;
22
+ // Track the state of each step
23
+ stepsFromCaller;
24
+ stepsFromServer;
25
+ // Spinnerz go brrrr
26
+ runningSprite;
27
+ // This gets printed before the step status
28
+ prefix;
29
+ // This gets printed after the step status
30
+ suffix;
31
+ /**
32
+ * This determines from which step should we display the steps
33
+ *
34
+ * Useful when you want to display a prompt.
35
+ *
36
+ * And we don't want to repeatedly display the steps that has finished.
37
+ */
38
+ displayFromStep = 0;
39
+ constructor(steps) {
40
+ this.runningSprite = new format_1.RunningSprite();
41
+ this.hasFailure = false;
42
+ this.hasPrinted = false;
43
+ this.stepsFromCaller = this.mapSteps(steps);
44
+ this.stepsFromServer = new Map();
45
+ this.prefix = '';
46
+ this.suffix = '';
75
47
  }
76
- this.stepsFromCaller.set('upload', {
77
- ...uploadStep,
78
- percentage
79
- });
80
- }
81
- setProgress(progress) {
82
- const step = this.getCurrentStep();
83
- if (!step) {
84
- return;
48
+ getSteps() {
49
+ return new Map([...this.stepsFromCaller, ...this.stepsFromServer]);
85
50
  }
86
- this.stepsFromCaller.set(step.id, {
87
- ...step,
88
- progress
89
- });
90
- }
91
- setStepsFromServer(steps) {
92
- const formattedSteps = steps.map(({
93
- name,
94
- status
95
- }, index) => ({
96
- id: `server-${index}-${name}`,
97
- name,
98
- status
99
- }));
100
- if (!steps.some(({
101
- status
102
- }) => status === StepStatus.RUNNING)) {
103
- const firstPendingStepIndex = steps.findIndex(({
104
- status
105
- }) => status === StepStatus.PENDING);
106
- if (firstPendingStepIndex !== -1) {
107
- // "Promote" the first "pending" to "running"
108
- formattedSteps[firstPendingStepIndex].status = StepStatus.RUNNING;
109
- }
51
+ mapSteps(steps) {
52
+ return steps.reduce((map, { id, name, status }) => {
53
+ map.set(id, { id, name, status: status ?? StepStatus.PENDING });
54
+ return map;
55
+ }, new Map());
110
56
  }
111
- this.stepsFromServer = this.mapSteps(formattedSteps);
112
- }
113
- getNextStep() {
114
- if (this.allStepsSucceeded()) {
115
- return undefined;
57
+ setUploadPercentage(percentage) {
58
+ const uploadStep = this.stepsFromCaller.get('upload');
59
+ if (!uploadStep) {
60
+ return;
61
+ }
62
+ this.stepsFromCaller.set('upload', { ...uploadStep, percentage });
63
+ }
64
+ setProgress(progress) {
65
+ const step = this.getCurrentStep();
66
+ if (!step) {
67
+ return;
68
+ }
69
+ this.stepsFromCaller.set(step.id, { ...step, progress });
116
70
  }
117
- const steps = [...this.getSteps().values()];
118
- return steps.find(({
119
- status
120
- }) => status === StepStatus.PENDING);
121
- }
122
- getCurrentStep() {
123
- if (this.allStepsSucceeded()) {
124
- return undefined;
71
+ setStepsFromServer(steps) {
72
+ const formattedSteps = steps.map(({ name, status }, index) => ({
73
+ id: `server-${index}-${name}`,
74
+ name,
75
+ status,
76
+ }));
77
+ if (!steps.some(({ status }) => status === StepStatus.RUNNING)) {
78
+ const firstPendingStepIndex = steps.findIndex(({ status }) => status === StepStatus.PENDING);
79
+ if (firstPendingStepIndex !== -1) {
80
+ // "Promote" the first "pending" to "running"
81
+ formattedSteps[firstPendingStepIndex].status = StepStatus.RUNNING;
82
+ }
83
+ }
84
+ this.stepsFromServer = this.mapSteps(formattedSteps);
125
85
  }
126
- const steps = [...this.getSteps().values()];
127
- return steps.find(({
128
- status
129
- }) => status === StepStatus.RUNNING);
130
- }
131
- stepRunning(stepId, additionalInfo = []) {
132
- this.setStatusForStepId(stepId, StepStatus.RUNNING, additionalInfo);
133
- }
134
- stepFailed(stepId, additionalInfo = []) {
135
- this.setStatusForStepId(stepId, StepStatus.FAILED, additionalInfo);
136
- }
137
- stepSkipped(stepId, additionalInfo = []) {
138
- this.setStatusForStepId(stepId, StepStatus.SKIPPED, additionalInfo);
139
- }
140
- stepSuccess(stepId, additionalInfo = []) {
141
- this.setStatusForStepId(stepId, StepStatus.SUCCESS, additionalInfo);
142
- // The stepSuccess helper automatically sets the next step to "running"
143
- const nextStep = this.getNextStep();
144
- if (nextStep) {
145
- this.stepRunning(nextStep.id);
86
+ getNextStep() {
87
+ if (this.allStepsSucceeded()) {
88
+ return undefined;
89
+ }
90
+ const steps = [...this.getSteps().values()];
91
+ return steps.find(({ status }) => status === StepStatus.PENDING);
92
+ }
93
+ getCurrentStep() {
94
+ if (this.allStepsSucceeded()) {
95
+ return undefined;
96
+ }
97
+ const steps = [...this.getSteps().values()];
98
+ return steps.find(({ status }) => status === StepStatus.RUNNING);
146
99
  }
147
- }
148
- allStepsSucceeded() {
149
- return [...this.getSteps().values()].every(({
150
- status
151
- }) => status === StepStatus.SUCCESS);
152
- }
153
- setStatusForStepId(stepId, status, additionalInfo = []) {
154
- const step = this.stepsFromCaller.get(stepId);
155
- if (!step) {
156
- // Only allowed to update existing steps with this method
157
- throw new Error(`Step name ${stepId} is not valid.`);
100
+ stepRunning(stepId, additionalInfo = []) {
101
+ this.setStatusForStepId(stepId, StepStatus.RUNNING, additionalInfo);
158
102
  }
159
- if (COMPLETED_STEP_SLUGS.includes(step.status)) {
160
- throw new Error(`Step name ${stepId} is already completed.`);
103
+ stepFailed(stepId, additionalInfo = []) {
104
+ this.setStatusForStepId(stepId, StepStatus.FAILED, additionalInfo);
161
105
  }
162
- if (status === StepStatus.FAILED) {
163
- this.hasFailure = true;
106
+ stepSkipped(stepId, additionalInfo = []) {
107
+ this.setStatusForStepId(stepId, StepStatus.SKIPPED, additionalInfo);
164
108
  }
165
- this.stepsFromCaller.set(stepId, {
166
- ...step,
167
- status,
168
- additionalInfo: Array.isArray(additionalInfo) ? additionalInfo : [additionalInfo]
169
- });
170
- }
171
- startPrinting(prePrintCallback = () => {}) {
172
- this.printInterval = setInterval(() => {
173
- prePrintCallback();
174
- this.print();
175
- }, PRINT_INTERVAL);
176
- }
177
- stopPrinting() {
178
- if (this.printInterval) {
179
- clearInterval(this.printInterval);
109
+ stepSuccess(stepId, additionalInfo = []) {
110
+ this.setStatusForStepId(stepId, StepStatus.SUCCESS, additionalInfo);
111
+ // The stepSuccess helper automatically sets the next step to "running"
112
+ const nextStep = this.getNextStep();
113
+ if (nextStep) {
114
+ this.stepRunning(nextStep.id);
115
+ }
180
116
  }
181
- }
182
- async handleContinuePrompt(prompt) {
183
- this.print();
184
- this.stopPrinting();
185
- let isPromptShown = false;
186
- const setPromptShown = () => {
187
- isPromptShown = true;
188
- };
189
- const returnValue = await prompt(setPromptShown);
190
- if (isPromptShown) {
191
- this.displayFromStep = [...this.getSteps().values()].findIndex(step => step.status === StepStatus.RUNNING);
117
+ allStepsSucceeded() {
118
+ return [...this.getSteps().values()].every(({ status }) => status === StepStatus.SUCCESS);
192
119
  }
193
- let hasPrintedOnce = false;
194
- const printingStartedPromise = new Promise(resolve => {
195
- this.startPrinting(() => {
196
- if (hasPrintedOnce) {
197
- return;
120
+ setStatusForStepId(stepId, status, additionalInfo = []) {
121
+ const step = this.stepsFromCaller.get(stepId);
122
+ if (!step) {
123
+ // Only allowed to update existing steps with this method
124
+ throw new Error(`Step name ${stepId} is not valid.`);
125
+ }
126
+ if (COMPLETED_STEP_SLUGS.includes(step.status)) {
127
+ throw new Error(`Step name ${stepId} is already completed.`);
198
128
  }
199
-
200
- // this is so that we leave some room for the progress tracker to refresh
201
- // without this, any prompt, or any text in between will get overwritten by the progress tracker
202
- let linesToSkip = '';
203
- for (let iteration = 0; iteration < this.stepsFromCaller.size; iteration++) {
204
- linesToSkip += _nodeOs.EOL;
129
+ if (status === StepStatus.FAILED) {
130
+ this.hasFailure = true;
205
131
  }
132
+ this.stepsFromCaller.set(stepId, {
133
+ ...step,
134
+ status,
135
+ additionalInfo: Array.isArray(additionalInfo) ? additionalInfo : [additionalInfo],
136
+ });
137
+ }
138
+ startPrinting(prePrintCallback = () => { }) {
139
+ this.printInterval = setInterval(() => {
140
+ prePrintCallback();
141
+ this.print();
142
+ }, PRINT_INTERVAL);
143
+ }
144
+ stopPrinting() {
145
+ if (this.printInterval) {
146
+ clearInterval(this.printInterval);
147
+ }
148
+ }
149
+ async handleContinuePrompt(prompt) {
150
+ this.print();
151
+ this.stopPrinting();
152
+ let isPromptShown = false;
153
+ const setPromptShown = () => {
154
+ isPromptShown = true;
155
+ };
156
+ const returnValue = await prompt(setPromptShown);
206
157
  if (isPromptShown) {
207
- process.stdout.write(linesToSkip);
158
+ this.displayFromStep = [...this.getSteps().values()].findIndex(step => step.status === StepStatus.RUNNING);
208
159
  }
209
- hasPrintedOnce = true;
210
- resolve();
211
- });
212
- });
213
- await printingStartedPromise;
214
- return returnValue;
215
- }
216
- print({
217
- clearAfter = false
218
- } = {}) {
219
- if (!this.hasPrinted) {
220
- this.hasPrinted = true;
221
- _singleLineLog.stdout.clear();
160
+ let hasPrintedOnce = false;
161
+ const printingStartedPromise = new Promise(resolve => {
162
+ this.startPrinting(() => {
163
+ if (hasPrintedOnce) {
164
+ return;
165
+ }
166
+ // this is so that we leave some room for the progress tracker to refresh
167
+ // without this, any prompt, or any text in between will get overwritten by the progress tracker
168
+ let linesToSkip = '';
169
+ for (let iteration = 0; iteration < this.stepsFromCaller.size; iteration++) {
170
+ linesToSkip += node_os_1.EOL;
171
+ }
172
+ if (isPromptShown) {
173
+ process.stdout.write(linesToSkip);
174
+ }
175
+ hasPrintedOnce = true;
176
+ resolve();
177
+ });
178
+ });
179
+ await printingStartedPromise;
180
+ return returnValue;
222
181
  }
223
- const stepValues = [...this.getSteps().values()];
224
- const logs = stepValues.reduce((accumulator, {
225
- name,
226
- id,
227
- percentage,
228
- status,
229
- progress,
230
- additionalInfo
231
- }, stepNumber) => {
232
- if (stepNumber < this.displayFromStep) {
233
- return accumulator;
234
- }
235
- const statusIcon = (0, _format.getGlyphForStatus)(status, this.runningSprite);
236
- let suffix = '';
237
- if (id === 'upload') {
238
- if (status === StepStatus.RUNNING && percentage) {
239
- suffix = percentage;
182
+ print({ clearAfter = false } = {}) {
183
+ if (!this.hasPrinted) {
184
+ this.hasPrinted = true;
185
+ single_line_log_1.stdout.clear();
186
+ }
187
+ const stepValues = [...this.getSteps().values()];
188
+ const logs = stepValues.reduce((accumulator, { name, id, percentage, status, progress, additionalInfo }, stepNumber) => {
189
+ if (stepNumber < this.displayFromStep) {
190
+ return accumulator;
191
+ }
192
+ const statusIcon = (0, format_1.getGlyphForStatus)(status, this.runningSprite);
193
+ let suffix = '';
194
+ if (id === 'upload') {
195
+ if (status === StepStatus.RUNNING && percentage) {
196
+ suffix = percentage;
197
+ }
198
+ }
199
+ else if (progress) {
200
+ suffix = progress;
201
+ }
202
+ if (additionalInfo && additionalInfo.length > 0) {
203
+ suffix += node_os_1.EOL;
204
+ suffix += additionalInfo.map(stepInfo => ` - ${stepInfo}`).join(node_os_1.EOL);
205
+ }
206
+ return `${accumulator}${statusIcon} ${name} ${suffix}\n`;
207
+ }, '');
208
+ // Output the logs
209
+ (0, single_line_log_1.stdout)(`${this.prefix || ''}${logs}${this.suffix || ''}`);
210
+ if (clearAfter) {
211
+ // Break out of the "Single log line" buffer
212
+ single_line_log_1.stdout.clear();
240
213
  }
241
- } else if (progress) {
242
- suffix = progress;
243
- }
244
- if (additionalInfo && additionalInfo.length > 0) {
245
- suffix += _nodeOs.EOL;
246
- suffix += additionalInfo.map(stepInfo => ` - ${stepInfo}`).join(_nodeOs.EOL);
247
- }
248
- return `${accumulator}${statusIcon} ${name} ${suffix}\n`;
249
- }, '');
250
-
251
- // Output the logs
252
- (0, _singleLineLog.stdout)(`${this.prefix || ''}${logs}${this.suffix || ''}`);
253
- if (clearAfter) {
254
- // Break out of the "Single log line" buffer
255
- _singleLineLog.stdout.clear();
256
214
  }
257
- }
258
215
  }
259
- exports.ProgressTracker = ProgressTracker;
216
+ exports.ProgressTracker = ProgressTracker;
@@ -1,18 +1,17 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.confirm = confirm;
5
- var _enquirer = require("enquirer");
6
- var _format = require("./format");
4
+ const enquirer_1 = require("enquirer");
5
+ const format_1 = require("./format");
7
6
  async function confirm(values, message, skipPrompt = false) {
8
- console.log((0, _format.keyValue)(values));
9
- if (!skipPrompt) {
10
- const answer = await (0, _enquirer.prompt)({
11
- type: 'confirm',
12
- name: 'confirm',
13
- message
14
- });
15
- return answer.confirm;
16
- }
17
- return true;
18
- }
7
+ console.log((0, format_1.keyValue)(values));
8
+ if (!skipPrompt) {
9
+ const answer = await (0, enquirer_1.prompt)({
10
+ type: 'confirm',
11
+ name: 'confirm',
12
+ message,
13
+ });
14
+ return answer.confirm;
15
+ }
16
+ return true;
17
+ }
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.getRuntimeModeLabel = getRuntimeModeLabel;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
5
3
  exports.isStandaloneExecutableRuntime = isStandaloneExecutableRuntime;
4
+ exports.getRuntimeModeLabel = getRuntimeModeLabel;
6
5
  function isStandaloneExecutableRuntime() {
7
- return false;
6
+ return false;
8
7
  }
9
8
  function getRuntimeModeLabel() {
10
- return 'node-script';
11
- }
9
+ return 'node-script';
10
+ }