checkly 9.5.0 → 10.0.0-prerelease-4f88d60

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 (575) hide show
  1. package/README.md +10 -0
  2. package/bin/launch.cjs +12 -0
  3. package/dist/ai-context/context.js +1 -0
  4. package/dist/ai-context/context.js.map +1 -1
  5. package/dist/ai-context/onboarding-boilerplate/checkly-config-template.ts +2 -2
  6. package/dist/ai-context/public-skills/checkly/SKILL.md +34 -5
  7. package/dist/ai-context/skills-command/references/communicate.md +8 -5
  8. package/dist/ai-context/skills-command/references/configure-api-checks.md +1 -9
  9. package/dist/ai-context/skills-command/references/configure-browser-checks.md +1 -8
  10. package/dist/ai-context/skills-command/references/configure-check-groups.md +1 -0
  11. package/dist/ai-context/skills-command/references/configure-dns-monitors.md +1 -9
  12. package/dist/ai-context/skills-command/references/configure-grpc-monitors.md +24 -0
  13. package/dist/ai-context/skills-command/references/configure-heartbeat-monitors.md +1 -9
  14. package/dist/ai-context/skills-command/references/configure-icmp-monitors.md +1 -9
  15. package/dist/ai-context/skills-command/references/configure-multistep-checks.md +1 -9
  16. package/dist/ai-context/skills-command/references/configure-playwright-checks.md +2 -2
  17. package/dist/ai-context/skills-command/references/configure-supporting-constructs.md +6 -2
  18. package/dist/ai-context/skills-command/references/configure-tcp-monitors.md +1 -10
  19. package/dist/ai-context/skills-command/references/configure-url-monitors.md +1 -10
  20. package/dist/ai-context/skills-command/references/configure.md +17 -5
  21. package/dist/ai-context/skills-command/references/initialize.md +11 -3
  22. package/dist/ai-context/skills-command/references/investigate-checks.md +1 -1
  23. package/dist/auth/api-key.d.ts +24 -0
  24. package/dist/auth/api-key.js +104 -0
  25. package/dist/auth/api-key.js.map +1 -0
  26. package/dist/auth/device-flow.d.ts +58 -0
  27. package/dist/auth/device-flow.js +228 -0
  28. package/dist/auth/device-flow.js.map +1 -0
  29. package/dist/auth/index.d.ts +6 -6
  30. package/dist/auth/index.js +64 -64
  31. package/dist/auth/index.js.map +1 -1
  32. package/dist/commands/account/plan.js +1 -1
  33. package/dist/commands/account/plan.js.map +1 -1
  34. package/dist/commands/account/usage/projections.d.ts +16 -0
  35. package/dist/commands/account/usage/projections.js +40 -0
  36. package/dist/commands/account/usage/projections.js.map +1 -0
  37. package/dist/commands/account/usage/series.d.ts +7 -3
  38. package/dist/commands/account/usage/series.js +30 -87
  39. package/dist/commands/account/usage/series.js.map +1 -1
  40. package/dist/commands/account/usage/summary.d.ts +4 -1
  41. package/dist/commands/account/usage/summary.js +19 -27
  42. package/dist/commands/account/usage/summary.js.map +1 -1
  43. package/dist/commands/account/usage/term.d.ts +15 -0
  44. package/dist/commands/account/usage/term.js +32 -0
  45. package/dist/commands/account/usage/term.js.map +1 -0
  46. package/dist/commands/account/usage/terms.d.ts +4 -0
  47. package/dist/commands/account/usage/terms.js +19 -27
  48. package/dist/commands/account/usage/terms.js.map +1 -1
  49. package/dist/commands/alert-channels/get.js +2 -1
  50. package/dist/commands/alert-channels/get.js.map +1 -1
  51. package/dist/commands/alert-channels/list.js +2 -1
  52. package/dist/commands/alert-channels/list.js.map +1 -1
  53. package/dist/commands/alert-channels/logs.js +2 -1
  54. package/dist/commands/alert-channels/logs.js.map +1 -1
  55. package/dist/commands/api.js +53 -10
  56. package/dist/commands/api.js.map +1 -1
  57. package/dist/commands/assets/download.js +11 -7
  58. package/dist/commands/assets/download.js.map +1 -1
  59. package/dist/commands/assets/list.js +2 -3
  60. package/dist/commands/assets/list.js.map +1 -1
  61. package/dist/commands/authCommand.d.ts +19 -0
  62. package/dist/commands/authCommand.js +118 -12
  63. package/dist/commands/authCommand.js.map +1 -1
  64. package/dist/commands/baseCommand.d.ts +12 -1
  65. package/dist/commands/baseCommand.js +24 -5
  66. package/dist/commands/baseCommand.js.map +1 -1
  67. package/dist/commands/checks/delete.js +1 -1
  68. package/dist/commands/checks/delete.js.map +1 -1
  69. package/dist/commands/checks/run.js +3 -1
  70. package/dist/commands/checks/run.js.map +1 -1
  71. package/dist/commands/debug/parse-project.d.ts +1 -0
  72. package/dist/commands/debug/parse-project.js +5 -2
  73. package/dist/commands/debug/parse-project.js.map +1 -1
  74. package/dist/commands/deploy.d.ts +8 -2
  75. package/dist/commands/deploy.js +735 -274
  76. package/dist/commands/deploy.js.map +1 -1
  77. package/dist/commands/destroy.js +3 -3
  78. package/dist/commands/destroy.js.map +1 -1
  79. package/dist/commands/env/add.js +2 -2
  80. package/dist/commands/env/add.js.map +1 -1
  81. package/dist/commands/env/ls.js +2 -1
  82. package/dist/commands/env/ls.js.map +1 -1
  83. package/dist/commands/env/pull.js +3 -3
  84. package/dist/commands/env/pull.js.map +1 -1
  85. package/dist/commands/env/update.js +2 -2
  86. package/dist/commands/env/update.js.map +1 -1
  87. package/dist/commands/import/apply.js +12 -10
  88. package/dist/commands/import/apply.js.map +1 -1
  89. package/dist/commands/import/cancel.js +4 -4
  90. package/dist/commands/import/cancel.js.map +1 -1
  91. package/dist/commands/import/commit.js +11 -9
  92. package/dist/commands/import/commit.js.map +1 -1
  93. package/dist/commands/import/plan.js +82 -62
  94. package/dist/commands/import/plan.js.map +1 -1
  95. package/dist/commands/init.d.ts +2 -0
  96. package/dist/commands/init.js +62 -41
  97. package/dist/commands/init.js.map +1 -1
  98. package/dist/commands/login.d.ts +38 -2
  99. package/dist/commands/login.js +848 -52
  100. package/dist/commands/login.js.map +1 -1
  101. package/dist/commands/logout.js +10 -4
  102. package/dist/commands/logout.js.map +1 -1
  103. package/dist/commands/pw-test.js +6 -3
  104. package/dist/commands/pw-test.js.map +1 -1
  105. package/dist/commands/rca/get.js +1 -1
  106. package/dist/commands/rca/get.js.map +1 -1
  107. package/dist/commands/rca/run.js +1 -1
  108. package/dist/commands/rca/run.js.map +1 -1
  109. package/dist/commands/skills/index.js +1 -1
  110. package/dist/commands/skills/index.js.map +1 -1
  111. package/dist/commands/skills/install.js +12 -12
  112. package/dist/commands/skills/install.js.map +1 -1
  113. package/dist/commands/switch.d.ts +10 -1
  114. package/dist/commands/switch.js +75 -13
  115. package/dist/commands/switch.js.map +1 -1
  116. package/dist/commands/sync-playwright.js +5 -10
  117. package/dist/commands/sync-playwright.js.map +1 -1
  118. package/dist/commands/test.d.ts +2 -0
  119. package/dist/commands/test.js +58 -29
  120. package/dist/commands/test.js.map +1 -1
  121. package/dist/commands/trigger.d.ts +1 -2
  122. package/dist/commands/trigger.js +27 -20
  123. package/dist/commands/trigger.js.map +1 -1
  124. package/dist/commands/validate.js +1 -0
  125. package/dist/commands/validate.js.map +1 -1
  126. package/dist/commands/whoami.d.ts +8 -0
  127. package/dist/commands/whoami.js +57 -6
  128. package/dist/commands/whoami.js.map +1 -1
  129. package/dist/constants.d.ts +3 -2
  130. package/dist/constants.js +8 -1
  131. package/dist/constants.js.map +1 -1
  132. package/dist/constructs/alert-channel-codegen.d.ts +6 -1
  133. package/dist/constructs/alert-channel-codegen.js +12 -6
  134. package/dist/constructs/alert-channel-codegen.js.map +1 -1
  135. package/dist/constructs/alert-channel-subscription.d.ts +1 -0
  136. package/dist/constructs/alert-channel-subscription.js +4 -0
  137. package/dist/constructs/alert-channel-subscription.js.map +1 -1
  138. package/dist/constructs/alert-channel.js +8 -5
  139. package/dist/constructs/alert-channel.js.map +1 -1
  140. package/dist/constructs/alert-escalation-policy-codegen.d.ts +7 -0
  141. package/dist/constructs/alert-escalation-policy-codegen.js +25 -8
  142. package/dist/constructs/alert-escalation-policy-codegen.js.map +1 -1
  143. package/dist/constructs/api-assertion.d.ts +0 -2
  144. package/dist/constructs/api-assertion.js +0 -4
  145. package/dist/constructs/api-assertion.js.map +1 -1
  146. package/dist/constructs/api-check-bundle.d.ts +4 -124
  147. package/dist/constructs/api-check-codegen.js +1 -1
  148. package/dist/constructs/api-check-codegen.js.map +1 -1
  149. package/dist/constructs/api-check.d.ts +8 -128
  150. package/dist/constructs/api-check.js +15 -17
  151. package/dist/constructs/api-check.js.map +1 -1
  152. package/dist/constructs/api-request-codegen.js +10 -8
  153. package/dist/constructs/api-request-codegen.js.map +1 -1
  154. package/dist/constructs/browser-check-bundle.d.ts +11 -125
  155. package/dist/constructs/browser-check-bundle.js +5 -1
  156. package/dist/constructs/browser-check-bundle.js.map +1 -1
  157. package/dist/constructs/browser-check.d.ts +5 -107
  158. package/dist/constructs/browser-check.js +1 -1
  159. package/dist/constructs/browser-check.js.map +1 -1
  160. package/dist/constructs/check-codegen.d.ts +46 -14
  161. package/dist/constructs/check-codegen.js +118 -34
  162. package/dist/constructs/check-codegen.js.map +1 -1
  163. package/dist/constructs/check-group-codegen.js +23 -9
  164. package/dist/constructs/check-group-codegen.js.map +1 -1
  165. package/dist/constructs/check-group-v1.d.ts +28 -16
  166. package/dist/constructs/check-group-v1.js +48 -17
  167. package/dist/constructs/check-group-v1.js.map +1 -1
  168. package/dist/constructs/check-group-v2.d.ts +2 -21
  169. package/dist/constructs/check-group-v2.js +4 -4
  170. package/dist/constructs/check-group-v2.js.map +1 -1
  171. package/dist/constructs/check.d.ts +68 -220
  172. package/dist/constructs/check.js +106 -37
  173. package/dist/constructs/check.js.map +1 -1
  174. package/dist/constructs/construct-codegen.d.ts +1 -2
  175. package/dist/constructs/construct-diagnostics.d.ts +3 -0
  176. package/dist/constructs/construct-diagnostics.js +11 -0
  177. package/dist/constructs/construct-diagnostics.js.map +1 -1
  178. package/dist/constructs/construct.d.ts +30 -4
  179. package/dist/constructs/construct.js +52 -6
  180. package/dist/constructs/construct.js.map +1 -1
  181. package/dist/constructs/dashboard.js +11 -7
  182. package/dist/constructs/dashboard.js.map +1 -1
  183. package/dist/constructs/dns-monitor.d.ts +4 -100
  184. package/dist/constructs/dns-request-codegen.js +1 -1
  185. package/dist/constructs/dns-request-codegen.js.map +1 -1
  186. package/dist/constructs/email-alert-channel-codegen.js +1 -1
  187. package/dist/constructs/email-alert-channel-codegen.js.map +1 -1
  188. package/dist/constructs/engine.d.ts +4 -2
  189. package/dist/constructs/engine.js +3 -1
  190. package/dist/constructs/engine.js.map +1 -1
  191. package/dist/constructs/frequency-codegen.js +10 -2
  192. package/dist/constructs/frequency-codegen.js.map +1 -1
  193. package/dist/constructs/frequency.d.ts +8 -3
  194. package/dist/constructs/frequency.js +7 -2
  195. package/dist/constructs/frequency.js.map +1 -1
  196. package/dist/constructs/grpc-monitor.d.ts +4 -100
  197. package/dist/constructs/grpc-monitor.js +19 -0
  198. package/dist/constructs/grpc-monitor.js.map +1 -1
  199. package/dist/constructs/grpc-request-codegen.js +13 -4
  200. package/dist/constructs/grpc-request-codegen.js.map +1 -1
  201. package/dist/constructs/grpc-request.d.ts +23 -0
  202. package/dist/constructs/heartbeat-monitor.d.ts +2 -1
  203. package/dist/constructs/heartbeat-monitor.js +2 -2
  204. package/dist/constructs/heartbeat-monitor.js.map +1 -1
  205. package/dist/constructs/icmp-monitor.d.ts +4 -100
  206. package/dist/constructs/icmp-request-codegen.js +1 -1
  207. package/dist/constructs/icmp-request-codegen.js.map +1 -1
  208. package/dist/constructs/incidentio-alert-channel-codegen.d.ts +1 -1
  209. package/dist/constructs/incidentio-alert-channel-codegen.js +14 -8
  210. package/dist/constructs/incidentio-alert-channel-codegen.js.map +1 -1
  211. package/dist/constructs/index.d.ts +1 -1
  212. package/dist/constructs/index.js +1 -1
  213. package/dist/constructs/index.js.map +1 -1
  214. package/dist/constructs/internal/assertion-validation.js +1 -2
  215. package/dist/constructs/internal/assertion-validation.js.map +1 -1
  216. package/dist/constructs/internal/codegen/context.d.ts +73 -6
  217. package/dist/constructs/internal/codegen/context.js +78 -6
  218. package/dist/constructs/internal/codegen/context.js.map +1 -1
  219. package/dist/constructs/internal/codegen/index.d.ts +3 -1
  220. package/dist/constructs/internal/codegen/index.js +2 -1
  221. package/dist/constructs/internal/codegen/index.js.map +1 -1
  222. package/dist/constructs/internal/codegen/render.d.ts +68 -0
  223. package/dist/constructs/internal/codegen/render.js +75 -0
  224. package/dist/constructs/internal/codegen/render.js.map +1 -0
  225. package/dist/constructs/internal/common-diagnostics.d.ts +1 -2
  226. package/dist/constructs/internal/common-diagnostics.js +7 -17
  227. package/dist/constructs/internal/common-diagnostics.js.map +1 -1
  228. package/dist/constructs/internal/declaring-file.d.ts +39 -0
  229. package/dist/constructs/internal/declaring-file.js +139 -0
  230. package/dist/constructs/internal/declaring-file.js.map +1 -0
  231. package/dist/constructs/internal/default-retry-strategy.d.ts +9 -0
  232. package/dist/constructs/internal/default-retry-strategy.js +13 -0
  233. package/dist/constructs/internal/default-retry-strategy.js.map +1 -0
  234. package/dist/constructs/internal/retry-strategy-defaults.d.ts +13 -0
  235. package/dist/constructs/internal/retry-strategy-defaults.js +14 -0
  236. package/dist/constructs/internal/retry-strategy-defaults.js.map +1 -0
  237. package/dist/constructs/key-value-pair-codegen.d.ts +6 -1
  238. package/dist/constructs/key-value-pair-codegen.js +24 -3
  239. package/dist/constructs/key-value-pair-codegen.js.map +1 -1
  240. package/dist/constructs/maintenance-window-codegen.d.ts +7 -0
  241. package/dist/constructs/maintenance-window-codegen.js +36 -19
  242. package/dist/constructs/maintenance-window-codegen.js.map +1 -1
  243. package/dist/constructs/maintenance-window.d.ts +37 -3
  244. package/dist/constructs/maintenance-window.js +34 -1
  245. package/dist/constructs/maintenance-window.js.map +1 -1
  246. package/dist/constructs/monitor.d.ts +6 -119
  247. package/dist/constructs/monitor.js +3 -5
  248. package/dist/constructs/monitor.js.map +1 -1
  249. package/dist/constructs/msteams-alert-channel-codegen.d.ts +1 -1
  250. package/dist/constructs/msteams-alert-channel-codegen.js +8 -18
  251. package/dist/constructs/msteams-alert-channel-codegen.js.map +1 -1
  252. package/dist/constructs/multi-step-check-bundle.d.ts +4 -109
  253. package/dist/constructs/multi-step-check.d.ts +4 -100
  254. package/dist/constructs/opsgenie-alert-channel-codegen.js +1 -1
  255. package/dist/constructs/opsgenie-alert-channel-codegen.js.map +1 -1
  256. package/dist/constructs/pagerduty-alert-channel-codegen.js +1 -1
  257. package/dist/constructs/pagerduty-alert-channel-codegen.js.map +1 -1
  258. package/dist/constructs/phone-call-alert-channel-codegen.js +1 -1
  259. package/dist/constructs/phone-call-alert-channel-codegen.js.map +1 -1
  260. package/dist/constructs/playwright-check-bundle.d.ts +10 -130
  261. package/dist/constructs/playwright-check-bundle.js +3 -3
  262. package/dist/constructs/playwright-check-bundle.js.map +1 -1
  263. package/dist/constructs/playwright-check-codegen.d.ts +85 -0
  264. package/dist/constructs/playwright-check-codegen.js +212 -0
  265. package/dist/constructs/playwright-check-codegen.js.map +1 -0
  266. package/dist/constructs/playwright-check.d.ts +14 -122
  267. package/dist/constructs/playwright-check.js +17 -51
  268. package/dist/constructs/playwright-check.js.map +1 -1
  269. package/dist/constructs/private-location-check-assignment.d.ts +1 -0
  270. package/dist/constructs/private-location-check-assignment.js +4 -0
  271. package/dist/constructs/private-location-check-assignment.js.map +1 -1
  272. package/dist/constructs/private-location-group-assignment.d.ts +1 -0
  273. package/dist/constructs/private-location-group-assignment.js +4 -0
  274. package/dist/constructs/private-location-group-assignment.js.map +1 -1
  275. package/dist/constructs/private-location.js +3 -1
  276. package/dist/constructs/private-location.js.map +1 -1
  277. package/dist/constructs/retry-strategy-codegen.d.ts +7 -1
  278. package/dist/constructs/retry-strategy-codegen.js +41 -32
  279. package/dist/constructs/retry-strategy-codegen.js.map +1 -1
  280. package/dist/constructs/retry-strategy.d.ts +0 -4
  281. package/dist/constructs/retry-strategy.js +5 -8
  282. package/dist/constructs/retry-strategy.js.map +1 -1
  283. package/dist/constructs/session.d.ts +38 -1
  284. package/dist/constructs/session.js +73 -3
  285. package/dist/constructs/session.js.map +1 -1
  286. package/dist/constructs/slack-alert-channel-codegen.js +1 -1
  287. package/dist/constructs/slack-alert-channel-codegen.js.map +1 -1
  288. package/dist/constructs/slack-app-alert-channel-codegen.js +1 -1
  289. package/dist/constructs/slack-app-alert-channel-codegen.js.map +1 -1
  290. package/dist/constructs/sms-alert-channel-codegen.js +1 -1
  291. package/dist/constructs/sms-alert-channel-codegen.js.map +1 -1
  292. package/dist/constructs/ssl-monitor.d.ts +4 -142
  293. package/dist/constructs/ssl-request-codegen.js +4 -3
  294. package/dist/constructs/ssl-request-codegen.js.map +1 -1
  295. package/dist/constructs/status-page-v3-automation-rule-codegen.js +5 -4
  296. package/dist/constructs/status-page-v3-automation-rule-codegen.js.map +1 -1
  297. package/dist/constructs/status-page-v3-codegen.js +3 -2
  298. package/dist/constructs/status-page-v3-codegen.js.map +1 -1
  299. package/dist/constructs/status-page-v3-component-codegen.js +8 -7
  300. package/dist/constructs/status-page-v3-component-codegen.js.map +1 -1
  301. package/dist/constructs/tcp-monitor-codegen.js +3 -2
  302. package/dist/constructs/tcp-monitor-codegen.js.map +1 -1
  303. package/dist/constructs/tcp-monitor.d.ts +8 -103
  304. package/dist/constructs/tcp-monitor.js +3 -2
  305. package/dist/constructs/tcp-monitor.js.map +1 -1
  306. package/dist/constructs/telegram-alert-channel-codegen.d.ts +1 -1
  307. package/dist/constructs/telegram-alert-channel-codegen.js +14 -8
  308. package/dist/constructs/telegram-alert-channel-codegen.js.map +1 -1
  309. package/dist/constructs/time-zone.d.ts +24 -0
  310. package/dist/constructs/time-zone.js +455 -0
  311. package/dist/constructs/time-zone.js.map +1 -0
  312. package/dist/constructs/traceroute-monitor.d.ts +4 -100
  313. package/dist/constructs/traceroute-request-codegen.js +2 -2
  314. package/dist/constructs/traceroute-request-codegen.js.map +1 -1
  315. package/dist/constructs/url-monitor-codegen.js +1 -1
  316. package/dist/constructs/url-monitor-codegen.js.map +1 -1
  317. package/dist/constructs/url-monitor.d.ts +7 -123
  318. package/dist/constructs/url-monitor.js +3 -0
  319. package/dist/constructs/url-monitor.js.map +1 -1
  320. package/dist/constructs/url-request-codegen.js +4 -3
  321. package/dist/constructs/url-request-codegen.js.map +1 -1
  322. package/dist/constructs/webhook-alert-channel-codegen.js +3 -3
  323. package/dist/constructs/webhook-alert-channel-codegen.js.map +1 -1
  324. package/dist/formatters/check-result-detail.js +0 -185
  325. package/dist/formatters/check-result-detail.js.map +1 -1
  326. package/dist/formatters/render.d.ts +2 -1
  327. package/dist/formatters/render.js +2 -2
  328. package/dist/formatters/render.js.map +1 -1
  329. package/dist/formatters/usage.d.ts +18 -12
  330. package/dist/formatters/usage.js +285 -245
  331. package/dist/formatters/usage.js.map +1 -1
  332. package/dist/help/help-extension.js +2 -1
  333. package/dist/help/help-extension.js.map +1 -1
  334. package/dist/helpers/accounts.d.ts +28 -0
  335. package/dist/helpers/accounts.js +50 -0
  336. package/dist/helpers/accounts.js.map +1 -0
  337. package/dist/helpers/activate-account.d.ts +13 -0
  338. package/dist/helpers/activate-account.js +24 -0
  339. package/dist/helpers/activate-account.js.map +1 -0
  340. package/dist/helpers/api-fields.js +3 -2
  341. package/dist/helpers/api-fields.js.map +1 -1
  342. package/dist/helpers/cli-mode.d.ts +24 -0
  343. package/dist/helpers/cli-mode.js +64 -8
  344. package/dist/helpers/cli-mode.js.map +1 -1
  345. package/dist/helpers/command-preview.d.ts +44 -0
  346. package/dist/helpers/command-preview.js +29 -9
  347. package/dist/helpers/command-preview.js.map +1 -1
  348. package/dist/helpers/command-style.d.ts +1 -0
  349. package/dist/helpers/command-style.js +51 -37
  350. package/dist/helpers/command-style.js.map +1 -1
  351. package/dist/helpers/flags.d.ts +10 -0
  352. package/dist/helpers/flags.js +18 -0
  353. package/dist/helpers/flags.js.map +1 -1
  354. package/dist/helpers/import-plan-selection.d.ts +1 -1
  355. package/dist/helpers/import-plan-selection.js +8 -20
  356. package/dist/helpers/import-plan-selection.js.map +1 -1
  357. package/dist/helpers/invalid-input-error.d.ts +15 -0
  358. package/dist/helpers/invalid-input-error.js +17 -0
  359. package/dist/helpers/invalid-input-error.js.map +1 -0
  360. package/dist/helpers/number.js +4 -3
  361. package/dist/helpers/number.js.map +1 -1
  362. package/dist/helpers/onboarding/boilerplate.js +15 -3
  363. package/dist/helpers/onboarding/boilerplate.js.map +1 -1
  364. package/dist/helpers/onboarding/index.d.ts +1 -1
  365. package/dist/helpers/onboarding/index.js +1 -1
  366. package/dist/helpers/onboarding/index.js.map +1 -1
  367. package/dist/helpers/onboarding/messages.d.ts +7 -0
  368. package/dist/helpers/onboarding/messages.js +14 -0
  369. package/dist/helpers/onboarding/messages.js.map +1 -1
  370. package/dist/helpers/onboarding/prompt-display.js +2 -2
  371. package/dist/helpers/onboarding/prompt-display.js.map +1 -1
  372. package/dist/helpers/onboarding/prompts-helpers.js +3 -1
  373. package/dist/helpers/onboarding/prompts-helpers.js.map +1 -1
  374. package/dist/helpers/onboarding/skill-install.js +4 -4
  375. package/dist/helpers/onboarding/skill-install.js.map +1 -1
  376. package/dist/helpers/prompts.d.ts +7 -0
  377. package/dist/helpers/prompts.js +10 -0
  378. package/dist/helpers/prompts.js.map +1 -0
  379. package/dist/helpers/result-assets.js +4 -3
  380. package/dist/helpers/result-assets.js.map +1 -1
  381. package/dist/helpers/test-helper.d.ts +14 -0
  382. package/dist/helpers/test-helper.js +33 -3
  383. package/dist/helpers/test-helper.js.map +1 -1
  384. package/dist/helpers/usage.d.ts +51 -14
  385. package/dist/helpers/usage.js +193 -53
  386. package/dist/helpers/usage.js.map +1 -1
  387. package/dist/helpers/wrap.js +1 -1
  388. package/dist/helpers/wrap.js.map +1 -1
  389. package/dist/messages/common-messages.d.ts +1 -0
  390. package/dist/messages/common-messages.js +4 -2
  391. package/dist/messages/common-messages.js.map +1 -1
  392. package/dist/reporters/abstract-list.d.ts +9 -2
  393. package/dist/reporters/abstract-list.js +105 -32
  394. package/dist/reporters/abstract-list.js.map +1 -1
  395. package/dist/reporters/ci.js +7 -4
  396. package/dist/reporters/ci.js.map +1 -1
  397. package/dist/reporters/dot.d.ts +1 -0
  398. package/dist/reporters/dot.js +19 -7
  399. package/dist/reporters/dot.js.map +1 -1
  400. package/dist/reporters/github.d.ts +2 -0
  401. package/dist/reporters/github.js +29 -4
  402. package/dist/reporters/github.js.map +1 -1
  403. package/dist/reporters/json.d.ts +2 -0
  404. package/dist/reporters/json.js +27 -4
  405. package/dist/reporters/json.js.map +1 -1
  406. package/dist/reporters/list.js +10 -8
  407. package/dist/reporters/list.js.map +1 -1
  408. package/dist/reporters/reporter.d.ts +1 -0
  409. package/dist/reporters/reporter.js.map +1 -1
  410. package/dist/reporters/util.d.ts +5 -2
  411. package/dist/reporters/util.js +25 -61
  412. package/dist/reporters/util.js.map +1 -1
  413. package/dist/rest/analytics.js +0 -4
  414. package/dist/rest/analytics.js.map +1 -1
  415. package/dist/rest/api.d.ts +10 -1
  416. package/dist/rest/api.js +44 -9
  417. package/dist/rest/api.js.map +1 -1
  418. package/dist/rest/check-results.d.ts +1 -50
  419. package/dist/rest/check-results.js.map +1 -1
  420. package/dist/rest/checkly-storage.d.ts +6 -1
  421. package/dist/rest/checkly-storage.js +13 -2
  422. package/dist/rest/checkly-storage.js.map +1 -1
  423. package/dist/rest/errors.d.ts +19 -0
  424. package/dist/rest/errors.js +20 -1
  425. package/dist/rest/errors.js.map +1 -1
  426. package/dist/rest/projects.d.ts +254 -4
  427. package/dist/rest/projects.js +208 -17
  428. package/dist/rest/projects.js.map +1 -1
  429. package/dist/rest/usage.d.ts +164 -73
  430. package/dist/rest/usage.js +21 -10
  431. package/dist/rest/usage.js.map +1 -1
  432. package/dist/services/abstract-check-runner.d.ts +34 -2
  433. package/dist/services/abstract-check-runner.js +183 -56
  434. package/dist/services/abstract-check-runner.js.map +1 -1
  435. package/dist/services/check-parser/bundler.d.ts +26 -0
  436. package/dist/services/check-parser/bundler.js +81 -7
  437. package/dist/services/check-parser/bundler.js.map +1 -1
  438. package/dist/services/check-parser/cache-hash.d.ts +1 -4
  439. package/dist/services/check-parser/cache-hash.js.map +1 -1
  440. package/dist/services/check-parser/package-files/json-text-source-file.d.ts +0 -2
  441. package/dist/services/check-parser/package-files/json-text-source-file.js +6 -6
  442. package/dist/services/check-parser/package-files/json-text-source-file.js.map +1 -1
  443. package/dist/services/check-parser/parser.d.ts +3 -2
  444. package/dist/services/check-parser/parser.js +31 -40
  445. package/dist/services/check-parser/parser.js.map +1 -1
  446. package/dist/services/checkly-config-codegen.js +4 -4
  447. package/dist/services/checkly-config-codegen.js.map +1 -1
  448. package/dist/services/checkly-config-loader.d.ts +18 -33
  449. package/dist/services/checkly-config-loader.js +50 -47
  450. package/dist/services/checkly-config-loader.js.map +1 -1
  451. package/dist/services/config.d.ts +42 -1
  452. package/dist/services/config.js +93 -9
  453. package/dist/services/config.js.map +1 -1
  454. package/dist/services/content-hash.d.ts +14 -0
  455. package/dist/services/content-hash.js +22 -0
  456. package/dist/services/content-hash.js.map +1 -0
  457. package/dist/services/deploy-diff/diff-lines.d.ts +52 -0
  458. package/dist/services/deploy-diff/diff-lines.js +327 -0
  459. package/dist/services/deploy-diff/diff-lines.js.map +1 -0
  460. package/dist/services/deploy-diff/double-check.d.ts +9 -0
  461. package/dist/services/deploy-diff/double-check.js +21 -0
  462. package/dist/services/deploy-diff/double-check.js.map +1 -0
  463. package/dist/services/deploy-diff/import-shape.d.ts +171 -0
  464. package/dist/services/deploy-diff/import-shape.js +633 -0
  465. package/dist/services/deploy-diff/import-shape.js.map +1 -0
  466. package/dist/services/deploy-diff/legacy-payload.d.ts +22 -0
  467. package/dist/services/deploy-diff/legacy-payload.js +51 -0
  468. package/dist/services/deploy-diff/legacy-payload.js.map +1 -0
  469. package/dist/services/deploy-diff/plan-summary.d.ts +81 -0
  470. package/dist/services/deploy-diff/plan-summary.js +262 -0
  471. package/dist/services/deploy-diff/plan-summary.js.map +1 -0
  472. package/dist/services/deploy-diff/preview-output.d.ts +63 -0
  473. package/dist/services/deploy-diff/preview-output.js +403 -0
  474. package/dist/services/deploy-diff/preview-output.js.map +1 -0
  475. package/dist/services/deploy-diff/render.d.ts +59 -0
  476. package/dist/services/deploy-diff/render.js +326 -0
  477. package/dist/services/deploy-diff/render.js.map +1 -0
  478. package/dist/services/deploy-diff/shape-changes.d.ts +2 -0
  479. package/dist/services/deploy-diff/shape-changes.js +48 -0
  480. package/dist/services/deploy-diff/shape-changes.js.map +1 -0
  481. package/dist/services/deploy-diff/source-index.d.ts +18 -0
  482. package/dist/services/deploy-diff/source-index.js +48 -0
  483. package/dist/services/deploy-diff/source-index.js.map +1 -0
  484. package/dist/services/deploy-diff/variable-names.d.ts +30 -0
  485. package/dist/services/deploy-diff/variable-names.js +64 -0
  486. package/dist/services/deploy-diff/variable-names.js.map +1 -0
  487. package/dist/services/engine-resolver.js +3 -0
  488. package/dist/services/engine-resolver.js.map +1 -1
  489. package/dist/services/engine-rules-loader.d.ts +6 -0
  490. package/dist/services/engine-rules-loader.js +12 -3
  491. package/dist/services/engine-rules-loader.js.map +1 -1
  492. package/dist/services/oxc-parser.d.ts +26 -0
  493. package/dist/services/oxc-parser.js +70 -0
  494. package/dist/services/oxc-parser.js.map +1 -0
  495. package/dist/services/project-cli.d.ts +75 -0
  496. package/dist/services/project-cli.js +302 -0
  497. package/dist/services/project-cli.js.map +1 -0
  498. package/dist/services/project-parser.d.ts +5 -0
  499. package/dist/services/project-parser.js +25 -13
  500. package/dist/services/project-parser.js.map +1 -1
  501. package/dist/services/skills.js +3 -3
  502. package/dist/services/skills.js.map +1 -1
  503. package/dist/services/snapshot-service.d.ts +25 -8
  504. package/dist/services/snapshot-service.js +46 -4
  505. package/dist/services/snapshot-service.js.map +1 -1
  506. package/dist/services/socket-client.js +1 -1
  507. package/dist/services/socket-client.js.map +1 -1
  508. package/dist/services/test-filters.d.ts +18 -0
  509. package/dist/services/test-filters.js +10 -0
  510. package/dist/services/test-filters.js.map +1 -1
  511. package/dist/services/test-runner.d.ts +1 -1
  512. package/dist/services/test-runner.js +10 -11
  513. package/dist/services/test-runner.js.map +1 -1
  514. package/dist/services/test-session-cancel.d.ts +5 -0
  515. package/dist/services/test-session-cancel.js +28 -3
  516. package/dist/services/test-session-cancel.js.map +1 -1
  517. package/dist/services/trigger-runner.d.ts +1 -1
  518. package/dist/services/trigger-runner.js +2 -2
  519. package/dist/services/trigger-runner.js.map +1 -1
  520. package/dist/services/two-installs.d.ts +39 -0
  521. package/dist/services/two-installs.js +155 -0
  522. package/dist/services/two-installs.js.map +1 -0
  523. package/dist/services/util.d.ts +17 -2
  524. package/dist/services/util.js +118 -11
  525. package/dist/services/util.js.map +1 -1
  526. package/dist/services/write-back/apply-edits.d.ts +29 -0
  527. package/dist/services/write-back/apply-edits.js +255 -0
  528. package/dist/services/write-back/apply-edits.js.map +1 -0
  529. package/dist/services/write-back/helper-edit.d.ts +135 -0
  530. package/dist/services/write-back/helper-edit.js +343 -0
  531. package/dist/services/write-back/helper-edit.js.map +1 -0
  532. package/dist/services/write-back/imports.d.ts +30 -0
  533. package/dist/services/write-back/imports.js +88 -0
  534. package/dist/services/write-back/imports.js.map +1 -0
  535. package/dist/services/write-back/literal-edit.d.ts +183 -0
  536. package/dist/services/write-back/literal-edit.js +359 -0
  537. package/dist/services/write-back/literal-edit.js.map +1 -0
  538. package/dist/services/write-back/output.d.ts +26 -0
  539. package/dist/services/write-back/output.js +110 -0
  540. package/dist/services/write-back/output.js.map +1 -0
  541. package/dist/services/write-back/plan.d.ts +180 -0
  542. package/dist/services/write-back/plan.js +1046 -0
  543. package/dist/services/write-back/plan.js.map +1 -0
  544. package/dist/services/write-back/source-file.d.ts +133 -0
  545. package/dist/services/write-back/source-file.js +460 -0
  546. package/dist/services/write-back/source-file.js.map +1 -0
  547. package/dist/sourcegen/index.d.ts +1 -1
  548. package/dist/sourcegen/index.js +1 -1
  549. package/dist/sourcegen/index.js.map +1 -1
  550. package/dist/sourcegen/program.d.ts +19 -1
  551. package/dist/sourcegen/program.js +32 -7
  552. package/dist/sourcegen/program.js.map +1 -1
  553. package/dist/testing/clear-git-env.d.ts +1 -0
  554. package/dist/testing/clear-git-env.js +25 -0
  555. package/dist/testing/clear-git-env.js.map +1 -0
  556. package/dist/testing/global-setup.d.ts +1 -0
  557. package/dist/testing/global-setup.js +3 -0
  558. package/dist/testing/global-setup.js.map +1 -1
  559. package/oclif.manifest.json +1113 -884
  560. package/package.json +21 -19
  561. package/dist/commands/rules.d.ts +0 -9
  562. package/dist/commands/rules.js +0 -13
  563. package/dist/commands/rules.js.map +0 -1
  564. package/dist/constructs/agentic-check-codegen.d.ts +0 -22
  565. package/dist/constructs/agentic-check-codegen.js +0 -59
  566. package/dist/constructs/agentic-check-codegen.js.map +0 -1
  567. package/dist/constructs/agentic-check.d.ts +0 -237
  568. package/dist/constructs/agentic-check.js +0 -100
  569. package/dist/constructs/agentic-check.js.map +0 -1
  570. package/dist/services/check-parser/package-files/json-text-source-file-parser.d.ts +0 -7
  571. package/dist/services/check-parser/package-files/json-text-source-file-parser.js +0 -47
  572. package/dist/services/check-parser/package-files/json-text-source-file-parser.js.map +0 -1
  573. package/dist/services/check-parser/package-files/source-file-parser.d.ts +0 -10
  574. package/dist/services/check-parser/package-files/source-file-parser.js +0 -13
  575. package/dist/services/check-parser/package-files/source-file-parser.js.map +0 -1
@@ -0,0 +1,403 @@
1
+ import chalk from 'chalk';
2
+ import { AlertChannel, AlertChannelSubscription, Check, CheckGroup, Dashboard, MaintenanceWindow, PrivateLocation, PrivateLocationCheckAssignment, PrivateLocationGroupAssignment, StatusPage, StatusPageService, StatusPageV3AutomationRule, StatusPageV3Component, } from '../../constructs/index.js';
3
+ import { padColumn, visWidth } from '../../formatters/render.js';
4
+ import { physicalIdsFromPlan } from './import-shape.js';
5
+ import { isPrunedRelation, onlyUnmanagedChanges, planHasNoChanges, writtenForBaseline } from './plan-summary.js';
6
+ import { changedByCauseAlone, renderResourceDiff } from './render.js';
7
+ import { SourceIndex } from './source-index.js';
8
+ import { constructVariableNames } from './variable-names.js';
9
+ /**
10
+ * The text `checkly deploy` prints for a plan: what `--preview` shows, what
11
+ * `--output` prints after a deploy, and what a deploy refused for a stale plan
12
+ * prints in its place. Shaped like a plan: an overview of every touched
13
+ * resource with a marker per action, the construct diff of each updated
14
+ * resource, and the totals. The markers carry the meaning; colour is for a
15
+ * terminal and chalk drops it for a pipe or under `NO_COLOR`.
16
+ */
17
+ // eslint-disable-next-line no-restricted-syntax
18
+ export var ResourceDeployStatus;
19
+ (function (ResourceDeployStatus) {
20
+ ResourceDeployStatus["UPDATE"] = "UPDATE";
21
+ ResourceDeployStatus["CREATE"] = "CREATE";
22
+ ResourceDeployStatus["DELETE"] = "DELETE";
23
+ // Reported for a resource removed from code that is kept in the account
24
+ // (managed from the Checkly web app from then on) instead of deleted.
25
+ ResourceDeployStatus["DETACH"] = "DETACH";
26
+ // What the same case was called before the deploy diff landed. Still
27
+ // accepted so a newer CLI keeps rendering an older API's answer.
28
+ ResourceDeployStatus["DETACHED"] = "DETACHED";
29
+ // A resource the deploy leaves alone because code and account agree.
30
+ ResourceDeployStatus["UNCHANGED"] = "UNCHANGED";
31
+ })(ResourceDeployStatus || (ResourceDeployStatus = {}));
32
+ /** How a resource type reads when there is no construct to name it by (a deleted resource, a relation). */
33
+ export const PRETTY_RESOURCE_TYPES = {
34
+ [Check.__checklyType]: 'Check',
35
+ [AlertChannel.__checklyType]: 'AlertChannel',
36
+ [CheckGroup.__checklyType]: 'CheckGroup',
37
+ [MaintenanceWindow.__checklyType]: 'MaintenanceWindow',
38
+ [PrivateLocation.__checklyType]: 'PrivateLocation',
39
+ [Dashboard.__checklyType]: 'Dashboard',
40
+ [StatusPage.__checklyType]: 'StatusPage',
41
+ [StatusPageService.__checklyType]: 'StatusPageService',
42
+ [StatusPageV3Component.__checklyType]: 'StatusPageV3Component',
43
+ [StatusPageV3AutomationRule.__checklyType]: 'StatusPageV3AutomationRule',
44
+ };
45
+ // Internal resources that users don't create directly. They are reported as
46
+ // part of their owning check, so we exclude them from delete previews/guards.
47
+ export const NON_REPORTED_TYPES = [
48
+ AlertChannelSubscription.__checklyType,
49
+ PrivateLocationCheckAssignment.__checklyType,
50
+ PrivateLocationGroupAssignment.__checklyType,
51
+ ];
52
+ const compareEntries = (a, b) => a.resourceType.localeCompare(b.resourceType) || a.logicalId.localeCompare(b.logicalId);
53
+ const GAP = chalk.dim('⋯');
54
+ export const MARKER = {
55
+ create: chalk.green('+'),
56
+ update: chalk.yellow('~'),
57
+ delete: chalk.red('-'),
58
+ detach: chalk.yellow('-'),
59
+ prune: chalk.red('-'),
60
+ warn: chalk.yellow('!'),
61
+ skip: chalk.dim('·'),
62
+ /** Written once to set the baseline; nothing differs that the comparison can show. */
63
+ baseline: chalk.dim('='),
64
+ };
65
+ export function formatPreview(input) {
66
+ const { heading, diff, done = false, project, verbose = false, pruneRelations = false, rendering, planToken } = input;
67
+ const updating = [];
68
+ const creating = [];
69
+ const deleting = [];
70
+ const detaching = [];
71
+ const pruning = [];
72
+ const unmanaged = [];
73
+ // Written only to set a baseline: compared with what is live, for want of
74
+ // an earlier planned deploy, and found the same. Listed with their own
75
+ // marker and count, so that the overview does not announce updates the
76
+ // reader then looks for a diff of in vain.
77
+ const baselining = [];
78
+ let unchanged = 0;
79
+ for (const change of diff) {
80
+ const { type, logicalId, physicalId, action, changes } = change;
81
+ if (NON_REPORTED_TYPES.some(t => t === type)) {
82
+ // A relation the project manages is reported as part of the check or
83
+ // group it belongs to, since users do not declare these directly. One
84
+ // the project does NOT manage is only ever reported when
85
+ // --prune-unmanaged-relations would delete it, and that is worth its
86
+ // own line.
87
+ if (isPrunedRelation(change)) {
88
+ // The relation's own id says nothing to the user; the check or group
89
+ // it hangs off is what tells them what the prune touches.
90
+ const owner = change.foldedInto;
91
+ pruning.push({
92
+ resourceType: type,
93
+ logicalId,
94
+ owner: owner ? `${PRETTY_RESOURCE_TYPES[owner.type] ?? owner.type} ${owner.logicalId}` : undefined,
95
+ });
96
+ }
97
+ continue;
98
+ }
99
+ // Relations the project does not manage are reported on their owning
100
+ // check or group whether or not they would be deleted. Without
101
+ // --prune-unmanaged-relations the deploy leaves them alone, which the `!`
102
+ // row says; with it, the relation's own entry is listed as pruned, and
103
+ // advising the flag the user just passed would be absurd.
104
+ if (onlyUnmanagedChanges(change) && !pruneRelations) {
105
+ unmanaged.push({ resourceType: type, logicalId });
106
+ }
107
+ // A type this CLI version does not know (a newer CLI deployed it) has no
108
+ // slot in the project. Such an entry has no construct, and a created or
109
+ // updated one is dropped from the overview below rather than crashing it.
110
+ const construct = project.data[type]?.[logicalId];
111
+ if (writtenForBaseline(change)) {
112
+ // Written whatever was found, so it has a row of its own beside any
113
+ // `!` row, as a baseline rather than as an update.
114
+ baselining.push({ resourceType: type, logicalId, physicalId, construct });
115
+ }
116
+ else if (onlyUnmanagedChanges(change)) {
117
+ // Never an update: what the deploy deletes, if anything, is the
118
+ // relation, not the check or group it hangs off.
119
+ continue;
120
+ }
121
+ else if (action === ResourceDeployStatus.UPDATE) {
122
+ updating.push({ resourceType: type, logicalId, physicalId, construct });
123
+ }
124
+ else if (action === ResourceDeployStatus.UNCHANGED) {
125
+ // A resource whose own properties agree with the account can still have
126
+ // changed alert channels or private locations, which are reported on it
127
+ // rather than as resources of their own; only an entry with nothing at
128
+ // all to report counts as unchanged.
129
+ if ((changes?.length ?? 0) > 0) {
130
+ updating.push({ resourceType: type, logicalId, physicalId, construct });
131
+ }
132
+ else {
133
+ unchanged++;
134
+ }
135
+ }
136
+ else if (action === ResourceDeployStatus.CREATE) {
137
+ creating.push({ resourceType: type, logicalId, physicalId, construct });
138
+ }
139
+ else if (action === ResourceDeployStatus.DELETE) {
140
+ // Since the resource is being deleted, the construct isn't in the project.
141
+ deleting.push({ resourceType: type, logicalId });
142
+ }
143
+ else if (action === ResourceDeployStatus.DETACH
144
+ || action === ResourceDeployStatus.DETACHED) {
145
+ // Removed from code but kept in the account, so the construct is not in
146
+ // the project any more.
147
+ detaching.push({ resourceType: type, logicalId });
148
+ }
149
+ }
150
+ // testOnly checks weren't sent to the BE and won't be in the plan.
151
+ // We load them from the `project` instead.
152
+ const skipping = project
153
+ .getTestOnlyConstructs().map(construct => ({
154
+ logicalId: construct.logicalId,
155
+ resourceType: construct.type,
156
+ construct,
157
+ }))
158
+ // A check that already exists in Checkly and just gained `testOnly: true`
159
+ // is both deleted and skipped; it is shown once, as deleted.
160
+ .filter(skip => !deleting.find(deletion => deletion.logicalId === skip.logicalId && deletion.resourceType === skip.resourceType));
161
+ // Resources without constructs are created dynamically on the fly (a
162
+ // non-member private location) and have nothing to show.
163
+ const sortedCreating = creating.filter(({ construct }) => Boolean(construct)).sort(compareEntries);
164
+ const sortedUpdating = updating.filter(({ construct }) => Boolean(construct)).sort(compareEntries);
165
+ const sortedBaselining = baselining.filter(({ construct }) => Boolean(construct)).sort(compareEntries);
166
+ const sortedDeleting = deleting.sort(compareEntries);
167
+ const sortedDetaching = detaching.sort(compareEntries);
168
+ const sortedPruning = pruning.sort(compareEntries);
169
+ const sortedUnmanaged = unmanaged.sort(compareEntries);
170
+ if (!sortedCreating.length && !sortedDeleting.length && !sortedDetaching.length
171
+ && !sortedUpdating.length && !sortedBaselining.length && !sortedPruning.length && !sortedUnmanaged.length
172
+ && !unchanged && !skipping.length) {
173
+ return '\nNo checks were detected. More information on how to set up a Checkly CLI project is available at https://checklyhq.com/docs/cli/.\n';
174
+ }
175
+ const sourceFileOf = ({ resourceType, logicalId }) => {
176
+ const local = rendering?.local.find(resource => resource.type === resourceType && resource.logicalId === logicalId);
177
+ const planned = diff.find(entry => entry.type === resourceType && entry.logicalId === logicalId);
178
+ return local?.sourceFile ?? planned?.sourceFile ?? undefined;
179
+ };
180
+ const subLines = ({ physicalId, construct }) => {
181
+ if (!verbose) {
182
+ return [];
183
+ }
184
+ const lines = [];
185
+ if (construct?.name) {
186
+ lines.push(chalk.dim(`name: ${construct.name}`));
187
+ }
188
+ if (physicalId) {
189
+ lines.push(chalk.dim(`id: ${physicalId}`));
190
+ }
191
+ return lines;
192
+ };
193
+ const withConstruct = (marker, listed) => ({
194
+ marker,
195
+ type: listed.construct.constructor.name,
196
+ logicalId: listed.logicalId,
197
+ detail: chalk.dim(sourceFileOf(listed) ?? ''),
198
+ sub: subLines(listed),
199
+ });
200
+ const withNote = (marker, listed, note) => ({
201
+ marker,
202
+ type: PRETTY_RESOURCE_TYPES[listed.resourceType] ?? listed.resourceType,
203
+ logicalId: listed.logicalId,
204
+ detail: note,
205
+ sub: [],
206
+ });
207
+ const rows = [
208
+ ...sortedCreating.map(listed => withConstruct(MARKER.create, listed)),
209
+ ...sortedUpdating.map(listed => withConstruct(MARKER.update, listed)),
210
+ ...sortedDeleting.map(listed => withNote(MARKER.delete, listed, chalk.red('permanently deleted, run history lost'))),
211
+ ...sortedDetaching.map(listed => withNote(MARKER.detach, listed, chalk.yellow('kept in your Checkly account, now managed from the Checkly web app'))),
212
+ ...sortedPruning.map(listed => withNote(MARKER.prune, listed, chalk.red(`relation${listed.owner ? ` on ${listed.owner}` : ''} not managed by this project, `
213
+ + 'deleted by --prune-unmanaged-relations'))),
214
+ // After what the deploy changes, so that the eye lands on that first.
215
+ ...sortedBaselining.map(listed => withConstruct(MARKER.baseline, listed)),
216
+ ...sortedUnmanaged.map(listed => withNote(MARKER.warn, listed, chalk.yellow('has alert channels or private locations this project does not manage (pass --prune-unmanaged-relations to delete them)'))),
217
+ ...skipping.sort(compareEntries).map(listed => ({
218
+ ...withConstruct(MARKER.skip, listed),
219
+ detail: chalk.dim('skipped (testOnly)'),
220
+ })),
221
+ ];
222
+ // A plan that gives the deploy nothing to write is said in one sentence
223
+ // rather than as an overview of nothing. The rows that inform without
224
+ // announcing a write (relations the project does not manage, testOnly
225
+ // checks) are still listed above it. Decided by the rule that decides
226
+ // whether the deploy asks for confirmation, so the two cannot disagree.
227
+ const nothingToApply = !done
228
+ && planHasNoChanges(diff, { prettyTypes: PRETTY_RESOURCE_TYPES, foldedTypes: NON_REPORTED_TYPES });
229
+ const output = [];
230
+ if (heading !== undefined && (!nothingToApply || rows.length > 0)) {
231
+ const { title, projectName, accountName } = heading;
232
+ const account = accountName !== undefined ? ` ${chalk.dim('→')} account ${chalk.bold(accountName)}` : '';
233
+ output.push(`${chalk.bold(title)} ${chalk.dim('·')} ${projectName}${account}`);
234
+ output.push('');
235
+ }
236
+ const typeWidth = Math.max(0, ...rows.map(row => visWidth(row.type)));
237
+ const idWidth = Math.max(0, ...rows.map(row => visWidth(row.logicalId)));
238
+ for (const row of rows) {
239
+ const type = padColumn(row.type, typeWidth);
240
+ const logicalId = padColumn(chalk.bold(row.logicalId), idWidth);
241
+ output.push(` ${row.marker} ${type} ${logicalId} ${row.detail}`.trimEnd());
242
+ for (const line of row.sub) {
243
+ output.push(` ${line}`);
244
+ }
245
+ }
246
+ if (nothingToApply) {
247
+ if (rows.length > 0) {
248
+ output.push('');
249
+ }
250
+ // A resource with relations the project does not manage matches the code
251
+ // in everything the project does manage.
252
+ const matching = unchanged + sortedUnmanaged.length;
253
+ const where = heading?.accountName !== undefined ? ` in account "${heading.accountName}"` : '';
254
+ const matches = matching === 1
255
+ ? ` The 1 resource${where} matches your code.`
256
+ : matching > 1 ? ` All ${matching} resources${where} match your code.` : '';
257
+ output.push(`${chalk.bold('No changes.')}${matches}`);
258
+ // No totals and no plan token: there is no plan to pin.
259
+ output.push('');
260
+ return output.join('\n');
261
+ }
262
+ if (unchanged) {
263
+ output.push(` ${chalk.dim(`${unchanged} unchanged`)}`);
264
+ }
265
+ output.push('');
266
+ if (sortedBaselining.length > 0) {
267
+ output.push(`${MARKER.baseline} ${chalk.dim(baselineNote(sortedBaselining.length, done))}`, '');
268
+ }
269
+ if (rendering !== undefined) {
270
+ const ids = physicalIdsFromPlan(rendering.plan, rendering.local);
271
+ // Reading them parses source files, so only once a diff is to be rendered.
272
+ const sources = new SourceIndex();
273
+ const variableNames = sortedUpdating.length > 0 ? constructVariableNames(project, undefined, sources) : undefined;
274
+ for (const listed of sortedUpdating) {
275
+ const { resourceType, logicalId } = listed;
276
+ // The entry to render is the plan's, whether this listing is the plan
277
+ // itself or the deploy that carried it out.
278
+ const planned = rendering.plan.find(entry => entry.type === resourceType && entry.logicalId === logicalId);
279
+ // The API attaches the deployed state only where the renderer needs it
280
+ // for a diff; an entry that changed by cause alone (a code bundle, a
281
+ // Playwright version, snapshots) comes without it and is rendered as
282
+ // its one-line notice. Any other entry without it (a plan asked for
283
+ // without the state, a type the API could not read) would render as a
284
+ // bare listing, so it keeps its overview row alone.
285
+ if (planned === undefined || (planned.before === undefined && !changedByCauseAlone(planned))) {
286
+ continue;
287
+ }
288
+ const lines = renderResourceDiff({
289
+ entry: planned,
290
+ local: rendering.local.find(resource => resource.type === resourceType && resource.logicalId === logicalId),
291
+ localResources: rendering.local,
292
+ diff: rendering.plan,
293
+ project,
294
+ ids,
295
+ pruneRelations,
296
+ variableNames,
297
+ spelledOut: sources.spelledOut(listed.construct),
298
+ });
299
+ if (lines.length === 0) {
300
+ continue;
301
+ }
302
+ const file = sourceFileOf(listed);
303
+ output.push(`${MARKER.update} ${chalk.bold(listed.construct.constructor.name)} ${chalk.bold(logicalId)}`
304
+ + (file !== undefined ? ` ${chalk.dim(file)}` : ''),
305
+ // The legend explains `-` and `+` lines, so it is printed where
306
+ // there are some: a resource reported by notes alone has no sides.
307
+ ...(lines.some(hasSide) ? diffLegend(done) : []));
308
+ // A hunk boundary is shown as the gap between two hunks of the same
309
+ // diff, so the first hunk of the construct diff, and the first of a
310
+ // nested text diff (which follows the note naming its property), get
311
+ // none.
312
+ let previous;
313
+ for (const line of lines) {
314
+ const hunk = line.kind === 'hunk' || (line.kind === 'nested' && line.line.kind === 'hunk');
315
+ const sameDiff = previous !== undefined
316
+ && (line.kind === 'nested' ? previous.kind === 'nested' : previous.kind !== 'note' && previous.kind !== 'reason');
317
+ previous = line;
318
+ if (hunk && !sameDiff) {
319
+ continue;
320
+ }
321
+ output.push(` ${styled(line)}`.trimEnd());
322
+ }
323
+ output.push('');
324
+ }
325
+ }
326
+ const counted = (count, text, colour) => count > 0 ? [colour(`${count} ${text}`)] : [];
327
+ output.push([
328
+ ...counted(sortedCreating.length, done ? 'created' : 'to create', chalk.green),
329
+ ...counted(sortedUpdating.length, done ? 'updated' : 'to update', chalk.yellow),
330
+ ...counted(sortedDeleting.length, done ? 'deleted' : 'to delete', chalk.red),
331
+ ...counted(sortedBaselining.length, done ? 'set a baseline' : 'to set a baseline', chalk.dim),
332
+ ...counted(sortedDetaching.length, 'kept in your account', chalk.yellow),
333
+ ...counted(sortedPruning.length, sortedPruning.length === 1 ? 'relation pruned' : 'relations pruned', chalk.red),
334
+ ...counted(skipping.length, 'skipped (testOnly)', chalk.dim),
335
+ ...counted(sortedUnmanaged.length, 'with relations this project does not manage', chalk.yellow),
336
+ chalk.dim(`${unchanged} unchanged`),
337
+ ].join(', '));
338
+ if (planToken !== undefined) {
339
+ output.push(`${chalk.dim('Deploy exactly this plan:')} checkly deploy --plan-token ${planToken}`);
340
+ }
341
+ // A blank line closes the plan, whatever follows it.
342
+ output.push('');
343
+ return output.join('\n');
344
+ }
345
+ /**
346
+ * What the `=` rows are. Checkly compares a resource with the state its last
347
+ * planned deploy left; one without such a state (the project's first plan,
348
+ * the first after a deploy with `--no-plan`, a resource added with `checkly
349
+ * import`) is compared with what is live instead and written whatever that
350
+ * finds, so that the next plan has a baseline. The note names no cause: the
351
+ * plan does not say which of these it was, and a sentence about "the first
352
+ * plan" would be wrong for the others.
353
+ */
354
+ function baselineNote(count, done) {
355
+ const one = count === 1;
356
+ const resources = one ? '1 resource' : `${count} resources`;
357
+ const showed = done ? 'showed' : one ? 'shows' : 'show';
358
+ const live = done ? 'was' : 'is';
359
+ const written = done ? (one ? 'was' : 'were') : (one ? 'is' : 'are');
360
+ return `${resources} ${showed} no difference from what ${live} live and ${written} written once to set `
361
+ + 'the baseline later deploys compare with.';
362
+ }
363
+ /**
364
+ * What the two sides of a construct diff are, printed under the resource's
365
+ * header: a `-` line is the account's value, which the deploy replaces or,
366
+ * when no `+` line follows, removes; a `+` line is the code's value, which
367
+ * the deploy adds or, when a `-` line precedes it, changes to. Once the
368
+ * deploy is done the code's value is the live one, and the legend says so.
369
+ */
370
+ function diffLegend(done) {
371
+ const sides = done
372
+ ? [[MARKER.delete, 'was live in Checkly', 'replaced or removed by the deploy'],
373
+ [MARKER.create, 'now live in Checkly', 'added or changed by the deploy']]
374
+ : [[MARKER.delete, 'live in Checkly', 'replaced or removed by this deploy'],
375
+ [MARKER.create, 'in your code', 'added or changed by this deploy']];
376
+ const width = Math.max(...sides.map(([, label]) => label.length));
377
+ return sides.map(([marker, label, meaning]) => ` ${marker} ${chalk.dim(`${label.padEnd(width)} ${meaning}`)}`);
378
+ }
379
+ /** Whether a rendered line is one side of a diff: a `-` or a `+` line, of the construct or of a nested text. */
380
+ function hasSide(line) {
381
+ const kind = line.kind === 'nested' ? line.line.kind : line.kind;
382
+ return kind === 'add' || kind === 'remove';
383
+ }
384
+ /** One rendered line with its marker and colour; a nested line sits two columns further in. */
385
+ export function styled(line) {
386
+ switch (line.kind) {
387
+ case 'add':
388
+ return chalk.green(`+ ${line.text}`);
389
+ case 'remove':
390
+ return chalk.red(`- ${line.text}`);
391
+ case 'context':
392
+ return ` ${chalk.grey(line.text)}`;
393
+ case 'hunk':
394
+ return ` ${GAP}`;
395
+ case 'note':
396
+ return chalk.yellow(`~ ${line.text}`);
397
+ case 'reason':
398
+ return ` ${chalk.dim(line.text)}`;
399
+ case 'nested':
400
+ return ` ${styled(line.line)}`;
401
+ }
402
+ }
403
+ //# sourceMappingURL=preview-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-output.js","sourceRoot":"","sources":["../../../src/services/deploy-diff/preview-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { Project } from '../../constructs/project.js';
2
+ import type { DiffEntry, ResourceSync } from '../../rest/projects.js';
3
+ import { type PhysicalIds } from './import-shape.js';
4
+ import { type DiffLine } from './diff-lines.js';
5
+ import type { VariableNames } from './variable-names.js';
6
+ /**
7
+ * The lines printed under one updated resource of a deploy preview: the
8
+ * construct as Checkly has it against the construct as the local code would
9
+ * make it, rendered by the import codegen on both sides and diffed as text
10
+ * (spec 8.5). Everything here is reporting: a failure falls back to a coarser
11
+ * listing of the reported changes, and never to a failed deploy.
12
+ */
13
+ /**
14
+ * One line printed under an updated resource. A `DiffLine` is a line of the
15
+ * construct diff; a `note` is a fact stated in words (a change the diff
16
+ * cannot show, a secret's movement, a listed property); a `reason` says why
17
+ * the listing stands in for the diff; a `nested` line belongs to the text
18
+ * diff of a property kept in a file of its own, printed under its `note`.
19
+ */
20
+ export type RenderedLine = DiffLine | {
21
+ kind: 'note';
22
+ text: string;
23
+ } | {
24
+ kind: 'reason';
25
+ text: string;
26
+ } | {
27
+ kind: 'nested';
28
+ line: DiffLine;
29
+ };
30
+ export interface RenderResourceInput {
31
+ /** The resource's preview entry, carrying `before`, `changes` and `redactions` under `detail: 'full'`. */
32
+ entry: DiffEntry;
33
+ /** The resource's own local payload, as sent in the deploy. */
34
+ local: ResourceSync | undefined;
35
+ /** Every resource of the local deploy payload (for the relations of a check or group). */
36
+ localResources: readonly ResourceSync[];
37
+ /** The whole preview (for the relation entries folded into this resource). */
38
+ diff: readonly DiffEntry[];
39
+ project: Project;
40
+ ids: PhysicalIds;
41
+ pruneRelations: boolean;
42
+ /** The variable each construct has in the user's code; one without an entry gets a generated name. */
43
+ variableNames?: VariableNames;
44
+ /**
45
+ * The properties the resource's declaration spells out (`ContextOptions.spelledOut`):
46
+ * rendered on both sides whatever their values, so that a value moved to or
47
+ * from a default reads as a change of that line and not as its removal.
48
+ */
49
+ spelledOut?: ReadonlySet<string>;
50
+ /** The most lines a diff may take before the listing is printed instead. */
51
+ maxLines?: number;
52
+ }
53
+ /**
54
+ * Whether every change the entry reports is named by a cause and none is a
55
+ * secret: such an entry is rendered as one `changed: <causes>` notice, with
56
+ * no diff, so it needs no deployed state, and the API sends it none.
57
+ */
58
+ export declare function changedByCauseAlone(entry: DiffEntry): boolean;
59
+ export declare function renderResourceDiff(input: RenderResourceInput): RenderedLine[];