@jitsusama/agentic-harness.core 0.1.0
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/README.md +52 -0
- package/dist/advisor/charter.d.ts +14 -0
- package/dist/advisor/charter.js +48 -0
- package/dist/advisor/findings.d.ts +43 -0
- package/dist/advisor/findings.js +82 -0
- package/dist/advisor/index.d.ts +24 -0
- package/dist/advisor/index.js +23 -0
- package/dist/advisor/settings.d.ts +16 -0
- package/dist/advisor/settings.js +30 -0
- package/dist/advisor/substantive.d.ts +14 -0
- package/dist/advisor/substantive.js +33 -0
- package/dist/advisor/tools.d.ts +38 -0
- package/dist/advisor/tools.js +202 -0
- package/dist/attribution/commit-hook.d.ts +53 -0
- package/dist/attribution/commit-hook.js +133 -0
- package/dist/attribution/gh-footer.d.ts +27 -0
- package/dist/attribution/gh-footer.js +80 -0
- package/dist/attribution/index.d.ts +11 -0
- package/dist/attribution/index.js +11 -0
- package/dist/attribution/model-name.d.ts +11 -0
- package/dist/attribution/model-name.js +26 -0
- package/dist/bin/attribution.d.ts +36 -0
- package/dist/bin/attribution.js +82 -0
- package/dist/bin/cli.d.ts +14 -0
- package/dist/bin/cli.js +236 -0
- package/dist/bin/gate-deps.d.ts +23 -0
- package/dist/bin/gate-deps.js +61 -0
- package/dist/bin/guardians.d.ts +51 -0
- package/dist/bin/guardians.js +174 -0
- package/dist/bin/memory.d.ts +16 -0
- package/dist/bin/memory.js +81 -0
- package/dist/bin/notes.d.ts +30 -0
- package/dist/bin/notes.js +67 -0
- package/dist/bin/process-exec.d.ts +14 -0
- package/dist/bin/process-exec.js +31 -0
- package/dist/bin/quest.d.ts +38 -0
- package/dist/bin/quest.js +187 -0
- package/dist/bin/slack-auth.d.ts +49 -0
- package/dist/bin/slack-auth.js +107 -0
- package/dist/clock/index.d.ts +46 -0
- package/dist/clock/index.js +72 -0
- package/dist/command/cwd.d.ts +21 -0
- package/dist/command/cwd.js +60 -0
- package/dist/command/edit.d.ts +14 -0
- package/dist/command/edit.js +22 -0
- package/dist/command/flags.d.ts +29 -0
- package/dist/command/flags.js +111 -0
- package/dist/command/index.d.ts +16 -0
- package/dist/command/index.js +12 -0
- package/dist/command/tokenize.d.ts +7 -0
- package/dist/command/tokenize.js +315 -0
- package/dist/command/types.d.ts +66 -0
- package/dist/command/types.js +9 -0
- package/dist/completion/index.d.ts +17 -0
- package/dist/completion/index.js +16 -0
- package/dist/completion/investigate.d.ts +63 -0
- package/dist/completion/investigate.js +198 -0
- package/dist/completion/resolve.d.ts +29 -0
- package/dist/completion/resolve.js +42 -0
- package/dist/completion/side.d.ts +51 -0
- package/dist/completion/side.js +93 -0
- package/dist/completion/types.d.ts +84 -0
- package/dist/completion/types.js +14 -0
- package/dist/exec/exec.d.ts +38 -0
- package/dist/exec/exec.js +51 -0
- package/dist/exec/index.d.ts +8 -0
- package/dist/exec/index.js +8 -0
- package/dist/gate/decision.d.ts +52 -0
- package/dist/gate/decision.js +68 -0
- package/dist/gate/deps.d.ts +14 -0
- package/dist/gate/deps.js +1 -0
- package/dist/gate/index.d.ts +2 -0
- package/dist/gate/index.js +1 -0
- package/dist/git-cli/index.d.ts +47 -0
- package/dist/git-cli/index.js +127 -0
- package/dist/github-cli/command-spec.d.ts +14 -0
- package/dist/github-cli/command-spec.js +18 -0
- package/dist/github-cli/index.d.ts +71 -0
- package/dist/github-cli/index.js +188 -0
- package/dist/google/apis/calendar.d.ts +64 -0
- package/dist/google/apis/calendar.js +297 -0
- package/dist/google/apis/docs.d.ts +29 -0
- package/dist/google/apis/docs.js +154 -0
- package/dist/google/apis/drive.d.ts +46 -0
- package/dist/google/apis/drive.js +189 -0
- package/dist/google/apis/gmail.d.ts +67 -0
- package/dist/google/apis/gmail.js +374 -0
- package/dist/google/apis/index.d.ts +10 -0
- package/dist/google/apis/index.js +10 -0
- package/dist/google/apis/sheets.d.ts +16 -0
- package/dist/google/apis/sheets.js +54 -0
- package/dist/google/apis/slides.d.ts +16 -0
- package/dist/google/apis/slides.js +40 -0
- package/dist/google/auth/browser.d.ts +5 -0
- package/dist/google/auth/browser.js +27 -0
- package/dist/google/auth/credentials.d.ts +26 -0
- package/dist/google/auth/credentials.js +69 -0
- package/dist/google/auth/errors.d.ts +15 -0
- package/dist/google/auth/errors.js +26 -0
- package/dist/google/auth/index.d.ts +12 -0
- package/dist/google/auth/index.js +12 -0
- package/dist/google/auth/oauth-app.d.ts +15 -0
- package/dist/google/auth/oauth-app.js +20 -0
- package/dist/google/auth/oauth.d.ts +46 -0
- package/dist/google/auth/oauth.js +146 -0
- package/dist/google/auth/server.d.ts +13 -0
- package/dist/google/auth/server.js +70 -0
- package/dist/google/auth/setup-instructions.d.ts +16 -0
- package/dist/google/auth/setup-instructions.js +24 -0
- package/dist/google/auth/store.d.ts +19 -0
- package/dist/google/auth/store.js +27 -0
- package/dist/google/index.d.ts +13 -0
- package/dist/google/index.js +12 -0
- package/dist/google/paths.d.ts +17 -0
- package/dist/google/paths.js +28 -0
- package/dist/google/renderers/calendar.d.ts +23 -0
- package/dist/google/renderers/calendar.js +312 -0
- package/dist/google/renderers/drive.d.ts +31 -0
- package/dist/google/renderers/drive.js +214 -0
- package/dist/google/renderers/email.d.ts +16 -0
- package/dist/google/renderers/email.js +130 -0
- package/dist/google/renderers/index.d.ts +8 -0
- package/dist/google/renderers/index.js +8 -0
- package/dist/google/types.d.ts +143 -0
- package/dist/google/types.js +27 -0
- package/dist/governance/distill.d.ts +31 -0
- package/dist/governance/distill.js +78 -0
- package/dist/governance/index.d.ts +11 -0
- package/dist/governance/index.js +10 -0
- package/dist/governance/render.d.ts +13 -0
- package/dist/governance/render.js +23 -0
- package/dist/governance/store.d.ts +32 -0
- package/dist/governance/store.js +102 -0
- package/dist/governance/types.d.ts +19 -0
- package/dist/governance/types.js +9 -0
- package/dist/guardian/index.d.ts +7 -0
- package/dist/guardian/index.js +7 -0
- package/dist/guardian/types.d.ts +37 -0
- package/dist/guardian/types.js +12 -0
- package/dist/internal/github/cli.d.ts +40 -0
- package/dist/internal/github/cli.js +102 -0
- package/dist/internal/guardian/commit-file.d.ts +7 -0
- package/dist/internal/guardian/commit-file.js +36 -0
- package/dist/internal/guardian/commit-format.d.ts +35 -0
- package/dist/internal/guardian/commit-format.js +63 -0
- package/dist/internal/guardian/commit-shell.d.ts +38 -0
- package/dist/internal/guardian/commit-shell.js +134 -0
- package/dist/internal/guardian/history-gate.d.ts +41 -0
- package/dist/internal/guardian/history-gate.js +76 -0
- package/dist/internal/guardian/prose-gate.d.ts +31 -0
- package/dist/internal/guardian/prose-gate.js +50 -0
- package/dist/internal/guardian/redirect-gate.d.ts +41 -0
- package/dist/internal/guardian/redirect-gate.js +114 -0
- package/dist/internal/guardian/section-gate.d.ts +20 -0
- package/dist/internal/guardian/section-gate.js +36 -0
- package/dist/internal/guardian/title-gate.d.ts +20 -0
- package/dist/internal/guardian/title-gate.js +36 -0
- package/dist/internal/json-array.d.ts +11 -0
- package/dist/internal/json-array.js +40 -0
- package/dist/internal/lsp/registry.d.ts +12 -0
- package/dist/internal/lsp/registry.js +16 -0
- package/dist/internal/notes/discovery.d.ts +59 -0
- package/dist/internal/notes/discovery.js +91 -0
- package/dist/internal/notes/frontmatter.d.ts +52 -0
- package/dist/internal/notes/frontmatter.js +163 -0
- package/dist/internal/notes/id.d.ts +42 -0
- package/dist/internal/notes/id.js +80 -0
- package/dist/internal/notes/io.d.ts +25 -0
- package/dist/internal/notes/io.js +51 -0
- package/dist/internal/notes/sanitize.d.ts +19 -0
- package/dist/internal/notes/sanitize.js +35 -0
- package/dist/internal/process-global.d.ts +20 -0
- package/dist/internal/process-global.js +28 -0
- package/dist/internal/quest/alias-index.d.ts +61 -0
- package/dist/internal/quest/alias-index.js +69 -0
- package/dist/internal/quest/append-journey.d.ts +22 -0
- package/dist/internal/quest/append-journey.js +63 -0
- package/dist/internal/quest/bash-write.d.ts +49 -0
- package/dist/internal/quest/bash-write.js +208 -0
- package/dist/internal/quest/dates.d.ts +14 -0
- package/dist/internal/quest/dates.js +20 -0
- package/dist/internal/quest/discovery.d.ts +96 -0
- package/dist/internal/quest/discovery.js +354 -0
- package/dist/internal/quest/fields.d.ts +37 -0
- package/dist/internal/quest/fields.js +94 -0
- package/dist/internal/quest/frontmatter.d.ts +88 -0
- package/dist/internal/quest/frontmatter.js +630 -0
- package/dist/internal/quest/git-signals.d.ts +53 -0
- package/dist/internal/quest/git-signals.js +192 -0
- package/dist/internal/quest/id.d.ts +50 -0
- package/dist/internal/quest/id.js +116 -0
- package/dist/internal/quest/io.d.ts +54 -0
- package/dist/internal/quest/io.js +233 -0
- package/dist/internal/quest/mentions.d.ts +45 -0
- package/dist/internal/quest/mentions.js +70 -0
- package/dist/internal/quest/mutate.d.ts +38 -0
- package/dist/internal/quest/mutate.js +83 -0
- package/dist/internal/quest/process-liveness.d.ts +98 -0
- package/dist/internal/quest/process-liveness.js +216 -0
- package/dist/internal/quest/quest-doc.d.ts +116 -0
- package/dist/internal/quest/quest-doc.js +239 -0
- package/dist/internal/quest/ranking.d.ts +48 -0
- package/dist/internal/quest/ranking.js +114 -0
- package/dist/internal/quest/reopen.d.ts +65 -0
- package/dist/internal/quest/reopen.js +113 -0
- package/dist/internal/quest/resolve-cwd.d.ts +32 -0
- package/dist/internal/quest/resolve-cwd.js +89 -0
- package/dist/internal/quest/sanitize.d.ts +42 -0
- package/dist/internal/quest/sanitize.js +69 -0
- package/dist/internal/quest/scaffold.d.ts +59 -0
- package/dist/internal/quest/scaffold.js +169 -0
- package/dist/internal/quest/scratch.d.ts +27 -0
- package/dist/internal/quest/scratch.js +106 -0
- package/dist/internal/quest/session-liveness.d.ts +125 -0
- package/dist/internal/quest/session-liveness.js +386 -0
- package/dist/internal/quest/session-ownership.d.ts +22 -0
- package/dist/internal/quest/session-ownership.js +100 -0
- package/dist/internal/quest/session-registry.d.ts +221 -0
- package/dist/internal/quest/session-registry.js +266 -0
- package/dist/internal/quest/status.d.ts +10 -0
- package/dist/internal/quest/status.js +15 -0
- package/dist/internal/quest/structural-journal.d.ts +41 -0
- package/dist/internal/quest/structural-journal.js +67 -0
- package/dist/internal/quest/structural.d.ts +43 -0
- package/dist/internal/quest/structural.js +77 -0
- package/dist/internal/quest/toc.d.ts +28 -0
- package/dist/internal/quest/toc.js +90 -0
- package/dist/internal/quest/trees.d.ts +53 -0
- package/dist/internal/quest/trees.js +145 -0
- package/dist/internal/quest/url-fetchers.d.ts +50 -0
- package/dist/internal/quest/url-fetchers.js +97 -0
- package/dist/internal/quest/write-classifier.d.ts +46 -0
- package/dist/internal/quest/write-classifier.js +59 -0
- package/dist/internal/refs/builtins.d.ts +32 -0
- package/dist/internal/refs/builtins.js +179 -0
- package/dist/internal/refs/registry.d.ts +25 -0
- package/dist/internal/refs/registry.js +42 -0
- package/dist/internal/registry/global-symbol-registry.d.ts +37 -0
- package/dist/internal/registry/global-symbol-registry.js +55 -0
- package/dist/internal/review/registry.d.ts +12 -0
- package/dist/internal/review/registry.js +16 -0
- package/dist/internal/sqlite/db.d.ts +16 -0
- package/dist/internal/sqlite/db.js +26 -0
- package/dist/internal/terminal/builtins.d.ts +8 -0
- package/dist/internal/terminal/builtins.js +14 -0
- package/dist/internal/terminal/drivers/fallback.d.ts +8 -0
- package/dist/internal/terminal/drivers/fallback.js +31 -0
- package/dist/internal/terminal/drivers/shared.d.ts +39 -0
- package/dist/internal/terminal/drivers/shared.js +51 -0
- package/dist/internal/terminal/drivers/tmux.d.ts +14 -0
- package/dist/internal/terminal/drivers/tmux.js +88 -0
- package/dist/internal/terminal/drivers/wezterm.d.ts +35 -0
- package/dist/internal/terminal/drivers/wezterm.js +175 -0
- package/dist/internal/terminal/registry.d.ts +12 -0
- package/dist/internal/terminal/registry.js +16 -0
- package/dist/internal/tree/builtins.d.ts +8 -0
- package/dist/internal/tree/builtins.js +10 -0
- package/dist/internal/tree/providers/git-worktree.d.ts +20 -0
- package/dist/internal/tree/providers/git-worktree.js +279 -0
- package/dist/internal/tree/registry.d.ts +12 -0
- package/dist/internal/tree/registry.js +16 -0
- package/dist/lsp/config.d.ts +77 -0
- package/dist/lsp/config.js +154 -0
- package/dist/lsp/external.d.ts +13 -0
- package/dist/lsp/external.js +52 -0
- package/dist/lsp/format.d.ts +11 -0
- package/dist/lsp/format.js +54 -0
- package/dist/lsp/index.d.ts +17 -0
- package/dist/lsp/index.js +16 -0
- package/dist/lsp/offsets.d.ts +22 -0
- package/dist/lsp/offsets.js +51 -0
- package/dist/lsp/registry.d.ts +28 -0
- package/dist/lsp/registry.js +45 -0
- package/dist/lsp/standalone/backend.d.ts +42 -0
- package/dist/lsp/standalone/backend.js +150 -0
- package/dist/lsp/standalone/document.d.ts +45 -0
- package/dist/lsp/standalone/document.js +81 -0
- package/dist/lsp/standalone/server.d.ts +84 -0
- package/dist/lsp/standalone/server.js +521 -0
- package/dist/lsp/types.d.ts +119 -0
- package/dist/lsp/types.js +13 -0
- package/dist/memory/db.d.ts +15 -0
- package/dist/memory/db.js +25 -0
- package/dist/memory/index.d.ts +12 -0
- package/dist/memory/index.js +11 -0
- package/dist/memory/paths.d.ts +19 -0
- package/dist/memory/paths.js +33 -0
- package/dist/memory/scope.d.ts +14 -0
- package/dist/memory/scope.js +22 -0
- package/dist/memory/store.d.ts +12 -0
- package/dist/memory/store.js +146 -0
- package/dist/memory/types.d.ts +80 -0
- package/dist/memory/types.js +6 -0
- package/dist/notes/types.d.ts +50 -0
- package/dist/notes/types.js +23 -0
- package/dist/notes/verbs/create.d.ts +5 -0
- package/dist/notes/verbs/create.js +55 -0
- package/dist/notes/verbs/mutate.d.ts +8 -0
- package/dist/notes/verbs/mutate.js +152 -0
- package/dist/notes/verbs/queries.d.ts +15 -0
- package/dist/notes/verbs/queries.js +116 -0
- package/dist/notes/verbs/reindex.d.ts +12 -0
- package/dist/notes/verbs/reindex.js +35 -0
- package/dist/notes/verbs/shared.d.ts +37 -0
- package/dist/notes/verbs/shared.js +29 -0
- package/dist/observability/index.d.ts +13 -0
- package/dist/observability/index.js +12 -0
- package/dist/observability/recorder.d.ts +50 -0
- package/dist/observability/recorder.js +77 -0
- package/dist/observability/store.d.ts +22 -0
- package/dist/observability/store.js +213 -0
- package/dist/observability/types.d.ts +82 -0
- package/dist/observability/types.js +1 -0
- package/dist/process/index.d.ts +9 -0
- package/dist/process/index.js +9 -0
- package/dist/process/process.d.ts +95 -0
- package/dist/process/process.js +153 -0
- package/dist/prose/block.d.ts +9 -0
- package/dist/prose/block.js +43 -0
- package/dist/prose/detect.d.ts +50 -0
- package/dist/prose/detect.js +217 -0
- package/dist/prose/gate.d.ts +14 -0
- package/dist/prose/gate.js +21 -0
- package/dist/prose/index.d.ts +4 -0
- package/dist/prose/index.js +4 -0
- package/dist/prose/wrap.d.ts +9 -0
- package/dist/prose/wrap.js +47 -0
- package/dist/quest/actions.d.ts +20 -0
- package/dist/quest/actions.js +107 -0
- package/dist/quest/config.d.ts +79 -0
- package/dist/quest/config.js +83 -0
- package/dist/quest/index.d.ts +29 -0
- package/dist/quest/index.js +28 -0
- package/dist/quest/lifecycle.d.ts +365 -0
- package/dist/quest/lifecycle.js +900 -0
- package/dist/quest/lookup.d.ts +243 -0
- package/dist/quest/lookup.js +496 -0
- package/dist/quest/machine.d.ts +48 -0
- package/dist/quest/machine.js +96 -0
- package/dist/quest/render-rows.d.ts +166 -0
- package/dist/quest/render-rows.js +214 -0
- package/dist/quest/state.d.ts +111 -0
- package/dist/quest/state.js +46 -0
- package/dist/quest/types.d.ts +224 -0
- package/dist/quest/types.js +10 -0
- package/dist/quest/verbs/alias.d.ts +9 -0
- package/dist/quest/verbs/alias.js +129 -0
- package/dist/quest/verbs/lifecycle.d.ts +36 -0
- package/dist/quest/verbs/lifecycle.js +407 -0
- package/dist/quest/verbs/queries.d.ts +24 -0
- package/dist/quest/verbs/queries.js +241 -0
- package/dist/quest/verbs/reorder.d.ts +15 -0
- package/dist/quest/verbs/reorder.js +85 -0
- package/dist/quest/verbs/shared.d.ts +63 -0
- package/dist/quest/verbs/shared.js +35 -0
- package/dist/quest/verbs/stage.d.ts +39 -0
- package/dist/quest/verbs/stage.js +506 -0
- package/dist/quest/verbs/structural.d.ts +23 -0
- package/dist/quest/verbs/structural.js +310 -0
- package/dist/quest/verbs/tree-ops.d.ts +20 -0
- package/dist/quest/verbs/tree-ops.js +289 -0
- package/dist/refs/index.d.ts +13 -0
- package/dist/refs/index.js +12 -0
- package/dist/refs/lookup.d.ts +53 -0
- package/dist/refs/lookup.js +102 -0
- package/dist/refs/register.d.ts +34 -0
- package/dist/refs/register.js +44 -0
- package/dist/refs/types.d.ts +81 -0
- package/dist/refs/types.js +17 -0
- package/dist/remote/index.d.ts +9 -0
- package/dist/remote/index.js +9 -0
- package/dist/remote/name.d.ts +22 -0
- package/dist/remote/name.js +30 -0
- package/dist/result/cite.d.ts +84 -0
- package/dist/result/cite.js +127 -0
- package/dist/result/counts.d.ts +15 -0
- package/dist/result/counts.js +17 -0
- package/dist/result/details.d.ts +61 -0
- package/dist/result/details.js +121 -0
- package/dist/result/digest.d.ts +37 -0
- package/dist/result/digest.js +227 -0
- package/dist/result/follow.d.ts +29 -0
- package/dist/result/follow.js +37 -0
- package/dist/result/index.d.ts +26 -0
- package/dist/result/index.js +26 -0
- package/dist/result/listing.d.ts +62 -0
- package/dist/result/listing.js +72 -0
- package/dist/result/location.d.ts +67 -0
- package/dist/result/location.js +125 -0
- package/dist/result/query.d.ts +67 -0
- package/dist/result/query.js +144 -0
- package/dist/result/spill.d.ts +41 -0
- package/dist/result/spill.js +121 -0
- package/dist/result/store.d.ts +83 -0
- package/dist/result/store.js +214 -0
- package/dist/result/view.d.ts +31 -0
- package/dist/result/view.js +38 -0
- package/dist/review/anchor.d.ts +84 -0
- package/dist/review/anchor.js +89 -0
- package/dist/review/ask/agents.d.ts +80 -0
- package/dist/review/ask/agents.js +296 -0
- package/dist/review/ask/anchorable.d.ts +35 -0
- package/dist/review/ask/anchorable.js +76 -0
- package/dist/review/ask/answer.d.ts +54 -0
- package/dist/review/ask/answer.js +209 -0
- package/dist/review/ask/audit.d.ts +71 -0
- package/dist/review/ask/audit.js +158 -0
- package/dist/review/ask/collect.d.ts +41 -0
- package/dist/review/ask/collect.js +82 -0
- package/dist/review/ask/council.d.ts +290 -0
- package/dist/review/ask/council.js +386 -0
- package/dist/review/ask/critique.d.ts +69 -0
- package/dist/review/ask/critique.js +157 -0
- package/dist/review/ask/harvest.d.ts +119 -0
- package/dist/review/ask/harvest.js +409 -0
- package/dist/review/ask/identity.d.ts +93 -0
- package/dist/review/ask/identity.js +134 -0
- package/dist/review/ask/judge.d.ts +37 -0
- package/dist/review/ask/judge.js +140 -0
- package/dist/review/ask/persona.d.ts +84 -0
- package/dist/review/ask/persona.js +127 -0
- package/dist/review/ask/progress.d.ts +117 -0
- package/dist/review/ask/progress.js +137 -0
- package/dist/review/ask/prompt.d.ts +131 -0
- package/dist/review/ask/prompt.js +242 -0
- package/dist/review/ask/roster.d.ts +94 -0
- package/dist/review/ask/roster.js +338 -0
- package/dist/review/ask/run.d.ts +435 -0
- package/dist/review/ask/run.js +340 -0
- package/dist/review/ask/span.d.ts +70 -0
- package/dist/review/ask/span.js +166 -0
- package/dist/review/ask/stack-round.d.ts +66 -0
- package/dist/review/ask/stack-round.js +125 -0
- package/dist/review/ask/start.d.ts +48 -0
- package/dist/review/ask/start.js +118 -0
- package/dist/review/ask/store.d.ts +83 -0
- package/dist/review/ask/store.js +226 -0
- package/dist/review/ask/wire.d.ts +89 -0
- package/dist/review/ask/wire.js +204 -0
- package/dist/review/attach.d.ts +161 -0
- package/dist/review/attach.js +357 -0
- package/dist/review/authoring.d.ts +84 -0
- package/dist/review/authoring.js +203 -0
- package/dist/review/backed.d.ts +90 -0
- package/dist/review/backed.js +168 -0
- package/dist/review/bind.d.ts +75 -0
- package/dist/review/bind.js +223 -0
- package/dist/review/budget.d.ts +133 -0
- package/dist/review/budget.js +278 -0
- package/dist/review/capabilities.d.ts +217 -0
- package/dist/review/capabilities.js +46 -0
- package/dist/review/change.d.ts +155 -0
- package/dist/review/change.js +15 -0
- package/dist/review/checks.d.ts +56 -0
- package/dist/review/checks.js +11 -0
- package/dist/review/config.d.ts +71 -0
- package/dist/review/config.js +125 -0
- package/dist/review/conventions.d.ts +35 -0
- package/dist/review/conventions.js +58 -0
- package/dist/review/conversation.d.ts +98 -0
- package/dist/review/conversation.js +16 -0
- package/dist/review/decided.d.ts +58 -0
- package/dist/review/decided.js +67 -0
- package/dist/review/diff.d.ts +116 -0
- package/dist/review/diff.js +237 -0
- package/dist/review/draft/continuation.d.ts +23 -0
- package/dist/review/draft/continuation.js +32 -0
- package/dist/review/draft/fanout.d.ts +57 -0
- package/dist/review/draft/fanout.js +46 -0
- package/dist/review/draft/handle.d.ts +55 -0
- package/dist/review/draft/handle.js +110 -0
- package/dist/review/draft/plan.d.ts +112 -0
- package/dist/review/draft/plan.js +343 -0
- package/dist/review/draft/publish.d.ts +38 -0
- package/dist/review/draft/publish.js +118 -0
- package/dist/review/draft/render.d.ts +32 -0
- package/dist/review/draft/render.js +100 -0
- package/dist/review/draft/state.d.ts +98 -0
- package/dist/review/draft/state.js +83 -0
- package/dist/review/draft/store.d.ts +33 -0
- package/dist/review/draft/store.js +100 -0
- package/dist/review/elsewhere.d.ts +27 -0
- package/dist/review/elsewhere.js +39 -0
- package/dist/review/engine.d.ts +106 -0
- package/dist/review/engine.js +243 -0
- package/dist/review/events.d.ts +59 -0
- package/dist/review/events.js +35 -0
- package/dist/review/failed.d.ts +46 -0
- package/dist/review/failed.js +56 -0
- package/dist/review/finding.d.ts +81 -0
- package/dist/review/finding.js +85 -0
- package/dist/review/fix.d.ts +147 -0
- package/dist/review/fix.js +175 -0
- package/dist/review/followup.d.ts +84 -0
- package/dist/review/followup.js +123 -0
- package/dist/review/index.d.ts +134 -0
- package/dist/review/index.js +80 -0
- package/dist/review/keys.d.ts +23 -0
- package/dist/review/keys.js +40 -0
- package/dist/review/landing.d.ts +37 -0
- package/dist/review/landing.js +68 -0
- package/dist/review/lenses.d.ts +132 -0
- package/dist/review/lenses.js +430 -0
- package/dist/review/propose-from.d.ts +76 -0
- package/dist/review/propose-from.js +86 -0
- package/dist/review/provider.d.ts +306 -0
- package/dist/review/provider.js +16 -0
- package/dist/review/providers/git/index.d.ts +23 -0
- package/dist/review/providers/git/index.js +214 -0
- package/dist/review/providers/github/authoring.d.ts +22 -0
- package/dist/review/providers/github/authoring.js +350 -0
- package/dist/review/providers/github/claims.d.ts +49 -0
- package/dist/review/providers/github/claims.js +136 -0
- package/dist/review/providers/github/conversation.d.ts +18 -0
- package/dist/review/providers/github/conversation.js +455 -0
- package/dist/review/providers/github/fields.d.ts +30 -0
- package/dist/review/providers/github/fields.js +47 -0
- package/dist/review/providers/github/index.d.ts +15 -0
- package/dist/review/providers/github/index.js +110 -0
- package/dist/review/providers/github/proposals.d.ts +14 -0
- package/dist/review/providers/github/proposals.js +298 -0
- package/dist/review/providers/github/queue.d.ts +46 -0
- package/dist/review/providers/github/queue.js +122 -0
- package/dist/review/providers/github/stacking.d.ts +20 -0
- package/dist/review/providers/github/stacking.js +107 -0
- package/dist/review/queue.d.ts +43 -0
- package/dist/review/queue.js +56 -0
- package/dist/review/reactable.d.ts +93 -0
- package/dist/review/reactable.js +140 -0
- package/dist/review/register.d.ts +52 -0
- package/dist/review/register.js +53 -0
- package/dist/review/resolve.d.ts +58 -0
- package/dist/review/resolve.js +150 -0
- package/dist/review/retarget.d.ts +73 -0
- package/dist/review/retarget.js +82 -0
- package/dist/review/revisited.d.ts +77 -0
- package/dist/review/revisited.js +121 -0
- package/dist/review/stack.d.ts +110 -0
- package/dist/review/stack.js +52 -0
- package/dist/sections/block.d.ts +9 -0
- package/dist/sections/block.js +42 -0
- package/dist/sections/detect.d.ts +31 -0
- package/dist/sections/detect.js +67 -0
- package/dist/sections/gate.d.ts +21 -0
- package/dist/sections/gate.js +22 -0
- package/dist/sections/index.d.ts +5 -0
- package/dist/sections/index.js +5 -0
- package/dist/sections/sanctioned.d.ts +13 -0
- package/dist/sections/sanctioned.js +21 -0
- package/dist/shell/index.d.ts +8 -0
- package/dist/shell/index.js +8 -0
- package/dist/shell/parse.d.ts +125 -0
- package/dist/shell/parse.js +298 -0
- package/dist/slack/api/channels.d.ts +12 -0
- package/dist/slack/api/channels.js +28 -0
- package/dist/slack/api/client.d.ts +94 -0
- package/dist/slack/api/client.js +272 -0
- package/dist/slack/api/files.d.ts +95 -0
- package/dist/slack/api/files.js +223 -0
- package/dist/slack/api/index.d.ts +11 -0
- package/dist/slack/api/index.js +11 -0
- package/dist/slack/api/messages.d.ts +98 -0
- package/dist/slack/api/messages.js +292 -0
- package/dist/slack/api/reactions.d.ts +47 -0
- package/dist/slack/api/reactions.js +50 -0
- package/dist/slack/api/resolve-conversations.d.ts +43 -0
- package/dist/slack/api/resolve-conversations.js +130 -0
- package/dist/slack/api/resolve-messages.d.ts +29 -0
- package/dist/slack/api/resolve-messages.js +93 -0
- package/dist/slack/api/resolve-users.d.ts +27 -0
- package/dist/slack/api/resolve-users.js +73 -0
- package/dist/slack/api/search.d.ts +86 -0
- package/dist/slack/api/search.js +186 -0
- package/dist/slack/api/users.d.ts +12 -0
- package/dist/slack/api/users.js +33 -0
- package/dist/slack/auth/browser-extract.d.ts +33 -0
- package/dist/slack/auth/browser-extract.js +201 -0
- package/dist/slack/auth/browser.d.ts +5 -0
- package/dist/slack/auth/browser.js +25 -0
- package/dist/slack/auth/credentials.d.ts +14 -0
- package/dist/slack/auth/credentials.js +24 -0
- package/dist/slack/auth/errors.d.ts +9 -0
- package/dist/slack/auth/errors.js +19 -0
- package/dist/slack/auth/extract.d.ts +23 -0
- package/dist/slack/auth/extract.js +44 -0
- package/dist/slack/auth/index.d.ts +12 -0
- package/dist/slack/auth/index.js +11 -0
- package/dist/slack/auth/oauth-app.d.ts +11 -0
- package/dist/slack/auth/oauth-app.js +20 -0
- package/dist/slack/auth/oauth.d.ts +31 -0
- package/dist/slack/auth/oauth.js +82 -0
- package/dist/slack/auth/server.d.ts +14 -0
- package/dist/slack/auth/server.js +75 -0
- package/dist/slack/auth/store.d.ts +17 -0
- package/dist/slack/auth/store.js +27 -0
- package/dist/slack/block-message.d.ts +9 -0
- package/dist/slack/block-message.js +30 -0
- package/dist/slack/blocks.d.ts +94 -0
- package/dist/slack/blocks.js +765 -0
- package/dist/slack/content-gate.d.ts +12 -0
- package/dist/slack/content-gate.js +22 -0
- package/dist/slack/detect.d.ts +31 -0
- package/dist/slack/detect.js +125 -0
- package/dist/slack/index.d.ts +18 -0
- package/dist/slack/index.js +17 -0
- package/dist/slack/paths.d.ts +28 -0
- package/dist/slack/paths.js +46 -0
- package/dist/slack/renderers/channel.d.ts +6 -0
- package/dist/slack/renderers/channel.js +27 -0
- package/dist/slack/renderers/index.d.ts +9 -0
- package/dist/slack/renderers/index.js +9 -0
- package/dist/slack/renderers/message.d.ts +21 -0
- package/dist/slack/renderers/message.js +214 -0
- package/dist/slack/renderers/reactions.d.ts +8 -0
- package/dist/slack/renderers/reactions.js +43 -0
- package/dist/slack/renderers/search.d.ts +6 -0
- package/dist/slack/renderers/search.js +39 -0
- package/dist/slack/renderers/user.d.ts +6 -0
- package/dist/slack/renderers/user.js +32 -0
- package/dist/slack/resolvers/cache.d.ts +29 -0
- package/dist/slack/resolvers/cache.js +70 -0
- package/dist/slack/resolvers/conversation-cache.d.ts +42 -0
- package/dist/slack/resolvers/conversation-cache.js +128 -0
- package/dist/slack/resolvers/conversation.d.ts +44 -0
- package/dist/slack/resolvers/conversation.js +229 -0
- package/dist/slack/resolvers/index.d.ts +8 -0
- package/dist/slack/resolvers/index.js +8 -0
- package/dist/slack/resolvers/target.d.ts +19 -0
- package/dist/slack/resolvers/target.js +45 -0
- package/dist/slack/resolvers/url.d.ts +20 -0
- package/dist/slack/resolvers/url.js +22 -0
- package/dist/slack/resolvers/user.d.ts +54 -0
- package/dist/slack/resolvers/user.js +134 -0
- package/dist/slack/types.d.ts +180 -0
- package/dist/slack/types.js +13 -0
- package/dist/tdd/attest.d.ts +21 -0
- package/dist/tdd/attest.js +21 -0
- package/dist/tdd/discipline.d.ts +11 -0
- package/dist/tdd/discipline.js +28 -0
- package/dist/tdd/index.d.ts +14 -0
- package/dist/tdd/index.js +13 -0
- package/dist/tdd/machine.d.ts +48 -0
- package/dist/tdd/machine.js +139 -0
- package/dist/tdd/presentation.d.ts +34 -0
- package/dist/tdd/presentation.js +38 -0
- package/dist/tdd/queries.d.ts +10 -0
- package/dist/tdd/queries.js +22 -0
- package/dist/terminal/index.d.ts +12 -0
- package/dist/terminal/index.js +11 -0
- package/dist/terminal/register.d.ts +21 -0
- package/dist/terminal/register.js +31 -0
- package/dist/terminal/resolve.d.ts +63 -0
- package/dist/terminal/resolve.js +117 -0
- package/dist/terminal/types.d.ts +134 -0
- package/dist/terminal/types.js +19 -0
- package/dist/thinking/index.d.ts +20 -0
- package/dist/thinking/index.js +27 -0
- package/dist/title/block.d.ts +9 -0
- package/dist/title/block.js +32 -0
- package/dist/title/detect.d.ts +25 -0
- package/dist/title/detect.js +154 -0
- package/dist/title/gate.d.ts +19 -0
- package/dist/title/gate.js +21 -0
- package/dist/title/index.d.ts +3 -0
- package/dist/title/index.js +3 -0
- package/dist/tree/index.d.ts +18 -0
- package/dist/tree/index.js +17 -0
- package/dist/tree/register.d.ts +21 -0
- package/dist/tree/register.js +31 -0
- package/dist/tree/resolve.d.ts +20 -0
- package/dist/tree/resolve.js +31 -0
- package/dist/tree/types.d.ts +83 -0
- package/dist/tree/types.js +12 -0
- package/dist/ui/count.d.ts +29 -0
- package/dist/ui/count.js +35 -0
- package/dist/ui/path.d.ts +25 -0
- package/dist/ui/path.js +40 -0
- package/dist/verify/index.d.ts +17 -0
- package/dist/verify/index.js +14 -0
- package/dist/verify/project.d.ts +21 -0
- package/dist/verify/project.js +49 -0
- package/dist/verify/resolve.d.ts +26 -0
- package/dist/verify/resolve.js +27 -0
- package/dist/verify/run.d.ts +31 -0
- package/dist/verify/run.js +145 -0
- package/dist/web/a11y/announcements.d.ts +67 -0
- package/dist/web/a11y/announcements.js +116 -0
- package/dist/web/a11y/budget.d.ts +75 -0
- package/dist/web/a11y/budget.js +97 -0
- package/dist/web/a11y/focus.d.ts +37 -0
- package/dist/web/a11y/focus.js +106 -0
- package/dist/web/a11y/index.d.ts +19 -0
- package/dist/web/a11y/index.js +25 -0
- package/dist/web/a11y/naming.d.ts +23 -0
- package/dist/web/a11y/naming.js +55 -0
- package/dist/web/a11y/outline.d.ts +23 -0
- package/dist/web/a11y/outline.js +42 -0
- package/dist/web/a11y/reading.d.ts +12 -0
- package/dist/web/a11y/reading.js +101 -0
- package/dist/web/a11y/scope.d.ts +23 -0
- package/dist/web/a11y/scope.js +99 -0
- package/dist/web/a11y/states.d.ts +22 -0
- package/dist/web/a11y/states.js +53 -0
- package/dist/web/a11y/tree.d.ts +124 -0
- package/dist/web/a11y/tree.js +269 -0
- package/dist/web/a11y/walk.d.ts +225 -0
- package/dist/web/a11y/walk.js +568 -0
- package/dist/web/a11y/walkprobe.d.ts +44 -0
- package/dist/web/a11y/walkprobe.js +365 -0
- package/dist/web/audit/axe.d.ts +219 -0
- package/dist/web/audit/axe.js +322 -0
- package/dist/web/audit/behind.d.ts +63 -0
- package/dist/web/audit/behind.js +142 -0
- package/dist/web/audit/capture.d.ts +43 -0
- package/dist/web/audit/capture.js +185 -0
- package/dist/web/audit/colour.d.ts +85 -0
- package/dist/web/audit/colour.js +189 -0
- package/dist/web/audit/contrast.d.ts +74 -0
- package/dist/web/audit/contrast.js +104 -0
- package/dist/web/audit/health.d.ts +27 -0
- package/dist/web/audit/health.js +57 -0
- package/dist/web/audit/index.d.ts +22 -0
- package/dist/web/audit/index.js +22 -0
- package/dist/web/audit/pair.d.ts +55 -0
- package/dist/web/audit/pair.js +157 -0
- package/dist/web/audit/probe.d.ts +31 -0
- package/dist/web/audit/probe.js +189 -0
- package/dist/web/audit/report.d.ts +22 -0
- package/dist/web/audit/report.js +250 -0
- package/dist/web/audit/structure.d.ts +126 -0
- package/dist/web/audit/structure.js +595 -0
- package/dist/web/audit/sweep.d.ts +66 -0
- package/dist/web/audit/sweep.js +117 -0
- package/dist/web/audit/target.d.ts +89 -0
- package/dist/web/audit/target.js +168 -0
- package/dist/web/audit/verdict.d.ts +48 -0
- package/dist/web/audit/verdict.js +52 -0
- package/dist/web/audit/visual.d.ts +161 -0
- package/dist/web/audit/visual.js +297 -0
- package/dist/web/browser.d.ts +213 -0
- package/dist/web/browser.js +927 -0
- package/dist/web/compare/images.d.ts +45 -0
- package/dist/web/compare/images.js +101 -0
- package/dist/web/compare/index.d.ts +15 -0
- package/dist/web/compare/index.js +15 -0
- package/dist/web/compare/provenance.d.ts +48 -0
- package/dist/web/compare/provenance.js +86 -0
- package/dist/web/compare/regions.d.ts +78 -0
- package/dist/web/compare/regions.js +211 -0
- package/dist/web/cookies/extract.d.ts +26 -0
- package/dist/web/cookies/extract.js +167 -0
- package/dist/web/cookies/index.d.ts +8 -0
- package/dist/web/cookies/index.js +7 -0
- package/dist/web/cookies/inject.d.ts +13 -0
- package/dist/web/cookies/inject.js +27 -0
- package/dist/web/cookies/setup.d.ts +31 -0
- package/dist/web/cookies/setup.js +94 -0
- package/dist/web/design/index.d.ts +9 -0
- package/dist/web/design/index.js +9 -0
- package/dist/web/design/inventory.d.ts +126 -0
- package/dist/web/design/inventory.js +324 -0
- package/dist/web/design/probe.d.ts +24 -0
- package/dist/web/design/probe.js +88 -0
- package/dist/web/element/actionable.d.ts +34 -0
- package/dist/web/element/actionable.js +48 -0
- package/dist/web/element/animations.d.ts +48 -0
- package/dist/web/element/animations.js +74 -0
- package/dist/web/element/box.d.ts +53 -0
- package/dist/web/element/box.js +58 -0
- package/dist/web/element/hover.d.ts +75 -0
- package/dist/web/element/hover.js +172 -0
- package/dist/web/element/index.d.ts +17 -0
- package/dist/web/element/index.js +17 -0
- package/dist/web/element/listeners.d.ts +72 -0
- package/dist/web/element/listeners.js +98 -0
- package/dist/web/element/measure.d.ts +40 -0
- package/dist/web/element/measure.js +118 -0
- package/dist/web/element/probes.d.ts +108 -0
- package/dist/web/element/probes.js +195 -0
- package/dist/web/element/pseudo.d.ts +51 -0
- package/dist/web/element/pseudo.js +96 -0
- package/dist/web/element/view.d.ts +30 -0
- package/dist/web/element/view.js +117 -0
- package/dist/web/element/visibility.d.ts +42 -0
- package/dist/web/element/visibility.js +67 -0
- package/dist/web/envelope/artifacts.d.ts +23 -0
- package/dist/web/envelope/artifacts.js +45 -0
- package/dist/web/envelope/index.d.ts +9 -0
- package/dist/web/envelope/index.js +9 -0
- package/dist/web/envelope/naming.d.ts +23 -0
- package/dist/web/envelope/naming.js +43 -0
- package/dist/web/envelope/paged.d.ts +42 -0
- package/dist/web/envelope/paged.js +99 -0
- package/dist/web/envelope/sink.d.ts +43 -0
- package/dist/web/envelope/sink.js +67 -0
- package/dist/web/environment/devices.d.ts +65 -0
- package/dist/web/environment/devices.js +82 -0
- package/dist/web/environment/emulation.d.ts +124 -0
- package/dist/web/environment/emulation.js +258 -0
- package/dist/web/environment/index.d.ts +15 -0
- package/dist/web/environment/index.js +15 -0
- package/dist/web/environment/probes.d.ts +18 -0
- package/dist/web/environment/probes.js +40 -0
- package/dist/web/environment/shaping.d.ts +90 -0
- package/dist/web/environment/shaping.js +141 -0
- package/dist/web/environment/status.d.ts +51 -0
- package/dist/web/environment/status.js +109 -0
- package/dist/web/environment/storage.d.ts +55 -0
- package/dist/web/environment/storage.js +142 -0
- package/dist/web/environment/tabs.d.ts +32 -0
- package/dist/web/environment/tabs.js +47 -0
- package/dist/web/environment/view.d.ts +10 -0
- package/dist/web/environment/view.js +42 -0
- package/dist/web/evaluate/index.d.ts +6 -0
- package/dist/web/evaluate/index.js +6 -0
- package/dist/web/evaluate/outcome.d.ts +74 -0
- package/dist/web/evaluate/outcome.js +91 -0
- package/dist/web/evaluate/probe.d.ts +31 -0
- package/dist/web/evaluate/probe.js +303 -0
- package/dist/web/index.d.ts +47 -0
- package/dist/web/index.js +47 -0
- package/dist/web/input/index.d.ts +11 -0
- package/dist/web/input/index.js +11 -0
- package/dist/web/input/keys.d.ts +48 -0
- package/dist/web/input/keys.js +189 -0
- package/dist/web/input/pointer.d.ts +56 -0
- package/dist/web/input/pointer.js +77 -0
- package/dist/web/input/touch.d.ts +61 -0
- package/dist/web/input/touch.js +83 -0
- package/dist/web/mermaid.d.ts +69 -0
- package/dist/web/mermaid.js +223 -0
- package/dist/web/paths.d.ts +16 -0
- package/dist/web/paths.js +27 -0
- package/dist/web/perf/heap.d.ts +42 -0
- package/dist/web/perf/heap.js +73 -0
- package/dist/web/perf/index.d.ts +14 -0
- package/dist/web/perf/index.js +14 -0
- package/dist/web/perf/layers.d.ts +98 -0
- package/dist/web/perf/layers.js +165 -0
- package/dist/web/perf/probe.d.ts +26 -0
- package/dist/web/perf/probe.js +123 -0
- package/dist/web/perf/profile.d.ts +53 -0
- package/dist/web/perf/profile.js +97 -0
- package/dist/web/perf/trace.d.ts +152 -0
- package/dist/web/perf/trace.js +429 -0
- package/dist/web/perf/view.d.ts +6 -0
- package/dist/web/perf/view.js +86 -0
- package/dist/web/perf/vitals.d.ts +141 -0
- package/dist/web/perf/vitals.js +175 -0
- package/dist/web/reader.d.ts +131 -0
- package/dist/web/reader.js +340 -0
- package/dist/web/screenshot.d.ts +50 -0
- package/dist/web/screenshot.js +108 -0
- package/dist/web/search.d.ts +49 -0
- package/dist/web/search.js +137 -0
- package/dist/web/session/artifacts.d.ts +32 -0
- package/dist/web/session/artifacts.js +47 -0
- package/dist/web/session/emulation.d.ts +118 -0
- package/dist/web/session/emulation.js +307 -0
- package/dist/web/session/recording.d.ts +51 -0
- package/dist/web/session/recording.js +64 -0
- package/dist/web/session/settling.d.ts +42 -0
- package/dist/web/session/settling.js +104 -0
- package/dist/web/session/shaping.d.ts +48 -0
- package/dist/web/session/shaping.js +113 -0
- package/dist/web/session/sourcemaps.d.ts +64 -0
- package/dist/web/session/sourcemaps.js +135 -0
- package/dist/web/session/telemetry.d.ts +219 -0
- package/dist/web/session/telemetry.js +486 -0
- package/dist/web/session/wires.d.ts +22 -0
- package/dist/web/session/wires.js +11 -0
- package/dist/web/session.d.ts +1153 -0
- package/dist/web/session.js +3400 -0
- package/dist/web/snapshot/deep.d.ts +36 -0
- package/dist/web/snapshot/deep.js +91 -0
- package/dist/web/snapshot/flatten.d.ts +101 -0
- package/dist/web/snapshot/flatten.js +131 -0
- package/dist/web/snapshot/index.d.ts +8 -0
- package/dist/web/snapshot/index.js +10 -0
- package/dist/web/snapshot/presented.d.ts +32 -0
- package/dist/web/snapshot/presented.js +74 -0
- package/dist/web/snapshot/query.d.ts +67 -0
- package/dist/web/snapshot/query.js +136 -0
- package/dist/web/sourcemap/index.d.ts +9 -0
- package/dist/web/sourcemap/index.js +9 -0
- package/dist/web/sourcemap/mappings.d.ts +111 -0
- package/dist/web/sourcemap/mappings.js +218 -0
- package/dist/web/styles/capture.d.ts +49 -0
- package/dist/web/styles/capture.js +85 -0
- package/dist/web/styles/cascade.d.ts +107 -0
- package/dist/web/styles/cascade.js +275 -0
- package/dist/web/styles/curation.d.ts +45 -0
- package/dist/web/styles/curation.js +282 -0
- package/dist/web/styles/index.d.ts +10 -0
- package/dist/web/styles/index.js +10 -0
- package/dist/web/target/index.d.ts +7 -0
- package/dist/web/target/index.js +7 -0
- package/dist/web/target/refusals.d.ts +59 -0
- package/dist/web/target/refusals.js +305 -0
- package/dist/web/target/target.d.ts +59 -0
- package/dist/web/target/target.js +94 -0
- package/dist/web/telemetry/buffer.d.ts +35 -0
- package/dist/web/telemetry/buffer.js +72 -0
- package/dist/web/telemetry/console.d.ts +127 -0
- package/dist/web/telemetry/console.js +217 -0
- package/dist/web/telemetry/dialogs.d.ts +41 -0
- package/dist/web/telemetry/dialogs.js +38 -0
- package/dist/web/telemetry/downloads.d.ts +42 -0
- package/dist/web/telemetry/downloads.js +65 -0
- package/dist/web/telemetry/failure.d.ts +31 -0
- package/dist/web/telemetry/failure.js +72 -0
- package/dist/web/telemetry/har.d.ts +97 -0
- package/dist/web/telemetry/har.js +227 -0
- package/dist/web/telemetry/index.d.ts +18 -0
- package/dist/web/telemetry/index.js +18 -0
- package/dist/web/telemetry/lifecycle.d.ts +69 -0
- package/dist/web/telemetry/lifecycle.js +120 -0
- package/dist/web/telemetry/network.d.ts +152 -0
- package/dist/web/telemetry/network.js +130 -0
- package/dist/web/telemetry/requests.d.ts +31 -0
- package/dist/web/telemetry/requests.js +119 -0
- package/dist/web/telemetry/sockets.d.ts +56 -0
- package/dist/web/telemetry/sockets.js +101 -0
- package/dist/web/telemetry/view.d.ts +16 -0
- package/dist/web/telemetry/view.js +125 -0
- package/dist/web/wait/conditions.d.ts +87 -0
- package/dist/web/wait/conditions.js +100 -0
- package/dist/web/wait/index.d.ts +6 -0
- package/dist/web/wait/index.js +6 -0
- package/dist/web/wait/settle.d.ts +54 -0
- package/dist/web/wait/settle.js +84 -0
- package/dist/work/ask.d.ts +45 -0
- package/dist/work/ask.js +85 -0
- package/dist/work/author.d.ts +61 -0
- package/dist/work/author.js +144 -0
- package/dist/work/broker.d.ts +151 -0
- package/dist/work/broker.js +165 -0
- package/dist/work/events.d.ts +98 -0
- package/dist/work/events.js +57 -0
- package/dist/work/history.d.ts +69 -0
- package/dist/work/history.js +174 -0
- package/dist/work/index.d.ts +49 -0
- package/dist/work/index.js +33 -0
- package/dist/work/inplay.d.ts +43 -0
- package/dist/work/inplay.js +42 -0
- package/dist/work/memory.d.ts +84 -0
- package/dist/work/memory.js +203 -0
- package/dist/work/objection.d.ts +92 -0
- package/dist/work/objection.js +72 -0
- package/dist/work/provider.d.ts +79 -0
- package/dist/work/provider.js +45 -0
- package/dist/work/providers/git.d.ts +29 -0
- package/dist/work/providers/git.js +87 -0
- package/dist/work/publish.d.ts +53 -0
- package/dist/work/publish.js +139 -0
- package/dist/work/rebase.d.ts +78 -0
- package/dist/work/rebase.js +261 -0
- package/dist/work/reclaim.d.ts +56 -0
- package/dist/work/reclaim.js +52 -0
- package/dist/work/register.d.ts +29 -0
- package/dist/work/register.js +41 -0
- package/dist/work/stack.d.ts +126 -0
- package/dist/work/stack.js +243 -0
- package/dist/work/stacks.d.ts +156 -0
- package/dist/work/stacks.js +524 -0
- package/dist/work/survey.d.ts +52 -0
- package/dist/work/survey.js +58 -0
- package/dist/work/tidy.d.ts +147 -0
- package/dist/work/tidy.js +136 -0
- package/dist/work/tree.d.ts +120 -0
- package/dist/work/tree.js +69 -0
- package/dist/work/unattended.d.ts +40 -0
- package/dist/work/unattended.js +57 -0
- package/package.json +145 -0
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The page-side half of the keyboard walk.
|
|
3
|
+
*
|
|
4
|
+
* These ship as source strings because they declare helpers of
|
|
5
|
+
* their own, and the bundler renames every named inner binding
|
|
6
|
+
* through a wrapper the page has never heard of. A function
|
|
7
|
+
* handed over as a value would throw before it registered
|
|
8
|
+
* anything, silently.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* What counts as a modal, from the page's own point of view.
|
|
12
|
+
*
|
|
13
|
+
* A dialog that contains focus is doing its job, and a keyboard
|
|
14
|
+
* checker that cannot tell that from a dead end reports the
|
|
15
|
+
* reference implementation of the pattern as the defect it
|
|
16
|
+
* exists to find.
|
|
17
|
+
*/
|
|
18
|
+
const MODAL_SELECTOR = 'dialog[open], [role="dialog"][aria-modal="true"], ' +
|
|
19
|
+
'[role="alertdialog"][aria-modal="true"]';
|
|
20
|
+
import { DEEP_DOM } from "../snapshot/deep.js";
|
|
21
|
+
/**
|
|
22
|
+
* What to call a focus stop, shared by both halves of the walk.
|
|
23
|
+
*
|
|
24
|
+
* A form control carries none of its name on itself: the name sits
|
|
25
|
+
* in a label pointing at it, a label wrapping it, or an element
|
|
26
|
+
* named through aria-labelledby. Reading attributes alone made
|
|
27
|
+
* every field in a form report as a bare INPUT, which is precisely
|
|
28
|
+
* the listing a reviewer uses to check that tab order follows the
|
|
29
|
+
* page. The browser already implements the label algorithm, so
|
|
30
|
+
* `el.labels` is asked rather than the association being worked out
|
|
31
|
+
* here.
|
|
32
|
+
*
|
|
33
|
+
* Interpolated into both probes rather than written twice. It was
|
|
34
|
+
* written twice, the two copies drifted, and fixing the one that
|
|
35
|
+
* collects candidates left the one that records stops still
|
|
36
|
+
* answering the old way.
|
|
37
|
+
*/
|
|
38
|
+
const NAMING = `
|
|
39
|
+
const labelled = (el) => {
|
|
40
|
+
const by = el.getAttribute && el.getAttribute("aria-labelledby");
|
|
41
|
+
if (by) {
|
|
42
|
+
const words = by.split(/\\s+/)
|
|
43
|
+
.map((id) => {
|
|
44
|
+
const source = document.getElementById(id);
|
|
45
|
+
return source ? source.innerText || source.textContent || "" : "";
|
|
46
|
+
})
|
|
47
|
+
.join(" ").trim();
|
|
48
|
+
if (words) return words;
|
|
49
|
+
}
|
|
50
|
+
const labels = el.labels;
|
|
51
|
+
if (labels && labels.length) {
|
|
52
|
+
return Array.prototype.map
|
|
53
|
+
.call(labels, (label) => label.innerText || label.textContent || "")
|
|
54
|
+
.join(" ").trim();
|
|
55
|
+
}
|
|
56
|
+
return "";
|
|
57
|
+
};
|
|
58
|
+
const nameOf = (el) =>
|
|
59
|
+
(el.getAttribute("aria-label") || labelled(el) || el.innerText ||
|
|
60
|
+
el.value || el.getAttribute("title") || el.getAttribute("alt") ||
|
|
61
|
+
"").trim().slice(0, 60);
|
|
62
|
+
`;
|
|
63
|
+
/**
|
|
64
|
+
* Collect everything the browser will let focus land on, and
|
|
65
|
+
* remember what each looks like at rest.
|
|
66
|
+
*
|
|
67
|
+
* The list is deliberately built from the browser's own view: an
|
|
68
|
+
* element that is display:none or disabled is not focusable no
|
|
69
|
+
* matter what its markup says, and asking the computed style is
|
|
70
|
+
* the only way to know.
|
|
71
|
+
*/
|
|
72
|
+
export const WALK_COLLECT = `(() => {
|
|
73
|
+
${DEEP_DOM}
|
|
74
|
+
const selector = [
|
|
75
|
+
"a[href]", "button", "input", "select", "textarea",
|
|
76
|
+
"[tabindex]", "details", "audio[controls]", "video[controls]",
|
|
77
|
+
"[contenteditable]",
|
|
78
|
+
].join(",");
|
|
79
|
+
const modalSelector = ${JSON.stringify(MODAL_SELECTOR)};
|
|
80
|
+
|
|
81
|
+
// checkVisibility is the browser's own answer, but only if it
|
|
82
|
+
// is asked the whole question. Bare checkVisibility() reports
|
|
83
|
+
// on display and nothing else: it calls a visibility:hidden
|
|
84
|
+
// control focusable, and a real app hides its closed menus and
|
|
85
|
+
// dialogs that way. Measured on one page: 58 said focusable
|
|
86
|
+
// against 13 that could actually take focus.
|
|
87
|
+
//
|
|
88
|
+
// opacity is deliberately NOT asked about. An opacity:0 control
|
|
89
|
+
// is still in the focus order, so excluding it would bury a
|
|
90
|
+
// real defect: focus landing somewhere invisible. That is the
|
|
91
|
+
// walk's own "no visible focus indicator" finding, and it can
|
|
92
|
+
// only make it if the element survives to be walked.
|
|
93
|
+
const visible = (el) =>
|
|
94
|
+
typeof el.checkVisibility === "function"
|
|
95
|
+
? el.checkVisibility({
|
|
96
|
+
visibilityProperty: true,
|
|
97
|
+
contentVisibilityAuto: true,
|
|
98
|
+
})
|
|
99
|
+
: el.getClientRects().length > 0;
|
|
100
|
+
|
|
101
|
+
// inert takes an element out of the focus order without
|
|
102
|
+
// touching how it looks, so no style question finds it. A
|
|
103
|
+
// closed dialog's contents are the ordinary case.
|
|
104
|
+
const inert = (el) =>
|
|
105
|
+
typeof el.closest === "function" && el.closest("[inert]") !== null;
|
|
106
|
+
|
|
107
|
+
// The browser's own answer, and the last word: try it. Style
|
|
108
|
+
// rules approximate the focus order, but inertness applied by
|
|
109
|
+
// an open modal is not spelled anywhere in markup, and only an
|
|
110
|
+
// attempt can settle it. Focusing something unfocusable is a
|
|
111
|
+
// no-op, so the only elements this can disturb are the ones the
|
|
112
|
+
// walk is about to tab through anyway, and preventScroll keeps
|
|
113
|
+
// it from moving the page under us.
|
|
114
|
+
const canHoldFocus = (el) => {
|
|
115
|
+
try {
|
|
116
|
+
el.focus({ preventScroll: true });
|
|
117
|
+
} catch (error) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
const root = el.getRootNode();
|
|
121
|
+
return (root.activeElement || document.activeElement) === el;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
// Every focusable thing on the page, including inside open
|
|
125
|
+
// shadow roots and same-origin frames. Reading only the top
|
|
126
|
+
// document reported a design-system page as having no
|
|
127
|
+
// focusable controls at all, which the check then rendered as
|
|
128
|
+
// "Nothing on this page can hold focus".
|
|
129
|
+
// Everything the cheap tests allow, before focus is touched.
|
|
130
|
+
const plausible = deepElements(document).filter((el) => {
|
|
131
|
+
if (!el.matches(selector)) return false;
|
|
132
|
+
if (el.disabled) return false;
|
|
133
|
+
if (el.getAttribute("tabindex") === "-1") return false;
|
|
134
|
+
if (!visible(el)) return false;
|
|
135
|
+
return !inert(el);
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
const styleOf = (el) => {
|
|
139
|
+
const c = getComputedStyle(el);
|
|
140
|
+
return {
|
|
141
|
+
outlineStyle: c.outlineStyle, outlineWidth: c.outlineWidth,
|
|
142
|
+
outlineColor: c.outlineColor, boxShadow: c.boxShadow,
|
|
143
|
+
backgroundColor: c.backgroundColor, borderColor: c.borderColor,
|
|
144
|
+
color: c.color,
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
${NAMING}
|
|
148
|
+
const inModal = (el) => el.closest(modalSelector) !== null;
|
|
149
|
+
|
|
150
|
+
// Resting styles are read now, while focus is still wherever the
|
|
151
|
+
// page left it, and BEFORE anything below moves focus. Reading
|
|
152
|
+
// them afterwards records the probe's own focus ring as the
|
|
153
|
+
// element's resting state, and the element then appears to gain
|
|
154
|
+
// nothing when focused: the walk reported the last control in
|
|
155
|
+
// the document as having no focus indicator, on a page where it
|
|
156
|
+
// has a perfectly good one. That is a false accusation of the
|
|
157
|
+
// exact defect this check exists to find, so the ordering here
|
|
158
|
+
// is load-bearing rather than incidental.
|
|
159
|
+
const resting = new Map(plausible.map((el) => [el, styleOf(el)]));
|
|
160
|
+
|
|
161
|
+
// Now the authoritative pass. Style rules only approximate the
|
|
162
|
+
// focus order: inertness applied by an open modal is written
|
|
163
|
+
// nowhere in markup, and only an attempt settles it.
|
|
164
|
+
const restoreFocusTo = document.activeElement;
|
|
165
|
+
const focusable = plausible.filter(canHoldFocus);
|
|
166
|
+
try {
|
|
167
|
+
// blur first, so a body that refuses focus still ends up
|
|
168
|
+
// without it rather than leaving the last probe's element
|
|
169
|
+
// focused.
|
|
170
|
+
if (document.activeElement && document.activeElement.blur) {
|
|
171
|
+
document.activeElement.blur();
|
|
172
|
+
}
|
|
173
|
+
if (
|
|
174
|
+
restoreFocusTo &&
|
|
175
|
+
restoreFocusTo !== document.body &&
|
|
176
|
+
typeof restoreFocusTo.focus === "function"
|
|
177
|
+
) {
|
|
178
|
+
restoreFocusTo.focus({ preventScroll: true });
|
|
179
|
+
}
|
|
180
|
+
} catch (error) {
|
|
181
|
+
// Whatever held focus has gone or refuses it; the walk sets
|
|
182
|
+
// focus from the top anyway, so this is not worth failing on.
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
window.__walkCandidates = focusable;
|
|
186
|
+
|
|
187
|
+
const candidates = focusable.map((el, index) => {
|
|
188
|
+
const tabindex = el.getAttribute("tabindex");
|
|
189
|
+
return {
|
|
190
|
+
index, tag: el.tagName, name: nameOf(el),
|
|
191
|
+
...(el.id ? { id: el.id } : {}),
|
|
192
|
+
...(el.getAttribute("role") ? { role: el.getAttribute("role") } : {}),
|
|
193
|
+
...(tabindex === null ? {} : { tabindex: Number(tabindex) }),
|
|
194
|
+
...(inModal(el) ? { inModal: true } : {}),
|
|
195
|
+
resting: resting.get(el) || styleOf(el),
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
// Anything that behaves like a control without being one. An
|
|
200
|
+
// interactive role is a promise to the reader; not being
|
|
201
|
+
// focusable breaks it.
|
|
202
|
+
//
|
|
203
|
+
// The handler test only sees an inline onclick. A framework
|
|
204
|
+
// that delegates from the root, which is every React, Vue and
|
|
205
|
+
// Svelte page, registers nothing this can read, and there is
|
|
206
|
+
// no cheap document-wide way to ask. So the reason string says
|
|
207
|
+
// what was actually checked rather than implying more, and the
|
|
208
|
+
// verdict reports the limit instead of letting silence read as
|
|
209
|
+
// coverage.
|
|
210
|
+
const interactiveRoles = new Set([
|
|
211
|
+
"button", "link", "checkbox", "radio", "switch", "tab",
|
|
212
|
+
"menuitem", "option", "slider", "textbox",
|
|
213
|
+
]);
|
|
214
|
+
// Structure, not controls. A handler on one of these is
|
|
215
|
+
// delegation or an outside-click listener rather than a promise
|
|
216
|
+
// that it can be operated.
|
|
217
|
+
const CONTAINER_TAGS = new Set([
|
|
218
|
+
"NAV", "HEADER", "FOOTER", "SECTION", "ARTICLE", "ASIDE",
|
|
219
|
+
"FORM", "UL", "OL", "TABLE", "TBODY", "TR", "DIALOG",
|
|
220
|
+
]);
|
|
221
|
+
// Where a framework hangs its delegated click handler. A root
|
|
222
|
+
// carrying one is not a control that forgot to be focusable, it
|
|
223
|
+
// is how React, Vue and Svelte deliver every event they have, so
|
|
224
|
+
// flagging it says nothing except that the page uses a
|
|
225
|
+
// framework. It read especially badly: the finding named the
|
|
226
|
+
// element by its text, so the whole header bled into the label,
|
|
227
|
+
// and on a real app this single false positive was the only
|
|
228
|
+
// thing failing the keyboard check.
|
|
229
|
+
const DELEGATES = new Set(["HTML", "BODY", "MAIN", "#document"]);
|
|
230
|
+
|
|
231
|
+
const reachable = new Set(focusable);
|
|
232
|
+
const unreachable = [];
|
|
233
|
+
for (const el of deepElements(document)) {
|
|
234
|
+
if (reachable.has(el)) continue;
|
|
235
|
+
if (DELEGATES.has(el.tagName)) continue;
|
|
236
|
+
const role = el.getAttribute("role");
|
|
237
|
+
const hasRole = role && interactiveRoles.has(role);
|
|
238
|
+
const hasHandler = typeof el.onclick === "function";
|
|
239
|
+
if (!hasRole && !hasHandler) continue;
|
|
240
|
+
// A landmark or a section is a container, not a control, even
|
|
241
|
+
// when something has attached a handler to it.
|
|
242
|
+
if (hasHandler && !hasRole && CONTAINER_TAGS.has(el.tagName)) continue;
|
|
243
|
+
if (!visible(el)) continue;
|
|
244
|
+
// An inert control is not being offered to anybody yet: the
|
|
245
|
+
// closed search dialog's inputs are inert, look perfectly
|
|
246
|
+
// visible, and tab is right not to reach them. Complaining
|
|
247
|
+
// here would blame a page for a dialog that is shut.
|
|
248
|
+
if (inert(el)) continue;
|
|
249
|
+
unreachable.push({
|
|
250
|
+
tag: el.tagName, name: nameOf(el), selector: deepSelectorFor(el),
|
|
251
|
+
...(role ? { role } : {}),
|
|
252
|
+
because: hasRole
|
|
253
|
+
? "carries role " + role + " but nothing can focus it"
|
|
254
|
+
: "has an inline click handler but nothing can focus it",
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return { candidates, unreachable };
|
|
259
|
+
})()`;
|
|
260
|
+
/**
|
|
261
|
+
* Read where focus is now.
|
|
262
|
+
*
|
|
263
|
+
* The index is looked up against the same array the collection
|
|
264
|
+
* pass stored, so identity is the element itself rather than a
|
|
265
|
+
* selector that might match twice.
|
|
266
|
+
*/
|
|
267
|
+
export const WALK_READ = `(() => {
|
|
268
|
+
${NAMING}
|
|
269
|
+
// document.activeElement stops at a shadow host: focus inside a
|
|
270
|
+
// component reports as the custom element, not the control. So
|
|
271
|
+
// the walk collected four candidates in a design system and
|
|
272
|
+
// then matched none of them, reporting zero stops. Descend to
|
|
273
|
+
// the element that really has focus.
|
|
274
|
+
let el = document.activeElement;
|
|
275
|
+
for (let hops = 0; hops < 10; hops++) {
|
|
276
|
+
const inner = el && el.shadowRoot && el.shadowRoot.activeElement;
|
|
277
|
+
if (!inner) break;
|
|
278
|
+
el = inner;
|
|
279
|
+
}
|
|
280
|
+
const list = window.__walkCandidates || [];
|
|
281
|
+
const modalSelector = ${JSON.stringify(MODAL_SELECTOR)};
|
|
282
|
+
if (!el || el === document.body || el === document.documentElement) {
|
|
283
|
+
return { index: -1, tag: el ? el.tagName : "NONE", name: "",
|
|
284
|
+
inViewport: false, focused: null };
|
|
285
|
+
}
|
|
286
|
+
const visibleNow = (node) =>
|
|
287
|
+
typeof node.checkVisibility === "function"
|
|
288
|
+
? node.checkVisibility({
|
|
289
|
+
visibilityProperty: true,
|
|
290
|
+
contentVisibilityAuto: true,
|
|
291
|
+
})
|
|
292
|
+
: node.getClientRects().length > 0;
|
|
293
|
+
const c = getComputedStyle(el);
|
|
294
|
+
const box = el.getBoundingClientRect();
|
|
295
|
+
return {
|
|
296
|
+
index: list.indexOf(el),
|
|
297
|
+
tag: el.tagName,
|
|
298
|
+
...(el.id ? { id: el.id } : {}),
|
|
299
|
+
name: nameOf(el),
|
|
300
|
+
// Where it is, and whether the browser paints it: two
|
|
301
|
+
// questions, asked separately. Requiring the element's own
|
|
302
|
+
// box to have width and height conflated them, and an anchor
|
|
303
|
+
// whose only child is floated measures 35 by 0 while the text
|
|
304
|
+
// inside it is plainly on the page. Twenty-seven of those on
|
|
305
|
+
// one article were each reported as focus landing off screen.
|
|
306
|
+
// The census already trusts checkVisibility for exactly this
|
|
307
|
+
// question; the stop reader was the one place that did not.
|
|
308
|
+
inViewport: box.bottom >= 0 && box.right >= 0 &&
|
|
309
|
+
box.top <= innerHeight && box.left <= innerWidth &&
|
|
310
|
+
visibleNow(el),
|
|
311
|
+
// Kept so tab order can be compared against the order things
|
|
312
|
+
// are read in, which document order cannot answer.
|
|
313
|
+
rect: { x: box.left, y: box.top, width: box.width,
|
|
314
|
+
height: box.height },
|
|
315
|
+
...(el.closest(modalSelector) !== null ? { inModal: true } : {}),
|
|
316
|
+
focused: {
|
|
317
|
+
outlineStyle: c.outlineStyle, outlineWidth: c.outlineWidth,
|
|
318
|
+
outlineColor: c.outlineColor, boxShadow: c.boxShadow,
|
|
319
|
+
backgroundColor: c.backgroundColor, borderColor: c.borderColor,
|
|
320
|
+
color: c.color,
|
|
321
|
+
},
|
|
322
|
+
};
|
|
323
|
+
})()`;
|
|
324
|
+
/**
|
|
325
|
+
* Remember where focus and the viewport were before the walk.
|
|
326
|
+
*
|
|
327
|
+
* The walk is one of the two reads that deliberately change the
|
|
328
|
+
* page, so it owes the caller the page it was handed back. Tab
|
|
329
|
+
* scrolls each stop into view, and the health digest runs the
|
|
330
|
+
* keyboard check before the visual and design ones, so a walk
|
|
331
|
+
* that leaves the page scrolled moves the ground under every
|
|
332
|
+
* measurement that follows it in the same run. Performance now
|
|
333
|
+
* runs ahead of the walk rather than behind it, for a related
|
|
334
|
+
* reason: the walk's own work was being measured as the page's.
|
|
335
|
+
*
|
|
336
|
+
* Paired with WALK_RESTORE below, which puts both back.
|
|
337
|
+
*/
|
|
338
|
+
export const WALK_REMEMBER = `(() => {
|
|
339
|
+
window.__walkOrigin = {
|
|
340
|
+
el: document.activeElement,
|
|
341
|
+
x: window.scrollX,
|
|
342
|
+
y: window.scrollY,
|
|
343
|
+
};
|
|
344
|
+
return true;
|
|
345
|
+
})()`;
|
|
346
|
+
/** Put focus and the scroll position back where the walk found them. */
|
|
347
|
+
export const WALK_RESTORE = `(() => {
|
|
348
|
+
const origin = window.__walkOrigin;
|
|
349
|
+
if (document.activeElement && document.activeElement.blur) {
|
|
350
|
+
document.activeElement.blur();
|
|
351
|
+
}
|
|
352
|
+
if (origin) {
|
|
353
|
+
const el = origin.el;
|
|
354
|
+
// Refocusing only makes sense if it is still in the document
|
|
355
|
+
// and could hold focus in the first place; body cannot.
|
|
356
|
+
if (el && el.isConnected && typeof el.focus === "function" &&
|
|
357
|
+
el !== document.body && el !== document.documentElement) {
|
|
358
|
+
try { el.focus({ preventScroll: true }); } catch { /* gone */ }
|
|
359
|
+
}
|
|
360
|
+
window.scrollTo(origin.x, origin.y);
|
|
361
|
+
}
|
|
362
|
+
window.__walkOrigin = undefined;
|
|
363
|
+
window.__walkCandidates = undefined;
|
|
364
|
+
return true;
|
|
365
|
+
})()`;
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading axe-core's results.
|
|
3
|
+
*
|
|
4
|
+
* axe is the WCAG baseline here: a mature, widely trusted rule
|
|
5
|
+
* set that there is no reason to reimplement. What it needs is
|
|
6
|
+
* translating, for two reasons.
|
|
7
|
+
*
|
|
8
|
+
* The first is size. A thirteen element test page produces 54 KB
|
|
9
|
+
* of JSON, and a real application produces far more, most of it
|
|
10
|
+
* repeated rule metadata and full outerHTML for every node. Read
|
|
11
|
+
* whole, it would crowd out the answer it was fetched to give.
|
|
12
|
+
*
|
|
13
|
+
* The second is that axe draws a distinction people routinely
|
|
14
|
+
* lose, and it is worth preserving loudly. Some of its rules are
|
|
15
|
+
* WCAG success criteria and some are best practice, and a report
|
|
16
|
+
* that mixes them tells somebody their page fails a standard
|
|
17
|
+
* when it does not. Incomplete results matter for the same
|
|
18
|
+
* reason in reverse: axe declines to judge text over a gradient,
|
|
19
|
+
* and turning that silence into a pass is how a tool starts
|
|
20
|
+
* lying.
|
|
21
|
+
*/
|
|
22
|
+
/** One check axe ran against one element. */
|
|
23
|
+
export interface RawAxeNode {
|
|
24
|
+
readonly html?: string;
|
|
25
|
+
readonly target?: readonly (string | readonly string[])[];
|
|
26
|
+
readonly impact?: string | null;
|
|
27
|
+
readonly failureSummary?: string;
|
|
28
|
+
readonly any?: readonly {
|
|
29
|
+
readonly message?: string;
|
|
30
|
+
}[];
|
|
31
|
+
readonly all?: readonly {
|
|
32
|
+
readonly message?: string;
|
|
33
|
+
}[];
|
|
34
|
+
readonly none?: readonly {
|
|
35
|
+
readonly message?: string;
|
|
36
|
+
}[];
|
|
37
|
+
}
|
|
38
|
+
/** One rule axe reported on. */
|
|
39
|
+
export interface RawAxeResult {
|
|
40
|
+
readonly id: string;
|
|
41
|
+
readonly impact?: string | null;
|
|
42
|
+
readonly tags?: readonly string[];
|
|
43
|
+
readonly description?: string;
|
|
44
|
+
readonly help?: string;
|
|
45
|
+
readonly helpUrl?: string;
|
|
46
|
+
readonly nodes?: readonly RawAxeNode[];
|
|
47
|
+
}
|
|
48
|
+
/** What axe.run resolves to. */
|
|
49
|
+
export interface RawAxeRun {
|
|
50
|
+
readonly violations?: readonly RawAxeResult[];
|
|
51
|
+
readonly incomplete?: readonly RawAxeResult[];
|
|
52
|
+
readonly passes?: readonly RawAxeResult[];
|
|
53
|
+
readonly inapplicable?: readonly RawAxeResult[];
|
|
54
|
+
}
|
|
55
|
+
/** How badly a finding bites, in axe's vocabulary. */
|
|
56
|
+
export type Impact = "critical" | "serious" | "moderate" | "minor";
|
|
57
|
+
/** Whether a finding is a standard failing or an opinion. */
|
|
58
|
+
export type Authority = "wcag" | "best-practice";
|
|
59
|
+
/**
|
|
60
|
+
* The experimental axe rules that test a real WCAG criterion.
|
|
61
|
+
*
|
|
62
|
+
* axe ships these switched off because it does not trust them to
|
|
63
|
+
* be right, which is its call to make about its own rules. But
|
|
64
|
+
* off means never asked, and for 2.5.3 there is no other rule to
|
|
65
|
+
* ask: leaving the default alone means that criterion is not
|
|
66
|
+
* covered at all, while the report says the page passed the
|
|
67
|
+
* standard. Silence read as a pass is the failure this package
|
|
68
|
+
* cares most about.
|
|
69
|
+
*
|
|
70
|
+
* They are switched on and their findings come back as needing a
|
|
71
|
+
* person, so axe's doubt travels with them rather than being
|
|
72
|
+
* dropped on the floor.
|
|
73
|
+
*
|
|
74
|
+
* The list is checked against the installed axe by a test, so an
|
|
75
|
+
* upgrade that adds or retires one is a failure to read rather
|
|
76
|
+
* than a silent change in what gets audited.
|
|
77
|
+
*/
|
|
78
|
+
export declare const EXPERIMENTAL_WCAG_RULES: readonly string[];
|
|
79
|
+
/**
|
|
80
|
+
* Which conformance level an audit is being held to.
|
|
81
|
+
*
|
|
82
|
+
* The levels nest: everything A demands, AA demands too, and AAA
|
|
83
|
+
* demands all of it. So a bar is a ceiling on what gets asked,
|
|
84
|
+
* not a slice.
|
|
85
|
+
*/
|
|
86
|
+
export type ConformanceBar = "A" | "AA" | "AAA";
|
|
87
|
+
/**
|
|
88
|
+
* The AAA rules axe ships switched off.
|
|
89
|
+
*
|
|
90
|
+
* Measured against axe 4.12.1: exactly three rules carry a AAA
|
|
91
|
+
* tag and every one of them is disabled by default, so a run that
|
|
92
|
+
* does not name them checks no AAA criterion at all. Judging at
|
|
93
|
+
* AAA without switching these on would report a page as meeting
|
|
94
|
+
* the enhanced bar on the strength of never having tested it.
|
|
95
|
+
*
|
|
96
|
+
* Checked against the installed axe by a test, like the
|
|
97
|
+
* experimental list, so an upgrade that adds or retires one is a
|
|
98
|
+
* failure to read rather than a silent gap.
|
|
99
|
+
*/
|
|
100
|
+
export declare const ENHANCED_WCAG_RULES: readonly string[];
|
|
101
|
+
/**
|
|
102
|
+
* Whether a finding is something the chosen bar actually asks for.
|
|
103
|
+
*
|
|
104
|
+
* A finding carrying no level is a best-practice rule rather than
|
|
105
|
+
* a conformance claim, and those are always reported: they were
|
|
106
|
+
* never the standard's to demand, so a bar cannot excuse them.
|
|
107
|
+
*/
|
|
108
|
+
export declare function withinBar(levels: readonly string[], bar: ConformanceBar): boolean;
|
|
109
|
+
/** The strictest level any of these findings failed. */
|
|
110
|
+
export declare function hardestLevel(findings: readonly {
|
|
111
|
+
readonly levels: readonly string[];
|
|
112
|
+
}[]): ConformanceBar | undefined;
|
|
113
|
+
/** Whether axe decided, or declined to. */
|
|
114
|
+
export type FindingKind = "violation" | "needs-review";
|
|
115
|
+
/** One element that failed a rule. */
|
|
116
|
+
export interface FindingNode {
|
|
117
|
+
/** A CSS selector that reaches the element. */
|
|
118
|
+
readonly selector: string;
|
|
119
|
+
/** The element's own markup, clipped. */
|
|
120
|
+
readonly html: string;
|
|
121
|
+
/** What specifically was wrong with this one. */
|
|
122
|
+
readonly messages: readonly string[];
|
|
123
|
+
}
|
|
124
|
+
/** One accessibility finding, ready to report. */
|
|
125
|
+
export interface A11yFinding {
|
|
126
|
+
readonly rule: string;
|
|
127
|
+
readonly kind: FindingKind;
|
|
128
|
+
readonly impact: Impact;
|
|
129
|
+
readonly authority: Authority;
|
|
130
|
+
/** WCAG criteria this rule maps to, e.g. 1.4.3. */
|
|
131
|
+
readonly criteria: readonly string[];
|
|
132
|
+
/** The conformance levels involved, e.g. AA. */
|
|
133
|
+
readonly levels: readonly string[];
|
|
134
|
+
readonly help: string;
|
|
135
|
+
readonly helpUrl?: string;
|
|
136
|
+
readonly nodes: readonly FindingNode[];
|
|
137
|
+
}
|
|
138
|
+
/** How much markup to keep per node. */
|
|
139
|
+
export declare const MAX_NODE_HTML = 160;
|
|
140
|
+
/**
|
|
141
|
+
* Read the WCAG criteria a rule maps to.
|
|
142
|
+
*
|
|
143
|
+
* axe tags rules for several standards at once. Only the WCAG
|
|
144
|
+
* ones are read here, since quoting EN 301 549 clauses at
|
|
145
|
+
* somebody who asked about WCAG is noise.
|
|
146
|
+
*/
|
|
147
|
+
export declare function criteriaOf(tags: readonly string[]): readonly string[];
|
|
148
|
+
/** Read the conformance levels a rule belongs to. */
|
|
149
|
+
export declare function levelsOf(tags: readonly string[]): readonly string[];
|
|
150
|
+
/**
|
|
151
|
+
* Whether a rule states a standard or an opinion.
|
|
152
|
+
*
|
|
153
|
+
* axe marks its own recommendations best-practice. They are good
|
|
154
|
+
* advice and they are not WCAG, and a report that blurs the two
|
|
155
|
+
* tells somebody their page fails a standard when it does not.
|
|
156
|
+
*/
|
|
157
|
+
export declare function authorityOf(tags: readonly string[]): Authority;
|
|
158
|
+
/**
|
|
159
|
+
* The rule switches to hand axe, turning on the experimental
|
|
160
|
+
* rules that carry a WCAG criterion and touching nothing else.
|
|
161
|
+
*
|
|
162
|
+
* Enabling by name rather than by tag on purpose: a runOnly tag
|
|
163
|
+
* list replaces the default set instead of adding to it, so any
|
|
164
|
+
* rule whose tags fell outside the list would quietly stop
|
|
165
|
+
* running. Widening an audit must not narrow it.
|
|
166
|
+
*/
|
|
167
|
+
export declare function enabledRules(bar?: ConformanceBar): Record<string, {
|
|
168
|
+
enabled: true;
|
|
169
|
+
}>;
|
|
170
|
+
/**
|
|
171
|
+
* Turn one raw axe result into a finding.
|
|
172
|
+
*
|
|
173
|
+
* A rule axe tags experimental never comes back decided. Five of
|
|
174
|
+
* those rules carry real WCAG criteria and are switched off by
|
|
175
|
+
* default, so running them is the only way some criteria get
|
|
176
|
+
* checked at all, 2.5.3 among them. But axe declines to trust
|
|
177
|
+
* their judgement, and repeating what they say as a settled
|
|
178
|
+
* failure would be claiming an authority its author did not.
|
|
179
|
+
* They are reported as needing a person, which is what they are.
|
|
180
|
+
*/
|
|
181
|
+
export declare function readResult(result: RawAxeResult, kind: FindingKind): A11yFinding;
|
|
182
|
+
/**
|
|
183
|
+
* Read a whole axe run.
|
|
184
|
+
*
|
|
185
|
+
* Findings are ordered by how much they bite, then by rule, so
|
|
186
|
+
* the first thing read is the worst thing found. Violations come
|
|
187
|
+
* before the ones needing review, because a thing known to be
|
|
188
|
+
* broken outranks a thing that might be.
|
|
189
|
+
*/
|
|
190
|
+
export declare function readAxeRun(run: RawAxeRun): readonly A11yFinding[];
|
|
191
|
+
/** Worst first, and what is known broken before what might be. */
|
|
192
|
+
export declare function orderFindings(findings: readonly A11yFinding[]): readonly A11yFinding[];
|
|
193
|
+
/**
|
|
194
|
+
* Put two rule sets into one ordered report.
|
|
195
|
+
*
|
|
196
|
+
* A reader should not have to know which rule set caught a
|
|
197
|
+
* thing in order to act on it, so the sets are interleaved by
|
|
198
|
+
* severity rather than listed one after the other.
|
|
199
|
+
*
|
|
200
|
+
* Where both report the same thing, the primary set wins. Two
|
|
201
|
+
* entries saying the same thing is worse than either alone, and
|
|
202
|
+
* the overlap is not always visible from the rule names: a
|
|
203
|
+
* secondary rule can declare which primary rule supersedes it.
|
|
204
|
+
*/
|
|
205
|
+
export declare function mergeFindings(primary: readonly A11yFinding[], secondary: readonly A11yFinding[], supersededBy?: Readonly<Record<string, string>>): readonly A11yFinding[];
|
|
206
|
+
/** A count of findings and elements, for a headline. */
|
|
207
|
+
export interface AxeTally {
|
|
208
|
+
readonly violations: number;
|
|
209
|
+
readonly needsReview: number;
|
|
210
|
+
/** Elements that failed a rule. Excludes the undecided ones. */
|
|
211
|
+
readonly elements: number;
|
|
212
|
+
/** Elements axe declined to judge. */
|
|
213
|
+
readonly reviewElements: number;
|
|
214
|
+
readonly byImpact: Readonly<Record<Impact, number>>;
|
|
215
|
+
readonly wcag: number;
|
|
216
|
+
readonly bestPractice: number;
|
|
217
|
+
}
|
|
218
|
+
/** Count what was found. */
|
|
219
|
+
export declare function tallyFindings(findings: readonly A11yFinding[]): AxeTally;
|