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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/services/write-back/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { TSESTree } from '@typescript-eslint/typescript-estree';
|
|
2
|
+
import type { Construct } from '../../constructs/construct.js';
|
|
3
|
+
/** Why a file, a construct or a value cannot be edited; the message is shown to the user as the reason it was skipped. */
|
|
4
|
+
export declare class WriteBackSkipped extends Error {
|
|
5
|
+
}
|
|
6
|
+
export type Node = TSESTree.Node;
|
|
7
|
+
/** A token or a comment of the parsed file: only its kind and where it sits are read. */
|
|
8
|
+
export interface SourceToken {
|
|
9
|
+
kind: 'token' | 'comment';
|
|
10
|
+
/** The token's text; empty for a comment. */
|
|
11
|
+
value: string;
|
|
12
|
+
range: [number, number];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A parsed file with its tokens and comments, which the splicer needs to
|
|
16
|
+
* tell a comma of the source from one inside a comment.
|
|
17
|
+
*/
|
|
18
|
+
export interface ParsedSource {
|
|
19
|
+
/** The text the program was parsed from; every range below indexes it. */
|
|
20
|
+
text: string;
|
|
21
|
+
program: TSESTree.Program;
|
|
22
|
+
tokens: SourceToken[];
|
|
23
|
+
}
|
|
24
|
+
/** A replacement of the bytes `[start, end)` of the parsed text. */
|
|
25
|
+
export interface Splice {
|
|
26
|
+
start: number;
|
|
27
|
+
end: number;
|
|
28
|
+
text: string;
|
|
29
|
+
}
|
|
30
|
+
/** The tokens and comments lying within `[start, end)`. */
|
|
31
|
+
export declare function tokensBetween(source: ParsedSource, start: number, end: number): SourceToken[];
|
|
32
|
+
/** The one module that exports the constructs and their helpers by name. */
|
|
33
|
+
export declare const CONSTRUCTS_MODULE = "checkly/constructs";
|
|
34
|
+
export declare function parseSource(filePath: string, text: string): ParsedSource;
|
|
35
|
+
/** Every node below (and including) `root`, in source order. Only object-valued keys are followed, which covers every ESTree child slot. */
|
|
36
|
+
export declare function walk(root: Node): Generator<Node>;
|
|
37
|
+
/** The string a literal argument spells, for a plain string literal or a template with no `${}` in it. */
|
|
38
|
+
export declare function stringOf(node: Node | null | undefined): string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* The local names this file binds to the given exported names of a checkly
|
|
41
|
+
* package: `import { ApiCheck } from 'checkly/constructs'`,
|
|
42
|
+
* `import { ApiCheck as Api } from 'checkly'`, and the top-level
|
|
43
|
+
* `const { ApiCheck } = require('checkly/constructs')` (with or without a
|
|
44
|
+
* rename). Anything bound another way — a namespace import, a re-export from
|
|
45
|
+
* the user's own module, a wrapper class — is not a construct call this
|
|
46
|
+
* module can recognise, which keeps it from editing the options of a class
|
|
47
|
+
* that merely shares the name. A type-only import (`import type`, or a
|
|
48
|
+
* `type` specifier) binds nothing at runtime and is not a binding here.
|
|
49
|
+
* Scope is not tracked: a local that shadows the import inside a function
|
|
50
|
+
* is taken for it, which the logical id and the later read-back of the edit
|
|
51
|
+
* bound.
|
|
52
|
+
*/
|
|
53
|
+
export declare function checklyBindings(program: TSESTree.Program, exportedNames: ReadonlySet<string>): Set<string>;
|
|
54
|
+
/** The one local name the file binds an exported name to, if any (the first when several). */
|
|
55
|
+
export declare function localBinding(program: TSESTree.Program, name: string): string | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* The splice that appends `members` to a multi-line list after its last
|
|
58
|
+
* member: one per line at `indentation`, after the line the last member
|
|
59
|
+
* (or its comma) ends on, so a comment on that line stays with that
|
|
60
|
+
* member — unless a comment runs on past that line end, in which case they
|
|
61
|
+
* go right after the member's comma rather than into the comment. The
|
|
62
|
+
* trailing comma is kept when the list has one, and added to the last
|
|
63
|
+
* member when it has none; `close` is the offset of the closing bracket.
|
|
64
|
+
*/
|
|
65
|
+
export declare function appendAfterLast(source: ParsedSource, last: Node, close: number, members: readonly string[], indentation: string, lineEnding: string): Splice;
|
|
66
|
+
export declare function isChecklyRequire(node: Node | null | undefined): boolean;
|
|
67
|
+
/** A name that can be written as an identifier: a variable, or an object key without quotes. */
|
|
68
|
+
export declare const IDENTIFIER: RegExp;
|
|
69
|
+
/** The names `checkly/constructs` exports for a construct's class; empty for a class of the user's own. */
|
|
70
|
+
export declare function exportedNamesOf(construct: Construct): Set<string>;
|
|
71
|
+
/**
|
|
72
|
+
* The options object literal of the one `new <Class>('<logicalId>', { … })`
|
|
73
|
+
* in the file, where `<Class>` is bound to one of `exportedNames` from a
|
|
74
|
+
* checkly package.
|
|
75
|
+
*
|
|
76
|
+
* @throws WriteBackSkipped when the file has no such call, several of them,
|
|
77
|
+
* or its options are not a plain object literal (a variable, a spread, a call,
|
|
78
|
+
* a TypeScript `as`/`satisfies` wrapper): anything the rewriter cannot edit
|
|
79
|
+
* without guessing what the code means.
|
|
80
|
+
*/
|
|
81
|
+
export declare function findConstructOptions({ program }: ParsedSource, logicalId: string, exportedNames: ReadonlySet<string>): TSESTree.ObjectExpression;
|
|
82
|
+
/**
|
|
83
|
+
* The name of the top-level variable the file initialises with its one
|
|
84
|
+
* `new <Class>('<logicalId>', …)`, exported or not, where `<Class>` is bound
|
|
85
|
+
* to one of `exportedNames` from a checkly package. None when the construct
|
|
86
|
+
* is not declared that way (made inside a function or a loop, passed straight
|
|
87
|
+
* to another call, destructured), or when several declarations match.
|
|
88
|
+
*/
|
|
89
|
+
export declare function findConstructVariable({ program }: ParsedSource, logicalId: string, exportedNames: ReadonlySet<string>): string | undefined;
|
|
90
|
+
/** The name of a plain `key: value` member, or undefined for a spread, method, accessor or computed key. */
|
|
91
|
+
export declare function memberName(property: TSESTree.Property | TSESTree.SpreadElement): string | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* The properties a construct's options literal spells out, as the dotted
|
|
94
|
+
* paths `ContextOptions.spelledOut` takes: every plain `key: value` member,
|
|
95
|
+
* the members of an object value under its key, the members of the one
|
|
96
|
+
* object argument of a call or `new` (a builder such as
|
|
97
|
+
* `RetryStrategyBuilder.linearStrategy({ … })`) under the property's key,
|
|
98
|
+
* and, for an object element of an array with a string `key` property, its
|
|
99
|
+
* members under `<path>[<key>]`. Spreads, computed keys, methods and
|
|
100
|
+
* elements without such a key add nothing, and neither do the arguments of a
|
|
101
|
+
* call with several (`AlertEscalationBuilder.runBasedEscalation(1, { … })`):
|
|
102
|
+
* the codegen could not tell which value they stand for.
|
|
103
|
+
*/
|
|
104
|
+
export declare function spelledOutPaths(options: TSESTree.ObjectExpression): Set<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Whether `name` is used as an identifier anywhere in the program: a
|
|
107
|
+
* declaration, an import, a reference, a type name. Member and property
|
|
108
|
+
* names (`x.name`, `{ name: 1 }`) are not identifiers of the name. `walk`
|
|
109
|
+
* yields a parent before its children, so the key or property node to
|
|
110
|
+
* ignore is known by the time it comes up.
|
|
111
|
+
*/
|
|
112
|
+
/**
|
|
113
|
+
* Whether the program binds `name` at its top level: an import, a variable,
|
|
114
|
+
* function or class declaration. A global such as `Date` that a file binds
|
|
115
|
+
* to something of its own is not the global there.
|
|
116
|
+
*/
|
|
117
|
+
export declare function declaresName(program: TSESTree.Program, name: string): boolean;
|
|
118
|
+
export declare function usesIdentifier(root: Node, name: string): boolean;
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import * as acorn from 'acorn';
|
|
4
|
+
import * as constructs from '../../constructs/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Reads a construct's source file far enough to find the `new X('id', { … })`
|
|
7
|
+
* that declared it, so `literal-edit.ts` can splice values into that options
|
|
8
|
+
* object by byte range.
|
|
9
|
+
*
|
|
10
|
+
* Two parsers, one AST shape: `.js`/`.mjs`/`.cjs` go through acorn, which the
|
|
11
|
+
* CLI always ships; TypeScript and JSX go through typescript-estree, which
|
|
12
|
+
* needs the project's own `typescript` — the same requirement the check
|
|
13
|
+
* dependency parser already places on TypeScript check files. Both produce
|
|
14
|
+
* ESTree nodes carrying `range`, and only `range` and the node types below are
|
|
15
|
+
* read. Recast (which edits `checkly.config.ts` elsewhere in the CLI) is not
|
|
16
|
+
* used: its acorn parser cannot read TypeScript, and reprinting a touched
|
|
17
|
+
* node re-quotes it, whereas splicing by range leaves every other byte of the
|
|
18
|
+
* file exactly as the user wrote it.
|
|
19
|
+
*/
|
|
20
|
+
const SOURCE_EXTENSIONS = new Set(['.js', '.mjs', '.cjs', '.jsx', '.ts', '.mts', '.cts', '.tsx']);
|
|
21
|
+
/** Why a file, a construct or a value cannot be edited; the message is shown to the user as the reason it was skipped. */
|
|
22
|
+
export class WriteBackSkipped extends Error {
|
|
23
|
+
}
|
|
24
|
+
/** The tokens and comments lying within `[start, end)`. */
|
|
25
|
+
export function tokensBetween(source, start, end) {
|
|
26
|
+
return source.tokens.filter(token => token.range[0] >= start && token.range[1] <= end);
|
|
27
|
+
}
|
|
28
|
+
const CHECKLY_MODULE = /^checkly(\/.*)?$/;
|
|
29
|
+
/** The one module that exports the constructs and their helpers by name. */
|
|
30
|
+
export const CONSTRUCTS_MODULE = 'checkly/constructs';
|
|
31
|
+
let tsParser;
|
|
32
|
+
function loadTsParser() {
|
|
33
|
+
if (tsParser !== undefined) {
|
|
34
|
+
return tsParser;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const require = createRequire(import.meta.url);
|
|
38
|
+
tsParser = require('@typescript-eslint/typescript-estree');
|
|
39
|
+
return tsParser;
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
if (err.code === 'ERR_MODULE_NOT_FOUND' || err.code === 'MODULE_NOT_FOUND') {
|
|
43
|
+
throw new WriteBackSkipped('install "typescript" in the project to update TypeScript and JSX files');
|
|
44
|
+
}
|
|
45
|
+
throw err;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export function parseSource(filePath, text) {
|
|
49
|
+
const extension = path.extname(filePath);
|
|
50
|
+
if (!SOURCE_EXTENSIONS.has(extension)) {
|
|
51
|
+
throw new WriteBackSkipped(`${extension === '' ? 'the file' : `"${extension}"`} is not a JavaScript or TypeScript file`);
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
if (extension === '.js' || extension === '.mjs' || extension === '.cjs') {
|
|
55
|
+
const tokens = [];
|
|
56
|
+
// The same options the check dependency parser reads .js files with,
|
|
57
|
+
// so the two agree on what parses.
|
|
58
|
+
const program = acorn.parse(text, {
|
|
59
|
+
ecmaVersion: 'latest',
|
|
60
|
+
ranges: true,
|
|
61
|
+
allowHashBang: true,
|
|
62
|
+
allowImportExportEverywhere: true,
|
|
63
|
+
allowReturnOutsideFunction: true,
|
|
64
|
+
allowAwaitOutsideFunction: true,
|
|
65
|
+
onToken: token => {
|
|
66
|
+
if (token.type.label !== 'eof') {
|
|
67
|
+
tokens.push({ kind: 'token', value: text.slice(token.start, token.end), range: [token.start, token.end] });
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
onComment: (_block, _text, start, end) => tokens.push({ kind: 'comment', value: '', range: [start, end] }),
|
|
71
|
+
});
|
|
72
|
+
return { text, program, tokens: tokens.sort((a, b) => a.range[0] - b.range[0]) };
|
|
73
|
+
}
|
|
74
|
+
const program = loadTsParser().parse(text, {
|
|
75
|
+
range: true,
|
|
76
|
+
comment: true,
|
|
77
|
+
tokens: true,
|
|
78
|
+
jsx: extension.endsWith('x'),
|
|
79
|
+
});
|
|
80
|
+
const tokens = [
|
|
81
|
+
...(program.tokens ?? []).map((token) => ({ kind: 'token', value: token.value, range: token.range })),
|
|
82
|
+
...(program.comments ?? []).map((comment) => ({ kind: 'comment', value: '', range: comment.range })),
|
|
83
|
+
];
|
|
84
|
+
return { text, program, tokens: tokens.sort((a, b) => a.range[0] - b.range[0]) };
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
if (err instanceof WriteBackSkipped) {
|
|
88
|
+
throw err;
|
|
89
|
+
}
|
|
90
|
+
throw new WriteBackSkipped(`could not parse the file: ${err.message}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/** Every node below (and including) `root`, in source order. Only object-valued keys are followed, which covers every ESTree child slot. */
|
|
94
|
+
export function* walk(root) {
|
|
95
|
+
const stack = [root];
|
|
96
|
+
while (stack.length > 0) {
|
|
97
|
+
const node = stack.pop();
|
|
98
|
+
yield node;
|
|
99
|
+
const children = [];
|
|
100
|
+
for (const [key, value] of Object.entries(node)) {
|
|
101
|
+
// `parent` would cycle; a program's token and comment lists are not
|
|
102
|
+
// part of the tree.
|
|
103
|
+
if (key === 'parent' || key === 'tokens' || key === 'comments') {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (Array.isArray(value)) {
|
|
107
|
+
for (const element of value) {
|
|
108
|
+
if (isNode(element)) {
|
|
109
|
+
children.push(element);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (isNode(value)) {
|
|
114
|
+
children.push(value);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
for (let i = children.length - 1; i >= 0; i--) {
|
|
118
|
+
stack.push(children[i]);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function isNode(value) {
|
|
123
|
+
return typeof value === 'object' && value !== null && typeof value.type === 'string';
|
|
124
|
+
}
|
|
125
|
+
/** The string a literal argument spells, for a plain string literal or a template with no `${}` in it. */
|
|
126
|
+
export function stringOf(node) {
|
|
127
|
+
if (node === null || node === undefined) {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
if (node.type === 'Literal' && typeof node.value === 'string') {
|
|
131
|
+
return node.value;
|
|
132
|
+
}
|
|
133
|
+
if (node.type === 'TemplateLiteral' && node.expressions.length === 0 && node.quasis.length === 1) {
|
|
134
|
+
return node.quasis[0].value.cooked ?? undefined;
|
|
135
|
+
}
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The local names this file binds to the given exported names of a checkly
|
|
140
|
+
* package: `import { ApiCheck } from 'checkly/constructs'`,
|
|
141
|
+
* `import { ApiCheck as Api } from 'checkly'`, and the top-level
|
|
142
|
+
* `const { ApiCheck } = require('checkly/constructs')` (with or without a
|
|
143
|
+
* rename). Anything bound another way — a namespace import, a re-export from
|
|
144
|
+
* the user's own module, a wrapper class — is not a construct call this
|
|
145
|
+
* module can recognise, which keeps it from editing the options of a class
|
|
146
|
+
* that merely shares the name. A type-only import (`import type`, or a
|
|
147
|
+
* `type` specifier) binds nothing at runtime and is not a binding here.
|
|
148
|
+
* Scope is not tracked: a local that shadows the import inside a function
|
|
149
|
+
* is taken for it, which the logical id and the later read-back of the edit
|
|
150
|
+
* bound.
|
|
151
|
+
*/
|
|
152
|
+
export function checklyBindings(program, exportedNames) {
|
|
153
|
+
const locals = new Set();
|
|
154
|
+
for (const statement of program.body) {
|
|
155
|
+
if (statement.type === 'ImportDeclaration') {
|
|
156
|
+
if (typeof statement.source.value !== 'string' || !CHECKLY_MODULE.test(statement.source.value)
|
|
157
|
+
|| statement.importKind === 'type') {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
for (const specifier of statement.specifiers) {
|
|
161
|
+
if (specifier.type !== 'ImportSpecifier' || specifier.importKind === 'type') {
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
const imported = specifier.imported.type === 'Identifier' ? specifier.imported.name : stringOf(specifier.imported);
|
|
165
|
+
if (imported !== undefined && exportedNames.has(imported)) {
|
|
166
|
+
locals.add(specifier.local.name);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else if (statement.type === 'VariableDeclaration') {
|
|
171
|
+
for (const declarator of statement.declarations) {
|
|
172
|
+
if (declarator.id.type !== 'ObjectPattern' || !isChecklyRequire(declarator.init)) {
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
for (const property of declarator.id.properties) {
|
|
176
|
+
if (property.type !== 'Property' || property.computed || property.value.type !== 'Identifier') {
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
const imported = property.key.type === 'Identifier' ? property.key.name : stringOf(property.key);
|
|
180
|
+
if (imported !== undefined && exportedNames.has(imported)) {
|
|
181
|
+
locals.add(property.value.name);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return locals;
|
|
188
|
+
}
|
|
189
|
+
/** The one local name the file binds an exported name to, if any (the first when several). */
|
|
190
|
+
export function localBinding(program, name) {
|
|
191
|
+
return [...checklyBindings(program, new Set([name]))][0];
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* The splice that appends `members` to a multi-line list after its last
|
|
195
|
+
* member: one per line at `indentation`, after the line the last member
|
|
196
|
+
* (or its comma) ends on, so a comment on that line stays with that
|
|
197
|
+
* member — unless a comment runs on past that line end, in which case they
|
|
198
|
+
* go right after the member's comma rather than into the comment. The
|
|
199
|
+
* trailing comma is kept when the list has one, and added to the last
|
|
200
|
+
* member when it has none; `close` is the offset of the closing bracket.
|
|
201
|
+
*/
|
|
202
|
+
export function appendAfterLast(source, last, close, members, indentation, lineEnding) {
|
|
203
|
+
const { text } = source;
|
|
204
|
+
const comma = tokensBetween(source, last.range[1], close).find(token => token.kind === 'token' && token.value === ',');
|
|
205
|
+
const afterMember = comma === undefined ? last.range[1] : comma.range[1];
|
|
206
|
+
const breakAt = text.indexOf('\n', afterMember);
|
|
207
|
+
const lineEnd = breakAt === -1 || breakAt >= close
|
|
208
|
+
? afterMember
|
|
209
|
+
: text[breakAt - 1] === '\r' ? breakAt - 1 : breakAt;
|
|
210
|
+
const straddles = tokensBetween(source, last.range[1], close)
|
|
211
|
+
.some(token => token.range[0] < lineEnd && token.range[1] > lineEnd);
|
|
212
|
+
const at = straddles ? afterMember : lineEnd;
|
|
213
|
+
const lines = members.map(member => `${lineEnding}${indentation}${member}`).join(',');
|
|
214
|
+
if (comma === undefined) {
|
|
215
|
+
// The comma goes on the member; whatever sat between it and the line
|
|
216
|
+
// end (a comment) is kept, and the new lines follow.
|
|
217
|
+
return { start: last.range[1], end: at, text: `,${text.slice(last.range[1], at)}${lines}` };
|
|
218
|
+
}
|
|
219
|
+
return { start: at, end: at, text: `${lines},` };
|
|
220
|
+
}
|
|
221
|
+
export function isChecklyRequire(node) {
|
|
222
|
+
return node !== null && node !== undefined
|
|
223
|
+
&& node.type === 'CallExpression'
|
|
224
|
+
&& node.callee.type === 'Identifier' && node.callee.name === 'require'
|
|
225
|
+
&& node.arguments.length === 1
|
|
226
|
+
&& CHECKLY_MODULE.test(stringOf(node.arguments[0]) ?? '');
|
|
227
|
+
}
|
|
228
|
+
/** A name that can be written as an identifier: a variable, or an object key without quotes. */
|
|
229
|
+
export const IDENTIFIER = /^[A-Za-z_$][\w$]*$/;
|
|
230
|
+
/** The names `checkly/constructs` exports for a construct's class; empty for a class of the user's own. */
|
|
231
|
+
export function exportedNamesOf(construct) {
|
|
232
|
+
const names = new Set();
|
|
233
|
+
for (const [name, value] of Object.entries(constructs)) {
|
|
234
|
+
if (value === construct.constructor) {
|
|
235
|
+
names.add(name);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return names;
|
|
239
|
+
}
|
|
240
|
+
/** Whether a node is `new <Class>('<logicalId>', …)` of a class one of `locals` is bound to. */
|
|
241
|
+
function isConstructCall(node, locals, logicalId) {
|
|
242
|
+
return node?.type === 'NewExpression' && node.callee.type === 'Identifier' && locals.has(node.callee.name)
|
|
243
|
+
&& stringOf(node.arguments[0]) === logicalId;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* The options object literal of the one `new <Class>('<logicalId>', { … })`
|
|
247
|
+
* in the file, where `<Class>` is bound to one of `exportedNames` from a
|
|
248
|
+
* checkly package.
|
|
249
|
+
*
|
|
250
|
+
* @throws WriteBackSkipped when the file has no such call, several of them,
|
|
251
|
+
* or its options are not a plain object literal (a variable, a spread, a call,
|
|
252
|
+
* a TypeScript `as`/`satisfies` wrapper): anything the rewriter cannot edit
|
|
253
|
+
* without guessing what the code means.
|
|
254
|
+
*/
|
|
255
|
+
export function findConstructOptions({ program }, logicalId, exportedNames) {
|
|
256
|
+
const locals = checklyBindings(program, exportedNames);
|
|
257
|
+
const names = [...exportedNames].sort().join(' or ');
|
|
258
|
+
if (locals.size === 0) {
|
|
259
|
+
throw new WriteBackSkipped(`${names} is not imported from checkly in this file`);
|
|
260
|
+
}
|
|
261
|
+
const matches = [];
|
|
262
|
+
for (const node of walk(program)) {
|
|
263
|
+
if (isConstructCall(node, locals, logicalId)) {
|
|
264
|
+
matches.push(node);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (matches.length === 0) {
|
|
268
|
+
throw new WriteBackSkipped(`no \`new ${[...locals].sort().join('|')}('${logicalId}', …)\` found in this file`);
|
|
269
|
+
}
|
|
270
|
+
if (matches.length > 1) {
|
|
271
|
+
throw new WriteBackSkipped(`several constructs use the logical id '${logicalId}' in this file`);
|
|
272
|
+
}
|
|
273
|
+
const options = matches[0].arguments[1];
|
|
274
|
+
if (options === undefined || options.type !== 'ObjectExpression') {
|
|
275
|
+
throw new WriteBackSkipped('its options are not a plain object literal');
|
|
276
|
+
}
|
|
277
|
+
if (options.properties.some(property => property.type === 'SpreadElement')) {
|
|
278
|
+
throw new WriteBackSkipped('its options spread another object');
|
|
279
|
+
}
|
|
280
|
+
return options;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* The name of the top-level variable the file initialises with its one
|
|
284
|
+
* `new <Class>('<logicalId>', …)`, exported or not, where `<Class>` is bound
|
|
285
|
+
* to one of `exportedNames` from a checkly package. None when the construct
|
|
286
|
+
* is not declared that way (made inside a function or a loop, passed straight
|
|
287
|
+
* to another call, destructured), or when several declarations match.
|
|
288
|
+
*/
|
|
289
|
+
export function findConstructVariable({ program }, logicalId, exportedNames) {
|
|
290
|
+
const locals = checklyBindings(program, exportedNames);
|
|
291
|
+
const names = [];
|
|
292
|
+
for (const statement of program.body) {
|
|
293
|
+
const declaration = statement.type === 'ExportNamedDeclaration' ? statement.declaration : statement;
|
|
294
|
+
if (declaration?.type !== 'VariableDeclaration') {
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
for (const { id, init } of declaration.declarations) {
|
|
298
|
+
if (id.type === 'Identifier' && isConstructCall(init, locals, logicalId)) {
|
|
299
|
+
names.push(id.name);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return names.length === 1 ? names[0] : undefined;
|
|
304
|
+
}
|
|
305
|
+
/** The name of a plain `key: value` member, or undefined for a spread, method, accessor or computed key. */
|
|
306
|
+
export function memberName(property) {
|
|
307
|
+
if (property.type !== 'Property' || property.computed || property.kind !== 'init' || property.method) {
|
|
308
|
+
return undefined;
|
|
309
|
+
}
|
|
310
|
+
if (property.key.type === 'Identifier') {
|
|
311
|
+
return property.key.name;
|
|
312
|
+
}
|
|
313
|
+
if (property.key.type === 'Literal' && typeof property.key.value === 'string') {
|
|
314
|
+
return property.key.value;
|
|
315
|
+
}
|
|
316
|
+
return undefined;
|
|
317
|
+
}
|
|
318
|
+
/** A value with the TypeScript wrappers that change nothing at run time (`as`, `satisfies`, `!`) taken off. */
|
|
319
|
+
function unwrapped(node) {
|
|
320
|
+
let current = node;
|
|
321
|
+
while (current.type === 'TSAsExpression' || current.type === 'TSSatisfiesExpression'
|
|
322
|
+
|| current.type === 'TSNonNullExpression') {
|
|
323
|
+
current = current.expression;
|
|
324
|
+
}
|
|
325
|
+
return current;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* The properties a construct's options literal spells out, as the dotted
|
|
329
|
+
* paths `ContextOptions.spelledOut` takes: every plain `key: value` member,
|
|
330
|
+
* the members of an object value under its key, the members of the one
|
|
331
|
+
* object argument of a call or `new` (a builder such as
|
|
332
|
+
* `RetryStrategyBuilder.linearStrategy({ … })`) under the property's key,
|
|
333
|
+
* and, for an object element of an array with a string `key` property, its
|
|
334
|
+
* members under `<path>[<key>]`. Spreads, computed keys, methods and
|
|
335
|
+
* elements without such a key add nothing, and neither do the arguments of a
|
|
336
|
+
* call with several (`AlertEscalationBuilder.runBasedEscalation(1, { … })`):
|
|
337
|
+
* the codegen could not tell which value they stand for.
|
|
338
|
+
*/
|
|
339
|
+
export function spelledOutPaths(options) {
|
|
340
|
+
const paths = new Set();
|
|
341
|
+
const visitValue = (value, path) => {
|
|
342
|
+
const node = unwrapped(value);
|
|
343
|
+
if (node.type === 'ObjectExpression') {
|
|
344
|
+
visitObject(node, path);
|
|
345
|
+
}
|
|
346
|
+
else if ((node.type === 'CallExpression' || node.type === 'NewExpression') && node.arguments.length === 1) {
|
|
347
|
+
const argument = unwrapped(node.arguments[0]);
|
|
348
|
+
if (argument.type === 'ObjectExpression') {
|
|
349
|
+
visitObject(argument, path);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
else if (node.type === 'ArrayExpression') {
|
|
353
|
+
for (const element of node.elements) {
|
|
354
|
+
const unwrappedElement = element === null ? null : unwrapped(element);
|
|
355
|
+
if (unwrappedElement?.type !== 'ObjectExpression') {
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
const keyProperty = unwrappedElement.properties.find(property => memberName(property) === 'key');
|
|
359
|
+
const key = keyProperty === undefined
|
|
360
|
+
? undefined
|
|
361
|
+
: stringOf(unwrapped(keyProperty.value));
|
|
362
|
+
if (key !== undefined) {
|
|
363
|
+
visitObject(unwrappedElement, `${path}[${key}]`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
const visitObject = (object, prefix) => {
|
|
369
|
+
for (const property of object.properties) {
|
|
370
|
+
const name = memberName(property);
|
|
371
|
+
if (name === undefined) {
|
|
372
|
+
continue;
|
|
373
|
+
}
|
|
374
|
+
const path = prefix === '' ? name : `${prefix}.${name}`;
|
|
375
|
+
paths.add(path);
|
|
376
|
+
visitValue(property.value, path);
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
visitObject(options, '');
|
|
380
|
+
return paths;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Whether `name` is used as an identifier anywhere in the program: a
|
|
384
|
+
* declaration, an import, a reference, a type name. Member and property
|
|
385
|
+
* names (`x.name`, `{ name: 1 }`) are not identifiers of the name. `walk`
|
|
386
|
+
* yields a parent before its children, so the key or property node to
|
|
387
|
+
* ignore is known by the time it comes up.
|
|
388
|
+
*/
|
|
389
|
+
/**
|
|
390
|
+
* Whether the program binds `name` at its top level: an import, a variable,
|
|
391
|
+
* function or class declaration. A global such as `Date` that a file binds
|
|
392
|
+
* to something of its own is not the global there.
|
|
393
|
+
*/
|
|
394
|
+
export function declaresName(program, name) {
|
|
395
|
+
for (const statement of program.body) {
|
|
396
|
+
const declaration = statement.type === 'ExportNamedDeclaration' ? statement.declaration : statement;
|
|
397
|
+
if (declaration === null || declaration === undefined) {
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
400
|
+
if (declaration.type === 'ImportDeclaration') {
|
|
401
|
+
if (declaration.specifiers.some(specifier => specifier.local.name === name)) {
|
|
402
|
+
return true;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
else if (declaration.type === 'VariableDeclaration') {
|
|
406
|
+
if (declaration.declarations.some(declarator => usesIdentifier(declarator.id, name))) {
|
|
407
|
+
return true;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
else if ((declaration.type === 'FunctionDeclaration' || declaration.type === 'ClassDeclaration')
|
|
411
|
+
&& declaration.id?.name === name) {
|
|
412
|
+
return true;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return false;
|
|
416
|
+
}
|
|
417
|
+
export function usesIdentifier(root, name) {
|
|
418
|
+
const ignored = new Set();
|
|
419
|
+
for (const node of walk(root)) {
|
|
420
|
+
if (node.type === 'MemberExpression' && !node.computed) {
|
|
421
|
+
ignored.add(node.property);
|
|
422
|
+
}
|
|
423
|
+
if ('key' in node && 'computed' in node && node.computed === false) {
|
|
424
|
+
ignored.add(node.key);
|
|
425
|
+
}
|
|
426
|
+
if (node.type === 'Identifier' && node.name === name && !ignored.has(node)) {
|
|
427
|
+
return true;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
return false;
|
|
431
|
+
}
|
|
432
|
+
//# sourceMappingURL=source-file.js.map
|