@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,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The space between two elements.
|
|
3
|
+
*
|
|
4
|
+
* Most of design review is one question asked over and over: is
|
|
5
|
+
* that gap 16 or 12. Every box needed to answer it was already
|
|
6
|
+
* being read; nothing subtracted them, so the answer came from
|
|
7
|
+
* squinting at a screenshot.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Sub-pixel layout is normal and a designer does not mean it.
|
|
11
|
+
*
|
|
12
|
+
* Two edges a thousandth of a pixel apart were meant to line up,
|
|
13
|
+
* and reporting them as misaligned would bury the one case that
|
|
14
|
+
* is a real mistake in noise.
|
|
15
|
+
*/
|
|
16
|
+
const SAME = 0.5;
|
|
17
|
+
/** Measure one axis: the space between two spans on a line. */
|
|
18
|
+
function relate(startA, endA, startB, endB) {
|
|
19
|
+
const between = Math.max(startA, startB) - Math.min(endA, endB);
|
|
20
|
+
if (between > 0)
|
|
21
|
+
return { kind: "gap", pixels: round(between) };
|
|
22
|
+
// They touch or cross. How far they cross is the smaller of the
|
|
23
|
+
// two overhangs, which is the distance one would have to move
|
|
24
|
+
// to clear the other.
|
|
25
|
+
const into = Math.min(endA, endB) - Math.max(startA, startB);
|
|
26
|
+
if (into <= 0)
|
|
27
|
+
return { kind: "gap", pixels: 0 };
|
|
28
|
+
// One fully inside the other on this axis is the ordinary case
|
|
29
|
+
// for boxes in a row, and is not an overlap anybody wants told.
|
|
30
|
+
const shorter = Math.min(endA - startA, endB - startB);
|
|
31
|
+
if (into >= shorter - SAME)
|
|
32
|
+
return { kind: "spans", pixels: 0 };
|
|
33
|
+
return { kind: "overlap", pixels: round(into) };
|
|
34
|
+
}
|
|
35
|
+
/** Pixels, to a tenth, without a trailing zero. */
|
|
36
|
+
function round(value) {
|
|
37
|
+
return Math.round(value * 10) / 10;
|
|
38
|
+
}
|
|
39
|
+
const near = (a, b) => Math.abs(a - b) <= SAME;
|
|
40
|
+
/** Measure the space between two boxes. */
|
|
41
|
+
export function measureBetween(a, b) {
|
|
42
|
+
const horizontal = relate(a.x, a.x + a.width, b.x, b.x + b.width);
|
|
43
|
+
const vertical = relate(a.y, a.y + a.height, b.y, b.y + b.height);
|
|
44
|
+
const aligned = [];
|
|
45
|
+
if (near(a.x, b.x))
|
|
46
|
+
aligned.push("left");
|
|
47
|
+
if (near(a.x + a.width, b.x + b.width))
|
|
48
|
+
aligned.push("right");
|
|
49
|
+
if (near(a.y, b.y))
|
|
50
|
+
aligned.push("top");
|
|
51
|
+
if (near(a.y + a.height, b.y + b.height))
|
|
52
|
+
aligned.push("bottom");
|
|
53
|
+
// A centre line only earns a mention when no edge on that axis
|
|
54
|
+
// already explains the alignment, or every centred pair would
|
|
55
|
+
// be reported three times.
|
|
56
|
+
if (!aligned.includes("left") && !aligned.includes("right")) {
|
|
57
|
+
if (near(a.x + a.width / 2, b.x + b.width / 2)) {
|
|
58
|
+
aligned.push("horizontal centre");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (!aligned.includes("top") && !aligned.includes("bottom")) {
|
|
62
|
+
if (near(a.y + a.height / 2, b.y + b.height / 2)) {
|
|
63
|
+
aligned.push("vertical centre");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const widthDelta = round(Math.abs(a.width - b.width));
|
|
67
|
+
const heightDelta = round(Math.abs(a.height - b.height));
|
|
68
|
+
return {
|
|
69
|
+
horizontal,
|
|
70
|
+
vertical,
|
|
71
|
+
aligned,
|
|
72
|
+
sameSize: widthDelta <= SAME && heightDelta <= SAME,
|
|
73
|
+
widthDelta,
|
|
74
|
+
heightDelta,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/** One axis in words. */
|
|
78
|
+
function say(relation, axis) {
|
|
79
|
+
if (relation.kind === "gap") {
|
|
80
|
+
return `${relation.pixels}px ${axis} between them`;
|
|
81
|
+
}
|
|
82
|
+
if (relation.kind === "overlap") {
|
|
83
|
+
return `they overlap by ${relation.pixels}px ${axis}`;
|
|
84
|
+
}
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Say what was measured, gap first because that is what was asked.
|
|
89
|
+
*/
|
|
90
|
+
export function renderMeasurement(m, nameA, nameB) {
|
|
91
|
+
const lines = [`${nameA} and ${nameB}:`];
|
|
92
|
+
const across = say(m.horizontal, "horizontally");
|
|
93
|
+
const down = say(m.vertical, "vertically");
|
|
94
|
+
if (across === undefined && down === undefined) {
|
|
95
|
+
// Both axes spanning means one contains the other, which is
|
|
96
|
+
// worth saying plainly rather than reporting as no news.
|
|
97
|
+
lines.push(" One sits inside the other; there is no gap to measure.");
|
|
98
|
+
}
|
|
99
|
+
if (across !== undefined)
|
|
100
|
+
lines.push(` ${across}`);
|
|
101
|
+
if (down !== undefined)
|
|
102
|
+
lines.push(` ${down}`);
|
|
103
|
+
if (m.aligned.length > 0) {
|
|
104
|
+
lines.push(` Lined up on: ${m.aligned.join(", ")}`);
|
|
105
|
+
}
|
|
106
|
+
if (m.sameSize) {
|
|
107
|
+
lines.push(" Same size.");
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
const parts = [];
|
|
111
|
+
if (m.widthDelta > SAME)
|
|
112
|
+
parts.push(`${m.widthDelta}px in width`);
|
|
113
|
+
if (m.heightDelta > SAME)
|
|
114
|
+
parts.push(`${m.heightDelta}px in height`);
|
|
115
|
+
lines.push(` Differ by ${parts.join(" and ")}.`);
|
|
116
|
+
}
|
|
117
|
+
return lines.join("\n");
|
|
118
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asking the browser about one element.
|
|
3
|
+
*
|
|
4
|
+
* Page sources rather than functions, for the same reason the
|
|
5
|
+
* accessibility observer is: the compiler wraps named inner
|
|
6
|
+
* bindings in a __name helper the page has never heard of, so
|
|
7
|
+
* a serialized function that declares helpers of its own
|
|
8
|
+
* throws on arrival.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Who receives a click at a point, when it is not the element
|
|
12
|
+
* being asked about.
|
|
13
|
+
*
|
|
14
|
+
* Runs with the element as its receiver and the hit node as its
|
|
15
|
+
* only argument. Anything the element contains counts as
|
|
16
|
+
* itself, since a click there still reaches it. Returns a short
|
|
17
|
+
* description of the obstruction, or null when there is none.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Stop an element's own text from painting, and put it back.
|
|
21
|
+
*
|
|
22
|
+
* Runs with the element as its receiver. Only colour and shadow are
|
|
23
|
+
* touched, because neither affects layout: the glyphs still occupy
|
|
24
|
+
* the same pixels and simply leave no mark, which is what lets two
|
|
25
|
+
* shots of the same region be subtracted from one another.
|
|
26
|
+
*
|
|
27
|
+
* The element's own inline values are remembered on the node itself
|
|
28
|
+
* rather than in the caller, so a restore still works if the caller
|
|
29
|
+
* lost track of what it changed. An element with no inline colour of
|
|
30
|
+
* its own is restored by removing the property, not by writing an
|
|
31
|
+
* empty string over it, since those differ once a stylesheet has an
|
|
32
|
+
* opinion.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Whether an element paints text of its own.
|
|
36
|
+
*
|
|
37
|
+
* Its own text nodes only, not its descendants'. A card wrapping a
|
|
38
|
+
* paragraph is a surface being looked at; the paragraph is the thing
|
|
39
|
+
* being read. Judging the card as text would compare its colour,
|
|
40
|
+
* which nothing there paints, against the wrong criterion.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* The element that paints this node.
|
|
44
|
+
*
|
|
45
|
+
* A `StaticText` target resolves to a DOM text node, which is the
|
|
46
|
+
* honest answer to what was named but has no style, no class list
|
|
47
|
+
* and no `getBoundingClientRect`. Anything that wants to read or
|
|
48
|
+
* change how the text is painted has to work on the element holding
|
|
49
|
+
* it. Without this, hiding a paragraph's text quietly did nothing
|
|
50
|
+
* and the contrast measurement concluded there was no text there.
|
|
51
|
+
*/
|
|
52
|
+
export declare const PAINTING_ELEMENT_PROBE = "function () {\n return this.nodeType === 3 ? this.parentElement : this;\n}";
|
|
53
|
+
export declare const OWN_TEXT_PROBE = "function () {\n var kids = this.childNodes || [];\n for (var i = 0; i < kids.length; i++) {\n var node = kids[i];\n if (node.nodeType === 3 && (node.textContent || \"\").trim()) return true;\n }\n return false;\n}";
|
|
54
|
+
export declare const HIDE_TEXT = "function (hidden) {\n var KEY = \"__piHiddenText\";\n if (hidden) {\n if (!this[KEY]) {\n this[KEY] = {\n color: this.style.getPropertyValue(\"color\"),\n colorPriority: this.style.getPropertyPriority(\"color\"),\n shadow: this.style.getPropertyValue(\"text-shadow\"),\n shadowPriority: this.style.getPropertyPriority(\"text-shadow\")\n };\n }\n this.style.setProperty(\"color\", \"transparent\", \"important\");\n this.style.setProperty(\"text-shadow\", \"none\", \"important\");\n return true;\n }\n var had = this[KEY];\n if (!had) return false;\n this.style.removeProperty(\"color\");\n this.style.removeProperty(\"text-shadow\");\n if (had.color) {\n this.style.setProperty(\"color\", had.color, had.colorPriority);\n }\n if (had.shadow) {\n this.style.setProperty(\"text-shadow\", had.shadow, had.shadowPriority);\n }\n delete this[KEY];\n return true;\n}";
|
|
55
|
+
/**
|
|
56
|
+
* Select everything in a text field, the way the field itself
|
|
57
|
+
* offers to.
|
|
58
|
+
*
|
|
59
|
+
* Runs with the element as its receiver. Used instead of a
|
|
60
|
+
* triple click so that clearing a field does not need an
|
|
61
|
+
* unobstructed centre, and instead of a select-all shortcut so
|
|
62
|
+
* there is no platform to guess at.
|
|
63
|
+
*/
|
|
64
|
+
export declare const SELECT_TEXT_PROBE = "function () {\n if (typeof this.select === \"function\") {\n this.select();\n return true;\n }\n return false;\n}";
|
|
65
|
+
/**
|
|
66
|
+
* What an element says, holds, and is tagged with.
|
|
67
|
+
*
|
|
68
|
+
* Runs with the element as its receiver. Text is trimmed and
|
|
69
|
+
* capped, because a container's textContent can be the whole
|
|
70
|
+
* page and the question being asked is almost always about a
|
|
71
|
+
* short piece of it. Only data attributes and a handful of
|
|
72
|
+
* state attributes are returned: the rest are either already in
|
|
73
|
+
* the accessibility tree or noise.
|
|
74
|
+
*/
|
|
75
|
+
export declare const CONTENT_PROBE = "function () {\n var text = (this.textContent || \"\").replace(/\\s+/g, \" \").trim();\n if (text.length > 400) text = text.slice(0, 400) + \"...\";\n var attributes = [];\n var names = this.getAttributeNames ? this.getAttributeNames() : [];\n for (var at = 0; at < names.length; at++) {\n var name = names[at];\n if (name.indexOf(\"data-\") === 0 || name === \"disabled\" ||\n name === \"readonly\" || name === \"open\" || name === \"hidden\" ||\n name === \"contenteditable\" || name === \"autocomplete\" ||\n name === \"inputmode\" || name === \"type\" || name === \"name\") {\n attributes.push([name, this.getAttribute(name)]);\n }\n }\n var held;\n if (typeof this.value === \"string\") held = this.value;\n return { text: text, value: held, attributes: attributes };\n}";
|
|
76
|
+
/**
|
|
77
|
+
* What is painted over the element's own centre, if anything.
|
|
78
|
+
*
|
|
79
|
+
* The whole question is answered in the page, deliberately. It was
|
|
80
|
+
* once split: the centre came from the box model out here and the
|
|
81
|
+
* hit test from `DOM.getNodeForLocation` over there. Those two are
|
|
82
|
+
* not in the same coordinate space once the page has scrolled, and
|
|
83
|
+
* a scrolled page reported whatever happened to sit at the wrong
|
|
84
|
+
* point as an occluder. Every target the driver had to scroll to
|
|
85
|
+
* became unclickable, blamed on a paragraph elsewhere on the page.
|
|
86
|
+
* `getBoundingClientRect` and `elementFromPoint` are both viewport
|
|
87
|
+
* space by definition, so asking for both together is what makes
|
|
88
|
+
* the answer sound, not merely what makes it shorter.
|
|
89
|
+
*
|
|
90
|
+
* The hit is asked of the element's own root, not of the document.
|
|
91
|
+
* `document.elementFromPoint` retargets a hit inside a shadow tree
|
|
92
|
+
* to the host, so an element in a shadow root was reported as
|
|
93
|
+
* covered by the very host that contains it. A host that covers
|
|
94
|
+
* something else is still named as itself, which is the useful
|
|
95
|
+
* answer: the component is what is in the way.
|
|
96
|
+
*
|
|
97
|
+
* A point off the viewport reads as nothing here, where the
|
|
98
|
+
* protocol call answered with whatever node it found instead. That
|
|
99
|
+
* difference is the safety: an unanswerable question now returns no
|
|
100
|
+
* occluder rather than a confident wrong one.
|
|
101
|
+
*
|
|
102
|
+
* With `alsoCorners`, the corners are tried after the centre, which
|
|
103
|
+
* is what a full inspection wants: an element clipped at one edge
|
|
104
|
+
* is worth reporting even though a click at its middle would land.
|
|
105
|
+
* The readiness poll asks for the centre alone, since that is where
|
|
106
|
+
* a click is aimed and it runs on every pass.
|
|
107
|
+
*/
|
|
108
|
+
export declare const OCCLUDER_PROBE = "function (alsoCorners) {\n var box = this.getBoundingClientRect();\n if (!box.width || !box.height) return null;\n\n var inset = 2;\n var points = [[box.left + box.width / 2, box.top + box.height / 2]];\n if (alsoCorners) {\n points.push([box.left + inset, box.top + inset]);\n points.push([box.right - inset, box.top + inset]);\n points.push([box.left + inset, box.bottom - inset]);\n points.push([box.right - inset, box.bottom - inset]);\n }\n\n var root = this.getRootNode();\n var from = root.elementFromPoint ? root : document;\n for (var at = 0; at < points.length; at++) {\n var x = points[at][0];\n var y = points[at][1];\n var hit = from.elementFromPoint(x, y);\n if (!hit || hit === this || this.contains(hit)) continue;\n var described = hit.nodeName.toLowerCase();\n if (hit.id) described += \" id=\" + hit.id;\n else if (hit.classList && hit.classList.length) {\n described += \" class=\" + hit.classList[0];\n }\n return described;\n }\n return null;\n}";
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asking the browser about one element.
|
|
3
|
+
*
|
|
4
|
+
* Page sources rather than functions, for the same reason the
|
|
5
|
+
* accessibility observer is: the compiler wraps named inner
|
|
6
|
+
* bindings in a __name helper the page has never heard of, so
|
|
7
|
+
* a serialized function that declares helpers of its own
|
|
8
|
+
* throws on arrival.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Who receives a click at a point, when it is not the element
|
|
12
|
+
* being asked about.
|
|
13
|
+
*
|
|
14
|
+
* Runs with the element as its receiver and the hit node as its
|
|
15
|
+
* only argument. Anything the element contains counts as
|
|
16
|
+
* itself, since a click there still reaches it. Returns a short
|
|
17
|
+
* description of the obstruction, or null when there is none.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Stop an element's own text from painting, and put it back.
|
|
21
|
+
*
|
|
22
|
+
* Runs with the element as its receiver. Only colour and shadow are
|
|
23
|
+
* touched, because neither affects layout: the glyphs still occupy
|
|
24
|
+
* the same pixels and simply leave no mark, which is what lets two
|
|
25
|
+
* shots of the same region be subtracted from one another.
|
|
26
|
+
*
|
|
27
|
+
* The element's own inline values are remembered on the node itself
|
|
28
|
+
* rather than in the caller, so a restore still works if the caller
|
|
29
|
+
* lost track of what it changed. An element with no inline colour of
|
|
30
|
+
* its own is restored by removing the property, not by writing an
|
|
31
|
+
* empty string over it, since those differ once a stylesheet has an
|
|
32
|
+
* opinion.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Whether an element paints text of its own.
|
|
36
|
+
*
|
|
37
|
+
* Its own text nodes only, not its descendants'. A card wrapping a
|
|
38
|
+
* paragraph is a surface being looked at; the paragraph is the thing
|
|
39
|
+
* being read. Judging the card as text would compare its colour,
|
|
40
|
+
* which nothing there paints, against the wrong criterion.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* The element that paints this node.
|
|
44
|
+
*
|
|
45
|
+
* A `StaticText` target resolves to a DOM text node, which is the
|
|
46
|
+
* honest answer to what was named but has no style, no class list
|
|
47
|
+
* and no `getBoundingClientRect`. Anything that wants to read or
|
|
48
|
+
* change how the text is painted has to work on the element holding
|
|
49
|
+
* it. Without this, hiding a paragraph's text quietly did nothing
|
|
50
|
+
* and the contrast measurement concluded there was no text there.
|
|
51
|
+
*/
|
|
52
|
+
export const PAINTING_ELEMENT_PROBE = `function () {
|
|
53
|
+
return this.nodeType === 3 ? this.parentElement : this;
|
|
54
|
+
}`;
|
|
55
|
+
export const OWN_TEXT_PROBE = `function () {
|
|
56
|
+
var kids = this.childNodes || [];
|
|
57
|
+
for (var i = 0; i < kids.length; i++) {
|
|
58
|
+
var node = kids[i];
|
|
59
|
+
if (node.nodeType === 3 && (node.textContent || "").trim()) return true;
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
}`;
|
|
63
|
+
export const HIDE_TEXT = `function (hidden) {
|
|
64
|
+
var KEY = "__piHiddenText";
|
|
65
|
+
if (hidden) {
|
|
66
|
+
if (!this[KEY]) {
|
|
67
|
+
this[KEY] = {
|
|
68
|
+
color: this.style.getPropertyValue("color"),
|
|
69
|
+
colorPriority: this.style.getPropertyPriority("color"),
|
|
70
|
+
shadow: this.style.getPropertyValue("text-shadow"),
|
|
71
|
+
shadowPriority: this.style.getPropertyPriority("text-shadow")
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
this.style.setProperty("color", "transparent", "important");
|
|
75
|
+
this.style.setProperty("text-shadow", "none", "important");
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
var had = this[KEY];
|
|
79
|
+
if (!had) return false;
|
|
80
|
+
this.style.removeProperty("color");
|
|
81
|
+
this.style.removeProperty("text-shadow");
|
|
82
|
+
if (had.color) {
|
|
83
|
+
this.style.setProperty("color", had.color, had.colorPriority);
|
|
84
|
+
}
|
|
85
|
+
if (had.shadow) {
|
|
86
|
+
this.style.setProperty("text-shadow", had.shadow, had.shadowPriority);
|
|
87
|
+
}
|
|
88
|
+
delete this[KEY];
|
|
89
|
+
return true;
|
|
90
|
+
}`;
|
|
91
|
+
/**
|
|
92
|
+
* Select everything in a text field, the way the field itself
|
|
93
|
+
* offers to.
|
|
94
|
+
*
|
|
95
|
+
* Runs with the element as its receiver. Used instead of a
|
|
96
|
+
* triple click so that clearing a field does not need an
|
|
97
|
+
* unobstructed centre, and instead of a select-all shortcut so
|
|
98
|
+
* there is no platform to guess at.
|
|
99
|
+
*/
|
|
100
|
+
export const SELECT_TEXT_PROBE = `function () {
|
|
101
|
+
if (typeof this.select === "function") {
|
|
102
|
+
this.select();
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}`;
|
|
107
|
+
/**
|
|
108
|
+
* What an element says, holds, and is tagged with.
|
|
109
|
+
*
|
|
110
|
+
* Runs with the element as its receiver. Text is trimmed and
|
|
111
|
+
* capped, because a container's textContent can be the whole
|
|
112
|
+
* page and the question being asked is almost always about a
|
|
113
|
+
* short piece of it. Only data attributes and a handful of
|
|
114
|
+
* state attributes are returned: the rest are either already in
|
|
115
|
+
* the accessibility tree or noise.
|
|
116
|
+
*/
|
|
117
|
+
export const CONTENT_PROBE = `function () {
|
|
118
|
+
var text = (this.textContent || "").replace(/\\s+/g, " ").trim();
|
|
119
|
+
if (text.length > 400) text = text.slice(0, 400) + "...";
|
|
120
|
+
var attributes = [];
|
|
121
|
+
var names = this.getAttributeNames ? this.getAttributeNames() : [];
|
|
122
|
+
for (var at = 0; at < names.length; at++) {
|
|
123
|
+
var name = names[at];
|
|
124
|
+
if (name.indexOf("data-") === 0 || name === "disabled" ||
|
|
125
|
+
name === "readonly" || name === "open" || name === "hidden" ||
|
|
126
|
+
name === "contenteditable" || name === "autocomplete" ||
|
|
127
|
+
name === "inputmode" || name === "type" || name === "name") {
|
|
128
|
+
attributes.push([name, this.getAttribute(name)]);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
var held;
|
|
132
|
+
if (typeof this.value === "string") held = this.value;
|
|
133
|
+
return { text: text, value: held, attributes: attributes };
|
|
134
|
+
}`;
|
|
135
|
+
/**
|
|
136
|
+
* What is painted over the element's own centre, if anything.
|
|
137
|
+
*
|
|
138
|
+
* The whole question is answered in the page, deliberately. It was
|
|
139
|
+
* once split: the centre came from the box model out here and the
|
|
140
|
+
* hit test from `DOM.getNodeForLocation` over there. Those two are
|
|
141
|
+
* not in the same coordinate space once the page has scrolled, and
|
|
142
|
+
* a scrolled page reported whatever happened to sit at the wrong
|
|
143
|
+
* point as an occluder. Every target the driver had to scroll to
|
|
144
|
+
* became unclickable, blamed on a paragraph elsewhere on the page.
|
|
145
|
+
* `getBoundingClientRect` and `elementFromPoint` are both viewport
|
|
146
|
+
* space by definition, so asking for both together is what makes
|
|
147
|
+
* the answer sound, not merely what makes it shorter.
|
|
148
|
+
*
|
|
149
|
+
* The hit is asked of the element's own root, not of the document.
|
|
150
|
+
* `document.elementFromPoint` retargets a hit inside a shadow tree
|
|
151
|
+
* to the host, so an element in a shadow root was reported as
|
|
152
|
+
* covered by the very host that contains it. A host that covers
|
|
153
|
+
* something else is still named as itself, which is the useful
|
|
154
|
+
* answer: the component is what is in the way.
|
|
155
|
+
*
|
|
156
|
+
* A point off the viewport reads as nothing here, where the
|
|
157
|
+
* protocol call answered with whatever node it found instead. That
|
|
158
|
+
* difference is the safety: an unanswerable question now returns no
|
|
159
|
+
* occluder rather than a confident wrong one.
|
|
160
|
+
*
|
|
161
|
+
* With `alsoCorners`, the corners are tried after the centre, which
|
|
162
|
+
* is what a full inspection wants: an element clipped at one edge
|
|
163
|
+
* is worth reporting even though a click at its middle would land.
|
|
164
|
+
* The readiness poll asks for the centre alone, since that is where
|
|
165
|
+
* a click is aimed and it runs on every pass.
|
|
166
|
+
*/
|
|
167
|
+
export const OCCLUDER_PROBE = `function (alsoCorners) {
|
|
168
|
+
var box = this.getBoundingClientRect();
|
|
169
|
+
if (!box.width || !box.height) return null;
|
|
170
|
+
|
|
171
|
+
var inset = 2;
|
|
172
|
+
var points = [[box.left + box.width / 2, box.top + box.height / 2]];
|
|
173
|
+
if (alsoCorners) {
|
|
174
|
+
points.push([box.left + inset, box.top + inset]);
|
|
175
|
+
points.push([box.right - inset, box.top + inset]);
|
|
176
|
+
points.push([box.left + inset, box.bottom - inset]);
|
|
177
|
+
points.push([box.right - inset, box.bottom - inset]);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
var root = this.getRootNode();
|
|
181
|
+
var from = root.elementFromPoint ? root : document;
|
|
182
|
+
for (var at = 0; at < points.length; at++) {
|
|
183
|
+
var x = points[at][0];
|
|
184
|
+
var y = points[at][1];
|
|
185
|
+
var hit = from.elementFromPoint(x, y);
|
|
186
|
+
if (!hit || hit === this || this.contains(hit)) continue;
|
|
187
|
+
var described = hit.nodeName.toLowerCase();
|
|
188
|
+
if (hit.id) described += " id=" + hit.id;
|
|
189
|
+
else if (hit.classList && hit.classList.length) {
|
|
190
|
+
described += " class=" + hit.classList[0];
|
|
191
|
+
}
|
|
192
|
+
return described;
|
|
193
|
+
}
|
|
194
|
+
return null;
|
|
195
|
+
}`;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How an element looks in states a person has to reach for.
|
|
3
|
+
*
|
|
4
|
+
* Hover, focus and active styles are invisible to a static
|
|
5
|
+
* reading, and they are where accessibility problems hide: a
|
|
6
|
+
* focus ring that never appears, a hover state that is the only
|
|
7
|
+
* cue a thing is interactive. The browser can be told to hold a
|
|
8
|
+
* state, which is the only way to read one without a mouse.
|
|
9
|
+
*/
|
|
10
|
+
import type { StyleEntry, StyleGroup } from "../styles/index.js";
|
|
11
|
+
/** A state the browser can be asked to hold. */
|
|
12
|
+
export type PseudoState = "hover" | "focus" | "active" | "focus-visible";
|
|
13
|
+
/** What changed about an element while a state was held. */
|
|
14
|
+
export interface PseudoVariant {
|
|
15
|
+
readonly state: PseudoState;
|
|
16
|
+
readonly changes: readonly StyleChange[];
|
|
17
|
+
}
|
|
18
|
+
/** One property that differs between two readings. */
|
|
19
|
+
export interface StyleChange {
|
|
20
|
+
readonly property: string;
|
|
21
|
+
readonly from: string;
|
|
22
|
+
readonly to: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* What a state changed.
|
|
26
|
+
*
|
|
27
|
+
* Only differences are reported. Repeating everything that
|
|
28
|
+
* stayed the same would bury the two lines that answer whether
|
|
29
|
+
* the state is visible at all.
|
|
30
|
+
*/
|
|
31
|
+
export declare function diffStyles(atRest: readonly StyleGroup[], held: readonly StyleGroup[]): readonly StyleChange[];
|
|
32
|
+
/** Say what each held state changed. */
|
|
33
|
+
export declare function renderVariants(variants: readonly PseudoVariant[]): string;
|
|
34
|
+
/** An entry list as a group, for callers holding a flat read. */
|
|
35
|
+
export declare function asGroup(name: string, entries: readonly StyleEntry[]): StyleGroup;
|
|
36
|
+
/**
|
|
37
|
+
* Wait until the element has stopped moving.
|
|
38
|
+
*
|
|
39
|
+
* Forcing a state starts whatever transition the page declared,
|
|
40
|
+
* and reading the styles immediately catches them at their
|
|
41
|
+
* resting values, which reports that nothing changed. Rather
|
|
42
|
+
* than guessing a delay from the declared durations, this waits
|
|
43
|
+
* on the browser's own promise that each animation has
|
|
44
|
+
* finished. Endless animations are skipped, since waiting for
|
|
45
|
+
* one would never return, and a cap keeps a page that keeps
|
|
46
|
+
* starting new work from holding the read open.
|
|
47
|
+
*
|
|
48
|
+
* Runs with the element as its receiver, and resolves rather
|
|
49
|
+
* than rejecting so a caller always gets its reading.
|
|
50
|
+
*/
|
|
51
|
+
export declare const SETTLE_PROBE = "function (capMs) {\n if (!this.getAnimations) return Promise.resolve(false);\n var running = this.getAnimations().filter(function (animation) {\n var timing = animation.effect && animation.effect.getTiming\n ? animation.effect.getTiming()\n : {};\n return Number.isFinite(timing.iterations);\n });\n if (running.length === 0) return Promise.resolve(true);\n var settled = Promise.all(running.map(function (animation) {\n return animation.finished.catch(function () { return null; });\n }));\n var capped = new Promise(function (resolve) {\n setTimeout(function () { resolve(false); }, capMs);\n });\n return Promise.race([settled.then(function () { return true; }), capped]);\n}";
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How an element looks in states a person has to reach for.
|
|
3
|
+
*
|
|
4
|
+
* Hover, focus and active styles are invisible to a static
|
|
5
|
+
* reading, and they are where accessibility problems hide: a
|
|
6
|
+
* focus ring that never appears, a hover state that is the only
|
|
7
|
+
* cue a thing is interactive. The browser can be told to hold a
|
|
8
|
+
* state, which is the only way to read one without a mouse.
|
|
9
|
+
*/
|
|
10
|
+
/** Flatten grouped styles into one lookup. */
|
|
11
|
+
function flatten(groups) {
|
|
12
|
+
const flat = new Map();
|
|
13
|
+
for (const group of groups) {
|
|
14
|
+
for (const entry of group.entries)
|
|
15
|
+
flat.set(entry.property, entry.value);
|
|
16
|
+
}
|
|
17
|
+
return flat;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* What a state changed.
|
|
21
|
+
*
|
|
22
|
+
* Only differences are reported. Repeating everything that
|
|
23
|
+
* stayed the same would bury the two lines that answer whether
|
|
24
|
+
* the state is visible at all.
|
|
25
|
+
*/
|
|
26
|
+
export function diffStyles(atRest, held) {
|
|
27
|
+
const before = flatten(atRest);
|
|
28
|
+
const after = flatten(held);
|
|
29
|
+
const changes = [];
|
|
30
|
+
for (const [property, to] of after) {
|
|
31
|
+
const from = before.get(property);
|
|
32
|
+
if (from !== to) {
|
|
33
|
+
changes.push({ property, from: from ?? "not set", to });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// A property present at rest and gone while held changed too,
|
|
37
|
+
// and it is the shape a disappearing outline takes.
|
|
38
|
+
for (const [property, from] of before) {
|
|
39
|
+
if (!after.has(property)) {
|
|
40
|
+
changes.push({ property, from, to: "not set" });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return changes;
|
|
44
|
+
}
|
|
45
|
+
/** Say what each held state changed. */
|
|
46
|
+
export function renderVariants(variants) {
|
|
47
|
+
if (variants.length === 0)
|
|
48
|
+
return "";
|
|
49
|
+
return variants
|
|
50
|
+
.map((variant) => {
|
|
51
|
+
if (variant.changes.length === 0) {
|
|
52
|
+
return `${variant.state}: nothing changes`;
|
|
53
|
+
}
|
|
54
|
+
return [
|
|
55
|
+
`${variant.state}:`,
|
|
56
|
+
...variant.changes.map((change) => ` ${change.property}: ${change.from} -> ${change.to}`),
|
|
57
|
+
].join("\n");
|
|
58
|
+
})
|
|
59
|
+
.join("\n");
|
|
60
|
+
}
|
|
61
|
+
/** An entry list as a group, for callers holding a flat read. */
|
|
62
|
+
export function asGroup(name, entries) {
|
|
63
|
+
return { name, entries };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Wait until the element has stopped moving.
|
|
67
|
+
*
|
|
68
|
+
* Forcing a state starts whatever transition the page declared,
|
|
69
|
+
* and reading the styles immediately catches them at their
|
|
70
|
+
* resting values, which reports that nothing changed. Rather
|
|
71
|
+
* than guessing a delay from the declared durations, this waits
|
|
72
|
+
* on the browser's own promise that each animation has
|
|
73
|
+
* finished. Endless animations are skipped, since waiting for
|
|
74
|
+
* one would never return, and a cap keeps a page that keeps
|
|
75
|
+
* starting new work from holding the read open.
|
|
76
|
+
*
|
|
77
|
+
* Runs with the element as its receiver, and resolves rather
|
|
78
|
+
* than rejecting so a caller always gets its reading.
|
|
79
|
+
*/
|
|
80
|
+
export const SETTLE_PROBE = `function (capMs) {
|
|
81
|
+
if (!this.getAnimations) return Promise.resolve(false);
|
|
82
|
+
var running = this.getAnimations().filter(function (animation) {
|
|
83
|
+
var timing = animation.effect && animation.effect.getTiming
|
|
84
|
+
? animation.effect.getTiming()
|
|
85
|
+
: {};
|
|
86
|
+
return Number.isFinite(timing.iterations);
|
|
87
|
+
});
|
|
88
|
+
if (running.length === 0) return Promise.resolve(true);
|
|
89
|
+
var settled = Promise.all(running.map(function (animation) {
|
|
90
|
+
return animation.finished.catch(function () { return null; });
|
|
91
|
+
}));
|
|
92
|
+
var capped = new Promise(function (resolve) {
|
|
93
|
+
setTimeout(function () { resolve(false); }, capMs);
|
|
94
|
+
});
|
|
95
|
+
return Promise.race([settled.then(function () { return true; }), capped]);
|
|
96
|
+
}`;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Laying out what was found about one element.
|
|
3
|
+
*
|
|
4
|
+
* Kept apart from the judging so the two have separate reasons
|
|
5
|
+
* to change: what is true about an element and how it reads are
|
|
6
|
+
* different questions.
|
|
7
|
+
*/
|
|
8
|
+
import type { PropertyTrace, StyleGroup } from "../styles/index.js";
|
|
9
|
+
import type { BoxModel } from "./box.js";
|
|
10
|
+
import type { VisibilityVerdict } from "./visibility.js";
|
|
11
|
+
/** The verdict, as a sentence. */
|
|
12
|
+
export declare function renderVisibility(verdict: VisibilityVerdict): string;
|
|
13
|
+
/**
|
|
14
|
+
* The boxes, innermost outwards, with the offsets between them
|
|
15
|
+
* stated only where they exist. Four zeroes for the margin of
|
|
16
|
+
* an element with no margin is noise.
|
|
17
|
+
*
|
|
18
|
+
* The position says which space it is measured in. These numbers
|
|
19
|
+
* come from the box model, which measures from the viewport, while
|
|
20
|
+
* a page query reports the same element measured down the document.
|
|
21
|
+
* On a scrolled page the two differ by however far it has moved,
|
|
22
|
+
* and an unlabelled pair of numbers invites reading one as the
|
|
23
|
+
* other: that confusion hid a real defect for hours, because every
|
|
24
|
+
* reading was true in its own frame and none were comparable.
|
|
25
|
+
*/
|
|
26
|
+
export declare function renderBox(box: BoxModel): string;
|
|
27
|
+
/** Curated styles, grouped as they were curated. */
|
|
28
|
+
export declare function renderStyles(groups: readonly StyleGroup[]): string;
|
|
29
|
+
/** Everything that had a say in one property, strongest first. */
|
|
30
|
+
export declare function renderTrace(trace: PropertyTrace): string;
|