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.
- package/dist/ai-context/context.js +1 -0
- package/dist/ai-context/context.js.map +1 -1
- package/dist/ai-context/onboarding-boilerplate/checkly-config-template.ts +2 -0
- package/dist/ai-context/public-skills/checkly/SKILL.md +18 -5
- package/dist/ai-context/skills-command/references/communicate.md +6 -3
- package/dist/ai-context/skills-command/references/configure-api-checks.md +1 -9
- package/dist/ai-context/skills-command/references/configure-browser-checks.md +1 -8
- package/dist/ai-context/skills-command/references/configure-check-groups.md +1 -0
- package/dist/ai-context/skills-command/references/configure-dns-monitors.md +1 -9
- package/dist/ai-context/skills-command/references/configure-grpc-monitors.md +24 -0
- package/dist/ai-context/skills-command/references/configure-heartbeat-monitors.md +1 -9
- package/dist/ai-context/skills-command/references/configure-icmp-monitors.md +1 -9
- package/dist/ai-context/skills-command/references/configure-multistep-checks.md +1 -9
- package/dist/ai-context/skills-command/references/configure-playwright-checks.md +1 -1
- package/dist/ai-context/skills-command/references/configure-supporting-constructs.md +6 -2
- package/dist/ai-context/skills-command/references/configure-tcp-monitors.md +1 -10
- package/dist/ai-context/skills-command/references/configure-url-monitors.md +1 -10
- package/dist/ai-context/skills-command/references/configure.md +16 -5
- package/dist/ai-context/skills-command/references/initialize.md +11 -3
- package/dist/ai-context/skills-command/references/investigate-checks.md +1 -1
- package/dist/auth/api-key.d.ts +24 -0
- package/dist/auth/api-key.js +104 -0
- package/dist/auth/api-key.js.map +1 -0
- package/dist/auth/device-flow.d.ts +57 -0
- package/dist/auth/device-flow.js +221 -0
- package/dist/auth/device-flow.js.map +1 -0
- package/dist/auth/index.d.ts +6 -6
- package/dist/auth/index.js +64 -64
- package/dist/auth/index.js.map +1 -1
- package/dist/commands/api.js +43 -10
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/authCommand.d.ts +2 -0
- package/dist/commands/authCommand.js +77 -7
- package/dist/commands/authCommand.js.map +1 -1
- package/dist/commands/debug/parse-project.d.ts +1 -0
- package/dist/commands/debug/parse-project.js +5 -2
- package/dist/commands/debug/parse-project.js.map +1 -1
- package/dist/commands/deploy.d.ts +7 -1
- package/dist/commands/deploy.js +627 -271
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/import/plan.js +18 -4
- package/dist/commands/import/plan.js.map +1 -1
- package/dist/commands/init.js +29 -13
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +18 -2
- package/dist/commands/login.js +681 -48
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +7 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/pw-test.js +3 -2
- package/dist/commands/pw-test.js.map +1 -1
- package/dist/commands/switch.js +23 -10
- package/dist/commands/switch.js.map +1 -1
- package/dist/commands/test.js +16 -17
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/trigger.js +4 -3
- package/dist/commands/trigger.js.map +1 -1
- package/dist/commands/validate.js +1 -0
- package/dist/commands/validate.js.map +1 -1
- package/dist/constants.d.ts +1 -2
- package/dist/constants.js +0 -1
- package/dist/constants.js.map +1 -1
- package/dist/constructs/alert-channel-codegen.d.ts +6 -1
- package/dist/constructs/alert-channel-codegen.js +12 -6
- package/dist/constructs/alert-channel-codegen.js.map +1 -1
- package/dist/constructs/alert-escalation-policy-codegen.d.ts +7 -0
- package/dist/constructs/alert-escalation-policy-codegen.js +25 -8
- package/dist/constructs/alert-escalation-policy-codegen.js.map +1 -1
- package/dist/constructs/api-assertion.d.ts +0 -2
- package/dist/constructs/api-assertion.js +0 -4
- package/dist/constructs/api-assertion.js.map +1 -1
- package/dist/constructs/api-check-codegen.js +1 -1
- package/dist/constructs/api-check-codegen.js.map +1 -1
- package/dist/constructs/api-check.d.ts +4 -22
- package/dist/constructs/api-check.js +15 -17
- package/dist/constructs/api-check.js.map +1 -1
- package/dist/constructs/api-request-codegen.js +10 -8
- package/dist/constructs/api-request-codegen.js.map +1 -1
- package/dist/constructs/browser-check-bundle.d.ts +19 -13
- package/dist/constructs/browser-check-bundle.js +5 -1
- package/dist/constructs/browser-check-bundle.js.map +1 -1
- package/dist/constructs/browser-check.d.ts +1 -4
- package/dist/constructs/browser-check.js +1 -1
- package/dist/constructs/browser-check.js.map +1 -1
- package/dist/constructs/check-codegen.d.ts +39 -14
- package/dist/constructs/check-codegen.js +101 -23
- package/dist/constructs/check-codegen.js.map +1 -1
- package/dist/constructs/check-group-codegen.js +23 -9
- package/dist/constructs/check-group-codegen.js.map +1 -1
- package/dist/constructs/check-group-v1.d.ts +19 -14
- package/dist/constructs/check-group-v1.js +39 -14
- package/dist/constructs/check-group-v1.js.map +1 -1
- package/dist/constructs/check-group-v2.d.ts +0 -20
- package/dist/constructs/check-group-v2.js +0 -4
- package/dist/constructs/check-group-v2.js.map +1 -1
- package/dist/constructs/check.d.ts +45 -32
- package/dist/constructs/check.js +78 -17
- package/dist/constructs/check.js.map +1 -1
- package/dist/constructs/construct-codegen.d.ts +1 -2
- package/dist/constructs/construct-diagnostics.d.ts +3 -0
- package/dist/constructs/construct-diagnostics.js +11 -0
- package/dist/constructs/construct-diagnostics.js.map +1 -1
- package/dist/constructs/construct.d.ts +25 -4
- package/dist/constructs/construct.js +41 -5
- package/dist/constructs/construct.js.map +1 -1
- package/dist/constructs/dns-request-codegen.js +1 -1
- package/dist/constructs/dns-request-codegen.js.map +1 -1
- package/dist/constructs/email-alert-channel-codegen.js +1 -1
- package/dist/constructs/email-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/frequency-codegen.js +10 -2
- package/dist/constructs/frequency-codegen.js.map +1 -1
- package/dist/constructs/frequency.d.ts +8 -3
- package/dist/constructs/frequency.js +7 -2
- package/dist/constructs/frequency.js.map +1 -1
- package/dist/constructs/grpc-monitor.js +19 -0
- package/dist/constructs/grpc-monitor.js.map +1 -1
- package/dist/constructs/grpc-request-codegen.js +13 -4
- package/dist/constructs/grpc-request-codegen.js.map +1 -1
- package/dist/constructs/grpc-request.d.ts +23 -0
- package/dist/constructs/heartbeat-monitor.d.ts +2 -1
- package/dist/constructs/heartbeat-monitor.js +2 -2
- package/dist/constructs/heartbeat-monitor.js.map +1 -1
- package/dist/constructs/icmp-request-codegen.js +1 -1
- package/dist/constructs/icmp-request-codegen.js.map +1 -1
- package/dist/constructs/incidentio-alert-channel-codegen.d.ts +1 -1
- package/dist/constructs/incidentio-alert-channel-codegen.js +14 -8
- package/dist/constructs/incidentio-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/index.d.ts +1 -1
- package/dist/constructs/index.js +1 -1
- package/dist/constructs/index.js.map +1 -1
- package/dist/constructs/internal/assertion-validation.js +1 -2
- package/dist/constructs/internal/assertion-validation.js.map +1 -1
- package/dist/constructs/internal/codegen/context.d.ts +73 -6
- package/dist/constructs/internal/codegen/context.js +78 -6
- package/dist/constructs/internal/codegen/context.js.map +1 -1
- package/dist/constructs/internal/codegen/index.d.ts +3 -1
- package/dist/constructs/internal/codegen/index.js +2 -1
- package/dist/constructs/internal/codegen/index.js.map +1 -1
- package/dist/constructs/internal/codegen/render.d.ts +68 -0
- package/dist/constructs/internal/codegen/render.js +75 -0
- package/dist/constructs/internal/codegen/render.js.map +1 -0
- package/dist/constructs/internal/common-diagnostics.d.ts +1 -2
- package/dist/constructs/internal/common-diagnostics.js +6 -14
- package/dist/constructs/internal/common-diagnostics.js.map +1 -1
- package/dist/constructs/internal/declaring-file.d.ts +39 -0
- package/dist/constructs/internal/declaring-file.js +139 -0
- package/dist/constructs/internal/declaring-file.js.map +1 -0
- package/dist/constructs/internal/retry-strategy-defaults.d.ts +13 -0
- package/dist/constructs/internal/retry-strategy-defaults.js +14 -0
- package/dist/constructs/internal/retry-strategy-defaults.js.map +1 -0
- package/dist/constructs/key-value-pair-codegen.d.ts +6 -1
- package/dist/constructs/key-value-pair-codegen.js +24 -3
- package/dist/constructs/key-value-pair-codegen.js.map +1 -1
- package/dist/constructs/maintenance-window-codegen.d.ts +7 -0
- package/dist/constructs/maintenance-window-codegen.js +36 -19
- package/dist/constructs/maintenance-window-codegen.js.map +1 -1
- package/dist/constructs/maintenance-window.d.ts +35 -3
- package/dist/constructs/maintenance-window.js +35 -1
- package/dist/constructs/maintenance-window.js.map +1 -1
- package/dist/constructs/monitor.d.ts +1 -1
- package/dist/constructs/msteams-alert-channel-codegen.d.ts +1 -1
- package/dist/constructs/msteams-alert-channel-codegen.js +8 -18
- package/dist/constructs/msteams-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/opsgenie-alert-channel-codegen.js +1 -1
- package/dist/constructs/opsgenie-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/pagerduty-alert-channel-codegen.js +1 -1
- package/dist/constructs/pagerduty-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/phone-call-alert-channel-codegen.js +1 -1
- package/dist/constructs/phone-call-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/playwright-check-bundle.d.ts +7 -1
- package/dist/constructs/playwright-check-bundle.js +3 -0
- package/dist/constructs/playwright-check-bundle.js.map +1 -1
- package/dist/constructs/playwright-check-codegen.d.ts +85 -0
- package/dist/constructs/playwright-check-codegen.js +212 -0
- package/dist/constructs/playwright-check-codegen.js.map +1 -0
- package/dist/constructs/playwright-check.d.ts +14 -24
- package/dist/constructs/playwright-check.js +16 -52
- package/dist/constructs/playwright-check.js.map +1 -1
- package/dist/constructs/retry-strategy-codegen.d.ts +7 -1
- package/dist/constructs/retry-strategy-codegen.js +41 -32
- package/dist/constructs/retry-strategy-codegen.js.map +1 -1
- package/dist/constructs/retry-strategy.d.ts +0 -4
- package/dist/constructs/retry-strategy.js +5 -8
- package/dist/constructs/retry-strategy.js.map +1 -1
- package/dist/constructs/session.d.ts +26 -1
- package/dist/constructs/session.js +33 -2
- package/dist/constructs/session.js.map +1 -1
- package/dist/constructs/slack-alert-channel-codegen.js +1 -1
- package/dist/constructs/slack-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/slack-app-alert-channel-codegen.js +1 -1
- package/dist/constructs/slack-app-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/sms-alert-channel-codegen.js +1 -1
- package/dist/constructs/sms-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/ssl-request-codegen.js +4 -3
- package/dist/constructs/ssl-request-codegen.js.map +1 -1
- package/dist/constructs/status-page-v3-automation-rule-codegen.js +5 -4
- package/dist/constructs/status-page-v3-automation-rule-codegen.js.map +1 -1
- package/dist/constructs/status-page-v3-codegen.js +3 -2
- package/dist/constructs/status-page-v3-codegen.js.map +1 -1
- package/dist/constructs/status-page-v3-component-codegen.js +8 -7
- package/dist/constructs/status-page-v3-component-codegen.js.map +1 -1
- package/dist/constructs/tcp-monitor-codegen.js +3 -2
- package/dist/constructs/tcp-monitor-codegen.js.map +1 -1
- package/dist/constructs/tcp-monitor.d.ts +4 -3
- package/dist/constructs/tcp-monitor.js +3 -2
- package/dist/constructs/tcp-monitor.js.map +1 -1
- package/dist/constructs/telegram-alert-channel-codegen.d.ts +1 -1
- package/dist/constructs/telegram-alert-channel-codegen.js +14 -8
- package/dist/constructs/telegram-alert-channel-codegen.js.map +1 -1
- package/dist/constructs/time-zone.d.ts +24 -0
- package/dist/constructs/time-zone.js +455 -0
- package/dist/constructs/time-zone.js.map +1 -0
- package/dist/constructs/traceroute-request-codegen.js +2 -2
- package/dist/constructs/traceroute-request-codegen.js.map +1 -1
- package/dist/constructs/url-monitor-codegen.js +1 -1
- package/dist/constructs/url-monitor-codegen.js.map +1 -1
- package/dist/constructs/url-monitor.d.ts +3 -2
- package/dist/constructs/url-monitor.js +3 -0
- package/dist/constructs/url-monitor.js.map +1 -1
- package/dist/constructs/url-request-codegen.js +4 -3
- package/dist/constructs/url-request-codegen.js.map +1 -1
- package/dist/constructs/webhook-alert-channel-codegen.js +3 -3
- package/dist/constructs/webhook-alert-channel-codegen.js.map +1 -1
- package/dist/formatters/check-result-detail.js +0 -185
- package/dist/formatters/check-result-detail.js.map +1 -1
- package/dist/helpers/activate-account.d.ts +14 -0
- package/dist/helpers/activate-account.js +25 -0
- package/dist/helpers/activate-account.js.map +1 -0
- package/dist/helpers/cli-mode.d.ts +18 -0
- package/dist/helpers/cli-mode.js +41 -2
- package/dist/helpers/cli-mode.js.map +1 -1
- package/dist/helpers/command-preview.d.ts +44 -0
- package/dist/helpers/command-preview.js +29 -9
- package/dist/helpers/command-preview.js.map +1 -1
- package/dist/helpers/flags.d.ts +10 -0
- package/dist/helpers/flags.js +17 -0
- package/dist/helpers/flags.js.map +1 -1
- package/dist/helpers/onboarding/boilerplate.js +13 -1
- package/dist/helpers/onboarding/boilerplate.js.map +1 -1
- package/dist/helpers/onboarding/index.d.ts +1 -1
- package/dist/helpers/onboarding/index.js +1 -1
- package/dist/helpers/onboarding/index.js.map +1 -1
- package/dist/helpers/onboarding/messages.d.ts +6 -0
- package/dist/helpers/onboarding/messages.js +14 -0
- package/dist/helpers/onboarding/messages.js.map +1 -1
- package/dist/helpers/onboarding/skill-install.js +2 -2
- package/dist/helpers/onboarding/skill-install.js.map +1 -1
- package/dist/helpers/wrap.js +1 -1
- package/dist/helpers/wrap.js.map +1 -1
- package/dist/reporters/abstract-list.js +11 -2
- package/dist/reporters/abstract-list.js.map +1 -1
- package/dist/reporters/github.js +3 -2
- package/dist/reporters/github.js.map +1 -1
- package/dist/reporters/util.d.ts +1 -0
- package/dist/reporters/util.js +5 -58
- package/dist/reporters/util.js.map +1 -1
- package/dist/rest/analytics.js +0 -4
- package/dist/rest/analytics.js.map +1 -1
- package/dist/rest/api.d.ts +8 -1
- package/dist/rest/api.js +21 -3
- package/dist/rest/api.js.map +1 -1
- package/dist/rest/check-results.d.ts +1 -50
- package/dist/rest/check-results.js.map +1 -1
- package/dist/rest/checkly-storage.d.ts +6 -1
- package/dist/rest/checkly-storage.js +13 -2
- package/dist/rest/checkly-storage.js.map +1 -1
- package/dist/rest/errors.d.ts +13 -0
- package/dist/rest/errors.js +5 -1
- package/dist/rest/errors.js.map +1 -1
- package/dist/rest/projects.d.ts +254 -4
- package/dist/rest/projects.js +184 -12
- package/dist/rest/projects.js.map +1 -1
- package/dist/services/abstract-check-runner.d.ts +11 -0
- package/dist/services/abstract-check-runner.js +98 -46
- package/dist/services/abstract-check-runner.js.map +1 -1
- package/dist/services/check-parser/bundler.d.ts +26 -0
- package/dist/services/check-parser/bundler.js +81 -7
- package/dist/services/check-parser/bundler.js.map +1 -1
- package/dist/services/check-parser/cache-hash.d.ts +1 -4
- package/dist/services/check-parser/cache-hash.js.map +1 -1
- package/dist/services/checkly-config-codegen.js +1 -4
- package/dist/services/checkly-config-codegen.js.map +1 -1
- package/dist/services/checkly-config-loader.d.ts +7 -33
- package/dist/services/checkly-config-loader.js +50 -47
- package/dist/services/checkly-config-loader.js.map +1 -1
- package/dist/services/config.d.ts +2 -0
- package/dist/services/config.js +14 -0
- package/dist/services/config.js.map +1 -1
- package/dist/services/content-hash.d.ts +14 -0
- package/dist/services/content-hash.js +22 -0
- package/dist/services/content-hash.js.map +1 -0
- package/dist/services/deploy-diff/diff-lines.d.ts +38 -0
- package/dist/services/deploy-diff/diff-lines.js +191 -0
- package/dist/services/deploy-diff/diff-lines.js.map +1 -0
- package/dist/services/deploy-diff/import-shape.d.ts +171 -0
- package/dist/services/deploy-diff/import-shape.js +633 -0
- package/dist/services/deploy-diff/import-shape.js.map +1 -0
- package/dist/services/deploy-diff/legacy-payload.d.ts +22 -0
- package/dist/services/deploy-diff/legacy-payload.js +51 -0
- package/dist/services/deploy-diff/legacy-payload.js.map +1 -0
- package/dist/services/deploy-diff/plan-summary.d.ts +37 -0
- package/dist/services/deploy-diff/plan-summary.js +154 -0
- package/dist/services/deploy-diff/plan-summary.js.map +1 -0
- package/dist/services/deploy-diff/preview-output.d.ts +61 -0
- package/dist/services/deploy-diff/preview-output.js +394 -0
- package/dist/services/deploy-diff/preview-output.js.map +1 -0
- package/dist/services/deploy-diff/render.d.ts +53 -0
- package/dist/services/deploy-diff/render.js +317 -0
- package/dist/services/deploy-diff/render.js.map +1 -0
- package/dist/services/deploy-diff/shape-changes.d.ts +2 -0
- package/dist/services/deploy-diff/shape-changes.js +35 -0
- package/dist/services/deploy-diff/shape-changes.js.map +1 -0
- package/dist/services/deploy-diff/source-index.d.ts +18 -0
- package/dist/services/deploy-diff/source-index.js +48 -0
- package/dist/services/deploy-diff/source-index.js.map +1 -0
- package/dist/services/deploy-diff/variable-names.d.ts +30 -0
- package/dist/services/deploy-diff/variable-names.js +64 -0
- package/dist/services/deploy-diff/variable-names.js.map +1 -0
- package/dist/services/project-parser.d.ts +5 -0
- package/dist/services/project-parser.js +25 -13
- package/dist/services/project-parser.js.map +1 -1
- package/dist/services/snapshot-service.d.ts +25 -8
- package/dist/services/snapshot-service.js +46 -4
- package/dist/services/snapshot-service.js.map +1 -1
- package/dist/services/test-filters.d.ts +18 -0
- package/dist/services/test-filters.js +10 -0
- package/dist/services/test-filters.js.map +1 -1
- package/dist/services/test-runner.js +7 -3
- package/dist/services/test-runner.js.map +1 -1
- package/dist/services/test-session-cancel.js +1 -1
- package/dist/services/test-session-cancel.js.map +1 -1
- package/dist/services/util.d.ts +17 -2
- package/dist/services/util.js +118 -11
- package/dist/services/util.js.map +1 -1
- package/dist/services/write-back/apply-edits.d.ts +29 -0
- package/dist/services/write-back/apply-edits.js +255 -0
- package/dist/services/write-back/apply-edits.js.map +1 -0
- package/dist/services/write-back/helper-edit.d.ts +135 -0
- package/dist/services/write-back/helper-edit.js +343 -0
- package/dist/services/write-back/helper-edit.js.map +1 -0
- package/dist/services/write-back/imports.d.ts +30 -0
- package/dist/services/write-back/imports.js +82 -0
- package/dist/services/write-back/imports.js.map +1 -0
- package/dist/services/write-back/literal-edit.d.ts +183 -0
- package/dist/services/write-back/literal-edit.js +359 -0
- package/dist/services/write-back/literal-edit.js.map +1 -0
- package/dist/services/write-back/output.d.ts +26 -0
- package/dist/services/write-back/output.js +110 -0
- package/dist/services/write-back/output.js.map +1 -0
- package/dist/services/write-back/plan.d.ts +173 -0
- package/dist/services/write-back/plan.js +968 -0
- package/dist/services/write-back/plan.js.map +1 -0
- package/dist/services/write-back/source-file.d.ts +118 -0
- package/dist/services/write-back/source-file.js +432 -0
- package/dist/services/write-back/source-file.js.map +1 -0
- package/dist/sourcegen/index.d.ts +1 -1
- package/dist/sourcegen/index.js +1 -1
- package/dist/sourcegen/index.js.map +1 -1
- package/dist/sourcegen/program.d.ts +19 -1
- package/dist/sourcegen/program.js +32 -7
- package/dist/sourcegen/program.js.map +1 -1
- package/oclif.manifest.json +676 -635
- package/package.json +13 -13
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +0 -13
- package/dist/commands/rules.js.map +0 -1
- package/dist/constructs/agentic-check-codegen.d.ts +0 -22
- package/dist/constructs/agentic-check-codegen.js +0 -59
- package/dist/constructs/agentic-check-codegen.js.map +0 -1
- package/dist/constructs/agentic-check.d.ts +0 -237
- package/dist/constructs/agentic-check.js +0 -100
- 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
|
-
/**
|
|
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
|
|
86
|
-
*
|
|
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
|
|
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
|
-
/**
|
|
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.
|
|
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
|
|
71
|
-
*
|
|
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
|
-
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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
|
-
*
|
|
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
|
|
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: 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
|
-
*
|
|
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
|
|
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
|
|
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;
|
|
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.
|
|
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":"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,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAClC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;
|
|
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 {
|
|
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
|
|
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;
|
|
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
|
-
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"incidentio-alert-channel-codegen.js","sourceRoot":"","sources":["../../src/constructs/incidentio-alert-channel-codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -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';
|