checkly 9.5.0 → 10.0.0-rc.1

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 (372) hide show
  1. package/dist/ai-context/context.js +1 -0
  2. package/dist/ai-context/context.js.map +1 -1
  3. package/dist/ai-context/onboarding-boilerplate/checkly-config-template.ts +2 -0
  4. package/dist/ai-context/public-skills/checkly/SKILL.md +18 -5
  5. package/dist/ai-context/skills-command/references/communicate.md +6 -3
  6. package/dist/ai-context/skills-command/references/configure-api-checks.md +1 -9
  7. package/dist/ai-context/skills-command/references/configure-browser-checks.md +1 -8
  8. package/dist/ai-context/skills-command/references/configure-check-groups.md +1 -0
  9. package/dist/ai-context/skills-command/references/configure-dns-monitors.md +1 -9
  10. package/dist/ai-context/skills-command/references/configure-grpc-monitors.md +24 -0
  11. package/dist/ai-context/skills-command/references/configure-heartbeat-monitors.md +1 -9
  12. package/dist/ai-context/skills-command/references/configure-icmp-monitors.md +1 -9
  13. package/dist/ai-context/skills-command/references/configure-multistep-checks.md +1 -9
  14. package/dist/ai-context/skills-command/references/configure-playwright-checks.md +1 -1
  15. package/dist/ai-context/skills-command/references/configure-supporting-constructs.md +6 -2
  16. package/dist/ai-context/skills-command/references/configure-tcp-monitors.md +1 -10
  17. package/dist/ai-context/skills-command/references/configure-url-monitors.md +1 -10
  18. package/dist/ai-context/skills-command/references/configure.md +16 -5
  19. package/dist/ai-context/skills-command/references/initialize.md +11 -3
  20. package/dist/ai-context/skills-command/references/investigate-checks.md +1 -1
  21. package/dist/auth/api-key.d.ts +24 -0
  22. package/dist/auth/api-key.js +104 -0
  23. package/dist/auth/api-key.js.map +1 -0
  24. package/dist/auth/device-flow.d.ts +57 -0
  25. package/dist/auth/device-flow.js +221 -0
  26. package/dist/auth/device-flow.js.map +1 -0
  27. package/dist/auth/index.d.ts +6 -6
  28. package/dist/auth/index.js +64 -64
  29. package/dist/auth/index.js.map +1 -1
  30. package/dist/commands/api.js +43 -10
  31. package/dist/commands/api.js.map +1 -1
  32. package/dist/commands/authCommand.d.ts +2 -0
  33. package/dist/commands/authCommand.js +77 -7
  34. package/dist/commands/authCommand.js.map +1 -1
  35. package/dist/commands/debug/parse-project.d.ts +1 -0
  36. package/dist/commands/debug/parse-project.js +5 -2
  37. package/dist/commands/debug/parse-project.js.map +1 -1
  38. package/dist/commands/deploy.d.ts +7 -1
  39. package/dist/commands/deploy.js +627 -271
  40. package/dist/commands/deploy.js.map +1 -1
  41. package/dist/commands/import/plan.js +18 -4
  42. package/dist/commands/import/plan.js.map +1 -1
  43. package/dist/commands/init.js +29 -13
  44. package/dist/commands/init.js.map +1 -1
  45. package/dist/commands/login.d.ts +18 -2
  46. package/dist/commands/login.js +681 -48
  47. package/dist/commands/login.js.map +1 -1
  48. package/dist/commands/logout.js +7 -1
  49. package/dist/commands/logout.js.map +1 -1
  50. package/dist/commands/pw-test.js +3 -2
  51. package/dist/commands/pw-test.js.map +1 -1
  52. package/dist/commands/switch.js +23 -10
  53. package/dist/commands/switch.js.map +1 -1
  54. package/dist/commands/test.js +16 -17
  55. package/dist/commands/test.js.map +1 -1
  56. package/dist/commands/trigger.js +4 -3
  57. package/dist/commands/trigger.js.map +1 -1
  58. package/dist/commands/validate.js +1 -0
  59. package/dist/commands/validate.js.map +1 -1
  60. package/dist/constants.d.ts +1 -2
  61. package/dist/constants.js +0 -1
  62. package/dist/constants.js.map +1 -1
  63. package/dist/constructs/alert-channel-codegen.d.ts +6 -1
  64. package/dist/constructs/alert-channel-codegen.js +12 -6
  65. package/dist/constructs/alert-channel-codegen.js.map +1 -1
  66. package/dist/constructs/alert-escalation-policy-codegen.d.ts +7 -0
  67. package/dist/constructs/alert-escalation-policy-codegen.js +25 -8
  68. package/dist/constructs/alert-escalation-policy-codegen.js.map +1 -1
  69. package/dist/constructs/api-assertion.d.ts +0 -2
  70. package/dist/constructs/api-assertion.js +0 -4
  71. package/dist/constructs/api-assertion.js.map +1 -1
  72. package/dist/constructs/api-check-codegen.js +1 -1
  73. package/dist/constructs/api-check-codegen.js.map +1 -1
  74. package/dist/constructs/api-check.d.ts +4 -22
  75. package/dist/constructs/api-check.js +15 -17
  76. package/dist/constructs/api-check.js.map +1 -1
  77. package/dist/constructs/api-request-codegen.js +10 -8
  78. package/dist/constructs/api-request-codegen.js.map +1 -1
  79. package/dist/constructs/browser-check-bundle.d.ts +19 -13
  80. package/dist/constructs/browser-check-bundle.js +5 -1
  81. package/dist/constructs/browser-check-bundle.js.map +1 -1
  82. package/dist/constructs/browser-check.d.ts +1 -4
  83. package/dist/constructs/browser-check.js +1 -1
  84. package/dist/constructs/browser-check.js.map +1 -1
  85. package/dist/constructs/check-codegen.d.ts +39 -14
  86. package/dist/constructs/check-codegen.js +101 -23
  87. package/dist/constructs/check-codegen.js.map +1 -1
  88. package/dist/constructs/check-group-codegen.js +23 -9
  89. package/dist/constructs/check-group-codegen.js.map +1 -1
  90. package/dist/constructs/check-group-v1.d.ts +19 -14
  91. package/dist/constructs/check-group-v1.js +39 -14
  92. package/dist/constructs/check-group-v1.js.map +1 -1
  93. package/dist/constructs/check-group-v2.d.ts +0 -20
  94. package/dist/constructs/check-group-v2.js +0 -4
  95. package/dist/constructs/check-group-v2.js.map +1 -1
  96. package/dist/constructs/check.d.ts +45 -32
  97. package/dist/constructs/check.js +78 -17
  98. package/dist/constructs/check.js.map +1 -1
  99. package/dist/constructs/construct-codegen.d.ts +1 -2
  100. package/dist/constructs/construct-diagnostics.d.ts +3 -0
  101. package/dist/constructs/construct-diagnostics.js +11 -0
  102. package/dist/constructs/construct-diagnostics.js.map +1 -1
  103. package/dist/constructs/construct.d.ts +25 -4
  104. package/dist/constructs/construct.js +41 -5
  105. package/dist/constructs/construct.js.map +1 -1
  106. package/dist/constructs/dns-request-codegen.js +1 -1
  107. package/dist/constructs/dns-request-codegen.js.map +1 -1
  108. package/dist/constructs/email-alert-channel-codegen.js +1 -1
  109. package/dist/constructs/email-alert-channel-codegen.js.map +1 -1
  110. package/dist/constructs/frequency-codegen.js +10 -2
  111. package/dist/constructs/frequency-codegen.js.map +1 -1
  112. package/dist/constructs/frequency.d.ts +8 -3
  113. package/dist/constructs/frequency.js +7 -2
  114. package/dist/constructs/frequency.js.map +1 -1
  115. package/dist/constructs/grpc-monitor.js +19 -0
  116. package/dist/constructs/grpc-monitor.js.map +1 -1
  117. package/dist/constructs/grpc-request-codegen.js +13 -4
  118. package/dist/constructs/grpc-request-codegen.js.map +1 -1
  119. package/dist/constructs/grpc-request.d.ts +23 -0
  120. package/dist/constructs/heartbeat-monitor.d.ts +2 -1
  121. package/dist/constructs/heartbeat-monitor.js +2 -2
  122. package/dist/constructs/heartbeat-monitor.js.map +1 -1
  123. package/dist/constructs/icmp-request-codegen.js +1 -1
  124. package/dist/constructs/icmp-request-codegen.js.map +1 -1
  125. package/dist/constructs/incidentio-alert-channel-codegen.d.ts +1 -1
  126. package/dist/constructs/incidentio-alert-channel-codegen.js +14 -8
  127. package/dist/constructs/incidentio-alert-channel-codegen.js.map +1 -1
  128. package/dist/constructs/index.d.ts +1 -1
  129. package/dist/constructs/index.js +1 -1
  130. package/dist/constructs/index.js.map +1 -1
  131. package/dist/constructs/internal/assertion-validation.js +1 -2
  132. package/dist/constructs/internal/assertion-validation.js.map +1 -1
  133. package/dist/constructs/internal/codegen/context.d.ts +73 -6
  134. package/dist/constructs/internal/codegen/context.js +78 -6
  135. package/dist/constructs/internal/codegen/context.js.map +1 -1
  136. package/dist/constructs/internal/codegen/index.d.ts +3 -1
  137. package/dist/constructs/internal/codegen/index.js +2 -1
  138. package/dist/constructs/internal/codegen/index.js.map +1 -1
  139. package/dist/constructs/internal/codegen/render.d.ts +68 -0
  140. package/dist/constructs/internal/codegen/render.js +75 -0
  141. package/dist/constructs/internal/codegen/render.js.map +1 -0
  142. package/dist/constructs/internal/common-diagnostics.d.ts +1 -2
  143. package/dist/constructs/internal/common-diagnostics.js +6 -14
  144. package/dist/constructs/internal/common-diagnostics.js.map +1 -1
  145. package/dist/constructs/internal/declaring-file.d.ts +39 -0
  146. package/dist/constructs/internal/declaring-file.js +139 -0
  147. package/dist/constructs/internal/declaring-file.js.map +1 -0
  148. package/dist/constructs/internal/retry-strategy-defaults.d.ts +13 -0
  149. package/dist/constructs/internal/retry-strategy-defaults.js +14 -0
  150. package/dist/constructs/internal/retry-strategy-defaults.js.map +1 -0
  151. package/dist/constructs/key-value-pair-codegen.d.ts +6 -1
  152. package/dist/constructs/key-value-pair-codegen.js +24 -3
  153. package/dist/constructs/key-value-pair-codegen.js.map +1 -1
  154. package/dist/constructs/maintenance-window-codegen.d.ts +7 -0
  155. package/dist/constructs/maintenance-window-codegen.js +36 -19
  156. package/dist/constructs/maintenance-window-codegen.js.map +1 -1
  157. package/dist/constructs/maintenance-window.d.ts +35 -3
  158. package/dist/constructs/maintenance-window.js +35 -1
  159. package/dist/constructs/maintenance-window.js.map +1 -1
  160. package/dist/constructs/monitor.d.ts +1 -1
  161. package/dist/constructs/msteams-alert-channel-codegen.d.ts +1 -1
  162. package/dist/constructs/msteams-alert-channel-codegen.js +8 -18
  163. package/dist/constructs/msteams-alert-channel-codegen.js.map +1 -1
  164. package/dist/constructs/opsgenie-alert-channel-codegen.js +1 -1
  165. package/dist/constructs/opsgenie-alert-channel-codegen.js.map +1 -1
  166. package/dist/constructs/pagerduty-alert-channel-codegen.js +1 -1
  167. package/dist/constructs/pagerduty-alert-channel-codegen.js.map +1 -1
  168. package/dist/constructs/phone-call-alert-channel-codegen.js +1 -1
  169. package/dist/constructs/phone-call-alert-channel-codegen.js.map +1 -1
  170. package/dist/constructs/playwright-check-bundle.d.ts +7 -1
  171. package/dist/constructs/playwright-check-bundle.js +3 -0
  172. package/dist/constructs/playwright-check-bundle.js.map +1 -1
  173. package/dist/constructs/playwright-check-codegen.d.ts +85 -0
  174. package/dist/constructs/playwright-check-codegen.js +212 -0
  175. package/dist/constructs/playwright-check-codegen.js.map +1 -0
  176. package/dist/constructs/playwright-check.d.ts +14 -24
  177. package/dist/constructs/playwright-check.js +16 -52
  178. package/dist/constructs/playwright-check.js.map +1 -1
  179. package/dist/constructs/retry-strategy-codegen.d.ts +7 -1
  180. package/dist/constructs/retry-strategy-codegen.js +41 -32
  181. package/dist/constructs/retry-strategy-codegen.js.map +1 -1
  182. package/dist/constructs/retry-strategy.d.ts +0 -4
  183. package/dist/constructs/retry-strategy.js +5 -8
  184. package/dist/constructs/retry-strategy.js.map +1 -1
  185. package/dist/constructs/session.d.ts +26 -1
  186. package/dist/constructs/session.js +33 -2
  187. package/dist/constructs/session.js.map +1 -1
  188. package/dist/constructs/slack-alert-channel-codegen.js +1 -1
  189. package/dist/constructs/slack-alert-channel-codegen.js.map +1 -1
  190. package/dist/constructs/slack-app-alert-channel-codegen.js +1 -1
  191. package/dist/constructs/slack-app-alert-channel-codegen.js.map +1 -1
  192. package/dist/constructs/sms-alert-channel-codegen.js +1 -1
  193. package/dist/constructs/sms-alert-channel-codegen.js.map +1 -1
  194. package/dist/constructs/ssl-request-codegen.js +4 -3
  195. package/dist/constructs/ssl-request-codegen.js.map +1 -1
  196. package/dist/constructs/status-page-v3-automation-rule-codegen.js +5 -4
  197. package/dist/constructs/status-page-v3-automation-rule-codegen.js.map +1 -1
  198. package/dist/constructs/status-page-v3-codegen.js +3 -2
  199. package/dist/constructs/status-page-v3-codegen.js.map +1 -1
  200. package/dist/constructs/status-page-v3-component-codegen.js +8 -7
  201. package/dist/constructs/status-page-v3-component-codegen.js.map +1 -1
  202. package/dist/constructs/tcp-monitor-codegen.js +3 -2
  203. package/dist/constructs/tcp-monitor-codegen.js.map +1 -1
  204. package/dist/constructs/tcp-monitor.d.ts +4 -3
  205. package/dist/constructs/tcp-monitor.js +3 -2
  206. package/dist/constructs/tcp-monitor.js.map +1 -1
  207. package/dist/constructs/telegram-alert-channel-codegen.d.ts +1 -1
  208. package/dist/constructs/telegram-alert-channel-codegen.js +14 -8
  209. package/dist/constructs/telegram-alert-channel-codegen.js.map +1 -1
  210. package/dist/constructs/time-zone.d.ts +24 -0
  211. package/dist/constructs/time-zone.js +455 -0
  212. package/dist/constructs/time-zone.js.map +1 -0
  213. package/dist/constructs/traceroute-request-codegen.js +2 -2
  214. package/dist/constructs/traceroute-request-codegen.js.map +1 -1
  215. package/dist/constructs/url-monitor-codegen.js +1 -1
  216. package/dist/constructs/url-monitor-codegen.js.map +1 -1
  217. package/dist/constructs/url-monitor.d.ts +3 -2
  218. package/dist/constructs/url-monitor.js +3 -0
  219. package/dist/constructs/url-monitor.js.map +1 -1
  220. package/dist/constructs/url-request-codegen.js +4 -3
  221. package/dist/constructs/url-request-codegen.js.map +1 -1
  222. package/dist/constructs/webhook-alert-channel-codegen.js +3 -3
  223. package/dist/constructs/webhook-alert-channel-codegen.js.map +1 -1
  224. package/dist/formatters/check-result-detail.js +0 -185
  225. package/dist/formatters/check-result-detail.js.map +1 -1
  226. package/dist/helpers/activate-account.d.ts +14 -0
  227. package/dist/helpers/activate-account.js +25 -0
  228. package/dist/helpers/activate-account.js.map +1 -0
  229. package/dist/helpers/cli-mode.d.ts +18 -0
  230. package/dist/helpers/cli-mode.js +41 -2
  231. package/dist/helpers/cli-mode.js.map +1 -1
  232. package/dist/helpers/command-preview.d.ts +44 -0
  233. package/dist/helpers/command-preview.js +29 -9
  234. package/dist/helpers/command-preview.js.map +1 -1
  235. package/dist/helpers/flags.d.ts +10 -0
  236. package/dist/helpers/flags.js +17 -0
  237. package/dist/helpers/flags.js.map +1 -1
  238. package/dist/helpers/onboarding/boilerplate.js +13 -1
  239. package/dist/helpers/onboarding/boilerplate.js.map +1 -1
  240. package/dist/helpers/onboarding/index.d.ts +1 -1
  241. package/dist/helpers/onboarding/index.js +1 -1
  242. package/dist/helpers/onboarding/index.js.map +1 -1
  243. package/dist/helpers/onboarding/messages.d.ts +6 -0
  244. package/dist/helpers/onboarding/messages.js +14 -0
  245. package/dist/helpers/onboarding/messages.js.map +1 -1
  246. package/dist/helpers/onboarding/skill-install.js +2 -2
  247. package/dist/helpers/onboarding/skill-install.js.map +1 -1
  248. package/dist/helpers/wrap.js +1 -1
  249. package/dist/helpers/wrap.js.map +1 -1
  250. package/dist/reporters/abstract-list.js +11 -2
  251. package/dist/reporters/abstract-list.js.map +1 -1
  252. package/dist/reporters/github.js +3 -2
  253. package/dist/reporters/github.js.map +1 -1
  254. package/dist/reporters/util.d.ts +1 -0
  255. package/dist/reporters/util.js +5 -58
  256. package/dist/reporters/util.js.map +1 -1
  257. package/dist/rest/analytics.js +0 -4
  258. package/dist/rest/analytics.js.map +1 -1
  259. package/dist/rest/api.d.ts +8 -1
  260. package/dist/rest/api.js +21 -3
  261. package/dist/rest/api.js.map +1 -1
  262. package/dist/rest/check-results.d.ts +1 -50
  263. package/dist/rest/check-results.js.map +1 -1
  264. package/dist/rest/checkly-storage.d.ts +6 -1
  265. package/dist/rest/checkly-storage.js +13 -2
  266. package/dist/rest/checkly-storage.js.map +1 -1
  267. package/dist/rest/errors.d.ts +13 -0
  268. package/dist/rest/errors.js +5 -1
  269. package/dist/rest/errors.js.map +1 -1
  270. package/dist/rest/projects.d.ts +254 -4
  271. package/dist/rest/projects.js +184 -12
  272. package/dist/rest/projects.js.map +1 -1
  273. package/dist/services/abstract-check-runner.d.ts +11 -0
  274. package/dist/services/abstract-check-runner.js +98 -46
  275. package/dist/services/abstract-check-runner.js.map +1 -1
  276. package/dist/services/check-parser/bundler.d.ts +26 -0
  277. package/dist/services/check-parser/bundler.js +81 -7
  278. package/dist/services/check-parser/bundler.js.map +1 -1
  279. package/dist/services/check-parser/cache-hash.d.ts +1 -4
  280. package/dist/services/check-parser/cache-hash.js.map +1 -1
  281. package/dist/services/checkly-config-codegen.js +1 -4
  282. package/dist/services/checkly-config-codegen.js.map +1 -1
  283. package/dist/services/checkly-config-loader.d.ts +7 -33
  284. package/dist/services/checkly-config-loader.js +50 -47
  285. package/dist/services/checkly-config-loader.js.map +1 -1
  286. package/dist/services/config.d.ts +2 -0
  287. package/dist/services/config.js +14 -0
  288. package/dist/services/config.js.map +1 -1
  289. package/dist/services/content-hash.d.ts +14 -0
  290. package/dist/services/content-hash.js +22 -0
  291. package/dist/services/content-hash.js.map +1 -0
  292. package/dist/services/deploy-diff/diff-lines.d.ts +38 -0
  293. package/dist/services/deploy-diff/diff-lines.js +191 -0
  294. package/dist/services/deploy-diff/diff-lines.js.map +1 -0
  295. package/dist/services/deploy-diff/import-shape.d.ts +171 -0
  296. package/dist/services/deploy-diff/import-shape.js +633 -0
  297. package/dist/services/deploy-diff/import-shape.js.map +1 -0
  298. package/dist/services/deploy-diff/legacy-payload.d.ts +22 -0
  299. package/dist/services/deploy-diff/legacy-payload.js +51 -0
  300. package/dist/services/deploy-diff/legacy-payload.js.map +1 -0
  301. package/dist/services/deploy-diff/plan-summary.d.ts +37 -0
  302. package/dist/services/deploy-diff/plan-summary.js +154 -0
  303. package/dist/services/deploy-diff/plan-summary.js.map +1 -0
  304. package/dist/services/deploy-diff/preview-output.d.ts +61 -0
  305. package/dist/services/deploy-diff/preview-output.js +394 -0
  306. package/dist/services/deploy-diff/preview-output.js.map +1 -0
  307. package/dist/services/deploy-diff/render.d.ts +53 -0
  308. package/dist/services/deploy-diff/render.js +317 -0
  309. package/dist/services/deploy-diff/render.js.map +1 -0
  310. package/dist/services/deploy-diff/shape-changes.d.ts +2 -0
  311. package/dist/services/deploy-diff/shape-changes.js +35 -0
  312. package/dist/services/deploy-diff/shape-changes.js.map +1 -0
  313. package/dist/services/deploy-diff/source-index.d.ts +18 -0
  314. package/dist/services/deploy-diff/source-index.js +48 -0
  315. package/dist/services/deploy-diff/source-index.js.map +1 -0
  316. package/dist/services/deploy-diff/variable-names.d.ts +30 -0
  317. package/dist/services/deploy-diff/variable-names.js +64 -0
  318. package/dist/services/deploy-diff/variable-names.js.map +1 -0
  319. package/dist/services/project-parser.d.ts +5 -0
  320. package/dist/services/project-parser.js +25 -13
  321. package/dist/services/project-parser.js.map +1 -1
  322. package/dist/services/snapshot-service.d.ts +25 -8
  323. package/dist/services/snapshot-service.js +46 -4
  324. package/dist/services/snapshot-service.js.map +1 -1
  325. package/dist/services/test-filters.d.ts +18 -0
  326. package/dist/services/test-filters.js +10 -0
  327. package/dist/services/test-filters.js.map +1 -1
  328. package/dist/services/test-runner.js +7 -3
  329. package/dist/services/test-runner.js.map +1 -1
  330. package/dist/services/test-session-cancel.js +1 -1
  331. package/dist/services/test-session-cancel.js.map +1 -1
  332. package/dist/services/util.d.ts +17 -2
  333. package/dist/services/util.js +118 -11
  334. package/dist/services/util.js.map +1 -1
  335. package/dist/services/write-back/apply-edits.d.ts +29 -0
  336. package/dist/services/write-back/apply-edits.js +255 -0
  337. package/dist/services/write-back/apply-edits.js.map +1 -0
  338. package/dist/services/write-back/helper-edit.d.ts +135 -0
  339. package/dist/services/write-back/helper-edit.js +343 -0
  340. package/dist/services/write-back/helper-edit.js.map +1 -0
  341. package/dist/services/write-back/imports.d.ts +30 -0
  342. package/dist/services/write-back/imports.js +82 -0
  343. package/dist/services/write-back/imports.js.map +1 -0
  344. package/dist/services/write-back/literal-edit.d.ts +183 -0
  345. package/dist/services/write-back/literal-edit.js +359 -0
  346. package/dist/services/write-back/literal-edit.js.map +1 -0
  347. package/dist/services/write-back/output.d.ts +26 -0
  348. package/dist/services/write-back/output.js +110 -0
  349. package/dist/services/write-back/output.js.map +1 -0
  350. package/dist/services/write-back/plan.d.ts +173 -0
  351. package/dist/services/write-back/plan.js +968 -0
  352. package/dist/services/write-back/plan.js.map +1 -0
  353. package/dist/services/write-back/source-file.d.ts +118 -0
  354. package/dist/services/write-back/source-file.js +432 -0
  355. package/dist/services/write-back/source-file.js.map +1 -0
  356. package/dist/sourcegen/index.d.ts +1 -1
  357. package/dist/sourcegen/index.js +1 -1
  358. package/dist/sourcegen/index.js.map +1 -1
  359. package/dist/sourcegen/program.d.ts +19 -1
  360. package/dist/sourcegen/program.js +32 -7
  361. package/dist/sourcegen/program.js.map +1 -1
  362. package/oclif.manifest.json +676 -635
  363. package/package.json +13 -13
  364. package/dist/commands/rules.d.ts +0 -9
  365. package/dist/commands/rules.js +0 -13
  366. package/dist/commands/rules.js.map +0 -1
  367. package/dist/constructs/agentic-check-codegen.d.ts +0 -22
  368. package/dist/constructs/agentic-check-codegen.js +0 -59
  369. package/dist/constructs/agentic-check-codegen.js.map +0 -1
  370. package/dist/constructs/agentic-check.d.ts +0 -237
  371. package/dist/constructs/agentic-check.js +0 -100
  372. package/dist/constructs/agentic-check.js.map +0 -1
@@ -0,0 +1,394 @@
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 } from './plan-summary.js';
6
+ import { 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
+ };
63
+ export function formatPreview(input) {
64
+ const { heading, diff, done = false, project, verbose = false, pruneRelations = false, rendering, planToken } = input;
65
+ const updating = [];
66
+ const creating = [];
67
+ const deleting = [];
68
+ const detaching = [];
69
+ const pruning = [];
70
+ const unmanaged = [];
71
+ let unchanged = 0;
72
+ // Updates Checkly compared with what is deployed, for want of an earlier
73
+ // planned deploy; the note under the overview counts them.
74
+ let baseline = 0;
75
+ for (const change of diff) {
76
+ const { type, logicalId, physicalId, action, changes } = change;
77
+ if (NON_REPORTED_TYPES.some(t => t === type)) {
78
+ // A relation the project manages is reported as part of the check or
79
+ // group it belongs to, since users do not declare these directly. One
80
+ // the project does NOT manage is only ever reported when --prune-relations
81
+ // would delete it, and that is worth its own line.
82
+ if (isPrunedRelation(change)) {
83
+ // The relation's own id says nothing to the user; the check or group
84
+ // it hangs off is what tells them what the prune touches.
85
+ const owner = change.foldedInto;
86
+ pruning.push({
87
+ resourceType: type,
88
+ logicalId,
89
+ owner: owner ? `${PRETTY_RESOURCE_TYPES[owner.type] ?? owner.type} ${owner.logicalId}` : undefined,
90
+ });
91
+ }
92
+ continue;
93
+ }
94
+ if (change.basis === 'live') {
95
+ baseline++;
96
+ }
97
+ // Relations the project does not manage are reported on their owning
98
+ // check or group whether or not they would be deleted. Without
99
+ // --prune-relations the deploy leaves them — and the resource — alone, so
100
+ // listing it as an update would name a write that never happens.
101
+ // Never an update: what the deploy deletes is the relation, not the
102
+ // check or group it hangs off. With --prune-relations the relation's own
103
+ // entry is already listed as pruned, so the resource needs no line of
104
+ // its own — and advising the flag the user just passed would be absurd.
105
+ // A resource written to set the baseline is the exception: that write
106
+ // happens whatever was found, so it keeps its row next to the warning.
107
+ if (onlyUnmanagedChanges(change)) {
108
+ if (!pruneRelations) {
109
+ unmanaged.push({ resourceType: type, logicalId });
110
+ }
111
+ if (change.basis !== 'live') {
112
+ continue;
113
+ }
114
+ }
115
+ // A type this CLI version does not know (a newer CLI deployed it) has no
116
+ // slot in the project. Such an entry has no construct, and a created or
117
+ // updated one is dropped from the overview below rather than crashing it.
118
+ const construct = project.data[type]?.[logicalId];
119
+ if (action === ResourceDeployStatus.UPDATE) {
120
+ updating.push({ resourceType: type, logicalId, physicalId, construct });
121
+ }
122
+ else if (action === ResourceDeployStatus.UNCHANGED) {
123
+ // A resource whose own properties agree with the account can still have
124
+ // changed alert channels or private locations, which are reported on it
125
+ // rather than as resources of their own; only an entry with nothing at
126
+ // all to report counts as unchanged.
127
+ if ((changes?.length ?? 0) > 0) {
128
+ updating.push({ resourceType: type, logicalId, physicalId, construct });
129
+ }
130
+ else {
131
+ unchanged++;
132
+ }
133
+ }
134
+ else if (action === ResourceDeployStatus.CREATE) {
135
+ creating.push({ resourceType: type, logicalId, physicalId, construct });
136
+ }
137
+ else if (action === ResourceDeployStatus.DELETE) {
138
+ // Since the resource is being deleted, the construct isn't in the project.
139
+ deleting.push({ resourceType: type, logicalId });
140
+ }
141
+ else if (action === ResourceDeployStatus.DETACH
142
+ || action === ResourceDeployStatus.DETACHED) {
143
+ // Removed from code but kept in the account, so the construct is not in
144
+ // the project any more.
145
+ detaching.push({ resourceType: type, logicalId });
146
+ }
147
+ }
148
+ // testOnly checks weren't sent to the BE and won't be in the plan.
149
+ // We load them from the `project` instead.
150
+ const skipping = project
151
+ .getTestOnlyConstructs().map(construct => ({
152
+ logicalId: construct.logicalId,
153
+ resourceType: construct.type,
154
+ construct,
155
+ }))
156
+ // A check that already exists in Checkly and just gained `testOnly: true`
157
+ // is both deleted and skipped; it is shown once, as deleted.
158
+ .filter(skip => !deleting.find(deletion => deletion.logicalId === skip.logicalId && deletion.resourceType === skip.resourceType));
159
+ // Resources without constructs are created dynamically on the fly (a
160
+ // non-member private location) and have nothing to show.
161
+ const sortedCreating = creating.filter(({ construct }) => Boolean(construct)).sort(compareEntries);
162
+ const sortedUpdating = updating.filter(({ construct }) => Boolean(construct)).sort(compareEntries);
163
+ const sortedDeleting = deleting.sort(compareEntries);
164
+ const sortedDetaching = detaching.sort(compareEntries);
165
+ const sortedPruning = pruning.sort(compareEntries);
166
+ const sortedUnmanaged = unmanaged.sort(compareEntries);
167
+ if (!sortedCreating.length && !sortedDeleting.length && !sortedDetaching.length
168
+ && !sortedUpdating.length && !sortedPruning.length && !sortedUnmanaged.length
169
+ && !unchanged && !skipping.length) {
170
+ 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';
171
+ }
172
+ const sourceFileOf = ({ resourceType, logicalId }) => {
173
+ const local = rendering?.local.find(resource => resource.type === resourceType && resource.logicalId === logicalId);
174
+ const planned = diff.find(entry => entry.type === resourceType && entry.logicalId === logicalId);
175
+ return local?.sourceFile ?? planned?.sourceFile ?? undefined;
176
+ };
177
+ const subLines = ({ physicalId, construct }) => {
178
+ if (!verbose) {
179
+ return [];
180
+ }
181
+ const lines = [];
182
+ if (construct?.name) {
183
+ lines.push(chalk.dim(`name: ${construct.name}`));
184
+ }
185
+ if (physicalId) {
186
+ lines.push(chalk.dim(`id: ${physicalId}`));
187
+ }
188
+ return lines;
189
+ };
190
+ const withConstruct = (marker, listed) => ({
191
+ marker,
192
+ type: listed.construct.constructor.name,
193
+ logicalId: listed.logicalId,
194
+ detail: chalk.dim(sourceFileOf(listed) ?? ''),
195
+ sub: subLines(listed),
196
+ });
197
+ const withNote = (marker, listed, note) => ({
198
+ marker,
199
+ type: PRETTY_RESOURCE_TYPES[listed.resourceType] ?? listed.resourceType,
200
+ logicalId: listed.logicalId,
201
+ detail: note,
202
+ sub: [],
203
+ });
204
+ const rows = [
205
+ ...sortedCreating.map(listed => withConstruct(MARKER.create, listed)),
206
+ ...sortedUpdating.map(listed => withConstruct(MARKER.update, listed)),
207
+ ...sortedDeleting.map(listed => withNote(MARKER.delete, listed, chalk.red('permanently deleted, run history lost'))),
208
+ ...sortedDetaching.map(listed => withNote(MARKER.detach, listed, chalk.yellow('kept in your Checkly account, now managed from the Checkly web app'))),
209
+ ...sortedPruning.map(listed => withNote(MARKER.prune, listed, chalk.red(`relation${listed.owner ? ` on ${listed.owner}` : ''} not managed by this project, `
210
+ + 'deleted by --prune-relations'))),
211
+ ...sortedUnmanaged.map(listed => withNote(MARKER.warn, listed, chalk.yellow('has alert channels or private locations this project does not manage (pass --prune-relations to delete them)'))),
212
+ ...skipping.sort(compareEntries).map(listed => ({
213
+ ...withConstruct(MARKER.skip, listed),
214
+ detail: chalk.dim('skipped (testOnly)'),
215
+ })),
216
+ ];
217
+ // A plan that gives the deploy nothing to write is said in one sentence
218
+ // rather than as an overview of nothing. The rows that inform without
219
+ // announcing a write (relations the project does not manage, testOnly
220
+ // checks) are still listed above it. Decided by the rule that decides
221
+ // whether the deploy asks for confirmation, so the two cannot disagree.
222
+ const nothingToApply = !done
223
+ && planHasNoChanges(diff, { prettyTypes: PRETTY_RESOURCE_TYPES, foldedTypes: NON_REPORTED_TYPES });
224
+ const output = [];
225
+ if (heading !== undefined && (!nothingToApply || rows.length > 0)) {
226
+ const { title, projectName, accountName } = heading;
227
+ const account = accountName !== undefined ? ` ${chalk.dim('→')} account ${chalk.bold(accountName)}` : '';
228
+ output.push(`${chalk.bold(title)} ${chalk.dim('·')} ${projectName}${account}`);
229
+ output.push('');
230
+ }
231
+ const typeWidth = Math.max(0, ...rows.map(row => visWidth(row.type)));
232
+ const idWidth = Math.max(0, ...rows.map(row => visWidth(row.logicalId)));
233
+ for (const row of rows) {
234
+ const type = padColumn(row.type, typeWidth);
235
+ const logicalId = padColumn(chalk.bold(row.logicalId), idWidth);
236
+ output.push(` ${row.marker} ${type} ${logicalId} ${row.detail}`.trimEnd());
237
+ for (const line of row.sub) {
238
+ output.push(` ${line}`);
239
+ }
240
+ }
241
+ if (nothingToApply) {
242
+ if (rows.length > 0) {
243
+ output.push('');
244
+ }
245
+ // A resource with relations the project does not manage matches the code
246
+ // in everything the project does manage.
247
+ const matching = unchanged + sortedUnmanaged.length;
248
+ const where = heading?.accountName !== undefined ? ` in account "${heading.accountName}"` : '';
249
+ const matches = matching === 1
250
+ ? ` The 1 resource${where} matches your code.`
251
+ : matching > 1 ? ` All ${matching} resources${where} match your code.` : '';
252
+ output.push(`${chalk.bold('No changes.')}${matches}`);
253
+ // No totals and no plan token: there is no plan to pin.
254
+ output.push('');
255
+ return output.join('\n');
256
+ }
257
+ if (unchanged) {
258
+ output.push(` ${chalk.dim(`${unchanged} unchanged`)}`);
259
+ }
260
+ output.push('');
261
+ if (baseline > 0) {
262
+ output.push(chalk.dim(baselineNote(baseline, done)), '');
263
+ }
264
+ if (rendering !== undefined) {
265
+ const ids = physicalIdsFromPlan(rendering.plan, rendering.local);
266
+ // Reading them parses source files, so only once a diff is to be rendered.
267
+ const sources = new SourceIndex();
268
+ const variableNames = sortedUpdating.length > 0 ? constructVariableNames(project, undefined, sources) : undefined;
269
+ for (const listed of sortedUpdating) {
270
+ const { resourceType, logicalId } = listed;
271
+ // The entry to render is the plan's, whether this listing is the plan
272
+ // itself or the deploy that carried it out.
273
+ const planned = rendering.plan.find(entry => entry.type === resourceType && entry.logicalId === logicalId);
274
+ if (planned === undefined || planned.before === undefined) {
275
+ continue;
276
+ }
277
+ // Listed for the write that sets its baseline, not for a change: a diff
278
+ // would show its unmanaged relations as removed, which the deploy does
279
+ // not do without --prune-relations. The `!` row says what there is to say.
280
+ if (onlyUnmanagedChanges(planned) && !pruneRelations) {
281
+ continue;
282
+ }
283
+ const lines = renderResourceDiff({
284
+ entry: planned,
285
+ local: rendering.local.find(resource => resource.type === resourceType && resource.logicalId === logicalId),
286
+ localResources: rendering.local,
287
+ diff: rendering.plan,
288
+ project,
289
+ ids,
290
+ pruneRelations,
291
+ variableNames,
292
+ spelledOut: sources.spelledOut(listed.construct),
293
+ });
294
+ if (lines.length === 0) {
295
+ continue;
296
+ }
297
+ const file = sourceFileOf(listed);
298
+ output.push(`${MARKER.update} ${chalk.bold(listed.construct.constructor.name)} ${chalk.bold(logicalId)}`
299
+ + (file !== undefined ? ` ${chalk.dim(file)}` : ''),
300
+ // The legend explains `-` and `+` lines, so it is printed where
301
+ // there are some: a resource reported by notes alone has no sides.
302
+ ...(lines.some(hasSide) ? diffLegend(done) : []));
303
+ // A hunk boundary is shown as the gap between two hunks of the same
304
+ // diff, so the first hunk of the construct diff, and the first of a
305
+ // nested text diff (which follows the note naming its property), get
306
+ // none.
307
+ let previous;
308
+ for (const line of lines) {
309
+ const hunk = line.kind === 'hunk' || (line.kind === 'nested' && line.line.kind === 'hunk');
310
+ const sameDiff = previous !== undefined
311
+ && (line.kind === 'nested' ? previous.kind === 'nested' : previous.kind !== 'note' && previous.kind !== 'reason');
312
+ previous = line;
313
+ if (hunk && !sameDiff) {
314
+ continue;
315
+ }
316
+ output.push(` ${styled(line)}`.trimEnd());
317
+ }
318
+ output.push('');
319
+ }
320
+ }
321
+ const counted = (count, text, colour) => count > 0 ? [colour(`${count} ${text}`)] : [];
322
+ output.push([
323
+ ...counted(sortedCreating.length, done ? 'created' : 'to create', chalk.green),
324
+ ...counted(sortedUpdating.length, done ? 'updated' : 'to update', chalk.yellow),
325
+ ...counted(sortedDeleting.length, done ? 'deleted' : 'to delete', chalk.red),
326
+ ...counted(sortedDetaching.length, 'kept in your account', chalk.yellow),
327
+ ...counted(sortedPruning.length, sortedPruning.length === 1 ? 'relation pruned' : 'relations pruned', chalk.red),
328
+ ...counted(skipping.length, 'skipped (testOnly)', chalk.dim),
329
+ ...counted(sortedUnmanaged.length, 'with relations this project does not manage', chalk.yellow),
330
+ chalk.dim(`${unchanged} unchanged`),
331
+ ].join(', '));
332
+ if (planToken !== undefined) {
333
+ output.push(`${chalk.dim('Deploy exactly this plan:')} checkly deploy --plan-token ${planToken}`);
334
+ }
335
+ // A blank line closes the plan, whatever follows it.
336
+ output.push('');
337
+ return output.join('\n');
338
+ }
339
+ /**
340
+ * Why a plan lists resources as updates in which nothing differs. Checkly
341
+ * compares a resource with the state its last planned deploy left; one without
342
+ * such a state (the project's first plan, the first after a deploy with
343
+ * `--no-plan`, a resource added with `checkly import`) is compared with what is
344
+ * deployed instead and written whatever that finds, so that the next plan has
345
+ * a baseline. The note counts them and names no cause: the plan does not say
346
+ * which of these it was, and a sentence about "the first plan" would be wrong
347
+ * for the others.
348
+ */
349
+ function baselineNote(count, done) {
350
+ const resources = count === 1 ? '1 resource' : `${count} resources`;
351
+ const verb = done ? (count === 1 ? 'was' : 'were') : (count === 1 ? 'is' : 'are');
352
+ return `${resources} ${verb} updated to set a baseline. Later deploys show only what changed.`;
353
+ }
354
+ /**
355
+ * What the two sides of a construct diff are, printed under the resource's
356
+ * header: a `-` line is the account's value, which the deploy replaces or,
357
+ * when no `+` line follows, removes; a `+` line is the code's value, which
358
+ * the deploy adds or, when a `-` line precedes it, changes to. Once the
359
+ * deploy is done the code's value is the live one, and the legend says so.
360
+ */
361
+ function diffLegend(done) {
362
+ const sides = done
363
+ ? [[MARKER.delete, 'was live in Checkly', 'replaced or removed by the deploy'],
364
+ [MARKER.create, 'now live in Checkly', 'added or changed by the deploy']]
365
+ : [[MARKER.delete, 'live in Checkly', 'replaced or removed by this deploy'],
366
+ [MARKER.create, 'in your code', 'added or changed by this deploy']];
367
+ const width = Math.max(...sides.map(([, label]) => label.length));
368
+ return sides.map(([marker, label, meaning]) => ` ${marker} ${chalk.dim(`${label.padEnd(width)} ${meaning}`)}`);
369
+ }
370
+ /** Whether a rendered line is one side of a diff: a `-` or a `+` line, of the construct or of a nested text. */
371
+ function hasSide(line) {
372
+ const kind = line.kind === 'nested' ? line.line.kind : line.kind;
373
+ return kind === 'add' || kind === 'remove';
374
+ }
375
+ /** One rendered line with its marker and colour; a nested line sits two columns further in. */
376
+ export function styled(line) {
377
+ switch (line.kind) {
378
+ case 'add':
379
+ return chalk.green(`+ ${line.text}`);
380
+ case 'remove':
381
+ return chalk.red(`- ${line.text}`);
382
+ case 'context':
383
+ return ` ${chalk.grey(line.text)}`;
384
+ case 'hunk':
385
+ return ` ${GAP}`;
386
+ case 'note':
387
+ return chalk.yellow(`~ ${line.text}`);
388
+ case 'reason':
389
+ return ` ${chalk.dim(line.text)}`;
390
+ case 'nested':
391
+ return ` ${styled(line.line)}`;
392
+ }
393
+ }
394
+ //# 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,53 @@
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
+ export declare function renderResourceDiff(input: RenderResourceInput): RenderedLine[];