@workerstack/testing 0.0.0-stage → 0.31.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/LICENSE +21 -0
- package/README.md +134 -2
- package/bin/testing.js +4 -0
- package/dist/api/cli/commands/baseline.d.ts +5 -0
- package/dist/api/cli/commands/baseline.js +46 -0
- package/dist/api/cli/commands/conformance-matrix.d.ts +40 -0
- package/dist/api/cli/commands/conformance-matrix.js +193 -0
- package/dist/api/cli/commands/conformance-proven.d.ts +15 -0
- package/dist/api/cli/commands/conformance-proven.js +44 -0
- package/dist/api/cli/commands/conformance-suites.d.ts +11 -0
- package/dist/api/cli/commands/conformance-suites.js +35 -0
- package/dist/api/cli/commands/conformance-tail.d.ts +27 -0
- package/dist/api/cli/commands/conformance-tail.js +61 -0
- package/dist/api/cli/commands/conformance-toolkit.d.ts +19 -0
- package/dist/api/cli/commands/conformance-toolkit.js +33 -0
- package/dist/api/cli/commands/conformance.d.ts +11 -0
- package/dist/api/cli/commands/conformance.js +191 -0
- package/dist/api/cli/commands/diff.d.ts +5 -0
- package/dist/api/cli/commands/diff.js +42 -0
- package/dist/api/cli/commands/doctor.d.ts +5 -0
- package/dist/api/cli/commands/doctor.js +44 -0
- package/dist/api/cli/commands/init-code.d.ts +15 -0
- package/dist/api/cli/commands/init-code.js +54 -0
- package/dist/api/cli/commands/init-config.d.ts +21 -0
- package/dist/api/cli/commands/init-config.js +233 -0
- package/dist/api/cli/commands/init.d.ts +13 -0
- package/dist/api/cli/commands/init.js +68 -0
- package/dist/api/cli/commands/plan.d.ts +11 -0
- package/dist/api/cli/commands/plan.js +64 -0
- package/dist/api/cli/commands/run-options.d.ts +29 -0
- package/dist/api/cli/commands/run-options.js +79 -0
- package/dist/api/cli/commands/run-progress.d.ts +19 -0
- package/dist/api/cli/commands/run-progress.js +47 -0
- package/dist/api/cli/commands/run-report.d.ts +42 -0
- package/dist/api/cli/commands/run-report.js +126 -0
- package/dist/api/cli/commands/run-signals.d.ts +23 -0
- package/dist/api/cli/commands/run-signals.js +32 -0
- package/dist/api/cli/commands/run.d.ts +18 -0
- package/dist/api/cli/commands/run.js +149 -0
- package/dist/api/cli/commands/serve.d.ts +24 -0
- package/dist/api/cli/commands/serve.js +49 -0
- package/dist/api/cli/commands/spec.d.ts +25 -0
- package/dist/api/cli/commands/spec.js +76 -0
- package/dist/api/cli/config.d.ts +19 -0
- package/dist/api/cli/config.js +40 -0
- package/dist/api/cli/flag-kinds.d.ts +40 -0
- package/dist/api/cli/flag-kinds.js +3 -0
- package/dist/api/cli/flags.d.ts +64 -0
- package/dist/api/cli/flags.js +250 -0
- package/dist/api/cli/legacy-run.d.ts +4 -0
- package/dist/api/cli/legacy-run.js +11 -0
- package/dist/api/cli/main.d.ts +25 -0
- package/dist/api/cli/main.js +76 -0
- package/dist/api/cli/writer.d.ts +15 -0
- package/dist/api/cli/writer.js +27 -0
- package/dist/api/cli.d.ts +3 -0
- package/dist/api/cli.js +10 -0
- package/dist/api/client/answer.d.ts +14 -0
- package/dist/api/client/answer.js +143 -0
- package/dist/api/client/attempt.d.ts +77 -0
- package/dist/api/client/attempt.js +3 -0
- package/dist/api/client/bypass.d.ts +18 -0
- package/dist/api/client/bypass.js +15 -0
- package/dist/api/client/cache-signals.d.ts +17 -0
- package/dist/api/client/cache-signals.js +35 -0
- package/dist/api/client/client.d.ts +75 -0
- package/dist/api/client/client.js +185 -0
- package/dist/api/client/control.d.ts +36 -0
- package/dist/api/client/control.js +69 -0
- package/dist/api/client/credential-source.d.ts +142 -0
- package/dist/api/client/credential-source.js +31 -0
- package/dist/api/client/credentials.d.ts +43 -0
- package/dist/api/client/credentials.js +178 -0
- package/dist/api/client/curl.d.ts +24 -0
- package/dist/api/client/curl.js +100 -0
- package/dist/api/client/declared.d.ts +17 -0
- package/dist/api/client/declared.js +57 -0
- package/dist/api/client/fence.d.ts +17 -0
- package/dist/api/client/fence.js +24 -0
- package/dist/api/client/journal.d.ts +42 -0
- package/dist/api/client/journal.js +75 -0
- package/dist/api/client/message.d.ts +15 -0
- package/dist/api/client/message.js +47 -0
- package/dist/api/client/param-style.d.ts +29 -0
- package/dist/api/client/param-style.js +78 -0
- package/dist/api/client/placing.d.ts +87 -0
- package/dist/api/client/placing.js +174 -0
- package/dist/api/client/read-path.d.ts +13 -0
- package/dist/api/client/read-path.js +90 -0
- package/dist/api/client/redirect.d.ts +37 -0
- package/dist/api/client/redirect.js +64 -0
- package/dist/api/client/refresh.d.ts +17 -0
- package/dist/api/client/refresh.js +14 -0
- package/dist/api/client/request.d.ts +20 -0
- package/dist/api/client/request.js +182 -0
- package/dist/api/client/retry.d.ts +29 -0
- package/dist/api/client/retry.js +100 -0
- package/dist/api/client/serialize.d.ts +27 -0
- package/dist/api/client/serialize.js +93 -0
- package/dist/api/client/slots.d.ts +11 -0
- package/dist/api/client/slots.js +20 -0
- package/dist/api/client/types.d.ts +149 -0
- package/dist/api/client/types.js +3 -0
- package/dist/api/config/define/define-config.d.ts +18 -0
- package/dist/api/config/define/define-config.js +19 -0
- package/dist/api/config/define/types.d.ts +13 -0
- package/dist/api/config/define/types.js +9 -0
- package/dist/api/config/env.d.ts +10 -0
- package/dist/api/config/env.js +31 -0
- package/dist/api/config/load.d.ts +19 -0
- package/dist/api/config/load.js +87 -0
- package/dist/api/config/types/config.d.ts +282 -0
- package/dist/api/config/types/config.js +3 -0
- package/dist/api/config/types/hooks.d.ts +265 -0
- package/dist/api/config/types/hooks.js +3 -0
- package/dist/api/config/types/placeholder.d.ts +11 -0
- package/dist/api/config/types/placeholder.js +26 -0
- package/dist/api/config/types/query.d.ts +76 -0
- package/dist/api/config/types/query.js +7 -0
- package/dist/api/config/types/raw.d.ts +17 -0
- package/dist/api/config/types/raw.js +15 -0
- package/dist/api/config/types/security.d.ts +138 -0
- package/dist/api/config/types/security.js +7 -0
- package/dist/api/config/types/steps.d.ts +166 -0
- package/dist/api/config/types/steps.js +3 -0
- package/dist/api/config/validate.d.ts +16 -0
- package/dist/api/config/validate.js +176 -0
- package/dist/api/conformance/effects/backend.d.ts +7 -0
- package/dist/api/conformance/effects/backend.js +56 -0
- package/dist/api/conformance/effects/spec.d.ts +4 -0
- package/dist/api/conformance/effects/spec.js +90 -0
- package/dist/api/conformance/effects.d.ts +10 -0
- package/dist/api/conformance/effects.js +97 -0
- package/dist/api/conformance/expected/composition.d.ts +8 -0
- package/dist/api/conformance/expected/composition.js +81 -0
- package/dist/api/conformance/expected/conformance.d.ts +8 -0
- package/dist/api/conformance/expected/conformance.js +20 -0
- package/dist/api/conformance/expected/consistency.d.ts +8 -0
- package/dist/api/conformance/expected/consistency.js +21 -0
- package/dist/api/conformance/expected/filter.d.ts +8 -0
- package/dist/api/conformance/expected/filter.js +76 -0
- package/dist/api/conformance/expected/isolation.d.ts +8 -0
- package/dist/api/conformance/expected/isolation.js +37 -0
- package/dist/api/conformance/expected/other.d.ts +8 -0
- package/dist/api/conformance/expected/other.js +26 -0
- package/dist/api/conformance/expected/pagination.d.ts +8 -0
- package/dist/api/conformance/expected/pagination.js +23 -0
- package/dist/api/conformance/expected/security.d.ts +8 -0
- package/dist/api/conformance/expected/security.js +29 -0
- package/dist/api/conformance/expected/sort.d.ts +8 -0
- package/dist/api/conformance/expected/sort.js +13 -0
- package/dist/api/conformance/expected/table.d.ts +11 -0
- package/dist/api/conformance/expected/table.js +32 -0
- package/dist/api/conformance/expected/validation.d.ts +8 -0
- package/dist/api/conformance/expected/validation.js +12 -0
- package/dist/api/conformance/expected/write.d.ts +8 -0
- package/dist/api/conformance/expected/write.js +66 -0
- package/dist/api/conformance/expected-failures.d.ts +18 -0
- package/dist/api/conformance/expected-failures.js +18 -0
- package/dist/api/conformance/feature-gate/harness.d.ts +20 -0
- package/dist/api/conformance/feature-gate/harness.js +109 -0
- package/dist/api/conformance/feature-gate/spec.d.ts +5 -0
- package/dist/api/conformance/feature-gate/spec.js +114 -0
- package/dist/api/conformance/feature-gate.d.ts +11 -0
- package/dist/api/conformance/feature-gate.js +189 -0
- package/dist/api/conformance/fuzz/diagnose.d.ts +78 -0
- package/dist/api/conformance/fuzz/diagnose.js +102 -0
- package/dist/api/conformance/fuzz/render.d.ts +11 -0
- package/dist/api/conformance/fuzz/render.js +59 -0
- package/dist/api/conformance/fuzz.d.ts +55 -0
- package/dist/api/conformance/fuzz.js +139 -0
- package/dist/api/conformance/harness/counting.d.ts +62 -0
- package/dist/api/conformance/harness/counting.js +135 -0
- package/dist/api/conformance/harness/launch.d.ts +50 -0
- package/dist/api/conformance/harness/launch.js +46 -0
- package/dist/api/conformance/harness/result.d.ts +8 -0
- package/dist/api/conformance/harness/result.js +2 -0
- package/dist/api/conformance/harness/routes.d.ts +13 -0
- package/dist/api/conformance/harness/routes.js +15 -0
- package/dist/api/conformance/harness/security.d.ts +24 -0
- package/dist/api/conformance/harness/security.js +24 -0
- package/dist/api/conformance/harness/serve.d.ts +13 -0
- package/dist/api/conformance/harness/serve.js +26 -0
- package/dist/api/conformance/leaks.d.ts +30 -0
- package/dist/api/conformance/leaks.js +75 -0
- package/dist/api/conformance/matrix/cases.d.ts +63 -0
- package/dist/api/conformance/matrix/cases.js +157 -0
- package/dist/api/conformance/matrix/defects.d.ts +72 -0
- package/dist/api/conformance/matrix/defects.js +233 -0
- package/dist/api/conformance/matrix/engines.d.ts +26 -0
- package/dist/api/conformance/matrix/engines.js +45 -0
- package/dist/api/conformance/matrix/expected.d.ts +9 -0
- package/dist/api/conformance/matrix/expected.js +14 -0
- package/dist/api/conformance/matrix/opt-in.d.ts +14 -0
- package/dist/api/conformance/matrix/opt-in.js +15 -0
- package/dist/api/conformance/matrix/principals.d.ts +11 -0
- package/dist/api/conformance/matrix/principals.js +51 -0
- package/dist/api/conformance/matrix/render.d.ts +47 -0
- package/dist/api/conformance/matrix/render.js +211 -0
- package/dist/api/conformance/pool.d.ts +46 -0
- package/dist/api/conformance/pool.js +104 -0
- package/dist/api/conformance/rate-limit/backend.d.ts +9 -0
- package/dist/api/conformance/rate-limit/backend.js +90 -0
- package/dist/api/conformance/rate-limit/spec.d.ts +7 -0
- package/dist/api/conformance/rate-limit/spec.js +71 -0
- package/dist/api/conformance/rate-limit.d.ts +9 -0
- package/dist/api/conformance/rate-limit.js +137 -0
- package/dist/api/conformance/scope.d.ts +16 -0
- package/dist/api/conformance/scope.js +87 -0
- package/dist/api/conformance/seed-contract/fixture-walk.d.ts +42 -0
- package/dist/api/conformance/seed-contract/fixture-walk.js +143 -0
- package/dist/api/conformance/seed-contract/members.d.ts +15 -0
- package/dist/api/conformance/seed-contract/members.js +145 -0
- package/dist/api/conformance/seed-contract/project.d.ts +11 -0
- package/dist/api/conformance/seed-contract/project.js +113 -0
- package/dist/api/conformance/seed-contract/users.d.ts +14 -0
- package/dist/api/conformance/seed-contract/users.js +103 -0
- package/dist/api/conformance/seed-contract.d.ts +13 -0
- package/dist/api/conformance/seed-contract.js +152 -0
- package/dist/api/conformance/serve-tasks.d.ts +20 -0
- package/dist/api/conformance/serve-tasks.js +14 -0
- package/dist/api/conformance/shapes.d.ts +69 -0
- package/dist/api/conformance/shapes.js +208 -0
- package/dist/api/conformance/shards.d.ts +20 -0
- package/dist/api/conformance/shards.js +43 -0
- package/dist/api/conformance/specs/documents.d.ts +7 -0
- package/dist/api/conformance/specs/documents.js +131 -0
- package/dist/api/conformance/specs/models.d.ts +5 -0
- package/dist/api/conformance/specs/models.js +252 -0
- package/dist/api/conformance/specs/types.d.ts +10 -0
- package/dist/api/conformance/specs/types.js +2 -0
- package/dist/api/conformance/specs.d.ts +16 -0
- package/dist/api/conformance/specs.js +18 -0
- package/dist/api/conformance/suites/coverage-report.d.ts +9 -0
- package/dist/api/conformance/suites/coverage-report.js +50 -0
- package/dist/api/conformance/suites/example.d.ts +4 -0
- package/dist/api/conformance/suites/example.js +65 -0
- package/dist/api/conformance/suites/parser.d.ts +4 -0
- package/dist/api/conformance/suites/parser.js +92 -0
- package/dist/api/conformance/suites/payload-catalog.d.ts +3 -0
- package/dist/api/conformance/suites/payload-catalog.js +13 -0
- package/dist/api/conformance/suites/public-catalog.d.ts +7 -0
- package/dist/api/conformance/suites/public-catalog.js +168 -0
- package/dist/api/conformance/suites/render.d.ts +6 -0
- package/dist/api/conformance/suites/render.js +19 -0
- package/dist/api/conformance/suites/repro-syntax.d.ts +11 -0
- package/dist/api/conformance/suites/repro-syntax.js +55 -0
- package/dist/api/conformance/suites/tag-unlock.d.ts +19 -0
- package/dist/api/conformance/suites/tag-unlock.js +54 -0
- package/dist/api/conformance/suites/tenant-scope.d.ts +4 -0
- package/dist/api/conformance/suites/tenant-scope.js +125 -0
- package/dist/api/conformance/tasks.d.ts +70 -0
- package/dist/api/conformance/tasks.js +53 -0
- package/dist/api/conformance/unique/backend.d.ts +53 -0
- package/dist/api/conformance/unique/backend.js +152 -0
- package/dist/api/conformance/unique/cases.d.ts +22 -0
- package/dist/api/conformance/unique/cases.js +201 -0
- package/dist/api/conformance/unique/document.d.ts +12 -0
- package/dist/api/conformance/unique/document.js +106 -0
- package/dist/api/conformance/unique/judges.d.ts +28 -0
- package/dist/api/conformance/unique/judges.js +118 -0
- package/dist/api/conformance/unique/spec.d.ts +14 -0
- package/dist/api/conformance/unique/spec.js +139 -0
- package/dist/api/conformance/unique.d.ts +9 -0
- package/dist/api/conformance/unique.js +19 -0
- package/dist/api/conformance/worker.d.ts +3 -0
- package/dist/api/conformance/worker.js +5 -0
- package/dist/api/credentials/anchors.d.ts +24 -0
- package/dist/api/credentials/anchors.js +32 -0
- package/dist/api/credentials/dedicated.d.ts +8 -0
- package/dist/api/credentials/dedicated.js +106 -0
- package/dist/api/credentials/effective.d.ts +5 -0
- package/dist/api/credentials/effective.js +25 -0
- package/dist/api/credentials/expiry.d.ts +18 -0
- package/dist/api/credentials/expiry.js +24 -0
- package/dist/api/credentials/interpolate.d.ts +21 -0
- package/dist/api/credentials/interpolate.js +79 -0
- package/dist/api/credentials/jwt.d.ts +7 -0
- package/dist/api/credentials/jwt.js +20 -0
- package/dist/api/credentials/origin-recipes.d.ts +13 -0
- package/dist/api/credentials/origin-recipes.js +23 -0
- package/dist/api/credentials/placeholders.d.ts +10 -0
- package/dist/api/credentials/placeholders.js +71 -0
- package/dist/api/credentials/placement.d.ts +23 -0
- package/dist/api/credentials/placement.js +41 -0
- package/dist/api/credentials/ports.d.ts +96 -0
- package/dist/api/credentials/ports.js +2 -0
- package/dist/api/credentials/probe-principal.d.ts +9 -0
- package/dist/api/credentials/probe-principal.js +23 -0
- package/dist/api/credentials/read.d.ts +4 -0
- package/dist/api/credentials/read.js +16 -0
- package/dist/api/credentials/recipes/acquire.d.ts +7 -0
- package/dist/api/credentials/recipes/acquire.js +32 -0
- package/dist/api/credentials/recipes/answer.d.ts +14 -0
- package/dist/api/credentials/recipes/answer.js +32 -0
- package/dist/api/credentials/recipes/hook.d.ts +9 -0
- package/dist/api/credentials/recipes/hook.js +21 -0
- package/dist/api/credentials/recipes/login.d.ts +18 -0
- package/dist/api/credentials/recipes/login.js +146 -0
- package/dist/api/credentials/recipes/mint.d.ts +5 -0
- package/dist/api/credentials/recipes/mint.js +60 -0
- package/dist/api/credentials/recipes/oauth2.d.ts +5 -0
- package/dist/api/credentials/recipes/oauth2.js +54 -0
- package/dist/api/credentials/recipes/static.d.ts +8 -0
- package/dist/api/credentials/recipes/static.js +14 -0
- package/dist/api/credentials/recipes/types.d.ts +31 -0
- package/dist/api/credentials/recipes/types.js +2 -0
- package/dist/api/credentials/refresh.d.ts +13 -0
- package/dist/api/credentials/refresh.js +30 -0
- package/dist/api/credentials/satisfy.d.ts +13 -0
- package/dist/api/credentials/satisfy.js +35 -0
- package/dist/api/credentials/sign-in-fields.d.ts +4 -0
- package/dist/api/credentials/sign-in-fields.js +36 -0
- package/dist/api/credentials/signup.d.ts +9 -0
- package/dist/api/credentials/signup.js +24 -0
- package/dist/api/credentials/store-plan.d.ts +94 -0
- package/dist/api/credentials/store-plan.js +144 -0
- package/dist/api/credentials/store-types.d.ts +133 -0
- package/dist/api/credentials/store-types.js +3 -0
- package/dist/api/credentials/store.d.ts +5 -0
- package/dist/api/credentials/store.js +222 -0
- package/dist/api/credentials/validate/document.d.ts +10 -0
- package/dist/api/credentials/validate/document.js +52 -0
- package/dist/api/credentials/validate/origins.d.ts +27 -0
- package/dist/api/credentials/validate/origins.js +41 -0
- package/dist/api/credentials/validate/principals.d.ts +28 -0
- package/dist/api/credentials/validate/principals.js +184 -0
- package/dist/api/credentials/validate/recipe-shape.d.ts +22 -0
- package/dist/api/credentials/validate/recipe-shape.js +169 -0
- package/dist/api/credentials/validate/scenario-placeholders.d.ts +7 -0
- package/dist/api/credentials/validate/scenario-placeholders.js +106 -0
- package/dist/api/credentials/validate/security.d.ts +37 -0
- package/dist/api/credentials/validate/security.js +179 -0
- package/dist/api/credentials/writer.d.ts +5 -0
- package/dist/api/credentials/writer.js +9 -0
- package/dist/api/errors/message.d.ts +3 -0
- package/dist/api/errors/message.js +5 -0
- package/dist/api/errors/missing-value.d.ts +13 -0
- package/dist/api/errors/missing-value.js +16 -0
- package/dist/api/errors/network.d.ts +21 -0
- package/dist/api/errors/network.js +122 -0
- package/dist/api/errors/node-floor.d.ts +8 -0
- package/dist/api/errors/node-floor.js +8 -0
- package/dist/api/errors/suggest.d.ts +5 -0
- package/dist/api/errors/suggest.js +29 -0
- package/dist/api/errors/usage-error.d.ts +9 -0
- package/dist/api/errors/usage-error.js +9 -0
- package/dist/api/index.d.ts +26 -0
- package/dist/api/index.js +18 -0
- package/dist/api/reference/defects/bystanders.d.ts +8 -0
- package/dist/api/reference/defects/bystanders.js +7 -0
- package/dist/api/reference/defects/catalog.d.ts +88 -0
- package/dist/api/reference/defects/catalog.js +88 -0
- package/dist/api/reference/defects/composition.d.ts +59 -0
- package/dist/api/reference/defects/composition.js +59 -0
- package/dist/api/reference/defects/core.d.ts +63 -0
- package/dist/api/reference/defects/core.js +63 -0
- package/dist/api/reference/defects/defect-set.d.ts +10 -0
- package/dist/api/reference/defects/defect-set.js +19 -0
- package/dist/api/reference/defects/freshness.d.ts +8 -0
- package/dist/api/reference/defects/freshness.js +8 -0
- package/dist/api/reference/defects/query.d.ts +58 -0
- package/dist/api/reference/defects/query.js +58 -0
- package/dist/api/reference/defects/records.d.ts +172 -0
- package/dist/api/reference/defects/records.js +172 -0
- package/dist/api/reference/defects/security.d.ts +32 -0
- package/dist/api/reference/defects/security.js +32 -0
- package/dist/api/reference/defects/table.d.ts +21 -0
- package/dist/api/reference/defects/table.js +31 -0
- package/dist/api/reference/dialect/canonical.d.ts +10 -0
- package/dist/api/reference/dialect/canonical.js +42 -0
- package/dist/api/reference/dialect/presets.d.ts +63 -0
- package/dist/api/reference/dialect/presets.js +193 -0
- package/dist/api/reference/dialect/template.d.ts +3 -0
- package/dist/api/reference/dialect/template.js +63 -0
- package/dist/api/reference/dialect/types.d.ts +61 -0
- package/dist/api/reference/dialect/types.js +2 -0
- package/dist/api/reference/http/access.d.ts +27 -0
- package/dist/api/reference/http/access.js +131 -0
- package/dist/api/reference/http/auth/api-keys.d.ts +27 -0
- package/dist/api/reference/http/auth/api-keys.js +83 -0
- package/dist/api/reference/http/auth/credentials.d.ts +12 -0
- package/dist/api/reference/http/auth/credentials.js +33 -0
- package/dist/api/reference/http/auth/jwt.d.ts +11 -0
- package/dist/api/reference/http/auth/jwt.js +38 -0
- package/dist/api/reference/http/auth/sessions.d.ts +18 -0
- package/dist/api/reference/http/auth/sessions.js +105 -0
- package/dist/api/reference/http/auth/throttle.d.ts +8 -0
- package/dist/api/reference/http/auth/throttle.js +28 -0
- package/dist/api/reference/http/auth/types.d.ts +80 -0
- package/dist/api/reference/http/auth/types.js +3 -0
- package/dist/api/reference/http/body.d.ts +11 -0
- package/dist/api/reference/http/body.js +55 -0
- package/dist/api/reference/http/engines.d.ts +46 -0
- package/dist/api/reference/http/engines.js +75 -0
- package/dist/api/reference/http/errors.d.ts +16 -0
- package/dist/api/reference/http/errors.js +47 -0
- package/dist/api/reference/http/fetch.d.ts +4 -0
- package/dist/api/reference/http/fetch.js +12 -0
- package/dist/api/reference/http/handlers/actions.d.ts +6 -0
- package/dist/api/reference/http/handlers/actions.js +59 -0
- package/dist/api/reference/http/handlers/api-keys.d.ts +16 -0
- package/dist/api/reference/http/handlers/api-keys.js +64 -0
- package/dist/api/reference/http/handlers/auth.d.ts +25 -0
- package/dist/api/reference/http/handlers/auth.js +123 -0
- package/dist/api/reference/http/handlers/create.d.ts +6 -0
- package/dist/api/reference/http/handlers/create.js +141 -0
- package/dist/api/reference/http/handlers/entity.d.ts +9 -0
- package/dist/api/reference/http/handlers/entity.js +3 -0
- package/dist/api/reference/http/handlers/fixed.d.ts +16 -0
- package/dist/api/reference/http/handlers/fixed.js +129 -0
- package/dist/api/reference/http/handlers/grants.d.ts +6 -0
- package/dist/api/reference/http/handlers/grants.js +65 -0
- package/dist/api/reference/http/handlers/item.d.ts +8 -0
- package/dist/api/reference/http/handlers/item.js +129 -0
- package/dist/api/reference/http/handlers/list.d.ts +6 -0
- package/dist/api/reference/http/handlers/list.js +139 -0
- package/dist/api/reference/http/handlers/query-route.d.ts +4 -0
- package/dist/api/reference/http/handlers/query-route.js +35 -0
- package/dist/api/reference/http/handlers/styles.d.ts +4 -0
- package/dist/api/reference/http/handlers/styles.js +22 -0
- package/dist/api/reference/http/handlers/totp.d.ts +9 -0
- package/dist/api/reference/http/handlers/totp.js +34 -0
- package/dist/api/reference/http/ids.d.ts +38 -0
- package/dist/api/reference/http/ids.js +82 -0
- package/dist/api/reference/http/listing-query.d.ts +49 -0
- package/dist/api/reference/http/listing-query.js +120 -0
- package/dist/api/reference/http/node.d.ts +15 -0
- package/dist/api/reference/http/node.js +39 -0
- package/dist/api/reference/http/privileged.d.ts +12 -0
- package/dist/api/reference/http/privileged.js +27 -0
- package/dist/api/reference/http/read-cache.d.ts +27 -0
- package/dist/api/reference/http/read-cache.js +39 -0
- package/dist/api/reference/http/records.d.ts +36 -0
- package/dist/api/reference/http/records.js +116 -0
- package/dist/api/reference/http/reference.d.ts +48 -0
- package/dist/api/reference/http/reference.js +155 -0
- package/dist/api/reference/http/router.d.ts +6 -0
- package/dist/api/reference/http/router.js +121 -0
- package/dist/api/reference/http/routes.d.ts +9 -0
- package/dist/api/reference/http/routes.js +31 -0
- package/dist/api/reference/http/server.d.ts +10 -0
- package/dist/api/reference/http/server.js +25 -0
- package/dist/api/reference/http/state.d.ts +102 -0
- package/dist/api/reference/http/state.js +22 -0
- package/dist/api/reference/http/store-ops.d.ts +47 -0
- package/dist/api/reference/http/store-ops.js +161 -0
- package/dist/api/reference/http/validation.d.ts +26 -0
- package/dist/api/reference/http/validation.js +188 -0
- package/dist/api/reference/http/wire.d.ts +28 -0
- package/dist/api/reference/http/wire.js +23 -0
- package/dist/api/reference/listing/axes.d.ts +14 -0
- package/dist/api/reference/listing/axes.js +21 -0
- package/dist/api/reference/listing/order.d.ts +16 -0
- package/dist/api/reference/listing/order.js +37 -0
- package/dist/api/reference/listing/params.d.ts +19 -0
- package/dist/api/reference/listing/params.js +31 -0
- package/dist/api/reference/listing/predicate.d.ts +22 -0
- package/dist/api/reference/listing/predicate.js +56 -0
- package/dist/api/reference/listing/project.d.ts +14 -0
- package/dist/api/reference/listing/project.js +36 -0
- package/dist/api/reference/listing/run.d.ts +22 -0
- package/dist/api/reference/listing/run.js +88 -0
- package/dist/api/reference/listing/select.d.ts +13 -0
- package/dist/api/reference/listing/select.js +56 -0
- package/dist/api/reference/listing/types.d.ts +38 -0
- package/dist/api/reference/listing/types.js +2 -0
- package/dist/api/reference/listing/window.d.ts +23 -0
- package/dist/api/reference/listing/window.js +39 -0
- package/dist/api/reference/model/entities.d.ts +4 -0
- package/dist/api/reference/model/entities.js +7 -0
- package/dist/api/reference/model/fields.d.ts +11 -0
- package/dist/api/reference/model/fields.js +20 -0
- package/dist/api/reference/model/identity.d.ts +8 -0
- package/dist/api/reference/model/identity.js +27 -0
- package/dist/api/reference/model/job.d.ts +7 -0
- package/dist/api/reference/model/job.js +69 -0
- package/dist/api/reference/model/row.d.ts +4 -0
- package/dist/api/reference/model/row.js +46 -0
- package/dist/api/reference/model/shaped.d.ts +10 -0
- package/dist/api/reference/model/shaped.js +33 -0
- package/dist/api/reference/model/string-guard.d.ts +12 -0
- package/dist/api/reference/model/string-guard.js +15 -0
- package/dist/api/reference/model/table-shape.d.ts +7 -0
- package/dist/api/reference/model/table-shape.js +68 -0
- package/dist/api/reference/model/table.d.ts +4 -0
- package/dist/api/reference/model/table.js +72 -0
- package/dist/api/reference/model/timestamps.d.ts +4 -0
- package/dist/api/reference/model/timestamps.js +6 -0
- package/dist/api/reference/model/types.d.ts +92 -0
- package/dist/api/reference/model/types.js +8 -0
- package/dist/api/reference/model/webhook.d.ts +8 -0
- package/dist/api/reference/model/webhook.js +29 -0
- package/dist/api/reference/query/coerce.d.ts +10 -0
- package/dist/api/reference/query/coerce.js +27 -0
- package/dist/api/reference/query/compare.d.ts +6 -0
- package/dist/api/reference/query/compare.js +23 -0
- package/dist/api/reference/query/conventions.d.ts +20 -0
- package/dist/api/reference/query/conventions.js +3 -0
- package/dist/api/reference/query/evaluate.d.ts +6 -0
- package/dist/api/reference/query/evaluate.js +69 -0
- package/dist/api/reference/query/fields.d.ts +7 -0
- package/dist/api/reference/query/fields.js +18 -0
- package/dist/api/reference/query/filter.d.ts +18 -0
- package/dist/api/reference/query/filter.js +75 -0
- package/dist/api/reference/query/like.d.ts +5 -0
- package/dist/api/reference/query/like.js +38 -0
- package/dist/api/reference/query/operator.d.ts +7 -0
- package/dist/api/reference/query/operator.js +54 -0
- package/dist/api/reference/query/order.d.ts +10 -0
- package/dist/api/reference/query/order.js +59 -0
- package/dist/api/reference/query/scalar.d.ts +5 -0
- package/dist/api/reference/query/scalar.js +19 -0
- package/dist/api/reference/query/search.d.ts +9 -0
- package/dist/api/reference/query/search.js +24 -0
- package/dist/api/reference/query/split.d.ts +7 -0
- package/dist/api/reference/query/split.js +29 -0
- package/dist/api/reference/query/term-list.d.ts +7 -0
- package/dist/api/reference/query/term-list.js +40 -0
- package/dist/api/reference/query/term-types.d.ts +17 -0
- package/dist/api/reference/query/term-types.js +2 -0
- package/dist/api/reference/query/term.d.ts +5 -0
- package/dist/api/reference/query/term.js +98 -0
- package/dist/api/reference/query/tree.d.ts +6 -0
- package/dist/api/reference/query/tree.js +24 -0
- package/dist/api/reference/query-types.d.ts +76 -0
- package/dist/api/reference/query-types.js +4 -0
- package/dist/api/reference/shapes/catalog.d.ts +4 -0
- package/dist/api/reference/shapes/catalog.js +203 -0
- package/dist/api/reference/shapes/dialect.d.ts +5 -0
- package/dist/api/reference/shapes/dialect.js +61 -0
- package/dist/api/reference/shapes/named.d.ts +4 -0
- package/dist/api/reference/shapes/named.js +10 -0
- package/dist/api/reference/shapes/types.d.ts +112 -0
- package/dist/api/reference/shapes/types.js +14 -0
- package/dist/api/reference/spec/auth.d.ts +5 -0
- package/dist/api/reference/spec/auth.js +176 -0
- package/dist/api/reference/spec/build.d.ts +13 -0
- package/dist/api/reference/spec/build.js +66 -0
- package/dist/api/reference/spec/caller.d.ts +9 -0
- package/dist/api/reference/spec/caller.js +262 -0
- package/dist/api/reference/spec/collection.d.ts +17 -0
- package/dist/api/reference/spec/collection.js +146 -0
- package/dist/api/reference/spec/components.d.ts +4 -0
- package/dist/api/reference/spec/components.js +38 -0
- package/dist/api/reference/spec/consistency.d.ts +10 -0
- package/dist/api/reference/spec/consistency.js +10 -0
- package/dist/api/reference/spec/errors.d.ts +11 -0
- package/dist/api/reference/spec/errors.js +85 -0
- package/dist/api/reference/spec/invites.d.ts +5 -0
- package/dist/api/reference/spec/invites.js +92 -0
- package/dist/api/reference/spec/item.d.ts +6 -0
- package/dist/api/reference/spec/item.js +95 -0
- package/dist/api/reference/spec/jobs.d.ts +5 -0
- package/dist/api/reference/spec/jobs.js +119 -0
- package/dist/api/reference/spec/layout.d.ts +5 -0
- package/dist/api/reference/spec/layout.js +25 -0
- package/dist/api/reference/spec/operation.d.ts +15 -0
- package/dist/api/reference/spec/operation.js +31 -0
- package/dist/api/reference/spec/params.d.ts +12 -0
- package/dist/api/reference/spec/params.js +126 -0
- package/dist/api/reference/spec/public.d.ts +7 -0
- package/dist/api/reference/spec/public.js +65 -0
- package/dist/api/reference/spec/query-route.d.ts +10 -0
- package/dist/api/reference/spec/query-route.js +55 -0
- package/dist/api/reference/spec/query.d.ts +6 -0
- package/dist/api/reference/spec/query.js +109 -0
- package/dist/api/reference/spec/schemas.d.ts +21 -0
- package/dist/api/reference/spec/schemas.js +204 -0
- package/dist/api/reference/spec/security.d.ts +10 -0
- package/dist/api/reference/spec/security.js +19 -0
- package/dist/api/reference/spec/styles.d.ts +8 -0
- package/dist/api/reference/spec/styles.js +55 -0
- package/dist/api/reference/spec/types.d.ts +9 -0
- package/dist/api/reference/spec/types.js +2 -0
- package/dist/api/reference/store-api.d.ts +34 -0
- package/dist/api/reference/store-api.js +37 -0
- package/dist/api/reference/stores/memory.d.ts +29 -0
- package/dist/api/reference/stores/memory.js +66 -0
- package/dist/api/reference/stores/postgres-driver.d.ts +9 -0
- package/dist/api/reference/stores/postgres-driver.js +27 -0
- package/dist/api/reference/stores/postgres.d.ts +62 -0
- package/dist/api/reference/stores/postgres.js +188 -0
- package/dist/api/reference/stores/sql-compile.d.ts +53 -0
- package/dist/api/reference/stores/sql-compile.js +105 -0
- package/dist/api/reference/stores/sqlite-driver.d.ts +54 -0
- package/dist/api/reference/stores/sqlite-driver.js +100 -0
- package/dist/api/reference/stores/sqlite.d.ts +58 -0
- package/dist/api/reference/stores/sqlite.js +219 -0
- package/dist/api/report/confidence.d.ts +32 -0
- package/dist/api/report/confidence.js +134 -0
- package/dist/api/report/console/bypass.d.ts +13 -0
- package/dist/api/report/console/bypass.js +29 -0
- package/dist/api/report/console/catalog-checks.d.ts +9 -0
- package/dist/api/report/console/catalog-checks.js +106 -0
- package/dist/api/report/console/catalog.d.ts +45 -0
- package/dist/api/report/console/catalog.js +73 -0
- package/dist/api/report/console/describe.d.ts +27 -0
- package/dist/api/report/console/describe.js +58 -0
- package/dist/api/report/console/doctor-facts.d.ts +61 -0
- package/dist/api/report/console/doctor-facts.js +50 -0
- package/dist/api/report/console/doctor-notes.d.ts +12 -0
- package/dist/api/report/console/doctor-notes.js +77 -0
- package/dist/api/report/console/doctor-text.d.ts +12 -0
- package/dist/api/report/console/doctor-text.js +68 -0
- package/dist/api/report/console/doctor.d.ts +26 -0
- package/dist/api/report/console/doctor.js +78 -0
- package/dist/api/report/console/gaps.d.ts +9 -0
- package/dist/api/report/console/gaps.js +23 -0
- package/dist/api/report/console/plan.d.ts +19 -0
- package/dist/api/report/console/plan.js +138 -0
- package/dist/api/report/console/report.d.ts +8 -0
- package/dist/api/report/console/report.js +5 -0
- package/dist/api/report/console/roots.d.ts +28 -0
- package/dist/api/report/console/roots.js +34 -0
- package/dist/api/report/console/security-text.d.ts +8 -0
- package/dist/api/report/console/security-text.js +106 -0
- package/dist/api/report/console/security.d.ts +93 -0
- package/dist/api/report/console/security.js +153 -0
- package/dist/api/report/console/tags.d.ts +23 -0
- package/dist/api/report/console/tags.js +113 -0
- package/dist/api/report/diff.d.ts +57 -0
- package/dist/api/report/diff.js +95 -0
- package/dist/api/report/matrix/band.d.ts +7 -0
- package/dist/api/report/matrix/band.js +113 -0
- package/dist/api/report/matrix/cards.d.ts +9 -0
- package/dist/api/report/matrix/cards.js +41 -0
- package/dist/api/report/matrix/catalog.d.ts +33 -0
- package/dist/api/report/matrix/catalog.js +152 -0
- package/dist/api/report/matrix/graph.d.ts +16 -0
- package/dist/api/report/matrix/graph.js +108 -0
- package/dist/api/report/matrix/invalidate.d.ts +7 -0
- package/dist/api/report/matrix/invalidate.js +30 -0
- package/dist/api/report/matrix/loom.d.ts +7 -0
- package/dist/api/report/matrix/loom.js +117 -0
- package/dist/api/report/matrix/mermaid.d.ts +7 -0
- package/dist/api/report/matrix/mermaid.js +65 -0
- package/dist/api/report/matrix/poster.d.ts +10 -0
- package/dist/api/report/matrix/poster.js +105 -0
- package/dist/api/report/matrix/rows.d.ts +34 -0
- package/dist/api/report/matrix/rows.js +68 -0
- package/dist/api/report/matrix/slice.d.ts +25 -0
- package/dist/api/report/matrix/slice.js +62 -0
- package/dist/api/report/matrix/strips.d.ts +5 -0
- package/dist/api/report/matrix/strips.js +23 -0
- package/dist/api/report/matrix/style.d.ts +4 -0
- package/dist/api/report/matrix/style.js +103 -0
- package/dist/api/report/matrix/summary.d.ts +8 -0
- package/dist/api/report/matrix/summary.js +49 -0
- package/dist/api/report/matrix/text.d.ts +6 -0
- package/dist/api/report/matrix/text.js +10 -0
- package/dist/api/report/matrix/types.d.ts +149 -0
- package/dist/api/report/matrix/types.js +6 -0
- package/dist/api/report/matrix/view.d.ts +6 -0
- package/dist/api/report/matrix/view.js +41 -0
- package/dist/api/report/render/coverage.d.ts +29 -0
- package/dist/api/report/render/coverage.js +78 -0
- package/dist/api/report/render/input.d.ts +88 -0
- package/dist/api/report/render/input.js +2 -0
- package/dist/api/report/render/json.d.ts +9 -0
- package/dist/api/report/render/json.js +108 -0
- package/dist/api/report/render/junit.d.ts +14 -0
- package/dist/api/report/render/junit.js +218 -0
- package/dist/api/report/render/markdown-findings.d.ts +8 -0
- package/dist/api/report/render/markdown-findings.js +53 -0
- package/dist/api/report/render/markdown-head.d.ts +8 -0
- package/dist/api/report/render/markdown-head.js +82 -0
- package/dist/api/report/render/markdown-sections.d.ts +35 -0
- package/dist/api/report/render/markdown-sections.js +125 -0
- package/dist/api/report/render/markdown.d.ts +12 -0
- package/dist/api/report/render/markdown.js +38 -0
- package/dist/api/report/render/repro.d.ts +13 -0
- package/dist/api/report/render/repro.js +47 -0
- package/dist/api/report/render/scope.d.ts +8 -0
- package/dist/api/report/render/scope.js +98 -0
- package/dist/api/report/render/step-summary.d.ts +17 -0
- package/dist/api/report/render/step-summary.js +153 -0
- package/dist/api/report/render/summary.d.ts +3 -0
- package/dist/api/report/render/summary.js +143 -0
- package/dist/api/report/render/text.d.ts +13 -0
- package/dist/api/report/render/text.js +54 -0
- package/dist/api/report/render/traffic.d.ts +37 -0
- package/dist/api/report/render/traffic.js +54 -0
- package/dist/api/report/render/verdicts.d.ts +10 -0
- package/dist/api/report/render/verdicts.js +33 -0
- package/dist/api/runtime/accounts/identity.d.ts +14 -0
- package/dist/api/runtime/accounts/identity.js +30 -0
- package/dist/api/runtime/accounts/ledger.d.ts +68 -0
- package/dist/api/runtime/accounts/ledger.js +96 -0
- package/dist/api/runtime/accounts/ops.d.ts +28 -0
- package/dist/api/runtime/accounts/ops.js +35 -0
- package/dist/api/runtime/accounts/watch.d.ts +19 -0
- package/dist/api/runtime/accounts/watch.js +66 -0
- package/dist/api/runtime/async.d.ts +95 -0
- package/dist/api/runtime/async.js +206 -0
- package/dist/api/runtime/baseline.d.ts +34 -0
- package/dist/api/runtime/baseline.js +103 -0
- package/dist/api/runtime/blocked-check.d.ts +14 -0
- package/dist/api/runtime/blocked-check.js +18 -0
- package/dist/api/runtime/body/encode.d.ts +20 -0
- package/dist/api/runtime/body/encode.js +50 -0
- package/dist/api/runtime/body/form-data.d.ts +16 -0
- package/dist/api/runtime/body/form-data.js +41 -0
- package/dist/api/runtime/body/form-pairs.d.ts +13 -0
- package/dist/api/runtime/body/form-pairs.js +26 -0
- package/dist/api/runtime/body/multipart.d.ts +7 -0
- package/dist/api/runtime/body/multipart.js +78 -0
- package/dist/api/runtime/body/schema.d.ts +12 -0
- package/dist/api/runtime/body/schema.js +68 -0
- package/dist/api/runtime/body/types.d.ts +33 -0
- package/dist/api/runtime/body/types.js +3 -0
- package/dist/api/runtime/body/upload-parts.d.ts +14 -0
- package/dist/api/runtime/body/upload-parts.js +53 -0
- package/dist/api/runtime/check-costs.d.ts +15 -0
- package/dist/api/runtime/check-costs.js +133 -0
- package/dist/api/runtime/check-ids.d.ts +35 -0
- package/dist/api/runtime/check-ids.js +204 -0
- package/dist/api/runtime/checks/core/check.d.ts +116 -0
- package/dist/api/runtime/checks/core/check.js +3 -0
- package/dist/api/runtime/checks/core/context.d.ts +175 -0
- package/dist/api/runtime/checks/core/context.js +10 -0
- package/dist/api/runtime/checks/core/define.d.ts +7 -0
- package/dist/api/runtime/checks/core/define.js +10 -0
- package/dist/api/runtime/checks/core/operation-context.d.ts +162 -0
- package/dist/api/runtime/checks/core/operation-context.js +3 -0
- package/dist/api/runtime/checks/core/operation.d.ts +20 -0
- package/dist/api/runtime/checks/core/operation.js +33 -0
- package/dist/api/runtime/checks/core/plan.d.ts +30 -0
- package/dist/api/runtime/checks/core/plan.js +24 -0
- package/dist/api/runtime/checks/core/registry.d.ts +12 -0
- package/dist/api/runtime/checks/core/registry.js +38 -0
- package/dist/api/runtime/checks/core/run.d.ts +26 -0
- package/dist/api/runtime/checks/core/run.js +65 -0
- package/dist/api/runtime/checks/families/composition/plans.d.ts +35 -0
- package/dist/api/runtime/checks/families/composition/plans.js +147 -0
- package/dist/api/runtime/checks/families/composition/query-axes-compose.d.ts +19 -0
- package/dist/api/runtime/checks/families/composition/query-axes-compose.js +89 -0
- package/dist/api/runtime/checks/families/composition/query-filter-and-select-compose.d.ts +20 -0
- package/dist/api/runtime/checks/families/composition/query-filter-and-select-compose.js +83 -0
- package/dist/api/runtime/checks/families/composition/query-filter-search-select-compose.d.ts +12 -0
- package/dist/api/runtime/checks/families/composition/query-filter-search-select-compose.js +81 -0
- package/dist/api/runtime/checks/families/composition/query-filter-search-sort-compose.d.ts +14 -0
- package/dist/api/runtime/checks/families/composition/query-filter-search-sort-compose.js +84 -0
- package/dist/api/runtime/checks/families/composition/query-filter-search-sort-select-compose.d.ts +9 -0
- package/dist/api/runtime/checks/families/composition/query-filter-search-sort-select-compose.js +75 -0
- package/dist/api/runtime/checks/families/composition/query-filter-selects-from-whole-set.d.ts +19 -0
- package/dist/api/runtime/checks/families/composition/query-filter-selects-from-whole-set.js +101 -0
- package/dist/api/runtime/checks/families/composition/query-filter-sort-select-compose.d.ts +17 -0
- package/dist/api/runtime/checks/families/composition/query-filter-sort-select-compose.js +89 -0
- package/dist/api/runtime/checks/families/composition/query-search-and-filter-compose.d.ts +18 -0
- package/dist/api/runtime/checks/families/composition/query-search-and-filter-compose.js +84 -0
- package/dist/api/runtime/checks/families/composition/query-search-and-select-compose.d.ts +8 -0
- package/dist/api/runtime/checks/families/composition/query-search-and-select-compose.js +57 -0
- package/dist/api/runtime/checks/families/composition/query-search-and-sort-compose.d.ts +7 -0
- package/dist/api/runtime/checks/families/composition/query-search-and-sort-compose.js +79 -0
- package/dist/api/runtime/checks/families/composition/query-sort-and-select-compose.d.ts +7 -0
- package/dist/api/runtime/checks/families/composition/query-sort-and-select-compose.js +57 -0
- package/dist/api/runtime/checks/families/composition/query-unknown-parameter-consistent.d.ts +13 -0
- package/dist/api/runtime/checks/families/composition/query-unknown-parameter-consistent.js +76 -0
- package/dist/api/runtime/checks/families/conformance/response-status-is-documented.d.ts +10 -0
- package/dist/api/runtime/checks/families/conformance/response-status-is-documented.js +117 -0
- package/dist/api/runtime/checks/families/conformance/response-write-only-not-returned.d.ts +13 -0
- package/dist/api/runtime/checks/families/conformance/response-write-only-not-returned.js +116 -0
- package/dist/api/runtime/checks/families/conformance/schema-error-response-matches-document.d.ts +10 -0
- package/dist/api/runtime/checks/families/conformance/schema-error-response-matches-document.js +119 -0
- package/dist/api/runtime/checks/families/conformance/schema-problem-json-shape.d.ts +11 -0
- package/dist/api/runtime/checks/families/conformance/schema-problem-json-shape.js +92 -0
- package/dist/api/runtime/checks/families/conformance/schema-read-response-matches-document.d.ts +15 -0
- package/dist/api/runtime/checks/families/conformance/schema-read-response-matches-document.js +111 -0
- package/dist/api/runtime/checks/families/conformance/schema-success-response-matches-document.d.ts +10 -0
- package/dist/api/runtime/checks/families/conformance/schema-success-response-matches-document.js +58 -0
- package/dist/api/runtime/checks/families/conformance/schema-verdict.d.ts +12 -0
- package/dist/api/runtime/checks/families/conformance/schema-verdict.js +27 -0
- package/dist/api/runtime/checks/families/consistency/bypass-is-fresh.d.ts +12 -0
- package/dist/api/runtime/checks/families/consistency/bypass-is-fresh.js +57 -0
- package/dist/api/runtime/checks/families/consistency/consistency-projections-agree.d.ts +28 -0
- package/dist/api/runtime/checks/families/consistency/consistency-projections-agree.js +165 -0
- package/dist/api/runtime/checks/families/consistency/freshness-write.d.ts +37 -0
- package/dist/api/runtime/checks/families/consistency/freshness-write.js +79 -0
- package/dist/api/runtime/checks/families/consistency/invalidation-declared-route-changes.d.ts +22 -0
- package/dist/api/runtime/checks/families/consistency/invalidation-declared-route-changes.js +130 -0
- package/dist/api/runtime/checks/families/consistency/list-item-matches-listed-row.d.ts +7 -0
- package/dist/api/runtime/checks/families/consistency/list-item-matches-listed-row.js +71 -0
- package/dist/api/runtime/checks/families/consistency/list-read-after-write.d.ts +5 -0
- package/dist/api/runtime/checks/families/consistency/list-read-after-write.js +101 -0
- package/dist/api/runtime/checks/families/consistency/staleness-schedule.d.ts +15 -0
- package/dist/api/runtime/checks/families/consistency/staleness-schedule.js +31 -0
- package/dist/api/runtime/checks/families/consistency/staleness-watch.d.ts +35 -0
- package/dist/api/runtime/checks/families/consistency/staleness-watch.js +32 -0
- package/dist/api/runtime/checks/families/consistency/staleness-within-bound.d.ts +18 -0
- package/dist/api/runtime/checks/families/consistency/staleness-within-bound.js +109 -0
- package/dist/api/runtime/checks/families/effects-async/async-reaches-terminal-state.d.ts +3 -0
- package/dist/api/runtime/checks/families/effects-async/async-reaches-terminal-state.js +161 -0
- package/dist/api/runtime/checks/families/effects-async/async-receipt-identifies-the-job.d.ts +3 -0
- package/dist/api/runtime/checks/families/effects-async/async-receipt-identifies-the-job.js +54 -0
- package/dist/api/runtime/checks/families/effects-async/effect-verdicts.d.ts +27 -0
- package/dist/api/runtime/checks/families/effects-async/effect-verdicts.js +133 -0
- package/dist/api/runtime/checks/families/effects-async/effects-declared-effect-occurs.d.ts +3 -0
- package/dist/api/runtime/checks/families/effects-async/effects-declared-effect-occurs.js +174 -0
- package/dist/api/runtime/checks/families/effects-async/effects-side-effect-arrives.d.ts +7 -0
- package/dist/api/runtime/checks/families/effects-async/effects-side-effect-arrives.js +99 -0
- package/dist/api/runtime/checks/families/effects-async/observe.d.ts +25 -0
- package/dist/api/runtime/checks/families/effects-async/observe.js +39 -0
- package/dist/api/runtime/checks/families/effects-async/requests.d.ts +9 -0
- package/dist/api/runtime/checks/families/effects-async/requests.js +23 -0
- package/dist/api/runtime/checks/families/filter/compound.d.ts +51 -0
- package/dist/api/runtime/checks/families/filter/compound.js +75 -0
- package/dist/api/runtime/checks/families/filter/error-malformed-filter-not-5xx.d.ts +3 -0
- package/dist/api/runtime/checks/families/filter/error-malformed-filter-not-5xx.js +46 -0
- package/dist/api/runtime/checks/families/filter/fields.d.ts +16 -0
- package/dist/api/runtime/checks/families/filter/fields.js +54 -0
- package/dist/api/runtime/checks/families/filter/filter-alias-matches-canonical.d.ts +3 -0
- package/dist/api/runtime/checks/families/filter/filter-alias-matches-canonical.js +60 -0
- package/dist/api/runtime/checks/families/filter/filter-and-composes-as-intersection.d.ts +10 -0
- package/dist/api/runtime/checks/families/filter/filter-and-composes-as-intersection.js +54 -0
- package/dist/api/runtime/checks/families/filter/filter-condition-cap-rejected.d.ts +7 -0
- package/dist/api/runtime/checks/families/filter/filter-condition-cap-rejected.js +39 -0
- package/dist/api/runtime/checks/families/filter/filter-contains-membership.d.ts +8 -0
- package/dist/api/runtime/checks/families/filter/filter-contains-membership.js +66 -0
- package/dist/api/runtime/checks/families/filter/filter-empty-in.d.ts +8 -0
- package/dist/api/runtime/checks/families/filter/filter-empty-in.js +54 -0
- package/dist/api/runtime/checks/families/filter/filter-equality-selects-exactly-one.d.ts +7 -0
- package/dist/api/runtime/checks/families/filter/filter-equality-selects-exactly-one.js +45 -0
- package/dist/api/runtime/checks/families/filter/filter-gte-is-gt-or-eq.d.ts +4 -0
- package/dist/api/runtime/checks/families/filter/filter-gte-is-gt-or-eq.js +21 -0
- package/dist/api/runtime/checks/families/filter/filter-ilike-is-case-insensitive.d.ts +10 -0
- package/dist/api/runtime/checks/families/filter/filter-ilike-is-case-insensitive.js +65 -0
- package/dist/api/runtime/checks/families/filter/filter-illegal-op-rejected.d.ts +17 -0
- package/dist/api/runtime/checks/families/filter/filter-illegal-op-rejected.js +103 -0
- package/dist/api/runtime/checks/families/filter/filter-in-is-union-of-eq.d.ts +10 -0
- package/dist/api/runtime/checks/families/filter/filter-in-is-union-of-eq.js +57 -0
- package/dist/api/runtime/checks/families/filter/filter-in-over-limit-rejected.d.ts +7 -0
- package/dist/api/runtime/checks/families/filter/filter-in-over-limit-rejected.js +38 -0
- package/dist/api/runtime/checks/families/filter/filter-is-null-selects-nulls.d.ts +8 -0
- package/dist/api/runtime/checks/families/filter/filter-is-null-selects-nulls.js +71 -0
- package/dist/api/runtime/checks/families/filter/filter-like-metacharacters-escaped.d.ts +6 -0
- package/dist/api/runtime/checks/families/filter/filter-like-metacharacters-escaped.js +56 -0
- package/dist/api/runtime/checks/families/filter/filter-lte-is-lt-or-eq.d.ts +4 -0
- package/dist/api/runtime/checks/families/filter/filter-lte-is-lt-or-eq.js +21 -0
- package/dist/api/runtime/checks/families/filter/filter-malformed-term-rejected.d.ts +11 -0
- package/dist/api/runtime/checks/families/filter/filter-malformed-term-rejected.js +72 -0
- package/dist/api/runtime/checks/families/filter/filter-negation-partitions-the-set.d.ts +8 -0
- package/dist/api/runtime/checks/families/filter/filter-negation-partitions-the-set.js +99 -0
- package/dist/api/runtime/checks/families/filter/filter-nested-and-or-distributes.d.ts +8 -0
- package/dist/api/runtime/checks/families/filter/filter-nested-and-or-distributes.js +80 -0
- package/dist/api/runtime/checks/families/filter/filter-nin-complements-in.d.ts +8 -0
- package/dist/api/runtime/checks/families/filter/filter-nin-complements-in.js +90 -0
- package/dist/api/runtime/checks/families/filter/filter-numeric-comparison-is-numeric.d.ts +32 -0
- package/dist/api/runtime/checks/families/filter/filter-numeric-comparison-is-numeric.js +125 -0
- package/dist/api/runtime/checks/families/filter/filter-or-composes-as-union.d.ts +10 -0
- package/dist/api/runtime/checks/families/filter/filter-or-composes-as-union.js +58 -0
- package/dist/api/runtime/checks/families/filter/filter-ordered-triple-partitions.d.ts +9 -0
- package/dist/api/runtime/checks/families/filter/filter-ordered-triple-partitions.js +103 -0
- package/dist/api/runtime/checks/families/filter/filter-unknown-field-rejected.d.ts +5 -0
- package/dist/api/runtime/checks/families/filter/filter-unknown-field-rejected.js +53 -0
- package/dist/api/runtime/checks/families/filter/filter-zero-match-returns-none.d.ts +5 -0
- package/dist/api/runtime/checks/families/filter/filter-zero-match-returns-none.js +38 -0
- package/dist/api/runtime/checks/families/filter/range.d.ts +16 -0
- package/dist/api/runtime/checks/families/filter/range.js +57 -0
- package/dist/api/runtime/checks/families/isolation/auth-invite-grants-then-revokes.d.ts +10 -0
- package/dist/api/runtime/checks/families/isolation/auth-invite-grants-then-revokes.js +138 -0
- package/dist/api/runtime/checks/families/isolation/auth-rank-is-monotonic-on-writes.d.ts +14 -0
- package/dist/api/runtime/checks/families/isolation/auth-rank-is-monotonic-on-writes.js +127 -0
- package/dist/api/runtime/checks/families/isolation/auth-rank-is-monotonic.d.ts +18 -0
- package/dist/api/runtime/checks/families/isolation/auth-rank-is-monotonic.js +74 -0
- package/dist/api/runtime/checks/families/isolation/invite-flow.d.ts +66 -0
- package/dist/api/runtime/checks/families/isolation/invite-flow.js +160 -0
- package/dist/api/runtime/checks/families/isolation/tenant-denial-does-not-reveal-existence.d.ts +21 -0
- package/dist/api/runtime/checks/families/isolation/tenant-denial-does-not-reveal-existence.js +71 -0
- package/dist/api/runtime/checks/families/isolation/tenant-filter-does-not-bypass-scope.d.ts +8 -0
- package/dist/api/runtime/checks/families/isolation/tenant-filter-does-not-bypass-scope.js +68 -0
- package/dist/api/runtime/checks/families/isolation/tenant-item-not-readable-cross-tenant.d.ts +9 -0
- package/dist/api/runtime/checks/families/isolation/tenant-item-not-readable-cross-tenant.js +60 -0
- package/dist/api/runtime/checks/families/isolation/tenant-item-not-writable-cross-tenant.d.ts +18 -0
- package/dist/api/runtime/checks/families/isolation/tenant-item-not-writable-cross-tenant.js +120 -0
- package/dist/api/runtime/checks/families/isolation/tenant-parent-not-reachable-from-another-root.d.ts +17 -0
- package/dist/api/runtime/checks/families/isolation/tenant-parent-not-reachable-from-another-root.js +137 -0
- package/dist/api/runtime/checks/families/isolation/tenant.d.ts +8 -0
- package/dist/api/runtime/checks/families/isolation/tenant.js +11 -0
- package/dist/api/runtime/checks/families/pagination/count-consistent-with-returned-page.d.ts +10 -0
- package/dist/api/runtime/checks/families/pagination/count-consistent-with-returned-page.js +43 -0
- package/dist/api/runtime/checks/families/pagination/count-matches-filtered-set.d.ts +5 -0
- package/dist/api/runtime/checks/families/pagination/count-matches-filtered-set.js +44 -0
- package/dist/api/runtime/checks/families/pagination/pagination-bounds-handled.d.ts +14 -0
- package/dist/api/runtime/checks/families/pagination/pagination-bounds-handled.js +74 -0
- package/dist/api/runtime/checks/families/pagination/pagination-cursor-agrees-with-page.d.ts +3 -0
- package/dist/api/runtime/checks/families/pagination/pagination-cursor-agrees-with-page.js +109 -0
- package/dist/api/runtime/checks/families/pagination/pagination-has-more-is-accurate.d.ts +3 -0
- package/dist/api/runtime/checks/families/pagination/pagination-has-more-is-accurate.js +36 -0
- package/dist/api/runtime/checks/families/pagination/pagination-limit-bounds-enforced.d.ts +10 -0
- package/dist/api/runtime/checks/families/pagination/pagination-limit-bounds-enforced.js +54 -0
- package/dist/api/runtime/checks/families/pagination/pagination-limit-bounds-page-size.d.ts +3 -0
- package/dist/api/runtime/checks/families/pagination/pagination-limit-bounds-page-size.js +28 -0
- package/dist/api/runtime/checks/families/pagination/pagination-limit-respects-documented-max.d.ts +6 -0
- package/dist/api/runtime/checks/families/pagination/pagination-limit-respects-documented-max.js +39 -0
- package/dist/api/runtime/checks/families/pagination/pagination-page-walk-covers-set.d.ts +3 -0
- package/dist/api/runtime/checks/families/pagination/pagination-page-walk-covers-set.js +90 -0
- package/dist/api/runtime/checks/families/pagination/walk.d.ts +16 -0
- package/dist/api/runtime/checks/families/pagination/walk.js +23 -0
- package/dist/api/runtime/checks/families/search-select/search-case-insensitive.d.ts +6 -0
- package/dist/api/runtime/checks/families/search-select/search-case-insensitive.js +63 -0
- package/dist/api/runtime/checks/families/search-select/search-empty-q.d.ts +6 -0
- package/dist/api/runtime/checks/families/search-select/search-empty-q.js +51 -0
- package/dist/api/runtime/checks/families/search-select/search-mode-accepted.d.ts +3 -0
- package/dist/api/runtime/checks/families/search-select/search-mode-accepted.js +42 -0
- package/dist/api/runtime/checks/families/search-select/search-q-narrows-result.d.ts +5 -0
- package/dist/api/runtime/checks/families/search-select/search-q-narrows-result.js +38 -0
- package/dist/api/runtime/checks/families/search-select/search-tokens-and.d.ts +6 -0
- package/dist/api/runtime/checks/families/search-select/search-tokens-and.js +64 -0
- package/dist/api/runtime/checks/families/search-select/select-nested-honored.d.ts +10 -0
- package/dist/api/runtime/checks/families/search-select/select-nested-honored.js +60 -0
- package/dist/api/runtime/checks/families/search-select/select-projection-honored.d.ts +6 -0
- package/dist/api/runtime/checks/families/search-select/select-projection-honored.js +42 -0
- package/dist/api/runtime/checks/families/search-select/select-requested-fields-present.d.ts +6 -0
- package/dist/api/runtime/checks/families/search-select/select-requested-fields-present.js +45 -0
- package/dist/api/runtime/checks/families/search-select/select-unknown-field-rejected.d.ts +8 -0
- package/dist/api/runtime/checks/families/search-select/select-unknown-field-rejected.js +48 -0
- package/dist/api/runtime/checks/families/security/auth-alternative-accepted.d.ts +20 -0
- package/dist/api/runtime/checks/families/security/auth-alternative-accepted.js +84 -0
- package/dist/api/runtime/checks/families/security/auth-anonymous-operation-open.d.ts +6 -0
- package/dist/api/runtime/checks/families/security/auth-anonymous-operation-open.js +47 -0
- package/dist/api/runtime/checks/families/security/auth-cross-tenant-key-refused.d.ts +20 -0
- package/dist/api/runtime/checks/families/security/auth-cross-tenant-key-refused.js +89 -0
- package/dist/api/runtime/checks/families/security/auth-invalid-credential-refused.d.ts +16 -0
- package/dist/api/runtime/checks/families/security/auth-invalid-credential-refused.js +67 -0
- package/dist/api/runtime/checks/families/security/auth-login-throttled.d.ts +16 -0
- package/dist/api/runtime/checks/families/security/auth-login-throttled.js +91 -0
- package/dist/api/runtime/checks/families/security/auth-missing-credential-refused.d.ts +4 -0
- package/dist/api/runtime/checks/families/security/auth-missing-credential-refused.js +29 -0
- package/dist/api/runtime/checks/families/security/auth-privileged-field-ignored.d.ts +34 -0
- package/dist/api/runtime/checks/families/security/auth-privileged-field-ignored.js +210 -0
- package/dist/api/runtime/checks/families/security/auth-refresh-reuse-refused.d.ts +10 -0
- package/dist/api/runtime/checks/families/security/auth-refresh-reuse-refused.js +52 -0
- package/dist/api/runtime/checks/families/security/auth-revoked-credential-refused.d.ts +10 -0
- package/dist/api/runtime/checks/families/security/auth-revoked-credential-refused.js +57 -0
- package/dist/api/runtime/checks/families/security/auth-role-enforced.d.ts +21 -0
- package/dist/api/runtime/checks/families/security/auth-role-enforced.js +74 -0
- package/dist/api/runtime/checks/families/security/auth-scope-enforced.d.ts +10 -0
- package/dist/api/runtime/checks/families/security/auth-scope-enforced.js +89 -0
- package/dist/api/runtime/checks/families/security/auth-wrong-scheme-refused.d.ts +10 -0
- package/dist/api/runtime/checks/families/security/auth-wrong-scheme-refused.js +45 -0
- package/dist/api/runtime/checks/families/security/lifecycle.d.ts +70 -0
- package/dist/api/runtime/checks/families/security/lifecycle.js +161 -0
- package/dist/api/runtime/checks/families/security/privileged-signup.d.ts +44 -0
- package/dist/api/runtime/checks/families/security/privileged-signup.js +227 -0
- package/dist/api/runtime/checks/families/security/probing.d.ts +77 -0
- package/dist/api/runtime/checks/families/security/probing.js +148 -0
- package/dist/api/runtime/checks/families/security/writable.d.ts +19 -0
- package/dist/api/runtime/checks/families/security/writable.js +40 -0
- package/dist/api/runtime/checks/families/sort/sort-default-order-applied.d.ts +5 -0
- package/dist/api/runtime/checks/families/sort/sort-default-order-applied.js +47 -0
- package/dist/api/runtime/checks/families/sort/sort-invalid-direction-rejected.d.ts +10 -0
- package/dist/api/runtime/checks/families/sort/sort-invalid-direction-rejected.js +56 -0
- package/dist/api/runtime/checks/families/sort/sort-multi-key-tiebreak.d.ts +8 -0
- package/dist/api/runtime/checks/families/sort/sort-multi-key-tiebreak.js +76 -0
- package/dist/api/runtime/checks/families/sort/sort-nulls-first-last.d.ts +8 -0
- package/dist/api/runtime/checks/families/sort/sort-nulls-first-last.js +67 -0
- package/dist/api/runtime/checks/families/sort/sort-numeric-order-is-numeric.d.ts +6 -0
- package/dist/api/runtime/checks/families/sort/sort-numeric-order-is-numeric.js +44 -0
- package/dist/api/runtime/checks/families/sort/sort-order-is-applied.d.ts +5 -0
- package/dist/api/runtime/checks/families/sort/sort-order-is-applied.js +54 -0
- package/dist/api/runtime/checks/families/sort/sort-reverse-symmetry.d.ts +5 -0
- package/dist/api/runtime/checks/families/sort/sort-reverse-symmetry.js +115 -0
- package/dist/api/runtime/checks/families/sort/sort-stable-tiebreak.d.ts +6 -0
- package/dist/api/runtime/checks/families/sort/sort-stable-tiebreak.js +80 -0
- package/dist/api/runtime/checks/families/sort/sort-unknown-field-rejected.d.ts +3 -0
- package/dist/api/runtime/checks/families/sort/sort-unknown-field-rejected.js +38 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-filterable-is-filterable.d.ts +18 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-filterable-is-filterable.js +139 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-filterable-ops-accepted.d.ts +3 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-filterable-ops-accepted.js +90 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-rate-limit-is-honored.d.ts +14 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-rate-limit-is-honored.js +62 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-selectable-is-selectable.d.ts +8 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-selectable-is-selectable.js +79 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-sortable-is-sortable.d.ts +8 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-sortable-is-sortable.js +76 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-sortable-nulls-accepted.d.ts +3 -0
- package/dist/api/runtime/checks/families/spec-declarations/spec-declared-sortable-nulls-accepted.js +52 -0
- package/dist/api/runtime/checks/families/validation/bodies.d.ts +16 -0
- package/dist/api/runtime/checks/families/validation/bodies.js +30 -0
- package/dist/api/runtime/checks/families/validation/invalid-body.d.ts +29 -0
- package/dist/api/runtime/checks/families/validation/invalid-body.js +52 -0
- package/dist/api/runtime/checks/families/validation/request-invalid-body-refused.d.ts +18 -0
- package/dist/api/runtime/checks/families/validation/request-invalid-body-refused.js +152 -0
- package/dist/api/runtime/checks/families/validation/undeliverable.d.ts +3 -0
- package/dist/api/runtime/checks/families/validation/undeliverable.js +40 -0
- package/dist/api/runtime/checks/families/validation/validation-content-type-enforced.d.ts +9 -0
- package/dist/api/runtime/checks/families/validation/validation-content-type-enforced.js +50 -0
- package/dist/api/runtime/checks/families/validation/validation-enum-enforced.d.ts +6 -0
- package/dist/api/runtime/checks/families/validation/validation-enum-enforced.js +44 -0
- package/dist/api/runtime/checks/families/validation/validation-max-length-enforced.d.ts +6 -0
- package/dist/api/runtime/checks/families/validation/validation-max-length-enforced.js +44 -0
- package/dist/api/runtime/checks/families/validation/validation-required-enforced.d.ts +6 -0
- package/dist/api/runtime/checks/families/validation/validation-required-enforced.js +40 -0
- package/dist/api/runtime/checks/families/write/concurrency-if-match-enforced.d.ts +23 -0
- package/dist/api/runtime/checks/families/write/concurrency-if-match-enforced.js +154 -0
- package/dist/api/runtime/checks/families/write/concurrency-no-lost-update.d.ts +14 -0
- package/dist/api/runtime/checks/families/write/concurrency-no-lost-update.js +216 -0
- package/dist/api/runtime/checks/families/write/create-keeps-submitted-identity.d.ts +11 -0
- package/dist/api/runtime/checks/families/write/create-keeps-submitted-identity.js +122 -0
- package/dist/api/runtime/checks/families/write/create-persists-submitted-fields.d.ts +20 -0
- package/dist/api/runtime/checks/families/write/create-persists-submitted-fields.js +209 -0
- package/dist/api/runtime/checks/families/write/create-status-matches-document.d.ts +7 -0
- package/dist/api/runtime/checks/families/write/create-status-matches-document.js +34 -0
- package/dist/api/runtime/checks/families/write/create-unique-conflict-rejected.d.ts +11 -0
- package/dist/api/runtime/checks/families/write/create-unique-conflict-rejected.js +172 -0
- package/dist/api/runtime/checks/families/write/delete-absent-record-returns-404.d.ts +7 -0
- package/dist/api/runtime/checks/families/write/delete-absent-record-returns-404.js +46 -0
- package/dist/api/runtime/checks/families/write/idempotency-replay-does-not-duplicate.d.ts +21 -0
- package/dist/api/runtime/checks/families/write/idempotency-replay-does-not-duplicate.js +132 -0
- package/dist/api/runtime/checks/families/write/patch-immutable-field-rejected.d.ts +8 -0
- package/dist/api/runtime/checks/families/write/patch-immutable-field-rejected.js +65 -0
- package/dist/api/runtime/checks/families/write/patch-minimality.d.ts +8 -0
- package/dist/api/runtime/checks/families/write/patch-minimality.js +160 -0
- package/dist/api/runtime/checks/families/write/payload-cases.d.ts +37 -0
- package/dist/api/runtime/checks/families/write/payload-cases.js +132 -0
- package/dist/api/runtime/checks/families/write/payload-claims.d.ts +28 -0
- package/dist/api/runtime/checks/families/write/payload-claims.js +46 -0
- package/dist/api/runtime/checks/families/write/payload-probe.d.ts +48 -0
- package/dist/api/runtime/checks/families/write/payload-probe.js +172 -0
- package/dist/api/runtime/checks/families/write/payload-string-survives.d.ts +9 -0
- package/dist/api/runtime/checks/families/write/payload-string-survives.js +135 -0
- package/dist/api/runtime/checks/families/write/records.d.ts +16 -0
- package/dist/api/runtime/checks/families/write/records.js +51 -0
- package/dist/api/runtime/checks/families/write/softdelete-absent-from-default-list.d.ts +6 -0
- package/dist/api/runtime/checks/families/write/softdelete-absent-from-default-list.js +56 -0
- package/dist/api/runtime/checks/families/write/update-persists-submitted-fields.d.ts +17 -0
- package/dist/api/runtime/checks/families/write/update-persists-submitted-fields.js +150 -0
- package/dist/api/runtime/checks/families/write/update-unique-conflict-rejected.d.ts +9 -0
- package/dist/api/runtime/checks/families/write/update-unique-conflict-rejected.js +140 -0
- package/dist/api/runtime/checks/isolation/scratch.d.ts +38 -0
- package/dist/api/runtime/checks/isolation/scratch.js +74 -0
- package/dist/api/runtime/checks/payloads/body.d.ts +36 -0
- package/dist/api/runtime/checks/payloads/body.js +122 -0
- package/dist/api/runtime/checks/payloads/create.d.ts +18 -0
- package/dist/api/runtime/checks/payloads/create.js +26 -0
- package/dist/api/runtime/checks/payloads/identity.d.ts +29 -0
- package/dist/api/runtime/checks/payloads/identity.js +81 -0
- package/dist/api/runtime/checks/payloads/item-schema.d.ts +20 -0
- package/dist/api/runtime/checks/payloads/item-schema.js +39 -0
- package/dist/api/runtime/checks/payloads/lanes.d.ts +12 -0
- package/dist/api/runtime/checks/payloads/lanes.js +10 -0
- package/dist/api/runtime/checks/payloads/stored-as.d.ts +7 -0
- package/dist/api/runtime/checks/payloads/stored-as.js +14 -0
- package/dist/api/runtime/checks/payloads/update-drops.d.ts +10 -0
- package/dist/api/runtime/checks/payloads/update-drops.js +16 -0
- package/dist/api/runtime/checks/planning/declarations.d.ts +7 -0
- package/dist/api/runtime/checks/planning/declarations.js +11 -0
- package/dist/api/runtime/checks/planning/refusal.d.ts +21 -0
- package/dist/api/runtime/checks/planning/refusal.js +39 -0
- package/dist/api/runtime/checks/planning/stand-down.d.ts +26 -0
- package/dist/api/runtime/checks/planning/stand-down.js +47 -0
- package/dist/api/runtime/checks/planning/subjects.d.ts +32 -0
- package/dist/api/runtime/checks/planning/subjects.js +51 -0
- package/dist/api/runtime/checks/query/capabilities.d.ts +66 -0
- package/dist/api/runtime/checks/query/capabilities.js +169 -0
- package/dist/api/runtime/checks/query/order.d.ts +56 -0
- package/dist/api/runtime/checks/query/order.js +145 -0
- package/dist/api/runtime/checks/registry.d.ts +3 -0
- package/dist/api/runtime/checks/registry.js +289 -0
- package/dist/api/runtime/checks/sets/compare.d.ts +76 -0
- package/dist/api/runtime/checks/sets/compare.js +148 -0
- package/dist/api/runtime/checks/sets/list.d.ts +44 -0
- package/dist/api/runtime/checks/sets/list.js +77 -0
- package/dist/api/runtime/checks/sets/read.d.ts +58 -0
- package/dist/api/runtime/checks/sets/read.js +196 -0
- package/dist/api/runtime/contract/calls.d.ts +7 -0
- package/dist/api/runtime/contract/calls.js +88 -0
- package/dist/api/runtime/contract/check.d.ts +13 -0
- package/dist/api/runtime/contract/check.js +19 -0
- package/dist/api/runtime/contract/deletes.d.ts +8 -0
- package/dist/api/runtime/contract/deletes.js +131 -0
- package/dist/api/runtime/contract/judge.d.ts +9 -0
- package/dist/api/runtime/contract/judge.js +47 -0
- package/dist/api/runtime/contract/made-by-run.d.ts +17 -0
- package/dist/api/runtime/contract/made-by-run.js +53 -0
- package/dist/api/runtime/contract/params.d.ts +26 -0
- package/dist/api/runtime/contract/params.js +73 -0
- package/dist/api/runtime/contract/request.d.ts +43 -0
- package/dist/api/runtime/contract/request.js +232 -0
- package/dist/api/runtime/contract/types.d.ts +90 -0
- package/dist/api/runtime/contract/types.js +2 -0
- package/dist/api/runtime/cookies/jar.d.ts +27 -0
- package/dist/api/runtime/cookies/jar.js +112 -0
- package/dist/api/runtime/cookies/redirect.d.ts +28 -0
- package/dist/api/runtime/cookies/redirect.js +40 -0
- package/dist/api/runtime/cookies/save-as.d.ts +30 -0
- package/dist/api/runtime/cookies/save-as.js +50 -0
- package/dist/api/runtime/cookies/set-cookie.d.ts +12 -0
- package/dist/api/runtime/cookies/set-cookie.js +83 -0
- package/dist/api/runtime/create-tracker.d.ts +41 -0
- package/dist/api/runtime/create-tracker.js +181 -0
- package/dist/api/runtime/created-id.d.ts +84 -0
- package/dist/api/runtime/created-id.js +162 -0
- package/dist/api/runtime/credential-records.d.ts +21 -0
- package/dist/api/runtime/credential-records.js +34 -0
- package/dist/api/runtime/disposable/after.d.ts +26 -0
- package/dist/api/runtime/disposable/after.js +96 -0
- package/dist/api/runtime/disposable/check.d.ts +21 -0
- package/dist/api/runtime/disposable/check.js +33 -0
- package/dist/api/runtime/disposable/lists.d.ts +13 -0
- package/dist/api/runtime/disposable/lists.js +47 -0
- package/dist/api/runtime/disposable/one.d.ts +15 -0
- package/dist/api/runtime/disposable/one.js +98 -0
- package/dist/api/runtime/disposable/run.d.ts +7 -0
- package/dist/api/runtime/disposable/run.js +54 -0
- package/dist/api/runtime/disposable/signup.d.ts +11 -0
- package/dist/api/runtime/disposable/signup.js +14 -0
- package/dist/api/runtime/disposable/types.d.ts +48 -0
- package/dist/api/runtime/disposable/types.js +2 -0
- package/dist/api/runtime/dummy.d.ts +23 -0
- package/dist/api/runtime/dummy.js +218 -0
- package/dist/api/runtime/effects/bind.d.ts +31 -0
- package/dist/api/runtime/effects/bind.js +98 -0
- package/dist/api/runtime/effects/cardinality.d.ts +27 -0
- package/dist/api/runtime/effects/cardinality.js +26 -0
- package/dist/api/runtime/effects/ids.d.ts +15 -0
- package/dist/api/runtime/effects/ids.js +95 -0
- package/dist/api/runtime/effects/pointer.d.ts +6 -0
- package/dist/api/runtime/effects/pointer.js +40 -0
- package/dist/api/runtime/effects/scope.d.ts +45 -0
- package/dist/api/runtime/effects/scope.js +87 -0
- package/dist/api/runtime/evidence.d.ts +27 -0
- package/dist/api/runtime/evidence.js +246 -0
- package/dist/api/runtime/exchange.d.ts +141 -0
- package/dist/api/runtime/exchange.js +96 -0
- package/dist/api/runtime/exchanges/blobs.d.ts +19 -0
- package/dist/api/runtime/exchanges/blobs.js +40 -0
- package/dist/api/runtime/exchanges/bytes.d.ts +6 -0
- package/dist/api/runtime/exchanges/bytes.js +21 -0
- package/dist/api/runtime/exchanges/files.d.ts +11 -0
- package/dist/api/runtime/exchanges/files.js +29 -0
- package/dist/api/runtime/exchanges/form-parts.d.ts +14 -0
- package/dist/api/runtime/exchanges/form-parts.js +19 -0
- package/dist/api/runtime/exchanges/journal.d.ts +68 -0
- package/dist/api/runtime/exchanges/journal.js +144 -0
- package/dist/api/runtime/exchanges/media.d.ts +5 -0
- package/dist/api/runtime/exchanges/media.js +23 -0
- package/dist/api/runtime/exchanges/persist.d.ts +6 -0
- package/dist/api/runtime/exchanges/persist.js +84 -0
- package/dist/api/runtime/exit.d.ts +59 -0
- package/dist/api/runtime/exit.js +94 -0
- package/dist/api/runtime/feature-gate.d.ts +14 -0
- package/dist/api/runtime/feature-gate.js +47 -0
- package/dist/api/runtime/fence.d.ts +29 -0
- package/dist/api/runtime/fence.js +39 -0
- package/dist/api/runtime/fill-path.d.ts +8 -0
- package/dist/api/runtime/fill-path.js +16 -0
- package/dist/api/runtime/finding-key.d.ts +12 -0
- package/dist/api/runtime/finding-key.js +33 -0
- package/dist/api/runtime/finding.d.ts +142 -0
- package/dist/api/runtime/finding.js +151 -0
- package/dist/api/runtime/fixture.d.ts +87 -0
- package/dist/api/runtime/fixture.js +197 -0
- package/dist/api/runtime/generate/algebra.d.ts +14 -0
- package/dist/api/runtime/generate/algebra.js +112 -0
- package/dist/api/runtime/generate/array.d.ts +4 -0
- package/dist/api/runtime/generate/array.js +45 -0
- package/dist/api/runtime/generate/branches.d.ts +12 -0
- package/dist/api/runtime/generate/branches.js +63 -0
- package/dist/api/runtime/generate/expand.d.ts +3 -0
- package/dist/api/runtime/generate/expand.js +66 -0
- package/dist/api/runtime/generate/format.d.ts +7 -0
- package/dist/api/runtime/generate/format.js +61 -0
- package/dist/api/runtime/generate/generate.d.ts +18 -0
- package/dist/api/runtime/generate/generate.js +43 -0
- package/dist/api/runtime/generate/identifiers.d.ts +14 -0
- package/dist/api/runtime/generate/identifiers.js +64 -0
- package/dist/api/runtime/generate/instance.d.ts +4 -0
- package/dist/api/runtime/generate/instance.js +59 -0
- package/dist/api/runtime/generate/nonce.d.ts +3 -0
- package/dist/api/runtime/generate/nonce.js +8 -0
- package/dist/api/runtime/generate/number.d.ts +5 -0
- package/dist/api/runtime/generate/number.js +64 -0
- package/dist/api/runtime/generate/object.d.ts +4 -0
- package/dist/api/runtime/generate/object.js +31 -0
- package/dist/api/runtime/generate/pattern.d.ts +9 -0
- package/dist/api/runtime/generate/pattern.js +46 -0
- package/dist/api/runtime/generate/probes.d.ts +9 -0
- package/dist/api/runtime/generate/probes.js +36 -0
- package/dist/api/runtime/generate/string-constraints.d.ts +19 -0
- package/dist/api/runtime/generate/string-constraints.js +48 -0
- package/dist/api/runtime/generate/string.d.ts +5 -0
- package/dist/api/runtime/generate/string.js +80 -0
- package/dist/api/runtime/generate/text.d.ts +6 -0
- package/dist/api/runtime/generate/text.js +20 -0
- package/dist/api/runtime/generate/types.d.ts +45 -0
- package/dist/api/runtime/generate/types.js +3 -0
- package/dist/api/runtime/generate/unconstructible.d.ts +7 -0
- package/dist/api/runtime/generate/unconstructible.js +11 -0
- package/dist/api/runtime/grades.d.ts +40 -0
- package/dist/api/runtime/grades.js +47 -0
- package/dist/api/runtime/headers.d.ts +6 -0
- package/dist/api/runtime/headers.js +16 -0
- package/dist/api/runtime/inferred-create.d.ts +31 -0
- package/dist/api/runtime/inferred-create.js +99 -0
- package/dist/api/runtime/input.d.ts +13 -0
- package/dist/api/runtime/input.js +47 -0
- package/dist/api/runtime/network/fetch.d.ts +19 -0
- package/dist/api/runtime/network/fetch.js +86 -0
- package/dist/api/runtime/network/gate.d.ts +23 -0
- package/dist/api/runtime/network/gate.js +63 -0
- package/dist/api/runtime/network/interfaces.d.ts +6 -0
- package/dist/api/runtime/network/interfaces.js +17 -0
- package/dist/api/runtime/network/policy.d.ts +17 -0
- package/dist/api/runtime/network/policy.js +25 -0
- package/dist/api/runtime/network/probe.d.ts +8 -0
- package/dist/api/runtime/network/probe.js +29 -0
- package/dist/api/runtime/no-security.d.ts +4 -0
- package/dist/api/runtime/no-security.js +9 -0
- package/dist/api/runtime/nonexistent-identity.d.ts +9 -0
- package/dist/api/runtime/nonexistent-identity.js +18 -0
- package/dist/api/runtime/one-shot.d.ts +27 -0
- package/dist/api/runtime/one-shot.js +76 -0
- package/dist/api/runtime/own-record.d.ts +76 -0
- package/dist/api/runtime/own-record.js +188 -0
- package/dist/api/runtime/payloads.d.ts +25 -0
- package/dist/api/runtime/payloads.js +252 -0
- package/dist/api/runtime/poll.d.ts +29 -0
- package/dist/api/runtime/poll.js +59 -0
- package/dist/api/runtime/principals.d.ts +66 -0
- package/dist/api/runtime/principals.js +133 -0
- package/dist/api/runtime/privileged-create.d.ts +13 -0
- package/dist/api/runtime/privileged-create.js +21 -0
- package/dist/api/runtime/probe-judging.d.ts +9 -0
- package/dist/api/runtime/probe-judging.js +26 -0
- package/dist/api/runtime/profile.d.ts +36 -0
- package/dist/api/runtime/profile.js +63 -0
- package/dist/api/runtime/progress/columns.d.ts +14 -0
- package/dist/api/runtime/progress/columns.js +49 -0
- package/dist/api/runtime/progress/fields.d.ts +27 -0
- package/dist/api/runtime/progress/fields.js +78 -0
- package/dist/api/runtime/progress/format.d.ts +6 -0
- package/dist/api/runtime/progress/format.js +96 -0
- package/dist/api/runtime/progress/pump.d.ts +16 -0
- package/dist/api/runtime/progress/pump.js +69 -0
- package/dist/api/runtime/progress/types.d.ts +39 -0
- package/dist/api/runtime/progress/types.js +3 -0
- package/dist/api/runtime/proven-id.d.ts +31 -0
- package/dist/api/runtime/proven-id.js +38 -0
- package/dist/api/runtime/query-capabilities.d.ts +27 -0
- package/dist/api/runtime/query-capabilities.js +69 -0
- package/dist/api/runtime/query.d.ts +11 -0
- package/dist/api/runtime/query.js +21 -0
- package/dist/api/runtime/rate-limit/bucket.d.ts +21 -0
- package/dist/api/runtime/rate-limit/bucket.js +54 -0
- package/dist/api/runtime/rate-limit/limiter.d.ts +52 -0
- package/dist/api/runtime/rate-limit/limiter.js +103 -0
- package/dist/api/runtime/rate-limit/match.d.ts +26 -0
- package/dist/api/runtime/rate-limit/match.js +55 -0
- package/dist/api/runtime/rate-limit/retry-after.d.ts +40 -0
- package/dist/api/runtime/rate-limit/retry-after.js +81 -0
- package/dist/api/runtime/rate-limit/rules.d.ts +35 -0
- package/dist/api/runtime/rate-limit/rules.js +61 -0
- package/dist/api/runtime/root-read.d.ts +22 -0
- package/dist/api/runtime/root-read.js +78 -0
- package/dist/api/runtime/run/account-hook.d.ts +19 -0
- package/dist/api/runtime/run/account-hook.js +67 -0
- package/dist/api/runtime/run/accounts.d.ts +22 -0
- package/dist/api/runtime/run/accounts.js +215 -0
- package/dist/api/runtime/run/acting.d.ts +5 -0
- package/dist/api/runtime/run/acting.js +36 -0
- package/dist/api/runtime/run/check-accounts.d.ts +5 -0
- package/dist/api/runtime/run/check-accounts.js +28 -0
- package/dist/api/runtime/run/client-setup.d.ts +8 -0
- package/dist/api/runtime/run/client-setup.js +117 -0
- package/dist/api/runtime/run/context.d.ts +141 -0
- package/dist/api/runtime/run/context.js +2 -0
- package/dist/api/runtime/run/contract-floor.d.ts +7 -0
- package/dist/api/runtime/run/contract-floor.js +51 -0
- package/dist/api/runtime/run/credential-records.d.ts +12 -0
- package/dist/api/runtime/run/credential-records.js +91 -0
- package/dist/api/runtime/run/disposable.d.ts +14 -0
- package/dist/api/runtime/run/disposable.js +90 -0
- package/dist/api/runtime/run/entity/actors.d.ts +5 -0
- package/dist/api/runtime/run/entity/actors.js +55 -0
- package/dist/api/runtime/run/entity/capabilities.d.ts +19 -0
- package/dist/api/runtime/run/entity/capabilities.js +32 -0
- package/dist/api/runtime/run/entity/check-context.d.ts +5 -0
- package/dist/api/runtime/run/entity/check-context.js +108 -0
- package/dist/api/runtime/run/entity/check-loop.d.ts +16 -0
- package/dist/api/runtime/run/entity/check-loop.js +118 -0
- package/dist/api/runtime/run/entity/direct.d.ts +8 -0
- package/dist/api/runtime/run/entity/direct.js +19 -0
- package/dist/api/runtime/run/entity/fallback.d.ts +25 -0
- package/dist/api/runtime/run/entity/fallback.js +55 -0
- package/dist/api/runtime/run/entity/root-read.d.ts +5 -0
- package/dist/api/runtime/run/entity/root-read.js +39 -0
- package/dist/api/runtime/run/entity/run-check.d.ts +45 -0
- package/dist/api/runtime/run/entity/run-check.js +173 -0
- package/dist/api/runtime/run/entity/seed-cohort.d.ts +11 -0
- package/dist/api/runtime/run/entity/seed-cohort.js +136 -0
- package/dist/api/runtime/run/entity/seed-failure.d.ts +9 -0
- package/dist/api/runtime/run/entity/seed-failure.js +92 -0
- package/dist/api/runtime/run/entity/seed.d.ts +17 -0
- package/dist/api/runtime/run/entity/seed.js +65 -0
- package/dist/api/runtime/run/entity/self.d.ts +5 -0
- package/dist/api/runtime/run/entity/self.js +24 -0
- package/dist/api/runtime/run/entity/state.d.ts +59 -0
- package/dist/api/runtime/run/entity/state.js +11 -0
- package/dist/api/runtime/run/entity/test-entity.d.ts +17 -0
- package/dist/api/runtime/run/entity/test-entity.js +91 -0
- package/dist/api/runtime/run/errors.d.ts +8 -0
- package/dist/api/runtime/run/errors.js +11 -0
- package/dist/api/runtime/run/exclusion.d.ts +3 -0
- package/dist/api/runtime/run/exclusion.js +29 -0
- package/dist/api/runtime/run/floor-credentials.d.ts +15 -0
- package/dist/api/runtime/run/floor-credentials.js +91 -0
- package/dist/api/runtime/run/fresh.d.ts +31 -0
- package/dist/api/runtime/run/fresh.js +87 -0
- package/dist/api/runtime/run/identity.d.ts +9 -0
- package/dist/api/runtime/run/identity.js +28 -0
- package/dist/api/runtime/run/index.d.ts +4 -0
- package/dist/api/runtime/run/index.js +3 -0
- package/dist/api/runtime/run/interrupt.d.ts +6 -0
- package/dist/api/runtime/run/interrupt.js +15 -0
- package/dist/api/runtime/run/lanes.d.ts +23 -0
- package/dist/api/runtime/run/lanes.js +147 -0
- package/dist/api/runtime/run/load.d.ts +17 -0
- package/dist/api/runtime/run/load.js +95 -0
- package/dist/api/runtime/run/network.d.ts +33 -0
- package/dist/api/runtime/run/network.js +82 -0
- package/dist/api/runtime/run/origins.d.ts +36 -0
- package/dist/api/runtime/run/origins.js +146 -0
- package/dist/api/runtime/run/own-records.d.ts +5 -0
- package/dist/api/runtime/run/own-records.js +41 -0
- package/dist/api/runtime/run/peer.d.ts +9 -0
- package/dist/api/runtime/run/peer.js +10 -0
- package/dist/api/runtime/run/pipeline.d.ts +19 -0
- package/dist/api/runtime/run/pipeline.js +96 -0
- package/dist/api/runtime/run/principals.d.ts +19 -0
- package/dist/api/runtime/run/principals.js +134 -0
- package/dist/api/runtime/run/probe-credentials.d.ts +9 -0
- package/dist/api/runtime/run/probe-credentials.js +68 -0
- package/dist/api/runtime/run/progress.d.ts +49 -0
- package/dist/api/runtime/run/progress.js +128 -0
- package/dist/api/runtime/run/public-gets.d.ts +4 -0
- package/dist/api/runtime/run/public-gets.js +14 -0
- package/dist/api/runtime/run/record-scope.d.ts +4 -0
- package/dist/api/runtime/run/record-scope.js +17 -0
- package/dist/api/runtime/run/result.d.ts +22 -0
- package/dist/api/runtime/run/result.js +98 -0
- package/dist/api/runtime/run/scenarios.d.ts +4 -0
- package/dist/api/runtime/run/scenarios.js +50 -0
- package/dist/api/runtime/run/scope-plan.d.ts +7 -0
- package/dist/api/runtime/run/scope-plan.js +64 -0
- package/dist/api/runtime/run/security-target.d.ts +39 -0
- package/dist/api/runtime/run/security-target.js +139 -0
- package/dist/api/runtime/run/security-throwaway.d.ts +27 -0
- package/dist/api/runtime/run/security-throwaway.js +126 -0
- package/dist/api/runtime/run/security.d.ts +11 -0
- package/dist/api/runtime/run/security.js +172 -0
- package/dist/api/runtime/run/server-errors.d.ts +4 -0
- package/dist/api/runtime/run/server-errors.js +15 -0
- package/dist/api/runtime/run/state.d.ts +58 -0
- package/dist/api/runtime/run/state.js +33 -0
- package/dist/api/runtime/run/store.d.ts +24 -0
- package/dist/api/runtime/run/store.js +106 -0
- package/dist/api/runtime/run/target-version.d.ts +7 -0
- package/dist/api/runtime/run/target-version.js +16 -0
- package/dist/api/runtime/run/teardown.d.ts +31 -0
- package/dist/api/runtime/run/teardown.js +146 -0
- package/dist/api/runtime/run/transcript-options.d.ts +4 -0
- package/dist/api/runtime/run/transcript-options.js +35 -0
- package/dist/api/runtime/run/types.d.ts +238 -0
- package/dist/api/runtime/run/types.js +2 -0
- package/dist/api/runtime/runs.d.ts +33 -0
- package/dist/api/runtime/runs.js +80 -0
- package/dist/api/runtime/scenario/failure.d.ts +19 -0
- package/dist/api/runtime/scenario/failure.js +28 -0
- package/dist/api/runtime/scenario/grade.d.ts +20 -0
- package/dist/api/runtime/scenario/grade.js +51 -0
- package/dist/api/runtime/scenario/lineage.d.ts +40 -0
- package/dist/api/runtime/scenario/lineage.js +55 -0
- package/dist/api/runtime/scenario/poll.d.ts +10 -0
- package/dist/api/runtime/scenario/poll.js +20 -0
- package/dist/api/runtime/scenario/record.d.ts +20 -0
- package/dist/api/runtime/scenario/record.js +100 -0
- package/dist/api/runtime/scenario/request.d.ts +8 -0
- package/dist/api/runtime/scenario/request.js +89 -0
- package/dist/api/runtime/scenario/run.d.ts +7 -0
- package/dist/api/runtime/scenario/run.js +90 -0
- package/dist/api/runtime/scenario/state.d.ts +10 -0
- package/dist/api/runtime/scenario/state.js +40 -0
- package/dist/api/runtime/scenario/step.d.ts +8 -0
- package/dist/api/runtime/scenario/step.js +51 -0
- package/dist/api/runtime/scenario/types.d.ts +63 -0
- package/dist/api/runtime/scenario/types.js +2 -0
- package/dist/api/runtime/scenario/validate.d.ts +17 -0
- package/dist/api/runtime/scenario/validate.js +64 -0
- package/dist/api/runtime/scenario/want.d.ts +21 -0
- package/dist/api/runtime/scenario/want.js +59 -0
- package/dist/api/runtime/scope/entities.d.ts +44 -0
- package/dist/api/runtime/scope/entities.js +158 -0
- package/dist/api/runtime/scope/grading.d.ts +20 -0
- package/dist/api/runtime/scope/grading.js +42 -0
- package/dist/api/runtime/scope/match.d.ts +9 -0
- package/dist/api/runtime/scope/match.js +22 -0
- package/dist/api/runtime/scope/operation-for.d.ts +5 -0
- package/dist/api/runtime/scope/operation-for.js +29 -0
- package/dist/api/runtime/scope/plan.d.ts +10 -0
- package/dist/api/runtime/scope/plan.js +81 -0
- package/dist/api/runtime/scope/reason.d.ts +13 -0
- package/dist/api/runtime/scope/reason.js +37 -0
- package/dist/api/runtime/scope/report.d.ts +3 -0
- package/dist/api/runtime/scope/report.js +68 -0
- package/dist/api/runtime/scope/scope-error.d.ts +5 -0
- package/dist/api/runtime/scope/scope-error.js +5 -0
- package/dist/api/runtime/scope/sufficiency.d.ts +8 -0
- package/dist/api/runtime/scope/sufficiency.js +19 -0
- package/dist/api/runtime/scope/target.d.ts +4 -0
- package/dist/api/runtime/scope/target.js +62 -0
- package/dist/api/runtime/scope/targeting.d.ts +19 -0
- package/dist/api/runtime/scope/targeting.js +82 -0
- package/dist/api/runtime/scope/types.d.ts +149 -0
- package/dist/api/runtime/scope/types.js +11 -0
- package/dist/api/runtime/seed-error.d.ts +23 -0
- package/dist/api/runtime/seed-error.js +19 -0
- package/dist/api/runtime/self/actions.d.ts +12 -0
- package/dist/api/runtime/self/actions.js +59 -0
- package/dist/api/runtime/self/check.d.ts +3 -0
- package/dist/api/runtime/self/check.js +26 -0
- package/dist/api/runtime/self/create.d.ts +26 -0
- package/dist/api/runtime/self/create.js +96 -0
- package/dist/api/runtime/self/guard.d.ts +16 -0
- package/dist/api/runtime/self/guard.js +56 -0
- package/dist/api/runtime/self/identity.d.ts +4 -0
- package/dist/api/runtime/self/identity.js +94 -0
- package/dist/api/runtime/self/input.d.ts +19 -0
- package/dist/api/runtime/self/input.js +2 -0
- package/dist/api/runtime/self/locate.d.ts +10 -0
- package/dist/api/runtime/self/locate.js +31 -0
- package/dist/api/runtime/self/operations.d.ts +15 -0
- package/dist/api/runtime/self/operations.js +34 -0
- package/dist/api/runtime/self/probe-field.d.ts +10 -0
- package/dist/api/runtime/self/probe-field.js +88 -0
- package/dist/api/runtime/self/requests.d.ts +22 -0
- package/dist/api/runtime/self/requests.js +27 -0
- package/dist/api/runtime/self/verdicts.d.ts +41 -0
- package/dist/api/runtime/self/verdicts.js +95 -0
- package/dist/api/runtime/server-errors.d.ts +29 -0
- package/dist/api/runtime/server-errors.js +74 -0
- package/dist/api/runtime/sse.d.ts +38 -0
- package/dist/api/runtime/sse.js +115 -0
- package/dist/api/runtime/steps/engine.d.ts +27 -0
- package/dist/api/runtime/steps/engine.js +134 -0
- package/dist/api/runtime/steps/interpolate.d.ts +3 -0
- package/dist/api/runtime/steps/interpolate.js +30 -0
- package/dist/api/runtime/steps/jwt.d.ts +3 -0
- package/dist/api/runtime/steps/jwt.js +13 -0
- package/dist/api/runtime/steps/out-of-band.d.ts +27 -0
- package/dist/api/runtime/steps/out-of-band.js +53 -0
- package/dist/api/runtime/steps/request.d.ts +39 -0
- package/dist/api/runtime/steps/request.js +117 -0
- package/dist/api/runtime/steps/runner.d.ts +5 -0
- package/dist/api/runtime/steps/runner.js +19 -0
- package/dist/api/runtime/target-version.d.ts +34 -0
- package/dist/api/runtime/target-version.js +68 -0
- package/dist/api/runtime/teardown/ledger.d.ts +68 -0
- package/dist/api/runtime/teardown/ledger.js +124 -0
- package/dist/api/runtime/teardown/never-seen.d.ts +10 -0
- package/dist/api/runtime/teardown/never-seen.js +27 -0
- package/dist/api/runtime/teardown/remove.d.ts +27 -0
- package/dist/api/runtime/teardown/remove.js +110 -0
- package/dist/api/runtime/teardown/render.d.ts +7 -0
- package/dist/api/runtime/teardown/render.js +51 -0
- package/dist/api/runtime/teardown/routes.d.ts +26 -0
- package/dist/api/runtime/teardown/routes.js +83 -0
- package/dist/api/runtime/teardown/still-listed.d.ts +29 -0
- package/dist/api/runtime/teardown/still-listed.js +116 -0
- package/dist/api/runtime/teardown/types.d.ts +76 -0
- package/dist/api/runtime/teardown/types.js +2 -0
- package/dist/api/runtime/teardown/unwind.d.ts +20 -0
- package/dist/api/runtime/teardown/unwind.js +83 -0
- package/dist/api/runtime/teardown/verify-gone.d.ts +21 -0
- package/dist/api/runtime/teardown/verify-gone.js +87 -0
- package/dist/api/runtime/teardown/verify-hook.d.ts +20 -0
- package/dist/api/runtime/teardown/verify-hook.js +61 -0
- package/dist/api/runtime/transcript/compact-request.d.ts +5 -0
- package/dist/api/runtime/transcript/compact-request.js +65 -0
- package/dist/api/runtime/transcript/compact-response.d.ts +4 -0
- package/dist/api/runtime/transcript/compact-response.js +70 -0
- package/dist/api/runtime/transcript/live.d.ts +13 -0
- package/dist/api/runtime/transcript/live.js +21 -0
- package/dist/api/runtime/transcript/payload.d.ts +9 -0
- package/dist/api/runtime/transcript/payload.js +45 -0
- package/dist/api/runtime/transcript/release.d.ts +6 -0
- package/dist/api/runtime/transcript/release.js +15 -0
- package/dist/api/runtime/transcript/spool.d.ts +42 -0
- package/dist/api/runtime/transcript/spool.js +102 -0
- package/dist/api/runtime/transcript/sse-payload.d.ts +5 -0
- package/dist/api/runtime/transcript/sse-payload.js +65 -0
- package/dist/api/runtime/transcript/types.d.ts +22 -0
- package/dist/api/runtime/transcript/types.js +3 -0
- package/dist/api/runtime/unique.d.ts +80 -0
- package/dist/api/runtime/unique.js +169 -0
- package/dist/api/runtime/upload-each.d.ts +14 -0
- package/dist/api/runtime/upload-each.js +69 -0
- package/dist/api/runtime/upload.d.ts +58 -0
- package/dist/api/runtime/upload.js +241 -0
- package/dist/api/runtime/validate.d.ts +41 -0
- package/dist/api/runtime/validate.js +145 -0
- package/dist/api/runtime/wait.d.ts +48 -0
- package/dist/api/runtime/wait.js +105 -0
- package/dist/api/runtime/world/adopt.d.ts +6 -0
- package/dist/api/runtime/world/adopt.js +18 -0
- package/dist/api/runtime/world/ancestor-create.d.ts +13 -0
- package/dist/api/runtime/world/ancestor-create.js +129 -0
- package/dist/api/runtime/world/client-identity.d.ts +42 -0
- package/dist/api/runtime/world/client-identity.js +77 -0
- package/dist/api/runtime/world/cohort.d.ts +47 -0
- package/dist/api/runtime/world/cohort.js +123 -0
- package/dist/api/runtime/world/confirm.d.ts +33 -0
- package/dist/api/runtime/world/confirm.js +57 -0
- package/dist/api/runtime/world/created-record.d.ts +29 -0
- package/dist/api/runtime/world/created-record.js +57 -0
- package/dist/api/runtime/world/list-existing.d.ts +12 -0
- package/dist/api/runtime/world/list-existing.js +29 -0
- package/dist/api/runtime/world/path-scope.d.ts +16 -0
- package/dist/api/runtime/world/path-scope.js +98 -0
- package/dist/api/runtime/world/plan-limit.d.ts +8 -0
- package/dist/api/runtime/world/plan-limit.js +41 -0
- package/dist/api/runtime/world/probe-fixtures.d.ts +7 -0
- package/dist/api/runtime/world/probe-fixtures.js +23 -0
- package/dist/api/runtime/world/read-back.d.ts +61 -0
- package/dist/api/runtime/world/read-back.js +120 -0
- package/dist/api/runtime/world/records.d.ts +29 -0
- package/dist/api/runtime/world/records.js +45 -0
- package/dist/api/runtime/world/schema.d.ts +7 -0
- package/dist/api/runtime/world/schema.js +21 -0
- package/dist/api/runtime/world/seed-cohort.d.ts +8 -0
- package/dist/api/runtime/world/seed-cohort.js +193 -0
- package/dist/api/runtime/world/types.d.ts +118 -0
- package/dist/api/runtime/world/types.js +3 -0
- package/dist/api/runtime/world/upload-context.d.ts +5 -0
- package/dist/api/runtime/world/upload-context.js +7 -0
- package/dist/api/security/credential-names.d.ts +7 -0
- package/dist/api/security/credential-names.js +30 -0
- package/dist/api/security/issued-secrets.d.ts +9 -0
- package/dist/api/security/issued-secrets.js +50 -0
- package/dist/api/security/redact.d.ts +51 -0
- package/dist/api/security/redact.js +222 -0
- package/dist/api/security/strip.d.ts +7 -0
- package/dist/api/security/strip.js +18 -0
- package/dist/api/spec/allow.d.ts +28 -0
- package/dist/api/spec/allow.js +83 -0
- package/dist/api/spec/collection/cursor.d.ts +7 -0
- package/dist/api/spec/collection/cursor.js +11 -0
- package/dist/api/spec/collection/effective.d.ts +9 -0
- package/dist/api/spec/collection/effective.js +49 -0
- package/dist/api/spec/collection/identity.d.ts +13 -0
- package/dist/api/spec/collection/identity.js +43 -0
- package/dist/api/spec/collection/request.d.ts +19 -0
- package/dist/api/spec/collection/request.js +67 -0
- package/dist/api/spec/collection/responses.d.ts +6 -0
- package/dist/api/spec/collection/responses.js +32 -0
- package/dist/api/spec/collection/shape.d.ts +47 -0
- package/dist/api/spec/collection/shape.js +123 -0
- package/dist/api/spec/configured-model.d.ts +22 -0
- package/dist/api/spec/configured-model.js +58 -0
- package/dist/api/spec/conventions/derive.d.ts +26 -0
- package/dist/api/spec/conventions/derive.js +125 -0
- package/dist/api/spec/conventions/envelope-names.d.ts +21 -0
- package/dist/api/spec/conventions/envelope-names.js +25 -0
- package/dist/api/spec/conventions/filter.d.ts +31 -0
- package/dist/api/spec/conventions/filter.js +51 -0
- package/dist/api/spec/conventions/infer.d.ts +22 -0
- package/dist/api/spec/conventions/infer.js +59 -0
- package/dist/api/spec/conventions/query-params.d.ts +27 -0
- package/dist/api/spec/conventions/query-params.js +44 -0
- package/dist/api/spec/conventions/roles.d.ts +28 -0
- package/dist/api/spec/conventions/roles.js +153 -0
- package/dist/api/spec/conventions/select.d.ts +9 -0
- package/dist/api/spec/conventions/select.js +19 -0
- package/dist/api/spec/conventions/sort.d.ts +14 -0
- package/dist/api/spec/conventions/sort.js +25 -0
- package/dist/api/spec/conventions/types.d.ts +106 -0
- package/dist/api/spec/conventions/types.js +15 -0
- package/dist/api/spec/endpoints.d.ts +4 -0
- package/dist/api/spec/endpoints.js +42 -0
- package/dist/api/spec/extensions/async.d.ts +24 -0
- package/dist/api/spec/extensions/async.js +38 -0
- package/dist/api/spec/extensions/consistency.d.ts +18 -0
- package/dist/api/spec/extensions/consistency.js +27 -0
- package/dist/api/spec/extensions/effects.d.ts +13 -0
- package/dist/api/spec/extensions/effects.js +36 -0
- package/dist/api/spec/extensions/entity.d.ts +28 -0
- package/dist/api/spec/extensions/entity.js +103 -0
- package/dist/api/spec/extensions/flags.d.ts +30 -0
- package/dist/api/spec/extensions/flags.js +59 -0
- package/dist/api/spec/extensions/gaps.d.ts +11 -0
- package/dist/api/spec/extensions/gaps.js +8 -0
- package/dist/api/spec/extensions/invite.d.ts +33 -0
- package/dist/api/spec/extensions/invite.js +30 -0
- package/dist/api/spec/extensions/privileged.d.ts +27 -0
- package/dist/api/spec/extensions/privileged.js +84 -0
- package/dist/api/spec/extensions/query-tag.d.ts +36 -0
- package/dist/api/spec/extensions/query-tag.js +92 -0
- package/dist/api/spec/extensions/routes.d.ts +5 -0
- package/dist/api/spec/extensions/routes.js +19 -0
- package/dist/api/spec/extensions/tag.d.ts +16 -0
- package/dist/api/spec/extensions/tag.js +22 -0
- package/dist/api/spec/extensions/tenant.d.ts +9 -0
- package/dist/api/spec/extensions/tenant.js +35 -0
- package/dist/api/spec/extensions/unique.d.ts +20 -0
- package/dist/api/spec/extensions/unique.js +63 -0
- package/dist/api/spec/grammar-overrides.d.ts +23 -0
- package/dist/api/spec/grammar-overrides.js +70 -0
- package/dist/api/spec/graph/build.d.ts +18 -0
- package/dist/api/spec/graph/build.js +89 -0
- package/dist/api/spec/graph/dangling.d.ts +19 -0
- package/dist/api/spec/graph/dangling.js +94 -0
- package/dist/api/spec/graph/demote.d.ts +14 -0
- package/dist/api/spec/graph/demote.js +94 -0
- package/dist/api/spec/graph/entities.d.ts +7 -0
- package/dist/api/spec/graph/entities.js +77 -0
- package/dist/api/spec/graph/identity.d.ts +19 -0
- package/dist/api/spec/graph/identity.js +14 -0
- package/dist/api/spec/graph/naming.d.ts +9 -0
- package/dist/api/spec/graph/naming.js +71 -0
- package/dist/api/spec/graph/operation.d.ts +16 -0
- package/dist/api/spec/graph/operation.js +176 -0
- package/dist/api/spec/graph/paging.d.ts +16 -0
- package/dist/api/spec/graph/paging.js +23 -0
- package/dist/api/spec/graph/parameters.d.ts +46 -0
- package/dist/api/spec/graph/parameters.js +119 -0
- package/dist/api/spec/graph/resolver.d.ts +25 -0
- package/dist/api/spec/graph/resolver.js +38 -0
- package/dist/api/spec/graph/roots.d.ts +32 -0
- package/dist/api/spec/graph/roots.js +89 -0
- package/dist/api/spec/graph/segments.d.ts +10 -0
- package/dist/api/spec/graph/segments.js +19 -0
- package/dist/api/spec/graph/statuses.d.ts +7 -0
- package/dist/api/spec/graph/statuses.js +26 -0
- package/dist/api/spec/graph/surface.d.ts +21 -0
- package/dist/api/spec/graph/surface.js +59 -0
- package/dist/api/spec/graph/types.d.ts +162 -0
- package/dist/api/spec/graph/types.js +3 -0
- package/dist/api/spec/graph/unmodeled.d.ts +18 -0
- package/dist/api/spec/graph/unmodeled.js +65 -0
- package/dist/api/spec/load/bundle.d.ts +16 -0
- package/dist/api/spec/load/bundle.js +112 -0
- package/dist/api/spec/load/defs.d.ts +7 -0
- package/dist/api/spec/load/defs.js +9 -0
- package/dist/api/spec/load/dereference.d.ts +23 -0
- package/dist/api/spec/load/dereference.js +55 -0
- package/dist/api/spec/load/parse.d.ts +16 -0
- package/dist/api/spec/load/parse.js +76 -0
- package/dist/api/spec/load/pointer.d.ts +6 -0
- package/dist/api/spec/load/pointer.js +24 -0
- package/dist/api/spec/load/source.d.ts +27 -0
- package/dist/api/spec/load/source.js +58 -0
- package/dist/api/spec/load/version.d.ts +14 -0
- package/dist/api/spec/load/version.js +16 -0
- package/dist/api/spec/load/walk.d.ts +44 -0
- package/dist/api/spec/load/walk.js +162 -0
- package/dist/api/spec/methods.d.ts +31 -0
- package/dist/api/spec/methods.js +37 -0
- package/dist/api/spec/operation-name.d.ts +23 -0
- package/dist/api/spec/operation-name.js +46 -0
- package/dist/api/spec/overlay.d.ts +18 -0
- package/dist/api/spec/overlay.js +72 -0
- package/dist/api/spec/prepare.d.ts +18 -0
- package/dist/api/spec/prepare.js +16 -0
- package/dist/api/spec/query/catalog-layers.d.ts +10 -0
- package/dist/api/spec/query/catalog-layers.js +80 -0
- package/dist/api/spec/query/effective.d.ts +68 -0
- package/dist/api/spec/query/effective.js +9 -0
- package/dist/api/spec/query/field-ops.d.ts +10 -0
- package/dist/api/spec/query/field-ops.js +39 -0
- package/dist/api/spec/query/harvest.d.ts +14 -0
- package/dist/api/spec/query/harvest.js +29 -0
- package/dist/api/spec/query/hook.d.ts +8 -0
- package/dist/api/spec/query/hook.js +46 -0
- package/dist/api/spec/query/infer-type.d.ts +6 -0
- package/dist/api/spec/query/infer-type.js +34 -0
- package/dist/api/spec/query/json-path.d.ts +6 -0
- package/dist/api/spec/query/json-path.js +87 -0
- package/dist/api/spec/query/merge.d.ts +9 -0
- package/dist/api/spec/query/merge.js +118 -0
- package/dist/api/spec/query/ops.d.ts +14 -0
- package/dist/api/spec/query/ops.js +33 -0
- package/dist/api/spec/query/parse-blocks.d.ts +13 -0
- package/dist/api/spec/query/parse-blocks.js +103 -0
- package/dist/api/spec/query/parse-catalog.d.ts +11 -0
- package/dist/api/spec/query/parse-catalog.js +97 -0
- package/dist/api/spec/query/parse-fields.d.ts +12 -0
- package/dist/api/spec/query/parse-fields.js +54 -0
- package/dist/api/spec/query/sendable.d.ts +60 -0
- package/dist/api/spec/query/sendable.js +113 -0
- package/dist/api/spec/query/tag.d.ts +36 -0
- package/dist/api/spec/query/tag.js +3 -0
- package/dist/api/spec/query/union.d.ts +7 -0
- package/dist/api/spec/query/union.js +22 -0
- package/dist/api/spec/render/filter-combine.d.ts +17 -0
- package/dist/api/spec/render/filter-combine.js +62 -0
- package/dist/api/spec/render/filter-describe.d.ts +5 -0
- package/dist/api/spec/render/filter-describe.js +29 -0
- package/dist/api/spec/render/filter-parse-steps.d.ts +55 -0
- package/dist/api/spec/render/filter-parse-steps.js +155 -0
- package/dist/api/spec/render/filter-parse.d.ts +8 -0
- package/dist/api/spec/render/filter-parse.js +77 -0
- package/dist/api/spec/render/filter-presets.d.ts +6 -0
- package/dist/api/spec/render/filter-presets.js +55 -0
- package/dist/api/spec/render/filter-probe.d.ts +24 -0
- package/dist/api/spec/render/filter-probe.js +57 -0
- package/dist/api/spec/render/filter-term.d.ts +17 -0
- package/dist/api/spec/render/filter-term.js +100 -0
- package/dist/api/spec/render/filter-types.d.ts +77 -0
- package/dist/api/spec/render/filter-types.js +10 -0
- package/dist/api/spec/render/sort-parse.d.ts +14 -0
- package/dist/api/spec/render/sort-parse.js +56 -0
- package/dist/api/spec/render/sort.d.ts +48 -0
- package/dist/api/spec/render/sort.js +45 -0
- package/dist/api/spec/routes.d.ts +16 -0
- package/dist/api/spec/routes.js +48 -0
- package/dist/api/spec/schema.d.ts +36 -0
- package/dist/api/spec/schema.js +265 -0
- package/dist/api/spec/security/placement.d.ts +11 -0
- package/dist/api/spec/security/placement.js +16 -0
- package/dist/api/spec/security/requirements.d.ts +19 -0
- package/dist/api/spec/security/requirements.js +21 -0
- package/dist/api/spec/security/schemes.d.ts +40 -0
- package/dist/api/spec/security/schemes.js +86 -0
- package/dist/api/spec/sign-in.d.ts +4 -0
- package/dist/api/spec/sign-in.js +4 -0
- package/dist/api/spec/sign-up.d.ts +34 -0
- package/dist/api/spec/sign-up.js +77 -0
- package/dist/api/spec/tags/checks.d.ts +23 -0
- package/dist/api/spec/tags/checks.js +47 -0
- package/dist/api/spec/tags/query.d.ts +4 -0
- package/dist/api/spec/tags/query.js +113 -0
- package/dist/api/spec/tags/validate.d.ts +12 -0
- package/dist/api/spec/tags/validate.js +117 -0
- package/dist/api/spec/types.d.ts +120 -0
- package/dist/api/spec/types.js +3 -0
- package/dist/api/steps/external.d.ts +31 -0
- package/dist/api/steps/external.js +17 -0
- package/dist/api/steps/index.d.ts +9 -0
- package/dist/api/steps/index.js +5 -0
- package/dist/api/steps/out-of-band.d.ts +17 -0
- package/dist/api/steps/out-of-band.js +19 -0
- package/dist/api/steps/request.d.ts +30 -0
- package/dist/api/steps/request.js +72 -0
- package/dist/api/steps/scenario.d.ts +18 -0
- package/dist/api/steps/scenario.js +18 -0
- package/dist/api/steps/sender.d.ts +34 -0
- package/dist/api/steps/sender.js +53 -0
- package/dist/api/steps/steps.d.ts +51 -0
- package/dist/api/steps/steps.js +30 -0
- package/dist/api/steps/types.d.ts +90 -0
- package/dist/api/steps/types.js +7 -0
- package/dist/api/steps/view.d.ts +20 -0
- package/dist/api/steps/view.js +41 -0
- package/dist/cli/main.d.ts +8 -0
- package/dist/cli/main.js +38 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +11 -0
- package/docs/api/api.md +78 -0
- package/docs/api/assumptions.md +119 -0
- package/docs/api/checks.md +265 -0
- package/docs/api/commands.md +309 -0
- package/docs/api/configuration/hooks.md +162 -0
- package/docs/api/configuration/origins-and-uploads.md +85 -0
- package/docs/api/configuration/principals-and-security.md +173 -0
- package/docs/api/configuration/reference.md +283 -0
- package/docs/api/limits.md +23 -0
- package/docs/api/migrating-0.25.md +40 -0
- package/docs/api/migrating-from-oat.md +70 -0
- package/docs/api/model.md +230 -0
- package/docs/api/reference-defects.md +181 -0
- package/docs/api/releasing.md +52 -0
- package/docs/api/reports.md +287 -0
- package/docs/api/roadmaps/1-freshness-program-20261028T232448Z.md +90 -0
- package/docs/api/steps.md +162 -0
- package/docs/api/tags.md +536 -0
- package/labs/api/README.md +130 -0
- package/labs/api/annotated-openapi.yaml +421 -0
- package/labs/api/demo.mjs +119 -0
- package/labs/api/local.config.ts +33 -0
- package/labs/api/minimal.config.ts +31 -0
- package/labs/api/oob-auth.config.ts +152 -0
- package/package.json +145 -5
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { defineCheck } from "../../core/define.js";
|
|
2
|
+
import { andThen, cannot, ready } from "../../core/plan.js";
|
|
3
|
+
import { ASSERTED } from "../../../finding.js";
|
|
4
|
+
import { fillPath } from "../../../fill-path.js";
|
|
5
|
+
import { noSecurityReason } from "../../../no-security.js";
|
|
6
|
+
import { isRefused, settle, unlessUnsatisfied } from "./lifecycle.js";
|
|
7
|
+
import { BY_VALIDATION, byValidation } from "./probing.js";
|
|
8
|
+
/**
|
|
9
|
+
* An API key belongs to one tenant. On a GET under the actor's tenant that takes an API key alone,
|
|
10
|
+
* the peer tenant's key (minted through the run's store like any credential, so teardown revokes it)
|
|
11
|
+
* must be refused with 401, 403 or 404. Its acceptance in the peer's own tenant proves the refusal
|
|
12
|
+
* was about the tenant, not a broken key.
|
|
13
|
+
*/
|
|
14
|
+
export const crossTenantKeyRefused = defineCheck({
|
|
15
|
+
id: "auth.cross-tenant-key-refused",
|
|
16
|
+
needs: "a peer tenant, and a tenant-scoped GET that takes an API key",
|
|
17
|
+
plan: (ctx) => {
|
|
18
|
+
const undeclared = noSecurityReason(ctx.operation);
|
|
19
|
+
if (undeclared !== undefined)
|
|
20
|
+
return cannot(undeclared);
|
|
21
|
+
const { peer } = ctx;
|
|
22
|
+
if (peer === undefined)
|
|
23
|
+
return cannot("a principal of another tenant");
|
|
24
|
+
if (ctx.operation.method.toUpperCase() !== "GET") {
|
|
25
|
+
return cannot(`a GET; ${ctx.operation.operationId} is probed by the write stage's checks`);
|
|
26
|
+
}
|
|
27
|
+
return andThen(keySchemes(ctx), (schemes) => andThen(paths(ctx, peer), ({ foreign, own }) => ready({ foreign, own, peer, schemes })));
|
|
28
|
+
},
|
|
29
|
+
subject: "operation",
|
|
30
|
+
async run(ctx, planned) {
|
|
31
|
+
const outcomes = [];
|
|
32
|
+
for (const scheme of planned.schemes) {
|
|
33
|
+
const label = `${planned.peer.id}'s ${scheme} key`;
|
|
34
|
+
outcomes.push(await unlessUnsatisfied(label, () => crossWith(ctx, { planned, scheme })));
|
|
35
|
+
}
|
|
36
|
+
return settle(outcomes);
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
const CHECK = "auth.cross-tenant-key-refused";
|
|
40
|
+
/* The API-key schemes an alternative of the operation takes alone. */
|
|
41
|
+
function keySchemes(ctx) {
|
|
42
|
+
const schemes = ctx.operation.security.alternatives.flatMap((set) => {
|
|
43
|
+
const scheme = set.length === 1 ? set[0]?.scheme : undefined;
|
|
44
|
+
return scheme !== undefined && ctx.model.schemes.get(scheme)?.kind === "apiKey" ? [scheme] : [];
|
|
45
|
+
});
|
|
46
|
+
return schemes.length > 0 ? ready([...new Set(schemes)]) : cannot("an alternative that takes an API key alone");
|
|
47
|
+
}
|
|
48
|
+
/* The operation's path under each tenant: both scopes fill every parameter, and differently. */
|
|
49
|
+
function paths(ctx, peer) {
|
|
50
|
+
const { pathParams, path } = ctx.operation;
|
|
51
|
+
const fills = (actor) => pathParams.every((name) => name in actor.scope);
|
|
52
|
+
if (pathParams.length > 0 && fills(ctx.actor) && fills(peer)) {
|
|
53
|
+
const foreign = fillPath(path, ctx.actor.scope);
|
|
54
|
+
const own = fillPath(path, peer.scope);
|
|
55
|
+
if (foreign !== own)
|
|
56
|
+
return ready({ foreign, own });
|
|
57
|
+
}
|
|
58
|
+
return cannot("a path the actor's and the peer's scopes each fill, differently");
|
|
59
|
+
}
|
|
60
|
+
async function crossWith(ctx, { planned, scheme }) {
|
|
61
|
+
const { foreign, own, peer } = planned;
|
|
62
|
+
const { operationId, requiredQuery: query } = ctx.operation;
|
|
63
|
+
const as = { principal: peer.id, scheme };
|
|
64
|
+
const key = `${peer.id}'s ${scheme} key`;
|
|
65
|
+
const tenant = String(ctx.actor.tenant);
|
|
66
|
+
const crossed = await ctx.client.get(foreign, { as, operationId, probe: true, query });
|
|
67
|
+
if (crossed.status < 300) {
|
|
68
|
+
return ctx.findings.security(CHECK, ctx.subject, {
|
|
69
|
+
detail: `${key} (tenant ${String(peer.tenant)}) was sent to ${operationId} under ${tenant}, ` +
|
|
70
|
+
`${ctx.actor.id}'s tenant: ${operationId} answered ${crossed.status}. A key must work only ` +
|
|
71
|
+
"in the tenant it was issued for.",
|
|
72
|
+
evidence: [crossed],
|
|
73
|
+
summary: `an ${scheme} key of one tenant is accepted in another`,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
if (byValidation(crossed.status)) {
|
|
77
|
+
return ctx.findings.unresolved(CHECK, ctx.subject, `${key} drew ${crossed.status} under ${tenant}: ${BY_VALIDATION}`);
|
|
78
|
+
}
|
|
79
|
+
if (!isRefused(crossed.status) && crossed.status !== 404) {
|
|
80
|
+
const reason = `${key} drew ${crossed.status} under ${tenant}, neither a refusal nor a success`;
|
|
81
|
+
return ctx.findings.unresolved(CHECK, ctx.subject, reason);
|
|
82
|
+
}
|
|
83
|
+
const home = await ctx.client.get(own, { as, operationId, query });
|
|
84
|
+
if (home.status < 300)
|
|
85
|
+
return ASSERTED;
|
|
86
|
+
const reason = `${key} was refused (${home.status}) in its own tenant too, so the refusal proves nothing`;
|
|
87
|
+
return ctx.findings.unresolved(CHECK, ctx.subject, reason);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=auth-cross-tenant-key-refused.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { OperationCheck } from "../../core/check.ts";
|
|
2
|
+
import type { Requirement } from "../../../../spec/security/requirements.ts";
|
|
3
|
+
import { type Address } from "./probing.ts";
|
|
4
|
+
/** A value no scheme issues: garbage, so it stays visible in the journal. */
|
|
5
|
+
export declare const GARBAGE = "testing-invalid-credential";
|
|
6
|
+
/** Whether `value` is a JWT: three base64url segments, the first a JSON header naming its `alg`. */
|
|
7
|
+
export declare function isJwt(value: string): boolean;
|
|
8
|
+
/** The JWT with its signature's first character changed: every bit of it counts, unlike the last's. */
|
|
9
|
+
export declare function flipSignature(jwt: string): string;
|
|
10
|
+
interface Planned {
|
|
11
|
+
address: Address;
|
|
12
|
+
schemes: Requirement[];
|
|
13
|
+
}
|
|
14
|
+
export declare const invalidCredentialRefused: OperationCheck<Planned>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=auth-invalid-credential-refused.d.ts.map
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { defineCheck } from "../../core/define.js";
|
|
2
|
+
import { isUntested } from "../../core/operation.js";
|
|
3
|
+
import { andThen, cannot, ready } from "../../core/plan.js";
|
|
4
|
+
import { addressOf, judgeRefusals, securedPlan, send, singleSchemes } from "./probing.js";
|
|
5
|
+
const ID = "auth.invalid-credential-refused";
|
|
6
|
+
/** A value no scheme issues: garbage, so it stays visible in the journal. */
|
|
7
|
+
export const GARBAGE = "testing-invalid-credential";
|
|
8
|
+
/** Whether `value` is a JWT: three base64url segments, the first a JSON header naming its `alg`. */
|
|
9
|
+
export function isJwt(value) {
|
|
10
|
+
const [header, payload, signature, ...rest] = value.split(".");
|
|
11
|
+
if (rest.length > 0 || !header || !payload || !signature)
|
|
12
|
+
return false;
|
|
13
|
+
try {
|
|
14
|
+
const decoded = JSON.parse(Buffer.from(header, "base64url").toString("utf8"));
|
|
15
|
+
return typeof decoded === "object" && decoded !== null && typeof decoded.alg === "string";
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** The JWT with its signature's first character changed: every bit of it counts, unlike the last's. */
|
|
22
|
+
export function flipSignature(jwt) {
|
|
23
|
+
const at = jwt.lastIndexOf(".") + 1;
|
|
24
|
+
return `${jwt.slice(0, at)}${jwt[at] === "A" ? "B" : "A"}${jwt.slice(at + 1)}`;
|
|
25
|
+
}
|
|
26
|
+
export const invalidCredentialRefused = defineCheck({
|
|
27
|
+
id: ID,
|
|
28
|
+
mutates: true,
|
|
29
|
+
needs: "an operation whose security requires a credential",
|
|
30
|
+
plan: (ctx) => andThen(securedPlan(ctx), () => {
|
|
31
|
+
const schemes = singleSchemes(ctx.security);
|
|
32
|
+
if (schemes.length === 0)
|
|
33
|
+
return cannot("an alternative of one scheme, for a credential to stand in for");
|
|
34
|
+
return andThen(addressOf(ctx), (address) => ready({ address, schemes }));
|
|
35
|
+
}),
|
|
36
|
+
async run(ctx, { address, schemes }) {
|
|
37
|
+
const probes = [];
|
|
38
|
+
for (const requirement of schemes)
|
|
39
|
+
probes.push(...(await probesOf(ctx, { address, requirement })));
|
|
40
|
+
return judgeRefusals(ctx, ID, probes);
|
|
41
|
+
},
|
|
42
|
+
subject: "operation",
|
|
43
|
+
});
|
|
44
|
+
/* Garbage for the scheme, then the actor's own JWT for it with its signature altered, where it holds one. */
|
|
45
|
+
async function probesOf(ctx, at) {
|
|
46
|
+
const { address, requirement } = at;
|
|
47
|
+
const { scheme } = requirement;
|
|
48
|
+
const garbage = await send(ctx, address, { forged: { scheme, value: GARBAGE } });
|
|
49
|
+
const probes = [
|
|
50
|
+
{
|
|
51
|
+
exchange: garbage,
|
|
52
|
+
sent: `an invalid ${scheme} credential`,
|
|
53
|
+
summary: "a secured operation accepted an invalid credential",
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
const held = await ctx.probe.held({ principal: ctx.actor.id, scheme, scopes: requirement.scopes });
|
|
57
|
+
if (isUntested(held) || !isJwt(held.value))
|
|
58
|
+
return probes;
|
|
59
|
+
const altered = await send(ctx, address, { forged: { derived: true, scheme, value: flipSignature(held.value) } });
|
|
60
|
+
probes.push({
|
|
61
|
+
exchange: altered,
|
|
62
|
+
sent: `${ctx.actor.id}'s ${scheme} JWT with its signature altered`,
|
|
63
|
+
summary: "a secured operation accepted a JWT whose signature was altered",
|
|
64
|
+
});
|
|
65
|
+
return probes;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=auth-invalid-credential-refused.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { OperationCheck } from "../../core/check.ts";
|
|
2
|
+
/**
|
|
3
|
+
* The most failed logins the check sends: the reference's threshold (5 failures within a minute)
|
|
4
|
+
* plus 3, so a throttle that counts a little late still answers in time, and one that never does is
|
|
5
|
+
* not hammered.
|
|
6
|
+
*/
|
|
7
|
+
export declare const LOGIN_ATTEMPTS = 8;
|
|
8
|
+
/**
|
|
9
|
+
* Repeated failed logins are throttled. Opt-in (`optIn`, which the security stage enforces), since a
|
|
10
|
+
* throttle that counts by address can slow every login from the machine running the API tester for a while.
|
|
11
|
+
* Anchored on the login step of a login recipe, it sends failed logins anonymously for one identity
|
|
12
|
+
* no account can hold (`testing-nonexistent-<nonce>`, at `example.invalid` where the field is an email),
|
|
13
|
+
* never a principal's, until the login answers 429 or the cap.
|
|
14
|
+
*/
|
|
15
|
+
export declare const loginThrottled: OperationCheck<Record<string, unknown>>;
|
|
16
|
+
//# sourceMappingURL=auth-login-throttled.d.ts.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { defineCheck } from "../../core/define.js";
|
|
2
|
+
import { andThen, cannot, ready } from "../../core/plan.js";
|
|
3
|
+
import { asserted } from "../../../finding.js";
|
|
4
|
+
import { fillPath } from "../../../fill-path.js";
|
|
5
|
+
import { buildCohort } from "../../../fixture.js";
|
|
6
|
+
import { nonexistentIdentity } from "../../../nonexistent-identity.js";
|
|
7
|
+
import { noSecurityReason } from "../../../no-security.js";
|
|
8
|
+
import { requestContent } from "../../../../spec/collection/request.js";
|
|
9
|
+
import { anchoredSchemes } from "./lifecycle.js";
|
|
10
|
+
/**
|
|
11
|
+
* The most failed logins the check sends: the reference's threshold (5 failures within a minute)
|
|
12
|
+
* plus 3, so a throttle that counts a little late still answers in time, and one that never does is
|
|
13
|
+
* not hammered.
|
|
14
|
+
*/
|
|
15
|
+
export const LOGIN_ATTEMPTS = 8;
|
|
16
|
+
/**
|
|
17
|
+
* The failed login's body: valid by the schema, every string field naming an identity no account can
|
|
18
|
+
* hold. An email-shaped one is at RFC 2606's reserved `.invalid` domain, which never resolves.
|
|
19
|
+
*/
|
|
20
|
+
function nobodyOf(body, { nonce, schema }) {
|
|
21
|
+
/* A body drawn from a schema with no properties has no field to map. */
|
|
22
|
+
const properties = schema.properties;
|
|
23
|
+
return Object.fromEntries(Object.entries(body).map(([name, value]) => [
|
|
24
|
+
name,
|
|
25
|
+
typeof value === "string" ? nonexistentIdentity({ name, schema: properties[name] }, nonce) : value,
|
|
26
|
+
]));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Repeated failed logins are throttled. Opt-in (`optIn`, which the security stage enforces), since a
|
|
30
|
+
* throttle that counts by address can slow every login from the machine running the API tester for a while.
|
|
31
|
+
* Anchored on the login step of a login recipe, it sends failed logins anonymously for one identity
|
|
32
|
+
* no account can hold (`testing-nonexistent-<nonce>`, at `example.invalid` where the field is an email),
|
|
33
|
+
* never a principal's, until the login answers 429 or the cap.
|
|
34
|
+
*/
|
|
35
|
+
export const loginThrottled = defineCheck({
|
|
36
|
+
id: "auth.login-throttled",
|
|
37
|
+
mutates: true,
|
|
38
|
+
mutatesCredentials: true,
|
|
39
|
+
needs: "a login recipe whose login step the document declares, with a request body schema",
|
|
40
|
+
optIn: true,
|
|
41
|
+
plan: (ctx) => {
|
|
42
|
+
const undeclared = noSecurityReason(ctx.operation);
|
|
43
|
+
if (undeclared !== undefined)
|
|
44
|
+
return cannot(undeclared);
|
|
45
|
+
const { operationId } = ctx.operation;
|
|
46
|
+
return andThen(anchoredSchemes(ctx, { kind: "issue", login: true }), () => {
|
|
47
|
+
/* The model holds every operation it lists. */
|
|
48
|
+
const raw = ctx.model.rawOperations.get(operationId);
|
|
49
|
+
const schema = requestContent(raw)?.schema ?? null;
|
|
50
|
+
return schema === null
|
|
51
|
+
? cannot(`a request body schema for ${operationId}, to build a failed login from`)
|
|
52
|
+
: ready(schema);
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
subject: "operation",
|
|
56
|
+
async run(ctx, schema) {
|
|
57
|
+
const { method, operationId, path } = ctx.operation;
|
|
58
|
+
const [drawn] = buildCohort(schema, 0, {
|
|
59
|
+
defs: ctx.model.defs,
|
|
60
|
+
nonce: ctx.nonce,
|
|
61
|
+
operationId,
|
|
62
|
+
variants: ["baseline"],
|
|
63
|
+
});
|
|
64
|
+
const body = nobodyOf(drawn.body, { nonce: ctx.nonce, schema });
|
|
65
|
+
const target = fillPath(path, ctx.actor.scope);
|
|
66
|
+
const sent = [];
|
|
67
|
+
while (sent.length < LOGIN_ATTEMPTS) {
|
|
68
|
+
const attempt = await ctx.client.request(method, target, {
|
|
69
|
+
as: { anonymous: true },
|
|
70
|
+
body,
|
|
71
|
+
operationId,
|
|
72
|
+
probe: true,
|
|
73
|
+
});
|
|
74
|
+
sent.push(attempt);
|
|
75
|
+
if (attempt.status === 429) {
|
|
76
|
+
return asserted(`a login for one identity was throttled (429) after ${sent.length - 1} failures`);
|
|
77
|
+
}
|
|
78
|
+
if (attempt.status < 300) {
|
|
79
|
+
const reason = `a login for an identity that does not exist answered ${attempt.status}, so its failures cannot be counted`;
|
|
80
|
+
return ctx.findings.unresolved(this.id, ctx.subject, reason);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return ctx.findings.security(this.id, ctx.subject, {
|
|
84
|
+
detail: `${LOGIN_ATTEMPTS} failed logins for one identity that does not exist, sent to ${operationId} ` +
|
|
85
|
+
"back to back, drew no 429. Without a throttle a password can be guessed at the server's full speed.",
|
|
86
|
+
evidence: sent,
|
|
87
|
+
summary: "repeated failed logins are never throttled",
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=auth-login-throttled.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A secured operation must refuse a request that carries no credential. Planned only where the
|
|
3
|
+
* security requires one: an operation that lets anonymous callers in owes no refusal, and a document
|
|
4
|
+
* that declares no security says nothing either way. Probes go where `addressOf` puts them, by their
|
|
5
|
+
* placement; a write only to the run-created record, with its current state, so a broken API that
|
|
6
|
+
* applies it changes nothing. Mutating, since some of its probes write.
|
|
7
|
+
*/
|
|
8
|
+
import { defineCheck } from "../../core/define.js";
|
|
9
|
+
import { andThen } from "../../core/plan.js";
|
|
10
|
+
import { addressOf, judgeRefusals, securedPlan, send } from "./probing.js";
|
|
11
|
+
const ID = "auth.missing-credential-refused";
|
|
12
|
+
export const missingCredentialRefused = defineCheck({
|
|
13
|
+
id: ID,
|
|
14
|
+
mutates: true,
|
|
15
|
+
needs: "an operation whose security requires a credential",
|
|
16
|
+
plan: (ctx) => andThen(securedPlan(ctx), () => addressOf(ctx)),
|
|
17
|
+
async run(ctx, address) {
|
|
18
|
+
const exchange = await send(ctx, address, { anonymous: true });
|
|
19
|
+
return judgeRefusals(ctx, ID, [
|
|
20
|
+
{
|
|
21
|
+
exchange,
|
|
22
|
+
sent: "a request with no credential",
|
|
23
|
+
summary: "a secured operation answered a request with no credential",
|
|
24
|
+
},
|
|
25
|
+
]);
|
|
26
|
+
},
|
|
27
|
+
subject: "operation",
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=auth-missing-credential-refused.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { OperationCheck } from "../../core/check.ts";
|
|
2
|
+
import type { Actor } from "../../core/context.ts";
|
|
3
|
+
import type { WriteTarget } from "../../core/operation-context.ts";
|
|
4
|
+
import type { OperationModel } from "../../../../spec/graph/types.ts";
|
|
5
|
+
import { type SignUpProbe } from "./privileged-signup.ts";
|
|
6
|
+
type Fields = Record<string, unknown>;
|
|
7
|
+
/** The record written to, how it is re-read, who writes, who outranks it, and the body it sends. */
|
|
8
|
+
interface RecordProbe {
|
|
9
|
+
kind: "record";
|
|
10
|
+
target: WriteTarget;
|
|
11
|
+
read: OperationModel;
|
|
12
|
+
/** What any writer may send of the record as it is now; the marked properties are set on it. */
|
|
13
|
+
body: Fields;
|
|
14
|
+
/** Every rank below the top of the owner's tenant, highest first: the next writes when one cannot. */
|
|
15
|
+
writers: Actor[];
|
|
16
|
+
top: Actor;
|
|
17
|
+
changes: ReadonlyArray<[path: string, value: unknown]>;
|
|
18
|
+
}
|
|
19
|
+
/** A write to a record the run created, or a sign-up of an account of its own. */
|
|
20
|
+
type PrivilegedProbe = RecordProbe | SignUpProbe;
|
|
21
|
+
/**
|
|
22
|
+
* Only the highest rank may set a property the document marks `x-privileged: true`. A principal
|
|
23
|
+
* ranked below it writes a record this run created, through a dedicated credential (never its own
|
|
24
|
+
* session): the record's current state cut to what the request body accepts, each marked property
|
|
25
|
+
* changed. The verdict is the record as its owner re-reads it, not the status: a marked property
|
|
26
|
+
* left as it was passes, whether the write drew a 403, a 400 naming it, or a 200; one that changed is
|
|
27
|
+
* the finding. A refusal passes only once the same writer's harmless write is accepted: a writer whose
|
|
28
|
+
* role cannot update the record proves nothing, and the next rank below the top writes instead. A
|
|
29
|
+
* server error, a record that cannot be re-read, or no rank able to write leaves it unresolved. A sign-up,
|
|
30
|
+
* which anyone may send, must not grant one either: see `privileged-signup.ts`.
|
|
31
|
+
*/
|
|
32
|
+
export declare const privilegedFieldIgnored: OperationCheck<PrivilegedProbe>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=auth-privileged-field-ignored.d.ts.map
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { defineCheck } from "../../core/define.js";
|
|
2
|
+
import { isUntested, targetPlan } from "../../core/operation.js";
|
|
3
|
+
import { andThen, cannot, ready } from "../../core/plan.js";
|
|
4
|
+
import { ASSERTED, standDown } from "../../../finding.js";
|
|
5
|
+
import { noSecurityReason } from "../../../no-security.js";
|
|
6
|
+
import { requestContent } from "../../../../spec/collection/request.js";
|
|
7
|
+
import { unlessUnsatisfied } from "./lifecycle.js";
|
|
8
|
+
import { isSignUp, signUpAndJudge, signUpPlan } from "./privileged-signup.js";
|
|
9
|
+
import { currentOf, readOf, recordAt, writableBody } from "./writable.js";
|
|
10
|
+
/**
|
|
11
|
+
* Only the highest rank may set a property the document marks `x-privileged: true`. A principal
|
|
12
|
+
* ranked below it writes a record this run created, through a dedicated credential (never its own
|
|
13
|
+
* session): the record's current state cut to what the request body accepts, each marked property
|
|
14
|
+
* changed. The verdict is the record as its owner re-reads it, not the status: a marked property
|
|
15
|
+
* left as it was passes, whether the write drew a 403, a 400 naming it, or a 200; one that changed is
|
|
16
|
+
* the finding. A refusal passes only once the same writer's harmless write is accepted: a writer whose
|
|
17
|
+
* role cannot update the record proves nothing, and the next rank below the top writes instead. A
|
|
18
|
+
* server error, a record that cannot be re-read, or no rank able to write leaves it unresolved. A sign-up,
|
|
19
|
+
* which anyone may send, must not grant one either: see `privileged-signup.ts`.
|
|
20
|
+
*/
|
|
21
|
+
export const privilegedFieldIgnored = defineCheck({
|
|
22
|
+
id: "auth.privileged-field-ignored",
|
|
23
|
+
mutates: true,
|
|
24
|
+
needs: "a property marked x-privileged, and a sign-up or a run-created record with a principal ranked below the highest",
|
|
25
|
+
plan: (ctx) => {
|
|
26
|
+
if (ctx.operation.privileged.length > 0 && isSignUp(ctx))
|
|
27
|
+
return signUpPlan(ctx);
|
|
28
|
+
const undeclared = noSecurityReason(ctx.operation);
|
|
29
|
+
if (undeclared !== undefined)
|
|
30
|
+
return cannot(undeclared);
|
|
31
|
+
if (ctx.operation.privileged.length === 0) {
|
|
32
|
+
const marked = ctx.model.operations.some((op) => op.privileged.length > 0);
|
|
33
|
+
return cannot(marked
|
|
34
|
+
? `a request body property marked x-privileged; ${ctx.operation.operationId} marks none`
|
|
35
|
+
: "no property is marked x-privileged");
|
|
36
|
+
}
|
|
37
|
+
return andThen(targetPlan(ctx), (target) => {
|
|
38
|
+
const read = readOf(ctx);
|
|
39
|
+
if (read === undefined)
|
|
40
|
+
return cannot("a GET on the write's path, to re-read the record");
|
|
41
|
+
const record = currentOf(target);
|
|
42
|
+
if (record === undefined)
|
|
43
|
+
return cannot("the target record's current state, for a harmless body");
|
|
44
|
+
const body = writableBody(ctx, record);
|
|
45
|
+
return andThen(changesOf(ctx, { body, record }), (changes) => andThen(writersOf(ctx, target), (pair) => ready({ ...pair, body, changes, kind: "record", read, target })));
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
subject: "operation",
|
|
49
|
+
async run(ctx, probe) {
|
|
50
|
+
if (probe.kind === "signup")
|
|
51
|
+
return signUpAndJudge(ctx, probe);
|
|
52
|
+
const reasons = [];
|
|
53
|
+
for (const set of ctx.operation.security.alternatives) {
|
|
54
|
+
const scheme = set.length === 1 ? set[0] : undefined;
|
|
55
|
+
if (scheme === undefined)
|
|
56
|
+
continue;
|
|
57
|
+
const outcome = await acrossWriters(ctx, { probe, scheme });
|
|
58
|
+
if (!("untested" in outcome))
|
|
59
|
+
return outcome;
|
|
60
|
+
reasons.push(outcome.untested);
|
|
61
|
+
}
|
|
62
|
+
return standDown(reasons.join("; "));
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
const CHECK = "auth.privileged-field-ignored";
|
|
66
|
+
/**
|
|
67
|
+
* Each writer in turn, until one can update the record at all. A writer refused even the harmless
|
|
68
|
+
* write proves nothing about the marked properties (its role may not update this record), so the next
|
|
69
|
+
* rank below the top writes. Unresolved when every such rank was refused; untested when none could be
|
|
70
|
+
* sent as.
|
|
71
|
+
*/
|
|
72
|
+
async function acrossWriters(ctx, { probe, scheme }) {
|
|
73
|
+
const refused = [];
|
|
74
|
+
const untested = [];
|
|
75
|
+
for (const writer of probe.writers) {
|
|
76
|
+
/* The write spends nothing of the credential, so one of the writer's serves every such probe. */
|
|
77
|
+
const dedicated = await ctx.probe.dedicated({
|
|
78
|
+
principal: writer.id,
|
|
79
|
+
reusable: true,
|
|
80
|
+
scheme: scheme.scheme,
|
|
81
|
+
scopes: scheme.scopes,
|
|
82
|
+
});
|
|
83
|
+
if (isUntested(dedicated)) {
|
|
84
|
+
untested.push(`${scheme.scheme}: ${dedicated.untested}`);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const as = { principal: dedicated.actor.principal, scheme: scheme.scheme };
|
|
88
|
+
const outcome = await unlessUnsatisfied(scheme.scheme, () => writeAndJudge(ctx, { as, probe, writer }));
|
|
89
|
+
if ("untested" in outcome)
|
|
90
|
+
untested.push(outcome.untested);
|
|
91
|
+
else if ("refused" in outcome)
|
|
92
|
+
refused.push(outcome.refused);
|
|
93
|
+
else
|
|
94
|
+
return outcome;
|
|
95
|
+
}
|
|
96
|
+
/* One reason per scheme, however many writers it stopped. */
|
|
97
|
+
if (refused.length === 0)
|
|
98
|
+
return { untested: [...new Set(untested)].join("; ") };
|
|
99
|
+
const names = probe.changes.map(([path]) => path).join(", ");
|
|
100
|
+
const reason = `no rank below ${probe.top.id} can update the record (${refused.join(", ")}), so whether one may set ${names} is untested`;
|
|
101
|
+
return ctx.findings.unresolved(CHECK, ctx.subject, reason);
|
|
102
|
+
}
|
|
103
|
+
async function writeAndJudge(ctx, { as, probe, writer }) {
|
|
104
|
+
const { changes, read, target, top } = probe;
|
|
105
|
+
const { method, operationId, requiredQuery: query } = ctx.operation;
|
|
106
|
+
const names = changes.map(([path]) => path).join(", ");
|
|
107
|
+
const body = structuredClone(probe.body);
|
|
108
|
+
for (const [path, value] of changes)
|
|
109
|
+
setAt(body, path, value);
|
|
110
|
+
const wrote = await ctx.client.request(method, target.path, { as, body, operationId, probe: true, query });
|
|
111
|
+
if (wrote.status >= 500) {
|
|
112
|
+
return ctx.findings.unresolved(CHECK, ctx.subject, `${writer.id}'s write of ${names} drew ${wrote.status}, a server error`);
|
|
113
|
+
}
|
|
114
|
+
const reread = await ctx.client.get(target.path, {
|
|
115
|
+
as: { principal: target.owner },
|
|
116
|
+
operationId: read.operationId,
|
|
117
|
+
query: read.requiredQuery,
|
|
118
|
+
});
|
|
119
|
+
const state = reread.status < 300 ? recordAt(ctx, reread.responseBody) : undefined;
|
|
120
|
+
if (state === undefined) {
|
|
121
|
+
const reason = `the record could not be re-read after the write (${reread.status}), so whether ${names} changed is unknown`;
|
|
122
|
+
return ctx.findings.unresolved(CHECK, ctx.subject, reason);
|
|
123
|
+
}
|
|
124
|
+
const applied = changes.filter(([path, value]) => Object.is(valueAt(state, path), value)).map(([path]) => path);
|
|
125
|
+
if (applied.length === 0)
|
|
126
|
+
return wrote.status < 400 ? ASSERTED : controlled(ctx, { as, probe, writer });
|
|
127
|
+
return ctx.findings.security(CHECK, ctx.subject, {
|
|
128
|
+
detail: `${writer.id} (rank ${writer.rank}) wrote ${applied.join(", ")}, marked x-privileged, on a record ` +
|
|
129
|
+
`this run created; ${operationId} answered ${wrote.status} and the re-read shows it applied. Only ` +
|
|
130
|
+
`${top.id} (rank ${top.rank}), the highest rank, may set it.`,
|
|
131
|
+
evidence: [wrote, reread],
|
|
132
|
+
summary: "a write below the highest rank sets an x-privileged property",
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/*
|
|
136
|
+
* A refused probe, told apart: the same writer sends the harmless body alone. Accepted, the refusal
|
|
137
|
+
* was the marked properties' (a pass); refused too, this writer cannot update the record at all. A
|
|
138
|
+
* server error is unresolved, as on the probe.
|
|
139
|
+
*/
|
|
140
|
+
async function controlled(ctx, { as, probe, writer }) {
|
|
141
|
+
const { method, operationId, requiredQuery: query } = ctx.operation;
|
|
142
|
+
const control = await ctx.client.request(method, probe.target.path, {
|
|
143
|
+
as,
|
|
144
|
+
body: structuredClone(probe.body),
|
|
145
|
+
operationId,
|
|
146
|
+
probe: true,
|
|
147
|
+
query,
|
|
148
|
+
});
|
|
149
|
+
if (control.status >= 500) {
|
|
150
|
+
return ctx.findings.unresolved(CHECK, ctx.subject, `${writer.id}'s harmless write drew ${control.status}, a server error`);
|
|
151
|
+
}
|
|
152
|
+
return control.status < 300 ? ASSERTED : { refused: `${writer.id} ${control.status}` };
|
|
153
|
+
}
|
|
154
|
+
/* The writers: every principal of the target owner's tenant ranked below its highest, highest first. */
|
|
155
|
+
function writersOf(ctx, target) {
|
|
156
|
+
const owner = ctx.principals.find((actor) => actor.id === target.owner) ?? ctx.actor;
|
|
157
|
+
const home = ctx.principals.filter((actor) => actor.tenant === owner.tenant).toSorted((a, b) => b.rank - a.rank);
|
|
158
|
+
const top = home[0];
|
|
159
|
+
const writers = home.filter((actor) => actor.rank < top.rank);
|
|
160
|
+
return writers.length === 0
|
|
161
|
+
? cannot("a principal ranked below the highest of the target owner's tenant")
|
|
162
|
+
: ready({ top, writers });
|
|
163
|
+
}
|
|
164
|
+
/*
|
|
165
|
+
* Each marked property with the value the probe sets it to, changed from the record's own; any one the API tester
|
|
166
|
+
* cannot change, or whose parent the body (which never carries a marked property) lacks, stands it down.
|
|
167
|
+
*/
|
|
168
|
+
function changesOf(ctx, { body, record }) {
|
|
169
|
+
const changes = [];
|
|
170
|
+
for (const path of ctx.operation.privileged) {
|
|
171
|
+
const value = changed(valueAt(record, path), typeOf(ctx, path));
|
|
172
|
+
if (value === undefined || !isFields(parentOf(body, path)))
|
|
173
|
+
return cannot(`a value of ${path} the API tester can change`);
|
|
174
|
+
changes.push([path, value]);
|
|
175
|
+
}
|
|
176
|
+
return ready(changes);
|
|
177
|
+
}
|
|
178
|
+
/* A different value of the same type: a boolean flipped (a missing boolean set), a number one up, a string suffixed. */
|
|
179
|
+
function changed(current, type) {
|
|
180
|
+
if (typeof current === "boolean")
|
|
181
|
+
return !current;
|
|
182
|
+
if (typeof current === "number")
|
|
183
|
+
return current + 1;
|
|
184
|
+
if (typeof current === "string")
|
|
185
|
+
return `${current}-testing`;
|
|
186
|
+
return current === undefined && type === "boolean" ? true : undefined;
|
|
187
|
+
}
|
|
188
|
+
/* The declared type of the request body property at the dotted `path`. */
|
|
189
|
+
function typeOf(ctx, path) {
|
|
190
|
+
/* The model holds every operation it lists; a marked property implies a request body. */
|
|
191
|
+
const raw = ctx.model.rawOperations.get(ctx.operation.operationId);
|
|
192
|
+
return valueAt(requestContent(raw), `schema.properties.${path.split(".").join(".properties.")}.type`);
|
|
193
|
+
}
|
|
194
|
+
function isFields(value) {
|
|
195
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
196
|
+
}
|
|
197
|
+
function valueAt(value, path) {
|
|
198
|
+
return path.split(".").reduce((at, key) => (isFields(at) ? at[key] : undefined), value);
|
|
199
|
+
}
|
|
200
|
+
/* The object holding the last segment of `path`. */
|
|
201
|
+
function parentOf(value, path) {
|
|
202
|
+
const keys = path.split(".");
|
|
203
|
+
return keys.length === 1 ? value : valueAt(value, keys.slice(0, -1).join("."));
|
|
204
|
+
}
|
|
205
|
+
function setAt(value, path, next) {
|
|
206
|
+
const keys = path.split(".");
|
|
207
|
+
const last = keys.at(-1);
|
|
208
|
+
parentOf(value, path)[last] = next;
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=auth-privileged-field-ignored.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OperationCheck } from "../../core/check.ts";
|
|
2
|
+
import { type Lifecycle } from "./lifecycle.ts";
|
|
3
|
+
/**
|
|
4
|
+
* A refresh token works once. For each scheme whose recipe declares a refresh, anchored on that
|
|
5
|
+
* refresh operation, the check acquires a dedicated session (never the principal's own), rotates it,
|
|
6
|
+
* proves the rotated session on one read, then replays the refresh token the rotation spent. The
|
|
7
|
+
* replay must fail: a stolen refresh token that keeps refreshing is a session that never ends.
|
|
8
|
+
*/
|
|
9
|
+
export declare const refreshReuseRefused: OperationCheck<Lifecycle[]>;
|
|
10
|
+
//# sourceMappingURL=auth-refresh-reuse-refused.d.ts.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { defineCheck } from "../../core/define.js";
|
|
2
|
+
import { isUntested } from "../../core/operation.js";
|
|
3
|
+
import { lifecyclePlan, settle } from "./lifecycle.js";
|
|
4
|
+
/**
|
|
5
|
+
* A refresh token works once. For each scheme whose recipe declares a refresh, anchored on that
|
|
6
|
+
* refresh operation, the check acquires a dedicated session (never the principal's own), rotates it,
|
|
7
|
+
* proves the rotated session on one read, then replays the refresh token the rotation spent. The
|
|
8
|
+
* replay must fail: a stolen refresh token that keeps refreshing is a session that never ends.
|
|
9
|
+
*/
|
|
10
|
+
export const refreshReuseRefused = defineCheck({
|
|
11
|
+
id: "auth.refresh-reuse-refused",
|
|
12
|
+
mutates: true,
|
|
13
|
+
mutatesCredentials: true,
|
|
14
|
+
needs: "a recipe that declares a refresh, and a GET the credential authenticates",
|
|
15
|
+
plan: (ctx) => lifecyclePlan(ctx, "refresh"),
|
|
16
|
+
subject: "operation",
|
|
17
|
+
async run(ctx, planned) {
|
|
18
|
+
const outcomes = [];
|
|
19
|
+
for (const lifecycle of planned)
|
|
20
|
+
outcomes.push(await rotateAndReplay(ctx, lifecycle));
|
|
21
|
+
return settle(outcomes);
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const CHECK = "auth.refresh-reuse-refused";
|
|
25
|
+
async function rotateAndReplay(ctx, { actor, route, scheme }) {
|
|
26
|
+
const { method, operation, path, scopes } = route;
|
|
27
|
+
const reads = operation.operationId;
|
|
28
|
+
const dedicated = await ctx.probe.dedicated({ principal: actor, scheme, scopes });
|
|
29
|
+
if (isUntested(dedicated))
|
|
30
|
+
return { untested: `${scheme}: ${dedicated.untested}` };
|
|
31
|
+
if (dedicated.rotate === undefined)
|
|
32
|
+
return { untested: `${scheme}: the dedicated credential has no declared refresh` };
|
|
33
|
+
const rotation = await dedicated.rotate();
|
|
34
|
+
const as = { principal: dedicated.actor.principal, scheme };
|
|
35
|
+
const proven = await ctx.client.request(method, path, { as, operationId: reads, query: operation.requiredQuery });
|
|
36
|
+
if (proven.status >= 300) {
|
|
37
|
+
const reason = `the rotated ${scheme} session was refused (${proven.status}) on ${reads}, ` +
|
|
38
|
+
"so a refused reuse would prove nothing";
|
|
39
|
+
return ctx.findings.unresolved(CHECK, ctx.subject, reason);
|
|
40
|
+
}
|
|
41
|
+
const replayed = await rotation.replay();
|
|
42
|
+
if (!replayed.accepted)
|
|
43
|
+
return { kind: "asserted" };
|
|
44
|
+
return ctx.findings.security(CHECK, ctx.subject, {
|
|
45
|
+
detail: `${actor}'s ${scheme} session, issued for this probe alone, was rotated through ` +
|
|
46
|
+
`${ctx.subject} and proven on ${reads}; the refresh token that rotation spent then refreshed ` +
|
|
47
|
+
"again. Reuse of a rotated refresh token must fail, and should revoke the whole session.",
|
|
48
|
+
evidence: [proven, ...ctx.client.exchangesFor(ctx.subject).slice(-1)],
|
|
49
|
+
summary: `a rotated ${scheme} refresh token refreshes again`,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=auth-refresh-reuse-refused.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OperationCheck } from "../../core/check.ts";
|
|
2
|
+
import { type Lifecycle } from "./lifecycle.ts";
|
|
3
|
+
/**
|
|
4
|
+
* A revoked credential stops working. For each scheme whose recipe declares a revoke, anchored on
|
|
5
|
+
* that revoke operation, the check acquires a dedicated credential (never the principal's own),
|
|
6
|
+
* proves it on one read it can send whole (`readRoute`), revokes it through the declared path, and sends it to the same read again,
|
|
7
|
+
* which must now refuse it with 401 or 403.
|
|
8
|
+
*/
|
|
9
|
+
export declare const revokedCredentialRefused: OperationCheck<Lifecycle[]>;
|
|
10
|
+
//# sourceMappingURL=auth-revoked-credential-refused.d.ts.map
|