@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,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading the emulated environment back.
|
|
3
|
+
*
|
|
4
|
+
* Led by what the page observes rather than by what was asked
|
|
5
|
+
* for, so a setting that did not take cannot read as though it
|
|
6
|
+
* did.
|
|
7
|
+
*/
|
|
8
|
+
/** What the page is experiencing, and where that differs from the ask. */
|
|
9
|
+
export function renderEnvironment(asked, observed, gaps) {
|
|
10
|
+
const lines = [
|
|
11
|
+
"The page reports:",
|
|
12
|
+
` ${observed.width} by ${observed.height} at ${observed.devicePixelRatio}x`,
|
|
13
|
+
` colour scheme ${observed.colorScheme}` +
|
|
14
|
+
`, contrast ${observed.contrast}` +
|
|
15
|
+
`, reduced motion ${observed.reducedMotion ? "on" : "off"}` +
|
|
16
|
+
`, forced colours ${observed.forcedColors ? "on" : "off"}`,
|
|
17
|
+
` ${observed.language} in ${observed.timezone}`,
|
|
18
|
+
` ${observed.maxTouchPoints > 0
|
|
19
|
+
? `${observed.maxTouchPoints} touch points`
|
|
20
|
+
: "no touch"}${observed.touchEvents ? ", touch events present" : ""}` +
|
|
21
|
+
`${observed.print ? ", print stylesheet active" : ""}`,
|
|
22
|
+
];
|
|
23
|
+
// Vision deficiency is a filter over what is painted, so no
|
|
24
|
+
// media query reports it and the page cannot be asked. It is
|
|
25
|
+
// the one thing here that has to be taken on our own word.
|
|
26
|
+
if (asked.vision !== undefined && asked.vision !== "none") {
|
|
27
|
+
lines.push(` simulating ${asked.vision}, which paints differently but is ` +
|
|
28
|
+
"invisible to the page's own scripts");
|
|
29
|
+
}
|
|
30
|
+
if (asked.cpuThrottle !== undefined && asked.cpuThrottle > 1) {
|
|
31
|
+
lines.push(` cpu slowed ${asked.cpuThrottle} times`);
|
|
32
|
+
}
|
|
33
|
+
if (gaps.length > 0) {
|
|
34
|
+
lines.push("", "Asked for, but not what the page sees:");
|
|
35
|
+
for (const gap of gaps) {
|
|
36
|
+
lines.push(` ${gap.what}: asked ${gap.asked}, got ${gap.observed}`);
|
|
37
|
+
if (gap.note)
|
|
38
|
+
lines.push(` ${gap.note}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return lines.join("\n");
|
|
42
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Running an expression in the page, and reading back what it
|
|
3
|
+
* said, including how it failed.
|
|
4
|
+
*/
|
|
5
|
+
export { describeThrow, type EvalFrame, type EvalOutcome, type EvalThrew, type EvalValue, MAX_INLINE_RESULT, type RawExceptionDetails, renderEvaluation, } from "./outcome.js";
|
|
6
|
+
export { evaluationSource, SERIALIZE_BREADTH, SERIALIZE_DEPTH, SERIALIZE_STRING, } from "./probe.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Running an expression in the page, and reading back what it
|
|
3
|
+
* said, including how it failed.
|
|
4
|
+
*/
|
|
5
|
+
export { describeThrow, MAX_INLINE_RESULT, renderEvaluation, } from "./outcome.js";
|
|
6
|
+
export { evaluationSource, SERIALIZE_BREADTH, SERIALIZE_DEPTH, SERIALIZE_STRING, } from "./probe.js";
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What came back from running an expression in the page.
|
|
3
|
+
*
|
|
4
|
+
* An exception is a result, not an error to swallow: running
|
|
5
|
+
* code against a live page to find out how it fails is the whole
|
|
6
|
+
* point of being able to run code against a live page.
|
|
7
|
+
*/
|
|
8
|
+
import type { AuthoredPosition } from "../sourcemap/index.js";
|
|
9
|
+
/** One frame of a page-side stack. */
|
|
10
|
+
export interface EvalFrame {
|
|
11
|
+
readonly functionName: string;
|
|
12
|
+
readonly url: string;
|
|
13
|
+
readonly lineNumber: number;
|
|
14
|
+
readonly columnNumber: number;
|
|
15
|
+
/** Where the frame was authored, when a source map said. */
|
|
16
|
+
readonly authored?: AuthoredPosition;
|
|
17
|
+
}
|
|
18
|
+
/** The page threw. */
|
|
19
|
+
export interface EvalThrew {
|
|
20
|
+
readonly message: string;
|
|
21
|
+
readonly className?: string;
|
|
22
|
+
readonly frames: readonly EvalFrame[];
|
|
23
|
+
/** Whether it came out of a promise rather than directly. */
|
|
24
|
+
readonly fromPromise: boolean;
|
|
25
|
+
}
|
|
26
|
+
/** The page answered. */
|
|
27
|
+
export interface EvalValue {
|
|
28
|
+
readonly type: string;
|
|
29
|
+
readonly value: unknown;
|
|
30
|
+
/** Whether anything was left out to keep the answer a size. */
|
|
31
|
+
readonly clipped: boolean;
|
|
32
|
+
}
|
|
33
|
+
/** How an evaluation ended. */
|
|
34
|
+
export type EvalOutcome = {
|
|
35
|
+
readonly ok: true;
|
|
36
|
+
readonly result: EvalValue;
|
|
37
|
+
} | {
|
|
38
|
+
readonly ok: false;
|
|
39
|
+
readonly threw: EvalThrew;
|
|
40
|
+
} | {
|
|
41
|
+
readonly ok: false;
|
|
42
|
+
readonly refused: string;
|
|
43
|
+
};
|
|
44
|
+
/** Runtime.exceptionDetails, as the protocol sends it. */
|
|
45
|
+
export interface RawExceptionDetails {
|
|
46
|
+
readonly text?: string;
|
|
47
|
+
readonly lineNumber?: number;
|
|
48
|
+
readonly columnNumber?: number;
|
|
49
|
+
readonly exception?: {
|
|
50
|
+
readonly className?: string;
|
|
51
|
+
readonly description?: string;
|
|
52
|
+
};
|
|
53
|
+
readonly stackTrace?: {
|
|
54
|
+
readonly callFrames?: readonly {
|
|
55
|
+
readonly functionName?: string;
|
|
56
|
+
readonly url?: string;
|
|
57
|
+
readonly lineNumber?: number;
|
|
58
|
+
readonly columnNumber?: number;
|
|
59
|
+
}[];
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Read the protocol's account of a thrown exception.
|
|
64
|
+
*
|
|
65
|
+
* The useful message is on the exception's description, not on
|
|
66
|
+
* the details' text, which is only ever "Uncaught" or "Uncaught
|
|
67
|
+
* (in promise)". Reporting the text would tell the caller
|
|
68
|
+
* nothing they did not already know.
|
|
69
|
+
*/
|
|
70
|
+
export declare function describeThrow(details: RawExceptionDetails): EvalThrew;
|
|
71
|
+
/** How much of a rendered value to inline before diverting it. */
|
|
72
|
+
export declare const MAX_INLINE_RESULT = 4096;
|
|
73
|
+
/** Say what happened. */
|
|
74
|
+
export declare function renderEvaluation(outcome: EvalOutcome): string;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What came back from running an expression in the page.
|
|
3
|
+
*
|
|
4
|
+
* An exception is a result, not an error to swallow: running
|
|
5
|
+
* code against a live page to find out how it fails is the whole
|
|
6
|
+
* point of being able to run code against a live page.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Read the protocol's account of a thrown exception.
|
|
10
|
+
*
|
|
11
|
+
* The useful message is on the exception's description, not on
|
|
12
|
+
* the details' text, which is only ever "Uncaught" or "Uncaught
|
|
13
|
+
* (in promise)". Reporting the text would tell the caller
|
|
14
|
+
* nothing they did not already know.
|
|
15
|
+
*/
|
|
16
|
+
export function describeThrow(details) {
|
|
17
|
+
const description = details.exception?.description;
|
|
18
|
+
const message = description ?? details.text ?? "Something threw.";
|
|
19
|
+
return {
|
|
20
|
+
// The description carries its own stack after the first
|
|
21
|
+
// line, which the frames already say more precisely.
|
|
22
|
+
message: message.split("\n")[0] ?? message,
|
|
23
|
+
...(details.exception?.className === undefined
|
|
24
|
+
? {}
|
|
25
|
+
: { className: details.exception.className }),
|
|
26
|
+
frames: (details.stackTrace?.callFrames ?? []).map((frame) => ({
|
|
27
|
+
functionName: frame.functionName || "(anonymous)",
|
|
28
|
+
url: frame.url ?? "",
|
|
29
|
+
lineNumber: frame.lineNumber ?? 0,
|
|
30
|
+
columnNumber: frame.columnNumber ?? 0,
|
|
31
|
+
})),
|
|
32
|
+
fromPromise: (details.text ?? "").includes("in promise"),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** How much of a rendered value to inline before diverting it. */
|
|
36
|
+
export const MAX_INLINE_RESULT = 4096;
|
|
37
|
+
/**
|
|
38
|
+
* Say where a frame is, preferring where it was written.
|
|
39
|
+
*
|
|
40
|
+
* The generated position is kept beside the authored one rather
|
|
41
|
+
* than replaced by it. They disagree often enough, through a
|
|
42
|
+
* stale map or a bundler quirk, that hiding what the browser
|
|
43
|
+
* actually reported would remove the only way to notice.
|
|
44
|
+
*/
|
|
45
|
+
function describeFrame(frame) {
|
|
46
|
+
const generated = `${frame.url}:${frame.lineNumber + 1}:${frame.columnNumber}`;
|
|
47
|
+
if (!frame.authored)
|
|
48
|
+
return generated;
|
|
49
|
+
const { source, line, column, name } = frame.authored;
|
|
50
|
+
const called = name === undefined ? "" : ` (${name})`;
|
|
51
|
+
return `${source}:${line + 1}:${column}${called}\n built from ${generated}`;
|
|
52
|
+
}
|
|
53
|
+
/** Say what happened. */
|
|
54
|
+
export function renderEvaluation(outcome) {
|
|
55
|
+
if (!outcome.ok && "refused" in outcome)
|
|
56
|
+
return outcome.refused;
|
|
57
|
+
if (!outcome.ok) {
|
|
58
|
+
const { threw } = outcome;
|
|
59
|
+
const lines = [
|
|
60
|
+
threw.fromPromise
|
|
61
|
+
? `The page rejected: ${threw.message}`
|
|
62
|
+
: `The page threw: ${threw.message}`,
|
|
63
|
+
];
|
|
64
|
+
// A stack of one anonymous frame at the top of the
|
|
65
|
+
// expression says only what the message already said.
|
|
66
|
+
const useful = threw.frames.filter((frame) => frame.url !== "" || frame.functionName !== "(anonymous)");
|
|
67
|
+
if (useful.length > 0) {
|
|
68
|
+
lines.push("");
|
|
69
|
+
for (const frame of useful) {
|
|
70
|
+
lines.push(` ${frame.functionName} ${describeFrame(frame)}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return lines.join("\n");
|
|
74
|
+
}
|
|
75
|
+
const { result } = outcome;
|
|
76
|
+
if (result.type === "undefined" || result.value === "[undefined]") {
|
|
77
|
+
return "The expression returned undefined.";
|
|
78
|
+
}
|
|
79
|
+
const body = typeof result.value === "string"
|
|
80
|
+
? result.value
|
|
81
|
+
: JSON.stringify(result.value, null, 2);
|
|
82
|
+
const head = `${result.type}:`;
|
|
83
|
+
if (body.length <= MAX_INLINE_RESULT) {
|
|
84
|
+
return result.clipped
|
|
85
|
+
? `${head} ${body}\n\n(Parts were left out to keep this a size.)`
|
|
86
|
+
: `${head} ${body}`;
|
|
87
|
+
}
|
|
88
|
+
return (`${head} ${body.slice(0, MAX_INLINE_RESULT)}\n\n` +
|
|
89
|
+
`... ${body.length - MAX_INLINE_RESULT} more characters. Narrow the ` +
|
|
90
|
+
`expression, or pick out the part you want.`);
|
|
91
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turning a page value into something that can be carried back.
|
|
3
|
+
*
|
|
4
|
+
* Serialization happens in the page, not in the protocol, and
|
|
5
|
+
* that is a deliberate choice rather than a convenience. Asking
|
|
6
|
+
* the protocol to return a circular object by value does not
|
|
7
|
+
* fail politely: it rejects the whole call with "object
|
|
8
|
+
* reference chain is too long", which takes the evaluation and
|
|
9
|
+
* any honest report of it down together. A DOM node and a
|
|
10
|
+
* function fare no better, coming back as an empty object that
|
|
11
|
+
* says nothing about what they were.
|
|
12
|
+
*
|
|
13
|
+
* This is a presentational judgment and is labelled as one. What
|
|
14
|
+
* a value *is* comes from the browser; how it reads once it has
|
|
15
|
+
* crossed the wire is ours to decide.
|
|
16
|
+
*
|
|
17
|
+
* It ships as a source string because it declares helpers of its
|
|
18
|
+
* own, and the bundler rewrites every named inner binding
|
|
19
|
+
* through a wrapper the page has never heard of.
|
|
20
|
+
*/
|
|
21
|
+
/** How deep into a structure to go before saying "more". */
|
|
22
|
+
export declare const SERIALIZE_DEPTH = 4;
|
|
23
|
+
/** How many entries of a collection to show. */
|
|
24
|
+
export declare const SERIALIZE_BREADTH = 30;
|
|
25
|
+
/** How long a single string may be before it is clipped. */
|
|
26
|
+
export declare const SERIALIZE_STRING = 2048;
|
|
27
|
+
/**
|
|
28
|
+
* Build the expression that evaluates a caller's code and
|
|
29
|
+
* describes whatever comes back.
|
|
30
|
+
*/
|
|
31
|
+
export declare function evaluationSource(expression: string): string;
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turning a page value into something that can be carried back.
|
|
3
|
+
*
|
|
4
|
+
* Serialization happens in the page, not in the protocol, and
|
|
5
|
+
* that is a deliberate choice rather than a convenience. Asking
|
|
6
|
+
* the protocol to return a circular object by value does not
|
|
7
|
+
* fail politely: it rejects the whole call with "object
|
|
8
|
+
* reference chain is too long", which takes the evaluation and
|
|
9
|
+
* any honest report of it down together. A DOM node and a
|
|
10
|
+
* function fare no better, coming back as an empty object that
|
|
11
|
+
* says nothing about what they were.
|
|
12
|
+
*
|
|
13
|
+
* This is a presentational judgment and is labelled as one. What
|
|
14
|
+
* a value *is* comes from the browser; how it reads once it has
|
|
15
|
+
* crossed the wire is ours to decide.
|
|
16
|
+
*
|
|
17
|
+
* It ships as a source string because it declares helpers of its
|
|
18
|
+
* own, and the bundler rewrites every named inner binding
|
|
19
|
+
* through a wrapper the page has never heard of.
|
|
20
|
+
*/
|
|
21
|
+
/** How deep into a structure to go before saying "more". */
|
|
22
|
+
export const SERIALIZE_DEPTH = 4;
|
|
23
|
+
/** How many entries of a collection to show. */
|
|
24
|
+
export const SERIALIZE_BREADTH = 30;
|
|
25
|
+
/** How long a single string may be before it is clipped. */
|
|
26
|
+
export const SERIALIZE_STRING = 2048;
|
|
27
|
+
/**
|
|
28
|
+
* Whether a source text is a single JavaScript expression.
|
|
29
|
+
*
|
|
30
|
+
* Decided here rather than in the page. The page could answer it
|
|
31
|
+
* with new Function, but that is exactly what a strict
|
|
32
|
+
* Content-Security-Policy forbids, and an inspection tool must
|
|
33
|
+
* not fail on the pages most worth inspecting. The grammar is
|
|
34
|
+
* the same in both runtimes, and compiling is not running: this
|
|
35
|
+
* never executes the caller's code, so a reference to a page
|
|
36
|
+
* global that does not exist here is irrelevant.
|
|
37
|
+
*/
|
|
38
|
+
function isExpression(source) {
|
|
39
|
+
try {
|
|
40
|
+
new Function(`return (${source});`);
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// A syntax error means it is not one expression. Whether it is
|
|
45
|
+
// valid at all is the page's business to report, not ours.
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The offsets of semicolons that end a statement at the top
|
|
51
|
+
* level, ignoring any inside brackets, strings, templates,
|
|
52
|
+
* regular expressions or comments.
|
|
53
|
+
*
|
|
54
|
+
* Enough to find where the last statement begins. Anything it
|
|
55
|
+
* gets wrong is caught by compiling the result before use, so a
|
|
56
|
+
* wrong guess costs the old behaviour rather than a broken call.
|
|
57
|
+
*/
|
|
58
|
+
function topLevelBreaks(source) {
|
|
59
|
+
const breaks = [];
|
|
60
|
+
let depth = 0;
|
|
61
|
+
let quote = null;
|
|
62
|
+
let comment = null;
|
|
63
|
+
for (let at = 0; at < source.length; at++) {
|
|
64
|
+
const char = source[at];
|
|
65
|
+
const next = source[at + 1];
|
|
66
|
+
if (comment === "line") {
|
|
67
|
+
if (char === "\n")
|
|
68
|
+
comment = null;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (comment === "block") {
|
|
72
|
+
if (char === "*" && next === "/") {
|
|
73
|
+
comment = null;
|
|
74
|
+
at++;
|
|
75
|
+
}
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (quote) {
|
|
79
|
+
if (char === "\\")
|
|
80
|
+
at++;
|
|
81
|
+
else if (char === quote)
|
|
82
|
+
quote = null;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (char === "/" && next === "/") {
|
|
86
|
+
comment = "line";
|
|
87
|
+
at++;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (char === "/" && next === "*") {
|
|
91
|
+
comment = "block";
|
|
92
|
+
at++;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (char === '"' || char === "'" || char === "`") {
|
|
96
|
+
quote = char;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if (char === "(" || char === "[" || char === "{")
|
|
100
|
+
depth++;
|
|
101
|
+
else if (char === ")" || char === "]" || char === "}")
|
|
102
|
+
depth--;
|
|
103
|
+
else if (char === ";" && depth === 0)
|
|
104
|
+
breaks.push(at);
|
|
105
|
+
}
|
|
106
|
+
return breaks;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* A statement list rewritten so its last expression is its value.
|
|
110
|
+
*
|
|
111
|
+
* A console shows the completion value of what you typed, so
|
|
112
|
+
* `var a = 1; a + 41` answers 42. Run as a plain function body it
|
|
113
|
+
* answers undefined, because a function returns nothing unless
|
|
114
|
+
* told to, and that is what this used to do: people paste a
|
|
115
|
+
* snippet ending in the thing they want to see and got nothing
|
|
116
|
+
* back, then retyped it with a return. Nobody reads that as the
|
|
117
|
+
* tool being careful.
|
|
118
|
+
*
|
|
119
|
+
* Rewriting rather than using the page's own eval, which would
|
|
120
|
+
* give these semantics for free, because a page whose policy
|
|
121
|
+
* forbids eval must still be able to answer.
|
|
122
|
+
*
|
|
123
|
+
* Returns undefined when the last statement is not an expression
|
|
124
|
+
* (a declaration, a loop, a block), since prefixing those with
|
|
125
|
+
* return is a syntax error. The rewrite is compiled here before
|
|
126
|
+
* it is offered, so a wrong guess falls back instead of failing
|
|
127
|
+
* in the page.
|
|
128
|
+
*/
|
|
129
|
+
function withCompletionValue(source) {
|
|
130
|
+
const trimmed = source.trimEnd().replace(/;$/, "");
|
|
131
|
+
const breaks = topLevelBreaks(trimmed);
|
|
132
|
+
const lastBreak = breaks[breaks.length - 1];
|
|
133
|
+
if (lastBreak === undefined)
|
|
134
|
+
return undefined;
|
|
135
|
+
const head = trimmed.slice(0, lastBreak + 1);
|
|
136
|
+
const tail = trimmed.slice(lastBreak + 1).trim();
|
|
137
|
+
if (tail === "")
|
|
138
|
+
return undefined;
|
|
139
|
+
const rewritten = `${head} return (${tail});`;
|
|
140
|
+
try {
|
|
141
|
+
new Function(rewritten);
|
|
142
|
+
return rewritten;
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// The last statement was not an expression, so it cannot be
|
|
146
|
+
// returned. The caller still gets the statement list.
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* How the caller's code is turned into one value.
|
|
152
|
+
*
|
|
153
|
+
* An expression is parenthesized so an object literal reads as a
|
|
154
|
+
* value rather than a block, which is the syntax people trip
|
|
155
|
+
* over constantly. Anything else is run as a statement list, the
|
|
156
|
+
* way a console accepts one, because `scrollTo(0, 400); check()`
|
|
157
|
+
* is a thing people type and it used to come back as
|
|
158
|
+
* "SyntaxError: Unexpected token ';'", which reads as the
|
|
159
|
+
* caller's mistake rather than ours. A statement list answers
|
|
160
|
+
* with its last expression, as a console does, and an explicit
|
|
161
|
+
* return still wins.
|
|
162
|
+
*/
|
|
163
|
+
function producer(expression) {
|
|
164
|
+
if (isExpression(expression))
|
|
165
|
+
return `(${expression})`;
|
|
166
|
+
const completing = withCompletionValue(expression);
|
|
167
|
+
return `(() => { ${completing ?? expression} })()`;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Build the expression that evaluates a caller's code and
|
|
171
|
+
* describes whatever comes back.
|
|
172
|
+
*/
|
|
173
|
+
export function evaluationSource(expression) {
|
|
174
|
+
return `(() => {
|
|
175
|
+
const DEPTH = ${SERIALIZE_DEPTH};
|
|
176
|
+
const BREADTH = ${SERIALIZE_BREADTH};
|
|
177
|
+
const STRING = ${SERIALIZE_STRING};
|
|
178
|
+
// The chain of ancestors currently being walked, not every
|
|
179
|
+
// object ever seen: a value reachable by two paths is shared,
|
|
180
|
+
// and only a value that contains itself is circular.
|
|
181
|
+
const path = new Set();
|
|
182
|
+
let clipped = false;
|
|
183
|
+
|
|
184
|
+
const describeNode = (node) => {
|
|
185
|
+
if (node.nodeType === 3) return "#text " + JSON.stringify(
|
|
186
|
+
(node.nodeValue || "").slice(0, 40));
|
|
187
|
+
if (node.nodeType === 9) return "#document";
|
|
188
|
+
const id = node.id ? "#" + node.id : "";
|
|
189
|
+
const cls = node.classList && node.classList.length
|
|
190
|
+
? "." + [...node.classList].join(".") : "";
|
|
191
|
+
return "<" + node.tagName.toLowerCase() + id + cls + ">";
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
const walk = (value, depth) => {
|
|
195
|
+
if (value === null) return null;
|
|
196
|
+
const kind = typeof value;
|
|
197
|
+
if (kind === "undefined") return "[undefined]";
|
|
198
|
+
if (kind === "boolean") return value;
|
|
199
|
+
// JSON has no NaN and no Infinity, so passing them straight
|
|
200
|
+
// through turned three of the answers a console most often
|
|
201
|
+
// gives into "number: null", which is a wrong answer wearing a
|
|
202
|
+
// right one's clothes. bigint below is tagged for this reason.
|
|
203
|
+
if (kind === "number") {
|
|
204
|
+
return Number.isFinite(value) ? value : String(value);
|
|
205
|
+
}
|
|
206
|
+
if (kind === "bigint") return String(value) + "n";
|
|
207
|
+
if (kind === "symbol") return String(value);
|
|
208
|
+
if (kind === "string") {
|
|
209
|
+
if (value.length <= STRING) return value;
|
|
210
|
+
clipped = true;
|
|
211
|
+
return value.slice(0, STRING) + "... (" + value.length + " chars)";
|
|
212
|
+
}
|
|
213
|
+
if (kind === "function") {
|
|
214
|
+
return "[function " + (value.name || "anonymous") + "]";
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
if (value instanceof Error) {
|
|
218
|
+
return "[" + value.name + ": " + value.message + "]";
|
|
219
|
+
}
|
|
220
|
+
if (typeof Node !== "undefined" && value instanceof Node) {
|
|
221
|
+
return describeNode(value);
|
|
222
|
+
}
|
|
223
|
+
if (typeof Window !== "undefined" && value instanceof Window) {
|
|
224
|
+
return "[window]";
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// Circularity is checked before descending, so a structure
|
|
228
|
+
// that points at itself is named rather than followed.
|
|
229
|
+
//
|
|
230
|
+
// Only an ancestor counts. This used to be every object ever
|
|
231
|
+
// visited, never unwound, so an object holding the same store
|
|
232
|
+
// under two keys reported the second as circular when nothing
|
|
233
|
+
// pointed at itself. The unwind is in the finally below so no
|
|
234
|
+
// branch can forget it.
|
|
235
|
+
if (path.has(value)) return "[circular]";
|
|
236
|
+
path.add(value);
|
|
237
|
+
try {
|
|
238
|
+
return descend(value, depth);
|
|
239
|
+
} finally {
|
|
240
|
+
path.delete(value);
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
const descend = (value, depth) => {
|
|
245
|
+
if (depth >= DEPTH) {
|
|
246
|
+
clipped = true;
|
|
247
|
+
return Array.isArray(value) ? "[array, deeper]" : "[object, deeper]";
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
if (Array.isArray(value)) {
|
|
251
|
+
const shown = value.slice(0, BREADTH).map((item) => walk(item, depth + 1));
|
|
252
|
+
if (value.length > BREADTH) {
|
|
253
|
+
clipped = true;
|
|
254
|
+
shown.push("... " + (value.length - BREADTH) + " more");
|
|
255
|
+
}
|
|
256
|
+
return shown;
|
|
257
|
+
}
|
|
258
|
+
if (value instanceof Map || value instanceof Set) {
|
|
259
|
+
const items = [...value].slice(0, BREADTH)
|
|
260
|
+
.map((item) => walk(item, depth + 1));
|
|
261
|
+
if (value.size > BREADTH) {
|
|
262
|
+
clipped = true;
|
|
263
|
+
items.push("... " + (value.size - BREADTH) + " more");
|
|
264
|
+
}
|
|
265
|
+
return { ["[" + value.constructor.name + "]"]: items };
|
|
266
|
+
}
|
|
267
|
+
if (typeof NodeList !== "undefined" && value instanceof NodeList) {
|
|
268
|
+
return [...value].slice(0, BREADTH).map(describeNode);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const out = {};
|
|
272
|
+
const keys = Object.keys(value);
|
|
273
|
+
for (const key of keys.slice(0, BREADTH)) {
|
|
274
|
+
try {
|
|
275
|
+
out[key] = walk(value[key], depth + 1);
|
|
276
|
+
} catch (error) {
|
|
277
|
+
// A getter that throws is the page's problem, not a
|
|
278
|
+
// reason to lose everything else on the object.
|
|
279
|
+
out[key] = "[threw: " + error.message + "]";
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
if (keys.length > BREADTH) {
|
|
283
|
+
clipped = true;
|
|
284
|
+
out["..."] = (keys.length - BREADTH) + " more keys";
|
|
285
|
+
}
|
|
286
|
+
return out;
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
const typeOf = (value) => {
|
|
290
|
+
if (value === null) return "null";
|
|
291
|
+
if (Array.isArray(value)) return "array";
|
|
292
|
+
if (typeof Node !== "undefined" && value instanceof Node) return "node";
|
|
293
|
+
return typeof value;
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
const value = ${producer(expression)};
|
|
297
|
+
return Promise.resolve(value).then((settled) => ({
|
|
298
|
+
type: typeOf(settled),
|
|
299
|
+
value: walk(settled, 0),
|
|
300
|
+
clipped,
|
|
301
|
+
}));
|
|
302
|
+
})()`;
|
|
303
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Driving a browser, and reading back everything it knows.
|
|
3
|
+
*
|
|
4
|
+
* This barrel is the front door: the session that drives a real
|
|
5
|
+
* Chrome, the one-shot page reader, and web search. Everything
|
|
6
|
+
* else lives in a subdomain barrel beside it, because the whole
|
|
7
|
+
* surface in one namespace would be several hundred names, and
|
|
8
|
+
* a consumer who wants contrast arithmetic should not have to
|
|
9
|
+
* load a browser to get it.
|
|
10
|
+
*
|
|
11
|
+
* The subdomains, and what each is for:
|
|
12
|
+
*
|
|
13
|
+
* - `a11y/` the accessibility tree, reading order, live
|
|
14
|
+
* region announcements, keyboard walks
|
|
15
|
+
* - `audit/` verdicts: axe, structural and layout rules,
|
|
16
|
+
* contrast and target-size arithmetic, sweeps
|
|
17
|
+
* - `compare/` diffing a page against a baseline of itself
|
|
18
|
+
* - `design/` what a page is built from, and its drift
|
|
19
|
+
* - `element/` one element in depth: box, styles, listeners,
|
|
20
|
+
* animations, actionability
|
|
21
|
+
* - `envelope/` paging, budgets and the on-disk artifact sink
|
|
22
|
+
* - `environment/` emulation, storage, network shaping, status
|
|
23
|
+
* - `evaluate/` running an expression and surviving the result
|
|
24
|
+
* - `input/` key chords, pointer paths, touch gestures
|
|
25
|
+
* - `perf/` web vitals from the browser's own observers
|
|
26
|
+
* - `snapshot/` the whole page flattened, frames and shadow
|
|
27
|
+
* content included, and queries over it
|
|
28
|
+
* - `sourcemap/` where generated code was authored
|
|
29
|
+
* - `styles/` computed style curation and cascade tracing
|
|
30
|
+
* - `target/` naming an element by role and accessible name
|
|
31
|
+
* - `telemetry/` console, network, dialogs, downloads, lifecycle
|
|
32
|
+
* - `wait/` conditions worth waiting for
|
|
33
|
+
*
|
|
34
|
+
* Every subdomain but `session` is pure and capture-agnostic:
|
|
35
|
+
* serializable data in, answers out. That is what lets the same
|
|
36
|
+
* analysis run against a live page, a stored capture, or one
|
|
37
|
+
* taken by something that is not this library at all. Only
|
|
38
|
+
* `session` and `browser` reach for puppeteer, so importing an
|
|
39
|
+
* analysis module never starts a browser.
|
|
40
|
+
*/
|
|
41
|
+
export { type AxNode, type AxProperties, normalizeAxTree, type RawAxNode, renderAxOutline, } from "./a11y/index.js";
|
|
42
|
+
export { BrowserLaunchFailed, closeBrowser, killBrowserSync, } from "./browser.js";
|
|
43
|
+
export { type MermaidRender, MermaidRenderError, renderMermaid, } from "./mermaid.js";
|
|
44
|
+
export { AuthSetupNeeded, cleanupSessionBundles, type PageBundle, readPage, reapAbandonedBundles, } from "./reader.js";
|
|
45
|
+
export { type SearchResult, webSearch } from "./search.js";
|
|
46
|
+
export { type ActResult, BrowserSession, type Observation, type PageAction, } from "./session.js";
|
|
47
|
+
export { resolveTarget, type Target as SemanticTarget, type TargetResolution, } from "./target/index.js";
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Driving a browser, and reading back everything it knows.
|
|
3
|
+
*
|
|
4
|
+
* This barrel is the front door: the session that drives a real
|
|
5
|
+
* Chrome, the one-shot page reader, and web search. Everything
|
|
6
|
+
* else lives in a subdomain barrel beside it, because the whole
|
|
7
|
+
* surface in one namespace would be several hundred names, and
|
|
8
|
+
* a consumer who wants contrast arithmetic should not have to
|
|
9
|
+
* load a browser to get it.
|
|
10
|
+
*
|
|
11
|
+
* The subdomains, and what each is for:
|
|
12
|
+
*
|
|
13
|
+
* - `a11y/` the accessibility tree, reading order, live
|
|
14
|
+
* region announcements, keyboard walks
|
|
15
|
+
* - `audit/` verdicts: axe, structural and layout rules,
|
|
16
|
+
* contrast and target-size arithmetic, sweeps
|
|
17
|
+
* - `compare/` diffing a page against a baseline of itself
|
|
18
|
+
* - `design/` what a page is built from, and its drift
|
|
19
|
+
* - `element/` one element in depth: box, styles, listeners,
|
|
20
|
+
* animations, actionability
|
|
21
|
+
* - `envelope/` paging, budgets and the on-disk artifact sink
|
|
22
|
+
* - `environment/` emulation, storage, network shaping, status
|
|
23
|
+
* - `evaluate/` running an expression and surviving the result
|
|
24
|
+
* - `input/` key chords, pointer paths, touch gestures
|
|
25
|
+
* - `perf/` web vitals from the browser's own observers
|
|
26
|
+
* - `snapshot/` the whole page flattened, frames and shadow
|
|
27
|
+
* content included, and queries over it
|
|
28
|
+
* - `sourcemap/` where generated code was authored
|
|
29
|
+
* - `styles/` computed style curation and cascade tracing
|
|
30
|
+
* - `target/` naming an element by role and accessible name
|
|
31
|
+
* - `telemetry/` console, network, dialogs, downloads, lifecycle
|
|
32
|
+
* - `wait/` conditions worth waiting for
|
|
33
|
+
*
|
|
34
|
+
* Every subdomain but `session` is pure and capture-agnostic:
|
|
35
|
+
* serializable data in, answers out. That is what lets the same
|
|
36
|
+
* analysis run against a live page, a stored capture, or one
|
|
37
|
+
* taken by something that is not this library at all. Only
|
|
38
|
+
* `session` and `browser` reach for puppeteer, so importing an
|
|
39
|
+
* analysis module never starts a browser.
|
|
40
|
+
*/
|
|
41
|
+
export { normalizeAxTree, renderAxOutline, } from "./a11y/index.js";
|
|
42
|
+
export { BrowserLaunchFailed, closeBrowser, killBrowserSync, } from "./browser.js";
|
|
43
|
+
export { MermaidRenderError, renderMermaid, } from "./mermaid.js";
|
|
44
|
+
export { AuthSetupNeeded, cleanupSessionBundles, readPage, reapAbandonedBundles, } from "./reader.js";
|
|
45
|
+
export { webSearch } from "./search.js";
|
|
46
|
+
export { BrowserSession, } from "./session.js";
|
|
47
|
+
export { resolveTarget, } from "./target/index.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw input: chords, pointer gestures and touch gestures.
|
|
3
|
+
*
|
|
4
|
+
* Everything here is pure composition. A gesture is described as
|
|
5
|
+
* the ordered events a real hand would produce, and dispatching
|
|
6
|
+
* them is the session's job, so the shape of an interaction can
|
|
7
|
+
* be checked without a browser.
|
|
8
|
+
*/
|
|
9
|
+
export { type Chord, type ChordRefusal, MODIFIER_BITS, type ModifierName, parseChords, } from "./keys.js";
|
|
10
|
+
export { composeClick, composeDrag, type DragOptions, interpolate, type MouseButton, type Point, type PointerEventStep, ratios, } from "./pointer.js";
|
|
11
|
+
export { composeLongPress, composePinch, composeSwipe, composeTap, LONG_PRESS_MS, type TouchPoint, type TouchStep, } from "./touch.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw input: chords, pointer gestures and touch gestures.
|
|
3
|
+
*
|
|
4
|
+
* Everything here is pure composition. A gesture is described as
|
|
5
|
+
* the ordered events a real hand would produce, and dispatching
|
|
6
|
+
* them is the session's job, so the shape of an interaction can
|
|
7
|
+
* be checked without a browser.
|
|
8
|
+
*/
|
|
9
|
+
export { MODIFIER_BITS, parseChords, } from "./keys.js";
|
|
10
|
+
export { composeClick, composeDrag, interpolate, ratios, } from "./pointer.js";
|
|
11
|
+
export { composeLongPress, composePinch, composeSwipe, composeTap, LONG_PRESS_MS, } from "./touch.js";
|