@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
package/README.md
ADDED
|
@@ -0,0 +1,1125 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/logo.png" alt="Testkit logo" width="240">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# @gfdelarue/testkit
|
|
6
|
+
|
|
7
|
+
`@gfdelarue/testkit` is the orchestrator and managed distribution for product test
|
|
8
|
+
suites. It discovers `*.testkit.ts` files, infers suite ownership from the
|
|
9
|
+
filesystem, starts local services, provisions Docker-managed local Postgres
|
|
10
|
+
databases, schedules suites, and collects results and artifacts.
|
|
11
|
+
|
|
12
|
+
Testkit exists to replace false confidence with inspectable execution evidence.
|
|
13
|
+
It cannot prove that an entire application works. It can make narrower claims
|
|
14
|
+
that deserve trust: these tests genuinely executed; these were the runtimes,
|
|
15
|
+
fixtures, and inputs supplied to the run; this is what passed, failed, was
|
|
16
|
+
skipped, or did not run; and this is the evidence behind the result. Testkit
|
|
17
|
+
retains provenance, logs, and verifiable artifacts so those claims can be
|
|
18
|
+
audited rather than accepted on the strength of a green check mark.
|
|
19
|
+
|
|
20
|
+
Configure Testkit with an optional repo-root `testkit.config.ts`.
|
|
21
|
+
|
|
22
|
+
## CI gate
|
|
23
|
+
|
|
24
|
+
Give the installed CLI one stable package script and use that script locally and
|
|
25
|
+
in CI:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"scripts": {
|
|
30
|
+
"testkit": "testkit run"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm ci
|
|
37
|
+
npm run testkit
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The command exits zero only when at least one test file completed and every
|
|
41
|
+
required file passed. Test failures, infrastructure failures, interrupted or
|
|
42
|
+
not-run files, an all-skipped selection, and an empty selection all fail the
|
|
43
|
+
gate. `npm run testkit -- --allow-empty` is an explicit escape hatch for a job
|
|
44
|
+
whose empty selection is intentional; it should not be the default CI command.
|
|
45
|
+
|
|
46
|
+
Testkit writes the immutable, verifiable run bundle under
|
|
47
|
+
`.testkit/results/runs/<run-id>/`. Upload `.testkit/results` with `if: always()`
|
|
48
|
+
when CI evidence should survive a failed job.
|
|
49
|
+
|
|
50
|
+
Publishing that evidence to Testkit Cloud is an additional explicit step. Set
|
|
51
|
+
`TESTKIT_CLOUD_PROJECT_ID` and the secret `TESTKIT_CLOUD_TOKEN`, then run:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npx testkit cloud publish
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The command verifies the immutable bundle before upload. Ordinary runs never
|
|
58
|
+
contact Cloud, and the presence of `CI` does not authorize publication.
|
|
59
|
+
|
|
60
|
+
## Connect to Cloud
|
|
61
|
+
|
|
62
|
+
For interactive use, approve your CLI through the browser once:
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
npx testkit cloud login
|
|
66
|
+
npx testkit cloud project create
|
|
67
|
+
npx testkit cloud publish --project PROJECT_ID --run RUN_ID
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Login works outside Git. Project creation infers the repository from Git origin
|
|
71
|
+
or accepts `--repository owner/repo`. It resumes after any required provider
|
|
72
|
+
consent. `cloud list`, `cloud show`, and `cloud apply --file` provide discovery,
|
|
73
|
+
settings and product control. See the [Cloud control boundary](docs/testkit-cloud-boundary.md#complete-cloud-control)
|
|
74
|
+
and [complete operation reference](https://github.com/gfdelarue/testkit-cloud/blob/master/docs/cloud-control.md).
|
|
75
|
+
Explicit `TESTKIT_CLOUD_TOKEN` still takes precedence over the saved account.
|
|
76
|
+
|
|
77
|
+
## Execution engines
|
|
78
|
+
|
|
79
|
+
Testkit has three explicit built-in engines rather than one implicit runtime:
|
|
80
|
+
|
|
81
|
+
- `k6` runs `int`, `e2e`, `load`, and `dal` files with native k6
|
|
82
|
+
and xk6-sql semantics.
|
|
83
|
+
- `node-vitest` runs purpose-built `data` and `contract` files with Node and
|
|
84
|
+
Vitest.
|
|
85
|
+
- `playwright` runs `ui` files with Playwright and a managed Chromium.
|
|
86
|
+
|
|
87
|
+
Every test file must export `defineFile({ engine: "..." })`. The filename
|
|
88
|
+
suffix supplies the public test type; Testkit validates that explicit pair and
|
|
89
|
+
derives a runner profile. It never infers a default engine or falls back to a
|
|
90
|
+
different engine.
|
|
91
|
+
|
|
92
|
+
Consumers declare only `@gfdelarue/testkit`. The root package owns the three
|
|
93
|
+
adapters and exact JavaScript tools it executes. The k6 engine ships as
|
|
94
|
+
separately versioned npm packages built from
|
|
95
|
+
[gfdelarue/testkit-k6](https://github.com/gfdelarue/testkit-k6); npm installs
|
|
96
|
+
the compatible k6 target package and its shared source package through the
|
|
97
|
+
root's optional dependency graph, and Testkit resolves that direct executable
|
|
98
|
+
without consulting `PATH`. Node/Vitest and Playwright resolve their managed public packages from the
|
|
99
|
+
installed Testkit root, so product-local tool copies do not select Testkit's
|
|
100
|
+
runtime.
|
|
101
|
+
|
|
102
|
+
Playwright browser installation is explicit:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
npx @gfdelarue/testkit setup playwright
|
|
106
|
+
npx @gfdelarue/testkit setup playwright --with-deps # CI and fresh hosts
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Setup and execution share one canonical Playwright registry. Normal runs never
|
|
110
|
+
install or download a browser. See [Engine Architecture](docs/engine-architecture.md)
|
|
111
|
+
for the authoring, installation, trust, and failure contracts.
|
|
112
|
+
|
|
113
|
+
Managed commands use the same Execa-backed adapter on hosted Linux and Windows
|
|
114
|
+
runners. Testkit passes exact argv, cwd, and environment values, bounds captured
|
|
115
|
+
output, applies cancellation and timeouts, and asks the platform adapter to
|
|
116
|
+
terminate descendants. Persisted recovery identities remain birth-fenced so a
|
|
117
|
+
later cleanup does not signal a reused process ID.
|
|
118
|
+
|
|
119
|
+
The five k6 target packages share one exact-version source package that carries
|
|
120
|
+
the AGPL corresponding source archive and licenses. Runtime evidence records
|
|
121
|
+
the package name and version and the k6 version observed by executing the
|
|
122
|
+
installed binary. The
|
|
123
|
+
[testkit-k6 README](https://github.com/gfdelarue/testkit-k6#readme) documents
|
|
124
|
+
the reproducible build, the expected executable digests, and the license
|
|
125
|
+
notes.
|
|
126
|
+
|
|
127
|
+
Managed task environment is engine input rather than ambient host state. k6
|
|
128
|
+
suites read it through native `__ENV`; Node/Vitest data and contract callbacks
|
|
129
|
+
read immutable, enumerable `context.env`; and Playwright suites can read the
|
|
130
|
+
same contract from `readPlaywrightContext()?.env`. Managed Node processes also
|
|
131
|
+
expose each value as an immutable, non-enumerable `process.env.KEY` property so
|
|
132
|
+
libraries that read `process.env` directly see it, but non-Node child processes
|
|
133
|
+
do not receive consumer values unless the suite explicitly passes them.
|
|
134
|
+
|
|
135
|
+
Consumer environment names are checked case-insensitively. Every engine
|
|
136
|
+
reserves `APPDATA`, `ComSpec`, `HOME`, `LANG`, `LC_ALL`, `LOCALAPPDATA`, `PATH`,
|
|
137
|
+
`PATHEXT`, `SystemRoot`, `TEMP`, `TMP`, `TMPDIR`, `USERPROFILE`,
|
|
138
|
+
`XDG_CACHE_HOME`, `XDG_CONFIG_HOME`, and `XDG_DATA_HOME`. In addition:
|
|
139
|
+
|
|
140
|
+
- k6 reserves the `K6_` and `TESTKIT_` prefixes plus `BASE_URL` and `GODEBUG`;
|
|
141
|
+
- Node/Vitest reserves the `TESTKIT_` and `VITEST_` prefixes plus `BASE_URL`,
|
|
142
|
+
`FORCE_COLOR`, `NODE_OPTIONS`, `NO_COLOR`, and `UPDATE_SNAPSHOT`;
|
|
143
|
+
- Playwright reserves the `TESTKIT_`, `PLAYWRIGHT_`, `PWTEST_`, and `PW_TEST_`
|
|
144
|
+
prefixes plus `BASE_URL`, `FORCE_COLOR`, `NODE_OPTIONS`, and `NO_COLOR`.
|
|
145
|
+
|
|
146
|
+
Case-variant duplicates and invalid names or NUL-containing values fail instead
|
|
147
|
+
of being normalized. k6 accepts at most 128 consumer entries and 16,384
|
|
148
|
+
environment-block character units. Node/Vitest accepts at most 512 entries and
|
|
149
|
+
4 MiB of UTF-8 key/value data. Playwright accepts at most 512 entries and 2 MiB
|
|
150
|
+
of UTF-8 key/value data. The smaller k6 limit is required because native k6
|
|
151
|
+
receives consumer values in its physical process environment; Node/Vitest and
|
|
152
|
+
Playwright transport them through owned runtime-input files. See
|
|
153
|
+
[Engine Architecture](docs/engine-architecture.md#managed-environment) for the
|
|
154
|
+
complete transport and aggregate-input limits.
|
|
155
|
+
|
|
156
|
+
## Usage
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
cd my-product
|
|
160
|
+
|
|
161
|
+
# Run every testkit-managed suite in batch mode
|
|
162
|
+
npx @gfdelarue/testkit run
|
|
163
|
+
|
|
164
|
+
# Inspect discovered tests without running them
|
|
165
|
+
npx @gfdelarue/testkit discover
|
|
166
|
+
npx @gfdelarue/testkit discover --output-mode verbose
|
|
167
|
+
npx @gfdelarue/testkit discover --json > .testkit/discovery.json
|
|
168
|
+
npx @gfdelarue/testkit discover --output .testkit/discovery.json
|
|
169
|
+
|
|
170
|
+
# Filter by type
|
|
171
|
+
npx @gfdelarue/testkit --type int
|
|
172
|
+
npx @gfdelarue/testkit --type dal
|
|
173
|
+
npx @gfdelarue/testkit --type e2e
|
|
174
|
+
npx @gfdelarue/testkit --type int,e2e,dal
|
|
175
|
+
npx @gfdelarue/testkit --type ui
|
|
176
|
+
|
|
177
|
+
# Parallel file execution
|
|
178
|
+
npx @gfdelarue/testkit --task-concurrency 8
|
|
179
|
+
|
|
180
|
+
# One file-level wall clock budget for every suite file
|
|
181
|
+
npx @gfdelarue/testkit --file-timeout-seconds 60
|
|
182
|
+
|
|
183
|
+
# Specific service / suite
|
|
184
|
+
npx @gfdelarue/testkit --service frontend --type ui -s navigation
|
|
185
|
+
npx @gfdelarue/testkit --service api --type int -s health
|
|
186
|
+
npx @gfdelarue/testkit --type int,e2e,dal -s dal:queries
|
|
187
|
+
|
|
188
|
+
# Exact file
|
|
189
|
+
npx @gfdelarue/testkit --type int --file __testkit__/health.int.testkit.ts
|
|
190
|
+
|
|
191
|
+
# Temporarily ignore repo-declared skip rules
|
|
192
|
+
npx @gfdelarue/testkit --ignore-skip-rules --file __testkit__/billing.int.testkit.ts
|
|
193
|
+
|
|
194
|
+
# Lifecycle
|
|
195
|
+
npx @gfdelarue/testkit status
|
|
196
|
+
npx @gfdelarue/testkit lint
|
|
197
|
+
npx @gfdelarue/testkit destroy
|
|
198
|
+
npx @gfdelarue/testkit cleanup
|
|
199
|
+
npx @gfdelarue/testkit cleanup --resources --dry-run
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
# Diagnostics: refresh or verify the source schema cache
|
|
203
|
+
npx @gfdelarue/testkit db schema refresh --service api
|
|
204
|
+
npx @gfdelarue/testkit db schema verify --service api
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Database cleanup is scoped to the selected product. `cleanup --resources --global`
|
|
208
|
+
is retired; use `--dir <product> cleanup --resources` for each product. After
|
|
209
|
+
deleting a product directory, remove its orphaned containers and volumes
|
|
210
|
+
explicitly through Docker.
|
|
211
|
+
|
|
212
|
+
Use `execution.taskConcurrency` in config and `--task-concurrency` on the CLI.
|
|
213
|
+
`execution.workers`, `presets.nodeNext({ workers })` and `--workers` remain
|
|
214
|
+
deprecated aliases through 0.2.x and will be removed in 0.3.0. When both names are
|
|
215
|
+
provided in config or on the CLI, their values must match. The CLI value overrides
|
|
216
|
+
config after those checks. See the [execution settings](testkit-config-schema.md#execution).
|
|
217
|
+
|
|
218
|
+
Batch `run` output stays intentionally short: one line per completed file,
|
|
219
|
+
concise failure blocks, and a final summary. Service logs, captured runtime
|
|
220
|
+
output, and emitted artifacts are persisted under `.testkit/results/`.
|
|
221
|
+
|
|
222
|
+
Testkit produces an immutable local run bundle and, when requested, a Cloud
|
|
223
|
+
publication receipt. `testkit run` prints `Run ID: <id>` after sealing in text
|
|
224
|
+
output and returns `runId` in `--json` output, for passed and failed runs.
|
|
225
|
+
Publish that exact evidence with `testkit cloud publish --run <id>`. Omitting
|
|
226
|
+
`--run` selects the newest bundle for interactive use. Historical summaries
|
|
227
|
+
and trends belong to Testkit Cloud.
|
|
228
|
+
|
|
229
|
+
For CI, preserve the run exit status and publish the ID from that invocation:
|
|
230
|
+
|
|
231
|
+
```sh
|
|
232
|
+
run_exit=0
|
|
233
|
+
testkit run --json > testkit-run.json || run_exit=$?
|
|
234
|
+
run_id=$(node -e 'const r = JSON.parse(require("node:fs").readFileSync("testkit-run.json", "utf8")); if (typeof r.runId !== "string" || !r.runId) process.exit(1); process.stdout.write(r.runId)') || {
|
|
235
|
+
if [ "$run_exit" -ne 0 ]; then exit "$run_exit"; fi
|
|
236
|
+
exit 1
|
|
237
|
+
}
|
|
238
|
+
publish_exit=0
|
|
239
|
+
testkit cloud publish --run "$run_id" || publish_exit=$?
|
|
240
|
+
if [ "$publish_exit" -ne 0 ]; then
|
|
241
|
+
echo "Cloud publication failed with exit $publish_exit" >&2
|
|
242
|
+
fi
|
|
243
|
+
exit "$run_exit"
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Set `TESTKIT_CLOUD_PROJECT_ID` and `TESTKIT_CLOUD_TOKEN` in the CI environment.
|
|
247
|
+
`TESTKIT_CLOUD_URL`, or the `--url` flag on `cloud publish`, `cloud apply`, and
|
|
248
|
+
`cloud snapshot`, changes the Testkit Cloud origin. The bearer token and the
|
|
249
|
+
run bundle are sent only to that origin, so protect the variable like the
|
|
250
|
+
token itself. Leave it unset to use `https://testkit.cloud`.
|
|
251
|
+
A failed run can still publish a valid sealed bundle. Publication reports its
|
|
252
|
+
own exit status and does not change the test outcome. This recipe reports a
|
|
253
|
+
publication failure and retains the run status as the job status. See the
|
|
254
|
+
[Cloud boundary](docs/testkit-cloud-boundary.md) and
|
|
255
|
+
[breaking-change migration](https://github.com/gfdelarue/testkit/blob/master/docs/release-notes.md).
|
|
256
|
+
|
|
257
|
+
Test execution also maintains a scheduler cache at `.testkit/timings.json`.
|
|
258
|
+
Completed file-level task durations are used to rank future runs with a
|
|
259
|
+
longest-estimated-duration-first policy, so slow files start earlier when
|
|
260
|
+
workers are available. Run artifacts include compact scheduler metadata under
|
|
261
|
+
`planning` so ordering decisions are inspectable.
|
|
262
|
+
|
|
263
|
+
## Tooling Adapters
|
|
264
|
+
|
|
265
|
+
`testkit` also ships tool-specific config helpers so consumer repos do not need
|
|
266
|
+
repo-local runtime policy files just to cooperate with managed runs.
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
// drizzle.config.ts
|
|
270
|
+
import { defineConfig } from "@gfdelarue/testkit/drizzle";
|
|
271
|
+
|
|
272
|
+
export default defineConfig({
|
|
273
|
+
schema: "./src/db/schema/index.ts",
|
|
274
|
+
out: "./src/db/migrations",
|
|
275
|
+
dialect: "postgresql",
|
|
276
|
+
dbCredentials: {
|
|
277
|
+
url: process.env.DATABASE_URL!,
|
|
278
|
+
},
|
|
279
|
+
});
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
```ts
|
|
283
|
+
// vitest.config.ts
|
|
284
|
+
import { defineConfig } from "@gfdelarue/testkit/tooling/vitest";
|
|
285
|
+
|
|
286
|
+
export default defineConfig({
|
|
287
|
+
test: {
|
|
288
|
+
include: ["src/**/*.test.ts"],
|
|
289
|
+
},
|
|
290
|
+
});
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
```ts
|
|
294
|
+
// playwright.config.ts
|
|
295
|
+
import { defineTestkitConfig, devices } from "@gfdelarue/testkit/playwright";
|
|
296
|
+
|
|
297
|
+
export default defineTestkitConfig(
|
|
298
|
+
{
|
|
299
|
+
testDir: "./__testkit__",
|
|
300
|
+
projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
dotenvFiles: [".env.local"],
|
|
304
|
+
},
|
|
305
|
+
);
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
Managed UI suites use `@gfdelarue/testkit/playwright` for Testkit's Playwright
|
|
309
|
+
helpers and re-exported authoring API. They may also import exact public exports
|
|
310
|
+
from the managed `@playwright/test`, `playwright`, and `playwright-core`
|
|
311
|
+
packages. Testkit pins both runtime resolution and type resolution, so
|
|
312
|
+
product-local Playwright installs cannot split the test registry or supply a
|
|
313
|
+
different compile-time API.
|
|
314
|
+
|
|
315
|
+
For scripts and app-runtime code, `@gfdelarue/testkit/env` provides shared helpers
|
|
316
|
+
for managed runtime detection, dotenv loading, and local-database safety:
|
|
317
|
+
|
|
318
|
+
```ts
|
|
319
|
+
import { assertLocalDatabaseUrl, loadDotenvFiles, shouldLoadDotenv } from "@gfdelarue/testkit/env";
|
|
320
|
+
|
|
321
|
+
if (shouldLoadDotenv()) {
|
|
322
|
+
loadDotenvFiles({ files: [".env", ".env.local"] });
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
assertLocalDatabaseUrl(process.env, "seed.ts");
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Setup
|
|
329
|
+
|
|
330
|
+
See the [configuration schema](testkit-config-schema.md) for the complete,
|
|
331
|
+
strict `testkit.config.ts` contract.
|
|
332
|
+
|
|
333
|
+
Create `testkit.config.ts` at repo root:
|
|
334
|
+
|
|
335
|
+
```ts
|
|
336
|
+
import { app, database, defineConfig, toolchain } from "@gfdelarue/testkit/config";
|
|
337
|
+
|
|
338
|
+
export default defineConfig({
|
|
339
|
+
execution: {
|
|
340
|
+
taskConcurrency: 8,
|
|
341
|
+
fileTimeoutSeconds: 60,
|
|
342
|
+
},
|
|
343
|
+
lint: {
|
|
344
|
+
rules: {
|
|
345
|
+
unitTestBoundaries: true,
|
|
346
|
+
},
|
|
347
|
+
},
|
|
348
|
+
fingerprints: {
|
|
349
|
+
exclude: ["next-env.d.ts"],
|
|
350
|
+
},
|
|
351
|
+
toolchains: {
|
|
352
|
+
frontendNode: toolchain.node({
|
|
353
|
+
cwd: "frontend",
|
|
354
|
+
detect: "auto",
|
|
355
|
+
install: "download",
|
|
356
|
+
}),
|
|
357
|
+
},
|
|
358
|
+
services: {
|
|
359
|
+
api: app.node({
|
|
360
|
+
cwd: ".",
|
|
361
|
+
entry: "src/index.ts",
|
|
362
|
+
port: 3004,
|
|
363
|
+
envFiles: [".env.testkit"],
|
|
364
|
+
database: database.postgres({
|
|
365
|
+
runtimeConnections: 20,
|
|
366
|
+
sourceSchema: database.schema.fromEnv("PRODUCTION_DATABASE_URL"),
|
|
367
|
+
template: {
|
|
368
|
+
inputs: ["db/schema.sql", "scripts/seed.ts"],
|
|
369
|
+
migrate: [{ kind: "sql-file", path: "db/schema.sql" }],
|
|
370
|
+
seed: [{ kind: "command", run: "npm run db:seed" }],
|
|
371
|
+
verify: [{ kind: "module", target: "src/testkit/verify-seed.ts#verifySeed" }],
|
|
372
|
+
},
|
|
373
|
+
}),
|
|
374
|
+
runtime: {
|
|
375
|
+
instances: 1,
|
|
376
|
+
maxConcurrentTasks: 4,
|
|
377
|
+
},
|
|
378
|
+
}),
|
|
379
|
+
frontend: app.next({
|
|
380
|
+
cwd: "frontend",
|
|
381
|
+
mode: "start",
|
|
382
|
+
port: 3000,
|
|
383
|
+
dependsOn: ["api"],
|
|
384
|
+
envFiles: ["frontend/.env.testkit"],
|
|
385
|
+
env: {
|
|
386
|
+
values: {
|
|
387
|
+
NEXT_PUBLIC_API_URL: "{baseUrl:api}",
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
runtime: {
|
|
391
|
+
instances: 1,
|
|
392
|
+
maxConcurrentTasks: 2,
|
|
393
|
+
toolchain: "frontendNode",
|
|
394
|
+
},
|
|
395
|
+
}),
|
|
396
|
+
},
|
|
397
|
+
});
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
Every test file declares its execution engine and any file-local scheduling
|
|
401
|
+
metadata next to the test:
|
|
402
|
+
|
|
403
|
+
```ts
|
|
404
|
+
import { defineFile } from "@gfdelarue/testkit";
|
|
405
|
+
|
|
406
|
+
export const testkit = defineFile({
|
|
407
|
+
engine: "k6",
|
|
408
|
+
skip: "Billing is currently unavailable locally",
|
|
409
|
+
locks: ["global-worker-loop"],
|
|
410
|
+
});
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
The engine value is a required literal. The supported public authoring paths
|
|
414
|
+
are `@gfdelarue/testkit/k6`, `@gfdelarue/testkit/node-vitest/data`,
|
|
415
|
+
`@gfdelarue/testkit/node-vitest/contract`, and `@gfdelarue/testkit/playwright`.
|
|
416
|
+
Node/Vitest and Playwright suites may also import exact public APIs directly
|
|
417
|
+
from Testkit's managed `vitest`, `@playwright/test`, `playwright`, and
|
|
418
|
+
`playwright-core` packages.
|
|
419
|
+
There are no legacy aliases or implicit-runner compatibility paths.
|
|
420
|
+
|
|
421
|
+
`testkit.config.ts` is optional for simple repos, but it is the primary escape hatch
|
|
422
|
+
for:
|
|
423
|
+
|
|
424
|
+
- worker count and per-file runtime budget
|
|
425
|
+
- per-file wall clock timeout budget
|
|
426
|
+
- multi-service graphs
|
|
427
|
+
- local runtime instance counts
|
|
428
|
+
- per-runtime concurrent task caps
|
|
429
|
+
- repo-managed Node toolchains for prepare/start commands
|
|
430
|
+
- one-time runtime preparation steps for stable shared servers
|
|
431
|
+
- local DB binding configuration
|
|
432
|
+
- source-backed schema verification
|
|
433
|
+
- template database migrate / seed / verify stages
|
|
434
|
+
- explicit per-file or per-suite locks
|
|
435
|
+
- named HTTP suite profiles
|
|
436
|
+
- repo-level fingerprint include/exclude policy
|
|
437
|
+
- repo-declared suite/file skip policies with explicit reasons
|
|
438
|
+
|
|
439
|
+
`runtime.prepare` is the generic build-once hook for shared runtimes. It runs
|
|
440
|
+
once per runtime generation before local services start, fingerprints declared
|
|
441
|
+
inputs, and writes cache state under the service runtime directory. This is the
|
|
442
|
+
right way to move expensive browser targets from `next dev` / watch mode to
|
|
443
|
+
stable build-and-start flows.
|
|
444
|
+
|
|
445
|
+
Setup steps (`runtime.prepare`, database `template`, and other Testkit-run
|
|
446
|
+
Node commands) inherit `NODE_OPTIONS`. `TESTKIT_SETUP_NODE_OPTIONS` appends
|
|
447
|
+
extra flags to `NODE_OPTIONS` for those steps only, for example a larger heap
|
|
448
|
+
for a heavy migration. Anything preloaded through it runs inside your product's
|
|
449
|
+
setup processes, so set it deliberately.
|
|
450
|
+
|
|
451
|
+
Testkit-owned Docker resources are labelled at creation time so they can be
|
|
452
|
+
found again even if product-local `.testkit` state is deleted. `testkit destroy`
|
|
453
|
+
removes labelled resources for the current product after service state is
|
|
454
|
+
destroyed. `testkit cleanup --resources` cleans stale resources for the current
|
|
455
|
+
product. Both commands filter Docker inventory by the product ownership label
|
|
456
|
+
and preserve other products, including idle caches. Host-local Postgres data
|
|
457
|
+
lives in a Testkit-labelled named Docker
|
|
458
|
+
volume instead of an image-declared anonymous volume, so cleanup can account for
|
|
459
|
+
and remove it safely. Each created volume receives a never-reused random
|
|
460
|
+
generation in both its name and labels; cleanup re-inspects the complete
|
|
461
|
+
generation immediately before Docker's name-based removal. Docker has no
|
|
462
|
+
immutable volume ID or conditional-delete API, so direct Docker-daemon
|
|
463
|
+
principals are part of the host trust boundary and must not replace that
|
|
464
|
+
unguessable name during the final removal call. Testkit serializes database
|
|
465
|
+
mutations for the same product; independent products can proceed concurrently.
|
|
466
|
+
Use `cleanup --resources --dry-run` to preview the selected product's cleanup.
|
|
467
|
+
|
|
468
|
+
`database.template` is the database-side equivalent for reusable template DB
|
|
469
|
+
state. When `database.sourceSchema` is configured, Testkit treats the configured
|
|
470
|
+
source database as the schema source of truth. A normal `testkit run` resolves a
|
|
471
|
+
commit-aware source schema cache under
|
|
472
|
+
`.testkit/db/<service>/source-schemas/`, applies that cached schema to the local
|
|
473
|
+
template DB, runs local template setup, and verifies that the replayed local
|
|
474
|
+
schema still matches the source dump. If local replay differs, Testkit refreshes
|
|
475
|
+
from the source once for the current cache key and retries. If it still differs,
|
|
476
|
+
the run fails with schema diagnostics under `.testkit/results/schema`.
|
|
477
|
+
|
|
478
|
+
Source schema cache keys are derived automatically from repo state:
|
|
479
|
+
|
|
480
|
+
- clean git worktrees use `commits/<sha>`
|
|
481
|
+
- dirty git worktrees use `dirty/<sha>-<fingerprint>`
|
|
482
|
+
- non-git directories use `nogit/<fingerprint>`
|
|
483
|
+
|
|
484
|
+
Dirty worktree fingerprints compare the complete index to `HEAD`, then compare
|
|
485
|
+
the physical worktree bytes, node types, and executable modes to the index.
|
|
486
|
+
This intentionally detects changes hidden by Git stat flags, sparse checkout,
|
|
487
|
+
or clean/smudge and EOL normalization. For untracked files, repository
|
|
488
|
+
`.gitignore` files are respected; host-global excludes, `core.excludesFile`, and
|
|
489
|
+
`.git/info/exclude` do not alter Testkit's cache identity.
|
|
490
|
+
|
|
491
|
+
Fingerprint Git commands disable replacement objects and optional locks and do
|
|
492
|
+
not read system or user Git configuration. Git path records are decoded from
|
|
493
|
+
their byte-preserving quoted form and must be valid UTF-8. Uninitialized
|
|
494
|
+
gitlinks and special filesystem nodes fail explicitly instead of being assigned
|
|
495
|
+
an incomplete or ambiguous identity. Testkit reads the complete HEAD, index,
|
|
496
|
+
untracked, submodule, and physical snapshot twice and fails if the observations
|
|
497
|
+
differ.
|
|
498
|
+
|
|
499
|
+
Physical reads open regular files by descriptor and verify every pathname
|
|
500
|
+
component before and after use; on POSIX, ancestor directory descriptors remain
|
|
501
|
+
open during the read. Node does not expose a portable `openat`/Windows reparse-
|
|
502
|
+
handle traversal API, so this detects ordinary replacement races but is not a
|
|
503
|
+
security boundary against a same-user adversary able to perform a perfectly
|
|
504
|
+
timed replace-and-restore ABA attack. Run Testkit against source trees that are
|
|
505
|
+
not concurrently controlled by an untrusted local process.
|
|
506
|
+
|
|
507
|
+
Testkit-owned outputs are always excluded from fingerprints: `.testkit/`,
|
|
508
|
+
and `.next-testkit/`. `testkit.config.ts` is normal repo
|
|
509
|
+
configuration and is not excluded automatically. For user-managed generated
|
|
510
|
+
files, add repo-level `fingerprints.exclude` patterns;
|
|
511
|
+
`fingerprints.include` can opt specific paths back in below an excluded
|
|
512
|
+
directory, including through wildcard directory patterns. Fingerprint patterns
|
|
513
|
+
use `/` as the only separator; a single backslash is rejected when the config
|
|
514
|
+
loads. A doubled backslash addresses a literal POSIX backslash in a filename
|
|
515
|
+
(for example, `"fixtures\\\\literal.txt"` in `testkit.config.ts` source).
|
|
516
|
+
|
|
517
|
+
Branch names and worktree paths are recorded as metadata but do not affect clean
|
|
518
|
+
commit cache keys, so branch renames and clean worktrees at the same commit
|
|
519
|
+
reuse the same source schema. Dirty worktrees are isolated by content
|
|
520
|
+
fingerprint so local experiments cannot overwrite a clean commit baseline.
|
|
521
|
+
|
|
522
|
+
Template setup executes in three explicit phases:
|
|
523
|
+
|
|
524
|
+
- `migrate`
|
|
525
|
+
- `seed`
|
|
526
|
+
- `verify`
|
|
527
|
+
|
|
528
|
+
Schema drift is checked after each successful `migrate` and `seed` step, and
|
|
529
|
+
`verify` only runs once local replay matches the source schema. Source refreshes
|
|
530
|
+
use Dockerized `pg_dump --schema-only --no-owner --no-privileges`, so
|
|
531
|
+
seed/reference data is never written into the baseline and host `pg_dump`
|
|
532
|
+
installations are not used. Keep schema-changing setup in its own step where
|
|
533
|
+
possible; a single command that changes schema and then fails before exiting
|
|
534
|
+
cannot be refreshed at the midpoint.
|
|
535
|
+
|
|
536
|
+
Source schema refreshes are intentionally single-connection and pooler-safe.
|
|
537
|
+
If a Neon pooled source URL is configured, Testkit rewrites it to the matching
|
|
538
|
+
direct Neon endpoint before running Dockerized `pg_dump` and records the
|
|
539
|
+
original/resolved host classifications beside the resolved cache entry. Unknown
|
|
540
|
+
PgBouncer/pooler URLs fail closed; configure a direct source URL for those
|
|
541
|
+
providers. Concurrent refreshes for the same service and cache key are
|
|
542
|
+
serialized with a cache-local lock so multiple Testkit processes do not
|
|
543
|
+
stampede the source database. Testkit also maintains
|
|
544
|
+
`.testkit/db/<service>/source-schemas/index.json` and prunes old inactive cache
|
|
545
|
+
entries automatically.
|
|
546
|
+
|
|
547
|
+
For most repos, prefer declarative step objects directly inside
|
|
548
|
+
`database.postgres({ template: ... })` and `runtime.prepare.steps`.
|
|
549
|
+
The supported shapes are:
|
|
550
|
+
|
|
551
|
+
- `{ kind: "command", run: "..." }`
|
|
552
|
+
- `{ kind: "sql-file", path: "..." }`
|
|
553
|
+
- `{ kind: "module", target: "file.ts#exportName" }`
|
|
554
|
+
|
|
555
|
+
Local files and ordinary external packages remain valid module targets.
|
|
556
|
+
Testkit-owned `@gfdelarue/testkit` targets are validated against Testkit's exact
|
|
557
|
+
configured-step module registry while config is loaded, so a misspelled or
|
|
558
|
+
private Testkit subpath fails before preparation or database setup starts.
|
|
559
|
+
|
|
560
|
+
`runtime.toolchain` is the first-class way to make those prepare/start commands
|
|
561
|
+
run under the correct Node toolchain instead of whatever `node`/`npm` happened
|
|
562
|
+
to launch `testkit`. Node toolchains support:
|
|
563
|
+
|
|
564
|
+
- host verification mode: `install: "require-host"`
|
|
565
|
+
- cached repo-local provisioning mode: `install: "download"`
|
|
566
|
+
- auto-detection from:
|
|
567
|
+
- `package.json#volta.node`
|
|
568
|
+
- `.nvmrc`
|
|
569
|
+
- `.node-version`
|
|
570
|
+
- `.tool-versions` (`nodejs`)
|
|
571
|
+
- `package.json#engines.node`
|
|
572
|
+
- `package.json#volta.npm`
|
|
573
|
+
- `package.json#packageManager`
|
|
574
|
+
- `package.json#engines.npm`
|
|
575
|
+
|
|
576
|
+
Downloaded toolchains resolve only through Testkit's target-specific trusted
|
|
577
|
+
Node release manifest. The archive URL, compressed size, SHA-256, archive
|
|
578
|
+
shape, unpacked size, and complete installed-tree digest are fixed before any
|
|
579
|
+
download. An unlisted version or platform fails closed. The verified cache is
|
|
580
|
+
kept under `.testkit/_toolchains/node`; external cache redirects, linked cache
|
|
581
|
+
ancestors, modified installed content, and escaping executable links are
|
|
582
|
+
rejected. `runtime.toolchain.cwd` is always a normalized product-relative path
|
|
583
|
+
and cannot contain a parent-directory segment. The trusted official Linux Node
|
|
584
|
+
archives are glibc builds; `install: "download"` fails before fetch or cache
|
|
585
|
+
mutation on musl instead of pretending those binaries are compatible.
|
|
586
|
+
|
|
587
|
+
Example:
|
|
588
|
+
|
|
589
|
+
```ts
|
|
590
|
+
toolchains: {
|
|
591
|
+
frontendNode: toolchain.node({
|
|
592
|
+
cwd: "frontend",
|
|
593
|
+
detect: "auto",
|
|
594
|
+
install: "download",
|
|
595
|
+
}),
|
|
596
|
+
},
|
|
597
|
+
services: {
|
|
598
|
+
frontend: app.next({
|
|
599
|
+
cwd: "frontend",
|
|
600
|
+
port: 3000,
|
|
601
|
+
runtime: {
|
|
602
|
+
toolchain: "frontendNode",
|
|
603
|
+
},
|
|
604
|
+
}),
|
|
605
|
+
}
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
Every terminal run is sealed under `.testkit/results/runs/<run-id>/` with a
|
|
609
|
+
canonical `run.json`, `provenance.json`, `manifest.json`, and the run's exact
|
|
610
|
+
artifact/log/setup files. Payloads are SHA-256 addressed under
|
|
611
|
+
`.testkit/results/objects/sha256`, so repeated bytes are deduplicated without
|
|
612
|
+
removing their logical per-run paths. `.testkit/results/latest.json` remains a
|
|
613
|
+
convenience projection; it is not the historical authority.
|
|
614
|
+
|
|
615
|
+
Use the artifact archive config to opt into pruning or atomic publication to
|
|
616
|
+
an external directory. Local retention is indefinite by default:
|
|
617
|
+
|
|
618
|
+
```ts
|
|
619
|
+
export default defineConfig({
|
|
620
|
+
artifacts: {
|
|
621
|
+
retention: {
|
|
622
|
+
maxRuns: 50,
|
|
623
|
+
maxAgeDays: 30,
|
|
624
|
+
preserveSuites: ["ui:performance"],
|
|
625
|
+
},
|
|
626
|
+
publication: {
|
|
627
|
+
directory: "/var/lib/testkit-run-archive",
|
|
628
|
+
required: true,
|
|
629
|
+
},
|
|
630
|
+
},
|
|
631
|
+
services: {
|
|
632
|
+
// ...
|
|
633
|
+
},
|
|
634
|
+
});
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
Retention decisions and publication receipts are recorded under
|
|
638
|
+
`.testkit/results/retention` and `.testkit/results/publications`. A required
|
|
639
|
+
publication failure fails the command but leaves the verified local bundle in
|
|
640
|
+
place. Discover and verify retained evidence with:
|
|
641
|
+
|
|
642
|
+
```sh
|
|
643
|
+
testkit artifacts --list --json
|
|
644
|
+
testkit artifacts --run <run-id> --verify --json
|
|
645
|
+
testkit artifacts --run <run-id> path/to/test.testkit.ts --json
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
Programmatic consumers can import `listRunBundles`, `loadRunBundleArtifact`,
|
|
649
|
+
`loadRunBundleManifest`, and `verifyRunBundle` from
|
|
650
|
+
`@gfdelarue/testkit/workspace`.
|
|
651
|
+
|
|
652
|
+
The run bundle is also the boundary for Testkit Cloud. The local runner never
|
|
653
|
+
reads regression state or mutates GitHub. See
|
|
654
|
+
[`docs/testkit-cloud-boundary.md`](docs/testkit-cloud-boundary.md) for ownership,
|
|
655
|
+
ingestion, and migration rules.
|
|
656
|
+
|
|
657
|
+
Use `testkit cloud snapshot` to read versioned Cloud regression state. Apply
|
|
658
|
+
reviewed mutations from a file with `testkit cloud apply --file commands.json`;
|
|
659
|
+
the file must contain a schema version, idempotency key, expected snapshot
|
|
660
|
+
version, and commands.
|
|
661
|
+
|
|
662
|
+
## Authoring
|
|
663
|
+
|
|
664
|
+
### Node setup beside a test
|
|
665
|
+
|
|
666
|
+
A test such as `tests/webhook.int.testkit.ts` can have a sibling
|
|
667
|
+
`tests/webhook.int.testkit.setup.mjs`. Testkit runs its named `setup` export,
|
|
668
|
+
or its default export, before starting the test engine:
|
|
669
|
+
|
|
670
|
+
```js
|
|
671
|
+
// tests/webhook.int.testkit.setup.mjs
|
|
672
|
+
export async function setup({ sidecars }) {
|
|
673
|
+
const capture = await sidecars.httpCapture({ path: "/webhook" });
|
|
674
|
+
return {
|
|
675
|
+
data: { webhookUrl: capture.url, requestsUrl: capture.requestsUrl },
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
Setup runs in a Node worker thread with its own JavaScript state. It can use
|
|
681
|
+
Node APIs, prepare external resources, and start HTTP capture listeners.
|
|
682
|
+
The context contains `deadlineMs`, `signal`, `env`, `leaseDir`, `productDir`,
|
|
683
|
+
`serviceName`, `testFile`, and `sidecars`. The worker shares the host process's
|
|
684
|
+
permissions. It is not a sandbox for untrusted code.
|
|
685
|
+
|
|
686
|
+
Return plain JSON, or `{ data, cleanup }` with an optional cleanup function.
|
|
687
|
+
Testkit passes the data to the engine as `setupData` and records it with the
|
|
688
|
+
setup module path and sidecar handles. Bare `null` or `undefined`, and a
|
|
689
|
+
cleanup-only result, give empty data. `{ data: null }` preserves `null`.
|
|
690
|
+
Data must encode to at most 1 MiB of JSON. Invalid data reports its JSON path,
|
|
691
|
+
such as `$.items[1]`, without invoking property getters.
|
|
692
|
+
|
|
693
|
+
Setup shares the task's absolute deadline. On failure or cancellation, Testkit
|
|
694
|
+
runs registered cleanup and closes its sidecars. Once setup succeeds, those
|
|
695
|
+
resources remain available until task cleanup. Cleanup callbacks run in reverse
|
|
696
|
+
registration order. The runner uses the task timeout for cleanup, capped at
|
|
697
|
+
60 seconds. A hung worker is terminated so it cannot keep its listeners open.
|
|
698
|
+
|
|
699
|
+
Thrown setup errors, deadline expiry, and invalid data fail the task with the
|
|
700
|
+
setup module path. Consumer cleanup errors fail the task; Testkit cleanup or
|
|
701
|
+
worker failures count as infrastructure failures. Cleanup remains idempotent.
|
|
702
|
+
HTTP capture retains at most 100 requests by default, configurable up to 1,000.
|
|
703
|
+
Each body defaults to 1 MiB, configurable up to 8 MiB, and retained bodies total
|
|
704
|
+
at most 8 MiB per listener. A setup can create up to 16 listeners, each with at
|
|
705
|
+
most 256 connections.
|
|
706
|
+
|
|
707
|
+
Discovery tries sibling `.setup.mjs`, sibling `.setup.js`, then the matching
|
|
708
|
+
`.mjs` and `.js` files in `__setup__`, in that order. For the example above,
|
|
709
|
+
the fallback is `tests/__setup__/webhook.int.testkit.mjs`.
|
|
710
|
+
|
|
711
|
+
### HTTP suites
|
|
712
|
+
|
|
713
|
+
```ts
|
|
714
|
+
import { defineFile } from "@gfdelarue/testkit";
|
|
715
|
+
import { defineHttpSuite, expect } from "@gfdelarue/testkit/k6";
|
|
716
|
+
|
|
717
|
+
export const testkit = defineFile({ engine: "k6" });
|
|
718
|
+
|
|
719
|
+
const suite = defineHttpSuite(({ rawReq }) => {
|
|
720
|
+
const response = rawReq.get("/health");
|
|
721
|
+
expect.status(response, 200, "health returns 200");
|
|
722
|
+
});
|
|
723
|
+
|
|
724
|
+
export const options = suite.options;
|
|
725
|
+
export const setup = suite.setup;
|
|
726
|
+
export default suite.exec;
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
Testkit helper suites are authored as native-shaped k6 modules: re-export the
|
|
730
|
+
helper's `options` and `setup`, and default-export its `exec` function. Testkit
|
|
731
|
+
does not inspect source text or invent k6 lifecycle exports.
|
|
732
|
+
|
|
733
|
+
Suite-owned authentication lives in the k6 module. `auth.setup` receives the
|
|
734
|
+
resolved env and a raw HTTP client, returns a session bundle of named actors,
|
|
735
|
+
and `auth.headers` turns the bundle plus the requested actor into headers:
|
|
736
|
+
|
|
737
|
+
```ts
|
|
738
|
+
import { defineFile } from "@gfdelarue/testkit";
|
|
739
|
+
import { defineHttpSuite } from "@gfdelarue/testkit/k6";
|
|
740
|
+
|
|
741
|
+
import { organizationHeaders, sessionAuth } from "../helpers/session.js";
|
|
742
|
+
|
|
743
|
+
export const testkit = defineFile({ engine: "k6" });
|
|
744
|
+
|
|
745
|
+
const suite = defineHttpSuite(
|
|
746
|
+
{
|
|
747
|
+
auth: sessionAuth(["reviewer", "outsider"]),
|
|
748
|
+
rawHeaders: organizationHeaders,
|
|
749
|
+
},
|
|
750
|
+
({ actor, actors, req }) => {
|
|
751
|
+
req.get("/api/auth/session");
|
|
752
|
+
req("GET", "/api/auth/session");
|
|
753
|
+
actor?.req.get("/api/auth/session");
|
|
754
|
+
req.as("outsider").get("/api/auth/session");
|
|
755
|
+
actors.get("reviewer").rawReq.get("/api/auth/session");
|
|
756
|
+
},
|
|
757
|
+
);
|
|
758
|
+
|
|
759
|
+
export const options = suite.options;
|
|
760
|
+
export const setup = suite.setup;
|
|
761
|
+
export default suite.exec;
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
```ts
|
|
765
|
+
// __testkit__/helpers/session.ts
|
|
766
|
+
import type { AuthAdapter, AuthSessionBundle } from "@gfdelarue/testkit/k6";
|
|
767
|
+
|
|
768
|
+
export function sessionAuth(actorNames: string[]): AuthAdapter<AuthSessionBundle> {
|
|
769
|
+
return {
|
|
770
|
+
setup({ env, http }) {
|
|
771
|
+
const actors = Object.fromEntries(
|
|
772
|
+
actorNames.map((actorName, actorIndex) => [
|
|
773
|
+
actorName,
|
|
774
|
+
{ actorIndex, actorName, session: login(http, env.BASE, actorName) },
|
|
775
|
+
]),
|
|
776
|
+
);
|
|
777
|
+
return { actors, primaryActor: actorNames[0] };
|
|
778
|
+
},
|
|
779
|
+
headers(bundle, { actor }) {
|
|
780
|
+
const session = bundle?.actors[actor ?? bundle.primaryActor ?? ""]?.session;
|
|
781
|
+
return session ? { Authorization: `Bearer ${session.jwt}` } : {};
|
|
782
|
+
},
|
|
783
|
+
};
|
|
784
|
+
}
|
|
785
|
+
```
|
|
786
|
+
|
|
787
|
+
Named HTTP profiles in `testkit.config.ts` stay JSON-only for k6 suites, because
|
|
788
|
+
the orchestrator serializes them across the Node/k6 boundary. Node/Vitest data
|
|
789
|
+
profiles are loaded in-process and may define `auth` and header functions
|
|
790
|
+
directly. See the [config reference](testkit-config-schema.md#profileshttp).
|
|
791
|
+
|
|
792
|
+
DAL suites:
|
|
793
|
+
|
|
794
|
+
```ts
|
|
795
|
+
import { defineFile } from "@gfdelarue/testkit";
|
|
796
|
+
import { defineDalFixtures, defineDalSuite } from "@gfdelarue/testkit/k6";
|
|
797
|
+
|
|
798
|
+
export const testkit = defineFile({ engine: "k6" });
|
|
799
|
+
|
|
800
|
+
const fixtures = defineDalFixtures(({ db, fixtureScope }) => ({
|
|
801
|
+
widget() {
|
|
802
|
+
return fixtureScope.seed("widget", "primary", { name: "Primary Widget" }, () => {
|
|
803
|
+
const widgetId = fixtureScope.id("widget");
|
|
804
|
+
db.exec(`
|
|
805
|
+
INSERT INTO widgets (id, name)
|
|
806
|
+
VALUES ('${widgetId}', 'Primary Widget')
|
|
807
|
+
`);
|
|
808
|
+
return { widgetId };
|
|
809
|
+
});
|
|
810
|
+
},
|
|
811
|
+
}));
|
|
812
|
+
|
|
813
|
+
const suite = defineDalSuite({ fixtures }, ({ db, fixtureScope, fixtures }) => {
|
|
814
|
+
const widget = fixtures.widget();
|
|
815
|
+
db.query(`select id from widgets where id = '${widget.widgetId}'`);
|
|
816
|
+
fixtureScope.records();
|
|
817
|
+
});
|
|
818
|
+
|
|
819
|
+
export const options = suite.options;
|
|
820
|
+
export const setup = suite.setup;
|
|
821
|
+
export default suite.exec;
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
DAL files for the same service database are serialized by default to avoid
|
|
825
|
+
exhausting Postgres connection limits during highly parallel runs.
|
|
826
|
+
Runtime services also reserve a configurable Postgres connection budget for each
|
|
827
|
+
active runtime slot. Use `database.postgres({ runtimeConnections })` for the
|
|
828
|
+
service pool size and `database.postgres({ maxConnections,
|
|
829
|
+
reservedConnections })` for the backing Postgres capacity.
|
|
830
|
+
|
|
831
|
+
`defineDalFixtures(...)` is the package-owned DAL seeding model. It gives every
|
|
832
|
+
suite a deterministic `fixtureScope` with:
|
|
833
|
+
|
|
834
|
+
- `fixtureScope.id(label)` / `uuid(label)`
|
|
835
|
+
- `fixtureScope.slug(label)`
|
|
836
|
+
- `fixtureScope.email(label)`
|
|
837
|
+
- `fixtureScope.string(label, options)`
|
|
838
|
+
- `fixtureScope.token(label)`
|
|
839
|
+
- `fixtureScope.seed(kind, key, signature, create)`
|
|
840
|
+
- `fixtureScope.records()`
|
|
841
|
+
|
|
842
|
+
`testkit` enforces strict fixture behavior:
|
|
843
|
+
|
|
844
|
+
- one logical fixture per `kind + key`
|
|
845
|
+
- identical reseeds reuse the same seeded value
|
|
846
|
+
- conflicting reseeds fail immediately
|
|
847
|
+
- dependency cycles fail immediately
|
|
848
|
+
- seeded fixture records are persisted as a `testkit.dal-fixtures` artifact
|
|
849
|
+
|
|
850
|
+
The first-class k6 authoring namespace:
|
|
851
|
+
|
|
852
|
+
```ts
|
|
853
|
+
import { checks, expect, parse, waitFor } from "@gfdelarue/testkit/k6";
|
|
854
|
+
|
|
855
|
+
const suite = defineHttpSuite(({ actor, rawReq, req }) => {
|
|
856
|
+
const me = req.get("/api/v1/me");
|
|
857
|
+
expect.status(me, 200, "authenticated session loads");
|
|
858
|
+
expect.json(me, (body) => typeof body.data?.id === "string", "response includes user id");
|
|
859
|
+
|
|
860
|
+
checks.authGate(rawReq, "sessions", {
|
|
861
|
+
get: ["/api/v1/sessions"],
|
|
862
|
+
});
|
|
863
|
+
|
|
864
|
+
actor?.rawHeaders();
|
|
865
|
+
|
|
866
|
+
const upload = req.multipart.post("/api/v1/uploads", {
|
|
867
|
+
fields: { name: "fixture" },
|
|
868
|
+
files: [
|
|
869
|
+
{
|
|
870
|
+
field: "file",
|
|
871
|
+
data: "hello",
|
|
872
|
+
filename: "fixture.txt",
|
|
873
|
+
contentType: "text/plain",
|
|
874
|
+
},
|
|
875
|
+
],
|
|
876
|
+
});
|
|
877
|
+
|
|
878
|
+
expect.status(upload, 201, "upload is accepted");
|
|
879
|
+
parse.safeJson(upload);
|
|
880
|
+
});
|
|
881
|
+
```
|
|
882
|
+
|
|
883
|
+
Use native k6 imports for checks, groups, metrics, and low-level HTTP:
|
|
884
|
+
|
|
885
|
+
```ts
|
|
886
|
+
import { check, group } from "k6";
|
|
887
|
+
import http from "k6/http";
|
|
888
|
+
import { Rate, Trend } from "k6/metrics";
|
|
889
|
+
```
|
|
890
|
+
|
|
891
|
+
The [k6 authoring guide](https://github.com/gfdelarue/testkit/blob/master/docs/k6-authoring-layer.md)
|
|
892
|
+
describes the optional evidence recorder and migration from retired Testkit
|
|
893
|
+
primitive, metric, option, and assertion aliases.
|
|
894
|
+
|
|
895
|
+
`waitFor()` consumes the file budget configured by `execution.fileTimeoutSeconds`.
|
|
896
|
+
Consumers should not set local timeout values in test files.
|
|
897
|
+
|
|
898
|
+
```ts
|
|
899
|
+
import { parse, waitFor } from "@gfdelarue/testkit/k6";
|
|
900
|
+
|
|
901
|
+
const response = waitFor(
|
|
902
|
+
() => req.get("/api/v1/jobs/123"),
|
|
903
|
+
(res) => parse.json(res).data?.status === "completed",
|
|
904
|
+
{ description: "job 123 to complete" },
|
|
905
|
+
);
|
|
906
|
+
```
|
|
907
|
+
|
|
908
|
+
## Discovery
|
|
909
|
+
|
|
910
|
+
`testkit` discovers suites from `__testkit__/` directories.
|
|
911
|
+
|
|
912
|
+
Place each `__testkit__/` directory as a peer of the thing being tested. The
|
|
913
|
+
target is the smallest owned directory or package surface that honestly contains
|
|
914
|
+
the behavior under test. This is a single target-relative rule, not a list of
|
|
915
|
+
allowed or forbidden locations.
|
|
916
|
+
|
|
917
|
+
Examples:
|
|
918
|
+
|
|
919
|
+
- tests for `src/api/routes/*` live in `src/api/routes/__testkit__/*`
|
|
920
|
+
- tests for `src/db/*` live in `src/db/__testkit__/*`
|
|
921
|
+
- tests for `frontend/src/components/layout/*` live in
|
|
922
|
+
`frontend/src/components/layout/__testkit__/*`
|
|
923
|
+
- tests for package-root behavior such as `package.json`, root scripts, release
|
|
924
|
+
shape, or the whole package contract live in `__testkit__/*`
|
|
925
|
+
|
|
926
|
+
Do not put tests in a higher-level `__testkit__/` merely because it is
|
|
927
|
+
convenient. For example, a repository-root `__testkit__/` is appropriate for
|
|
928
|
+
repository/package-level behavior, but it is a dumping ground if it contains
|
|
929
|
+
tests for `src/api/routes/*`, `src/db/*`, or a specific frontend component tree.
|
|
930
|
+
|
|
931
|
+
Do not create child directories inside a `__testkit__/` directory. The
|
|
932
|
+
`__testkit__/` directory already names the owner boundary; additional grouping
|
|
933
|
+
folders create a second, non-production hierarchy that weakens ownership. Use
|
|
934
|
+
clear flat filenames instead, and colocate another `__testkit__/` at a lower
|
|
935
|
+
production owner when a narrower owner exists.
|
|
936
|
+
|
|
937
|
+
Concrete layouts:
|
|
938
|
+
|
|
939
|
+
- `src/api/routes/__testkit__/auth-me.int.testkit.ts`
|
|
940
|
+
- `src/db/__testkit__/sessions-count-type.dal.testkit.ts`
|
|
941
|
+
- `frontend/src/components/layout/__testkit__/navigation.ui.testkit.ts`
|
|
942
|
+
- `src/internal/handler/repos/__testkit__/crud.int.testkit.ts`
|
|
943
|
+
|
|
944
|
+
`testkit` uses these suffixes automatically:
|
|
945
|
+
|
|
946
|
+
- `*.int.testkit.ts`
|
|
947
|
+
- `*.e2e.testkit.ts`
|
|
948
|
+
- `*.contract.testkit.ts`
|
|
949
|
+
- `*.data.testkit.ts`
|
|
950
|
+
- `*.dal.testkit.ts`
|
|
951
|
+
- `*.load.testkit.ts`
|
|
952
|
+
- `*.ui.testkit.ts`
|
|
953
|
+
|
|
954
|
+
The suffix never chooses an engine. Each discovered file must also contain one
|
|
955
|
+
root-package `defineFile(...)` declaration with a supported literal engine.
|
|
956
|
+
Unsupported pairs fail discovery; for example, a `*.ui.testkit.ts` file cannot
|
|
957
|
+
declare `engine: "k6"`.
|
|
958
|
+
|
|
959
|
+
See [docs/test-types.md](docs/test-types.md) for the canonical type model.
|
|
960
|
+
`*.contract.testkit.ts` files are Node-backed service/runtime contract suites.
|
|
961
|
+
They use `contractScenario(...)` from
|
|
962
|
+
`@gfdelarue/testkit/node-vitest/contract`, declare `engine: "node-vitest"`, and run
|
|
963
|
+
through the `node-vitest-contract` profile for checks that need Node APIs but
|
|
964
|
+
are not data-flow evidence suites. They are native Vitest suites:
|
|
965
|
+
`contractScenario(...)` is the managed-context convenience, while direct public
|
|
966
|
+
Vitest runner APIs remain valid for behavior such as `test.skip(...)` and
|
|
967
|
+
`test.todo(...)`.
|
|
968
|
+
|
|
969
|
+
`*.data.testkit.ts` files are Testkit data-flow/data-contract suites, not raw
|
|
970
|
+
Vitest files with a Testkit suffix. They must use `dataScenario(...)` from
|
|
971
|
+
`@gfdelarue/testkit/node-vitest/data`, declare `engine: "node-vitest"`, and record
|
|
972
|
+
structured data-flow evidence through the data context. Supporting
|
|
973
|
+
`count(...)`/`event(...)` calls are not enough by themselves; model actors,
|
|
974
|
+
systems, records, transitions, external calls, payloads, budgets, cache/LLM/RPC
|
|
975
|
+
usage, or reconciliation evidence. Data suites run through the
|
|
976
|
+
`node-vitest-data` profile. Use `contract` for plain Node assertions and
|
|
977
|
+
Node-side service or protocol contracts, `int` or `e2e` for k6-backed HTTP
|
|
978
|
+
integration, and `ui` when a browser is part of the assertion.
|
|
979
|
+
Data suites use Vitest directly for assertions, hooks, and mocking.
|
|
980
|
+
`dataScenario(...)` owns case registration: `testkit lint` reports native
|
|
981
|
+
registration imports in data suites, and the data runner rejects any case that
|
|
982
|
+
was not registered through the DSL.
|
|
983
|
+
|
|
984
|
+
Ownership is inferred from:
|
|
985
|
+
|
|
986
|
+
- the deepest matching service root from `services.<name>.local.cwd`
|
|
987
|
+
- optional `services.<name>.discovery.roots` overrides for shared-root edge cases
|
|
988
|
+
|
|
989
|
+
Suite names are inferred from the colocated path:
|
|
990
|
+
|
|
991
|
+
- `auth/__testkit__/*.int.testkit.ts` => `auth`
|
|
992
|
+
- `routes/__testkit__/auth-me.int.testkit.ts` => `routes`
|
|
993
|
+
|
|
994
|
+
Discovery is also a first-class CLI/API surface:
|
|
995
|
+
|
|
996
|
+
- `testkit discover`
|
|
997
|
+
- human-first compact output with service -> type -> suite -> file hierarchy
|
|
998
|
+
- `testkit discover --output-mode verbose`
|
|
999
|
+
- explicit paths, IDs, locks, dependencies, and skip reasons
|
|
1000
|
+
- `testkit discover --json`
|
|
1001
|
+
- machine-readable output with stable enums, canonical paths, and summary data
|
|
1002
|
+
- `testkit discover --output .testkit/discovery.json`
|
|
1003
|
+
- writes the same machine-readable JSON document to a file artifact
|
|
1004
|
+
|
|
1005
|
+
Compact mode prefers derived human labels such as `Agent Configs Auth Gate`
|
|
1006
|
+
instead of printing long file paths as the primary row label. Exact paths remain
|
|
1007
|
+
available in verbose and JSON output.
|
|
1008
|
+
|
|
1009
|
+
The public API is exported from `@gfdelarue/testkit/workspace`:
|
|
1010
|
+
|
|
1011
|
+
```ts
|
|
1012
|
+
import { discoverTests } from "@gfdelarue/testkit/workspace";
|
|
1013
|
+
|
|
1014
|
+
const result = await discoverTests({
|
|
1015
|
+
dir: process.cwd(),
|
|
1016
|
+
runnableOnly: true,
|
|
1017
|
+
diagnostics: "report",
|
|
1018
|
+
});
|
|
1019
|
+
```
|
|
1020
|
+
|
|
1021
|
+
JSON and file output are machine-first. Each discovered file carries a stable
|
|
1022
|
+
identifier plus canonical metadata such as:
|
|
1023
|
+
|
|
1024
|
+
- `id`
|
|
1025
|
+
- `path`
|
|
1026
|
+
- `service`
|
|
1027
|
+
- `suiteName`
|
|
1028
|
+
- `testType`
|
|
1029
|
+
- `engineId`
|
|
1030
|
+
- `profileId`
|
|
1031
|
+
- `contract`
|
|
1032
|
+
- `skipped`
|
|
1033
|
+
- `skipReason`
|
|
1034
|
+
- `locks`
|
|
1035
|
+
- `dependsOn`
|
|
1036
|
+
- `displayName`
|
|
1037
|
+
|
|
1038
|
+
For cross-run counts, last outcomes, durations, or trends, use Testkit Cloud.
|
|
1039
|
+
See the [status and history migration](https://github.com/gfdelarue/testkit/blob/master/docs/release-notes.md#local-status-and-history-removal)
|
|
1040
|
+
for the removed discovery fields and consumer migration.
|
|
1041
|
+
|
|
1042
|
+
## Local Databases
|
|
1043
|
+
|
|
1044
|
+
`@gfdelarue/testkit` provisions Docker-managed local Postgres automatically for
|
|
1045
|
+
services that define `database: database.postgres(...)`.
|
|
1046
|
+
|
|
1047
|
+
Docker is also the required Postgres client runtime for Testkit-owned database
|
|
1048
|
+
operations. Testkit runs `psql` and `pg_dump` inside the configured Postgres
|
|
1049
|
+
client image instead of using host-installed binaries, which keeps local runs
|
|
1050
|
+
consistent across Linux, macOS, and native Windows. Override the client image
|
|
1051
|
+
with `TESTKIT_POSTGRES_CLIENT_IMAGE` when needed.
|
|
1052
|
+
|
|
1053
|
+
Client containers for a Testkit-owned database join that database container's
|
|
1054
|
+
network namespace (`--network container:<id>`) and connect over loopback. The
|
|
1055
|
+
route does not depend on the Docker daemon sharing the Testkit process's host
|
|
1056
|
+
network, so template steps, schema snapshots, and `database.steps` helpers work
|
|
1057
|
+
the same under Docker Desktop, rootless Docker, and Docker-in-Docker. Clients
|
|
1058
|
+
for external databases, such as `sourceSchema` URLs, still connect from the
|
|
1059
|
+
platform's host address.
|
|
1060
|
+
|
|
1061
|
+
- normal test runs always use transient host-managed Postgres
|
|
1062
|
+
- template databases are cached
|
|
1063
|
+
- runtime databases are cloned from templates when binding is `per-runtime`
|
|
1064
|
+
- shared databases are reused when binding is `shared`
|
|
1065
|
+
- source schema caches are refreshed only from the configured source database
|
|
1066
|
+
- clean commits, dirty worktrees, and non-git directories get separate source
|
|
1067
|
+
schema cache entries automatically
|
|
1068
|
+
- template fingerprints are derived automatically from env files, source schema
|
|
1069
|
+
cache, migrate/seed config, and repo contents
|
|
1070
|
+
|
|
1071
|
+
`db schema refresh` forces a source database dump into the `.testkit` source
|
|
1072
|
+
schema cache. `db schema verify` prepares local templates and verifies local
|
|
1073
|
+
replay against the cached/refreshed source schema. `--skip-schema-source-verify`
|
|
1074
|
+
is available as a narrow escape hatch when users need to run tests while schema
|
|
1075
|
+
verification is temporarily blocked.
|
|
1076
|
+
|
|
1077
|
+
## Development Tests
|
|
1078
|
+
|
|
1079
|
+
```bash
|
|
1080
|
+
npm test
|
|
1081
|
+
npm run test:unit
|
|
1082
|
+
npm run test:integration
|
|
1083
|
+
npm run test:system
|
|
1084
|
+
npm run test:live
|
|
1085
|
+
npm run test:integration -- fixture-package
|
|
1086
|
+
```
|
|
1087
|
+
|
|
1088
|
+
The four lanes use Vitest directly. Unit tests (source and pure tooling) run in
|
|
1089
|
+
parallel; integration and system files run serially; live tests are explicitly
|
|
1090
|
+
opt-in and serial. Pass ordinary Vitest filters after npm's `--` separator.
|
|
1091
|
+
`npm test` runs the first three lanes and never collects live cases.
|
|
1092
|
+
|
|
1093
|
+
Live tests cover credentials, external services, network-acquired runtimes,
|
|
1094
|
+
alternate toolchains, and Docker/platform matrices. An explicitly selected live
|
|
1095
|
+
test fails clearly when its prerequisites are unavailable; it does not silently
|
|
1096
|
+
skip.
|
|
1097
|
+
|
|
1098
|
+
Repository commands use npm's native timing support, enabled project-wide by
|
|
1099
|
+
the tracked `.npmrc`. Build, lint, and release modes support `help`; release
|
|
1100
|
+
provides `bump` and `check` modes.
|
|
1101
|
+
Every merge to `master` publishes the next patch version. The existing
|
|
1102
|
+
pre-merge CI checks provide verification. The
|
|
1103
|
+
[release workflow](https://github.com/gfdelarue/testkit/blob/master/docs/release-gates.md) tags the merge and publishes through npm
|
|
1104
|
+
trusted publishing; merge a `package.json` bump to start a new minor or major.
|
|
1105
|
+
|
|
1106
|
+
The static audit retains package/lock/runtime policy, engine dependency/import
|
|
1107
|
+
intent, retired engine/product references, minimal repository traversal, and
|
|
1108
|
+
the dependency direction between top-level `src/` modules. The edge table in
|
|
1109
|
+
`scripts/lint/audits/import-direction.ts` mirrors the import graph exactly: an
|
|
1110
|
+
import outside the table fails lint, and so does an entry that no import
|
|
1111
|
+
exercises. Module direction is the one structural rule lint enforces; other
|
|
1112
|
+
implementation-shape audits stay out of lint.
|
|
1113
|
+
|
|
1114
|
+
JavaScript modules under `test/fixtures/**` describe fixture behavior and keep
|
|
1115
|
+
their fixture-owned paths. Outside fixtures, only `bin/testkit.mjs` and the
|
|
1116
|
+
documented raw Node process probe remain `.mjs`; the probe is a program, not a
|
|
1117
|
+
Vitest suite.
|
|
1118
|
+
|
|
1119
|
+
GitHub Actions run a narrow installed Node/Vitest consumer smoke on dedicated
|
|
1120
|
+
Orthrus Ubuntu x64 and Windows x64 self-hosted runners for pull requests from
|
|
1121
|
+
this repository and manual dispatches. Fork pull requests skip this workflow's
|
|
1122
|
+
jobs. Local `npm test`,
|
|
1123
|
+
`npm run test:unit`, `npm run test:integration`, and `npm run test:system` remain
|
|
1124
|
+
the full developer entrypoints. PostgreSQL and Docker compatibility are explicit
|
|
1125
|
+
opt-in dispatcher cases. The smoke workflow is not five-platform release proof.
|