@gfdelarue/testkit 0.3.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 +68 -0
- package/README.md +1125 -0
- package/bin/testkit-windows-owner-arm64.exe +0 -0
- package/bin/testkit-windows-owner-x64.exe +0 -0
- package/bin/testkit.mjs +60 -0
- package/dist/app/cleanup/index.d.ts +52 -0
- package/dist/app/cleanup/index.js +1 -0
- package/dist/app/cloud/campaigns.d.ts +6 -0
- package/dist/app/cloud/campaigns.js +1 -0
- package/dist/app/cloud/control-actions.d.ts +12 -0
- package/dist/app/cloud/control-actions.js +2 -0
- package/dist/app/cloud/control-links.d.ts +5 -0
- package/dist/app/cloud/control-links.js +1 -0
- package/dist/app/cloud/control-read.d.ts +24 -0
- package/dist/app/cloud/control-read.js +1 -0
- package/dist/app/cloud/control-resources.d.ts +3 -0
- package/dist/app/cloud/control-resources.js +1 -0
- package/dist/app/cloud/control.d.ts +34 -0
- package/dist/app/cloud/control.js +5 -0
- package/dist/app/cloud/credentials.d.ts +11 -0
- package/dist/app/cloud/credentials.js +2 -0
- package/dist/app/cloud/index.d.ts +22 -0
- package/dist/app/cloud/index.js +2 -0
- package/dist/app/cloud/login.d.ts +63 -0
- package/dist/app/cloud/login.js +2 -0
- package/dist/app/cloud/migration/archive.d.ts +13 -0
- package/dist/app/cloud/migration/archive.js +1 -0
- package/dist/app/cloud/migration/commands.d.ts +8 -0
- package/dist/app/cloud/migration/commands.js +1 -0
- package/dist/app/cloud/migration/evidence.d.ts +13 -0
- package/dist/app/cloud/migration/evidence.js +2 -0
- package/dist/app/cloud/migration/files.d.ts +16 -0
- package/dist/app/cloud/migration/files.js +2 -0
- package/dist/app/cloud/migration/index.d.ts +6 -0
- package/dist/app/cloud/migration/index.js +1 -0
- package/dist/app/cloud/migration/journal.d.ts +64 -0
- package/dist/app/cloud/migration/journal.js +1 -0
- package/dist/app/cloud/migration/mapping-dispositions.d.ts +3 -0
- package/dist/app/cloud/migration/mapping-dispositions.js +1 -0
- package/dist/app/cloud/migration/mapping.d.ts +11 -0
- package/dist/app/cloud/migration/mapping.js +2 -0
- package/dist/app/cloud/migration/model.d.ts +175 -0
- package/dist/app/cloud/migration/model.js +1 -0
- package/dist/app/cloud/migration/plan.d.ts +7 -0
- package/dist/app/cloud/migration/plan.js +1 -0
- package/dist/app/cloud/migration/progress.d.ts +19 -0
- package/dist/app/cloud/migration/progress.js +1 -0
- package/dist/app/cloud/migration/reconcile.d.ts +22 -0
- package/dist/app/cloud/migration/reconcile.js +1 -0
- package/dist/app/cloud/migration/reconciliation-spool.d.ts +4 -0
- package/dist/app/cloud/migration/reconciliation-spool.js +1 -0
- package/dist/app/cloud/migration/state.d.ts +15 -0
- package/dist/app/cloud/migration/state.js +1 -0
- package/dist/app/cloud/migration/transfer.d.ts +6 -0
- package/dist/app/cloud/migration/transfer.js +1 -0
- package/dist/app/db-schema/prepare.d.ts +11 -0
- package/dist/app/db-schema/prepare.js +1 -0
- package/dist/app/db-schema/refresh.d.ts +17 -0
- package/dist/app/db-schema/refresh.js +1 -0
- package/dist/app/db-schema/verify.d.ts +11 -0
- package/dist/app/db-schema/verify.js +1 -0
- package/dist/app/destroy/index.d.ts +16 -0
- package/dist/app/destroy/index.js +1 -0
- package/dist/app/discover/index.d.ts +8 -0
- package/dist/app/discover/index.js +2 -0
- package/dist/app/doctor/index.d.ts +17 -0
- package/dist/app/doctor/index.js +1 -0
- package/dist/app/file-selection.d.ts +1 -0
- package/dist/app/file-selection.js +1 -0
- package/dist/app/inspect/artifacts.d.ts +29 -0
- package/dist/app/inspect/artifacts.js +1 -0
- package/dist/app/inspect/index.d.ts +112 -0
- package/dist/app/inspect/index.js +1 -0
- package/dist/app/lint/index.d.ts +28 -0
- package/dist/app/lint/index.js +2 -0
- package/dist/app/lint/native.d.ts +10 -0
- package/dist/app/lint/native.js +1 -0
- package/dist/app/lint/options.d.ts +67 -0
- package/dist/app/lint/options.js +1 -0
- package/dist/app/lint/policy.d.ts +21 -0
- package/dist/app/lint/policy.js +1 -0
- package/dist/app/lint/rules/data.d.ts +3 -0
- package/dist/app/lint/rules/data.js +1 -0
- package/dist/app/lint/rules/engine-imports.d.ts +3 -0
- package/dist/app/lint/rules/engine-imports.js +1 -0
- package/dist/app/lint/rules/syntax.d.ts +4 -0
- package/dist/app/lint/rules/syntax.js +1 -0
- package/dist/app/lint/rules/unit.d.ts +3 -0
- package/dist/app/lint/rules/unit.js +1 -0
- package/dist/app/lint/shared.d.ts +36 -0
- package/dist/app/lint/shared.js +1 -0
- package/dist/app/package-inspection.d.ts +20 -0
- package/dist/app/package-inspection.js +1 -0
- package/dist/app/run/endpoint-readiness.d.ts +43 -0
- package/dist/app/run/endpoint-readiness.js +1 -0
- package/dist/app/run/engine-evidence-persistence.d.ts +39 -0
- package/dist/app/run/engine-evidence-persistence.js +1 -0
- package/dist/app/run/engine-execution-cleanup.d.ts +8 -0
- package/dist/app/run/engine-execution-cleanup.js +1 -0
- package/dist/app/run/engine-execution-failures.d.ts +41 -0
- package/dist/app/run/engine-execution-failures.js +1 -0
- package/dist/app/run/engine-execution-observer.d.ts +21 -0
- package/dist/app/run/engine-execution-observer.js +1 -0
- package/dist/app/run/engine-execution-reporting.d.ts +17 -0
- package/dist/app/run/engine-execution-reporting.js +1 -0
- package/dist/app/run/engine-execution.d.ts +60 -0
- package/dist/app/run/engine-execution.js +1 -0
- package/dist/app/run/engine-orchestration.d.ts +49 -0
- package/dist/app/run/engine-orchestration.js +1 -0
- package/dist/app/run/failure-details.d.ts +36 -0
- package/dist/app/run/failure-details.js +1 -0
- package/dist/app/run/live-run.d.ts +27 -0
- package/dist/app/run/live-run.js +1 -0
- package/dist/app/run/operation-progress.d.ts +13 -0
- package/dist/app/run/operation-progress.js +1 -0
- package/dist/app/run/orchestrator.d.ts +68 -0
- package/dist/app/run/orchestrator.js +1 -0
- package/dist/app/run/planning-types.d.ts +68 -0
- package/dist/app/run/planning-types.js +1 -0
- package/dist/app/run/planning.d.ts +15 -0
- package/dist/app/run/planning.js +1 -0
- package/dist/app/run/playwright-configuration.d.ts +2 -0
- package/dist/app/run/playwright-configuration.js +1 -0
- package/dist/app/run/request.d.ts +30 -0
- package/dist/app/run/request.js +1 -0
- package/dist/app/run/results.d.ts +161 -0
- package/dist/app/run/results.js +1 -0
- package/dist/app/run/run-events.d.ts +144 -0
- package/dist/app/run/run-events.js +1 -0
- package/dist/app/run/run-finalization.d.ts +52 -0
- package/dist/app/run/run-finalization.js +1 -0
- package/dist/app/run/run-guards.d.ts +3 -0
- package/dist/app/run/run-guards.js +3 -0
- package/dist/app/run/runtime-failures.d.ts +18 -0
- package/dist/app/run/runtime-failures.js +1 -0
- package/dist/app/run/runtime-fixtures.d.ts +2 -0
- package/dist/app/run/runtime-fixtures.js +1 -0
- package/dist/app/run/runtime-task-types.d.ts +20 -0
- package/dist/app/run/runtime-task-types.js +1 -0
- package/dist/app/run/scheduler/estimates.d.ts +32 -0
- package/dist/app/run/scheduler/estimates.js +1 -0
- package/dist/app/run/scheduler/identity.d.ts +9 -0
- package/dist/app/run/scheduler/identity.js +1 -0
- package/dist/app/run/scheduler/index.d.ts +124 -0
- package/dist/app/run/scheduler/index.js +1 -0
- package/dist/app/run/scheduler/observations.d.ts +20 -0
- package/dist/app/run/scheduler/observations.js +1 -0
- package/dist/app/run/selection.d.ts +10 -0
- package/dist/app/run/selection.js +1 -0
- package/dist/app/run/setup/runtime-node-setup-errors.d.ts +13 -0
- package/dist/app/run/setup/runtime-node-setup-errors.js +1 -0
- package/dist/app/run/setup/runtime-node-setup-protocol.d.ts +85 -0
- package/dist/app/run/setup/runtime-node-setup-protocol.js +1 -0
- package/dist/app/run/setup/runtime-node-setup-worker.d.ts +1 -0
- package/dist/app/run/setup/runtime-node-setup-worker.js +1 -0
- package/dist/app/run/setup/runtime-node-setup.d.ts +48 -0
- package/dist/app/run/setup/runtime-node-setup.js +3 -0
- package/dist/app/run/task-batches.d.ts +23 -0
- package/dist/app/run/task-batches.js +1 -0
- package/dist/app/run/worker-loop.d.ts +57 -0
- package/dist/app/run/worker-loop.js +1 -0
- package/dist/app/setup/playwright.d.ts +22 -0
- package/dist/app/setup/playwright.js +1 -0
- package/dist/app/status/index.d.ts +7 -0
- package/dist/app/status/index.js +1 -0
- package/dist/app/status/model.d.ts +29 -0
- package/dist/app/status/model.js +1 -0
- package/dist/app/status/runs.d.ts +99 -0
- package/dist/app/status/runs.js +1 -0
- package/dist/app/stop/index.d.ts +14 -0
- package/dist/app/stop/index.js +1 -0
- package/dist/app/typecheck/index.d.ts +61 -0
- package/dist/app/typecheck/index.js +4 -0
- package/dist/app/typecheck/unavailable.d.ts +1 -0
- package/dist/app/typecheck/unavailable.js +1 -0
- package/dist/cli/cloud-apply-help.d.ts +1 -0
- package/dist/cli/cloud-apply-help.js +56 -0
- package/dist/cli/cloud-selection.d.ts +2 -0
- package/dist/cli/cloud-selection.js +3 -0
- package/dist/cli/command-catalog.d.ts +238 -0
- package/dist/cli/command-catalog.js +1 -0
- package/dist/cli/command-flags.d.ts +19 -0
- package/dist/cli/command-flags.js +1 -0
- package/dist/cli/command-registry.d.ts +2 -0
- package/dist/cli/command-registry.js +1 -0
- package/dist/cli/commands/artifacts.d.ts +48 -0
- package/dist/cli/commands/artifacts.js +3 -0
- package/dist/cli/commands/cleanup.d.ts +13 -0
- package/dist/cli/commands/cleanup.js +1 -0
- package/dist/cli/commands/cloud/apply.d.ts +5 -0
- package/dist/cli/commands/cloud/apply.js +1 -0
- package/dist/cli/commands/cloud/campaign/create.d.ts +5 -0
- package/dist/cli/commands/cloud/campaign/create.js +1 -0
- package/dist/cli/commands/cloud/download.d.ts +5 -0
- package/dist/cli/commands/cloud/download.js +1 -0
- package/dist/cli/commands/cloud/list.d.ts +5 -0
- package/dist/cli/commands/cloud/list.js +1 -0
- package/dist/cli/commands/cloud/login.d.ts +13 -0
- package/dist/cli/commands/cloud/login.js +2 -0
- package/dist/cli/commands/cloud/logout.d.ts +7 -0
- package/dist/cli/commands/cloud/logout.js +1 -0
- package/dist/cli/commands/cloud/migrate/apply.d.ts +2 -0
- package/dist/cli/commands/cloud/migrate/apply.js +1 -0
- package/dist/cli/commands/cloud/migrate/plan.d.ts +7 -0
- package/dist/cli/commands/cloud/migrate/plan.js +1 -0
- package/dist/cli/commands/cloud/migrate/progress.d.ts +2 -0
- package/dist/cli/commands/cloud/migrate/progress.js +2 -0
- package/dist/cli/commands/cloud/migrate/reconcile.d.ts +2 -0
- package/dist/cli/commands/cloud/migrate/reconcile.js +1 -0
- package/dist/cli/commands/cloud/policy/preview.d.ts +5 -0
- package/dist/cli/commands/cloud/policy/preview.js +1 -0
- package/dist/cli/commands/cloud/project/create.d.ts +5 -0
- package/dist/cli/commands/cloud/project/create.js +1 -0
- package/dist/cli/commands/cloud/publish.d.ts +7 -0
- package/dist/cli/commands/cloud/publish.js +1 -0
- package/dist/cli/commands/cloud/session/revoke.d.ts +8 -0
- package/dist/cli/commands/cloud/session/revoke.js +1 -0
- package/dist/cli/commands/cloud/show.d.ts +5 -0
- package/dist/cli/commands/cloud/show.js +1 -0
- package/dist/cli/commands/cloud/snapshot.d.ts +5 -0
- package/dist/cli/commands/cloud/snapshot.js +1 -0
- package/dist/cli/commands/cloud/status.d.ts +33 -0
- package/dist/cli/commands/cloud/status.js +1 -0
- package/dist/cli/commands/db/schema/refresh.d.ts +2 -0
- package/dist/cli/commands/db/schema/refresh.js +1 -0
- package/dist/cli/commands/db/schema/verify.d.ts +2 -0
- package/dist/cli/commands/db/schema/verify.js +1 -0
- package/dist/cli/commands/destroy.d.ts +9 -0
- package/dist/cli/commands/destroy.js +1 -0
- package/dist/cli/commands/discover.d.ts +2 -0
- package/dist/cli/commands/discover.js +1 -0
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.js +1 -0
- package/dist/cli/commands/guard/unsafe-entrypoint.d.ts +2 -0
- package/dist/cli/commands/guard/unsafe-entrypoint.js +2 -0
- package/dist/cli/commands/lint.d.ts +2 -0
- package/dist/cli/commands/lint.js +1 -0
- package/dist/cli/commands/run/status.d.ts +5 -0
- package/dist/cli/commands/run/status.js +1 -0
- package/dist/cli/commands/run/stop.d.ts +7 -0
- package/dist/cli/commands/run/stop.js +1 -0
- package/dist/cli/commands/run.d.ts +9 -0
- package/dist/cli/commands/run.js +1 -0
- package/dist/cli/commands/setup/playwright.d.ts +2 -0
- package/dist/cli/commands/setup/playwright.js +1 -0
- package/dist/cli/commands/status.d.ts +5 -0
- package/dist/cli/commands/status.js +1 -0
- package/dist/cli/commands/stop.d.ts +12 -0
- package/dist/cli/commands/stop.js +1 -0
- package/dist/cli/commands/typecheck.d.ts +2 -0
- package/dist/cli/commands/typecheck.js +1 -0
- package/dist/cli/commands/workspace.d.ts +2 -0
- package/dist/cli/commands/workspace.js +1 -0
- package/dist/cli/entrypoint.d.ts +1 -0
- package/dist/cli/entrypoint.js +1 -0
- package/dist/cli/framework/command.d.ts +21 -0
- package/dist/cli/framework/command.js +1 -0
- package/dist/cli/framework/definitions.d.ts +100 -0
- package/dist/cli/framework/definitions.js +1 -0
- package/dist/cli/framework/errors.d.ts +6 -0
- package/dist/cli/framework/errors.js +1 -0
- package/dist/cli/framework/execute.d.ts +13 -0
- package/dist/cli/framework/execute.js +6 -0
- package/dist/cli/framework/help.d.ts +11 -0
- package/dist/cli/framework/help.js +8 -0
- package/dist/cli/framework/index.d.ts +3 -0
- package/dist/cli/framework/index.js +1 -0
- package/dist/cli/framework/parser.d.ts +6 -0
- package/dist/cli/framework/parser.js +1 -0
- package/dist/cli/index.d.ts +4 -0
- package/dist/cli/index.js +1 -0
- package/dist/cli/json-errors.d.ts +3 -0
- package/dist/cli/json-errors.js +1 -0
- package/dist/cli/operations/db/schema/refresh/operation.d.ts +6 -0
- package/dist/cli/operations/db/schema/refresh/operation.js +1 -0
- package/dist/cli/operations/db/schema/verify/operation.d.ts +6 -0
- package/dist/cli/operations/db/schema/verify/operation.js +1 -0
- package/dist/cli/operations/run/operation.d.ts +24 -0
- package/dist/cli/operations/run/operation.js +2 -0
- package/dist/cli/process-signal.d.ts +1 -0
- package/dist/cli/process-signal.js +1 -0
- package/dist/cli/renderers/artifact-preview.d.ts +4 -0
- package/dist/cli/renderers/artifact-preview.js +1 -0
- package/dist/cli/renderers/cleanup/format.d.ts +14 -0
- package/dist/cli/renderers/cleanup/format.js +1 -0
- package/dist/cli/renderers/db-schema/text.d.ts +4 -0
- package/dist/cli/renderers/db-schema/text.js +1 -0
- package/dist/cli/renderers/destroy/text.d.ts +4 -0
- package/dist/cli/renderers/destroy/text.js +1 -0
- package/dist/cli/renderers/discover/report.d.ts +7 -0
- package/dist/cli/renderers/discover/report.js +1 -0
- package/dist/cli/renderers/discover/text.d.ts +3 -0
- package/dist/cli/renderers/discover/text.js +1 -0
- package/dist/cli/renderers/doctor/text.d.ts +2 -0
- package/dist/cli/renderers/doctor/text.js +1 -0
- package/dist/cli/renderers/lint/text.d.ts +2 -0
- package/dist/cli/renderers/lint/text.js +1 -0
- package/dist/cli/renderers/run/events.d.ts +8 -0
- package/dist/cli/renderers/run/events.js +2 -0
- package/dist/cli/renderers/run/failure.d.ts +8 -0
- package/dist/cli/renderers/run/failure.js +1 -0
- package/dist/cli/renderers/run/formatting.d.ts +79 -0
- package/dist/cli/renderers/run/formatting.js +1 -0
- package/dist/cli/renderers/run/status.d.ts +6 -0
- package/dist/cli/renderers/run/status.js +1 -0
- package/dist/cli/renderers/run/text-reporter.d.ts +19 -0
- package/dist/cli/renderers/run/text-reporter.js +23 -0
- package/dist/cli/renderers/status/text.d.ts +2 -0
- package/dist/cli/renderers/status/text.js +1 -0
- package/dist/cli/renderers/stop/text.d.ts +7 -0
- package/dist/cli/renderers/stop/text.js +1 -0
- package/dist/cli/renderers/typecheck/text.d.ts +2 -0
- package/dist/cli/renderers/typecheck/text.js +1 -0
- package/dist/cli/terminal/colors.d.ts +10 -0
- package/dist/cli/terminal/colors.js +1 -0
- package/dist/cli/terminal/layout.d.ts +11 -0
- package/dist/cli/terminal/layout.js +2 -0
- package/dist/cli/version-drift.d.ts +25 -0
- package/dist/cli/version-drift.js +7 -0
- package/dist/cloud/account.d.ts +34 -0
- package/dist/cloud/account.js +1 -0
- package/dist/cloud/archive-contract.d.ts +1 -0
- package/dist/cloud/archive-contract.js +1 -0
- package/dist/cloud/archive.d.ts +12 -0
- package/dist/cloud/archive.js +1 -0
- package/dist/cloud/campaigns.d.ts +200 -0
- package/dist/cloud/campaigns.js +2 -0
- package/dist/cloud/client.d.ts +68 -0
- package/dist/cloud/client.js +4 -0
- package/dist/cloud/download.d.ts +5 -0
- package/dist/cloud/download.js +1 -0
- package/dist/cloud/historical-contract.d.ts +224 -0
- package/dist/cloud/historical-contract.js +1 -0
- package/dist/cloud/historical-json.d.ts +16 -0
- package/dist/cloud/historical-json.js +1 -0
- package/dist/cloud/historical.d.ts +69 -0
- package/dist/cloud/historical.js +1 -0
- package/dist/cloud/pagination.d.ts +5 -0
- package/dist/cloud/pagination.js +1 -0
- package/dist/cloud/transport.d.ts +18 -0
- package/dist/cloud/transport.js +1 -0
- package/dist/config/authoring/build-config-contract.d.ts +27 -0
- package/dist/config/authoring/build-config-contract.js +1 -0
- package/dist/config/authoring/configured-step-contract.d.ts +18 -0
- package/dist/config/authoring/configured-step-contract.js +1 -0
- package/dist/config/authoring/http-execution-contract.d.ts +70 -0
- package/dist/config/authoring/http-execution-contract.js +1 -0
- package/dist/config/authoring/http-methods.d.ts +18 -0
- package/dist/config/authoring/http-methods.js +1 -0
- package/dist/config/authoring/index.d.ts +376 -0
- package/dist/config/authoring/index.js +1 -0
- package/dist/config/authoring/preset-env.d.ts +19 -0
- package/dist/config/authoring/preset-env.js +1 -0
- package/dist/config/authoring/runtime.d.ts +64 -0
- package/dist/config/authoring/runtime.js +1 -0
- package/dist/config/loader/cloud.d.ts +2 -0
- package/dist/config/loader/cloud.js +1 -0
- package/dist/config/loader/config-loader.d.ts +9 -0
- package/dist/config/loader/config-loader.js +1 -0
- package/dist/config/loader/database-materialization.d.ts +19 -0
- package/dist/config/loader/database-materialization.js +1 -0
- package/dist/config/loader/database-roles.d.ts +2 -0
- package/dist/config/loader/database-roles.js +1 -0
- package/dist/config/loader/database.d.ts +55 -0
- package/dist/config/loader/database.js +1 -0
- package/dist/config/loader/decode-discovery.d.ts +5 -0
- package/dist/config/loader/decode-discovery.js +1 -0
- package/dist/config/loader/decode-execution.d.ts +9 -0
- package/dist/config/loader/decode-execution.js +1 -0
- package/dist/config/loader/dependencies.d.ts +7 -0
- package/dist/config/loader/dependencies.js +1 -0
- package/dist/config/loader/discover-tests.d.ts +101 -0
- package/dist/config/loader/discover-tests.js +1 -0
- package/dist/config/loader/discovery-summary.d.ts +29 -0
- package/dist/config/loader/discovery-summary.js +1 -0
- package/dist/config/loader/discovery.d.ts +54 -0
- package/dist/config/loader/discovery.js +2 -0
- package/dist/config/loader/env.d.ts +4 -0
- package/dist/config/loader/env.js +1 -0
- package/dist/config/loader/execution-model.d.ts +16 -0
- package/dist/config/loader/execution-model.js +1 -0
- package/dist/config/loader/file-metadata.d.ts +19 -0
- package/dist/config/loader/file-metadata.js +1 -0
- package/dist/config/loader/index.d.ts +10 -0
- package/dist/config/loader/index.js +1 -0
- package/dist/config/loader/load.d.ts +89 -0
- package/dist/config/loader/load.js +1 -0
- package/dist/config/loader/managed-configs.d.ts +21 -0
- package/dist/config/loader/managed-configs.js +1 -0
- package/dist/config/loader/path-policy.d.ts +9 -0
- package/dist/config/loader/path-policy.js +1 -0
- package/dist/config/loader/paths.d.ts +5 -0
- package/dist/config/loader/paths.js +1 -0
- package/dist/config/loader/runtime-isolation.d.ts +44 -0
- package/dist/config/loader/runtime-isolation.js +1 -0
- package/dist/config/loader/runtime.d.ts +25 -0
- package/dist/config/loader/runtime.js +1 -0
- package/dist/config/loader/skip-config.d.ts +44 -0
- package/dist/config/loader/skip-config.js +1 -0
- package/dist/config/loader/validation.d.ts +16 -0
- package/dist/config/loader/validation.js +1 -0
- package/dist/config/loader/values.d.ts +4 -0
- package/dist/config/loader/values.js +1 -0
- package/dist/config/runtime/build-assets.d.ts +6 -0
- package/dist/config/runtime/build-assets.js +1 -0
- package/dist/config/runtime/env/index.d.ts +35 -0
- package/dist/config/runtime/env/index.js +1 -0
- package/dist/config/runtime/next-runtime-tsconfig.d.ts +6 -0
- package/dist/config/runtime/next-runtime-tsconfig.js +2 -0
- package/dist/database/activity-gate.d.ts +22 -0
- package/dist/database/activity-gate.js +1 -0
- package/dist/database/admin.d.ts +31 -0
- package/dist/database/admin.js +2 -0
- package/dist/database/cleanup.d.ts +36 -0
- package/dist/database/cleanup.js +1 -0
- package/dist/database/configured-steps.d.ts +27 -0
- package/dist/database/configured-steps.js +1 -0
- package/dist/database/constants.d.ts +11 -0
- package/dist/database/constants.js +1 -0
- package/dist/database/docker.d.ts +65 -0
- package/dist/database/docker.js +5 -0
- package/dist/database/drizzle/index.d.ts +13 -0
- package/dist/database/drizzle/index.js +1 -0
- package/dist/database/fingerprint.d.ts +12 -0
- package/dist/database/fingerprint.js +1 -0
- package/dist/database/index.d.ts +41 -0
- package/dist/database/index.js +1 -0
- package/dist/database/local-postgres.d.ts +71 -0
- package/dist/database/local-postgres.js +2 -0
- package/dist/database/naming.d.ts +17 -0
- package/dist/database/naming.js +1 -0
- package/dist/database/postgres/index.d.ts +71 -0
- package/dist/database/postgres/index.js +2 -0
- package/dist/database/progress.d.ts +6 -0
- package/dist/database/progress.js +1 -0
- package/dist/database/roles.d.ts +19 -0
- package/dist/database/roles.js +41 -0
- package/dist/database/runtime-config.d.ts +16 -0
- package/dist/database/runtime-config.js +1 -0
- package/dist/database/runtime-reservations.d.ts +19 -0
- package/dist/database/runtime-reservations.js +1 -0
- package/dist/database/schema-operations.d.ts +18 -0
- package/dist/database/schema-operations.js +1 -0
- package/dist/database/schema-source.d.ts +93 -0
- package/dist/database/schema-source.js +3 -0
- package/dist/database/source-refresh-lock.d.ts +8 -0
- package/dist/database/source-refresh-lock.js +1 -0
- package/dist/database/source-url.d.ts +22 -0
- package/dist/database/source-url.js +2 -0
- package/dist/database/state-files.d.ts +13 -0
- package/dist/database/state-files.js +1 -0
- package/dist/database/state.d.ts +26 -0
- package/dist/database/state.js +1 -0
- package/dist/database/steps.d.ts +16 -0
- package/dist/database/steps.js +4 -0
- package/dist/database/template-steps.d.ts +35 -0
- package/dist/database/template-steps.js +4 -0
- package/dist/domain/file-timeout.d.ts +28 -0
- package/dist/domain/file-timeout.js +1 -0
- package/dist/domain/identifiers.d.ts +9 -0
- package/dist/domain/identifiers.js +1 -0
- package/dist/domain/operation-display.d.ts +10 -0
- package/dist/domain/operation-display.js +1 -0
- package/dist/domain/operation-reason.d.ts +5 -0
- package/dist/domain/operation-reason.js +1 -0
- package/dist/domain/postgres-route.d.ts +4 -0
- package/dist/domain/postgres-route.js +1 -0
- package/dist/domain/runtime-identity.d.ts +1 -0
- package/dist/domain/runtime-identity.js +1 -0
- package/dist/domain/runtime-isolation-contract.d.ts +5 -0
- package/dist/domain/runtime-isolation-contract.js +1 -0
- package/dist/domain/service-name.d.ts +2 -0
- package/dist/domain/service-name.js +1 -0
- package/dist/domain/suite-selection.d.ts +20 -0
- package/dist/domain/suite-selection.js +1 -0
- package/dist/domain/test-outcomes.d.ts +3 -0
- package/dist/domain/test-outcomes.js +1 -0
- package/dist/domain/test-types.d.ts +16 -0
- package/dist/domain/test-types.js +1 -0
- package/dist/engines/adapters/evidence-files.d.ts +32 -0
- package/dist/engines/adapters/evidence-files.js +1 -0
- package/dist/engines/adapters/evidence-identity.d.ts +12 -0
- package/dist/engines/adapters/evidence-identity.js +1 -0
- package/dist/engines/adapters/execution.d.ts +38 -0
- package/dist/engines/adapters/execution.js +1 -0
- package/dist/engines/adapters/native-report.d.ts +25 -0
- package/dist/engines/adapters/native-report.js +1 -0
- package/dist/engines/adapters/workspace.d.ts +4 -0
- package/dist/engines/adapters/workspace.js +1 -0
- package/dist/engines/api/capabilities.d.ts +31 -0
- package/dist/engines/api/capabilities.js +1 -0
- package/dist/engines/api/evidence.d.ts +38 -0
- package/dist/engines/api/evidence.js +1 -0
- package/dist/engines/api/execution-observer.d.ts +8 -0
- package/dist/engines/api/execution-observer.js +1 -0
- package/dist/engines/api/execution-scope.d.ts +17 -0
- package/dist/engines/api/execution-scope.js +1 -0
- package/dist/engines/api/execution.d.ts +99 -0
- package/dist/engines/api/execution.js +1 -0
- package/dist/engines/api/index.d.ts +5 -0
- package/dist/engines/api/index.js +1 -0
- package/dist/engines/api/k6-runtime-input.d.ts +26 -0
- package/dist/engines/api/k6-runtime-input.js +1 -0
- package/dist/engines/api/runtime-artifact.d.ts +19 -0
- package/dist/engines/api/runtime-artifact.js +1 -0
- package/dist/engines/bundle-cache.d.ts +32 -0
- package/dist/engines/bundle-cache.js +1 -0
- package/dist/engines/catalog.d.ts +32 -0
- package/dist/engines/catalog.js +1 -0
- package/dist/engines/contracts/fixture-manifest.d.ts +34 -0
- package/dist/engines/contracts/fixture-manifest.js +1 -0
- package/dist/engines/contracts/json-bounds.d.ts +36 -0
- package/dist/engines/contracts/json-bounds.js +2 -0
- package/dist/engines/contracts/k6-repository-configuration.d.ts +12 -0
- package/dist/engines/contracts/k6-repository-configuration.js +1 -0
- package/dist/engines/contracts/test-context.d.ts +15 -0
- package/dist/engines/contracts/test-context.js +1 -0
- package/dist/engines/definitions.d.ts +15 -0
- package/dist/engines/definitions.js +1 -0
- package/dist/engines/factory.d.ts +6 -0
- package/dist/engines/factory.js +1 -0
- package/dist/engines/installation-catalog.d.ts +27 -0
- package/dist/engines/installation-catalog.js +1 -0
- package/dist/engines/installations/k6.d.ts +98 -0
- package/dist/engines/installations/k6.js +1 -0
- package/dist/engines/installations/node-vitest.d.ts +47 -0
- package/dist/engines/installations/node-vitest.js +1 -0
- package/dist/engines/installations/package-resolution.d.ts +51 -0
- package/dist/engines/installations/package-resolution.js +1 -0
- package/dist/engines/installations/playwright-resolution-child.d.ts +1 -0
- package/dist/engines/installations/playwright-resolution-child.js +2 -0
- package/dist/engines/installations/playwright.d.ts +85 -0
- package/dist/engines/installations/playwright.js +1 -0
- package/dist/engines/installations/types.d.ts +10 -0
- package/dist/engines/installations/types.js +1 -0
- package/dist/engines/k6/adapter/bundle.d.ts +25 -0
- package/dist/engines/k6/adapter/bundle.js +112 -0
- package/dist/engines/k6/adapter/evidence.d.ts +15 -0
- package/dist/engines/k6/adapter/evidence.js +4 -0
- package/dist/engines/k6/adapter/executor.d.ts +13 -0
- package/dist/engines/k6/adapter/executor.js +1 -0
- package/dist/engines/k6/adapter/index.d.ts +1 -0
- package/dist/engines/k6/adapter/index.js +1 -0
- package/dist/engines/k6/adapter/input.d.ts +21 -0
- package/dist/engines/k6/adapter/input.js +1 -0
- package/dist/engines/k6/adapter/native-summary.d.ts +11 -0
- package/dist/engines/k6/adapter/native-summary.js +1 -0
- package/dist/engines/k6/adapter/repository-configuration.d.ts +2 -0
- package/dist/engines/k6/adapter/repository-configuration.js +1 -0
- package/dist/engines/k6/authoring-type-paths.d.ts +3 -0
- package/dist/engines/k6/authoring-type-paths.js +1 -0
- package/dist/engines/k6/runtime/ambient-types/bundle-manifest.json +146 -0
- package/dist/engines/k6/runtime/ambient-types/k6/LICENSE +21 -0
- package/dist/engines/k6/runtime/ambient-types/k6/browser/index.d.ts +6332 -0
- package/dist/engines/k6/runtime/ambient-types/k6/crypto/index.d.ts +218 -0
- package/dist/engines/k6/runtime/ambient-types/k6/data/index.d.ts +16 -0
- package/dist/engines/k6/runtime/ambient-types/k6/encoding/index.d.ts +46 -0
- package/dist/engines/k6/runtime/ambient-types/k6/execution/index.d.ts +127 -0
- package/dist/engines/k6/runtime/ambient-types/k6/experimental/csv/index.d.ts +96 -0
- package/dist/engines/k6/runtime/ambient-types/k6/experimental/fs/index.d.ts +104 -0
- package/dist/engines/k6/runtime/ambient-types/k6/experimental/redis/index.d.ts +821 -0
- package/dist/engines/k6/runtime/ambient-types/k6/experimental/streams/index.d.ts +198 -0
- package/dist/engines/k6/runtime/ambient-types/k6/global.d.ts +83 -0
- package/dist/engines/k6/runtime/ambient-types/k6/html/index.d.ts +1325 -0
- package/dist/engines/k6/runtime/ambient-types/k6/http/index.d.ts +806 -0
- package/dist/engines/k6/runtime/ambient-types/k6/index.d.ts +126 -0
- package/dist/engines/k6/runtime/ambient-types/k6/metrics/index.d.ts +66 -0
- package/dist/engines/k6/runtime/ambient-types/k6/net/grpc/index.d.ts +247 -0
- package/dist/engines/k6/runtime/ambient-types/k6/options/index.d.ts +459 -0
- package/dist/engines/k6/runtime/ambient-types/k6/package.json +79 -0
- package/dist/engines/k6/runtime/ambient-types/k6/secrets/index.d.ts +36 -0
- package/dist/engines/k6/runtime/ambient-types/k6/timers/index.d.ts +47 -0
- package/dist/engines/k6/runtime/ambient-types/k6/websockets/index.d.ts +324 -0
- package/dist/engines/k6/runtime/ambient-types/k6/ws/index.d.ts +283 -0
- package/dist/engines/k6/runtime/ambient-types/xk6-sql/LICENSE +201 -0
- package/dist/engines/k6/runtime/ambient-types/xk6-sql/index.d.ts +397 -0
- package/dist/engines/k6/runtime/ambient-types/xk6-sql/package.json +15 -0
- package/dist/engines/k6/runtime/artifacts.d.ts +2 -0
- package/dist/engines/k6/runtime/artifacts.js +1 -0
- package/dist/engines/k6/runtime/checks.d.ts +17 -0
- package/dist/engines/k6/runtime/checks.js +1 -0
- package/dist/engines/k6/runtime/dal-fixtures.d.ts +24 -0
- package/dist/engines/k6/runtime/dal-fixtures.js +1 -0
- package/dist/engines/k6/runtime/dal-suite.d.ts +24 -0
- package/dist/engines/k6/runtime/dal-suite.js +1 -0
- package/dist/engines/k6/runtime/dal.d.ts +10 -0
- package/dist/engines/k6/runtime/dal.js +1 -0
- package/dist/engines/k6/runtime/fixtures.d.ts +3 -0
- package/dist/engines/k6/runtime/fixtures.js +1 -0
- package/dist/engines/k6/runtime/http-assertions.d.ts +19 -0
- package/dist/engines/k6/runtime/http-assertions.js +1 -0
- package/dist/engines/k6/runtime/http-checks.d.ts +19 -0
- package/dist/engines/k6/runtime/http-checks.js +1 -0
- package/dist/engines/k6/runtime/http-suite-runtime.d.ts +103 -0
- package/dist/engines/k6/runtime/http-suite-runtime.js +1 -0
- package/dist/engines/k6/runtime/http.d.ts +15 -0
- package/dist/engines/k6/runtime/http.js +1 -0
- package/dist/engines/k6/runtime/index.d.ts +11 -0
- package/dist/engines/k6/runtime/index.js +1 -0
- package/dist/engines/k6/runtime/input.d.ts +3 -0
- package/dist/engines/k6/runtime/input.js +1 -0
- package/dist/engines/k6/runtime/k6-repository-configuration.d.ts +9 -0
- package/dist/engines/k6/runtime/k6-repository-configuration.js +1 -0
- package/dist/engines/k6/runtime/node-setup.d.ts +13 -0
- package/dist/engines/k6/runtime/node-setup.js +1 -0
- package/dist/engines/k6/runtime/runtime-globals.d.ts +10 -0
- package/dist/engines/k6/runtime/runtime-globals.js +1 -0
- package/dist/engines/k6/runtime/runtime.d.ts +54 -0
- package/dist/engines/k6/runtime/runtime.js +1 -0
- package/dist/engines/k6/runtime/shared/assertion-details.d.ts +19 -0
- package/dist/engines/k6/runtime/shared/assertion-details.js +2 -0
- package/dist/engines/k6/runtime/shared/db-normalization.d.ts +19 -0
- package/dist/engines/k6/runtime/shared/db-normalization.js +1 -0
- package/dist/engines/k6/runtime/shared/error-body.d.ts +3 -0
- package/dist/engines/k6/runtime/shared/error-body.js +1 -0
- package/dist/engines/k6/runtime/shared/file-data.d.ts +1 -0
- package/dist/engines/k6/runtime/shared/file-data.js +1 -0
- package/dist/engines/k6/runtime/shared/fixture-engine.d.ts +8 -0
- package/dist/engines/k6/runtime/shared/fixture-engine.js +2 -0
- package/dist/engines/k6/runtime/shared/http-check-plan.d.ts +29 -0
- package/dist/engines/k6/runtime/shared/http-check-plan.js +1 -0
- package/dist/engines/k6/runtime/shared/http-parsing.d.ts +10 -0
- package/dist/engines/k6/runtime/shared/http-parsing.js +3 -0
- package/dist/engines/k6/runtime/shared/ordering.d.ts +2 -0
- package/dist/engines/k6/runtime/shared/ordering.js +1 -0
- package/dist/engines/k6/runtime/shared/properties.d.ts +1 -0
- package/dist/engines/k6/runtime/shared/properties.js +1 -0
- package/dist/engines/k6/runtime/suite.d.ts +4 -0
- package/dist/engines/k6/runtime/suite.js +1 -0
- package/dist/engines/k6/runtime/types.d.ts +242 -0
- package/dist/engines/k6/runtime/types.js +1 -0
- package/dist/engines/k6/runtime/xk6-sql-driver-postgres.d.ts +7 -0
- package/dist/engines/k6/runtime/xk6-sql-driver-postgres.js +1 -0
- package/dist/engines/managed-module-resolution-policy-input.d.ts +9 -0
- package/dist/engines/managed-module-resolution-policy-input.js +1 -0
- package/dist/engines/managed-module-resolution-policy.d.ts +25 -0
- package/dist/engines/managed-module-resolution-policy.js +1 -0
- package/dist/engines/managed-module-resolution.d.ts +13 -0
- package/dist/engines/managed-module-resolution.js +697 -0
- package/dist/engines/manager.d.ts +24 -0
- package/dist/engines/manager.js +1 -0
- package/dist/engines/node-vitest/adapter/adapter.d.ts +16 -0
- package/dist/engines/node-vitest/adapter/adapter.js +1 -0
- package/dist/engines/node-vitest/adapter/consumer-typescript-paths.d.ts +17 -0
- package/dist/engines/node-vitest/adapter/consumer-typescript-paths.js +3 -0
- package/dist/engines/node-vitest/adapter/evidence.d.ts +33 -0
- package/dist/engines/node-vitest/adapter/evidence.js +2 -0
- package/dist/engines/node-vitest/adapter/failure-details.d.ts +2 -0
- package/dist/engines/node-vitest/adapter/failure-details.js +2 -0
- package/dist/engines/node-vitest/adapter/index.d.ts +1 -0
- package/dist/engines/node-vitest/adapter/index.js +1 -0
- package/dist/engines/node-vitest/adapter/reporter.d.ts +7 -0
- package/dist/engines/node-vitest/adapter/reporter.js +1 -0
- package/dist/engines/node-vitest/adapter/resolution.d.ts +12 -0
- package/dist/engines/node-vitest/adapter/resolution.js +1 -0
- package/dist/engines/node-vitest/adapter/workspace.d.ts +19 -0
- package/dist/engines/node-vitest/adapter/workspace.js +177 -0
- package/dist/engines/node-vitest/runtime/contract/index.d.ts +64 -0
- package/dist/engines/node-vitest/runtime/contract/index.js +1 -0
- package/dist/engines/node-vitest/runtime/data/http.d.ts +4 -0
- package/dist/engines/node-vitest/runtime/data/http.js +1 -0
- package/dist/engines/node-vitest/runtime/data/index.d.ts +8 -0
- package/dist/engines/node-vitest/runtime/data/index.js +1 -0
- package/dist/engines/node-vitest/runtime/data/primitives.d.ts +1 -0
- package/dist/engines/node-vitest/runtime/data/primitives.js +1 -0
- package/dist/engines/node-vitest/runtime/data/report.d.ts +3 -0
- package/dist/engines/node-vitest/runtime/data/report.js +6 -0
- package/dist/engines/node-vitest/runtime/data/runner.d.ts +4 -0
- package/dist/engines/node-vitest/runtime/data/runner.js +1 -0
- package/dist/engines/node-vitest/runtime/data/scenario.d.ts +12 -0
- package/dist/engines/node-vitest/runtime/data/scenario.js +2 -0
- package/dist/engines/node-vitest/runtime/data/types.d.ts +412 -0
- package/dist/engines/node-vitest/runtime/data/types.js +1 -0
- package/dist/engines/node-vitest/runtime/runtime-input.d.ts +63 -0
- package/dist/engines/node-vitest/runtime/runtime-input.js +1 -0
- package/dist/engines/playwright/adapter/adapter.d.ts +18 -0
- package/dist/engines/playwright/adapter/adapter.js +1 -0
- package/dist/engines/playwright/adapter/attachments.d.ts +25 -0
- package/dist/engines/playwright/adapter/attachments.js +1 -0
- package/dist/engines/playwright/adapter/config.d.ts +45 -0
- package/dist/engines/playwright/adapter/config.js +167 -0
- package/dist/engines/playwright/adapter/evidence-validation.d.ts +12 -0
- package/dist/engines/playwright/adapter/evidence-validation.js +1 -0
- package/dist/engines/playwright/adapter/evidence.d.ts +32 -0
- package/dist/engines/playwright/adapter/evidence.js +1 -0
- package/dist/engines/playwright/adapter/failure-details.d.ts +2 -0
- package/dist/engines/playwright/adapter/failure-details.js +2 -0
- package/dist/engines/playwright/adapter/index.d.ts +3 -0
- package/dist/engines/playwright/adapter/index.js +1 -0
- package/dist/engines/playwright/adapter/reporter.d.ts +12 -0
- package/dist/engines/playwright/adapter/reporter.js +1 -0
- package/dist/engines/playwright/runtime/config-file.d.ts +2 -0
- package/dist/engines/playwright/runtime/config-file.js +1 -0
- package/dist/engines/playwright/runtime/config.d.ts +24 -0
- package/dist/engines/playwright/runtime/config.js +1 -0
- package/dist/engines/playwright/runtime/index.d.ts +4 -0
- package/dist/engines/playwright/runtime/index.js +1 -0
- package/dist/engines/playwright/runtime/runtime-input.d.ts +36 -0
- package/dist/engines/playwright/runtime/runtime-input.js +151 -0
- package/dist/engines/playwright/runtime/sandbox.d.ts +84 -0
- package/dist/engines/playwright/runtime/sandbox.js +1 -0
- package/dist/engines/runtime-input-file.d.ts +25 -0
- package/dist/engines/runtime-input-file.js +1 -0
- package/dist/environment/lifecycle-artifacts.d.ts +7 -0
- package/dist/environment/lifecycle-artifacts.js +1 -0
- package/dist/environment/lifecycle-controller.d.ts +71 -0
- package/dist/environment/lifecycle-controller.js +1 -0
- package/dist/environment/lifecycle.d.ts +29 -0
- package/dist/environment/lifecycle.js +1 -0
- package/dist/environment/maintenance.d.ts +68 -0
- package/dist/environment/maintenance.js +1 -0
- package/dist/environment/planning-types.d.ts +35 -0
- package/dist/environment/planning-types.js +1 -0
- package/dist/environment/readiness.d.ts +12 -0
- package/dist/environment/readiness.js +1 -0
- package/dist/environment/ready-environment.d.ts +17 -0
- package/dist/environment/ready-environment.js +1 -0
- package/dist/environment/run-environment.d.ts +38 -0
- package/dist/environment/run-environment.js +1 -0
- package/dist/environment/run-stopping.d.ts +13 -0
- package/dist/environment/run-stopping.js +1 -0
- package/dist/environment/runtime-contexts.d.ts +32 -0
- package/dist/environment/runtime-contexts.js +1 -0
- package/dist/environment/runtime-manager.d.ts +95 -0
- package/dist/environment/runtime-manager.js +1 -0
- package/dist/environment/runtime-planning.d.ts +16 -0
- package/dist/environment/runtime-planning.js +1 -0
- package/dist/environment/runtime-preparation.d.ts +30 -0
- package/dist/environment/runtime-preparation.js +1 -0
- package/dist/environment/runtime-service.d.ts +18 -0
- package/dist/environment/runtime-service.js +1 -0
- package/dist/environment/services.d.ts +48 -0
- package/dist/environment/services.js +1 -0
- package/dist/environment/state.d.ts +18 -0
- package/dist/environment/state.js +1 -0
- package/dist/environment/status-runtime.d.ts +53 -0
- package/dist/environment/status-runtime.js +1 -0
- package/dist/environment/template.d.ts +180 -0
- package/dist/environment/template.js +1 -0
- package/dist/evidence/artifact-config.d.ts +14 -0
- package/dist/evidence/artifact-config.js +1 -0
- package/dist/evidence/artifact-validation.d.ts +5 -0
- package/dist/evidence/artifact-validation.js +1 -0
- package/dist/evidence/artifacts.d.ts +75 -0
- package/dist/evidence/artifacts.js +2 -0
- package/dist/evidence/bundles.d.ts +28 -0
- package/dist/evidence/bundles.js +1 -0
- package/dist/evidence/ci-provenance.d.ts +9 -0
- package/dist/evidence/ci-provenance.js +1 -0
- package/dist/evidence/contracts.d.ts +162 -0
- package/dist/evidence/contracts.js +1 -0
- package/dist/evidence/file-evidence.d.ts +23 -0
- package/dist/evidence/file-evidence.js +1 -0
- package/dist/evidence/finalization.d.ts +9 -0
- package/dist/evidence/finalization.js +1 -0
- package/dist/evidence/index.d.ts +8 -0
- package/dist/evidence/index.js +1 -0
- package/dist/evidence/logs.d.ts +31 -0
- package/dist/evidence/logs.js +2 -0
- package/dist/evidence/operation-timings.d.ts +60 -0
- package/dist/evidence/operation-timings.js +1 -0
- package/dist/evidence/read-bundle.d.ts +4 -0
- package/dist/evidence/read-bundle.js +1 -0
- package/dist/evidence/read-fields.d.ts +22 -0
- package/dist/evidence/read-fields.js +1 -0
- package/dist/evidence/read-provenance.d.ts +2 -0
- package/dist/evidence/read-provenance.js +1 -0
- package/dist/evidence/read-redaction.d.ts +2 -0
- package/dist/evidence/read-redaction.js +1 -0
- package/dist/evidence/read-retention.d.ts +2 -0
- package/dist/evidence/read-retention.js +1 -0
- package/dist/evidence/read-run.d.ts +2 -0
- package/dist/evidence/read-run.js +1 -0
- package/dist/evidence/reading.d.ts +28 -0
- package/dist/evidence/reading.js +1 -0
- package/dist/evidence/reporting-types.d.ts +330 -0
- package/dist/evidence/reporting-types.js +1 -0
- package/dist/evidence/reporting.d.ts +3 -0
- package/dist/evidence/reporting.js +1 -0
- package/dist/evidence/secure-file-copy.d.ts +24 -0
- package/dist/evidence/secure-file-copy.js +1 -0
- package/dist/evidence/setup-progress.d.ts +63 -0
- package/dist/evidence/setup-progress.js +1 -0
- package/dist/evidence/step-output.d.ts +16 -0
- package/dist/evidence/step-output.js +6 -0
- package/dist/evidence/storage-inventory.d.ts +27 -0
- package/dist/evidence/storage-inventory.js +1 -0
- package/dist/evidence/storage.d.ts +27 -0
- package/dist/evidence/storage.js +2 -0
- package/dist/evidence/timing.d.ts +23 -0
- package/dist/evidence/timing.js +1 -0
- package/dist/file.d.ts +11 -0
- package/dist/file.js +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1 -0
- package/dist/kernel/error-serialization.d.ts +38 -0
- package/dist/kernel/error-serialization.js +1 -0
- package/dist/kernel/redaction.d.ts +1 -0
- package/dist/kernel/redaction.js +1 -0
- package/dist/kernel/unknown-values.d.ts +6 -0
- package/dist/kernel/unknown-values.js +1 -0
- package/dist/process/capture-output.d.ts +7 -0
- package/dist/process/capture-output.js +1 -0
- package/dist/process/command-shell.d.ts +1 -0
- package/dist/process/command-shell.js +1 -0
- package/dist/process/environment-overlay.d.ts +17 -0
- package/dist/process/environment-overlay.js +1 -0
- package/dist/process/environment.d.ts +33 -0
- package/dist/process/environment.js +1 -0
- package/dist/process/files/contained-path.d.ts +8 -0
- package/dist/process/files/contained-path.js +1 -0
- package/dist/process/files/directory-status.d.ts +14 -0
- package/dist/process/files/directory-status.js +1 -0
- package/dist/process/files/dotenv.d.ts +2 -0
- package/dist/process/files/dotenv.js +1 -0
- package/dist/process/files/file-snapshot.d.ts +34 -0
- package/dist/process/files/file-snapshot.js +1 -0
- package/dist/process/files/json-file.d.ts +11 -0
- package/dist/process/files/json-file.js +1 -0
- package/dist/process/files/paths.d.ts +1 -0
- package/dist/process/files/paths.js +1 -0
- package/dist/process/files/temp-dir.d.ts +11 -0
- package/dist/process/files/temp-dir.js +1 -0
- package/dist/process/host/metadata.d.ts +6 -0
- package/dist/process/host/metadata.js +1 -0
- package/dist/process/host/platform.d.ts +57 -0
- package/dist/process/host/platform.js +1 -0
- package/dist/process/host-command.d.ts +4 -0
- package/dist/process/host-command.js +3 -0
- package/dist/process/host-inspection-command.d.ts +13 -0
- package/dist/process/host-inspection-command.js +1 -0
- package/dist/process/host-process.d.ts +14 -0
- package/dist/process/host-process.js +1 -0
- package/dist/process/index.d.ts +9 -0
- package/dist/process/index.js +1 -0
- package/dist/process/lifecycle-fence.d.ts +11 -0
- package/dist/process/lifecycle-fence.js +1 -0
- package/dist/process/locks.d.ts +28 -0
- package/dist/process/locks.js +4 -0
- package/dist/process/process-contracts.d.ts +70 -0
- package/dist/process/process-contracts.js +1 -0
- package/dist/process/process-group.d.ts +12 -0
- package/dist/process/process-group.js +1 -0
- package/dist/process/process-identity.d.ts +27 -0
- package/dist/process/process-identity.js +1 -0
- package/dist/process/process-limits.d.ts +6 -0
- package/dist/process/process-limits.js +1 -0
- package/dist/process/process.d.ts +11 -0
- package/dist/process/process.js +1 -0
- package/dist/process/readiness.d.ts +37 -0
- package/dist/process/readiness.js +1 -0
- package/dist/process/recovery.d.ts +3 -0
- package/dist/process/recovery.js +1 -0
- package/dist/process/runs/manifest.d.ts +85 -0
- package/dist/process/runs/manifest.js +1 -0
- package/dist/process/runs/ownership.d.ts +11 -0
- package/dist/process/runs/ownership.js +1 -0
- package/dist/process/runs/product-state.d.ts +2 -0
- package/dist/process/runs/product-state.js +1 -0
- package/dist/process/runs/schema.d.ts +3 -0
- package/dist/process/runs/schema.js +1 -0
- package/dist/process/runs/stop.d.ts +19 -0
- package/dist/process/runs/stop.js +1 -0
- package/dist/process/runtime-socket.d.ts +4 -0
- package/dist/process/runtime-socket.js +1 -0
- package/dist/process/service-processes.d.ts +13 -0
- package/dist/process/service-processes.js +1 -0
- package/dist/process/shutdown.d.ts +10 -0
- package/dist/process/shutdown.js +1 -0
- package/dist/process/windows-cli-owner.d.ts +2 -0
- package/dist/process/windows-cli-owner.js +3 -0
- package/dist/process/windows-native.d.ts +6 -0
- package/dist/process/windows-native.js +1 -0
- package/dist/process/windows-process-identity.d.ts +4 -0
- package/dist/process/windows-process-identity.js +1 -0
- package/dist/repo/ci-environment.d.ts +7 -0
- package/dist/repo/ci-environment.js +1 -0
- package/dist/repo/fingerprint-policy.d.ts +15 -0
- package/dist/repo/fingerprint-policy.js +1 -0
- package/dist/repo/git-path.d.ts +2 -0
- package/dist/repo/git-path.js +1 -0
- package/dist/repo/managed-git.d.ts +10 -0
- package/dist/repo/managed-git.js +1 -0
- package/dist/repo/metadata.d.ts +3 -0
- package/dist/repo/metadata.js +1 -0
- package/dist/repo/physical-tree.d.ts +37 -0
- package/dist/repo/physical-tree.js +1 -0
- package/dist/repo/remote.d.ts +6 -0
- package/dist/repo/remote.js +1 -0
- package/dist/repo/state.d.ts +25 -0
- package/dist/repo/state.js +5 -0
- package/dist/steps/build-config.d.ts +35 -0
- package/dist/steps/build-config.js +1 -0
- package/dist/steps/configured-step-testkit-modules.d.ts +19 -0
- package/dist/steps/configured-step-testkit-modules.js +1 -0
- package/dist/steps/configured-steps.d.ts +51 -0
- package/dist/steps/configured-steps.js +1 -0
- package/dist/steps/environment.d.ts +78 -0
- package/dist/steps/environment.js +1 -0
- package/dist/steps/index.d.ts +2 -0
- package/dist/steps/index.js +1 -0
- package/dist/steps/module-runner.d.ts +1 -0
- package/dist/steps/module-runner.js +1 -0
- package/dist/steps/run.d.ts +36 -0
- package/dist/steps/run.js +3 -0
- package/dist/toolchains/archive.d.ts +53 -0
- package/dist/toolchains/archive.js +1 -0
- package/dist/toolchains/esbuild.d.ts +9 -0
- package/dist/toolchains/esbuild.js +1 -0
- package/dist/toolchains/host-node-support.d.ts +3 -0
- package/dist/toolchains/host-node-support.js +1 -0
- package/dist/toolchains/index.d.ts +114 -0
- package/dist/toolchains/index.js +4 -0
- package/dist/toolchains/managed-node-releases.d.ts +28 -0
- package/dist/toolchains/managed-node-releases.js +1 -0
- package/dist/toolchains/node-cache.d.ts +20 -0
- package/dist/toolchains/node-cache.js +1 -0
- package/dist/toolchains/node-integrity.d.ts +16 -0
- package/dist/toolchains/node-integrity.js +1 -0
- package/dist/toolchains/node-provisioning.d.ts +29 -0
- package/dist/toolchains/node-provisioning.js +2 -0
- package/dist/toolchains/semver.d.ts +13 -0
- package/dist/toolchains/semver.js +1 -0
- package/dist/toolchains/shared-operation.d.ts +11 -0
- package/dist/toolchains/shared-operation.js +1 -0
- package/dist/toolchains/timeouts.d.ts +1 -0
- package/dist/toolchains/timeouts.js +1 -0
- package/dist/toolchains/vitest/index.d.ts +13 -0
- package/dist/toolchains/vitest/index.js +1 -0
- package/docs/cloud-control.md +105 -0
- package/docs/engine-architecture.md +631 -0
- package/docs/test-types.md +120 -0
- package/docs/testkit-cloud-boundary.md +640 -0
- package/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
- package/node_modules/@isaacs/fs-minipass/README.md +71 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +118 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +118 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
- package/node_modules/@isaacs/fs-minipass/package.json +72 -0
- package/node_modules/buffer-crc32/LICENSE +19 -0
- package/node_modules/buffer-crc32/README.md +55 -0
- package/node_modules/buffer-crc32/dist/index.cjs +306 -0
- package/node_modules/buffer-crc32/dist/index.d.cts +35 -0
- package/node_modules/buffer-crc32/dist/index.d.mts +35 -0
- package/node_modules/buffer-crc32/dist/index.mjs +304 -0
- package/node_modules/buffer-crc32/index.d.ts +35 -0
- package/node_modules/buffer-crc32/package.json +54 -0
- package/node_modules/chownr/LICENSE.md +63 -0
- package/node_modules/chownr/README.md +3 -0
- package/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
- package/node_modules/chownr/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/chownr/dist/commonjs/index.js +93 -0
- package/node_modules/chownr/dist/commonjs/index.js.map +1 -0
- package/node_modules/chownr/dist/commonjs/package.json +3 -0
- package/node_modules/chownr/dist/esm/index.d.ts +3 -0
- package/node_modules/chownr/dist/esm/index.d.ts.map +1 -0
- package/node_modules/chownr/dist/esm/index.js +85 -0
- package/node_modules/chownr/dist/esm/index.js.map +1 -0
- package/node_modules/chownr/dist/esm/package.json +3 -0
- package/node_modules/chownr/package.json +69 -0
- package/node_modules/diff/CONTRIBUTING.md +28 -0
- package/node_modules/diff/LICENSE +29 -0
- package/node_modules/diff/README.md +468 -0
- package/node_modules/diff/dist/diff.js +2313 -0
- package/node_modules/diff/dist/diff.min.js +1 -0
- package/node_modules/diff/eslint.config.mjs +182 -0
- package/node_modules/diff/libcjs/convert/dmp.d.ts +8 -0
- package/node_modules/diff/libcjs/convert/dmp.d.ts.map +1 -0
- package/node_modules/diff/libcjs/convert/dmp.js +24 -0
- package/node_modules/diff/libcjs/convert/xml.d.ts +6 -0
- package/node_modules/diff/libcjs/convert/xml.d.ts.map +1 -0
- package/node_modules/diff/libcjs/convert/xml.js +34 -0
- package/node_modules/diff/libcjs/diff/array.d.ts +19 -0
- package/node_modules/diff/libcjs/diff/array.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/array.js +23 -0
- package/node_modules/diff/libcjs/diff/base.d.ts +20 -0
- package/node_modules/diff/libcjs/diff/base.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/base.js +256 -0
- package/node_modules/diff/libcjs/diff/character.d.ts +19 -0
- package/node_modules/diff/libcjs/diff/character.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/character.js +14 -0
- package/node_modules/diff/libcjs/diff/css.d.ts +18 -0
- package/node_modules/diff/libcjs/diff/css.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/css.js +17 -0
- package/node_modules/diff/libcjs/diff/json.d.ts +24 -0
- package/node_modules/diff/libcjs/diff/json.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/json.js +86 -0
- package/node_modules/diff/libcjs/diff/line.d.ts +24 -0
- package/node_modules/diff/libcjs/diff/line.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/line.js +74 -0
- package/node_modules/diff/libcjs/diff/sentence.d.ts +21 -0
- package/node_modules/diff/libcjs/diff/sentence.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/sentence.js +50 -0
- package/node_modules/diff/libcjs/diff/word.d.ts +35 -0
- package/node_modules/diff/libcjs/diff/word.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/word.js +289 -0
- package/node_modules/diff/libcjs/index.d.ts +20 -0
- package/node_modules/diff/libcjs/index.d.ts.map +1 -0
- package/node_modules/diff/libcjs/index.js +67 -0
- package/node_modules/diff/libcjs/package.json +1 -0
- package/node_modules/diff/libcjs/patch/apply.d.ts +62 -0
- package/node_modules/diff/libcjs/patch/apply.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/apply.js +264 -0
- package/node_modules/diff/libcjs/patch/create.d.ts +131 -0
- package/node_modules/diff/libcjs/patch/create.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/create.js +364 -0
- package/node_modules/diff/libcjs/patch/line-endings.d.ts +17 -0
- package/node_modules/diff/libcjs/patch/line-endings.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/line-endings.js +50 -0
- package/node_modules/diff/libcjs/patch/parse.d.ts +16 -0
- package/node_modules/diff/libcjs/patch/parse.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/parse.js +515 -0
- package/node_modules/diff/libcjs/patch/reverse.d.ts +22 -0
- package/node_modules/diff/libcjs/patch/reverse.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/reverse.js +63 -0
- package/node_modules/diff/libcjs/types.d.ts +260 -0
- package/node_modules/diff/libcjs/types.d.ts.map +1 -0
- package/node_modules/diff/libcjs/types.js +2 -0
- package/node_modules/diff/libcjs/util/array.d.ts +3 -0
- package/node_modules/diff/libcjs/util/array.d.ts.map +1 -0
- package/node_modules/diff/libcjs/util/array.js +21 -0
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts +2 -0
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts.map +1 -0
- package/node_modules/diff/libcjs/util/distance-iterator.js +40 -0
- package/node_modules/diff/libcjs/util/params.d.ts +4 -0
- package/node_modules/diff/libcjs/util/params.d.ts.map +1 -0
- package/node_modules/diff/libcjs/util/params.js +17 -0
- package/node_modules/diff/libcjs/util/string.d.ts +30 -0
- package/node_modules/diff/libcjs/util/string.d.ts.map +1 -0
- package/node_modules/diff/libcjs/util/string.js +199 -0
- package/node_modules/diff/libesm/convert/dmp.d.ts +8 -0
- package/node_modules/diff/libesm/convert/dmp.d.ts.map +1 -0
- package/node_modules/diff/libesm/convert/dmp.js +21 -0
- package/node_modules/diff/libesm/convert/xml.d.ts +6 -0
- package/node_modules/diff/libesm/convert/xml.d.ts.map +1 -0
- package/node_modules/diff/libesm/convert/xml.js +31 -0
- package/node_modules/diff/libesm/diff/array.d.ts +19 -0
- package/node_modules/diff/libesm/diff/array.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/array.js +16 -0
- package/node_modules/diff/libesm/diff/base.d.ts +20 -0
- package/node_modules/diff/libesm/diff/base.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/base.js +253 -0
- package/node_modules/diff/libesm/diff/character.d.ts +19 -0
- package/node_modules/diff/libesm/diff/character.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/character.js +7 -0
- package/node_modules/diff/libesm/diff/css.d.ts +18 -0
- package/node_modules/diff/libesm/diff/css.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/css.js +10 -0
- package/node_modules/diff/libesm/diff/json.d.ts +24 -0
- package/node_modules/diff/libesm/diff/json.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/json.js +78 -0
- package/node_modules/diff/libesm/diff/line.d.ts +24 -0
- package/node_modules/diff/libesm/diff/line.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/line.js +65 -0
- package/node_modules/diff/libesm/diff/sentence.d.ts +21 -0
- package/node_modules/diff/libesm/diff/sentence.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/sentence.js +43 -0
- package/node_modules/diff/libesm/diff/word.d.ts +35 -0
- package/node_modules/diff/libesm/diff/word.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/word.js +281 -0
- package/node_modules/diff/libesm/index.d.ts +20 -0
- package/node_modules/diff/libesm/index.d.ts.map +1 -0
- package/node_modules/diff/libesm/index.js +30 -0
- package/node_modules/diff/libesm/package.json +1 -0
- package/node_modules/diff/libesm/patch/apply.d.ts +62 -0
- package/node_modules/diff/libesm/patch/apply.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/apply.js +257 -0
- package/node_modules/diff/libesm/patch/create.d.ts +131 -0
- package/node_modules/diff/libesm/patch/create.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/create.js +357 -0
- package/node_modules/diff/libesm/patch/line-endings.d.ts +17 -0
- package/node_modules/diff/libesm/patch/line-endings.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/line-endings.js +44 -0
- package/node_modules/diff/libesm/patch/parse.d.ts +16 -0
- package/node_modules/diff/libesm/patch/parse.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/parse.js +512 -0
- package/node_modules/diff/libesm/patch/reverse.d.ts +22 -0
- package/node_modules/diff/libesm/patch/reverse.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/reverse.js +60 -0
- package/node_modules/diff/libesm/types.d.ts +260 -0
- package/node_modules/diff/libesm/types.d.ts.map +1 -0
- package/node_modules/diff/libesm/types.js +1 -0
- package/node_modules/diff/libesm/util/array.d.ts +3 -0
- package/node_modules/diff/libesm/util/array.d.ts.map +1 -0
- package/node_modules/diff/libesm/util/array.js +17 -0
- package/node_modules/diff/libesm/util/distance-iterator.d.ts +2 -0
- package/node_modules/diff/libesm/util/distance-iterator.d.ts.map +1 -0
- package/node_modules/diff/libesm/util/distance-iterator.js +37 -0
- package/node_modules/diff/libesm/util/params.d.ts +4 -0
- package/node_modules/diff/libesm/util/params.d.ts.map +1 -0
- package/node_modules/diff/libesm/util/params.js +14 -0
- package/node_modules/diff/libesm/util/string.d.ts +30 -0
- package/node_modules/diff/libesm/util/string.d.ts.map +1 -0
- package/node_modules/diff/libesm/util/string.js +184 -0
- package/node_modules/diff/package.json +130 -0
- package/node_modules/diff/release-notes.md +474 -0
- package/node_modules/minipass/LICENSE.md +55 -0
- package/node_modules/minipass/README.md +825 -0
- package/node_modules/minipass/dist/commonjs/index.d.ts +545 -0
- package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/minipass/dist/commonjs/index.js +1038 -0
- package/node_modules/minipass/dist/commonjs/index.js.map +1 -0
- package/node_modules/minipass/dist/commonjs/package.json +3 -0
- package/node_modules/minipass/dist/esm/index.d.ts +545 -0
- package/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
- package/node_modules/minipass/dist/esm/index.js +1020 -0
- package/node_modules/minipass/dist/esm/index.js.map +1 -0
- package/node_modules/minipass/dist/esm/package.json +3 -0
- package/node_modules/minipass/package.json +77 -0
- package/node_modules/minizlib/LICENSE +26 -0
- package/node_modules/minizlib/README.md +64 -0
- package/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
- package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +1 -0
- package/node_modules/minizlib/dist/commonjs/constants.js +123 -0
- package/node_modules/minizlib/dist/commonjs/constants.js.map +1 -0
- package/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
- package/node_modules/minizlib/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/minizlib/dist/commonjs/index.js +416 -0
- package/node_modules/minizlib/dist/commonjs/index.js.map +1 -0
- package/node_modules/minizlib/dist/commonjs/package.json +3 -0
- package/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
- package/node_modules/minizlib/dist/esm/constants.d.ts.map +1 -0
- package/node_modules/minizlib/dist/esm/constants.js +117 -0
- package/node_modules/minizlib/dist/esm/constants.js.map +1 -0
- package/node_modules/minizlib/dist/esm/index.d.ts +99 -0
- package/node_modules/minizlib/dist/esm/index.d.ts.map +1 -0
- package/node_modules/minizlib/dist/esm/index.js +363 -0
- package/node_modules/minizlib/dist/esm/index.js.map +1 -0
- package/node_modules/minizlib/dist/esm/package.json +3 -0
- package/node_modules/minizlib/package.json +80 -0
- package/node_modules/pend/LICENSE +23 -0
- package/node_modules/pend/README.md +41 -0
- package/node_modules/pend/index.js +55 -0
- package/node_modules/pend/package.json +18 -0
- package/node_modules/pend/test.js +137 -0
- package/node_modules/tar/LICENSE.md +55 -0
- package/node_modules/tar/README.md +1233 -0
- package/node_modules/tar/dist/commonjs/create.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/create.js +82 -0
- package/node_modules/tar/dist/commonjs/create.js.map +1 -0
- package/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
- package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
- package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -0
- package/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/extract.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/extract.js +88 -0
- package/node_modules/tar/dist/commonjs/extract.js.map +1 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -0
- package/node_modules/tar/dist/commonjs/header.d.ts +53 -0
- package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/header.js +348 -0
- package/node_modules/tar/dist/commonjs/header.js.map +1 -0
- package/node_modules/tar/dist/commonjs/index.d.ts +20 -0
- package/node_modules/tar/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/index.js +64 -0
- package/node_modules/tar/dist/commonjs/index.js.map +1 -0
- package/node_modules/tar/dist/commonjs/index.min.js +4 -0
- package/node_modules/tar/dist/commonjs/index.min.js.map +7 -0
- package/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
- package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -0
- package/node_modules/tar/dist/commonjs/list.d.ts +7 -0
- package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/list.js +153 -0
- package/node_modules/tar/dist/commonjs/list.js.map +1 -0
- package/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
- package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/make-command.js +52 -0
- package/node_modules/tar/dist/commonjs/make-command.js.map +1 -0
- package/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
- package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/mkdir.js +187 -0
- package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -0
- package/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
- package/node_modules/tar/dist/commonjs/mode-fix.js.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -0
- package/node_modules/tar/dist/commonjs/options.d.ts +604 -0
- package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/options.js +66 -0
- package/node_modules/tar/dist/commonjs/options.js.map +1 -0
- package/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
- package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/pack.js +544 -0
- package/node_modules/tar/dist/commonjs/pack.js.map +1 -0
- package/node_modules/tar/dist/commonjs/package.json +3 -0
- package/node_modules/tar/dist/commonjs/parse.d.ts +92 -0
- package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/parse.js +655 -0
- package/node_modules/tar/dist/commonjs/parse.js.map +1 -0
- package/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
- package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
- package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -0
- package/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
- package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/pax.js +182 -0
- package/node_modules/tar/dist/commonjs/pax.js.map +1 -0
- package/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/process-umask.js +7 -0
- package/node_modules/tar/dist/commonjs/process-umask.js.map +1 -0
- package/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
- package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/read-entry.js +136 -0
- package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -0
- package/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/replace.js +227 -0
- package/node_modules/tar/dist/commonjs/replace.js.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +1 -0
- package/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
- package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
- package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -0
- package/node_modules/tar/dist/commonjs/types.d.ts +16 -0
- package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/types.js +70 -0
- package/node_modules/tar/dist/commonjs/types.js.map +1 -0
- package/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
- package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/unpack.js +932 -0
- package/node_modules/tar/dist/commonjs/unpack.js.map +1 -0
- package/node_modules/tar/dist/commonjs/update.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/update.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/update.js +33 -0
- package/node_modules/tar/dist/commonjs/update.js.map +1 -0
- package/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
- package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/warn-method.js +31 -0
- package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -0
- package/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/winchars.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/winchars.js +14 -0
- package/node_modules/tar/dist/commonjs/winchars.js.map +1 -0
- package/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
- package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/write-entry.js +698 -0
- package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -0
- package/node_modules/tar/dist/esm/create.d.ts +3 -0
- package/node_modules/tar/dist/esm/create.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/create.js +76 -0
- package/node_modules/tar/dist/esm/create.js.map +1 -0
- package/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
- package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/cwd-error.js +14 -0
- package/node_modules/tar/dist/esm/cwd-error.js.map +1 -0
- package/node_modules/tar/dist/esm/extract.d.ts +3 -0
- package/node_modules/tar/dist/esm/extract.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/extract.js +49 -0
- package/node_modules/tar/dist/esm/extract.js.map +1 -0
- package/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
- package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/get-write-flag.js +26 -0
- package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -0
- package/node_modules/tar/dist/esm/header.d.ts +53 -0
- package/node_modules/tar/dist/esm/header.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/header.js +311 -0
- package/node_modules/tar/dist/esm/header.js.map +1 -0
- package/node_modules/tar/dist/esm/index.d.ts +20 -0
- package/node_modules/tar/dist/esm/index.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/index.js +20 -0
- package/node_modules/tar/dist/esm/index.js.map +1 -0
- package/node_modules/tar/dist/esm/index.min.js +4 -0
- package/node_modules/tar/dist/esm/index.min.js.map +7 -0
- package/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
- package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/large-numbers.js +94 -0
- package/node_modules/tar/dist/esm/large-numbers.js.map +1 -0
- package/node_modules/tar/dist/esm/list.d.ts +7 -0
- package/node_modules/tar/dist/esm/list.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/list.js +113 -0
- package/node_modules/tar/dist/esm/list.js.map +1 -0
- package/node_modules/tar/dist/esm/make-command.d.ts +49 -0
- package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/make-command.js +48 -0
- package/node_modules/tar/dist/esm/make-command.js.map +1 -0
- package/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
- package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/mkdir.js +179 -0
- package/node_modules/tar/dist/esm/mkdir.js.map +1 -0
- package/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
- package/node_modules/tar/dist/esm/mode-fix.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/mode-fix.js +25 -0
- package/node_modules/tar/dist/esm/mode-fix.js.map +1 -0
- package/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
- package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
- package/node_modules/tar/dist/esm/normalize-unicode.js.map +1 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -0
- package/node_modules/tar/dist/esm/options.d.ts +604 -0
- package/node_modules/tar/dist/esm/options.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/options.js +54 -0
- package/node_modules/tar/dist/esm/options.js.map +1 -0
- package/node_modules/tar/dist/esm/pack.d.ts +105 -0
- package/node_modules/tar/dist/esm/pack.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/pack.js +502 -0
- package/node_modules/tar/dist/esm/pack.js.map +1 -0
- package/node_modules/tar/dist/esm/package.json +3 -0
- package/node_modules/tar/dist/esm/parse.d.ts +92 -0
- package/node_modules/tar/dist/esm/parse.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/parse.js +651 -0
- package/node_modules/tar/dist/esm/parse.js.map +1 -0
- package/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
- package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/path-reservations.js +166 -0
- package/node_modules/tar/dist/esm/path-reservations.js.map +1 -0
- package/node_modules/tar/dist/esm/pax.d.ts +26 -0
- package/node_modules/tar/dist/esm/pax.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/pax.js +178 -0
- package/node_modules/tar/dist/esm/pax.js.map +1 -0
- package/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
- package/node_modules/tar/dist/esm/process-umask.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/process-umask.js +3 -0
- package/node_modules/tar/dist/esm/process-umask.js.map +1 -0
- package/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
- package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/read-entry.js +132 -0
- package/node_modules/tar/dist/esm/read-entry.js.map +1 -0
- package/node_modules/tar/dist/esm/replace.d.ts +2 -0
- package/node_modules/tar/dist/esm/replace.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/replace.js +221 -0
- package/node_modules/tar/dist/esm/replace.js.map +1 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.js.map +1 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +1 -0
- package/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
- package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/symlink-error.js +15 -0
- package/node_modules/tar/dist/esm/symlink-error.js.map +1 -0
- package/node_modules/tar/dist/esm/types.d.ts +16 -0
- package/node_modules/tar/dist/esm/types.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/types.js +65 -0
- package/node_modules/tar/dist/esm/types.js.map +1 -0
- package/node_modules/tar/dist/esm/unpack.d.ts +101 -0
- package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/unpack.js +891 -0
- package/node_modules/tar/dist/esm/unpack.js.map +1 -0
- package/node_modules/tar/dist/esm/update.d.ts +2 -0
- package/node_modules/tar/dist/esm/update.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/update.js +30 -0
- package/node_modules/tar/dist/esm/update.js.map +1 -0
- package/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
- package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/warn-method.js +27 -0
- package/node_modules/tar/dist/esm/warn-method.js.map +1 -0
- package/node_modules/tar/dist/esm/winchars.d.ts +3 -0
- package/node_modules/tar/dist/esm/winchars.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/winchars.js +9 -0
- package/node_modules/tar/dist/esm/winchars.js.map +1 -0
- package/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
- package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/write-entry.js +656 -0
- package/node_modules/tar/dist/esm/write-entry.js.map +1 -0
- package/node_modules/tar/package.json +298 -0
- package/node_modules/typescript/LICENSE.txt +55 -0
- package/node_modules/typescript/README.md +50 -0
- package/node_modules/typescript/SECURITY.md +41 -0
- package/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
- package/node_modules/typescript/bin/tsc +2 -0
- package/node_modules/typescript/bin/tsserver +2 -0
- package/node_modules/typescript/lib/_tsc.js +133818 -0
- package/node_modules/typescript/lib/_tsserver.js +659 -0
- package/node_modules/typescript/lib/_typingsInstaller.js +222 -0
- package/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/lib.d.ts +22 -0
- package/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
- package/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
- package/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
- package/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
- package/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
- package/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
- package/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
- package/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
- package/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
- package/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
- package/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
- package/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
- package/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
- package/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
- package/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
- package/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
- package/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
- package/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
- package/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
- package/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
- package/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
- package/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
- package/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
- package/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
- package/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
- package/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
- package/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
- package/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
- package/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
- package/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
- package/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
- package/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
- package/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
- package/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
- package/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
- package/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
- package/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
- package/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
- package/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
- package/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
- package/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
- package/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
- package/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
- package/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
- package/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
- package/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
- package/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
- package/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
- package/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
- package/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
- package/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
- package/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
- package/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
- package/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
- package/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
- package/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
- package/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
- package/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
- package/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
- package/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
- package/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
- package/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
- package/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
- package/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
- package/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
- package/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
- package/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
- package/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
- package/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
- package/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
- package/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
- package/node_modules/typescript/lib/lib.es6.d.ts +23 -0
- package/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
- package/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
- package/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
- package/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
- package/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
- package/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
- package/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
- package/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
- package/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
- package/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
- package/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
- package/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
- package/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
- package/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
- package/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
- package/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
- package/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/tsc.js +8 -0
- package/node_modules/typescript/lib/tsserver.js +8 -0
- package/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
- package/node_modules/typescript/lib/tsserverlibrary.js +21 -0
- package/node_modules/typescript/lib/typesMap.json +497 -0
- package/node_modules/typescript/lib/typescript.d.ts +11437 -0
- package/node_modules/typescript/lib/typescript.js +200276 -0
- package/node_modules/typescript/lib/typingsInstaller.js +8 -0
- package/node_modules/typescript/lib/watchGuard.js +53 -0
- package/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/package.json +120 -0
- package/node_modules/yallist/LICENSE.md +63 -0
- package/node_modules/yallist/README.md +205 -0
- package/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
- package/node_modules/yallist/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/yallist/dist/commonjs/index.js +384 -0
- package/node_modules/yallist/dist/commonjs/index.js.map +1 -0
- package/node_modules/yallist/dist/commonjs/package.json +3 -0
- package/node_modules/yallist/dist/esm/index.d.ts +39 -0
- package/node_modules/yallist/dist/esm/index.d.ts.map +1 -0
- package/node_modules/yallist/dist/esm/index.js +379 -0
- package/node_modules/yallist/dist/esm/index.js.map +1 -0
- package/node_modules/yallist/dist/esm/package.json +3 -0
- package/node_modules/yallist/package.json +68 -0
- package/node_modules/yauzl/LICENSE +21 -0
- package/node_modules/yauzl/README.md +1015 -0
- package/node_modules/yauzl/crc32.js +45 -0
- package/node_modules/yauzl/fd-slicer.js +188 -0
- package/node_modules/yauzl/index.js +1096 -0
- package/node_modules/yauzl/package.json +40 -0
- package/node_modules/yazl/LICENSE +21 -0
- package/node_modules/yazl/README.md +457 -0
- package/node_modules/yazl/index.js +826 -0
- package/node_modules/yazl/package.json +34 -0
- package/package.json +163 -0
- package/testkit-config-schema.md +718 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import p from"path";import{discoverTests as h,loadConfigContext as m}from"../../config/loader/index.js";import{runTestkitTypecheck as k}from"../typecheck/index.js";import{runLintForConfig as v}from"../lint/index.js";export async function runDoctor(e={}){const t=[],r=e.dir?p.resolve(process.cwd(),e.dir):process.cwd(),s=await m({dir:r});t.push({code:"config-load",level:"pass",message:"Loaded testkit config and service config"});const f=await h({dir:r,diagnostics:"report"}),l=b(f,"discovery result"),u=a(l.diagnostics,"discovery result diagnostics"),g=a(l.files,"discovery result files"),n=u.filter(w);t.push({code:"discovery",level:n.length===0?"pass":"fail",message:n.length===0?`Discovered ${String(g.length)} testkit files without diagnostics`:`Discovery reported ${String(n.length)} error diagnostics`,details:n});const i=await v(c(s,"config"),{dir:r});if(t.push({code:"lint",level:i.ok?"pass":"fail",message:i.ok?`No Testkit lint violations across ${String(i.summary.testkitFiles)} suite file(s)`:`Found ${String(i.summary.violations)} Testkit lint violation(s)`,details:i.violations}),e.typecheck!==!1)try{const o=await k({dir:r}),y=a(c(o,"results"),"typecheck results");t.push({code:"typecheck",level:"pass",message:`Typechecked ${String(y.length)} generated program(s)`})}catch(o){t.push({code:"typecheck",level:"fail",message:$(o)})}return{ok:!t.some(o=>o.level==="fail"),productDir:r,checks:t}}function w(e){return d(e)&&Reflect.get(e,"severity")==="error"}function $(e){const t=c(e,"result"),r=c(t,"stderr");if(typeof r=="string"&&r.length>0)return r;const s=c(t,"stdout");return typeof s=="string"&&s.length>0?s:e instanceof Error?e.message:String(e)}function a(e,t){if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e}function b(e,t){if(!d(e))throw new Error(`${t} must be an object`);return e}function c(e,t){return d(e)?Reflect.get(e,t):void 0}function d(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveRequestedFiles(fileNames: unknown, productDir: unknown, invocationCwd?: unknown): string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"node:path";export function resolveRequestedFiles(e,r,s=process.cwd()){const t=m(e),i=d(r,"product"),a=d(s,"invocation"),n=[],l=new Set;for(const f of t){const c=p(f,i,a);l.has(c)||(l.add(c),n.push(c))}return n}function p(e,r,s){const t=String(e),i=o.isAbsolute(t)?[t]:[o.resolve(s,t),o.resolve(r,t)];for(const a of i){const n=u(o.relative(r,a));if(!n.startsWith("../")&&n!==".."&&!o.isAbsolute(n))return n.replace(/^\.\/+/,"")}return u(t).replace(/^\.\/+/,"")}function u(e){return e.split(o.sep).join("/")}function m(e){if(!Array.isArray(e))throw new TypeError("Requested test files must be an array");return e}function d(e,r){if(typeof e!="string")throw new TypeError(`Testkit ${r} directory must be a string`);return e}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare function inspectArtifacts(options: Readonly<{
|
|
2
|
+
dir?: string;
|
|
3
|
+
mode: "runs" | "verify" | "artifacts";
|
|
4
|
+
file: string | null;
|
|
5
|
+
runId: string | null;
|
|
6
|
+
service: string | null;
|
|
7
|
+
kind?: string;
|
|
8
|
+
}>): {
|
|
9
|
+
mode: "runs";
|
|
10
|
+
runs: import("../../evidence/contracts.js").RunBundleSummary[];
|
|
11
|
+
runId?: undefined;
|
|
12
|
+
verification?: undefined;
|
|
13
|
+
entries?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
mode: "verify";
|
|
16
|
+
runId: string | null;
|
|
17
|
+
verification: import("../../evidence/contracts.js").RunBundleVerification;
|
|
18
|
+
runs?: undefined;
|
|
19
|
+
entries?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
mode: "artifacts";
|
|
22
|
+
runId: string | null;
|
|
23
|
+
entries: import("../../evidence/reading.js").CollectedArtifactEntry[];
|
|
24
|
+
runs?: undefined;
|
|
25
|
+
verification?: undefined;
|
|
26
|
+
};
|
|
27
|
+
export type ArtifactInspectionEntry = Extract<ReturnType<typeof inspectArtifacts>, {
|
|
28
|
+
mode: "artifacts";
|
|
29
|
+
}>["entries"][number];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import c from"node:path";import{collectArtifactEntries as d,listRunBundles as u,loadRunArtifact as l,verifyRunBundle as a}from"../../evidence/index.js";export function inspectArtifacts(r){const e=c.resolve(r.dir||process.cwd());if(r.mode==="runs")return{mode:"runs",runs:u(e,{file:r.file})};const t=l(e,r.runId),i=r.runId||t.run.id||null;if(r.mode==="verify")return{mode:"verify",runId:i,verification:a(e,i)};const f=d(e,t,r.file,r.service).filter(n=>!r.kind||n.artifactRef.kind===r.kind);return{mode:"artifacts",runId:i,entries:f}}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
export { formatTestTypeLabel } from "../../domain/test-types.js";
|
|
2
|
+
import type { RunArtifactSuite } from "../../evidence/index.js";
|
|
3
|
+
import { type EngineId, type RunnerProfileId } from "../../domain/identifiers.js";
|
|
4
|
+
import { type DiscoveryDiagnostic, type DiscoveryResult, type DiscoverySummary } from "../../config/loader/index.js";
|
|
5
|
+
import type { StatusModel } from "../status/model.js";
|
|
6
|
+
export { discoverTests, fileDisplayName, formatDisplayName, testTypeContract } from "../../config/loader/index.js";
|
|
7
|
+
export type { DiscoverTestsOptions, DiscoveryDiagnostic, DiscoveryFile, DiscoveryResult, DiscoveryService, DiscoverySuite, DiscoverySummary, DiscoveryTestContract, DiscoveryTestType, RuntimeIsolationPolicy, } from "../../config/loader/index.js";
|
|
8
|
+
export { listRunBundles, loadRunBundleArtifact, loadRunBundleManifest, verifyRunBundle } from "../../evidence/index.js";
|
|
9
|
+
export type { RunBundleVerification } from "../../evidence/index.js";
|
|
10
|
+
declare const WORKSPACE_SCHEMA_VERSION: 2;
|
|
11
|
+
export type WorkspaceTargetKind = "file" | "project" | "suite";
|
|
12
|
+
export type WorkspaceTargetSource = "discovery" | "latest" | "live";
|
|
13
|
+
export type WorkspaceRunSource = "latest" | "live";
|
|
14
|
+
export interface WorkspaceTargetRef {
|
|
15
|
+
detail: string;
|
|
16
|
+
engineId?: null | EngineId;
|
|
17
|
+
filePath?: string;
|
|
18
|
+
id: string;
|
|
19
|
+
kind: WorkspaceTargetKind;
|
|
20
|
+
label: string;
|
|
21
|
+
profileId?: null | RunnerProfileId;
|
|
22
|
+
runnable: boolean;
|
|
23
|
+
service?: null | string;
|
|
24
|
+
source: WorkspaceTargetSource;
|
|
25
|
+
status?: null | string;
|
|
26
|
+
suiteName?: null | string;
|
|
27
|
+
testType?: null | RunArtifactSuite["testType"];
|
|
28
|
+
}
|
|
29
|
+
export interface WorkspaceRunSummary {
|
|
30
|
+
durationMs: null | number;
|
|
31
|
+
files: {
|
|
32
|
+
failed: number;
|
|
33
|
+
notRun: number;
|
|
34
|
+
passed: number;
|
|
35
|
+
skipped: number;
|
|
36
|
+
total: number;
|
|
37
|
+
};
|
|
38
|
+
generatedAt: null | string;
|
|
39
|
+
id: null | string;
|
|
40
|
+
services: {
|
|
41
|
+
failed: number;
|
|
42
|
+
passed: number;
|
|
43
|
+
skipped: number;
|
|
44
|
+
total: number;
|
|
45
|
+
};
|
|
46
|
+
source: WorkspaceRunSource;
|
|
47
|
+
startedAt: null | string;
|
|
48
|
+
status: string;
|
|
49
|
+
suites: {
|
|
50
|
+
completed: number;
|
|
51
|
+
failed: number;
|
|
52
|
+
passed: number;
|
|
53
|
+
skipped: number;
|
|
54
|
+
total: number;
|
|
55
|
+
};
|
|
56
|
+
types: string[];
|
|
57
|
+
}
|
|
58
|
+
export interface WorkspaceRuntimeGraphStatus {
|
|
59
|
+
currentRuntimeDirCount: number;
|
|
60
|
+
desired: StatusModel["runtimeGraphs"][number]["desired"];
|
|
61
|
+
exists: boolean;
|
|
62
|
+
name: string;
|
|
63
|
+
orphan: boolean;
|
|
64
|
+
runtimeDirCount: number;
|
|
65
|
+
staleRuntimeDirCount: number;
|
|
66
|
+
}
|
|
67
|
+
export interface WorkspaceServiceStatus {
|
|
68
|
+
caches: StatusModel["caches"];
|
|
69
|
+
hasState: boolean;
|
|
70
|
+
name: string;
|
|
71
|
+
product: StatusModel["product"];
|
|
72
|
+
runtimeGraphs: WorkspaceRuntimeGraphStatus[];
|
|
73
|
+
runs: {
|
|
74
|
+
active: number;
|
|
75
|
+
stale: number;
|
|
76
|
+
total: number;
|
|
77
|
+
};
|
|
78
|
+
warnings: string[];
|
|
79
|
+
}
|
|
80
|
+
export interface WorkspaceStatus {
|
|
81
|
+
ok: boolean;
|
|
82
|
+
results: WorkspaceServiceStatus[];
|
|
83
|
+
}
|
|
84
|
+
export interface WorkspaceInspection {
|
|
85
|
+
activity: {
|
|
86
|
+
activeRuns: number;
|
|
87
|
+
staleRuns: number;
|
|
88
|
+
};
|
|
89
|
+
discovery: {
|
|
90
|
+
configFile: null | string;
|
|
91
|
+
diagnostics: DiscoveryDiagnostic[];
|
|
92
|
+
summary: DiscoverySummary;
|
|
93
|
+
} | null;
|
|
94
|
+
generatedAt: string;
|
|
95
|
+
product: DiscoveryResult["product"];
|
|
96
|
+
runs: {
|
|
97
|
+
latest: WorkspaceRunSummary | null;
|
|
98
|
+
live: WorkspaceRunSummary | null;
|
|
99
|
+
};
|
|
100
|
+
schemaVersion: typeof WORKSPACE_SCHEMA_VERSION;
|
|
101
|
+
source: "testkit-workspace";
|
|
102
|
+
status: WorkspaceStatus;
|
|
103
|
+
targets: WorkspaceTargetRef[];
|
|
104
|
+
warnings: string[];
|
|
105
|
+
}
|
|
106
|
+
export interface InspectWorkspaceOptions {
|
|
107
|
+
dir?: string;
|
|
108
|
+
service?: null | string;
|
|
109
|
+
status?: boolean;
|
|
110
|
+
targetLimit?: number;
|
|
111
|
+
}
|
|
112
|
+
export declare function inspectWorkspace(options?: Readonly<InspectWorkspaceOptions>): Promise<WorkspaceInspection>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{formatTestTypeLabel}from"../../domain/test-types.js";import{readRunDocument as h}from"../../evidence/read-run.js";import c from"fs";import i from"path";import{errorMessage as u}from"../../kernel/error-serialization.js";import{isPublicTestType as I}from"../../domain/identifiers.js";import{discoverTests as w,formatDisplayName as k}from"../../config/loader/index.js";import{collectServiceStatus as A}from"../status/index.js";export{discoverTests,fileDisplayName,formatDisplayName,testTypeContract}from"../../config/loader/index.js";export{listRunBundles,loadRunBundleArtifact,loadRunBundleManifest,verifyRunBundle}from"../../evidence/index.js";const b=2,S=24,N=String;export async function inspectWorkspace(e={}){const t=E(e.targetLimit,S),r=new Date().toISOString(),s=await $(e),a=s.data?.product.directory||i.resolve(process.cwd(),e.dir||"."),[n,o,l]=await Promise.all([e.status===!1?M():D(e),d(a,"latest"),d(a,"live")]),y=p(o.data,"latest"),g=p(l.data,"live"),T=x({discovery:s.data,latestRunArtifact:o.data,liveRunArtifact:l.data,limit:t}),R=[...s.warnings,...n.warnings,...o.warnings,...l.warnings];return{schemaVersion:b,source:"testkit-workspace",generatedAt:r,product:s.data?.product||{directory:a,name:i.basename(a)},discovery:s.data?{configFile:s.data.configFile||null,diagnostics:s.data.diagnostics,summary:s.data.summary}:null,status:n.data,runs:{latest:y,live:g},targets:T,activity:B(n.data),warnings:R}}async function $(e){try{const t=await w({diagnostics:"report",dir:e.dir,runnableOnly:!1,service:e.service||null}),r=t.diagnostics.filter(s=>s.severity==="error").map(s=>`Discovery diagnostic: ${s.message}`);return{data:t,warnings:r}}catch(t){return{data:null,warnings:[`Discovery unavailable: ${u(t)}`]}}}async function D(e){try{const t=await A({dir:e.dir,service:e.service||null});return{data:j(t),warnings:[]}}catch(t){return{data:{ok:!1,results:[]},warnings:[`Status unavailable: ${u(t)}`]}}}function M(){return Promise.resolve({data:{ok:!0,results:[]},warnings:[]})}function d(e,t){const r=t==="live"?"live.json":"latest.json",s=i.join(e,".testkit","results",r);if(!c.existsSync(s))return Promise.resolve({data:null,warnings:[]});try{const a=h(JSON.parse(c.readFileSync(s,"utf8")),s);return Promise.resolve({data:a,warnings:[]})}catch(a){return Promise.resolve({data:null,warnings:[`${t} run artifact unavailable: ${u(a)}`]})}}function j(e){return{ok:!0,results:e.map(t=>({caches:t.caches,hasState:t.hasState,name:t.name,product:t.product,runtimeGraphs:t.runtimeGraphs.map(r=>({currentRuntimeDirCount:r.currentRuntimeDirs.length,desired:r.desired,exists:r.exists,name:r.name,orphan:r.orphan,runtimeDirCount:r.runtimeDirCount,staleRuntimeDirCount:r.staleRuntimeDirs.length})),runs:{active:t.runs.active,stale:t.runs.stale,total:t.runs.total},warnings:t.warnings}))}}function p(e,t){if(e===null)return null;const{run:r,summary:s}=e;return{durationMs:r.durationMs??null,generatedAt:e.generatedAt??null,id:r.id,startedAt:r.startedAt,status:r.status,types:r.types??[],source:t,files:{failed:s?.files.failed??0,notRun:s?.files.notRun??0,passed:s?.files.passed??0,skipped:s?.files.skipped??0,total:s?.files.total??0},services:{failed:s?.services.failed??0,passed:s?.services.passed??0,skipped:s?.services.skipped??0,total:s?.services.total??0},suites:{completed:s?.suites.completed??0,failed:s?.suites.failed??0,passed:s?.suites.passed??0,skipped:s?.suites.skipped??0,total:s?.suites.total??0}}}function x({discovery:e,latestRunArtifact:t,liveRunArtifact:r,limit:s}){const a=[F(e),...m(r,"live"),...m(t,"latest"),...P(e).slice(0,Math.ceil(s/2)),...C(e).slice(0,s)].filter(n=>n!==null);return L(a).slice(0,s)}function F(e){return e?{detail:e.product.directory,id:"project:all",kind:"project",label:`All tests in ${e.product.name}`,runnable:!0,source:"discovery"}:null}function P(e){return(e?.suites||[]).map(t=>({detail:[t.service,t.testType,t.engineId,t.profileId].filter(Boolean).join(" - "),id:`suite:${t.service}:${t.testType}:${t.engineId}:${t.profileId}:${t.name}`,engineId:t.engineId,kind:"suite",label:t.displayName||t.name,profileId:t.profileId,runnable:t.activeFileCount>0,service:t.service,source:"discovery",suiteName:t.name,testType:t.testType}))}function C(e){return(e?.files||[]).filter(t=>!t.skipped).map(t=>f(t,"discovery"))}function m(e,t){const r=[];for(const s of e?.services??[])for(const a of s.suites)for(const n of a.files??[])n.status!=="failed"&&!n.error||r.push(f({displayName:v(n.path),engineId:a.engineId,path:n.path,profileId:a.profileId,service:s.name,suiteName:a.name,testType:a.testType},t,"failed"));return r}function f(e,t,r=null){return{detail:[e.service,e.testType,e.engineId,e.profileId,e.suiteName].filter(Boolean).join(" - "),filePath:e.path,engineId:e.engineId,id:`file:${e.service||""}:${e.testType}:${e.engineId}:${e.profileId}:${e.path}`,kind:"file",label:e.displayName||v(e.path),profileId:e.profileId,runnable:I(e.testType),service:e.service||null,source:t,status:r||null,suiteName:e.suiteName||null,testType:e.testType}}function B(e){return{activeRuns:e.results.reduce((t,r)=>t+r.runs.active,0),staleRuns:e.results.reduce((t,r)=>t+r.runs.stale,0)}}function L(e){const t=new Set,r=[];for(const s of e)t.has(s.id)||(t.add(s.id),r.push(s));return r}function E(e,t){const r=Number(e);return Number.isFinite(r)?Math.max(1,Math.min(100,Math.round(r))):t}function v(e){return k(i.basename(N(e||"test")).replace(/\.testkit\.[cm]?[jt]sx?$/,""))}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
interface LintOperationFlags {
|
|
2
|
+
dir?: string;
|
|
3
|
+
}
|
|
4
|
+
export declare function executeLintOperation(flags?: LintOperationFlags): Promise<LintResult>;
|
|
5
|
+
import { type LintOptionsInput, type NormalizedLintOptions } from "./options.js";
|
|
6
|
+
import { type LintFinding } from "./shared.js";
|
|
7
|
+
export interface RunLintOptions extends LintOptionsInput {
|
|
8
|
+
dir?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface RunLintForConfigOptions {
|
|
11
|
+
dir?: string;
|
|
12
|
+
}
|
|
13
|
+
export type LintViolation = LintFinding;
|
|
14
|
+
export interface LintSummary {
|
|
15
|
+
files: number;
|
|
16
|
+
testkitFiles: number;
|
|
17
|
+
violations: number;
|
|
18
|
+
}
|
|
19
|
+
export interface LintResult {
|
|
20
|
+
ok: boolean;
|
|
21
|
+
productDir: string;
|
|
22
|
+
summary: LintSummary;
|
|
23
|
+
violations: LintViolation[];
|
|
24
|
+
}
|
|
25
|
+
export declare function runLint(options?: RunLintOptions): Promise<LintResult>;
|
|
26
|
+
export declare function runLintForConfig(config: unknown, options?: RunLintForConfigOptions): Promise<LintResult>;
|
|
27
|
+
export declare function normalizeLintConfig(config?: unknown): NormalizedLintOptions;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{loadTestkitConfig as f,resolveProductDir as u}from"../../config/loader/index.js";export async function executeLintOperation(t={}){const n=u(process.cwd(),t.dir),i=await f(n);return runLintForConfig(m(i),{dir:n})}function m(t){if(!(typeof t!="object"||t===null||Array.isArray(t)))return Reflect.get(t,"config")}import c from"node:fs";import r from"node:path";import{normalizeLintOptions as p,normalizeLintConfig as l}from"./options.js";import{collectCurrentFiles as d,collectTrackedFiles as g,isTestkitSuitePath as y}from"./shared.js";import{lintProject as w}from"./native.js";export async function runLint(t={}){const{dir:n,...i}=t,o=r.resolve(process.cwd(),n||".");return a(o,p(i))}export async function runLintForConfig(t,n={}){const i=r.resolve(process.cwd(),n.dir||".");return a(i,l(t))}async function a(t,n){const i=await g(t),o=await d(t),e=await w({productDir:t,files:o,options:n,trackedFiles:i}),s={ok:e.length===0,productDir:t,summary:{files:o.length,testkitFiles:o.filter(y).length,violations:e.length},violations:e};return k(t,s),s}export function normalizeLintConfig(t={}){return l(t)}function k(t,n){try{const i=r.join(t,".testkit","lint");c.mkdirSync(i,{recursive:!0}),c.writeFileSync(r.join(i,"latest.json"),`${JSON.stringify(n,null,2)}
|
|
2
|
+
`,"utf8")}catch{}}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type NormalizedLintOptions } from "./options.js";
|
|
2
|
+
import { type LintFinding } from "./shared.js";
|
|
3
|
+
interface LintProjectInput {
|
|
4
|
+
productDir: string;
|
|
5
|
+
files: readonly string[];
|
|
6
|
+
trackedFiles: readonly string[] | null;
|
|
7
|
+
options: NormalizedLintOptions;
|
|
8
|
+
}
|
|
9
|
+
export declare function lintProject({ productDir, files, trackedFiles, options, }: LintProjectInput): Promise<LintFinding[]>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import y from"node:path";import{ESLint as j}from"eslint";import*as S from"@typescript-eslint/parser";import{LINT_RULE_NAMES as O}from"./options.js";import{compareFindings as _,findingKey as $,isTypeScriptLikePath as B,matchesAnyPathPattern as k,normalizeFinding as c,normalizePath as E,SOURCE_IGNORES as M}from"./shared.js";import{createSyntaxPolicy as F}from"./rules/syntax.js";import{createDataPolicy as U}from"./rules/data.js";import{createUnitPolicy as z}from"./rules/unit.js";import{createEngineImportPolicy as A}from"./rules/engine-imports.js";export async function lintProject({productDir:i,files:n,trackedFiles:o,options:s}){if(j.version!=="10.7.0"||S.version!=="8.65.0")throw new Error("Testkit lint requires its managed eslint@10.7.0 and @typescript-eslint/parser@8.65.0 installation");const h=new Map,I=[],f=O.filter(e=>s.rules[e].enabled),x=Object.fromEntries(f.filter(e=>e!=="testkitBoundary").map(e=>{const t=s.rules[e],r={meta:{type:"problem",schema:[],messages:{violation:"{{message}}"}},defaultOptions:[],create(l){const P=E(y.relative(i,l.filename)),u={context:l,file:P,report:(a,C,L,g)=>{const N=c({file:P,ruleName:e,ruleId:t.ruleId,kind:C,target:L,message:g,line:a.loc.start.line,snippet:l.sourceCode.getText(a).split(/\r?\n/u)[0]});h.set(T(l.filename,a.loc.start.line,a.loc.start.column+1,g),N),l.report({node:a,messageId:"violation",data:{message:g}})},options:s,literals:I};return e==="engineImports"?A(u):e==="dataSuiteContract"?U(u):e==="unitTestBoundaries"?z(u):F(e,u,n)}};return[t.ruleId,r]})),b=new j({cwd:i,overrideConfigFile:!0,allowInlineConfig:!1,errorOnUnmatchedPattern:!1,globInputPaths:!1,warnIgnored:!1,overrideConfig:[{ignores:M},{files:["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],languageOptions:{parser:S,ecmaVersion:"latest",sourceType:"module"},plugins:{testkit:{rules:x}}},...f.filter(e=>e!=="testkitBoundary").map(e=>{const t=s.rules[e];return{files:t.include.length?t.include:["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],ignores:t.exclude,rules:{[`testkit/${t.ruleId}`]:"error"}}})]}),w=[],v=n.filter(B);v.length&&w.push(...await b.lintFiles(v.map(e=>y.join(i,e))));const d=w.flatMap(e=>e.messages.map(t=>{if(t.ruleId===null)return c({file:E(y.relative(i,e.filePath)),line:t.line,ruleName:"syntax",ruleId:"syntax",kind:"parse-error",target:t.message,message:t.message});const r=h.get(T(e.filePath,t.line,t.column,t.message));if(!r)throw new Error(`Missing Testkit finding for ${t.ruleId}: ${t.message}`);return r}));if(f.includes("testkitBoundary")){const e=s.rules.testkitBoundary,t=o&&new Set(o);for(const r of n)e.trackedOnly&&t&&!t.has(r)||!R(r,e)||!r.split("/").some(l=>l.toLowerCase().includes("testkit"))||k(r,e.allowed??[])||d.push(c({file:r,ruleName:"testkitBoundary",ruleId:e.ruleId,kind:"testkit-path",target:r,message:"Tracked Testkit plumbing must live in testkit.config.* or __testkit__/ suites, or move into @gfdelarue/testkit"}))}const m=new Map;for(const e of I){const t=`${e.field}:${e.value}`,r=m.get(t)??[];r.push(e),m.set(t,r)}for(const[e,t]of m)if(!(new Set(t.map(r=>r.file)).size<2))for(const r of t)d.push(c({...r,ruleName:"dalParallelSafety",ruleId:"dal-parallel-safety",kind:"duplicate-literal",target:e,message:`Duplicate ${r.field} literal "${r.value}" appears across DAL specs; use fixture-derived namespaced values`}));const p=new Map;for(const e of d.sort(_)){const t=$(e);p.has(t)||p.set(t,e)}return[...p.values()]}function T(i,n,o,s){return[i,n,o,s].join("\0")}function R(i,n){return(!n.include.length||k(i,n.include))&&!k(i,n.exclude)}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface LintRulePolicy {
|
|
2
|
+
allowed?: string[];
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
exclude: string[];
|
|
5
|
+
include: string[];
|
|
6
|
+
ruleId: string;
|
|
7
|
+
ruleName: LintRuleName;
|
|
8
|
+
trackedOnly?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface LintRuleOptionsInput {
|
|
11
|
+
allowed?: readonly string[];
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
exclude?: readonly string[];
|
|
14
|
+
include?: readonly string[];
|
|
15
|
+
trackedOnly?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export type LintRuleInput = boolean | LintRuleOptionsInput;
|
|
18
|
+
export interface LintOptionsInput {
|
|
19
|
+
rules?: Partial<Record<LintRuleName, LintRuleInput>>;
|
|
20
|
+
ui?: {
|
|
21
|
+
maxLines?: number;
|
|
22
|
+
maxTests?: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface NormalizedLintOptions {
|
|
26
|
+
rules: LintRulePolicies;
|
|
27
|
+
ui: {
|
|
28
|
+
maxLines: number;
|
|
29
|
+
maxTests: number;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export declare const LINT_RULE_NAMES: readonly ["engineImports", "uiSpecShape", "dalParallelSafety", "dataSuiteContract", "configImports", "testkitBoundary", "unitTestBoundaries"];
|
|
33
|
+
export type LintRuleName = (typeof LINT_RULE_NAMES)[number];
|
|
34
|
+
export type LintRulePolicies = Record<LintRuleName, LintRulePolicy>;
|
|
35
|
+
export declare function isLintRuleName(value: string): value is LintRuleName;
|
|
36
|
+
export declare const RULES: {
|
|
37
|
+
readonly engineImports: {
|
|
38
|
+
readonly ruleId: "engine-imports";
|
|
39
|
+
readonly defaultEnabled: true;
|
|
40
|
+
};
|
|
41
|
+
readonly uiSpecShape: {
|
|
42
|
+
readonly ruleId: "ui-spec-shape";
|
|
43
|
+
readonly defaultEnabled: true;
|
|
44
|
+
};
|
|
45
|
+
readonly dalParallelSafety: {
|
|
46
|
+
readonly ruleId: "dal-parallel-safety";
|
|
47
|
+
readonly defaultEnabled: true;
|
|
48
|
+
};
|
|
49
|
+
readonly dataSuiteContract: {
|
|
50
|
+
readonly ruleId: "data-suite-contract";
|
|
51
|
+
readonly defaultEnabled: true;
|
|
52
|
+
};
|
|
53
|
+
readonly configImports: {
|
|
54
|
+
readonly ruleId: "config-imports";
|
|
55
|
+
readonly defaultEnabled: true;
|
|
56
|
+
};
|
|
57
|
+
readonly testkitBoundary: {
|
|
58
|
+
readonly ruleId: "testkit-boundary";
|
|
59
|
+
readonly defaultEnabled: false;
|
|
60
|
+
};
|
|
61
|
+
readonly unitTestBoundaries: {
|
|
62
|
+
readonly ruleId: "unit-test-boundaries";
|
|
63
|
+
readonly defaultEnabled: false;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export declare function normalizeLintConfig(config?: unknown): NormalizedLintOptions;
|
|
67
|
+
export declare function normalizeLintOptions(options?: LintOptionsInput): NormalizedLintOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DEFAULT_TESTKIT_BOUNDARY_ALLOWED as a,isObjectRecord as l,normalizePath as y}from"./shared.js";export const LINT_RULE_NAMES=["engineImports","uiSpecShape","dalParallelSafety","dataSuiteContract","configImports","testkitBoundary","unitTestBoundaries"];const b=new Set(LINT_RULE_NAMES),m=new Set(["rules","ui"]),p=new Set(["enabled","exclude","include"]),S=new Set([...p,"allowed","trackedOnly"]),I=new Set(["maxLines","maxTests"]),u="lint levels were removed; set a rule to true or false, or use { enabled: boolean }";export function isLintRuleName(e){return b.has(e)}export const RULES={engineImports:{ruleId:"engine-imports",defaultEnabled:!0},uiSpecShape:{ruleId:"ui-spec-shape",defaultEnabled:!0},dalParallelSafety:{ruleId:"dal-parallel-safety",defaultEnabled:!0},dataSuiteContract:{ruleId:"data-suite-contract",defaultEnabled:!0},configImports:{ruleId:"config-imports",defaultEnabled:!0},testkitBoundary:{ruleId:"testkit-boundary",defaultEnabled:!1},unitTestBoundaries:{ruleId:"unit-test-boundaries",defaultEnabled:!1}};const O=220,T=8;export function normalizeLintConfig(e={}){const n=l(e)?e.lint??{}:{};return normalizeLintOptions(n)}export function normalizeLintOptions(e={}){if(!l(e))throw new Error("lint config must be an object");if(Object.prototype.hasOwnProperty.call(e,"level"))throw new Error(`lint.level was removed; ${u}`);f(e,m,"lint");const n=e.rules??{};if(!l(n))throw new Error("lint.rules must be an object");for(const i of Object.keys(n)){if(i==="missingImports")throw new Error("lint.rules.missingImports was removed; use testkit typecheck for TypeScript import diagnostics");if(!Object.prototype.hasOwnProperty.call(RULES,i))throw new Error(`Unknown lint rule "${i}"`)}const t=i=>{const s=RULES[i];return _({ruleName:i,ruleId:s.ruleId,value:n[i],defaultEnabled:s.defaultEnabled})},r={engineImports:t("engineImports"),configImports:t("configImports"),dalParallelSafety:t("dalParallelSafety"),dataSuiteContract:t("dataSuiteContract"),testkitBoundary:t("testkitBoundary"),uiSpecShape:t("uiSpecShape"),unitTestBoundaries:t("unitTestBoundaries")},o=e.ui===void 0?{}:e.ui;if(!l(o))throw new Error("lint.ui must be an object");return f(o,I,"lint.ui"),{rules:r,ui:{maxLines:w(o.maxLines,O,"lint.ui.maxLines"),maxTests:w(o.maxTests,T,"lint.ui.maxTests")}}}function _({ruleName:e,ruleId:n,value:t,defaultEnabled:r}){if(t===void 0)return d({ruleName:e,ruleId:n,enabled:r});if(typeof t=="boolean")return d({ruleName:e,ruleId:n,enabled:t});if(!l(t))throw new Error(`lint.rules.${e} must be true, false, or a rule config object; ${u}`);if(Object.prototype.hasOwnProperty.call(t,"level"))throw new Error(`lint.rules.${e}.level was removed; ${u}`);return f(t,e==="testkitBoundary"?S:p,`lint.rules.${e}`),d({ruleName:e,ruleId:n,enabled:E(t.enabled,`lint.rules.${e}.enabled`)??!0,include:c(t.include,`lint.rules.${e}.include`),exclude:c(t.exclude,`lint.rules.${e}.exclude`),allowed:e==="testkitBoundary"?h(t.allowed):void 0,trackedOnly:e==="testkitBoundary"?E(t.trackedOnly,`lint.rules.${e}.trackedOnly`):void 0})}function d({ruleName:e,ruleId:n,enabled:t,include:r=[],exclude:o=[],allowed:i,trackedOnly:s}){return{ruleName:e,ruleId:n,enabled:t,include:r,exclude:o,...e==="testkitBoundary"?{allowed:i||a}:{},...e==="testkitBoundary"?{trackedOnly:s!==!1}:{}}}function c(e,n){if(e==null)return[];if(!Array.isArray(e))throw new Error(`${n} must be an array`);return e.map((t,r)=>{const o=typeof t=="string"?t.trim():"";if(!o)throw new Error(`${n}[${String(r)}] must be a non-empty string`);return y(o)})}function h(e){if(e==null)return a;const n=c(e,"lint.rules.testkitBoundary.allowed");return n.length>0?n:a}function w(e,n,t){if(e===void 0)return n;if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Error(`${t} must be a positive integer`);return e}function E(e,n){if(e!==void 0){if(typeof e!="boolean")throw new Error(`${n} must be a boolean`);return e}}function f(e,n,t){for(const r of Object.keys(e))if(!n.has(r))throw new Error(`Unknown ${t} option "${r}"`)}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TSESLint, TSESTree } from "@typescript-eslint/utils";
|
|
2
|
+
import type { NormalizedLintOptions } from "./options.js";
|
|
3
|
+
export type PolicyContext = TSESLint.RuleContext<"violation", []>;
|
|
4
|
+
export type Report = (node: TSESTree.Node, kind: string, target: string, message: string) => void;
|
|
5
|
+
export interface LiteralFact {
|
|
6
|
+
field: string;
|
|
7
|
+
value: string;
|
|
8
|
+
file: string;
|
|
9
|
+
line: number;
|
|
10
|
+
snippet: string;
|
|
11
|
+
}
|
|
12
|
+
export interface PolicyInput {
|
|
13
|
+
context: PolicyContext;
|
|
14
|
+
file: string;
|
|
15
|
+
report: Report;
|
|
16
|
+
options: NormalizedLintOptions;
|
|
17
|
+
literals: LiteralFact[];
|
|
18
|
+
}
|
|
19
|
+
export declare function stringValue(node: TSESTree.Node | null | undefined): string | null;
|
|
20
|
+
export declare function memberName(node: TSESTree.MemberExpression): string | null;
|
|
21
|
+
export declare function binding(context: PolicyContext, node: TSESTree.Identifier): TSESLint.Scope.Variable | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AST_NODE_TYPES as t}from"@typescript-eslint/utils";export function stringValue(e){return e?.type===t.Literal&&typeof e.value=="string"?e.value:e?.type===t.TemplateLiteral&&e.expressions.length===0?e.quasis[0]?.value.cooked??null:null}export function memberName(e){return!e.computed&&e.property.type===t.Identifier?e.property.name:stringValue(e.property)}export function binding(e,p){for(let r=e.sourceCode.getScope(p);r;r=r.upper){const u=r.set.get(p.name);if(u)return u}return null}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AST_NODE_TYPES as r}from"@typescript-eslint/utils";import{binding as p,memberName as w,stringValue as E}from"../policy.js";const T=new Set(["addFinding","actor","budget","bytes","count","duration","event","externalCall","expectMetric","expectSequence","fixture","finding","http","metric","money","ratio","reconcile","record","recordCache","recordHttpRequest","recordLlmUsage","recordRpc","sequence","sequenceBudget","system","transition"]),N=new Set(["actor","bytes","duration","externalCall","http","money","ratio","reconcile","record","recordCache","recordHttpRequest","recordLlmUsage","recordRpc","sequence","system","transition"]),f=new Set(["bench","describe","it","suite","test","BenchmarkRunner","TestRunner","EvaluatedModules"]);export function createDataPolicy({context:o,file:C,report:n}){if(!C.endsWith(".data.testkit.ts"))return{};const d=new Set,h=new Set,v=new Map,g=new Map;let y=!1,b=!1;const u=(e,t,a="vitest-runner-import")=>{n(e,a,t,`Data suites cannot use ${t} for Vitest case registration; declare cases with dataScenario(...)`)},x=e=>{for(const t of o.sourceCode.getAncestors(e).reverse())if(t.type===r.ArrowFunctionExpression||t.type===r.FunctionExpression){const a=g.get(t);if(a)return a}},m=e=>e.startsWith("vitest/")&&e!=="vitest/package.json"||e==="@gfdelarue/testkit/node-vitest/contract",k=e=>{E(e)?.includes("{serviceContextUrl:")&&n(e,"service-namespace-url","serviceContextUrl","Data suites must not use serviceContextUrl placeholders because they run outside the deployed service namespace")};return{ImportDeclaration(e){const t=e.source.value;if(t==="@playwright/test"&&n(e,"browser-runtime-import",t,"Browser/runtime driving belongs in ui or e2e suites, not data suites"),(t.startsWith("@testing-library/")||t==="jsdom"||t==="happy-dom")&&n(e,"dom-runtime-import","dom-runtime","DOM/rendering tests belong in ui suites, not data suites"),e.importKind==="type")return;const a=e.specifiers.filter(s=>s.type!==r.ImportSpecifier||s.importKind!=="type");if(!(e.specifiers.length&&!a.length)){m(t)&&u(e,t),t==="@gfdelarue/testkit/node-vitest/data"&&(y=!0);for(const s of a){const i=o.sourceCode.getDeclaredVariables(e).find(l=>l.name===s.local.name);if(t==="vitest"&&s.type===r.ImportNamespaceSpecifier&&i&&h.add(i),s.type!==r.ImportSpecifier)continue;const c=s.imported.type===r.Identifier?s.imported.name:s.imported.value;t==="vitest"&&f.has(c)&&u(s,c),t==="@gfdelarue/testkit/node-vitest/data"&&c==="dataScenario"&&i&&d.add(i)}}},ExportNamedDeclaration(e){if(!e.source||e.exportKind==="type")return;const t=e.specifiers.filter(a=>a.exportKind!=="type");if(!(e.specifiers.length&&!t.length)&&(m(e.source.value)&&u(e,e.source.value),e.source.value==="vitest"))for(const a of t){const s=a.local.type===r.Identifier?a.local.name:a.local.value;f.has(s)&&u(a,s)}},ExportAllDeclaration(e){e.exportKind!=="type"&&m(e.source.value)&&u(e,e.source.value)},MemberExpression(e){if(e.object.type!==r.Identifier)return;const t=p(o,e.object),a=w(e);t&&h.has(t)&&a&&f.has(a)&&u(e,a,"vitest-runner-call")},CallExpression(e){const t=e.callee.type===r.Identifier?p(o,e.callee):null;if(t&&d.has(t)){b=!0;const i=e.arguments.at(-1);if(!i||i.type!==r.ArrowFunctionExpression&&i.type!==r.FunctionExpression){n(e,"missing-scenario-callback","dataScenario","dataScenario(...) must provide a callback that receives the Testkit data context");return}const c=i.params[0]?.type===r.AssignmentPattern?i.params[0].left:i.params.at(0),l=c?.type===r.Identifier?o.sourceCode.getDeclaredVariables(i).find(D=>D.name===c.name):null;if(!l){n(e,"missing-data-context","dataScenario","dataScenario callbacks must accept the Testkit data context and record data evidence");return}const S={callback:i,context:l,contextName:l.name,methods:new Set,assertion:!1};v.set(e,S),g.set(i,S);return}const a=o.sourceCode.getText(e.callee);e.callee.type===r.MemberExpression&&a.includes(".serviceContextUrl")&&n(e,"service-namespace-url","serviceContextUrl","Data suites run in the managed Node.js runner, not inside a service namespace; use baseUrl/public endpoints or move service-namespace checks to int/e2e");const s=x(e);if(s&&(/^(expect|assert)(?:\(|\.)/u.test(a)&&(s.assertion=!0),e.callee.type===r.MemberExpression&&e.callee.object.type===r.Identifier&&p(o,e.callee.object)===s.context)){const i=w(e.callee);i&&T.has(i)&&s.methods.add(i)}},"CallExpression:exit"(e){const t=v.get(e);if(!t)return;const{callback:a,contextName:s,methods:i,assertion:c}=t;i.size?[...i].some(l=>N.has(l))||(n(a,"weak-data-evidence",s,"Data scenarios must record product data-flow evidence such as http, bytes, sequence, record, transition, system, externalCall, recordCache, recordLlmUsage, or reconcile; ordinary Node/Vitest-style checks belong in *.contract.testkit.ts with @gfdelarue/testkit/node-vitest/contract"),c&&n(a,"vitest-shaped-data-suite",s,"This dataScenario looks like an ordinary assertion test with weak data bookkeeping; move Node-backed contract checks to *.contract.testkit.ts or model the product data flow with structured evidence")):n(a,"missing-data-evidence",s,"Data scenarios must record Testkit-owned data-flow evidence with the data context, such as http, bytes, sequence, record, transition, system, externalCall, recordCache, recordLlmUsage, or reconcile")},ThrowStatement(e){const t=x(e);t&&(t.assertion=!0)},Literal:k,TemplateLiteral:k,"Program:exit"(e){y?d.size?b||n(e,"missing-data-scenario","dataScenario","Data suites must declare at least one dataScenario(...)"):n(e,"missing-data-scenario-import","dataScenario","Data suites must import dataScenario from @gfdelarue/testkit/node-vitest/data"):n(e,"missing-data-import","@gfdelarue/testkit/node-vitest/data","Data suites must import dataScenario from @gfdelarue/testkit/node-vitest/data")}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AST_NODE_TYPES as l}from"@typescript-eslint/utils";import{isPublicTestType as g}from"../../../domain/identifiers.js";import{BUILT_IN_ENGINE_CATALOG as I,expectedEngineAuthoringModule as h,invalidEngineAuthoringImport as E,requireMatchingHostImport as x}from"../../../engines/catalog.js";import{binding as y,stringValue as c}from"../policy.js";export function createEngineImportPolicy({context:u,file:i,report:m}){const n=/\.([^.]+)\.testkit\.ts$/u.exec(i)?.[1];if(!g(n))return{};const p=I.profilesForTestType(n),o=p[0];if(p.length!==1)return{};const a={engineId:o.engineId,profileId:o.id},f=h(o.id),r=(t,e)=>{if(e!==null)try{if(x(i,a,e),e!==f&&(e.startsWith("@gfdelarue/testkit/")||e.startsWith("@gfdelarue/testkit-engine-")))throw E(i,a,e)}catch(s){if(!(s instanceof Error))throw s;m(t,"engine-import",e,s.message)}};return{ImportDeclaration(t){t.importKind!=="type"&&(t.specifiers.length===0||t.specifiers.some(e=>e.type!==l.ImportSpecifier||e.importKind!=="type"))&&r(t,t.source.value)},ExportNamedDeclaration(t){t.source&&t.exportKind!=="type"&&t.specifiers.some(e=>e.exportKind!=="type")&&r(t,t.source.value)},ExportAllDeclaration(t){t.exportKind!=="type"&&r(t,t.source.value)},ImportExpression(t){r(t,c(t.source))},CallExpression(t){t.callee.type===l.Identifier&&t.callee.name==="require"&&!y(u,t.callee)?.defs.length&&r(t,c(t.arguments[0]))}}}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TSESLint } from "@typescript-eslint/utils";
|
|
2
|
+
import type { LintRuleName } from "../options.js";
|
|
3
|
+
import { type PolicyInput } from "../policy.js";
|
|
4
|
+
export declare function createSyntaxPolicy(name: LintRuleName, { file, context, report, options, literals }: PolicyInput, files: readonly string[]): TSESLint.RuleListener;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AST_NODE_TYPES as a}from"@typescript-eslint/utils";import{memberName as O,stringValue as u}from"../policy.js";export function createSyntaxPolicy(n,{file:s,context:c,report:l,options:r,literals:m},N){if(n==="uiSpecShape"&&s.endsWith(".ui.testkit.ts")){let t=0;return{CallExpression(e){e.callee.type===a.Identifier&&e.callee.name==="test"&&u(e.arguments[0])!==null&&(t+=1)},"Program:exit"(e){const i=c.sourceCode.text.split(/\r?\n/u).length;(i>r.ui.maxLines||t>r.ui.maxTests)&&l(e,"shape-limit",`${String(i)}:${String(t)}`,`UI spec exceeds shape limit (${String(i)}/${String(r.ui.maxLines)} lines, ${String(t)}/${String(r.ui.maxTests)} tests)`)}}}if(n==="configImports"&&s===N.find(t=>/^testkit\.config\.[cm]?[jt]s$/u.test(t)))return{ImportDeclaration(t){const e=t.source.value;(e.startsWith(".")||e.startsWith("/"))&&e.includes("__testkit__")&&l(t,"config-helper-import",e,"testkit.config.ts must not import repo-local __testkit__ helper modules")}};if(n!=="dalParallelSafety")return{};const o=s.endsWith(".dal.testkit.ts"),p=s.split("/").includes("__testkit__")&&s.split("/").includes("helpers")&&s.endsWith(".ts");return{CallExpression(t){if(!o)return;const e=t.callee;(e.type===a.Identifier&&e.name==="truncate"||e.type===a.MemberExpression&&O(e)==="truncate")&&l(t,"truncate","truncate","DAL specs must not truncate shared tables; seed namespaced rows and scope queries instead")},Property(t){if(!o)return;const e=!t.computed&&t.key.type===a.Identifier?t.key.name:u(t.key),i=u(t.value);e&&["slug","email","authProviderId"].includes(e)&&i&&m.push({field:e,value:i,file:s,line:t.loc.start.line,snippet:c.sourceCode.getText(t).split(/\r?\n/u)[0]})},Literal(t){p&&typeof t.value=="string"&&/\bON\s+CONFLICT(?:\s*\([^)]*\))?\s+DO\s+NOTHING\b/iu.test(t.value)&&l(t,"silent-conflict","ON CONFLICT DO NOTHING","Testkit helper seed code must not use ON CONFLICT DO NOTHING; collisions should fail loudly")},TemplateLiteral(t){p&&/\bON\s+CONFLICT(?:\s*\([^)]*\))?\s+DO\s+NOTHING\b/iu.test(t.quasis.map(e=>e.value.cooked??"").join("\0"))&&l(t,"silent-conflict","ON CONFLICT DO NOTHING","Testkit helper seed code must not use ON CONFLICT DO NOTHING; collisions should fail loudly")}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AST_NODE_TYPES as o}from"@typescript-eslint/utils";import{memberName as a,stringValue as m}from"../policy.js";const u=new Set(["vi.mock","jest.mock","mock.method"]),p=new Set(["vi.fn","vi.spyOn","vi.stubGlobal","vi.useFakeTimers","jest.fn","jest.spyOn","jest.useFakeTimers"]),b=new Set(["sinon","nock","msw","jest-mock"]),f=new Set(["fetch","http.createServer","net.createServer"]),l=new Set(["fs","node:fs","child_process","node:child_process","execa"]);export function createUnitPolicy({file:r,report:s}){if(!/\.(test|spec)\.[cm]?[jt]sx?$/u.test(r)||r.split("/").includes("__testkit__"))return{};const i=(e,t)=>{if(!t)return;const c=t.split("/"),n=t.startsWith("@")?c.slice(0,2).join("/"):c[0];b.has(n)&&s(e,"test-double-library",n,"Unit tests must not use test-double libraries"),(l.has(t)||l.has(n))&&s(e,"io-boundary-import",t,"Unit tests must not import process, network, filesystem, or runtime boundary modules")};return{ImportDeclaration(e){i(e,e.source.value)},ImportExpression(e){i(e,m(e.source))},CallExpression(e){const t=h(e.callee);u.has(t)&&s(e,"module-replacement",t,"Unit tests must not replace modules; move boundary behavior to a Testkit suite"),p.has(t)&&s(e,"function-replacement",t,"Unit tests must not replace collaborators; extract pure logic or move behavior to a Testkit suite"),f.has(t)&&s(e,"io-boundary-call",t,"Unit tests must not cross process, network, filesystem, or runtime boundaries"),t==="require"&&e.arguments.length===1&&i(e,m(e.arguments[0]))},MemberExpression(e){e.object.type===o.Identifier&&e.object.name==="process"&&a(e)==="env"&&s(e,"io-boundary-global","process.env","Unit tests must not read process-global environment state")}}}function h(r){if(r.type===o.Identifier)return r.name;if(r.type!==o.MemberExpression)return"";let s=r.object;for(;s.type===o.MemberExpression;)s=s.object;const i=a(r);return s.type===o.Identifier&&i?`${s.name}.${i}`:""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface LintFindingInput {
|
|
2
|
+
file: string;
|
|
3
|
+
kind?: string;
|
|
4
|
+
line?: number;
|
|
5
|
+
message: string;
|
|
6
|
+
ruleId: string;
|
|
7
|
+
ruleName: string;
|
|
8
|
+
snippet?: string | null;
|
|
9
|
+
target?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface LintFinding {
|
|
12
|
+
file: string;
|
|
13
|
+
kind: string;
|
|
14
|
+
line: number;
|
|
15
|
+
message: string;
|
|
16
|
+
ruleId: string;
|
|
17
|
+
ruleName: string;
|
|
18
|
+
snippet?: string;
|
|
19
|
+
target: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const DEFAULT_EXCLUDED_DIRS: string[];
|
|
22
|
+
export declare const SOURCE_PATTERNS: string[];
|
|
23
|
+
export declare const SOURCE_IGNORES: string[];
|
|
24
|
+
export declare const DEFAULT_TESTKIT_BOUNDARY_ALLOWED: string[];
|
|
25
|
+
export declare function collectCurrentFiles(productDir: string): Promise<string[]>;
|
|
26
|
+
export declare function collectTrackedFiles(productDir: string): Promise<string[] | null>;
|
|
27
|
+
export declare function normalizePath(value: string): string;
|
|
28
|
+
export declare function isObjectRecord(value: unknown): value is Record<string, unknown>;
|
|
29
|
+
export declare function isSourceLikePath(file: string): boolean;
|
|
30
|
+
export declare function isTypeScriptLikePath(file: string): boolean;
|
|
31
|
+
export declare function isTestkitSuitePath(file: string): boolean;
|
|
32
|
+
export declare function isExcludedRelativePath(file: string): boolean;
|
|
33
|
+
export declare function matchesAnyPathPattern(file: string, patterns: readonly string[]): boolean;
|
|
34
|
+
export declare function compareFindings(left: LintFinding, right: LintFinding): number;
|
|
35
|
+
export declare function normalizeFinding(finding: LintFindingInput): LintFinding;
|
|
36
|
+
export declare function findingKey(finding: Readonly<LintFinding>): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import n from"node:fs";import s from"node:path";import{minimatch as i}from"minimatch";import{glob as c}from"tinyglobby";import{TEST_TYPE_ORDER as p}from"../../domain/test-types.js";import{runManagedGitCommand as l}from"../../repo/managed-git.js";export const DEFAULT_EXCLUDED_DIRS=[".git",".next",".next-testkit",".testkit","coverage","dist","node_modules","playwright-report"],SOURCE_PATTERNS=["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,json}"],SOURCE_IGNORES=DEFAULT_EXCLUDED_DIRS.map(t=>`**/${t}/**`),DEFAULT_TESTKIT_BOUNDARY_ALLOWED=["testkit.config.ts","testkit.config.mts","testkit.config.mjs","testkit.config.js","**/__testkit__/**"];export async function collectCurrentFiles(t){const e=await l(t,["ls-files","--cached","--others","--exclude-standard","-z"]),o=e.exitCode===0?e.stdout.split("\0").filter(r=>r&&n.existsSync(s.join(t,r))):await c(SOURCE_PATTERNS,{cwd:t,ignore:SOURCE_IGNORES,dot:!0,followSymbolicLinks:!1});return[...new Set(o.map(normalizePath))].filter(r=>isSourceLikePath(r)&&!isExcludedRelativePath(r)).sort((r,a)=>r.localeCompare(a))}export async function collectTrackedFiles(t){const e=await l(t,["ls-files","-z"]);return e.exitCode!==0?null:e.stdout.split("\0").map(o=>normalizePath(o)).filter(Boolean).filter(o=>n.existsSync(s.join(t,o))).sort((o,r)=>o.localeCompare(r))}export function normalizePath(t){return t.split(s.sep).join("/")}export function isObjectRecord(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}export function isSourceLikePath(t){return/\.(?:[cm]?[jt]sx?|json)$/u.test(t)}export function isTypeScriptLikePath(t){return/\.[cm]?[jt]sx?$/u.test(t)}export function isTestkitSuitePath(t){return p.some(e=>t.endsWith(`.${e}.testkit.ts`))}export function isExcludedRelativePath(t){return SOURCE_IGNORES.some(e=>i(t,e,{dot:!0}))}export function matchesAnyPathPattern(t,e){return e.some(o=>i(t,o,{dot:!0}))}export function compareFindings(t,e){return t.file.localeCompare(e.file)||t.line-e.line||t.ruleId.localeCompare(e.ruleId)||t.kind.localeCompare(e.kind)||t.target.localeCompare(e.target)}export function normalizeFinding(t){return{ruleName:t.ruleName,ruleId:t.ruleId,kind:t.kind||"violation",target:t.target||"",file:normalizePath(t.file),line:t.line||1,message:t.message,...t.snippet?{snippet:t.snippet}:{}}}export function findingKey(t){return[t.file,String(t.line),t.ruleId,t.kind,t.target].join("\0")}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface PackageVersionInspectionOptions {
|
|
2
|
+
binUrl?: string | URL;
|
|
3
|
+
currentPackageRoot?: string;
|
|
4
|
+
cwd?: string;
|
|
5
|
+
dir?: string | null;
|
|
6
|
+
}
|
|
7
|
+
export interface PackageVersionMismatch {
|
|
8
|
+
currentPackageRoot: string;
|
|
9
|
+
currentVersion: string;
|
|
10
|
+
declaredSpec: string | null;
|
|
11
|
+
productDir: string;
|
|
12
|
+
productPackageRoot: string | null;
|
|
13
|
+
productVersion: string | null;
|
|
14
|
+
}
|
|
15
|
+
export declare function testkitIdentity(): {
|
|
16
|
+
description: string;
|
|
17
|
+
name: string;
|
|
18
|
+
version: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function inspectPackageVersionDrift(options?: Readonly<PackageVersionInspectionOptions>): PackageVersionMismatch | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import p from"node:fs";import r from"node:path";import{fileURLToPath as P}from"node:url";import{satisfiesSemver as v}from"../toolchains/semver.js";import{readPackageMetadata as D}from"../process/host/metadata.js";const S=["dependencies","devDependencies","optionalDependencies","peerDependencies"];export function testkitIdentity(){return{description:"Test orchestration platform for product acceptance and QA workflows",name:"@gfdelarue/testkit",version:D().version}}export function inspectPackageVersionDrift(e={}){const n=e.currentPackageRoot||j(e.binUrl||import.meta.url),t=a(r.join(n,"package.json"));if(!t?.version)throw new Error(`Unable to read the current Testkit version from ${n}`);const c=e.cwd||process.cwd(),s=e.dir?r.resolve(c,e.dir):c;if(f(s,n))return null;const g=a(r.join(s,"package.json")),o=R(g),d=r.join(s,"node_modules","@gfdelarue","testkit"),i=a(r.join(d,"package.json"));return!o&&!i||i&&f(d,n)?null:i?.version&&i.version!==t.version?{productDir:s,currentPackageRoot:n,currentVersion:t.version,productPackageRoot:d,productVersion:i.version,declaredSpec:o}:!i&&o&&h(o)&&!v(t.version,l(o))?{productDir:s,currentPackageRoot:n,currentVersion:t.version,productPackageRoot:null,productVersion:null,declaredSpec:o}:null}function j(e){const n=P(e);return y(r.dirname(n))}function y(e){let n=r.resolve(e);for(;;){if(a(r.join(n,"package.json"))?.name==="@gfdelarue/testkit")return n;const c=r.dirname(n);if(c===n)return r.resolve(e);n=c}}function R(e=null){for(const n of S){const t=e?.[n]?.["@gfdelarue/testkit"];if(t?.trim())return t.trim()}return null}function a(e){try{const n=JSON.parse(p.readFileSync(e,"utf8"));return w(n)}catch{return null}}function f(e,n){try{return p.realpathSync(e)===p.realpathSync(n)}catch{return r.resolve(e)===r.resolve(n)}}function h(e){const n=l(e);return/^(?:[<>]=?|[\^~=])?\s*\d/u.test(n)}function l(e){return e.trim().replace(/^workspace:/u,"")}function w(e){return k(e)?{dependencies:u(e.dependencies),devDependencies:u(e.devDependencies),name:m(e.name),optionalDependencies:u(e.optionalDependencies),peerDependencies:u(e.peerDependencies),version:m(e.version)}:null}function u(e){if(!k(e))return;const n=Object.entries(e).filter(t=>typeof t[1]=="string");return Object.fromEntries(n)}function m(e){return typeof e=="string"?e:void 0}function k(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type EndpointReadinessAttempt } from "../../process/readiness.js";
|
|
2
|
+
import type { NormalizedFailureDetail } from "./failure-details.js";
|
|
3
|
+
export interface EndpointReadinessOptions {
|
|
4
|
+
attemptTimeoutMs?: number | string;
|
|
5
|
+
mode?: string;
|
|
6
|
+
retryDelayMs?: number | string;
|
|
7
|
+
timeoutMs?: number | string;
|
|
8
|
+
}
|
|
9
|
+
export interface EndpointReadinessLifecycle {
|
|
10
|
+
isStopRequested(): boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface EndpointReadinessInput {
|
|
13
|
+
baseUrl: string;
|
|
14
|
+
env?: NodeJS.ProcessEnv;
|
|
15
|
+
lifecycle?: EndpointReadinessLifecycle | null;
|
|
16
|
+
options?: Readonly<EndpointReadinessOptions>;
|
|
17
|
+
serviceName?: string | null;
|
|
18
|
+
signal?: AbortSignal;
|
|
19
|
+
}
|
|
20
|
+
export interface EndpointReadinessFailureDetail extends NormalizedFailureDetail {
|
|
21
|
+
classification: "infra";
|
|
22
|
+
endpoint: string;
|
|
23
|
+
key: "http_endpoint_readiness";
|
|
24
|
+
kind: "http_endpoint_readiness";
|
|
25
|
+
message: string;
|
|
26
|
+
service: string | null;
|
|
27
|
+
title: "HTTP endpoint readiness failed";
|
|
28
|
+
}
|
|
29
|
+
export interface EndpointReadinessSuccess {
|
|
30
|
+
attempts: EndpointReadinessAttempt[];
|
|
31
|
+
ok: true;
|
|
32
|
+
skipped: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface EndpointReadinessFailure {
|
|
35
|
+
attempts: EndpointReadinessAttempt[];
|
|
36
|
+
failureDetails: EndpointReadinessFailureDetail[];
|
|
37
|
+
ok: false;
|
|
38
|
+
reason: string;
|
|
39
|
+
skipped: false;
|
|
40
|
+
}
|
|
41
|
+
export type EndpointReadinessResult = EndpointReadinessFailure | EndpointReadinessSuccess;
|
|
42
|
+
export declare function shouldRunEndpointReadinessPreflight(baseUrl: string, options?: Readonly<EndpointReadinessOptions>, env?: NodeJS.ProcessEnv): boolean;
|
|
43
|
+
export declare function waitForEndpointReadinessPreflight({ baseUrl, serviceName, lifecycle, options, env, signal, }: Readonly<EndpointReadinessInput>): Promise<EndpointReadinessResult>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{connectEndpoint as E}from"../../process/readiness.js";const P=new Set(["localhost","127.0.0.1","::1"]);export function shouldRunEndpointReadinessPreflight(t,e={},n=process.env){const r=(e.mode||n.TESTKIT_HTTP_ENDPOINT_PREFLIGHT||"auto").trim().toLowerCase();if(["0","false","off","never","disabled"].includes(r))return!1;if(["1","true","on","always","force"].includes(r))return!0;const o=d(t);return!!(o&&!P.has(l(o.host)))}export async function waitForEndpointReadinessPreflight({baseUrl:t,serviceName:e,lifecycle:n=null,options:r={},env:o=process.env,signal:i}){if(!shouldRunEndpointReadinessPreflight(t,r,o))return{ok:!0,skipped:!0,attempts:[]};const s=d(t);if(!s)return T({baseUrl:t,serviceName:e,attempts:[],reason:`HTTP endpoint readiness could not parse ${t||"unknown endpoint"}`});const f=c(r.timeoutMs??o.TESTKIT_HTTP_ENDPOINT_PREFLIGHT_TIMEOUT_MS,3e4),m=c(r.attemptTimeoutMs??o.TESTKIT_HTTP_ENDPOINT_PREFLIGHT_ATTEMPT_TIMEOUT_MS,5e3),_=c(r.retryDelayMs??o.TESTKIT_HTTP_ENDPOINT_PREFLIGHT_RETRY_DELAY_MS,500),u=Date.now()+f,a=[];for(;Date.now()<u;){if(n?.isStopRequested()||i?.aborted)return T({baseUrl:t,serviceName:e,attempts:a,reason:`testkit run interrupted before HTTP endpoint readiness completed for ${t}`});const h=Math.max(1,u-Date.now()),p=await E(s,Math.min(m,h),i);if(a.push(p),p.ok)return{ok:!0,skipped:!1,attempts:a};await w(Math.min(_,Math.max(0,u-Date.now())),i)}return T({baseUrl:t,serviceName:e,attempts:a,reason:`HTTP endpoint for ${e||"unknown"} was not reachable at ${t}`})}function T({baseUrl:t,serviceName:e,attempts:n,reason:r}){const o=n.map(s=>s.error).filter(s=>!!s).slice(-3).join("; "),i=o?`${r}. Last connection failure(s): ${o}`:r;return{ok:!1,skipped:!1,reason:i,attempts:n,failureDetails:[{count:1,kind:"http_endpoint_readiness",key:"http_endpoint_readiness",title:"HTTP endpoint readiness failed",classification:"infra",message:i,service:e||null,endpoint:t}]}}function d(t){try{const e=new URL(t);if(!["http:","https:"].includes(e.protocol))return null;const n=Number(e.port||(e.protocol==="https:"?443:80));return!Number.isInteger(n)||n<=0||n>65535?null:{host:l(e.hostname),port:n}}catch{return null}}function c(t,e){const n=Number(t);return Number.isInteger(n)&&n>0?n:e}function l(t){return t.trim().toLowerCase().replace(/^\[(.*)\]$/u,"$1")}function w(t,e){return e?.aborted?Promise.resolve():new Promise(n=>{const r=setTimeout(o,t);function o(){clearTimeout(r),e?.removeEventListener("abort",o),n()}e?.addEventListener("abort",o,{once:!0})})}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type FileEvidenceBudget } from "../../evidence/file-evidence.js";
|
|
2
|
+
import type { EngineEvidence } from "../../engines/api/index.js";
|
|
3
|
+
import { type PersistedArtifactReference } from "../../evidence/index.js";
|
|
4
|
+
import type { ScheduledTask } from "./scheduler/index.js";
|
|
5
|
+
type EvidenceCategory = "artifacts" | "logs" | "metrics" | "native";
|
|
6
|
+
type EvidencePersistenceMode = "observed" | "reconcile";
|
|
7
|
+
export interface EvidenceLedger {
|
|
8
|
+
readonly countsByCategory: Readonly<Record<EvidenceCategory, Map<string, number>>>;
|
|
9
|
+
readonly fileEvidence: {
|
|
10
|
+
maximumBytes: number;
|
|
11
|
+
persistedBytes: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
interface PersistEvidenceOptions {
|
|
15
|
+
artifactRoot: string;
|
|
16
|
+
evidence: EngineEvidence;
|
|
17
|
+
productDir: string;
|
|
18
|
+
scope: "invocation" | "task";
|
|
19
|
+
task: ScheduledTask;
|
|
20
|
+
fileEvidenceBudget?: FileEvidenceBudget;
|
|
21
|
+
}
|
|
22
|
+
export declare const MAX_ENGINE_FILE_EVIDENCE_BYTES: number;
|
|
23
|
+
interface EvidencePersistenceContext {
|
|
24
|
+
artifactRoot: string;
|
|
25
|
+
errors: Error[];
|
|
26
|
+
ledger: EvidenceLedger;
|
|
27
|
+
mode: EvidencePersistenceMode;
|
|
28
|
+
productDir: string;
|
|
29
|
+
references: PersistedArtifactReference[];
|
|
30
|
+
scope: "invocation" | "task";
|
|
31
|
+
task: ScheduledTask;
|
|
32
|
+
}
|
|
33
|
+
export declare function persistEngineEvidence({ artifactRoot, evidence, productDir, scope, task, fileEvidenceBudget, }: Readonly<PersistEvidenceOptions>): PersistedArtifactReference[];
|
|
34
|
+
export declare function persistTrackedEngineEvidence(evidence: Readonly<EngineEvidence>, context: EvidencePersistenceContext): void;
|
|
35
|
+
export declare function createEvidenceLedger(maximumFileEvidenceBytes?: number): EvidenceLedger;
|
|
36
|
+
export declare function requireTaskArtifacts(referencesByTaskId: ReadonlyMap<string, PersistedArtifactReference[]>, taskId: string): PersistedArtifactReference[];
|
|
37
|
+
export declare function requireTaskEvidenceLedger(ledgersByTaskId: ReadonlyMap<string, EvidenceLedger>, taskId: string): EvidenceLedger;
|
|
38
|
+
export declare function contextualError(message: string, cause: unknown): Error;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{persistFileEvidence as m,fileEvidenceBudgetError as g}from"../../evidence/file-evidence.js";import{MAX_PERSISTED_FILE_ARTIFACT_BYTES as y,persistTaskArtifacts as p,persistTaskOutputArtifacts as E}from"../../evidence/index.js";export const MAX_ENGINE_FILE_EVIDENCE_BYTES=y;export function persistEngineEvidence({artifactRoot:e,evidence:t,productDir:i,scope:r,task:n,fileEvidenceBudget:a}){const o={engineId:n.engineId,file:n.file,id:n.id,profileId:n.profileId,serviceName:n.serviceName,suiteKey:n.suiteKey,suiteName:n.suiteName,testType:n.testType},u=m({artifactRoot:e,artifacts:t.artifacts,productDir:i,task:o,fileEvidenceBudget:a}),f=E(i,o,t.logs.map((c,d)=>({name:`${r}-engine-${c.stream}-${d.toString()}`,kind:`engine.${r}.log`,stream:c.stream,text:c.text}))),s=[...t.metrics.map((c,d)=>v(c,d,r)),...t.native===void 0?[]:[{name:`${r}-engine-native`,kind:`engine.${r}.native`,contentType:"application/json",summary:`${r} engine-native evidence`,emittedAt:new Date().toISOString(),data:t.native}]];return[...u,...f,...p(i,o,s)]}export function persistTrackedEngineEvidence(e,t){const i=[...e.artifacts.map(n=>({category:"artifacts",evidence:{artifacts:[n],logs:[],metrics:[]},value:n})),...e.logs.map(n=>({category:"logs",evidence:{artifacts:[],logs:[n],metrics:[]},value:n})),...e.metrics.map(n=>({category:"metrics",evidence:{artifacts:[],logs:[],metrics:[n]},value:n})),...e.native===void 0?[]:[{category:"native",evidence:{artifacts:[],logs:[],metrics:[],native:e.native},value:e.native}]],r=new Map;for(const n of i){let a;try{a=l(n.value)}catch(s){t.errors.push(contextualError(`Could not identify ${t.scope} engine ${n.category} evidence`,s));continue}const o=`${n.category}:${a}`,u=(r.get(o)??0)+1;r.set(o,u);const f=t.ledger.countsByCategory[n.category].get(a)??0;if(!(t.mode==="reconcile"&&u<=f))try{const s=persistEngineEvidence({artifactRoot:t.artifactRoot,evidence:n.evidence,productDir:t.productDir,scope:t.scope,task:t.task,...n.category==="artifacts"?{fileEvidenceBudget:$(t.ledger)}:{}});if(s.length===0)throw new Error("Evidence did not produce a persisted artifact");t.references.push(...s),t.ledger.countsByCategory[n.category].set(a,f+1)}catch(s){t.errors.push(contextualError(`Could not persist ${t.scope} engine ${n.category} evidence`,s))}}}export function createEvidenceLedger(e=MAX_ENGINE_FILE_EVIDENCE_BYTES){return{countsByCategory:{artifacts:new Map,logs:new Map,metrics:new Map,native:new Map},fileEvidence:{maximumBytes:Math.min(e,MAX_ENGINE_FILE_EVIDENCE_BYTES),persistedBytes:0}}}export function requireTaskArtifacts(e,t){const i=e.get(t);if(!i)throw new Error(`Artifact state is missing engine task ${t}`);return i}export function requireTaskEvidenceLedger(e,t){const i=e.get(t);if(!i)throw new Error(`Evidence state is missing engine task ${t}`);return i}export function contextualError(e,t){return new Error(`${e}: ${B(t).message}`,{cause:t})}function l(e){const t=JSON.stringify(e);if(typeof t!="string")throw new TypeError("Engine evidence entry must be JSON-serializable");return t}function v(e,t,i){return{name:`${i}-engine-metric-${t.toString()}`,kind:`engine.${i}.metric`,contentType:"application/json",summary:`${e.name}=${e.value.toString()}${e.unit?` ${e.unit}`:""}`,emittedAt:new Date().toISOString(),data:{name:e.name,value:e.value,...e.unit===void 0?{}:{unit:e.unit},...e.dimensions===void 0?{}:{dimensions:e.dimensions}}}}function $(e){return{consume(t){const i=e.fileEvidence.persistedBytes+t;if(i>e.fileEvidence.maximumBytes)throw g(e.fileEvidence.maximumBytes);e.fileEvidence.persistedBytes=i},maximumBytes(){return e.fileEvidence.maximumBytes},remainingBytes(){return e.fileEvidence.maximumBytes-e.fileEvidence.persistedBytes}}}function B(e){return e instanceof Error?e:new Error(String(e))}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EngineTaskExecutionOutcome } from "./engine-execution.js";
|
|
2
|
+
import type { EngineExecutionCleanupFailure } from "./engine-execution-failures.js";
|
|
3
|
+
export interface PreparedNodeSetupCleanup {
|
|
4
|
+
cleanup: () => Promise<void>;
|
|
5
|
+
taskId: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function cleanupPreparedNodeSetups(cleanupStack: readonly Readonly<PreparedNodeSetupCleanup>[]): Promise<EngineExecutionCleanupFailure[]>;
|
|
8
|
+
export declare function applyConsumerNodeSetupCleanupFailures(completedOutcomesByTaskId: Map<string, EngineTaskExecutionOutcome>, cleanupFailures: readonly Readonly<EngineExecutionCleanupFailure>[]): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getRuntimeNodeSetupCleanupFailures as i}from"./setup/runtime-node-setup.js";export async function cleanupPreparedNodeSetups(e){const s=[];for(const{cleanup:u,taskId:n}of[...e].reverse())try{await u()}catch(t){const r=i(t);r.length===0?s.push({error:l(t),owner:"testkit",taskId:n}):s.push(...r.map(o=>({...o,taskId:n})))}return s}export function applyConsumerNodeSetupCleanupFailures(e,s){const u=new Map;for(const n of s){if(n.owner!=="consumer")continue;const t=u.get(n.taskId)??[];t.push(n.error),u.set(n.taskId,t)}for(const[n,t]of u){const r=e.get(n);if(r===void 0)continue;const o=`Runtime node setup consumer cleanup failed: ${t.map(a=>a.message).join("; ")}`;e.set(n,{...r,error:r.error===null?o:`${r.error}; ${o}`,failureDetails:[...r.failureDetails,...t.map(c)],reason:null,status:"failed"})}}function c(e){return{actual:{owner:"consumer"},classification:"product",count:1,key:"runtime_node_setup_consumer_cleanup_failed",kind:"runtime-node-setup-cleanup",message:e.message,...e.stack===void 0?{}:{stack:e.stack},title:"Runtime node setup consumer cleanup failed"}}function l(e){return e instanceof Error?e:new Error(String(e))}
|