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
@@ -46,8 +46,24 @@ export declare abstract class Construct implements Validate, Bundle {
46
46
  physicalId?: string | number;
47
47
  /** Whether this construct is a member of the project */
48
48
  member: boolean;
49
- /** Absolute path to the check file that created this construct */
49
+ /**
50
+ * Absolute path of the file that declares this construct: the user file
51
+ * whose code ran the constructor, read off the call stack, so a construct
52
+ * in a module shared by several check files is attributed to that module
53
+ * and not to whichever check file imported it first. When no user code is
54
+ * on the stack (the CLI created the construct itself, or a test did) it
55
+ * is the parser's current check file, if any.
56
+ */
50
57
  checkFileAbsolutePath?: string;
58
+ /**
59
+ * The check file the parser was loading when this construct was created,
60
+ * if any. It differs from `checkFileAbsolutePath` when the construct was
61
+ * declared in a module the check file imports, or when helper code in
62
+ * another file created it on the check file's behalf. Relative file
63
+ * paths are resolved next to this file first, as they always were, and
64
+ * next to the declaring file when they do not exist there.
65
+ */
66
+ readonly loadingFileAbsolutePath?: string;
51
67
  /**
52
68
  * Diagnostics recorded during construction. A constructor cannot perform the
53
69
  * async work that validate() can, so any issue it notices (e.g. an argument
@@ -82,8 +98,13 @@ export declare abstract class Construct implements Validate, Bundle {
82
98
  */
83
99
  allowInChecklyConfig(): boolean;
84
100
  /**
85
- * Resolves a content file path relative to the check file that created this construct.
86
- * If the path is already absolute, returns it as-is.
101
+ * Resolves a content file path relative to the check file that was being
102
+ * loaded when this construct was created, or, when the path does not
103
+ * exist there, relative to the file that declares the construct. So a
104
+ * factory called from a check file keeps resolving paths from the check
105
+ * file's directory, and a construct declared in a shared module can
106
+ * keep its script next to that module. An absolute path is returned as
107
+ * is.
87
108
  *
88
109
  * @param contentPath The relative or absolute path to resolve
89
110
  * @returns The absolute path to the content file
@@ -122,7 +143,7 @@ export declare abstract class Construct implements Validate, Bundle {
122
143
  * Used when script code is stored in a separate file rather than inline.
123
144
  */
124
145
  export interface Entrypoint {
125
- /** Path to the script file, relative to the check file or absolute */
146
+ /** Path to the script file, relative to the file that declares the construct, or absolute */
126
147
  entrypoint: string;
127
148
  }
128
149
  /**
@@ -1,9 +1,11 @@
1
+ import fs from 'node:fs';
1
2
  import path from 'node:path';
2
3
  import { LOGICAL_ID_PATTERN } from '../constants.js';
3
4
  import { InvalidPropertyValueDiagnostic } from './construct-diagnostics.js';
4
5
  import { Diagnostics } from './diagnostics.js';
5
6
  import { Session } from './session.js';
6
7
  import { Ref } from './ref.js';
8
+ import { captureDeclaringFile } from './internal/declaring-file.js';
7
9
  /**
8
10
  * Abstract base class for all constructs in the Checkly CLI system.
9
11
  * Provides common functionality for validation, bundling, and resource management.
@@ -20,8 +22,24 @@ export class Construct {
20
22
  physicalId;
21
23
  /** Whether this construct is a member of the project */
22
24
  member;
23
- /** Absolute path to the check file that created this construct */
25
+ /**
26
+ * Absolute path of the file that declares this construct: the user file
27
+ * whose code ran the constructor, read off the call stack, so a construct
28
+ * in a module shared by several check files is attributed to that module
29
+ * and not to whichever check file imported it first. When no user code is
30
+ * on the stack (the CLI created the construct itself, or a test did) it
31
+ * is the parser's current check file, if any.
32
+ */
24
33
  checkFileAbsolutePath;
34
+ /**
35
+ * The check file the parser was loading when this construct was created,
36
+ * if any. It differs from `checkFileAbsolutePath` when the construct was
37
+ * declared in a module the check file imports, or when helper code in
38
+ * another file created it on the check file's behalf. Relative file
39
+ * paths are resolved next to this file first, as they always were, and
40
+ * next to the declaring file when they do not exist there.
41
+ */
42
+ loadingFileAbsolutePath;
25
43
  /**
26
44
  * Diagnostics recorded during construction. A constructor cannot perform the
27
45
  * async work that validate() can, so any issue it notices (e.g. an argument
@@ -46,7 +64,15 @@ export class Construct {
46
64
  this.type = type;
47
65
  this.physicalId = physicalId;
48
66
  this.member = member ?? true;
49
- this.checkFileAbsolutePath = Session.checkFileAbsolutePath;
67
+ this.loadingFileAbsolutePath = Session.checkFileAbsolutePath;
68
+ // One constructor frame per class from Construct down to the class
69
+ // being instantiated sits on top of the stack; the declaring file is
70
+ // the frame below them.
71
+ let constructorChainLength = 1;
72
+ for (let cls = new.target; cls && cls !== Construct; cls = Object.getPrototypeOf(cls)) {
73
+ constructorChainLength++;
74
+ }
75
+ this.checkFileAbsolutePath = captureDeclaringFile(constructorChainLength) ?? this.loadingFileAbsolutePath;
50
76
  Session.validateCreateConstruct(this);
51
77
  }
52
78
  /**
@@ -67,8 +93,13 @@ export class Construct {
67
93
  return false;
68
94
  }
69
95
  /**
70
- * Resolves a content file path relative to the check file that created this construct.
71
- * If the path is already absolute, returns it as-is.
96
+ * Resolves a content file path relative to the check file that was being
97
+ * loaded when this construct was created, or, when the path does not
98
+ * exist there, relative to the file that declares the construct. So a
99
+ * factory called from a check file keeps resolving paths from the check
100
+ * file's directory, and a construct declared in a shared module can
101
+ * keep its script next to that module. An absolute path is returned as
102
+ * is.
72
103
  *
73
104
  * @param contentPath The relative or absolute path to resolve
74
105
  * @returns The absolute path to the content file
@@ -81,7 +112,12 @@ export class Construct {
81
112
  if (!this.checkFileAbsolutePath) {
82
113
  throw new Error('Internal error: attempting to use relative content file path without checkFileAbsolutePath set');
83
114
  }
84
- return path.join(path.dirname(this.checkFileAbsolutePath), contentPath);
115
+ const candidates = [...new Set([this.loadingFileAbsolutePath, this.checkFileAbsolutePath])]
116
+ .filter((file) => file !== undefined)
117
+ .map(file => path.join(path.dirname(file), contentPath));
118
+ // A path that exists nowhere resolves against the first base, so the
119
+ // error reported later names the location that was always tried.
120
+ return candidates.find(candidate => fs.existsSync(candidate)) ?? candidates[0];
85
121
  }
86
122
  /**
87
123
  * Validates the Construct, allowing multiple issues to be brought into
@@ -1 +1 @@
1
- {"version":3,"file":"construct.js","sourceRoot":"","sources":["../../src/constructs/construct.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAmC9B;;;;;;GAMG;AACH,MAAM,OAAgB,SAAS;IAC7B,2CAA2C;IAC3C,IAAI,CAAQ;IACZ,yDAAyD;IACzD,SAAS,CAAQ;IACjB,2DAA2D;IAC3D,UAAU,CAAkB;IAC5B,wDAAwD;IACxD,MAAM,CAAS;IACf,kEAAkE;IAClE,qBAAqB,CAAS;IAC9B;;;;;OAKG;IACM,gBAAgB,GAAG,IAAI,WAAW,EAAE,CAAA;IAE7C;;;;;;;OAOG;IACH,YAAa,IAAY,EAAE,SAAiB,EAAE,UAA4B,EAAE,MAAgB;QAC1F,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,8BAA8B,CAC1D,WAAW,EACX,IAAI,KAAK,CAAC,wCAAwC,OAAO,SAAS,IAAI,CAAC,CACxE,CAAC,CAAA;YACF,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAA;QAC5B,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;QAC1D,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAOD;;;;OAIG;IACH,GAAG;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;IAED;;;;;OAKG;IACH,oBAAoB;QAClB,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;OAOG;IACH,sBAAsB,CAAE,WAAmB;QACzC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAA;QACnH,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,CAAA;IACzE,CAAC;IAED;;;;;;OAMG;IACH,yCAAyC;IACzC,KAAK,CAAC,QAAQ,CAAE,WAAwB;QACtC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAEzC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,WAAW,CAAC,GAAG,CAAC,IAAI,8BAA8B,CAChD,WAAW,EACX,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,mFAAmF,CAAC,CACjH,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,4EAA4E;IAC5E,KAAK,CAAC,MAAM,CAAE,OAAgB;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;CASF;AAWD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAE,KAAU;IACtC,OAAO,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;AACtC,CAAC;AAWD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAE,KAAU;IACnC,OAAO,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"construct.js","sourceRoot":"","sources":["../../src/constructs/construct.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export function valueForDnsRequest(program, genfile, context, request) {
10
10
  if (request.port) {
11
11
  builder.number('port', request.port);
12
12
  }
13
- if (request.protocol && request.protocol !== 'UDP') {
13
+ if (request.protocol && (request.protocol !== 'UDP' || context.spelledOut('request.protocol'))) {
14
14
  builder.string('protocol', request.protocol);
15
15
  }
16
16
  if (request.assertions) {
@@ -1 +1 @@
1
- {"version":3,"file":"dns-request-codegen.js","sourceRoot":"","sources":["../../src/constructs/dns-request-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAkB,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAIjE,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,OAAsB,EACtB,OAAgB,EAChB,OAAmB;IAEnB,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QAChD,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAEtC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;YACrC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;oBACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;oBACzD,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"dns-request-codegen.js","sourceRoot":"","sources":["../../src/constructs/dns-request-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAkB,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAIjE,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,OAAsB,EACtB,OAAgB,EAChB,OAAmB;IAEnB,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QAChD,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAEtC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;YAC/F,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;YACrC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;oBACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;oBACzD,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -23,7 +23,7 @@ export class EmailAlertChannelCodegen extends Codegen {
23
23
  builder.string(logicalId);
24
24
  builder.object(builder => {
25
25
  builder.string('address', resource.config.address);
26
- buildAlertChannelProps(builder, resource);
26
+ buildAlertChannelProps(builder, resource, context);
27
27
  });
28
28
  });
29
29
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"email-alert-channel-codegen.js","sourceRoot":"","sources":["../../src/constructs/email-alert-channel-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAwB,MAAM,4BAA4B,CAAA;AASzF,MAAM,SAAS,GAAG,mBAAmB,CAAA;AAErC,MAAM,OAAO,wBAAyB,SAAQ,OAAkC;IAC9E,QAAQ,CAAE,QAAmC;QAC3C,OAAO,wBAAwB,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC1D,CAAC;IAED,OAAO,CAAE,SAAiB,EAAE,QAAmC,EAAE,OAAgB;QAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAA;QAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,gCAAgC,EAAE,MAAM,EAAE;YAC1E,MAAM,EAAE,IAAI;SACb,CAAC,CAAA;QAEF,OAAO,CAAC,oBAAoB,CAC1B,QAAQ,CAAC,EAAE,EACX,GAAG,MAAM,QAAQ,EACjB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACvD,CAAA;IACH,CAAC;IAED,OAAO,CAAE,SAAiB,EAAE,QAAmC,EAAE,OAAgB;QAC/E,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE5D,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;QAEjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;YAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE;gBAChD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;oBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBACvB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;wBAElD,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;oBAC3C,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAC,CAAA;YAEH,OAAO,CAAC,MAAM,EAAE,CAAA;QAClB,CAAC,CAAC,CAAC,CAAA;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"email-alert-channel-codegen.js","sourceRoot":"","sources":["../../src/constructs/email-alert-channel-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAwB,MAAM,4BAA4B,CAAA;AASzF,MAAM,SAAS,GAAG,mBAAmB,CAAA;AAErC,MAAM,OAAO,wBAAyB,SAAQ,OAAkC;IAC9E,QAAQ,CAAE,QAAmC;QAC3C,OAAO,wBAAwB,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC1D,CAAC;IAED,OAAO,CAAE,SAAiB,EAAE,QAAmC,EAAE,OAAgB;QAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAA;QAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,gCAAgC,EAAE,MAAM,EAAE;YAC1E,MAAM,EAAE,IAAI;SACb,CAAC,CAAA;QAEF,OAAO,CAAC,oBAAoB,CAC1B,QAAQ,CAAC,EAAE,EACX,GAAG,MAAM,QAAQ,EACjB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACvD,CAAA;IACH,CAAC;IAED,OAAO,CAAE,SAAiB,EAAE,QAAmC,EAAE,OAAgB;QAC/E,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE5D,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;QAEjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;YAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE;gBAChD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;oBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBACvB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;wBAElD,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;oBACpD,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAC,CAAA;YAEH,OAAO,CAAC,MAAM,EAAE,CAAA;QAClB,CAAC,CAAC,CAAC,CAAA;IACL,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { expr, ident } from '../sourcegen/index.js';
1
+ import { expr, ident, NumberValue } from '../sourcegen/index.js';
2
2
  import { Frequency } from './frequency.js';
3
3
  export function valueForFrequency(genfile, frequency) {
4
4
  if (typeof frequency === 'number') {
@@ -6,7 +6,6 @@ export function valueForFrequency(genfile, frequency) {
6
6
  frequency,
7
7
  });
8
8
  }
9
- genfile.namedImport('Frequency', 'checkly/constructs');
10
9
  const predefined = {
11
10
  EVERY_10S: Frequency.EVERY_10S,
12
11
  EVERY_20S: Frequency.EVERY_20S,
@@ -35,10 +34,19 @@ export function valueForFrequency(genfile, frequency) {
35
34
  continue;
36
35
  }
37
36
  }
37
+ genfile.namedImport('Frequency', 'checkly/constructs');
38
38
  return expr(ident('Frequency'), builder => {
39
39
  builder.member(ident(shortcut));
40
40
  });
41
41
  }
42
+ // A minute-level frequency no constant spells prints as the plain number
43
+ // the props accept. Its offset is a scheduling jitter the backend assigns,
44
+ // never a user's value, and is dropped as it is for the constants above.
45
+ if (frequency.frequency > 0) {
46
+ return new NumberValue(frequency.frequency);
47
+ }
48
+ // A sub-minute frequency is only meaningful with its offset.
49
+ genfile.namedImport('Frequency', 'checkly/constructs');
42
50
  return expr(ident('Frequency'), builder => {
43
51
  builder.new(builder => {
44
52
  builder.number(frequency.frequency);
@@ -1 +1 @@
1
- {"version":3,"file":"frequency-codegen.js","sourceRoot":"","sources":["../../src/constructs/frequency-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAiB,KAAK,EAAS,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAS1C,MAAM,UAAU,iBAAiB,CAAE,OAAsB,EAAE,SAA4B;IACrF,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,iBAAiB,CAAC,OAAO,EAAE;YAChC,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IAEtD,MAAM,UAAU,GAAG;QACjB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAA;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,IAAI,SAAS,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;YACjD,SAAQ;QACV,CAAC;QAED,uEAAuE;QACvE,iDAAiD;QACjD,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,SAAS,CAAC,eAAe,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;gBAC7D,SAAQ;YACV,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EAAE;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YAEnC,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"frequency-codegen.js","sourceRoot":"","sources":["../../src/constructs/frequency-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAiB,KAAK,EAAE,WAAW,EAAS,MAAM,uBAAuB,CAAA;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAS1C,MAAM,UAAU,iBAAiB,CAAE,OAAsB,EAAE,SAA4B;IACrF,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,iBAAiB,CAAC,OAAO,EAAE;YAChC,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAA;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,IAAI,SAAS,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;YACjD,SAAQ;QACV,CAAC;QAED,uEAAuE;QACvE,iDAAiD;QACjD,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,SAAS,CAAC,eAAe,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;gBAC7D,SAAQ;YACV,CAAC;QACH,CAAC;QAED,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EAAE;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC7C,CAAC;IAED,6DAA6D;IAC7D,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YAEnC,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -53,10 +53,15 @@ export declare class Frequency {
53
53
  frequencyOffset?: number;
54
54
  /**
55
55
  * Creates a new frequency instance.
56
- * Use the static constants instead of creating instances directly.
56
+ * Prefer the static constants; the constructor is for a schedule none of
57
+ * them spell and for code generated from an existing check that holds
58
+ * one. The platform accepts sub-minute offsets of 10, 20 and 30 seconds,
59
+ * which the constants cover; any other value is refused on deploy.
57
60
  *
58
61
  * @param frequency The frequency in minutes, or 0 for second-based frequencies
59
- * @param frequencyOffset The frequency offset in seconds (for sub-minute frequencies)
62
+ * @param frequencyOffset The frequency offset in seconds, honoured only for
63
+ * sub-minute frequencies (frequency 0); for a minute-level frequency the
64
+ * backend assigns a scheduling offset of its own and this one is ignored
60
65
  */
61
- private constructor();
66
+ constructor(frequency: number, frequencyOffset?: number);
62
67
  }
@@ -53,10 +53,15 @@ export class Frequency {
53
53
  frequencyOffset;
54
54
  /**
55
55
  * Creates a new frequency instance.
56
- * Use the static constants instead of creating instances directly.
56
+ * Prefer the static constants; the constructor is for a schedule none of
57
+ * them spell and for code generated from an existing check that holds
58
+ * one. The platform accepts sub-minute offsets of 10, 20 and 30 seconds,
59
+ * which the constants cover; any other value is refused on deploy.
57
60
  *
58
61
  * @param frequency The frequency in minutes, or 0 for second-based frequencies
59
- * @param frequencyOffset The frequency offset in seconds (for sub-minute frequencies)
62
+ * @param frequencyOffset The frequency offset in seconds, honoured only for
63
+ * sub-minute frequencies (frequency 0); for a minute-level frequency the
64
+ * backend assigns a scheduling offset of its own and this one is ignored
60
65
  */
61
66
  constructor(frequency, frequencyOffset) {
62
67
  this.frequency = frequency;
@@ -1 +1 @@
1
- {"version":3,"file":"frequency.js","sourceRoot":"","sources":["../../src/constructs/frequency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,SAAS;IACpB,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACvC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACvC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEvC,yBAAyB;IACzB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;IAClC,0BAA0B;IAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;IAClC,0BAA0B;IAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;IAClC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IAEpC,uBAAuB;IACvB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvC,wBAAwB;IACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvC,wBAAwB;IACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvC,wBAAwB;IACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvC,yBAAyB;IACzB,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IACzC,yBAAyB;IACzB,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAEzC,mEAAmE;IACnE,SAAS,CAAQ;IACjB,wEAAwE;IACxE,eAAe,CAAS;IAExB;;;;;;OAMG;IACH,YAAqB,SAAiB,EAAE,eAAwB;QAC9D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC"}
1
+ {"version":3,"file":"frequency.js","sourceRoot":"","sources":["../../src/constructs/frequency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,SAAS;IACpB,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACvC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACvC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEvC,yBAAyB;IACzB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;IAClC,0BAA0B;IAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;IAClC,0BAA0B;IAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;IAClC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,2BAA2B;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IAEpC,uBAAuB;IACvB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvC,wBAAwB;IACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvC,wBAAwB;IACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvC,wBAAwB;IACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvC,yBAAyB;IACzB,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IACzC,yBAAyB;IACzB,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAEzC,mEAAmE;IACnE,SAAS,CAAQ;IACjB,wEAAwE;IACxE,eAAe,CAAS;IAExB;;;;;;;;;;;OAWG;IACH,YAAa,SAAiB,EAAE,eAAwB;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC"}
@@ -3,6 +3,7 @@ import { Session } from './session.js';
3
3
  import { validateResponseTimes } from './internal/common-diagnostics.js';
4
4
  import { validateGrpcAssertion } from './grpc-assertion-validation.js';
5
5
  import { responseTimeLimits } from './internal/account-features.js';
6
+ import { InvalidPropertyValueDiagnostic, RequiredPropertyDiagnostic } from './construct-diagnostics.js';
6
7
  /**
7
8
  * Creates a gRPC Monitor
8
9
  */
@@ -49,6 +50,24 @@ export class GrpcMonitor extends Monitor {
49
50
  for (const [index, assertion] of (this.request.assertions ?? []).entries()) {
50
51
  validateGrpcAssertion(diagnostics, assertion, index);
51
52
  }
53
+ const config = this.request.grpcConfig;
54
+ if (config.mode === 'HEALTH' && config.encoding === 'FLATBUFFERS') {
55
+ diagnostics.add(new InvalidPropertyValueDiagnostic('request.grpcConfig.encoding', new Error('"FLATBUFFERS" encoding cannot be used in "HEALTH" mode because gRPC health checks use Protobuf.')));
56
+ }
57
+ else if (config.encoding === 'FLATBUFFERS') {
58
+ if (!config.bfbsContent) {
59
+ diagnostics.add(new RequiredPropertyDiagnostic('request.grpcConfig.bfbsContent', new Error('A value for "bfbsContent" is required when "encoding" is "FLATBUFFERS".')));
60
+ }
61
+ if (config.serviceDefinition !== undefined) {
62
+ diagnostics.add(new InvalidPropertyValueDiagnostic('request.grpcConfig.serviceDefinition', new Error('"serviceDefinition" cannot be used when "encoding" is "FLATBUFFERS".')));
63
+ }
64
+ if (config.protoContent !== undefined) {
65
+ diagnostics.add(new InvalidPropertyValueDiagnostic('request.grpcConfig.protoContent', new Error('"protoContent" cannot be used when "encoding" is "FLATBUFFERS".')));
66
+ }
67
+ }
68
+ else if (config.bfbsContent !== undefined) {
69
+ diagnostics.add(new InvalidPropertyValueDiagnostic('request.grpcConfig.bfbsContent', new Error('"bfbsContent" can only be used when "encoding" is "FLATBUFFERS".')));
70
+ }
52
71
  }
53
72
  synthesize() {
54
73
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"grpc-monitor.js","sourceRoot":"","sources":["../../src/constructs/grpc-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAsCnE;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO;IACtC,OAAO,CAAa;IACpB,oBAAoB,CAAS;IAC7B,eAAe,CAAS;IAExB,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,IAAI,MAAM,CAAE,MAAsC;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;IAC3B,CAAC;IAED;;;;;;;OAOG;IAEH,YAAa,SAAiB,EAAE,KAAuB;QACrD,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAEvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAC5B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAA;QACtD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAA;QAE5C,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,kCAAkC,EAAE,CAAA;IAC3C,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,IAAI,CAAC,SAAS,EAAE,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,WAAwB;QACtC,MAAM,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAEjC,MAAM,qBAAqB,CAAC,WAAW,EAAE,IAAI,EAAE;YAC7C,yEAAyE;YACzE,oDAAoD;YACpD,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAC9B,2DAA2D;YAC3D,sBAAsB,EAAE,MAAM;SAC/B,CAAC,CAAA;QAEF,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3E,qBAAqB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO;YACL,GAAG,KAAK,CAAC,UAAU,EAAE;YACrB,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"grpc-monitor.js","sourceRoot":"","sources":["../../src/constructs/grpc-monitor.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ export function valueForGrpcRequest(program, genfile, context, request) {
4
4
  return object(builder => {
5
5
  builder.string('url', request.url);
6
6
  builder.number('port', request.port);
7
- if (request.ipFamily && request.ipFamily !== 'IPv4') {
7
+ if (request.ipFamily && (request.ipFamily !== 'IPv4' || context.spelledOut('request.ipFamily'))) {
8
8
  builder.string('ipFamily', request.ipFamily);
9
9
  }
10
- if (request.skipSSL) {
10
+ if (request.skipSSL != null && (request.skipSSL || context.spelledOut('request.skipSSL'))) {
11
11
  builder.boolean('skipSSL', request.skipSSL);
12
12
  }
13
13
  if (request.timeout !== undefined) {
@@ -21,15 +21,24 @@ export function valueForGrpcRequest(program, genfile, context, request) {
21
21
  if (config.tls !== undefined) {
22
22
  builder.boolean('tls', config.tls);
23
23
  }
24
- if (config.serviceDefinition) {
24
+ if (config.encoding) {
25
+ builder.string('encoding', config.encoding);
26
+ }
27
+ // API responses can contain persisted/default Protobuf-only fields on a
28
+ // FlatBuffers check. Do not generate a construct that immediately rejects
29
+ // itself just because the server returned that stale compatibility data.
30
+ if (config.encoding !== 'FLATBUFFERS' && config.serviceDefinition) {
25
31
  builder.string('serviceDefinition', config.serviceDefinition);
26
32
  }
27
33
  if (config.method) {
28
34
  builder.string('method', config.method);
29
35
  }
30
- if (config.protoContent) {
36
+ if (config.encoding !== 'FLATBUFFERS' && config.protoContent) {
31
37
  builder.string('protoContent', config.protoContent);
32
38
  }
39
+ if (config.encoding === 'FLATBUFFERS' && config.bfbsContent) {
40
+ builder.string('bfbsContent', config.bfbsContent);
41
+ }
33
42
  if (config.message) {
34
43
  builder.string('message', config.message);
35
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grpc-request-codegen.js","sourceRoot":"","sources":["../../src/constructs/grpc-request-codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grpc-request-codegen.js","sourceRoot":"","sources":["../../src/constructs/grpc-request-codegen.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,10 @@ export type GrpcMode = 'BEHAVIOR' | 'HEALTH';
14
14
  * - `PROTO_FILE` uses the inline `protoContent`.
15
15
  */
16
16
  export type GrpcServiceDefinition = 'REFLECTION' | 'PROTO_FILE';
17
+ /**
18
+ * The wire encoding used for a gRPC behavior request.
19
+ */
20
+ export type GrpcEncoding = 'PROTOBUF' | 'FLATBUFFERS';
17
21
  /**
18
22
  * A single gRPC metadata (request header) key/value pair.
19
23
  */
@@ -49,6 +53,12 @@ export interface GrpcConfig {
49
53
  * gRPC metadata (request headers) sent with the call.
50
54
  */
51
55
  metadata?: Array<GrpcMetadata>;
56
+ /**
57
+ * The wire encoding used for the request and response.
58
+ *
59
+ * @defaultValue "PROTOBUF"
60
+ */
61
+ encoding?: GrpcEncoding;
52
62
  /**
53
63
  * How the service definition is resolved in `BEHAVIOR` mode: `REFLECTION`
54
64
  * uses server reflection; `PROTO_FILE` uses the inline `protoContent`.
@@ -70,6 +80,19 @@ export interface GrpcConfig {
70
80
  * `PROTO_FILE` in `BEHAVIOR` mode.
71
81
  */
72
82
  protoContent?: string;
83
+ /**
84
+ * A base64-encoded binary FlatBuffers schema (`.bfbs`). Required when
85
+ * `encoding` is `FLATBUFFERS` and forbidden for Protobuf requests.
86
+ *
87
+ * Generate the schema with `flatc -b --schema --bfbs-builtins schema.fbs`, then load it in
88
+ * your construct without manually encoding it:
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * bfbsContent: readFileSync('schema.bfbs').toString('base64')
93
+ * ```
94
+ */
95
+ bfbsContent?: string;
73
96
  /**
74
97
  * The JSON request message sent as the gRPC call payload in `BEHAVIOR` mode.
75
98
  */
@@ -34,7 +34,8 @@ export declare class HeartbeatMonitor extends Monitor {
34
34
  * {@link https://www.checklyhq.com/docs/constructs/heartbeat-monitor/ Read more in the docs}
35
35
  */
36
36
  constructor(logicalId: string, props: HeartbeatMonitorProps);
37
+ protected validateRunLocations(): void;
37
38
  describe(): string;
38
39
  synthesize(): any | null;
39
40
  }
40
- export { HeartbeatMonitorProps as HeartbeatCheckProps, HeartbeatMonitor as HeartbeatCheck, };
41
+ export {};
@@ -40,6 +40,8 @@ export class HeartbeatMonitor extends Monitor {
40
40
  Session.registerConstruct(this);
41
41
  this.addSubscriptions();
42
42
  }
43
+ // Heartbeat monitors wait for pings instead of running anywhere.
44
+ validateRunLocations() { }
43
45
  describe() {
44
46
  return `HeartbeatMonitor:${this.logicalId}`;
45
47
  }
@@ -51,6 +53,4 @@ export class HeartbeatMonitor extends Monitor {
51
53
  };
52
54
  }
53
55
  }
54
- // Aliases for backwards compatibility.
55
- export { HeartbeatMonitor as HeartbeatCheck, };
56
56
  //# sourceMappingURL=heartbeat-monitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat-monitor.js","sourceRoot":"","sources":["../../src/constructs/heartbeat-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AA8B5C,SAAS,4BAA4B,CAAE,SAAoB;IACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9E,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;IAE7E,MAAM,qBAAqB,GAAG,GAAG,CAAA;IACjC,MAAM,kBAAkB,GAAG,EAAE,CAAA;IAE7B,IACE,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,qBAAqB;WAC3D,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,GAAG,kBAAkB,EACpE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,OAAO;IAC3C,SAAS,CAAW;IAEpB;;;;;;OAMG;IACH,YAAa,SAAiB,EAAE,KAA4B;QAC1D,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAEvB,4BAA4B,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG;YACf,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAA;QAED,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED,QAAQ;QACN,OAAO,oBAAoB,IAAI,CAAC,SAAS,EAAE,CAAA;IAC7C,CAAC;IAED,UAAU;QACR,OAAO;YACL,GAAG,KAAK,CAAC,UAAU,EAAE;YACrB,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;IACH,CAAC;CACF;AAED,uCAAuC;AACvC,OAAO,EAEL,gBAAgB,IAAI,cAAc,GACnC,CAAA"}
1
+ {"version":3,"file":"heartbeat-monitor.js","sourceRoot":"","sources":["../../src/constructs/heartbeat-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AA8B5C,SAAS,4BAA4B,CAAE,SAAoB;IACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9E,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;IAE7E,MAAM,qBAAqB,GAAG,GAAG,CAAA;IACjC,MAAM,kBAAkB,GAAG,EAAE,CAAA;IAE7B,IACE,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,qBAAqB;WAC3D,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,GAAG,kBAAkB,EACpE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,OAAO;IAC3C,SAAS,CAAW;IAEpB;;;;;;OAMG;IACH,YAAa,SAAiB,EAAE,KAA4B;QAC1D,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAEvB,4BAA4B,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG;YACf,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAA;QAED,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED,iEAAiE;IACvD,oBAAoB,KAAW,CAAC;IAE1C,QAAQ;QACN,OAAO,oBAAoB,IAAI,CAAC,SAAS,EAAE,CAAA;IAC7C,CAAC;IAED,UAAU;QACR,OAAO;YACL,GAAG,KAAK,CAAC,UAAU,EAAE;YACrB,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;IACH,CAAC;CACF"}
@@ -3,7 +3,7 @@ import { valueForIcmpAssertion } from './icmp-assertion-codegen.js';
3
3
  export function valueForIcmpRequest(program, genfile, context, request) {
4
4
  return object(builder => {
5
5
  builder.string('hostname', request.hostname);
6
- if (request.ipFamily && request.ipFamily !== 'IPv4') {
6
+ if (request.ipFamily && (request.ipFamily !== 'IPv4' || context.spelledOut('request.ipFamily'))) {
7
7
  builder.string('ipFamily', request.ipFamily);
8
8
  }
9
9
  if (request.pingCount !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"icmp-request-codegen.js","sourceRoot":"","sources":["../../src/constructs/icmp-request-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAkB,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAInE,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,OAAsB,EACtB,OAAgB,EAChB,OAAoB;IAEpB,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE5C,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpD,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;YACrC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;oBACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;oBAC1D,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"icmp-request-codegen.js","sourceRoot":"","sources":["../../src/constructs/icmp-request-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAkB,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAInE,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,OAAsB,EACtB,OAAgB,EAChB,OAAoB;IAEpB,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE5C,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;YAChG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;YACrC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;oBACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;oBAC1D,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -6,7 +6,7 @@ export interface IncidentioAlertChannelResource extends WebhookAlertChannelResou
6
6
  };
7
7
  }
8
8
  export declare class IncidentioAlertChannelCodegen extends Codegen<IncidentioAlertChannelResource> {
9
- validateSafety(resource: IncidentioAlertChannelResource): void;
9
+ validateSafety(resource: IncidentioAlertChannelResource, context?: Context): void;
10
10
  describe(resource: IncidentioAlertChannelResource): string;
11
11
  prepare(logicalId: string, resource: IncidentioAlertChannelResource, context: Context): void;
12
12
  gencode(logicalId: string, resource: IncidentioAlertChannelResource, context: Context): void;
@@ -2,11 +2,15 @@ import { Codegen, ImportSafetyViolation } from './internal/codegen/index.js';
2
2
  import { decl, expr, ident } from '../sourcegen/index.js';
3
3
  import { buildAlertChannelProps } from './alert-channel-codegen.js';
4
4
  import { IncidentioAlertChannel } from './incidentio-alert-channel.js';
5
- function apiKeyFromHeaders(headers) {
5
+ function apiKeyFromHeaders(headers, context) {
6
6
  for (const header of headers) {
7
7
  if (header.key.toLocaleLowerCase() !== 'authorization') {
8
8
  continue;
9
9
  }
10
+ // A masked header holds no key to extract; the mask stands in for it.
11
+ if (context.isMasked(header.value)) {
12
+ return header.value;
13
+ }
10
14
  if (!header.value.startsWith('Bearer ')) {
11
15
  continue;
12
16
  }
@@ -15,7 +19,7 @@ function apiKeyFromHeaders(headers) {
15
19
  }
16
20
  const construct = 'IncidentioAlertChannel';
17
21
  export class IncidentioAlertChannelCodegen extends Codegen {
18
- validateSafety(resource) {
22
+ validateSafety(resource, context) {
19
23
  const { config } = resource;
20
24
  if (config.method !== 'POST') {
21
25
  throw new ImportSafetyViolation(`Unsupported value for property 'method' (expected 'POST')`);
@@ -32,7 +36,9 @@ export class IncidentioAlertChannelCodegen extends Codegen {
32
36
  if (config.queryParameters !== undefined && config.queryParameters.length !== 0) {
33
37
  throw new ImportSafetyViolation(`Unsupported value for property 'queryParameters' (expected no value or an empty array)`);
34
38
  }
35
- if (config.webhookSecret) {
39
+ // The preview masks this field even when it is null, so a masked value
40
+ // says nothing about whether a secret is set.
41
+ if (config.webhookSecret && !context?.isMasked(config.webhookSecret)) {
36
42
  throw new ImportSafetyViolation(`Unsupported value for property 'webhookSecret' (expected no value)`);
37
43
  }
38
44
  }
@@ -41,7 +47,7 @@ export class IncidentioAlertChannelCodegen extends Codegen {
41
47
  return `Incident.io Alert Channel: ${resource.config.name}`;
42
48
  }
43
49
  prepare(logicalId, resource, context) {
44
- this.validateSafety(resource);
50
+ this.validateSafety(resource, context);
45
51
  const { name } = resource.config;
46
52
  const filename = context.filePath('resources/alert-channels/incident-io', name, {
47
53
  unique: true,
@@ -49,7 +55,7 @@ export class IncidentioAlertChannelCodegen extends Codegen {
49
55
  context.registerAlertChannel(resource.id, `${name} incidentio`, this.program.generatedConstructFile(filename.fullPath));
50
56
  }
51
57
  gencode(logicalId, resource, context) {
52
- this.validateSafety(resource);
58
+ this.validateSafety(resource, context);
53
59
  const { id, file } = context.lookupAlertChannel(resource.id);
54
60
  file.namedImport(construct, 'checkly/constructs');
55
61
  const { config } = resource;
@@ -61,7 +67,7 @@ export class IncidentioAlertChannelCodegen extends Codegen {
61
67
  builder.string('name', config.name);
62
68
  builder.string('url', config.url);
63
69
  if (config.headers) {
64
- const apiKey = apiKeyFromHeaders(config.headers);
70
+ const apiKey = apiKeyFromHeaders(config.headers, context);
65
71
  if (apiKey) {
66
72
  builder.string('apiKey', apiKey);
67
73
  }
@@ -70,11 +76,11 @@ export class IncidentioAlertChannelCodegen extends Codegen {
70
76
  }
71
77
  }
72
78
  if (config.template) {
73
- if (config.template !== IncidentioAlertChannel.DEFAULT_PAYLOAD) {
79
+ if (config.template !== IncidentioAlertChannel.DEFAULT_PAYLOAD || context.spelledOut('payload')) {
74
80
  builder.string('payload', config.template);
75
81
  }
76
82
  }
77
- buildAlertChannelProps(builder, resource);
83
+ buildAlertChannelProps(builder, resource, context);
78
84
  });
79
85
  });
80
86
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"incidentio-alert-channel-codegen.js","sourceRoot":"","sources":["../../src/constructs/incidentio-alert-channel-codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"incidentio-alert-channel-codegen.js","sourceRoot":"","sources":["../../src/constructs/incidentio-alert-channel-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAGnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAQtE,SAAS,iBAAiB,CAAE,OAAqB,EAAE,OAAgB;IACjE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,eAAe,EAAE,CAAC;YACvD,SAAQ;QACV,CAAC;QAED,sEAAsE;QACtE,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,KAAK,CAAA;QACrB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,SAAQ;QACV,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,wBAAwB,CAAA;AAE1C,MAAM,OAAO,6BAA8B,SAAQ,OAAuC;IACxF,cAAc,CAAE,QAAwC,EAAE,OAAiB;QACzE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;QAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,qBAAqB,CAAC,2DAA2D,CAAC,CAAA;QAC9F,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,qBAAqB,CAAC,qFAAqF,CAAC,CAAA;QACxH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,qBAAqB,CAAC,qFAAqF,CAAC,CAAA;QACxH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;YAC5D,MAAM,IAAI,qBAAqB,CAAC,qFAAqF,CAAC,CAAA;QACxH,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChF,MAAM,IAAI,qBAAqB,CAAC,wFAAwF,CAAC,CAAA;QAC3H,CAAC;QAED,uEAAuE;QACvE,8CAA8C;QAC9C,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,qBAAqB,CAAC,oEAAoE,CAAC,CAAA;QACvG,CAAC;IACH,CAAC;IAED,QAAQ,CAAE,QAAwC;QAChD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAE7B,OAAO,8BAA8B,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7D,CAAC;IAED,OAAO,CAAE,SAAiB,EAAE,QAAwC,EAAE,OAAgB;QACpF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAEtC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAA;QAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,sCAAsC,EAAE,IAAI,EAAE;YAC9E,MAAM,EAAE,IAAI;SACb,CAAC,CAAA;QAEF,OAAO,CAAC,oBAAoB,CAC1B,QAAQ,CAAC,EAAE,EACX,GAAG,IAAI,aAAa,EACpB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACvD,CAAA;IACH,CAAC;IAED,OAAO,CAAE,SAAiB,EAAE,QAAwC,EAAE,OAAgB;QACpF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAEtC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE5D,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;QAEjD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;QAE3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;YAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE;gBAChD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;oBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;wBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;wBAEjC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;4BACnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;4BACzD,IAAI,MAAM,EAAE,CAAC;gCACX,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;4BAClC,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;4BAC/E,CAAC;wBACH,CAAC;wBAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;4BACpB,IAAI,MAAM,CAAC,QAAQ,KAAK,sBAAsB,CAAC,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gCAChG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;4BAC5C,CAAC;wBACH,CAAC;wBAED,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;oBACpD,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAC,CAAA;YAEH,OAAO,CAAC,MAAM,EAAE,CAAA;QAClB,CAAC,CAAC,CAAC,CAAA;IACL,CAAC;CACF"}
@@ -20,6 +20,7 @@ export * from './http-request.js';
20
20
  export * from './query-param.js';
21
21
  export * from './frequency.js';
22
22
  export * from './maintenance-window.js';
23
+ export { KNOWN_TIME_ZONES, type KnownTimeZone, type TimeZone } from './time-zone.js';
23
24
  export * from './alert-channel.js';
24
25
  export * from './private-location.js';
25
26
  export * from './private-location-check-assignment.js';
@@ -63,4 +64,3 @@ export * from './ssl-request.js';
63
64
  export * from './traceroute-monitor.js';
64
65
  export * from './traceroute-assertion.js';
65
66
  export * from './traceroute-request.js';
66
- export * from './agentic-check.js';