@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
package/dist/lib/token.js CHANGED
@@ -1,102 +1,101 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.default = exports.SERVICE = void 0;
5
- var _jwtDecode = require("jwt-decode");
6
- var _nodeCrypto = require("node:crypto");
7
- var _constants = require("./api/constants");
8
- var _keychain = require("./keychain");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SERVICE = void 0;
4
+ const jwt_decode_1 = require("jwt-decode");
5
+ const node_crypto_1 = require("node:crypto");
6
+ const constants_1 = require("./api/constants");
7
+ const keychain_1 = require("./keychain");
9
8
  // Config
10
- const SERVICE = exports.SERVICE = 'vip-go-cli';
9
+ exports.SERVICE = 'vip-go-cli';
11
10
  class Token {
12
- _raw;
13
- _id;
14
- iat;
15
- exp;
16
- constructor(token) {
17
- if (!token) {
18
- return;
11
+ _raw;
12
+ _id;
13
+ iat;
14
+ exp;
15
+ constructor(token) {
16
+ if (!token) {
17
+ return;
18
+ }
19
+ token = token.trim();
20
+ if (!token.length) {
21
+ return;
22
+ }
23
+ const decodedToken = (0, jwt_decode_1.jwtDecode)(token);
24
+ this._raw = token;
25
+ if (decodedToken.id) {
26
+ this._id = decodedToken.id;
27
+ }
28
+ if (decodedToken.iat) {
29
+ this.iat = new Date(decodedToken.iat * 1000);
30
+ }
31
+ if (decodedToken.exp) {
32
+ this.exp = new Date(decodedToken.exp * 1000);
33
+ }
19
34
  }
20
- token = token.trim();
21
- if (!token.length) {
22
- return;
35
+ valid() {
36
+ if (!this._id) {
37
+ return false;
38
+ }
39
+ if (!this.iat) {
40
+ return false;
41
+ }
42
+ const now = new Date();
43
+ if (!this.exp) {
44
+ return now > this.iat;
45
+ }
46
+ return now > this.iat && now < this.exp;
23
47
  }
24
- const decodedToken = (0, _jwtDecode.jwtDecode)(token);
25
- this._raw = token;
26
- if (decodedToken.id) {
27
- this._id = decodedToken.id;
48
+ expired() {
49
+ if (!this.exp) {
50
+ return false;
51
+ }
52
+ const now = new Date();
53
+ return now > this.exp;
28
54
  }
29
- if (decodedToken.iat) {
30
- this.iat = new Date(decodedToken.iat * 1000);
55
+ get id() {
56
+ return this._id ?? NaN;
31
57
  }
32
- if (decodedToken.exp) {
33
- this.exp = new Date(decodedToken.exp * 1000);
58
+ get raw() {
59
+ return this._raw ?? '';
34
60
  }
35
- }
36
- valid() {
37
- if (!this._id) {
38
- return false;
61
+ static async uuid() {
62
+ const service = Token.getServiceName('-uuid');
63
+ const keychain = await (0, keychain_1.getKeychain)();
64
+ let _uuid = await keychain.getPassword(service);
65
+ if (!_uuid) {
66
+ _uuid = (0, node_crypto_1.randomUUID)();
67
+ await keychain.setPassword(service, _uuid);
68
+ }
69
+ return _uuid;
39
70
  }
40
- if (!this.iat) {
41
- return false;
71
+ static async setUuid(_uuid) {
72
+ const service = Token.getServiceName('-uuid');
73
+ const keychain = await (0, keychain_1.getKeychain)();
74
+ await keychain.setPassword(service, _uuid);
42
75
  }
43
- const now = new Date();
44
- if (!this.exp) {
45
- return now > this.iat;
76
+ static async set(token) {
77
+ const service = Token.getServiceName();
78
+ const keychain = await (0, keychain_1.getKeychain)();
79
+ return keychain.setPassword(service, token);
46
80
  }
47
- return now > this.iat && now < this.exp;
48
- }
49
- expired() {
50
- if (!this.exp) {
51
- return false;
81
+ static async get() {
82
+ const service = Token.getServiceName();
83
+ const keychain = await (0, keychain_1.getKeychain)();
84
+ const token = await keychain.getPassword(service);
85
+ return new Token(token ?? '');
52
86
  }
53
- const now = new Date();
54
- return now > this.exp;
55
- }
56
- get id() {
57
- return this._id ?? NaN;
58
- }
59
- get raw() {
60
- return this._raw ?? '';
61
- }
62
- static async uuid() {
63
- const service = Token.getServiceName('-uuid');
64
- const keychain = await (0, _keychain.getKeychain)();
65
- let _uuid = await keychain.getPassword(service);
66
- if (!_uuid) {
67
- _uuid = (0, _nodeCrypto.randomUUID)();
68
- await keychain.setPassword(service, _uuid);
87
+ static async purge() {
88
+ const service = Token.getServiceName();
89
+ const keychain = await (0, keychain_1.getKeychain)();
90
+ return keychain.deletePassword(service);
69
91
  }
70
- return _uuid;
71
- }
72
- static async setUuid(_uuid) {
73
- const service = Token.getServiceName('-uuid');
74
- const keychain = await (0, _keychain.getKeychain)();
75
- await keychain.setPassword(service, _uuid);
76
- }
77
- static async set(token) {
78
- const service = Token.getServiceName();
79
- const keychain = await (0, _keychain.getKeychain)();
80
- return keychain.setPassword(service, token);
81
- }
82
- static async get() {
83
- const service = Token.getServiceName();
84
- const keychain = await (0, _keychain.getKeychain)();
85
- const token = await keychain.getPassword(service);
86
- return new Token(token ?? '');
87
- }
88
- static async purge() {
89
- const service = Token.getServiceName();
90
- const keychain = await (0, _keychain.getKeychain)();
91
- return keychain.deletePassword(service);
92
- }
93
- static getServiceName(modifier = '') {
94
- let service = SERVICE;
95
- if (_constants.PRODUCTION_API_HOST !== _constants.API_HOST) {
96
- const sanitized = _constants.API_HOST.replace(/[^a-z0-9]/gi, '-');
97
- service = `${SERVICE}:${sanitized}`;
92
+ static getServiceName(modifier = '') {
93
+ let service = exports.SERVICE;
94
+ if (constants_1.PRODUCTION_API_HOST !== constants_1.API_HOST) {
95
+ const sanitized = constants_1.API_HOST.replace(/[^a-z0-9]/gi, '-');
96
+ service = `${exports.SERVICE}:${sanitized}`;
97
+ }
98
+ return `${service}${modifier}`;
98
99
  }
99
- return `${service}${modifier}`;
100
- }
101
100
  }
102
- exports.default = Token;
101
+ exports.default = Token;
@@ -1,79 +1,68 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.aliasUser = aliasUser;
5
- exports.makeCommandTracker = makeCommandTracker;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.trackEvent = trackEvent;
7
+ exports.aliasUser = aliasUser;
7
8
  exports.trackEventWithEnv = trackEventWithEnv;
8
- var _debug = _interopRequireDefault(require("debug"));
9
- var _pendo = _interopRequireDefault(require("./analytics/clients/pendo"));
10
- var _tracks = _interopRequireDefault(require("./analytics/clients/tracks"));
11
- var _index = _interopRequireDefault(require("./analytics/index"));
12
- var _env = _interopRequireDefault(require("./env"));
13
- var _config = _interopRequireDefault(require("../lib/cli/config"));
14
- var _token = _interopRequireDefault(require("../lib/token"));
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- const debug = (0, _debug.default)('@automattic/vip:analytics');
9
+ exports.makeCommandTracker = makeCommandTracker;
10
+ const debug_1 = __importDefault(require("debug"));
11
+ const tracks_1 = __importDefault(require("./analytics/clients/tracks"));
12
+ const index_1 = __importDefault(require("./analytics/index"));
13
+ const env_1 = __importDefault(require("./env"));
14
+ const config_1 = __importDefault(require("../lib/cli/config"));
15
+ const token_1 = __importDefault(require("../lib/token"));
16
+ const debug = (0, debug_1.default)('@automattic/vip:analytics');
17
17
  let analytics = null;
18
18
  async function init() {
19
- const uuid = await _token.default.uuid();
20
- const clients = [];
21
- const tracksUserType = _config.default.tracksUserType;
22
- const tracksEventPrefix = _config.default.tracksEventPrefix;
23
- if (tracksUserType && tracksEventPrefix) {
24
- clients.push(new _tracks.default(uuid, tracksUserType, tracksEventPrefix, _env.default));
25
- clients.push(new _pendo.default({
26
- env: _env.default,
27
- eventPrefix: tracksEventPrefix,
28
- userId: uuid
29
- }));
30
- }
31
- return new _index.default(clients);
19
+ const uuid = await token_1.default.uuid();
20
+ const tracksUserType = config_1.default.tracksUserType;
21
+ const tracksEventPrefix = config_1.default.tracksEventPrefix;
22
+ if (!tracksUserType || !tracksEventPrefix) {
23
+ return null;
24
+ }
25
+ return new index_1.default(new tracks_1.default(uuid, tracksUserType, tracksEventPrefix, env_1.default));
32
26
  }
33
27
  async function getInstance() {
34
- if (analytics) {
28
+ if (analytics) {
29
+ return analytics;
30
+ }
31
+ analytics = await init();
35
32
  return analytics;
36
- }
37
- analytics = await init();
38
- return analytics;
39
33
  }
40
34
  async function trackEvent(name, props = {}) {
41
- try {
42
- await _token.default.uuid();
43
- const client = await getInstance();
44
- return await client.trackEvent(name, props);
45
- } catch (err) {
46
- debug('trackEvent() failed', err);
47
- return [];
48
- }
35
+ try {
36
+ await token_1.default.uuid();
37
+ const client = await getInstance();
38
+ return client ? await client.trackEvent(name, props) : false;
39
+ }
40
+ catch (err) {
41
+ debug('trackEvent() failed', err);
42
+ return false;
43
+ }
49
44
  }
50
45
  async function aliasUser(vipUserId) {
51
- if (vipUserId) {
52
- try {
53
- await trackEvent('_alias_user', {
54
- ui: vipUserId,
55
- _ut: _config.default.tracksUserType,
56
- anonid: await _token.default.uuid()
57
- });
58
- await _token.default.setUuid(`${vipUserId}`);
59
- } catch (err) {
60
- debug('aliasUser() failed', err);
46
+ if (vipUserId) {
47
+ try {
48
+ await trackEvent('_alias_user', {
49
+ ui: vipUserId,
50
+ _ut: config_1.default.tracksUserType,
51
+ anonid: await token_1.default.uuid(),
52
+ });
53
+ await token_1.default.setUuid(`${vipUserId}`);
54
+ }
55
+ catch (err) {
56
+ debug('aliasUser() failed', err);
57
+ }
61
58
  }
62
- }
63
59
  }
64
60
  function trackEventWithEnv(appId, envId, eventName, eventProps = {}) {
65
- return trackEvent(eventName, {
66
- ...eventProps,
67
- app_id: appId,
68
- env_id: envId
69
- });
61
+ return trackEvent(eventName, { ...eventProps, app_id: appId, env_id: envId });
70
62
  }
71
63
  function makeCommandTracker(command, trackingInfo = {}) {
72
- const trackerFn = async (type, data = {}) => {
73
- await trackEvent(`${command}_command_${type}`, {
74
- ...trackingInfo,
75
- ...data
76
- });
77
- };
78
- return trackerFn;
79
- }
64
+ const trackerFn = async (type, data = {}) => {
65
+ await trackEvent(`${command}_command_${type}`, { ...trackingInfo, ...data });
66
+ };
67
+ return trackerFn;
68
+ }
@@ -1 +1,2 @@
1
- "use strict";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/lib/types.js CHANGED
@@ -1 +1,2 @@
1
- "use strict";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.default = void 0;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
5
3
  class UserError extends Error {
6
- constructor(message, options) {
7
- super(message, options);
8
- this.name = 'UserError';
9
- }
4
+ constructor(message, options) {
5
+ super(message, options);
6
+ this.name = 'UserError';
7
+ }
10
8
  }
11
- exports.default = UserError;
9
+ exports.default = UserError;
package/dist/lib/utils.js CHANGED
@@ -1,41 +1,40 @@
1
1
  "use strict";
2
-
3
- exports.__esModule = true;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
4
6
  exports.PollingTimeoutError = void 0;
5
- exports.getAbsolutePath = getAbsolutePath;
7
+ exports.pollUntil = pollUntil;
6
8
  exports.makeTempDir = makeTempDir;
9
+ exports.getAbsolutePath = getAbsolutePath;
7
10
  exports.parseApiError = parseApiError;
8
- exports.pollUntil = pollUntil;
9
11
  exports.splitKeyValueString = splitKeyValueString;
10
- var _debug = _interopRequireDefault(require("debug"));
11
- var _fs = _interopRequireDefault(require("fs"));
12
- var _promises = require("node:timers/promises");
13
- var _os = _interopRequireDefault(require("os"));
14
- var _path = _interopRequireDefault(require("path"));
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- const debug = (0, _debug.default)('@automattic/vip:lib:utils');
17
- class PollingTimeoutError extends Error {}
18
-
12
+ const debug_1 = __importDefault(require("debug"));
13
+ const fs_1 = __importDefault(require("fs"));
14
+ const promises_1 = require("node:timers/promises");
15
+ const os_1 = __importDefault(require("os"));
16
+ const path_1 = __importDefault(require("path"));
17
+ const debug = (0, debug_1.default)('@automattic/vip:lib:utils');
18
+ class PollingTimeoutError extends Error {
19
+ }
20
+ exports.PollingTimeoutError = PollingTimeoutError;
19
21
  /**
20
22
  * Polls a function until its return value satisfies a condition
21
23
  */
22
- exports.PollingTimeoutError = PollingTimeoutError;
23
24
  async function pollUntil(fn, interval, isDone, timeoutMs = 6 * 60 * 60 * 1000 // Default to 6 hours
24
25
  ) {
25
- const startTime = Date.now();
26
- while (Date.now() - startTime < timeoutMs) {
27
- // eslint-disable-next-line no-await-in-loop
28
- const result = await fn();
29
- if (isDone(result)) {
30
- return result;
26
+ const startTime = Date.now();
27
+ while (Date.now() - startTime < timeoutMs) {
28
+ // eslint-disable-next-line no-await-in-loop
29
+ const result = await fn();
30
+ if (isDone(result)) {
31
+ return result;
32
+ }
33
+ // eslint-disable-next-line no-await-in-loop
34
+ await (0, promises_1.setTimeout)(interval);
31
35
  }
32
-
33
- // eslint-disable-next-line no-await-in-loop
34
- await (0, _promises.setTimeout)(interval);
35
- }
36
- throw new PollingTimeoutError('Polling timed out');
36
+ throw new PollingTimeoutError('Polling timed out');
37
37
  }
38
-
39
38
  /**
40
39
  * Create a temporary directory in the system's temp directory
41
40
  *
@@ -44,23 +43,19 @@ async function pollUntil(fn, interval, isDone, timeoutMs = 6 * 60 * 60 * 1000 //
44
43
  * @throws {Error} If the directory cannot be created
45
44
  */
46
45
  function makeTempDir(prefix = 'vip-cli') {
47
- const tempDir = _fs.default.mkdtempSync(_path.default.join(_os.default.tmpdir(), `${prefix}-`));
48
- debug(`Created a directory to hold temporary files: ${tempDir}`);
49
- process.on('exit', () => {
50
- try {
51
- _fs.default.rmSync(tempDir, {
52
- recursive: true,
53
- force: true,
54
- maxRetries: 10
55
- });
56
- debug(`Removed temporary directory: ${tempDir}`);
57
- } catch (err) {
58
- console.warn(`Failed to remove temporary directory ${tempDir} (${err.message})`);
59
- }
60
- });
61
- return tempDir;
46
+ const tempDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), `${prefix}-`));
47
+ debug(`Created a directory to hold temporary files: ${tempDir}`);
48
+ process.on('exit', () => {
49
+ try {
50
+ fs_1.default.rmSync(tempDir, { recursive: true, force: true, maxRetries: 10 });
51
+ debug(`Removed temporary directory: ${tempDir}`);
52
+ }
53
+ catch (err) {
54
+ console.warn(`Failed to remove temporary directory ${tempDir} (${err.message})`);
55
+ }
56
+ });
57
+ return tempDir;
62
58
  }
63
-
64
59
  /**
65
60
  * Get absolute path to a file
66
61
  *
@@ -69,15 +64,14 @@ function makeTempDir(prefix = 'vip-cli') {
69
64
  * @return {string} Absolute path to the file
70
65
  */
71
66
  function getAbsolutePath(filePath) {
72
- if (filePath.startsWith('~')) {
73
- return filePath.replace('~', _os.default.homedir());
74
- }
75
- if (!_path.default.isAbsolute(filePath)) {
76
- return _path.default.resolve(process.cwd(), filePath);
77
- }
78
- return filePath;
67
+ if (filePath.startsWith('~')) {
68
+ return filePath.replace('~', os_1.default.homedir());
69
+ }
70
+ if (!path_1.default.isAbsolute(filePath)) {
71
+ return path_1.default.resolve(process.cwd(), filePath);
72
+ }
73
+ return filePath;
79
74
  }
80
-
81
75
  /**
82
76
  * Extract a message from a raw HTTP response body (Apollo's `ServerError.bodyText`).
83
77
  *
@@ -86,18 +80,19 @@ function getAbsolutePath(filePath) {
86
80
  * `{"errors":[{"message":"..."}]}` payload.
87
81
  */
88
82
  function parseJSONBodyErrorMessage(bodyText) {
89
- try {
90
- const body = JSON.parse(bodyText);
91
- if (body?.errors?.[0]?.message) {
92
- return body.errors[0].message;
83
+ try {
84
+ const body = JSON.parse(bodyText);
85
+ if (body?.errors?.[0]?.message) {
86
+ return body.errors[0].message;
87
+ }
88
+ if (body?.message) {
89
+ return body.message;
90
+ }
93
91
  }
94
- if (body?.message) {
95
- return body.message;
92
+ catch {
93
+ // Body wasn't JSON; nothing to extract.
96
94
  }
97
- } catch {
98
- // Body wasn't JSON; nothing to extract.
99
- }
100
- return null;
95
+ return null;
101
96
  }
102
97
  /**
103
98
  * Parse error object and return probable error.
@@ -106,33 +101,32 @@ function parseJSONBodyErrorMessage(bodyText) {
106
101
  * error), so callers do not need to cast before passing it in.
107
102
  */
108
103
  function parseApiError(error) {
109
- const err = error;
110
- if (err?.networkError?.message) {
111
- return err?.networkError?.message;
112
- }
113
- if (err?.graphQLErrors?.[0]?.message) {
114
- return err.graphQLErrors[0].message;
115
- }
116
-
117
- // Apollo's `ServerError` exposes the raw HTTP response body as `bodyText`,
118
- // which often holds a more specific message than the generic top-level one.
119
- if (typeof err?.bodyText === 'string') {
120
- const bodyTextMessage = parseJSONBodyErrorMessage(err.bodyText);
121
- if (bodyTextMessage) {
122
- return bodyTextMessage;
104
+ const err = error;
105
+ if (err?.networkError?.message) {
106
+ return err?.networkError?.message;
107
+ }
108
+ if (err?.graphQLErrors?.[0]?.message) {
109
+ return err.graphQLErrors[0].message;
123
110
  }
124
- }
125
- if (err?.message) {
126
- return err?.message;
127
- }
128
- return null;
111
+ // Apollo's `ServerError` exposes the raw HTTP response body as `bodyText`,
112
+ // which often holds a more specific message than the generic top-level one.
113
+ if (typeof err?.bodyText === 'string') {
114
+ const bodyTextMessage = parseJSONBodyErrorMessage(err.bodyText);
115
+ if (bodyTextMessage) {
116
+ return bodyTextMessage;
117
+ }
118
+ }
119
+ if (err?.message) {
120
+ return err?.message;
121
+ }
122
+ return null;
129
123
  }
130
124
  function splitKeyValueString(str, delimiter = '=') {
131
- const delimiterIndex = str.indexOf(delimiter);
132
- if (delimiterIndex === -1) {
133
- return [str.trim(), ''];
134
- }
135
- const key = str.slice(0, delimiterIndex).trim();
136
- const value = str.slice(delimiterIndex + delimiter.length).trim();
137
- return [key, value];
138
- }
125
+ const delimiterIndex = str.indexOf(delimiter);
126
+ if (delimiterIndex === -1) {
127
+ return [str.trim(), ''];
128
+ }
129
+ const key = str.slice(0, delimiterIndex).trim();
130
+ const value = str.slice(delimiterIndex + delimiter.length).trim();
131
+ return [key, value];
132
+ }