@gfdelarue/testkit 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +68 -0
- package/README.md +1125 -0
- package/bin/testkit-windows-owner-arm64.exe +0 -0
- package/bin/testkit-windows-owner-x64.exe +0 -0
- package/bin/testkit.mjs +60 -0
- package/dist/app/cleanup/index.d.ts +52 -0
- package/dist/app/cleanup/index.js +1 -0
- package/dist/app/cloud/campaigns.d.ts +6 -0
- package/dist/app/cloud/campaigns.js +1 -0
- package/dist/app/cloud/control-actions.d.ts +12 -0
- package/dist/app/cloud/control-actions.js +2 -0
- package/dist/app/cloud/control-links.d.ts +5 -0
- package/dist/app/cloud/control-links.js +1 -0
- package/dist/app/cloud/control-read.d.ts +24 -0
- package/dist/app/cloud/control-read.js +1 -0
- package/dist/app/cloud/control-resources.d.ts +3 -0
- package/dist/app/cloud/control-resources.js +1 -0
- package/dist/app/cloud/control.d.ts +34 -0
- package/dist/app/cloud/control.js +5 -0
- package/dist/app/cloud/credentials.d.ts +11 -0
- package/dist/app/cloud/credentials.js +2 -0
- package/dist/app/cloud/index.d.ts +22 -0
- package/dist/app/cloud/index.js +2 -0
- package/dist/app/cloud/login.d.ts +63 -0
- package/dist/app/cloud/login.js +2 -0
- package/dist/app/cloud/migration/archive.d.ts +13 -0
- package/dist/app/cloud/migration/archive.js +1 -0
- package/dist/app/cloud/migration/commands.d.ts +8 -0
- package/dist/app/cloud/migration/commands.js +1 -0
- package/dist/app/cloud/migration/evidence.d.ts +13 -0
- package/dist/app/cloud/migration/evidence.js +2 -0
- package/dist/app/cloud/migration/files.d.ts +16 -0
- package/dist/app/cloud/migration/files.js +2 -0
- package/dist/app/cloud/migration/index.d.ts +6 -0
- package/dist/app/cloud/migration/index.js +1 -0
- package/dist/app/cloud/migration/journal.d.ts +64 -0
- package/dist/app/cloud/migration/journal.js +1 -0
- package/dist/app/cloud/migration/mapping-dispositions.d.ts +3 -0
- package/dist/app/cloud/migration/mapping-dispositions.js +1 -0
- package/dist/app/cloud/migration/mapping.d.ts +11 -0
- package/dist/app/cloud/migration/mapping.js +2 -0
- package/dist/app/cloud/migration/model.d.ts +175 -0
- package/dist/app/cloud/migration/model.js +1 -0
- package/dist/app/cloud/migration/plan.d.ts +7 -0
- package/dist/app/cloud/migration/plan.js +1 -0
- package/dist/app/cloud/migration/progress.d.ts +19 -0
- package/dist/app/cloud/migration/progress.js +1 -0
- package/dist/app/cloud/migration/reconcile.d.ts +22 -0
- package/dist/app/cloud/migration/reconcile.js +1 -0
- package/dist/app/cloud/migration/reconciliation-spool.d.ts +4 -0
- package/dist/app/cloud/migration/reconciliation-spool.js +1 -0
- package/dist/app/cloud/migration/state.d.ts +15 -0
- package/dist/app/cloud/migration/state.js +1 -0
- package/dist/app/cloud/migration/transfer.d.ts +6 -0
- package/dist/app/cloud/migration/transfer.js +1 -0
- package/dist/app/db-schema/prepare.d.ts +11 -0
- package/dist/app/db-schema/prepare.js +1 -0
- package/dist/app/db-schema/refresh.d.ts +17 -0
- package/dist/app/db-schema/refresh.js +1 -0
- package/dist/app/db-schema/verify.d.ts +11 -0
- package/dist/app/db-schema/verify.js +1 -0
- package/dist/app/destroy/index.d.ts +16 -0
- package/dist/app/destroy/index.js +1 -0
- package/dist/app/discover/index.d.ts +8 -0
- package/dist/app/discover/index.js +2 -0
- package/dist/app/doctor/index.d.ts +17 -0
- package/dist/app/doctor/index.js +1 -0
- package/dist/app/file-selection.d.ts +1 -0
- package/dist/app/file-selection.js +1 -0
- package/dist/app/inspect/artifacts.d.ts +29 -0
- package/dist/app/inspect/artifacts.js +1 -0
- package/dist/app/inspect/index.d.ts +112 -0
- package/dist/app/inspect/index.js +1 -0
- package/dist/app/lint/index.d.ts +28 -0
- package/dist/app/lint/index.js +2 -0
- package/dist/app/lint/native.d.ts +10 -0
- package/dist/app/lint/native.js +1 -0
- package/dist/app/lint/options.d.ts +67 -0
- package/dist/app/lint/options.js +1 -0
- package/dist/app/lint/policy.d.ts +21 -0
- package/dist/app/lint/policy.js +1 -0
- package/dist/app/lint/rules/data.d.ts +3 -0
- package/dist/app/lint/rules/data.js +1 -0
- package/dist/app/lint/rules/engine-imports.d.ts +3 -0
- package/dist/app/lint/rules/engine-imports.js +1 -0
- package/dist/app/lint/rules/syntax.d.ts +4 -0
- package/dist/app/lint/rules/syntax.js +1 -0
- package/dist/app/lint/rules/unit.d.ts +3 -0
- package/dist/app/lint/rules/unit.js +1 -0
- package/dist/app/lint/shared.d.ts +36 -0
- package/dist/app/lint/shared.js +1 -0
- package/dist/app/package-inspection.d.ts +20 -0
- package/dist/app/package-inspection.js +1 -0
- package/dist/app/run/endpoint-readiness.d.ts +43 -0
- package/dist/app/run/endpoint-readiness.js +1 -0
- package/dist/app/run/engine-evidence-persistence.d.ts +39 -0
- package/dist/app/run/engine-evidence-persistence.js +1 -0
- package/dist/app/run/engine-execution-cleanup.d.ts +8 -0
- package/dist/app/run/engine-execution-cleanup.js +1 -0
- package/dist/app/run/engine-execution-failures.d.ts +41 -0
- package/dist/app/run/engine-execution-failures.js +1 -0
- package/dist/app/run/engine-execution-observer.d.ts +21 -0
- package/dist/app/run/engine-execution-observer.js +1 -0
- package/dist/app/run/engine-execution-reporting.d.ts +17 -0
- package/dist/app/run/engine-execution-reporting.js +1 -0
- package/dist/app/run/engine-execution.d.ts +60 -0
- package/dist/app/run/engine-execution.js +1 -0
- package/dist/app/run/engine-orchestration.d.ts +49 -0
- package/dist/app/run/engine-orchestration.js +1 -0
- package/dist/app/run/failure-details.d.ts +36 -0
- package/dist/app/run/failure-details.js +1 -0
- package/dist/app/run/live-run.d.ts +27 -0
- package/dist/app/run/live-run.js +1 -0
- package/dist/app/run/operation-progress.d.ts +13 -0
- package/dist/app/run/operation-progress.js +1 -0
- package/dist/app/run/orchestrator.d.ts +68 -0
- package/dist/app/run/orchestrator.js +1 -0
- package/dist/app/run/planning-types.d.ts +68 -0
- package/dist/app/run/planning-types.js +1 -0
- package/dist/app/run/planning.d.ts +15 -0
- package/dist/app/run/planning.js +1 -0
- package/dist/app/run/playwright-configuration.d.ts +2 -0
- package/dist/app/run/playwright-configuration.js +1 -0
- package/dist/app/run/request.d.ts +30 -0
- package/dist/app/run/request.js +1 -0
- package/dist/app/run/results.d.ts +161 -0
- package/dist/app/run/results.js +1 -0
- package/dist/app/run/run-events.d.ts +144 -0
- package/dist/app/run/run-events.js +1 -0
- package/dist/app/run/run-finalization.d.ts +52 -0
- package/dist/app/run/run-finalization.js +1 -0
- package/dist/app/run/run-guards.d.ts +3 -0
- package/dist/app/run/run-guards.js +3 -0
- package/dist/app/run/runtime-failures.d.ts +18 -0
- package/dist/app/run/runtime-failures.js +1 -0
- package/dist/app/run/runtime-fixtures.d.ts +2 -0
- package/dist/app/run/runtime-fixtures.js +1 -0
- package/dist/app/run/runtime-task-types.d.ts +20 -0
- package/dist/app/run/runtime-task-types.js +1 -0
- package/dist/app/run/scheduler/estimates.d.ts +32 -0
- package/dist/app/run/scheduler/estimates.js +1 -0
- package/dist/app/run/scheduler/identity.d.ts +9 -0
- package/dist/app/run/scheduler/identity.js +1 -0
- package/dist/app/run/scheduler/index.d.ts +124 -0
- package/dist/app/run/scheduler/index.js +1 -0
- package/dist/app/run/scheduler/observations.d.ts +20 -0
- package/dist/app/run/scheduler/observations.js +1 -0
- package/dist/app/run/selection.d.ts +10 -0
- package/dist/app/run/selection.js +1 -0
- package/dist/app/run/setup/runtime-node-setup-errors.d.ts +13 -0
- package/dist/app/run/setup/runtime-node-setup-errors.js +1 -0
- package/dist/app/run/setup/runtime-node-setup-protocol.d.ts +85 -0
- package/dist/app/run/setup/runtime-node-setup-protocol.js +1 -0
- package/dist/app/run/setup/runtime-node-setup-worker.d.ts +1 -0
- package/dist/app/run/setup/runtime-node-setup-worker.js +1 -0
- package/dist/app/run/setup/runtime-node-setup.d.ts +48 -0
- package/dist/app/run/setup/runtime-node-setup.js +3 -0
- package/dist/app/run/task-batches.d.ts +23 -0
- package/dist/app/run/task-batches.js +1 -0
- package/dist/app/run/worker-loop.d.ts +57 -0
- package/dist/app/run/worker-loop.js +1 -0
- package/dist/app/setup/playwright.d.ts +22 -0
- package/dist/app/setup/playwright.js +1 -0
- package/dist/app/status/index.d.ts +7 -0
- package/dist/app/status/index.js +1 -0
- package/dist/app/status/model.d.ts +29 -0
- package/dist/app/status/model.js +1 -0
- package/dist/app/status/runs.d.ts +99 -0
- package/dist/app/status/runs.js +1 -0
- package/dist/app/stop/index.d.ts +14 -0
- package/dist/app/stop/index.js +1 -0
- package/dist/app/typecheck/index.d.ts +61 -0
- package/dist/app/typecheck/index.js +4 -0
- package/dist/app/typecheck/unavailable.d.ts +1 -0
- package/dist/app/typecheck/unavailable.js +1 -0
- package/dist/cli/cloud-apply-help.d.ts +1 -0
- package/dist/cli/cloud-apply-help.js +56 -0
- package/dist/cli/cloud-selection.d.ts +2 -0
- package/dist/cli/cloud-selection.js +3 -0
- package/dist/cli/command-catalog.d.ts +238 -0
- package/dist/cli/command-catalog.js +1 -0
- package/dist/cli/command-flags.d.ts +19 -0
- package/dist/cli/command-flags.js +1 -0
- package/dist/cli/command-registry.d.ts +2 -0
- package/dist/cli/command-registry.js +1 -0
- package/dist/cli/commands/artifacts.d.ts +48 -0
- package/dist/cli/commands/artifacts.js +3 -0
- package/dist/cli/commands/cleanup.d.ts +13 -0
- package/dist/cli/commands/cleanup.js +1 -0
- package/dist/cli/commands/cloud/apply.d.ts +5 -0
- package/dist/cli/commands/cloud/apply.js +1 -0
- package/dist/cli/commands/cloud/campaign/create.d.ts +5 -0
- package/dist/cli/commands/cloud/campaign/create.js +1 -0
- package/dist/cli/commands/cloud/download.d.ts +5 -0
- package/dist/cli/commands/cloud/download.js +1 -0
- package/dist/cli/commands/cloud/list.d.ts +5 -0
- package/dist/cli/commands/cloud/list.js +1 -0
- package/dist/cli/commands/cloud/login.d.ts +13 -0
- package/dist/cli/commands/cloud/login.js +2 -0
- package/dist/cli/commands/cloud/logout.d.ts +7 -0
- package/dist/cli/commands/cloud/logout.js +1 -0
- package/dist/cli/commands/cloud/migrate/apply.d.ts +2 -0
- package/dist/cli/commands/cloud/migrate/apply.js +1 -0
- package/dist/cli/commands/cloud/migrate/plan.d.ts +7 -0
- package/dist/cli/commands/cloud/migrate/plan.js +1 -0
- package/dist/cli/commands/cloud/migrate/progress.d.ts +2 -0
- package/dist/cli/commands/cloud/migrate/progress.js +2 -0
- package/dist/cli/commands/cloud/migrate/reconcile.d.ts +2 -0
- package/dist/cli/commands/cloud/migrate/reconcile.js +1 -0
- package/dist/cli/commands/cloud/policy/preview.d.ts +5 -0
- package/dist/cli/commands/cloud/policy/preview.js +1 -0
- package/dist/cli/commands/cloud/project/create.d.ts +5 -0
- package/dist/cli/commands/cloud/project/create.js +1 -0
- package/dist/cli/commands/cloud/publish.d.ts +7 -0
- package/dist/cli/commands/cloud/publish.js +1 -0
- package/dist/cli/commands/cloud/session/revoke.d.ts +8 -0
- package/dist/cli/commands/cloud/session/revoke.js +1 -0
- package/dist/cli/commands/cloud/show.d.ts +5 -0
- package/dist/cli/commands/cloud/show.js +1 -0
- package/dist/cli/commands/cloud/snapshot.d.ts +5 -0
- package/dist/cli/commands/cloud/snapshot.js +1 -0
- package/dist/cli/commands/cloud/status.d.ts +33 -0
- package/dist/cli/commands/cloud/status.js +1 -0
- package/dist/cli/commands/db/schema/refresh.d.ts +2 -0
- package/dist/cli/commands/db/schema/refresh.js +1 -0
- package/dist/cli/commands/db/schema/verify.d.ts +2 -0
- package/dist/cli/commands/db/schema/verify.js +1 -0
- package/dist/cli/commands/destroy.d.ts +9 -0
- package/dist/cli/commands/destroy.js +1 -0
- package/dist/cli/commands/discover.d.ts +2 -0
- package/dist/cli/commands/discover.js +1 -0
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.js +1 -0
- package/dist/cli/commands/guard/unsafe-entrypoint.d.ts +2 -0
- package/dist/cli/commands/guard/unsafe-entrypoint.js +2 -0
- package/dist/cli/commands/lint.d.ts +2 -0
- package/dist/cli/commands/lint.js +1 -0
- package/dist/cli/commands/run/status.d.ts +5 -0
- package/dist/cli/commands/run/status.js +1 -0
- package/dist/cli/commands/run/stop.d.ts +7 -0
- package/dist/cli/commands/run/stop.js +1 -0
- package/dist/cli/commands/run.d.ts +9 -0
- package/dist/cli/commands/run.js +1 -0
- package/dist/cli/commands/setup/playwright.d.ts +2 -0
- package/dist/cli/commands/setup/playwright.js +1 -0
- package/dist/cli/commands/status.d.ts +5 -0
- package/dist/cli/commands/status.js +1 -0
- package/dist/cli/commands/stop.d.ts +12 -0
- package/dist/cli/commands/stop.js +1 -0
- package/dist/cli/commands/typecheck.d.ts +2 -0
- package/dist/cli/commands/typecheck.js +1 -0
- package/dist/cli/commands/workspace.d.ts +2 -0
- package/dist/cli/commands/workspace.js +1 -0
- package/dist/cli/entrypoint.d.ts +1 -0
- package/dist/cli/entrypoint.js +1 -0
- package/dist/cli/framework/command.d.ts +21 -0
- package/dist/cli/framework/command.js +1 -0
- package/dist/cli/framework/definitions.d.ts +100 -0
- package/dist/cli/framework/definitions.js +1 -0
- package/dist/cli/framework/errors.d.ts +6 -0
- package/dist/cli/framework/errors.js +1 -0
- package/dist/cli/framework/execute.d.ts +13 -0
- package/dist/cli/framework/execute.js +6 -0
- package/dist/cli/framework/help.d.ts +11 -0
- package/dist/cli/framework/help.js +8 -0
- package/dist/cli/framework/index.d.ts +3 -0
- package/dist/cli/framework/index.js +1 -0
- package/dist/cli/framework/parser.d.ts +6 -0
- package/dist/cli/framework/parser.js +1 -0
- package/dist/cli/index.d.ts +4 -0
- package/dist/cli/index.js +1 -0
- package/dist/cli/json-errors.d.ts +3 -0
- package/dist/cli/json-errors.js +1 -0
- package/dist/cli/operations/db/schema/refresh/operation.d.ts +6 -0
- package/dist/cli/operations/db/schema/refresh/operation.js +1 -0
- package/dist/cli/operations/db/schema/verify/operation.d.ts +6 -0
- package/dist/cli/operations/db/schema/verify/operation.js +1 -0
- package/dist/cli/operations/run/operation.d.ts +24 -0
- package/dist/cli/operations/run/operation.js +2 -0
- package/dist/cli/process-signal.d.ts +1 -0
- package/dist/cli/process-signal.js +1 -0
- package/dist/cli/renderers/artifact-preview.d.ts +4 -0
- package/dist/cli/renderers/artifact-preview.js +1 -0
- package/dist/cli/renderers/cleanup/format.d.ts +14 -0
- package/dist/cli/renderers/cleanup/format.js +1 -0
- package/dist/cli/renderers/db-schema/text.d.ts +4 -0
- package/dist/cli/renderers/db-schema/text.js +1 -0
- package/dist/cli/renderers/destroy/text.d.ts +4 -0
- package/dist/cli/renderers/destroy/text.js +1 -0
- package/dist/cli/renderers/discover/report.d.ts +7 -0
- package/dist/cli/renderers/discover/report.js +1 -0
- package/dist/cli/renderers/discover/text.d.ts +3 -0
- package/dist/cli/renderers/discover/text.js +1 -0
- package/dist/cli/renderers/doctor/text.d.ts +2 -0
- package/dist/cli/renderers/doctor/text.js +1 -0
- package/dist/cli/renderers/lint/text.d.ts +2 -0
- package/dist/cli/renderers/lint/text.js +1 -0
- package/dist/cli/renderers/run/events.d.ts +8 -0
- package/dist/cli/renderers/run/events.js +2 -0
- package/dist/cli/renderers/run/failure.d.ts +8 -0
- package/dist/cli/renderers/run/failure.js +1 -0
- package/dist/cli/renderers/run/formatting.d.ts +79 -0
- package/dist/cli/renderers/run/formatting.js +1 -0
- package/dist/cli/renderers/run/status.d.ts +6 -0
- package/dist/cli/renderers/run/status.js +1 -0
- package/dist/cli/renderers/run/text-reporter.d.ts +19 -0
- package/dist/cli/renderers/run/text-reporter.js +23 -0
- package/dist/cli/renderers/status/text.d.ts +2 -0
- package/dist/cli/renderers/status/text.js +1 -0
- package/dist/cli/renderers/stop/text.d.ts +7 -0
- package/dist/cli/renderers/stop/text.js +1 -0
- package/dist/cli/renderers/typecheck/text.d.ts +2 -0
- package/dist/cli/renderers/typecheck/text.js +1 -0
- package/dist/cli/terminal/colors.d.ts +10 -0
- package/dist/cli/terminal/colors.js +1 -0
- package/dist/cli/terminal/layout.d.ts +11 -0
- package/dist/cli/terminal/layout.js +2 -0
- package/dist/cli/version-drift.d.ts +25 -0
- package/dist/cli/version-drift.js +7 -0
- package/dist/cloud/account.d.ts +34 -0
- package/dist/cloud/account.js +1 -0
- package/dist/cloud/archive-contract.d.ts +1 -0
- package/dist/cloud/archive-contract.js +1 -0
- package/dist/cloud/archive.d.ts +12 -0
- package/dist/cloud/archive.js +1 -0
- package/dist/cloud/campaigns.d.ts +200 -0
- package/dist/cloud/campaigns.js +2 -0
- package/dist/cloud/client.d.ts +68 -0
- package/dist/cloud/client.js +4 -0
- package/dist/cloud/download.d.ts +5 -0
- package/dist/cloud/download.js +1 -0
- package/dist/cloud/historical-contract.d.ts +224 -0
- package/dist/cloud/historical-contract.js +1 -0
- package/dist/cloud/historical-json.d.ts +16 -0
- package/dist/cloud/historical-json.js +1 -0
- package/dist/cloud/historical.d.ts +69 -0
- package/dist/cloud/historical.js +1 -0
- package/dist/cloud/pagination.d.ts +5 -0
- package/dist/cloud/pagination.js +1 -0
- package/dist/cloud/transport.d.ts +18 -0
- package/dist/cloud/transport.js +1 -0
- package/dist/config/authoring/build-config-contract.d.ts +27 -0
- package/dist/config/authoring/build-config-contract.js +1 -0
- package/dist/config/authoring/configured-step-contract.d.ts +18 -0
- package/dist/config/authoring/configured-step-contract.js +1 -0
- package/dist/config/authoring/http-execution-contract.d.ts +70 -0
- package/dist/config/authoring/http-execution-contract.js +1 -0
- package/dist/config/authoring/http-methods.d.ts +18 -0
- package/dist/config/authoring/http-methods.js +1 -0
- package/dist/config/authoring/index.d.ts +376 -0
- package/dist/config/authoring/index.js +1 -0
- package/dist/config/authoring/preset-env.d.ts +19 -0
- package/dist/config/authoring/preset-env.js +1 -0
- package/dist/config/authoring/runtime.d.ts +64 -0
- package/dist/config/authoring/runtime.js +1 -0
- package/dist/config/loader/cloud.d.ts +2 -0
- package/dist/config/loader/cloud.js +1 -0
- package/dist/config/loader/config-loader.d.ts +9 -0
- package/dist/config/loader/config-loader.js +1 -0
- package/dist/config/loader/database-materialization.d.ts +19 -0
- package/dist/config/loader/database-materialization.js +1 -0
- package/dist/config/loader/database-roles.d.ts +2 -0
- package/dist/config/loader/database-roles.js +1 -0
- package/dist/config/loader/database.d.ts +55 -0
- package/dist/config/loader/database.js +1 -0
- package/dist/config/loader/decode-discovery.d.ts +5 -0
- package/dist/config/loader/decode-discovery.js +1 -0
- package/dist/config/loader/decode-execution.d.ts +9 -0
- package/dist/config/loader/decode-execution.js +1 -0
- package/dist/config/loader/dependencies.d.ts +7 -0
- package/dist/config/loader/dependencies.js +1 -0
- package/dist/config/loader/discover-tests.d.ts +101 -0
- package/dist/config/loader/discover-tests.js +1 -0
- package/dist/config/loader/discovery-summary.d.ts +29 -0
- package/dist/config/loader/discovery-summary.js +1 -0
- package/dist/config/loader/discovery.d.ts +54 -0
- package/dist/config/loader/discovery.js +2 -0
- package/dist/config/loader/env.d.ts +4 -0
- package/dist/config/loader/env.js +1 -0
- package/dist/config/loader/execution-model.d.ts +16 -0
- package/dist/config/loader/execution-model.js +1 -0
- package/dist/config/loader/file-metadata.d.ts +19 -0
- package/dist/config/loader/file-metadata.js +1 -0
- package/dist/config/loader/index.d.ts +10 -0
- package/dist/config/loader/index.js +1 -0
- package/dist/config/loader/load.d.ts +89 -0
- package/dist/config/loader/load.js +1 -0
- package/dist/config/loader/managed-configs.d.ts +21 -0
- package/dist/config/loader/managed-configs.js +1 -0
- package/dist/config/loader/path-policy.d.ts +9 -0
- package/dist/config/loader/path-policy.js +1 -0
- package/dist/config/loader/paths.d.ts +5 -0
- package/dist/config/loader/paths.js +1 -0
- package/dist/config/loader/runtime-isolation.d.ts +44 -0
- package/dist/config/loader/runtime-isolation.js +1 -0
- package/dist/config/loader/runtime.d.ts +25 -0
- package/dist/config/loader/runtime.js +1 -0
- package/dist/config/loader/skip-config.d.ts +44 -0
- package/dist/config/loader/skip-config.js +1 -0
- package/dist/config/loader/validation.d.ts +16 -0
- package/dist/config/loader/validation.js +1 -0
- package/dist/config/loader/values.d.ts +4 -0
- package/dist/config/loader/values.js +1 -0
- package/dist/config/runtime/build-assets.d.ts +6 -0
- package/dist/config/runtime/build-assets.js +1 -0
- package/dist/config/runtime/env/index.d.ts +35 -0
- package/dist/config/runtime/env/index.js +1 -0
- package/dist/config/runtime/next-runtime-tsconfig.d.ts +6 -0
- package/dist/config/runtime/next-runtime-tsconfig.js +2 -0
- package/dist/database/activity-gate.d.ts +22 -0
- package/dist/database/activity-gate.js +1 -0
- package/dist/database/admin.d.ts +31 -0
- package/dist/database/admin.js +2 -0
- package/dist/database/cleanup.d.ts +36 -0
- package/dist/database/cleanup.js +1 -0
- package/dist/database/configured-steps.d.ts +27 -0
- package/dist/database/configured-steps.js +1 -0
- package/dist/database/constants.d.ts +11 -0
- package/dist/database/constants.js +1 -0
- package/dist/database/docker.d.ts +65 -0
- package/dist/database/docker.js +5 -0
- package/dist/database/drizzle/index.d.ts +13 -0
- package/dist/database/drizzle/index.js +1 -0
- package/dist/database/fingerprint.d.ts +12 -0
- package/dist/database/fingerprint.js +1 -0
- package/dist/database/index.d.ts +41 -0
- package/dist/database/index.js +1 -0
- package/dist/database/local-postgres.d.ts +71 -0
- package/dist/database/local-postgres.js +2 -0
- package/dist/database/naming.d.ts +17 -0
- package/dist/database/naming.js +1 -0
- package/dist/database/postgres/index.d.ts +71 -0
- package/dist/database/postgres/index.js +2 -0
- package/dist/database/progress.d.ts +6 -0
- package/dist/database/progress.js +1 -0
- package/dist/database/roles.d.ts +19 -0
- package/dist/database/roles.js +41 -0
- package/dist/database/runtime-config.d.ts +16 -0
- package/dist/database/runtime-config.js +1 -0
- package/dist/database/runtime-reservations.d.ts +19 -0
- package/dist/database/runtime-reservations.js +1 -0
- package/dist/database/schema-operations.d.ts +18 -0
- package/dist/database/schema-operations.js +1 -0
- package/dist/database/schema-source.d.ts +93 -0
- package/dist/database/schema-source.js +3 -0
- package/dist/database/source-refresh-lock.d.ts +8 -0
- package/dist/database/source-refresh-lock.js +1 -0
- package/dist/database/source-url.d.ts +22 -0
- package/dist/database/source-url.js +2 -0
- package/dist/database/state-files.d.ts +13 -0
- package/dist/database/state-files.js +1 -0
- package/dist/database/state.d.ts +26 -0
- package/dist/database/state.js +1 -0
- package/dist/database/steps.d.ts +16 -0
- package/dist/database/steps.js +4 -0
- package/dist/database/template-steps.d.ts +35 -0
- package/dist/database/template-steps.js +4 -0
- package/dist/domain/file-timeout.d.ts +28 -0
- package/dist/domain/file-timeout.js +1 -0
- package/dist/domain/identifiers.d.ts +9 -0
- package/dist/domain/identifiers.js +1 -0
- package/dist/domain/operation-display.d.ts +10 -0
- package/dist/domain/operation-display.js +1 -0
- package/dist/domain/operation-reason.d.ts +5 -0
- package/dist/domain/operation-reason.js +1 -0
- package/dist/domain/postgres-route.d.ts +4 -0
- package/dist/domain/postgres-route.js +1 -0
- package/dist/domain/runtime-identity.d.ts +1 -0
- package/dist/domain/runtime-identity.js +1 -0
- package/dist/domain/runtime-isolation-contract.d.ts +5 -0
- package/dist/domain/runtime-isolation-contract.js +1 -0
- package/dist/domain/service-name.d.ts +2 -0
- package/dist/domain/service-name.js +1 -0
- package/dist/domain/suite-selection.d.ts +20 -0
- package/dist/domain/suite-selection.js +1 -0
- package/dist/domain/test-outcomes.d.ts +3 -0
- package/dist/domain/test-outcomes.js +1 -0
- package/dist/domain/test-types.d.ts +16 -0
- package/dist/domain/test-types.js +1 -0
- package/dist/engines/adapters/evidence-files.d.ts +32 -0
- package/dist/engines/adapters/evidence-files.js +1 -0
- package/dist/engines/adapters/evidence-identity.d.ts +12 -0
- package/dist/engines/adapters/evidence-identity.js +1 -0
- package/dist/engines/adapters/execution.d.ts +38 -0
- package/dist/engines/adapters/execution.js +1 -0
- package/dist/engines/adapters/native-report.d.ts +25 -0
- package/dist/engines/adapters/native-report.js +1 -0
- package/dist/engines/adapters/workspace.d.ts +4 -0
- package/dist/engines/adapters/workspace.js +1 -0
- package/dist/engines/api/capabilities.d.ts +31 -0
- package/dist/engines/api/capabilities.js +1 -0
- package/dist/engines/api/evidence.d.ts +38 -0
- package/dist/engines/api/evidence.js +1 -0
- package/dist/engines/api/execution-observer.d.ts +8 -0
- package/dist/engines/api/execution-observer.js +1 -0
- package/dist/engines/api/execution-scope.d.ts +17 -0
- package/dist/engines/api/execution-scope.js +1 -0
- package/dist/engines/api/execution.d.ts +99 -0
- package/dist/engines/api/execution.js +1 -0
- package/dist/engines/api/index.d.ts +5 -0
- package/dist/engines/api/index.js +1 -0
- package/dist/engines/api/k6-runtime-input.d.ts +26 -0
- package/dist/engines/api/k6-runtime-input.js +1 -0
- package/dist/engines/api/runtime-artifact.d.ts +19 -0
- package/dist/engines/api/runtime-artifact.js +1 -0
- package/dist/engines/bundle-cache.d.ts +32 -0
- package/dist/engines/bundle-cache.js +1 -0
- package/dist/engines/catalog.d.ts +32 -0
- package/dist/engines/catalog.js +1 -0
- package/dist/engines/contracts/fixture-manifest.d.ts +34 -0
- package/dist/engines/contracts/fixture-manifest.js +1 -0
- package/dist/engines/contracts/json-bounds.d.ts +36 -0
- package/dist/engines/contracts/json-bounds.js +2 -0
- package/dist/engines/contracts/k6-repository-configuration.d.ts +12 -0
- package/dist/engines/contracts/k6-repository-configuration.js +1 -0
- package/dist/engines/contracts/test-context.d.ts +15 -0
- package/dist/engines/contracts/test-context.js +1 -0
- package/dist/engines/definitions.d.ts +15 -0
- package/dist/engines/definitions.js +1 -0
- package/dist/engines/factory.d.ts +6 -0
- package/dist/engines/factory.js +1 -0
- package/dist/engines/installation-catalog.d.ts +27 -0
- package/dist/engines/installation-catalog.js +1 -0
- package/dist/engines/installations/k6.d.ts +98 -0
- package/dist/engines/installations/k6.js +1 -0
- package/dist/engines/installations/node-vitest.d.ts +47 -0
- package/dist/engines/installations/node-vitest.js +1 -0
- package/dist/engines/installations/package-resolution.d.ts +51 -0
- package/dist/engines/installations/package-resolution.js +1 -0
- package/dist/engines/installations/playwright-resolution-child.d.ts +1 -0
- package/dist/engines/installations/playwright-resolution-child.js +2 -0
- package/dist/engines/installations/playwright.d.ts +85 -0
- package/dist/engines/installations/playwright.js +1 -0
- package/dist/engines/installations/types.d.ts +10 -0
- package/dist/engines/installations/types.js +1 -0
- package/dist/engines/k6/adapter/bundle.d.ts +25 -0
- package/dist/engines/k6/adapter/bundle.js +112 -0
- package/dist/engines/k6/adapter/evidence.d.ts +15 -0
- package/dist/engines/k6/adapter/evidence.js +4 -0
- package/dist/engines/k6/adapter/executor.d.ts +13 -0
- package/dist/engines/k6/adapter/executor.js +1 -0
- package/dist/engines/k6/adapter/index.d.ts +1 -0
- package/dist/engines/k6/adapter/index.js +1 -0
- package/dist/engines/k6/adapter/input.d.ts +21 -0
- package/dist/engines/k6/adapter/input.js +1 -0
- package/dist/engines/k6/adapter/native-summary.d.ts +11 -0
- package/dist/engines/k6/adapter/native-summary.js +1 -0
- package/dist/engines/k6/adapter/repository-configuration.d.ts +2 -0
- package/dist/engines/k6/adapter/repository-configuration.js +1 -0
- package/dist/engines/k6/authoring-type-paths.d.ts +3 -0
- package/dist/engines/k6/authoring-type-paths.js +1 -0
- package/dist/engines/k6/runtime/ambient-types/bundle-manifest.json +146 -0
- package/dist/engines/k6/runtime/ambient-types/k6/LICENSE +21 -0
- package/dist/engines/k6/runtime/ambient-types/k6/browser/index.d.ts +6332 -0
- package/dist/engines/k6/runtime/ambient-types/k6/crypto/index.d.ts +218 -0
- package/dist/engines/k6/runtime/ambient-types/k6/data/index.d.ts +16 -0
- package/dist/engines/k6/runtime/ambient-types/k6/encoding/index.d.ts +46 -0
- package/dist/engines/k6/runtime/ambient-types/k6/execution/index.d.ts +127 -0
- package/dist/engines/k6/runtime/ambient-types/k6/experimental/csv/index.d.ts +96 -0
- package/dist/engines/k6/runtime/ambient-types/k6/experimental/fs/index.d.ts +104 -0
- package/dist/engines/k6/runtime/ambient-types/k6/experimental/redis/index.d.ts +821 -0
- package/dist/engines/k6/runtime/ambient-types/k6/experimental/streams/index.d.ts +198 -0
- package/dist/engines/k6/runtime/ambient-types/k6/global.d.ts +83 -0
- package/dist/engines/k6/runtime/ambient-types/k6/html/index.d.ts +1325 -0
- package/dist/engines/k6/runtime/ambient-types/k6/http/index.d.ts +806 -0
- package/dist/engines/k6/runtime/ambient-types/k6/index.d.ts +126 -0
- package/dist/engines/k6/runtime/ambient-types/k6/metrics/index.d.ts +66 -0
- package/dist/engines/k6/runtime/ambient-types/k6/net/grpc/index.d.ts +247 -0
- package/dist/engines/k6/runtime/ambient-types/k6/options/index.d.ts +459 -0
- package/dist/engines/k6/runtime/ambient-types/k6/package.json +79 -0
- package/dist/engines/k6/runtime/ambient-types/k6/secrets/index.d.ts +36 -0
- package/dist/engines/k6/runtime/ambient-types/k6/timers/index.d.ts +47 -0
- package/dist/engines/k6/runtime/ambient-types/k6/websockets/index.d.ts +324 -0
- package/dist/engines/k6/runtime/ambient-types/k6/ws/index.d.ts +283 -0
- package/dist/engines/k6/runtime/ambient-types/xk6-sql/LICENSE +201 -0
- package/dist/engines/k6/runtime/ambient-types/xk6-sql/index.d.ts +397 -0
- package/dist/engines/k6/runtime/ambient-types/xk6-sql/package.json +15 -0
- package/dist/engines/k6/runtime/artifacts.d.ts +2 -0
- package/dist/engines/k6/runtime/artifacts.js +1 -0
- package/dist/engines/k6/runtime/checks.d.ts +17 -0
- package/dist/engines/k6/runtime/checks.js +1 -0
- package/dist/engines/k6/runtime/dal-fixtures.d.ts +24 -0
- package/dist/engines/k6/runtime/dal-fixtures.js +1 -0
- package/dist/engines/k6/runtime/dal-suite.d.ts +24 -0
- package/dist/engines/k6/runtime/dal-suite.js +1 -0
- package/dist/engines/k6/runtime/dal.d.ts +10 -0
- package/dist/engines/k6/runtime/dal.js +1 -0
- package/dist/engines/k6/runtime/fixtures.d.ts +3 -0
- package/dist/engines/k6/runtime/fixtures.js +1 -0
- package/dist/engines/k6/runtime/http-assertions.d.ts +19 -0
- package/dist/engines/k6/runtime/http-assertions.js +1 -0
- package/dist/engines/k6/runtime/http-checks.d.ts +19 -0
- package/dist/engines/k6/runtime/http-checks.js +1 -0
- package/dist/engines/k6/runtime/http-suite-runtime.d.ts +103 -0
- package/dist/engines/k6/runtime/http-suite-runtime.js +1 -0
- package/dist/engines/k6/runtime/http.d.ts +15 -0
- package/dist/engines/k6/runtime/http.js +1 -0
- package/dist/engines/k6/runtime/index.d.ts +11 -0
- package/dist/engines/k6/runtime/index.js +1 -0
- package/dist/engines/k6/runtime/input.d.ts +3 -0
- package/dist/engines/k6/runtime/input.js +1 -0
- package/dist/engines/k6/runtime/k6-repository-configuration.d.ts +9 -0
- package/dist/engines/k6/runtime/k6-repository-configuration.js +1 -0
- package/dist/engines/k6/runtime/node-setup.d.ts +13 -0
- package/dist/engines/k6/runtime/node-setup.js +1 -0
- package/dist/engines/k6/runtime/runtime-globals.d.ts +10 -0
- package/dist/engines/k6/runtime/runtime-globals.js +1 -0
- package/dist/engines/k6/runtime/runtime.d.ts +54 -0
- package/dist/engines/k6/runtime/runtime.js +1 -0
- package/dist/engines/k6/runtime/shared/assertion-details.d.ts +19 -0
- package/dist/engines/k6/runtime/shared/assertion-details.js +2 -0
- package/dist/engines/k6/runtime/shared/db-normalization.d.ts +19 -0
- package/dist/engines/k6/runtime/shared/db-normalization.js +1 -0
- package/dist/engines/k6/runtime/shared/error-body.d.ts +3 -0
- package/dist/engines/k6/runtime/shared/error-body.js +1 -0
- package/dist/engines/k6/runtime/shared/file-data.d.ts +1 -0
- package/dist/engines/k6/runtime/shared/file-data.js +1 -0
- package/dist/engines/k6/runtime/shared/fixture-engine.d.ts +8 -0
- package/dist/engines/k6/runtime/shared/fixture-engine.js +2 -0
- package/dist/engines/k6/runtime/shared/http-check-plan.d.ts +29 -0
- package/dist/engines/k6/runtime/shared/http-check-plan.js +1 -0
- package/dist/engines/k6/runtime/shared/http-parsing.d.ts +10 -0
- package/dist/engines/k6/runtime/shared/http-parsing.js +3 -0
- package/dist/engines/k6/runtime/shared/ordering.d.ts +2 -0
- package/dist/engines/k6/runtime/shared/ordering.js +1 -0
- package/dist/engines/k6/runtime/shared/properties.d.ts +1 -0
- package/dist/engines/k6/runtime/shared/properties.js +1 -0
- package/dist/engines/k6/runtime/suite.d.ts +4 -0
- package/dist/engines/k6/runtime/suite.js +1 -0
- package/dist/engines/k6/runtime/types.d.ts +242 -0
- package/dist/engines/k6/runtime/types.js +1 -0
- package/dist/engines/k6/runtime/xk6-sql-driver-postgres.d.ts +7 -0
- package/dist/engines/k6/runtime/xk6-sql-driver-postgres.js +1 -0
- package/dist/engines/managed-module-resolution-policy-input.d.ts +9 -0
- package/dist/engines/managed-module-resolution-policy-input.js +1 -0
- package/dist/engines/managed-module-resolution-policy.d.ts +25 -0
- package/dist/engines/managed-module-resolution-policy.js +1 -0
- package/dist/engines/managed-module-resolution.d.ts +13 -0
- package/dist/engines/managed-module-resolution.js +697 -0
- package/dist/engines/manager.d.ts +24 -0
- package/dist/engines/manager.js +1 -0
- package/dist/engines/node-vitest/adapter/adapter.d.ts +16 -0
- package/dist/engines/node-vitest/adapter/adapter.js +1 -0
- package/dist/engines/node-vitest/adapter/consumer-typescript-paths.d.ts +17 -0
- package/dist/engines/node-vitest/adapter/consumer-typescript-paths.js +3 -0
- package/dist/engines/node-vitest/adapter/evidence.d.ts +33 -0
- package/dist/engines/node-vitest/adapter/evidence.js +2 -0
- package/dist/engines/node-vitest/adapter/failure-details.d.ts +2 -0
- package/dist/engines/node-vitest/adapter/failure-details.js +2 -0
- package/dist/engines/node-vitest/adapter/index.d.ts +1 -0
- package/dist/engines/node-vitest/adapter/index.js +1 -0
- package/dist/engines/node-vitest/adapter/reporter.d.ts +7 -0
- package/dist/engines/node-vitest/adapter/reporter.js +1 -0
- package/dist/engines/node-vitest/adapter/resolution.d.ts +12 -0
- package/dist/engines/node-vitest/adapter/resolution.js +1 -0
- package/dist/engines/node-vitest/adapter/workspace.d.ts +19 -0
- package/dist/engines/node-vitest/adapter/workspace.js +177 -0
- package/dist/engines/node-vitest/runtime/contract/index.d.ts +64 -0
- package/dist/engines/node-vitest/runtime/contract/index.js +1 -0
- package/dist/engines/node-vitest/runtime/data/http.d.ts +4 -0
- package/dist/engines/node-vitest/runtime/data/http.js +1 -0
- package/dist/engines/node-vitest/runtime/data/index.d.ts +8 -0
- package/dist/engines/node-vitest/runtime/data/index.js +1 -0
- package/dist/engines/node-vitest/runtime/data/primitives.d.ts +1 -0
- package/dist/engines/node-vitest/runtime/data/primitives.js +1 -0
- package/dist/engines/node-vitest/runtime/data/report.d.ts +3 -0
- package/dist/engines/node-vitest/runtime/data/report.js +6 -0
- package/dist/engines/node-vitest/runtime/data/runner.d.ts +4 -0
- package/dist/engines/node-vitest/runtime/data/runner.js +1 -0
- package/dist/engines/node-vitest/runtime/data/scenario.d.ts +12 -0
- package/dist/engines/node-vitest/runtime/data/scenario.js +2 -0
- package/dist/engines/node-vitest/runtime/data/types.d.ts +412 -0
- package/dist/engines/node-vitest/runtime/data/types.js +1 -0
- package/dist/engines/node-vitest/runtime/runtime-input.d.ts +63 -0
- package/dist/engines/node-vitest/runtime/runtime-input.js +1 -0
- package/dist/engines/playwright/adapter/adapter.d.ts +18 -0
- package/dist/engines/playwright/adapter/adapter.js +1 -0
- package/dist/engines/playwright/adapter/attachments.d.ts +25 -0
- package/dist/engines/playwright/adapter/attachments.js +1 -0
- package/dist/engines/playwright/adapter/config.d.ts +45 -0
- package/dist/engines/playwright/adapter/config.js +167 -0
- package/dist/engines/playwright/adapter/evidence-validation.d.ts +12 -0
- package/dist/engines/playwright/adapter/evidence-validation.js +1 -0
- package/dist/engines/playwright/adapter/evidence.d.ts +32 -0
- package/dist/engines/playwright/adapter/evidence.js +1 -0
- package/dist/engines/playwright/adapter/failure-details.d.ts +2 -0
- package/dist/engines/playwright/adapter/failure-details.js +2 -0
- package/dist/engines/playwright/adapter/index.d.ts +3 -0
- package/dist/engines/playwright/adapter/index.js +1 -0
- package/dist/engines/playwright/adapter/reporter.d.ts +12 -0
- package/dist/engines/playwright/adapter/reporter.js +1 -0
- package/dist/engines/playwright/runtime/config-file.d.ts +2 -0
- package/dist/engines/playwright/runtime/config-file.js +1 -0
- package/dist/engines/playwright/runtime/config.d.ts +24 -0
- package/dist/engines/playwright/runtime/config.js +1 -0
- package/dist/engines/playwright/runtime/index.d.ts +4 -0
- package/dist/engines/playwright/runtime/index.js +1 -0
- package/dist/engines/playwright/runtime/runtime-input.d.ts +36 -0
- package/dist/engines/playwright/runtime/runtime-input.js +151 -0
- package/dist/engines/playwright/runtime/sandbox.d.ts +84 -0
- package/dist/engines/playwright/runtime/sandbox.js +1 -0
- package/dist/engines/runtime-input-file.d.ts +25 -0
- package/dist/engines/runtime-input-file.js +1 -0
- package/dist/environment/lifecycle-artifacts.d.ts +7 -0
- package/dist/environment/lifecycle-artifacts.js +1 -0
- package/dist/environment/lifecycle-controller.d.ts +71 -0
- package/dist/environment/lifecycle-controller.js +1 -0
- package/dist/environment/lifecycle.d.ts +29 -0
- package/dist/environment/lifecycle.js +1 -0
- package/dist/environment/maintenance.d.ts +68 -0
- package/dist/environment/maintenance.js +1 -0
- package/dist/environment/planning-types.d.ts +35 -0
- package/dist/environment/planning-types.js +1 -0
- package/dist/environment/readiness.d.ts +12 -0
- package/dist/environment/readiness.js +1 -0
- package/dist/environment/ready-environment.d.ts +17 -0
- package/dist/environment/ready-environment.js +1 -0
- package/dist/environment/run-environment.d.ts +38 -0
- package/dist/environment/run-environment.js +1 -0
- package/dist/environment/run-stopping.d.ts +13 -0
- package/dist/environment/run-stopping.js +1 -0
- package/dist/environment/runtime-contexts.d.ts +32 -0
- package/dist/environment/runtime-contexts.js +1 -0
- package/dist/environment/runtime-manager.d.ts +95 -0
- package/dist/environment/runtime-manager.js +1 -0
- package/dist/environment/runtime-planning.d.ts +16 -0
- package/dist/environment/runtime-planning.js +1 -0
- package/dist/environment/runtime-preparation.d.ts +30 -0
- package/dist/environment/runtime-preparation.js +1 -0
- package/dist/environment/runtime-service.d.ts +18 -0
- package/dist/environment/runtime-service.js +1 -0
- package/dist/environment/services.d.ts +48 -0
- package/dist/environment/services.js +1 -0
- package/dist/environment/state.d.ts +18 -0
- package/dist/environment/state.js +1 -0
- package/dist/environment/status-runtime.d.ts +53 -0
- package/dist/environment/status-runtime.js +1 -0
- package/dist/environment/template.d.ts +180 -0
- package/dist/environment/template.js +1 -0
- package/dist/evidence/artifact-config.d.ts +14 -0
- package/dist/evidence/artifact-config.js +1 -0
- package/dist/evidence/artifact-validation.d.ts +5 -0
- package/dist/evidence/artifact-validation.js +1 -0
- package/dist/evidence/artifacts.d.ts +75 -0
- package/dist/evidence/artifacts.js +2 -0
- package/dist/evidence/bundles.d.ts +28 -0
- package/dist/evidence/bundles.js +1 -0
- package/dist/evidence/ci-provenance.d.ts +9 -0
- package/dist/evidence/ci-provenance.js +1 -0
- package/dist/evidence/contracts.d.ts +162 -0
- package/dist/evidence/contracts.js +1 -0
- package/dist/evidence/file-evidence.d.ts +23 -0
- package/dist/evidence/file-evidence.js +1 -0
- package/dist/evidence/finalization.d.ts +9 -0
- package/dist/evidence/finalization.js +1 -0
- package/dist/evidence/index.d.ts +8 -0
- package/dist/evidence/index.js +1 -0
- package/dist/evidence/logs.d.ts +31 -0
- package/dist/evidence/logs.js +2 -0
- package/dist/evidence/operation-timings.d.ts +60 -0
- package/dist/evidence/operation-timings.js +1 -0
- package/dist/evidence/read-bundle.d.ts +4 -0
- package/dist/evidence/read-bundle.js +1 -0
- package/dist/evidence/read-fields.d.ts +22 -0
- package/dist/evidence/read-fields.js +1 -0
- package/dist/evidence/read-provenance.d.ts +2 -0
- package/dist/evidence/read-provenance.js +1 -0
- package/dist/evidence/read-redaction.d.ts +2 -0
- package/dist/evidence/read-redaction.js +1 -0
- package/dist/evidence/read-retention.d.ts +2 -0
- package/dist/evidence/read-retention.js +1 -0
- package/dist/evidence/read-run.d.ts +2 -0
- package/dist/evidence/read-run.js +1 -0
- package/dist/evidence/reading.d.ts +28 -0
- package/dist/evidence/reading.js +1 -0
- package/dist/evidence/reporting-types.d.ts +330 -0
- package/dist/evidence/reporting-types.js +1 -0
- package/dist/evidence/reporting.d.ts +3 -0
- package/dist/evidence/reporting.js +1 -0
- package/dist/evidence/secure-file-copy.d.ts +24 -0
- package/dist/evidence/secure-file-copy.js +1 -0
- package/dist/evidence/setup-progress.d.ts +63 -0
- package/dist/evidence/setup-progress.js +1 -0
- package/dist/evidence/step-output.d.ts +16 -0
- package/dist/evidence/step-output.js +6 -0
- package/dist/evidence/storage-inventory.d.ts +27 -0
- package/dist/evidence/storage-inventory.js +1 -0
- package/dist/evidence/storage.d.ts +27 -0
- package/dist/evidence/storage.js +2 -0
- package/dist/evidence/timing.d.ts +23 -0
- package/dist/evidence/timing.js +1 -0
- package/dist/file.d.ts +11 -0
- package/dist/file.js +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1 -0
- package/dist/kernel/error-serialization.d.ts +38 -0
- package/dist/kernel/error-serialization.js +1 -0
- package/dist/kernel/redaction.d.ts +1 -0
- package/dist/kernel/redaction.js +1 -0
- package/dist/kernel/unknown-values.d.ts +6 -0
- package/dist/kernel/unknown-values.js +1 -0
- package/dist/process/capture-output.d.ts +7 -0
- package/dist/process/capture-output.js +1 -0
- package/dist/process/command-shell.d.ts +1 -0
- package/dist/process/command-shell.js +1 -0
- package/dist/process/environment-overlay.d.ts +17 -0
- package/dist/process/environment-overlay.js +1 -0
- package/dist/process/environment.d.ts +33 -0
- package/dist/process/environment.js +1 -0
- package/dist/process/files/contained-path.d.ts +8 -0
- package/dist/process/files/contained-path.js +1 -0
- package/dist/process/files/directory-status.d.ts +14 -0
- package/dist/process/files/directory-status.js +1 -0
- package/dist/process/files/dotenv.d.ts +2 -0
- package/dist/process/files/dotenv.js +1 -0
- package/dist/process/files/file-snapshot.d.ts +34 -0
- package/dist/process/files/file-snapshot.js +1 -0
- package/dist/process/files/json-file.d.ts +11 -0
- package/dist/process/files/json-file.js +1 -0
- package/dist/process/files/paths.d.ts +1 -0
- package/dist/process/files/paths.js +1 -0
- package/dist/process/files/temp-dir.d.ts +11 -0
- package/dist/process/files/temp-dir.js +1 -0
- package/dist/process/host/metadata.d.ts +6 -0
- package/dist/process/host/metadata.js +1 -0
- package/dist/process/host/platform.d.ts +57 -0
- package/dist/process/host/platform.js +1 -0
- package/dist/process/host-command.d.ts +4 -0
- package/dist/process/host-command.js +3 -0
- package/dist/process/host-inspection-command.d.ts +13 -0
- package/dist/process/host-inspection-command.js +1 -0
- package/dist/process/host-process.d.ts +14 -0
- package/dist/process/host-process.js +1 -0
- package/dist/process/index.d.ts +9 -0
- package/dist/process/index.js +1 -0
- package/dist/process/lifecycle-fence.d.ts +11 -0
- package/dist/process/lifecycle-fence.js +1 -0
- package/dist/process/locks.d.ts +28 -0
- package/dist/process/locks.js +4 -0
- package/dist/process/process-contracts.d.ts +70 -0
- package/dist/process/process-contracts.js +1 -0
- package/dist/process/process-group.d.ts +12 -0
- package/dist/process/process-group.js +1 -0
- package/dist/process/process-identity.d.ts +27 -0
- package/dist/process/process-identity.js +1 -0
- package/dist/process/process-limits.d.ts +6 -0
- package/dist/process/process-limits.js +1 -0
- package/dist/process/process.d.ts +11 -0
- package/dist/process/process.js +1 -0
- package/dist/process/readiness.d.ts +37 -0
- package/dist/process/readiness.js +1 -0
- package/dist/process/recovery.d.ts +3 -0
- package/dist/process/recovery.js +1 -0
- package/dist/process/runs/manifest.d.ts +85 -0
- package/dist/process/runs/manifest.js +1 -0
- package/dist/process/runs/ownership.d.ts +11 -0
- package/dist/process/runs/ownership.js +1 -0
- package/dist/process/runs/product-state.d.ts +2 -0
- package/dist/process/runs/product-state.js +1 -0
- package/dist/process/runs/schema.d.ts +3 -0
- package/dist/process/runs/schema.js +1 -0
- package/dist/process/runs/stop.d.ts +19 -0
- package/dist/process/runs/stop.js +1 -0
- package/dist/process/runtime-socket.d.ts +4 -0
- package/dist/process/runtime-socket.js +1 -0
- package/dist/process/service-processes.d.ts +13 -0
- package/dist/process/service-processes.js +1 -0
- package/dist/process/shutdown.d.ts +10 -0
- package/dist/process/shutdown.js +1 -0
- package/dist/process/windows-cli-owner.d.ts +2 -0
- package/dist/process/windows-cli-owner.js +3 -0
- package/dist/process/windows-native.d.ts +6 -0
- package/dist/process/windows-native.js +1 -0
- package/dist/process/windows-process-identity.d.ts +4 -0
- package/dist/process/windows-process-identity.js +1 -0
- package/dist/repo/ci-environment.d.ts +7 -0
- package/dist/repo/ci-environment.js +1 -0
- package/dist/repo/fingerprint-policy.d.ts +15 -0
- package/dist/repo/fingerprint-policy.js +1 -0
- package/dist/repo/git-path.d.ts +2 -0
- package/dist/repo/git-path.js +1 -0
- package/dist/repo/managed-git.d.ts +10 -0
- package/dist/repo/managed-git.js +1 -0
- package/dist/repo/metadata.d.ts +3 -0
- package/dist/repo/metadata.js +1 -0
- package/dist/repo/physical-tree.d.ts +37 -0
- package/dist/repo/physical-tree.js +1 -0
- package/dist/repo/remote.d.ts +6 -0
- package/dist/repo/remote.js +1 -0
- package/dist/repo/state.d.ts +25 -0
- package/dist/repo/state.js +5 -0
- package/dist/steps/build-config.d.ts +35 -0
- package/dist/steps/build-config.js +1 -0
- package/dist/steps/configured-step-testkit-modules.d.ts +19 -0
- package/dist/steps/configured-step-testkit-modules.js +1 -0
- package/dist/steps/configured-steps.d.ts +51 -0
- package/dist/steps/configured-steps.js +1 -0
- package/dist/steps/environment.d.ts +78 -0
- package/dist/steps/environment.js +1 -0
- package/dist/steps/index.d.ts +2 -0
- package/dist/steps/index.js +1 -0
- package/dist/steps/module-runner.d.ts +1 -0
- package/dist/steps/module-runner.js +1 -0
- package/dist/steps/run.d.ts +36 -0
- package/dist/steps/run.js +3 -0
- package/dist/toolchains/archive.d.ts +53 -0
- package/dist/toolchains/archive.js +1 -0
- package/dist/toolchains/esbuild.d.ts +9 -0
- package/dist/toolchains/esbuild.js +1 -0
- package/dist/toolchains/host-node-support.d.ts +3 -0
- package/dist/toolchains/host-node-support.js +1 -0
- package/dist/toolchains/index.d.ts +114 -0
- package/dist/toolchains/index.js +4 -0
- package/dist/toolchains/managed-node-releases.d.ts +28 -0
- package/dist/toolchains/managed-node-releases.js +1 -0
- package/dist/toolchains/node-cache.d.ts +20 -0
- package/dist/toolchains/node-cache.js +1 -0
- package/dist/toolchains/node-integrity.d.ts +16 -0
- package/dist/toolchains/node-integrity.js +1 -0
- package/dist/toolchains/node-provisioning.d.ts +29 -0
- package/dist/toolchains/node-provisioning.js +2 -0
- package/dist/toolchains/semver.d.ts +13 -0
- package/dist/toolchains/semver.js +1 -0
- package/dist/toolchains/shared-operation.d.ts +11 -0
- package/dist/toolchains/shared-operation.js +1 -0
- package/dist/toolchains/timeouts.d.ts +1 -0
- package/dist/toolchains/timeouts.js +1 -0
- package/dist/toolchains/vitest/index.d.ts +13 -0
- package/dist/toolchains/vitest/index.js +1 -0
- package/docs/cloud-control.md +105 -0
- package/docs/engine-architecture.md +631 -0
- package/docs/test-types.md +120 -0
- package/docs/testkit-cloud-boundary.md +640 -0
- package/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
- package/node_modules/@isaacs/fs-minipass/README.md +71 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +118 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +118 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
- package/node_modules/@isaacs/fs-minipass/package.json +72 -0
- package/node_modules/buffer-crc32/LICENSE +19 -0
- package/node_modules/buffer-crc32/README.md +55 -0
- package/node_modules/buffer-crc32/dist/index.cjs +306 -0
- package/node_modules/buffer-crc32/dist/index.d.cts +35 -0
- package/node_modules/buffer-crc32/dist/index.d.mts +35 -0
- package/node_modules/buffer-crc32/dist/index.mjs +304 -0
- package/node_modules/buffer-crc32/index.d.ts +35 -0
- package/node_modules/buffer-crc32/package.json +54 -0
- package/node_modules/chownr/LICENSE.md +63 -0
- package/node_modules/chownr/README.md +3 -0
- package/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
- package/node_modules/chownr/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/chownr/dist/commonjs/index.js +93 -0
- package/node_modules/chownr/dist/commonjs/index.js.map +1 -0
- package/node_modules/chownr/dist/commonjs/package.json +3 -0
- package/node_modules/chownr/dist/esm/index.d.ts +3 -0
- package/node_modules/chownr/dist/esm/index.d.ts.map +1 -0
- package/node_modules/chownr/dist/esm/index.js +85 -0
- package/node_modules/chownr/dist/esm/index.js.map +1 -0
- package/node_modules/chownr/dist/esm/package.json +3 -0
- package/node_modules/chownr/package.json +69 -0
- package/node_modules/diff/CONTRIBUTING.md +28 -0
- package/node_modules/diff/LICENSE +29 -0
- package/node_modules/diff/README.md +468 -0
- package/node_modules/diff/dist/diff.js +2313 -0
- package/node_modules/diff/dist/diff.min.js +1 -0
- package/node_modules/diff/eslint.config.mjs +182 -0
- package/node_modules/diff/libcjs/convert/dmp.d.ts +8 -0
- package/node_modules/diff/libcjs/convert/dmp.d.ts.map +1 -0
- package/node_modules/diff/libcjs/convert/dmp.js +24 -0
- package/node_modules/diff/libcjs/convert/xml.d.ts +6 -0
- package/node_modules/diff/libcjs/convert/xml.d.ts.map +1 -0
- package/node_modules/diff/libcjs/convert/xml.js +34 -0
- package/node_modules/diff/libcjs/diff/array.d.ts +19 -0
- package/node_modules/diff/libcjs/diff/array.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/array.js +23 -0
- package/node_modules/diff/libcjs/diff/base.d.ts +20 -0
- package/node_modules/diff/libcjs/diff/base.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/base.js +256 -0
- package/node_modules/diff/libcjs/diff/character.d.ts +19 -0
- package/node_modules/diff/libcjs/diff/character.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/character.js +14 -0
- package/node_modules/diff/libcjs/diff/css.d.ts +18 -0
- package/node_modules/diff/libcjs/diff/css.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/css.js +17 -0
- package/node_modules/diff/libcjs/diff/json.d.ts +24 -0
- package/node_modules/diff/libcjs/diff/json.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/json.js +86 -0
- package/node_modules/diff/libcjs/diff/line.d.ts +24 -0
- package/node_modules/diff/libcjs/diff/line.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/line.js +74 -0
- package/node_modules/diff/libcjs/diff/sentence.d.ts +21 -0
- package/node_modules/diff/libcjs/diff/sentence.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/sentence.js +50 -0
- package/node_modules/diff/libcjs/diff/word.d.ts +35 -0
- package/node_modules/diff/libcjs/diff/word.d.ts.map +1 -0
- package/node_modules/diff/libcjs/diff/word.js +289 -0
- package/node_modules/diff/libcjs/index.d.ts +20 -0
- package/node_modules/diff/libcjs/index.d.ts.map +1 -0
- package/node_modules/diff/libcjs/index.js +67 -0
- package/node_modules/diff/libcjs/package.json +1 -0
- package/node_modules/diff/libcjs/patch/apply.d.ts +62 -0
- package/node_modules/diff/libcjs/patch/apply.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/apply.js +264 -0
- package/node_modules/diff/libcjs/patch/create.d.ts +131 -0
- package/node_modules/diff/libcjs/patch/create.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/create.js +364 -0
- package/node_modules/diff/libcjs/patch/line-endings.d.ts +17 -0
- package/node_modules/diff/libcjs/patch/line-endings.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/line-endings.js +50 -0
- package/node_modules/diff/libcjs/patch/parse.d.ts +16 -0
- package/node_modules/diff/libcjs/patch/parse.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/parse.js +515 -0
- package/node_modules/diff/libcjs/patch/reverse.d.ts +22 -0
- package/node_modules/diff/libcjs/patch/reverse.d.ts.map +1 -0
- package/node_modules/diff/libcjs/patch/reverse.js +63 -0
- package/node_modules/diff/libcjs/types.d.ts +260 -0
- package/node_modules/diff/libcjs/types.d.ts.map +1 -0
- package/node_modules/diff/libcjs/types.js +2 -0
- package/node_modules/diff/libcjs/util/array.d.ts +3 -0
- package/node_modules/diff/libcjs/util/array.d.ts.map +1 -0
- package/node_modules/diff/libcjs/util/array.js +21 -0
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts +2 -0
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts.map +1 -0
- package/node_modules/diff/libcjs/util/distance-iterator.js +40 -0
- package/node_modules/diff/libcjs/util/params.d.ts +4 -0
- package/node_modules/diff/libcjs/util/params.d.ts.map +1 -0
- package/node_modules/diff/libcjs/util/params.js +17 -0
- package/node_modules/diff/libcjs/util/string.d.ts +30 -0
- package/node_modules/diff/libcjs/util/string.d.ts.map +1 -0
- package/node_modules/diff/libcjs/util/string.js +199 -0
- package/node_modules/diff/libesm/convert/dmp.d.ts +8 -0
- package/node_modules/diff/libesm/convert/dmp.d.ts.map +1 -0
- package/node_modules/diff/libesm/convert/dmp.js +21 -0
- package/node_modules/diff/libesm/convert/xml.d.ts +6 -0
- package/node_modules/diff/libesm/convert/xml.d.ts.map +1 -0
- package/node_modules/diff/libesm/convert/xml.js +31 -0
- package/node_modules/diff/libesm/diff/array.d.ts +19 -0
- package/node_modules/diff/libesm/diff/array.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/array.js +16 -0
- package/node_modules/diff/libesm/diff/base.d.ts +20 -0
- package/node_modules/diff/libesm/diff/base.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/base.js +253 -0
- package/node_modules/diff/libesm/diff/character.d.ts +19 -0
- package/node_modules/diff/libesm/diff/character.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/character.js +7 -0
- package/node_modules/diff/libesm/diff/css.d.ts +18 -0
- package/node_modules/diff/libesm/diff/css.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/css.js +10 -0
- package/node_modules/diff/libesm/diff/json.d.ts +24 -0
- package/node_modules/diff/libesm/diff/json.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/json.js +78 -0
- package/node_modules/diff/libesm/diff/line.d.ts +24 -0
- package/node_modules/diff/libesm/diff/line.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/line.js +65 -0
- package/node_modules/diff/libesm/diff/sentence.d.ts +21 -0
- package/node_modules/diff/libesm/diff/sentence.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/sentence.js +43 -0
- package/node_modules/diff/libesm/diff/word.d.ts +35 -0
- package/node_modules/diff/libesm/diff/word.d.ts.map +1 -0
- package/node_modules/diff/libesm/diff/word.js +281 -0
- package/node_modules/diff/libesm/index.d.ts +20 -0
- package/node_modules/diff/libesm/index.d.ts.map +1 -0
- package/node_modules/diff/libesm/index.js +30 -0
- package/node_modules/diff/libesm/package.json +1 -0
- package/node_modules/diff/libesm/patch/apply.d.ts +62 -0
- package/node_modules/diff/libesm/patch/apply.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/apply.js +257 -0
- package/node_modules/diff/libesm/patch/create.d.ts +131 -0
- package/node_modules/diff/libesm/patch/create.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/create.js +357 -0
- package/node_modules/diff/libesm/patch/line-endings.d.ts +17 -0
- package/node_modules/diff/libesm/patch/line-endings.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/line-endings.js +44 -0
- package/node_modules/diff/libesm/patch/parse.d.ts +16 -0
- package/node_modules/diff/libesm/patch/parse.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/parse.js +512 -0
- package/node_modules/diff/libesm/patch/reverse.d.ts +22 -0
- package/node_modules/diff/libesm/patch/reverse.d.ts.map +1 -0
- package/node_modules/diff/libesm/patch/reverse.js +60 -0
- package/node_modules/diff/libesm/types.d.ts +260 -0
- package/node_modules/diff/libesm/types.d.ts.map +1 -0
- package/node_modules/diff/libesm/types.js +1 -0
- package/node_modules/diff/libesm/util/array.d.ts +3 -0
- package/node_modules/diff/libesm/util/array.d.ts.map +1 -0
- package/node_modules/diff/libesm/util/array.js +17 -0
- package/node_modules/diff/libesm/util/distance-iterator.d.ts +2 -0
- package/node_modules/diff/libesm/util/distance-iterator.d.ts.map +1 -0
- package/node_modules/diff/libesm/util/distance-iterator.js +37 -0
- package/node_modules/diff/libesm/util/params.d.ts +4 -0
- package/node_modules/diff/libesm/util/params.d.ts.map +1 -0
- package/node_modules/diff/libesm/util/params.js +14 -0
- package/node_modules/diff/libesm/util/string.d.ts +30 -0
- package/node_modules/diff/libesm/util/string.d.ts.map +1 -0
- package/node_modules/diff/libesm/util/string.js +184 -0
- package/node_modules/diff/package.json +130 -0
- package/node_modules/diff/release-notes.md +474 -0
- package/node_modules/minipass/LICENSE.md +55 -0
- package/node_modules/minipass/README.md +825 -0
- package/node_modules/minipass/dist/commonjs/index.d.ts +545 -0
- package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/minipass/dist/commonjs/index.js +1038 -0
- package/node_modules/minipass/dist/commonjs/index.js.map +1 -0
- package/node_modules/minipass/dist/commonjs/package.json +3 -0
- package/node_modules/minipass/dist/esm/index.d.ts +545 -0
- package/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
- package/node_modules/minipass/dist/esm/index.js +1020 -0
- package/node_modules/minipass/dist/esm/index.js.map +1 -0
- package/node_modules/minipass/dist/esm/package.json +3 -0
- package/node_modules/minipass/package.json +77 -0
- package/node_modules/minizlib/LICENSE +26 -0
- package/node_modules/minizlib/README.md +64 -0
- package/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
- package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +1 -0
- package/node_modules/minizlib/dist/commonjs/constants.js +123 -0
- package/node_modules/minizlib/dist/commonjs/constants.js.map +1 -0
- package/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
- package/node_modules/minizlib/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/minizlib/dist/commonjs/index.js +416 -0
- package/node_modules/minizlib/dist/commonjs/index.js.map +1 -0
- package/node_modules/minizlib/dist/commonjs/package.json +3 -0
- package/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
- package/node_modules/minizlib/dist/esm/constants.d.ts.map +1 -0
- package/node_modules/minizlib/dist/esm/constants.js +117 -0
- package/node_modules/minizlib/dist/esm/constants.js.map +1 -0
- package/node_modules/minizlib/dist/esm/index.d.ts +99 -0
- package/node_modules/minizlib/dist/esm/index.d.ts.map +1 -0
- package/node_modules/minizlib/dist/esm/index.js +363 -0
- package/node_modules/minizlib/dist/esm/index.js.map +1 -0
- package/node_modules/minizlib/dist/esm/package.json +3 -0
- package/node_modules/minizlib/package.json +80 -0
- package/node_modules/pend/LICENSE +23 -0
- package/node_modules/pend/README.md +41 -0
- package/node_modules/pend/index.js +55 -0
- package/node_modules/pend/package.json +18 -0
- package/node_modules/pend/test.js +137 -0
- package/node_modules/tar/LICENSE.md +55 -0
- package/node_modules/tar/README.md +1233 -0
- package/node_modules/tar/dist/commonjs/create.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/create.js +82 -0
- package/node_modules/tar/dist/commonjs/create.js.map +1 -0
- package/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
- package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
- package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -0
- package/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/extract.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/extract.js +88 -0
- package/node_modules/tar/dist/commonjs/extract.js.map +1 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -0
- package/node_modules/tar/dist/commonjs/header.d.ts +53 -0
- package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/header.js +348 -0
- package/node_modules/tar/dist/commonjs/header.js.map +1 -0
- package/node_modules/tar/dist/commonjs/index.d.ts +20 -0
- package/node_modules/tar/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/index.js +64 -0
- package/node_modules/tar/dist/commonjs/index.js.map +1 -0
- package/node_modules/tar/dist/commonjs/index.min.js +4 -0
- package/node_modules/tar/dist/commonjs/index.min.js.map +7 -0
- package/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
- package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -0
- package/node_modules/tar/dist/commonjs/list.d.ts +7 -0
- package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/list.js +153 -0
- package/node_modules/tar/dist/commonjs/list.js.map +1 -0
- package/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
- package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/make-command.js +52 -0
- package/node_modules/tar/dist/commonjs/make-command.js.map +1 -0
- package/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
- package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/mkdir.js +187 -0
- package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -0
- package/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
- package/node_modules/tar/dist/commonjs/mode-fix.js.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -0
- package/node_modules/tar/dist/commonjs/options.d.ts +604 -0
- package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/options.js +66 -0
- package/node_modules/tar/dist/commonjs/options.js.map +1 -0
- package/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
- package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/pack.js +544 -0
- package/node_modules/tar/dist/commonjs/pack.js.map +1 -0
- package/node_modules/tar/dist/commonjs/package.json +3 -0
- package/node_modules/tar/dist/commonjs/parse.d.ts +92 -0
- package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/parse.js +655 -0
- package/node_modules/tar/dist/commonjs/parse.js.map +1 -0
- package/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
- package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
- package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -0
- package/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
- package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/pax.js +182 -0
- package/node_modules/tar/dist/commonjs/pax.js.map +1 -0
- package/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/process-umask.js +7 -0
- package/node_modules/tar/dist/commonjs/process-umask.js.map +1 -0
- package/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
- package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/read-entry.js +136 -0
- package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -0
- package/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/replace.js +227 -0
- package/node_modules/tar/dist/commonjs/replace.js.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +1 -0
- package/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
- package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
- package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -0
- package/node_modules/tar/dist/commonjs/types.d.ts +16 -0
- package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/types.js +70 -0
- package/node_modules/tar/dist/commonjs/types.js.map +1 -0
- package/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
- package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/unpack.js +932 -0
- package/node_modules/tar/dist/commonjs/unpack.js.map +1 -0
- package/node_modules/tar/dist/commonjs/update.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/update.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/update.js +33 -0
- package/node_modules/tar/dist/commonjs/update.js.map +1 -0
- package/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
- package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/warn-method.js +31 -0
- package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -0
- package/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/winchars.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/winchars.js +14 -0
- package/node_modules/tar/dist/commonjs/winchars.js.map +1 -0
- package/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
- package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/write-entry.js +698 -0
- package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -0
- package/node_modules/tar/dist/esm/create.d.ts +3 -0
- package/node_modules/tar/dist/esm/create.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/create.js +76 -0
- package/node_modules/tar/dist/esm/create.js.map +1 -0
- package/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
- package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/cwd-error.js +14 -0
- package/node_modules/tar/dist/esm/cwd-error.js.map +1 -0
- package/node_modules/tar/dist/esm/extract.d.ts +3 -0
- package/node_modules/tar/dist/esm/extract.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/extract.js +49 -0
- package/node_modules/tar/dist/esm/extract.js.map +1 -0
- package/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
- package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/get-write-flag.js +26 -0
- package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -0
- package/node_modules/tar/dist/esm/header.d.ts +53 -0
- package/node_modules/tar/dist/esm/header.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/header.js +311 -0
- package/node_modules/tar/dist/esm/header.js.map +1 -0
- package/node_modules/tar/dist/esm/index.d.ts +20 -0
- package/node_modules/tar/dist/esm/index.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/index.js +20 -0
- package/node_modules/tar/dist/esm/index.js.map +1 -0
- package/node_modules/tar/dist/esm/index.min.js +4 -0
- package/node_modules/tar/dist/esm/index.min.js.map +7 -0
- package/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
- package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/large-numbers.js +94 -0
- package/node_modules/tar/dist/esm/large-numbers.js.map +1 -0
- package/node_modules/tar/dist/esm/list.d.ts +7 -0
- package/node_modules/tar/dist/esm/list.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/list.js +113 -0
- package/node_modules/tar/dist/esm/list.js.map +1 -0
- package/node_modules/tar/dist/esm/make-command.d.ts +49 -0
- package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/make-command.js +48 -0
- package/node_modules/tar/dist/esm/make-command.js.map +1 -0
- package/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
- package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/mkdir.js +179 -0
- package/node_modules/tar/dist/esm/mkdir.js.map +1 -0
- package/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
- package/node_modules/tar/dist/esm/mode-fix.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/mode-fix.js +25 -0
- package/node_modules/tar/dist/esm/mode-fix.js.map +1 -0
- package/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
- package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
- package/node_modules/tar/dist/esm/normalize-unicode.js.map +1 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -0
- package/node_modules/tar/dist/esm/options.d.ts +604 -0
- package/node_modules/tar/dist/esm/options.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/options.js +54 -0
- package/node_modules/tar/dist/esm/options.js.map +1 -0
- package/node_modules/tar/dist/esm/pack.d.ts +105 -0
- package/node_modules/tar/dist/esm/pack.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/pack.js +502 -0
- package/node_modules/tar/dist/esm/pack.js.map +1 -0
- package/node_modules/tar/dist/esm/package.json +3 -0
- package/node_modules/tar/dist/esm/parse.d.ts +92 -0
- package/node_modules/tar/dist/esm/parse.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/parse.js +651 -0
- package/node_modules/tar/dist/esm/parse.js.map +1 -0
- package/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
- package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/path-reservations.js +166 -0
- package/node_modules/tar/dist/esm/path-reservations.js.map +1 -0
- package/node_modules/tar/dist/esm/pax.d.ts +26 -0
- package/node_modules/tar/dist/esm/pax.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/pax.js +178 -0
- package/node_modules/tar/dist/esm/pax.js.map +1 -0
- package/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
- package/node_modules/tar/dist/esm/process-umask.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/process-umask.js +3 -0
- package/node_modules/tar/dist/esm/process-umask.js.map +1 -0
- package/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
- package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/read-entry.js +132 -0
- package/node_modules/tar/dist/esm/read-entry.js.map +1 -0
- package/node_modules/tar/dist/esm/replace.d.ts +2 -0
- package/node_modules/tar/dist/esm/replace.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/replace.js +221 -0
- package/node_modules/tar/dist/esm/replace.js.map +1 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.js.map +1 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +1 -0
- package/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
- package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/symlink-error.js +15 -0
- package/node_modules/tar/dist/esm/symlink-error.js.map +1 -0
- package/node_modules/tar/dist/esm/types.d.ts +16 -0
- package/node_modules/tar/dist/esm/types.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/types.js +65 -0
- package/node_modules/tar/dist/esm/types.js.map +1 -0
- package/node_modules/tar/dist/esm/unpack.d.ts +101 -0
- package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/unpack.js +891 -0
- package/node_modules/tar/dist/esm/unpack.js.map +1 -0
- package/node_modules/tar/dist/esm/update.d.ts +2 -0
- package/node_modules/tar/dist/esm/update.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/update.js +30 -0
- package/node_modules/tar/dist/esm/update.js.map +1 -0
- package/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
- package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/warn-method.js +27 -0
- package/node_modules/tar/dist/esm/warn-method.js.map +1 -0
- package/node_modules/tar/dist/esm/winchars.d.ts +3 -0
- package/node_modules/tar/dist/esm/winchars.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/winchars.js +9 -0
- package/node_modules/tar/dist/esm/winchars.js.map +1 -0
- package/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
- package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/write-entry.js +656 -0
- package/node_modules/tar/dist/esm/write-entry.js.map +1 -0
- package/node_modules/tar/package.json +298 -0
- package/node_modules/typescript/LICENSE.txt +55 -0
- package/node_modules/typescript/README.md +50 -0
- package/node_modules/typescript/SECURITY.md +41 -0
- package/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
- package/node_modules/typescript/bin/tsc +2 -0
- package/node_modules/typescript/bin/tsserver +2 -0
- package/node_modules/typescript/lib/_tsc.js +133818 -0
- package/node_modules/typescript/lib/_tsserver.js +659 -0
- package/node_modules/typescript/lib/_typingsInstaller.js +222 -0
- package/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/lib.d.ts +22 -0
- package/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
- package/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
- package/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
- package/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
- package/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
- package/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
- package/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
- package/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
- package/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
- package/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
- package/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
- package/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
- package/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
- package/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
- package/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
- package/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
- package/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
- package/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
- package/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
- package/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
- package/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
- package/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
- package/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
- package/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
- package/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
- package/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
- package/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
- package/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
- package/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
- package/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
- package/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
- package/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
- package/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
- package/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
- package/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
- package/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
- package/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
- package/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
- package/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
- package/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
- package/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
- package/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
- package/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
- package/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
- package/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
- package/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
- package/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
- package/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
- package/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
- package/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
- package/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
- package/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
- package/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
- package/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
- package/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
- package/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
- package/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
- package/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
- package/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
- package/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
- package/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
- package/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
- package/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
- package/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
- package/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
- package/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
- package/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
- package/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
- package/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
- package/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
- package/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
- package/node_modules/typescript/lib/lib.es6.d.ts +23 -0
- package/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
- package/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
- package/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
- package/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
- package/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
- package/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
- package/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
- package/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
- package/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
- package/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
- package/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
- package/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
- package/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
- package/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
- package/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
- package/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
- package/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
- package/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/tsc.js +8 -0
- package/node_modules/typescript/lib/tsserver.js +8 -0
- package/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
- package/node_modules/typescript/lib/tsserverlibrary.js +21 -0
- package/node_modules/typescript/lib/typesMap.json +497 -0
- package/node_modules/typescript/lib/typescript.d.ts +11437 -0
- package/node_modules/typescript/lib/typescript.js +200276 -0
- package/node_modules/typescript/lib/typingsInstaller.js +8 -0
- package/node_modules/typescript/lib/watchGuard.js +53 -0
- package/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
- package/node_modules/typescript/package.json +120 -0
- package/node_modules/yallist/LICENSE.md +63 -0
- package/node_modules/yallist/README.md +205 -0
- package/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
- package/node_modules/yallist/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/yallist/dist/commonjs/index.js +384 -0
- package/node_modules/yallist/dist/commonjs/index.js.map +1 -0
- package/node_modules/yallist/dist/commonjs/package.json +3 -0
- package/node_modules/yallist/dist/esm/index.d.ts +39 -0
- package/node_modules/yallist/dist/esm/index.d.ts.map +1 -0
- package/node_modules/yallist/dist/esm/index.js +379 -0
- package/node_modules/yallist/dist/esm/index.js.map +1 -0
- package/node_modules/yallist/dist/esm/package.json +3 -0
- package/node_modules/yallist/package.json +68 -0
- package/node_modules/yauzl/LICENSE +21 -0
- package/node_modules/yauzl/README.md +1015 -0
- package/node_modules/yauzl/crc32.js +45 -0
- package/node_modules/yauzl/fd-slicer.js +188 -0
- package/node_modules/yauzl/index.js +1096 -0
- package/node_modules/yauzl/package.json +40 -0
- package/node_modules/yazl/LICENSE +21 -0
- package/node_modules/yazl/README.md +457 -0
- package/node_modules/yazl/index.js +826 -0
- package/node_modules/yazl/package.json +34 -0
- package/package.json +163 -0
- package/testkit-config-schema.md +718 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import x from"crypto";import f from"fs";import s from"path";import{appendFingerprintPathToHash as Z,hasIncludedFingerprintDescendantAtPrefix as tt,normalizeFingerprintPolicy as et,shouldIgnoreCanonicalFingerprintPathAtPrefix as W}from"./fingerprint-policy.js";import{decodeGitPathRecord as F}from"./git-path.js";import{runManagedGitCommand as rt}from"./managed-git.js";import{physicalNodeMode as z,readPhysicalNode as j}from"./physical-tree.js";import{normalizeManagedHostEnvironment as nt,requireManagedHostCommandSuccess as C,resolveManagedHostExecutableIfAvailable as ot}from"../process/index.js";import{readCiPullRequestHeadSha as it,resolveCiGitReference as at}from"./ci-environment.js";import{parseGitRepository as ct}from"./remote.js";export async function collectRepoState(t,e={}){const r=et(e.fingerprints),o=e.env??process.env,n=at(o),i=it(o);if(!ot("git",s.resolve(t),nt(process.env))&&!jt(t))return N(t,r,n);const c=await B(t);if(c===null)return N(t,r,n);const u=_(c,t),p=await R(u.repoRoot,["rev-parse","--verify","--quiet","HEAD"]),m=await st(u.repoRoot,p,i),b=await R(u.repoRoot,["symbolic-ref","--quiet","--short","HEAD"]),P=await R(u.repoRoot,["config","--get","remote.origin.url"]),w=p!==null&&b===null,g=await lt(u,r,p,""),d=!!g,h=p||"unborn";return{kind:d?"dirty":"commit",repoRoot:u.repoRoot,worktreePath:u.repoRoot,branch:b??(w?n.branch:null),detached:w,commitSha:p,pullRequest:n.pullRequest,pullRequestHeadSha:m,remoteUrl:P,repository:ct(P),dirty:d,dirtyFingerprint:g,contentFingerprint:null,cacheKey:g?`dirty/${h}-${g}`:`commits/${h}`}}function N(t,e,r){const o=f.realpathSync.native(s.resolve(t)),n=V(o,e);if(V(o,e)!==n)throw new Error("Physical repository snapshot changed while collecting repository state");const a=n.slice(0,24);return{kind:"nogit",repoRoot:null,worktreePath:o,branch:null,detached:!1,commitSha:null,pullRequest:r.pullRequest,pullRequestHeadSha:null,remoteUrl:null,repository:null,dirty:!1,dirtyFingerprint:null,contentFingerprint:a,cacheKey:`nogit/${a}`}}async function B(t){const e=["rev-parse","--show-toplevel"],r=await A(t,e);if(r.exitCode===0){const o=r.stdout.trim();if(o.length>0)return o;throw new Error("Git rev-parse returned an empty repository root")}if(Ft(r))return null;throw C(T(e),r),new Error("Unreachable Git repository probe result")}function _(t,e){const r=f.realpathSync.native(s.resolve(t)),o=f.realpathSync.native(s.resolve(e)),n=xt(s.relative(r,o));if(n===".."||n.startsWith("../")||s.isAbsolute(n)||process.platform==="win32"&&s.win32.isAbsolute(n))throw new Error(`Product directory must be inside its Git worktree: ${o}`);return{productDir:o,productPathspec:n?$t(n):".",productRootRelativePath:n,repoRoot:r}}export function summarizeRepoStateForMetadata(t){return t?{kind:t.kind,cacheKey:t.cacheKey,branch:t.branch,detached:t.detached,commitSha:t.commitSha,dirty:t.dirty,dirtyFingerprint:t.dirtyFingerprint,contentFingerprint:t.contentFingerprint,pullRequest:t.pullRequest,pullRequestHeadSha:t.pullRequestHeadSha,repoRoot:t.repoRoot,repository:t.repository,worktreePath:t.worktreePath,remoteUrl:t.remoteUrl}:null}async function st(t,e,r){if(e===null||r===null)return null;if(e===r)return r;const o=await v(t,["cat-file","commit","HEAD"]),n=[];for(const i of o.split(`
|
|
2
|
+
`)){if(i.length===0)break;i.startsWith("parent ")&&n.push(i.slice(7))}return n.length>=2&&n.includes(r)?r:null}async function lt(t,e,r,o){const n=await q(t,e,r,o),i=await q(t,e,r,o);if(n!==i)throw new Error("Git HEAD, index, untracked inventory, submodule state, or physical snapshot changed while collecting repository state");return n?.slice(0,24)??null}async function q(t,e,r,o){await J(t.repoRoot,r);const n=x.createHash("sha256");let i=!1;const a=await yt(t.repoRoot),[c,u]=await Promise.all([K(t,a),dt(t,r,a)]),p=wt(c),m=vt(u),b=[...new Set([...p.keys(),...m.keys()])].sort(y);for(const d of b){const h=p.get(d)??[],G=m.get(d)??[],M=h.some($=>$.mode==="160000")||G.some($=>$.mode==="160000");if(W(d,o,e)&&(!M||!tt(d,o,e)))continue;const X=h.length>0?h[0]:G[0],H=j(t.productDir,d),U=M?await pt(t,X,H,e,o):null;(!ht(h,G)||!ft(h,H,U,a))&&(i=!0,mt(n,d,G,h,H,U,a))}const P=await v(t.repoRoot,["ls-files","--others","--exclude-per-directory=.gitignore","--",t.productPathspec]),w=Ht(t,O(P,"Git ls-files").map(d=>F(d))).filter(d=>!W(d.productRelativePath,o,e));if(w.length>0){i=!0,n.update("untracked-state-v2\0");for(const d of w)l(n,"path",d.productRelativePath),D(n,j(t.productDir,d.productRelativePath),a)}const g=await K(t,a);if(!Pt(c,g))throw new Error("Git index changed while collecting repository state");return await J(t.repoRoot,r),i?n.digest("hex"):null}async function K(t,e){const r=await v(t.repoRoot,["ls-files","--stage","--abbrev=64","--",t.productPathspec]);return ut(t,r,e)}function ut(t,e,r){const o=[];for(const n of O(e,"Git ls-files")){const i=n.indexOf(" ");if(i<0)throw new Error("Git ls-files returned malformed stage metadata");const a=n.slice(0,i).split(" "),c=I(F(n.slice(i+1)));if(a.length!==3||!/^[0-7]{6}$/u.test(a[0])||!Y(a[1],r)||!/^[0-3]$/u.test(a[2]))throw new Error("Git ls-files returned invalid stage metadata");const u=L(t,c);if(!u)throw new Error(`Git ls-files returned a path outside the product: ${c}`);o.push({mode:a[0],objectId:a[1],productRelativePath:u,rootRelativePath:c,stage:Number(a[2])})}return o.sort(St)}async function dt(t,e,r){if(e===null)return[];const o=await v(t.repoRoot,["ls-tree","-r","--full-tree",e,"--",t.productPathspec]);return gt(t,o,r)}async function pt(t,e,r,o,n){if(r.kind==="missing"||r.kind==="ancestor-missing")return{kind:"missing",node:r};if(r.kind!=="directory")return{kind:"non-directory",node:r};const i=Et(t,e),a=await B(i);if(a===null||!It(a,i))throw new Error(`Gitlink is not initialized as a repository: ${e.productRelativePath}`);const c=_(a,i),u=await R(c.repoRoot,["rev-parse","--verify","--quiet","HEAD"]),p=await q(c,o,u,kt(n,e.productRelativePath)),m=j(t.productDir,e.productRelativePath);if(m.kind!=="directory"||!Gt(m.identity,r.identity))throw new Error(`Gitlink path changed while collecting repository state: ${e.productRelativePath}`);return{kind:"initialized",dirtyFingerprint:p,head:u,identity:m.identity}}function ft(t,e,r,o){if(t.length!==1||t[0]?.stage!==0)return!1;const n=t[0];return n.mode==="160000"?r?.kind==="initialized"&&r.head===n.objectId&&r.dirtyFingerprint===null:n.mode==="120000"?e.kind==="symlink"&&k(o,e.target)===n.objectId:n.mode==="100644"||n.mode==="100755"?e.kind==="file"&&bt(e.mode,n.mode)===n.mode&&k(o,e.contents)===n.objectId:!1}function ht(t,e){return e.length===0&&t.length===0?!0:e.length!==1||t.length!==1||t[0]?.stage!==0?!1:e[0]?.mode===t[0]?.mode&&e[0]?.objectId===t[0]?.objectId}function mt(t,e,r,o,n,i,a){t.update("tracked-path-state-v2\0"),l(t,"path",e),r.length===0&&t.update("head-missing\0");for(const c of r)t.update("head-entry\0"),l(t,"mode",c.mode),l(t,"object",c.objectId);o.length===0&&t.update("index-missing\0");for(const c of o)t.update("index-entry\0"),l(t,"mode",c.mode),l(t,"object",c.objectId),l(t,"stage",c.stage.toString());i?Rt(t,i,a):D(t,n,a)}function gt(t,e,r){const o=[];for(const n of O(e,"Git ls-tree")){const i=n.indexOf(" "),a=n.slice(0,i).split(" ");if(i<0||a.length!==3||!/^[0-7]{6}$/u.test(a[0])||!/^(?:blob|commit)$/u.test(a[1])||!Y(a[2],r))throw new Error("Git ls-tree returned invalid tree metadata");const c=I(F(n.slice(i+1))),u=L(t,c);if(!u)throw new Error(`Git ls-tree returned a path outside the product: ${c}`);o.push({mode:a[0],objectId:a[2],productRelativePath:u,rootRelativePath:c})}return o.sort((n,i)=>y(n.productRelativePath,i.productRelativePath))}async function yt(t){const e=(await v(t,["rev-parse","--show-object-format"])).trim();if(e==="sha1"||e==="sha256")return e;throw new Error(`Unsupported Git object format: ${e||"empty"}`)}function wt(t){const e=new Map;for(const r of t){const o=e.get(r.productRelativePath);o?o.push(r):e.set(r.productRelativePath,[r])}return e}function vt(t){const e=new Map;for(const r of t){const o=e.get(r.productRelativePath);o?o.push(r):e.set(r.productRelativePath,[r])}return e}function Rt(t,e,r){if(t.update("gitlink-worktree-state-v2\0"),l(t,"kind",e.kind),e.kind==="initialized"){e.head===null?t.update("head-missing\0"):l(t,"head",e.head),e.dirtyFingerprint===null?t.update("nested-clean\0"):l(t,"nested-dirty",e.dirtyFingerprint);return}D(t,e.node,r)}function D(t,e,r){switch(t.update("physical-node-v2\0"),l(t,"kind",e.kind),e.kind){case"file":l(t,"mode",process.platform==="win32"?"platform-mode-ignored":e.mode&73n?"100755":"100644"),l(t,"blob",k(r,e.contents)),E(t,e.contents);break;case"symlink":l(t,"blob",k(r,e.target)),E(t,e.target);break;case"directory":l(t,"mode",z(e.mode));break;case"ancestor-symlink":l(t,"obstacle",e.obstaclePath),E(t,e.target);break;case"ancestor-non-directory":l(t,"obstacle",e.obstaclePath),l(t,"mode",z(e.mode));break;case"ancestor-missing":l(t,"obstacle",e.obstaclePath);break;case"missing":break}}function bt(t,e){return process.platform==="win32"?e:t&73n?"100755":"100644"}function k(t,e){return x.createHash(t).update(`blob ${e.byteLength.toString()}\0`).update(e).digest("hex")}function Pt(t,e){return t.length===e.length&&t.every((r,o)=>{const n=e[o];return r.mode===n.mode&&r.objectId===n.objectId&&r.productRelativePath===n.productRelativePath&&r.rootRelativePath===n.rootRelativePath&&r.stage===n.stage})}function Gt(t,e){return t.dev===e.dev&&t.ino===e.ino&&t.type===e.type}function Y(t,e){const r=e==="sha1"?40:64;return t.length===r&&/^[0-9a-f]+$/u.test(t)}function kt(t,e){return t?e?`${t}/${e}`:t:e}function Et(t,e){const r=e.productRelativePath.split("/");if(r.some(i=>i.length===0||i==="."||i===".."))throw new Error(`Git returned an invalid product path: ${e.productRelativePath}`);const o=s.resolve(t.productDir,...r),n=s.relative(t.productDir,o);if(n===".."||n.startsWith(`..${s.sep}`)||s.isAbsolute(n))throw new Error(`Git returned a path outside the product: ${e.rootRelativePath}`);return o}function It(t,e){const r=f.realpathSync.native(s.resolve(t)),o=f.realpathSync.native(s.resolve(e));return process.platform==="win32"?r.toLocaleLowerCase("en-US")===o.toLocaleLowerCase("en-US"):r===o}function l(t,e,r){t.update(`${e}\0`),E(t,Buffer.from(r))}function E(t,e){t.update(`${e.byteLength.toString()}\0`),t.update(e),t.update("\0")}function St(t,e){return y(t.productRelativePath,e.productRelativePath)||t.stage-e.stage||y(t.mode,e.mode)||y(t.objectId,e.objectId)}function Ht(t,e){const r=new Map;for(const o of e){const n=I(o);if(n===".."||n.startsWith("../")||s.isAbsolute(n)||process.platform==="win32"&&s.win32.isAbsolute(n))throw new Error(`Git returned a path outside its worktree: ${n}`);const i=L(t,n);i&&r.set(n,{productRelativePath:i,rootRelativePath:n})}return[...r.values()].sort((o,n)=>y(o.productRelativePath,n.productRelativePath))}function L(t,e){if(!e)return null;if(!t.productRootRelativePath)return e;const r=`${t.productRootRelativePath}/`;return(process.platform==="win32"?e.toLocaleLowerCase("en-US").startsWith(r.toLocaleLowerCase("en-US")):e.startsWith(r))?e.slice(r.length):null}function $t(t){return`:(top,literal)${t}`}function I(t){return t.replace(/^\.\/+/,"").replace(/\/+$/,"")}function xt(t){return I(t.split(s.sep).join("/"))}function y(t,e){return t<e?-1:t>e?1:0}function V(t,e){const r=x.createHash("sha256");return Z(r,t,t,e),r.digest("hex")}async function v(t,e){const r=await A(t,e);return C(T(e),r).stdout}async function R(t,e){const r=await A(t,e);if(r.exitCode===0)return r.stdout.trim()||null;if(r.exitCode===1&&r.stdout.trim().length===0&&r.stderr.trim().length===0)return null;throw C(T(e),r),new Error("Unreachable Git command result")}function A(t,e){return rt(t,["--no-replace-objects","--no-pager","--no-optional-locks","-c","core.fsmonitor=false","-c","core.quotePath=true",...e],{repositoryConfigOnly:!0})}async function J(t,e){if(await R(t,["rev-parse","--verify","--quiet","HEAD"])!==e)throw new Error("Git HEAD changed while collecting repository state")}function O(t,e){if(t.length===0)return[];if(!t.endsWith(`
|
|
3
|
+
`))throw new Error(`${e} returned an unterminated path record`);return t.slice(0,-1).split(`
|
|
4
|
+
`)}function T(t){const e=t.find(r=>!r.startsWith("-"));return e?`Git ${e}`:"Git command"}function Ft(t){return`${t.stderr}
|
|
5
|
+
${t.stdout}`.toLowerCase().includes("not a git repository")}function jt(t){let e=f.realpathSync.native(s.resolve(t)),r=f.statSync(e).dev;const o=Ct(),n=Dt(process.env.GIT_DISCOVERY_ACROSS_FILESYSTEM);let i=s.dirname(e);for(;i!==e;){if(o.has(e))return!1;if(Q(s.join(e,".git")))return!0;const a=f.statSync(i).dev;if(!n&&a!==r)return!1;e=i,r=a,i=s.dirname(e)}return o.has(e)?!1:Q(s.join(e,".git"))}function Ct(){const t=process.env.GIT_CEILING_DIRECTORIES;return t?new Set(t.split(s.delimiter).filter(Boolean).map(e=>qt(e))):new Set}function qt(t){const e=s.resolve(t);try{return f.realpathSync.native(e)}catch(r){if(S(r,"ENOENT")||S(r,"ENOTDIR"))return e;throw r}}function Dt(t){return/^(?:1|on|true|yes)$/iu.test(t||"")}function Q(t){try{return f.lstatSync(t),!0}catch(e){if(S(e,"ENOENT")||S(e,"ENOTDIR"))return!1;throw e}}function S(t,e){return t!==null&&typeof t=="object"&&"code"in t&&Reflect.get(t,"code")===e}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type NormalizedConfiguredStep } from "./configured-steps.js";
|
|
2
|
+
export type { BuildConfigInput, BuildConfigInputBase, NextBuildConfigInput, ScriptBuildConfigInput, StepsBuildConfigInput, TscBuildConfigInput, } from "../config/authoring/build-config-contract.js";
|
|
3
|
+
export interface NormalizedBuildConfigBase {
|
|
4
|
+
inputs: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface NormalizedTscBuildConfig extends NormalizedBuildConfigBase {
|
|
7
|
+
cwd: string | null;
|
|
8
|
+
entry: string;
|
|
9
|
+
kind: "tsc";
|
|
10
|
+
outDir: string;
|
|
11
|
+
tsconfig: string;
|
|
12
|
+
}
|
|
13
|
+
export interface NormalizedScriptBuildConfig extends NormalizedBuildConfigBase {
|
|
14
|
+
cwd: string | null;
|
|
15
|
+
kind: "script";
|
|
16
|
+
script: string;
|
|
17
|
+
}
|
|
18
|
+
export interface NormalizedNextBuildConfig extends NormalizedBuildConfigBase {
|
|
19
|
+
cwd: string | null;
|
|
20
|
+
distDir: string;
|
|
21
|
+
kind: "next";
|
|
22
|
+
tsconfig: string;
|
|
23
|
+
}
|
|
24
|
+
export interface NormalizedStepsBuildConfig extends NormalizedBuildConfigBase {
|
|
25
|
+
kind: "steps";
|
|
26
|
+
steps: NormalizedConfiguredStep[];
|
|
27
|
+
}
|
|
28
|
+
export type NormalizedBuildConfig = NormalizedTscBuildConfig | NormalizedScriptBuildConfig | NormalizedNextBuildConfig | NormalizedStepsBuildConfig;
|
|
29
|
+
export interface NormalizedBuildPrepareConfig {
|
|
30
|
+
inputs: string[];
|
|
31
|
+
steps: NormalizedConfiguredStep[];
|
|
32
|
+
}
|
|
33
|
+
export declare function normalizeBuildConfig(value: unknown, label: string): NormalizedBuildConfig | null;
|
|
34
|
+
export declare function buildConfigToPrepare(build: NormalizedBuildConfig | null | undefined): NormalizedBuildPrepareConfig;
|
|
35
|
+
export declare function compiledEntryFromBuild(build: NormalizedBuildConfig | null | undefined): string | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"path";import{normalizeConfiguredInputs as c,normalizeConfiguredSteps as p,normalizeOptionalString as e}from"./configured-steps.js";export function normalizeBuildConfig(t,s){if(t==null)return null;if(!m(t))throw new Error(`${s} must be an object`);const n=e(t.kind);if(n==="tsc")return{kind:n,cwd:e(t.cwd),entry:e(t.entry)||"src/index.ts",tsconfig:e(t.tsconfig)||"tsconfig.json",outDir:e(t.outDir)||"dist",inputs:c(t.inputs,s)};if(n==="script"){const r=e(t.script);if(!r)throw new Error(`${s}.script must be a non-empty string`);return{kind:n,cwd:e(t.cwd),script:r,inputs:c(t.inputs,s)}}if(n==="next")return{kind:n,cwd:e(t.cwd),distDir:e(t.distDir)||"dist",tsconfig:e(t.tsconfig)||"tsconfig.json",inputs:c(t.inputs,s)};if(n==="steps")return{kind:n,inputs:c(t.inputs,s),steps:p(t.steps,`${s}.steps`)};throw new Error(`${s}.kind must be one of: tsc, script, next, steps`)}export function buildConfigToPrepare(t){if(!t)return{inputs:[],steps:[]};if(t.kind==="steps")return{inputs:[...t.inputs],steps:[...t.steps]};if(t.kind==="script")return{inputs:[...t.inputs],steps:[{kind:"command",cmd:t.script,cwd:t.cwd||void 0,inputs:[]}]};if(t.kind==="next")return{inputs:t.inputs.length>0?[...t.inputs]:w(t),steps:[{kind:"module",specifier:"@gfdelarue/testkit/config/next-runtime-tsconfig#writeNextRuntimeTsconfig",cwd:t.cwd||void 0,inputs:[]},{kind:"command",cmd:"{bin:next} build",cwd:t.cwd||void 0,inputs:[]}]};const s=t.inputs.length>0?[...t.inputs]:d(t),n=`{bin:tsc} -p ${t.tsconfig} --outDir "{prepareDir}/${t.outDir}"`,r=u(t.entry);return{inputs:s,steps:[{kind:"command",cmd:n,cwd:t.cwd||void 0,inputs:[]},{kind:"module",specifier:"@gfdelarue/testkit/config/build-assets#copyTscRuntimeAssets",cwd:t.cwd||void 0,inputs:[],args:{sourceDir:r,outDir:t.outDir}}]}}export function compiledEntryFromBuild(t){return!t||t.kind!=="tsc"?null:o.posix.join(t.outDir,f(t.entry))}function f(t){const n=t.split(o.sep).join("/").replace(/\.[cm]?[jt]sx?$/i,".js");return n.startsWith("src/")?n.slice(4):n}function u(t){const s=t.split(o.sep).join("/");if(s.startsWith("src/"))return"src";const n=s.split("/").filter(Boolean);return n.length>1?n[0]??".":"."}function d(t){const s=new Set([i(t.cwd,t.tsconfig),i(t.cwd,"package.json")]),n=i(t.cwd,t.entry.split(o.sep).join("/")),r=n.includes("/")?n.slice(0,n.indexOf("/")):n;return r&&s.add(r),[...s]}function w(t){return[...new Set([i(t.cwd,t.tsconfig),i(t.cwd,"package.json"),i(t.cwd,"src"),i(t.cwd,"app"),i(t.cwd,"public"),i(t.cwd,"next.config.js"),i(t.cwd,"next.config.mjs"),i(t.cwd,"next.config.ts")])]}function i(t,s){const n=(t||"").split(o.sep).join("/").replace(/^\.\/+/,"").replace(/\/+$/g,""),r=s.split(o.sep).join("/").replace(/^\.\/+/,"");return!n||n==="."?r:`${n}/${r}`.replace(/\/+/g,"/")}function m(t){return t!==null&&typeof t=="object"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Public Testkit modules safe to bundle into Node-hosted lifecycle steps. */
|
|
2
|
+
export declare const CONFIGURED_STEP_TESTKIT_MODULE_SPECIFIERS: readonly ["@gfdelarue/testkit", "@gfdelarue/testkit/config", "@gfdelarue/testkit/config/build-assets", "@gfdelarue/testkit/config/database-steps", "@gfdelarue/testkit/config/next-runtime-tsconfig", "@gfdelarue/testkit/drizzle", "@gfdelarue/testkit/env", "@gfdelarue/testkit/tooling/vitest"];
|
|
3
|
+
export type ConfiguredStepTestkitModuleSpecifier = (typeof CONFIGURED_STEP_TESTKIT_MODULE_SPECIFIERS)[number];
|
|
4
|
+
/**
|
|
5
|
+
* Where each configured-step module lives under dist/, as extensionless path
|
|
6
|
+
* segments. Runtime entry points append ".js"; type lookups append ".d.ts".
|
|
7
|
+
*/
|
|
8
|
+
export declare const CONFIGURED_STEP_TESTKIT_MODULE_DIST_PATHS: {
|
|
9
|
+
readonly "@gfdelarue/testkit": readonly ["index"];
|
|
10
|
+
readonly "@gfdelarue/testkit/config": readonly ["config", "authoring", "index"];
|
|
11
|
+
readonly "@gfdelarue/testkit/config/build-assets": readonly ["config", "runtime", "build-assets"];
|
|
12
|
+
readonly "@gfdelarue/testkit/config/database-steps": readonly ["database", "steps"];
|
|
13
|
+
readonly "@gfdelarue/testkit/config/next-runtime-tsconfig": readonly ["config", "runtime", "next-runtime-tsconfig"];
|
|
14
|
+
readonly "@gfdelarue/testkit/drizzle": readonly ["database", "drizzle", "index"];
|
|
15
|
+
readonly "@gfdelarue/testkit/env": readonly ["config", "runtime", "env", "index"];
|
|
16
|
+
readonly "@gfdelarue/testkit/tooling/vitest": readonly ["toolchains", "vitest", "index"];
|
|
17
|
+
};
|
|
18
|
+
export declare function isTestkitPackageSpecifier(specifier: string): boolean;
|
|
19
|
+
export declare function requireConfiguredStepTestkitModuleSpecifier(specifier: string): ConfiguredStepTestkitModuleSpecifier;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const CONFIGURED_STEP_TESTKIT_MODULE_SPECIFIERS=["@gfdelarue/testkit","@gfdelarue/testkit/config","@gfdelarue/testkit/config/build-assets","@gfdelarue/testkit/config/database-steps","@gfdelarue/testkit/config/next-runtime-tsconfig","@gfdelarue/testkit/drizzle","@gfdelarue/testkit/env","@gfdelarue/testkit/tooling/vitest"];const n=new Set(["@gfdelarue/testkit/k6","@gfdelarue/testkit/node-vitest/contract","@gfdelarue/testkit/node-vitest/data","@gfdelarue/testkit/playwright"]);export const CONFIGURED_STEP_TESTKIT_MODULE_DIST_PATHS={"@gfdelarue/testkit":["index"],"@gfdelarue/testkit/config":["config","authoring","index"],"@gfdelarue/testkit/config/build-assets":["config","runtime","build-assets"],"@gfdelarue/testkit/config/database-steps":["database","steps"],"@gfdelarue/testkit/config/next-runtime-tsconfig":["config","runtime","next-runtime-tsconfig"],"@gfdelarue/testkit/drizzle":["database","drizzle","index"],"@gfdelarue/testkit/env":["config","runtime","env","index"],"@gfdelarue/testkit/tooling/vitest":["toolchains","vitest","index"]};export function isTestkitPackageSpecifier(t){return t==="@gfdelarue/testkit"||t.startsWith("@gfdelarue/testkit/")}export function requireConfiguredStepTestkitModuleSpecifier(t){if(n.has(t))throw new Error(`Configured lifecycle modules run in Node and may not import engine authoring module ${JSON.stringify(t)}`);const e=CONFIGURED_STEP_TESTKIT_MODULE_SPECIFIERS.find(i=>i===t);if(!e)throw new Error(`Unsupported configured Testkit module specifier ${JSON.stringify(t)}`);return e}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { ConfiguredStepInput } from "../config/authoring/configured-step-contract.js";
|
|
2
|
+
export type { ConfiguredCommandStepInput, ConfiguredModuleStepInput, ConfiguredSqlFileStepInput, ConfiguredStepBaseInput, ConfiguredStepInput, } from "../config/authoring/configured-step-contract.js";
|
|
3
|
+
export type JsonValue = boolean | null | number | string | JsonValue[] | {
|
|
4
|
+
[key: string]: JsonValue;
|
|
5
|
+
};
|
|
6
|
+
export interface NormalizedConfiguredStepBase {
|
|
7
|
+
args?: JsonValue;
|
|
8
|
+
cwd?: string | null;
|
|
9
|
+
inputs: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface NormalizedConfiguredCommandStep extends NormalizedConfiguredStepBase {
|
|
12
|
+
cmd: string;
|
|
13
|
+
kind: "command";
|
|
14
|
+
}
|
|
15
|
+
export interface NormalizedConfiguredSqlFileStep extends NormalizedConfiguredStepBase {
|
|
16
|
+
kind: "sql-file";
|
|
17
|
+
path: string;
|
|
18
|
+
}
|
|
19
|
+
export interface NormalizedConfiguredModuleStep extends NormalizedConfiguredStepBase {
|
|
20
|
+
kind: "module";
|
|
21
|
+
specifier: string;
|
|
22
|
+
}
|
|
23
|
+
export type NormalizedConfiguredStep = NormalizedConfiguredCommandStep | NormalizedConfiguredSqlFileStep | NormalizedConfiguredModuleStep;
|
|
24
|
+
export type ConfiguredStepReference = ConfiguredStepInput | NormalizedConfiguredStep;
|
|
25
|
+
export interface ConfiguredStepCollection {
|
|
26
|
+
inputs?: readonly string[];
|
|
27
|
+
steps?: readonly ConfiguredStepReference[];
|
|
28
|
+
}
|
|
29
|
+
export interface ConfiguredStepCollectionValidation extends ConfiguredStepCollection {
|
|
30
|
+
label: string;
|
|
31
|
+
productDir: string;
|
|
32
|
+
}
|
|
33
|
+
export type ConfiguredStringTransform = (value: string) => string;
|
|
34
|
+
export declare function normalizeOptionalString(value: unknown): string | null;
|
|
35
|
+
export declare function normalizeConfiguredInputs(value: unknown, label: string): string[];
|
|
36
|
+
export declare function normalizeConfiguredSteps(value: unknown, label: string): NormalizedConfiguredStep[];
|
|
37
|
+
export declare function normalizeConfiguredStep(step: unknown, label: string): NormalizedConfiguredStep;
|
|
38
|
+
export declare function parseModuleSpecifier(specifier: unknown): {
|
|
39
|
+
exportName: string;
|
|
40
|
+
modulePath: string;
|
|
41
|
+
};
|
|
42
|
+
export declare function normalizeStepArgs(value: unknown, label: string): JsonValue | undefined;
|
|
43
|
+
export declare function isBareModuleSpecifier(modulePath: unknown): boolean;
|
|
44
|
+
export declare function resolveConfiguredCwd(productDir: string, stepCwd: string | null | undefined): string;
|
|
45
|
+
export declare function resolveConfiguredPath(productDir: string, stepCwd: string | null | undefined, targetPath: string): string;
|
|
46
|
+
export declare function collectConfiguredInputs(productDir: string, { inputs, steps }?: ConfiguredStepCollection): string[];
|
|
47
|
+
export declare function summarizeConfiguredStep(step: NormalizedConfiguredStep): string;
|
|
48
|
+
export declare function finalizeConfiguredInputs(inputs: readonly string[] | undefined, transform: ConfiguredStringTransform): string[];
|
|
49
|
+
export declare function finalizeConfiguredStep(step: NormalizedConfiguredStep, transform: ConfiguredStringTransform): NormalizedConfiguredStep;
|
|
50
|
+
export declare function finalizeConfiguredSteps(steps: readonly NormalizedConfiguredStep[] | undefined, transform: ConfiguredStringTransform): NormalizedConfiguredStep[];
|
|
51
|
+
export declare function validateConfiguredCollection({ productDir, label, inputs, steps, }: ConfiguredStepCollectionValidation): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import c from"fs";import s from"path";import{isTestkitPackageSpecifier as m,requireConfiguredStepTestkitModuleSpecifier as w}from"./configured-step-testkit-modules.js";export function normalizeOptionalString(n){if(typeof n!="string")return null;const r=n.trim();return r.length>0?r:null}export function normalizeConfiguredInputs(n,r){if(n==null)return[];if(!g(n))throw new Error(`${r}.inputs must be an array`);return n.map((t,e)=>{const i=normalizeOptionalString(t);if(!i)throw new Error(`${r}.inputs[${String(e)}] must be a non-empty string`);return i})}export function normalizeConfiguredSteps(n,r){if(n==null)return[];if(!g(n))throw new Error(`${r} must be an array`);return n.map((t,e)=>normalizeConfiguredStep(t,`${r}[${String(e)}]`))}export function normalizeConfiguredStep(n,r){if(!p(n))throw new Error(`${r} must be an object`);const t=normalizeOptionalString(n.kind);if(t==="command"){const e=normalizeOptionalString(n.run);if(!e)throw new Error(`${r}.run must be a non-empty string`);const i=normalizeStepArgs(n.args,r);return{kind:t,cmd:e,cwd:normalizeOptionalString(n.cwd),inputs:normalizeConfiguredInputs(n.inputs,r),...i!==void 0?{args:i}:{}}}if(t==="sql-file"){const e=normalizeOptionalString(n.path);if(!e)throw new Error(`${r}.path must be a non-empty string`);const i=normalizeStepArgs(n.args,r);return{kind:t,path:e,cwd:normalizeOptionalString(n.cwd),inputs:normalizeConfiguredInputs(n.inputs,r),...i!==void 0?{args:i}:{}}}if(t==="module"){const e=normalizeOptionalString(n.target);if(!e)throw new Error(`${r}.target must be a non-empty string`);const i=normalizeStepArgs(n.args,r);return{kind:t,specifier:e,cwd:normalizeOptionalString(n.cwd),inputs:normalizeConfiguredInputs(n.inputs,r),...i!==void 0?{args:i}:{}}}throw new Error(`${r}.kind must be one of: command, sql-file, module`)}export function parseModuleSpecifier(n){const[r="",t]=String(n).split("#",2);return{modulePath:r,exportName:t||"default"}}export function normalizeStepArgs(n,r){if(n!=null)try{const t=JSON.stringify(n);if(typeof t!="string")throw new Error("JSON serialization returned undefined");return JSON.parse(t)}catch{throw new Error(`${r}.args must be JSON-serializable`)}}export function isBareModuleSpecifier(n){return typeof n!="string"||n.length===0||n.startsWith("./")||n.startsWith("../")?!1:!s.isAbsolute(n)}export function resolveConfiguredCwd(n,r){return s.resolve(n,r||".")}export function resolveConfiguredPath(n,r,t){return s.resolve(resolveConfiguredCwd(n,r),t)}export function collectConfiguredInputs(n,{inputs:r=[],steps:t=[]}={}){const e=new Set;for(const i of r)e.add(resolveConfiguredPath(n,null,i));for(const i of t){if(i.kind==="sql-file"&&e.add(resolveConfiguredPath(n,i.cwd,i.path)),i.kind==="module"){const f=a(i),{modulePath:o}=parseModuleSpecifier(f),u=resolveConfiguredPath(n,i.cwd,o);o.startsWith("@gfdelarue/testkit")||c.existsSync(u)?o.startsWith("@gfdelarue/testkit")||e.add(u):isBareModuleSpecifier(o)||e.add(u)}for(const f of i.inputs||[])e.add(resolveConfiguredPath(n,i.cwd,f))}return[...e].sort()}export function summarizeConfiguredStep(n){return n.kind==="command"?`command: ${n.cmd.trim()}`:n.kind==="sql-file"?`sql: ${n.path}`:`module: ${n.specifier}`}export function finalizeConfiguredInputs(n=[],r){return n.map(t=>r(t))}export function finalizeConfiguredStep(n,r){return n.kind==="command"?{...n,cmd:r(n.cmd),...typeof n.cwd=="string"?{cwd:r(n.cwd)}:{},inputs:finalizeConfiguredInputs(n.inputs,r),...n.args!==void 0?{args:n.args}:{}}:n.kind==="sql-file"?{...n,path:r(n.path),...typeof n.cwd=="string"?{cwd:r(n.cwd)}:{},inputs:finalizeConfiguredInputs(n.inputs,r),...n.args!==void 0?{args:n.args}:{}}:{...n,specifier:r(n.specifier),...typeof n.cwd=="string"?{cwd:r(n.cwd)}:{},inputs:finalizeConfiguredInputs(n.inputs,r),...n.args!==void 0?{args:n.args}:{}}}export function finalizeConfiguredSteps(n=[],r){return n.map(t=>finalizeConfiguredStep(t,r))}export function validateConfiguredCollection({productDir:n,label:r,inputs:t=[],steps:e=[]}){for(const i of t)d(resolveConfiguredPath(n,null,i),`${r} input`);for(const i of e){if(i.cwd&&d(resolveConfiguredCwd(n,i.cwd),`${r} step cwd`),i.kind==="sql-file"&&d(resolveConfiguredPath(n,i.cwd,i.path),`${r} sql file`),i.kind==="module"){const f=a(i),{modulePath:o}=parseModuleSpecifier(f),u=resolveConfiguredPath(n,i.cwd,o);m(o)?w(o):c.existsSync(u)?d(u,`${r} module`):isBareModuleSpecifier(o)||d(u,`${r} module`)}for(const f of i.inputs||[])d(resolveConfiguredPath(n,i.cwd,f),`${r} step input`)}}function d(n,r){if(!c.existsSync(n))throw new Error(`${r} does not exist: ${n}`)}function a(n){const r="specifier"in n?n.specifier:void 0,t="target"in n?n.target:void 0;return r||t}function p(n){return n!==null&&typeof n=="object"}function g(n){return Array.isArray(n)}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
type RuntimeIdentifier = number | string;
|
|
2
|
+
export type RuntimeUrlMapping = readonly [false | null | string | undefined, string];
|
|
3
|
+
type StringMap = ReadonlyMap<string, string>;
|
|
4
|
+
export interface ExecutionEnvironmentLease {
|
|
5
|
+
leaseDir?: null | string;
|
|
6
|
+
leaseId?: null | RuntimeIdentifier;
|
|
7
|
+
}
|
|
8
|
+
export interface BuildExecutionEnvironmentOptions {
|
|
9
|
+
includeTestkitControls?: boolean;
|
|
10
|
+
inheritProcessEnv?: boolean;
|
|
11
|
+
mode?: string;
|
|
12
|
+
omitRuntimeDatabaseBindings?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface DatabaseTemplateBindings {
|
|
15
|
+
database: string;
|
|
16
|
+
host: string;
|
|
17
|
+
password: string;
|
|
18
|
+
port: number | string;
|
|
19
|
+
sslMode: string;
|
|
20
|
+
url: string;
|
|
21
|
+
user: string;
|
|
22
|
+
}
|
|
23
|
+
export type DatabaseTemplateBindingsReader = (stateDir: string) => DatabaseTemplateBindings | null;
|
|
24
|
+
export interface ExecutionTemplateContextValues {
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
baseUrlByService?: StringMap;
|
|
27
|
+
databaseBindingsByService?: ReadonlyMap<string, Readonly<DatabaseTemplateBindings> | null>;
|
|
28
|
+
databaseBindingsReader?: DatabaseTemplateBindingsReader;
|
|
29
|
+
leaseDir?: null | string;
|
|
30
|
+
leaseId?: null | RuntimeIdentifier;
|
|
31
|
+
portMap?: ReadonlyMap<string, number>;
|
|
32
|
+
prepareDir?: null | string;
|
|
33
|
+
privateBaseUrlByService?: StringMap;
|
|
34
|
+
productDir?: null | string;
|
|
35
|
+
publicBaseUrlByService?: StringMap;
|
|
36
|
+
publicHost?: null | string;
|
|
37
|
+
readyUrlByService?: StringMap;
|
|
38
|
+
runtimeDir?: string;
|
|
39
|
+
runtimeId?: null | RuntimeIdentifier;
|
|
40
|
+
runtimeLabel?: null | RuntimeIdentifier;
|
|
41
|
+
serviceContextUrlByService?: StringMap;
|
|
42
|
+
serviceCwd?: null | string;
|
|
43
|
+
serviceName?: string;
|
|
44
|
+
serviceStateDir?: null | string;
|
|
45
|
+
stateDirByService?: StringMap;
|
|
46
|
+
urlMappings?: readonly RuntimeUrlMapping[];
|
|
47
|
+
}
|
|
48
|
+
export interface ExecutionEnvironmentLocalConfig {
|
|
49
|
+
env?: Readonly<Record<string, string>>;
|
|
50
|
+
}
|
|
51
|
+
export interface ExecutionEnvironmentTestkitConfig {
|
|
52
|
+
local?: ExecutionEnvironmentLocalConfig | null;
|
|
53
|
+
mode?: string;
|
|
54
|
+
prepareDir?: null | string;
|
|
55
|
+
serviceEnv?: Readonly<Record<string, string>>;
|
|
56
|
+
templateContext?: ExecutionTemplateContextValues;
|
|
57
|
+
ui?: unknown;
|
|
58
|
+
}
|
|
59
|
+
export interface ExecutionEnvironmentConfig {
|
|
60
|
+
name: string;
|
|
61
|
+
productDir: string;
|
|
62
|
+
runtimeId?: null | RuntimeIdentifier;
|
|
63
|
+
runtimeLabel?: null | RuntimeIdentifier;
|
|
64
|
+
stateDir?: null | string;
|
|
65
|
+
testkit: ExecutionEnvironmentTestkitConfig;
|
|
66
|
+
}
|
|
67
|
+
export interface TemplateResolutionContext extends ExecutionTemplateContextValues {
|
|
68
|
+
serviceName: string;
|
|
69
|
+
}
|
|
70
|
+
export declare function buildExecutionEnv(config: Readonly<ExecutionEnvironmentConfig>, extraEnv?: Readonly<NodeJS.ProcessEnv> | null, processEnv?: Readonly<NodeJS.ProcessEnv> | null, options?: Readonly<BuildExecutionEnvironmentOptions>): NodeJS.ProcessEnv;
|
|
71
|
+
export declare function buildTemplateExecutionEnv(config: Readonly<ExecutionEnvironmentConfig>, extraEnv?: Readonly<NodeJS.ProcessEnv> | null, processEnv?: Readonly<NodeJS.ProcessEnv> | null, options?: Readonly<BuildExecutionEnvironmentOptions>): NodeJS.ProcessEnv;
|
|
72
|
+
export declare function buildTaskExecutionEnv(config: Readonly<ExecutionEnvironmentConfig>, lease: Readonly<ExecutionEnvironmentLease> | null, extraEnv?: Readonly<NodeJS.ProcessEnv> | null, processEnv?: Readonly<NodeJS.ProcessEnv> | null, options?: Readonly<BuildExecutionEnvironmentOptions>): NodeJS.ProcessEnv;
|
|
73
|
+
export declare function buildTemplateContext(config: Readonly<ExecutionEnvironmentConfig>, lease: Readonly<ExecutionEnvironmentLease> | null): TemplateResolutionContext;
|
|
74
|
+
export declare function finalizeString(value: string, context: TemplateResolutionContext): string;
|
|
75
|
+
export declare function finalizeSerializable(value: unknown, context: TemplateResolutionContext): unknown;
|
|
76
|
+
export declare function resolveTemplateString(value: string, context: TemplateResolutionContext): string;
|
|
77
|
+
export declare function resolveTemplateString(value: unknown, context: TemplateResolutionContext): unknown;
|
|
78
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import u from"path";import{joinPathList as m,packageBinPath as b,shellQuote as f}from"../process/host/platform.js";export function buildExecutionEnv(r,e={},t=process.env,a={}){return o(r,null,e,t,a)}export function buildTemplateExecutionEnv(r,e={},t=process.env,a={}){return o(r,null,e,t,{...a,omitRuntimeDatabaseBindings:!0})}export function buildTaskExecutionEnv(r,e,t={},a=process.env,s={}){return o(r,e,t,a,s)}function o(r,e,t,a,s={}){const i=s.inheritProcessEnv===!1?{}:{...a};delete i.DATABASE_URL;const n=buildTemplateContext(r,e),p=s.omitRuntimeDatabaseBindings?d(r.testkit.serviceEnv||{}):r.testkit.serviceEnv||{},v=s.omitRuntimeDatabaseBindings?d(r.testkit.local?.env||{}):r.testkit.local?.env||{};return{...i,...c(p,n),...c(v,n),...c(t,n),...s.includeTestkitControls===!1?{}:{TESTKIT_ACTIVE:"1",TESTKIT_MODE:s.mode||r.testkit.mode||"test",...r.runtimeId?{TESTKIT_RUNTIME_ID:String(r.runtimeId)}:{},...e?.leaseId?{TESTKIT_LEASE_ID:String(e.leaseId)}:{},...e?.leaseDir?{TESTKIT_LEASE_DIR:e.leaseDir}:{}}}}export function buildTemplateContext(r,e){const t=r.testkit.templateContext||{};return{...t,runtimeId:r.runtimeId||t.runtimeId||null,runtimeLabel:r.runtimeLabel||t.runtimeLabel||null,productDir:r.productDir||t.productDir||null,serviceName:r.name,serviceStateDir:r.stateDir||t.serviceStateDir||null,prepareDir:r.testkit.prepareDir||t.prepareDir||null,leaseId:e?.leaseId||null,leaseDir:e?.leaseDir||null}}export function finalizeString(r,e){let t=resolveTemplateString(r,e);for(const[a,s]of e.urlMappings||[])a&&s&&a!==s&&(t=t.split(a).join(s));return t}export function finalizeSerializable(r,e){return typeof r=="string"?finalizeString(r,e):Array.isArray(r)?r.map(t=>finalizeSerializable(t,e)):r===null||typeof r!="object"?r:Object.fromEntries(Object.entries(r).map(([t,a])=>[t,finalizeSerializable(a,e)]))}export function resolveTemplateString(r,e){return typeof r!="string"?r:r.replace(/\{([a-zA-Z]+)(?::([^}]+))?\}/g,(t,a,s)=>{switch(a){case"runtime":case"runtimeId":return String(e.runtimeId);case"service":return e.serviceName;case"stateDir":return String(e.serviceStateDir);case"productDir":return e.productDir||"";case"bin":{const i=u.resolve(e.productDir||process.cwd(),e.serviceCwd||".");return f(b(i,s))}case"pathList":{const i=l(s||"").split(",").map(n=>n.trim()).filter(Boolean).map(n=>u.resolve(e.productDir||process.cwd(),n));return m(i)}case"prepareDir":return e.prepareDir||"";case"lease":return e.leaseId?String(e.leaseId):"";case"leaseDir":return e.leaseDir||"";case"port":{const i=s||e.serviceName,n=e.portMap?.get(i);if(!n)throw new Error(`Unknown port placeholder for service "${i}"`);return String(n)}case"baseUrl":{const i=s||e.serviceName,n=e.baseUrlByService?.get(i);if(!n)throw new Error(`Unknown baseUrl placeholder for service "${i}"`);return n}case"readyUrl":{const i=s||e.serviceName,n=e.readyUrlByService?.get(i);if(!n)throw new Error(`Unknown readyUrl placeholder for service "${i}"`);return n}case"publicHost":return e.publicHost||"127.0.0.1";case"publicBaseUrl":{const i=s||e.serviceName,n=e.publicBaseUrlByService?.get(i)||e.baseUrlByService?.get(i);if(!n)throw new Error(`Unknown publicBaseUrl placeholder for service "${i}"`);return n}case"privateBaseUrl":{const i=s||e.serviceName,n=e.privateBaseUrlByService?.get(i)||e.baseUrlByService?.get(i);if(!n)throw new Error(`Unknown privateBaseUrl placeholder for service "${i}"`);return n}case"serviceContextUrl":{const i=s||e.serviceName,n=e.serviceContextUrlByService?.get(i)||e.baseUrlByService?.get(i);if(!n)throw new Error(`Unknown serviceContextUrl placeholder for service "${i}"`);return n}case"dbUrl":case"dbHost":case"dbPort":case"dbName":case"dbUser":case"dbPassword":case"dbSsl":{const i=s||e.serviceName;return E(a,i,e)}default:throw new Error(`Unsupported template token "{${a}${s?`:${s}`:""}}"`)}})}function c(r,e){return Object.fromEntries(Object.entries(r||{}).map(([t,a])=>[t,typeof a=="string"?finalizeString(a,e):a]))}function d(r={}){return Object.fromEntries(Object.entries(r).filter(e=>{const t=e[1];return typeof t!="string"?!0:!/\{db(?:Url|Host|Port|Name|User|Password|Ssl)(?::[^}]+)?\}/.test(t)}))}function E(r,e,t){const a=t.stateDirByService?.get(e),s=t.databaseBindingsByService?t.databaseBindingsByService.get(e):a?t.databaseBindingsReader?.(a):null;if(!s)throw new Error(`Unknown database placeholder for service "${e}"`);switch(r){case"dbUrl":return s.url;case"dbHost":return s.host;case"dbPort":return String(s.port);case"dbName":return s.database;case"dbUser":return s.user;case"dbPassword":return s.password;case"dbSsl":return w(s)}}function w(r){const e=r.sslMode,t=l(e||"").trim();return t&&!U(t)?t:S(r.sslMode)?"1":"0"}function S(r){const e=l(r||"").trim().toLowerCase();return!!(e&&!["0","false","no","off","disable","disabled"].includes(e))}function U(r){return["0","1","true","false","yes","no","on","off","disable","disabled","require","verify-ca","verify-full"].includes(l(r||"").trim().toLowerCase())}function l(r){const e=Reflect.apply(String,void 0,[r]);if(typeof e!="string")throw new Error("String conversion returned an invalid result");return e}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { buildExecutionEnv, buildTaskExecutionEnv, buildTemplateContext, buildTemplateExecutionEnv, finalizeSerializable, finalizeString, resolveTemplateString, type BuildExecutionEnvironmentOptions, type DatabaseTemplateBindings, type DatabaseTemplateBindingsReader, type ExecutionEnvironmentConfig, type ExecutionEnvironmentLease, type ExecutionEnvironmentLocalConfig, type ExecutionEnvironmentTestkitConfig, type ExecutionTemplateContextValues, type RuntimeUrlMapping, type TemplateResolutionContext, } from "./environment.js";
|
|
2
|
+
export { collectConfiguredInputs, configuredCommandInvocation, parseModuleSpecifier, resolveConfiguredCwd, resolveConfiguredPath, type ConfiguredCommandInvocation, type ConfiguredStepReporter, type ConfiguredStepServiceConfig, } from "./run.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{buildExecutionEnv,buildTaskExecutionEnv,buildTemplateContext,buildTemplateExecutionEnv,finalizeSerializable,finalizeString,resolveTemplateString}from"./environment.js";export{collectConfiguredInputs,configuredCommandInvocation,parseModuleSpecifier,resolveConfiguredCwd,resolveConfiguredPath}from"./run.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import c from"fs";import{pathToFileURL as f}from"url";import{errorDetail as p}from"../kernel/error-serialization.js";const[,,r,o,i]=process.argv;(!r||!o||!i)&&(console.error("Usage: node module-runner.js <module-file> <export-name> <context-file>"),process.exit(1));try{const e=JSON.parse(c.readFileSync(i,"utf8")),t=await import(f(r).href),n=s(t,o);if(!a(n))throw new Error(`Template module step "${r}#${o}" did not export a function named "${o}"`);await n(e)}catch(e){console.error(p(e)),process.exit(1)}function s(e,t){if(!(typeof e!="object"||e===null))return Reflect.get(e,t)}function a(e){return typeof e=="function"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type CaptureStepOutputOptions } from "../evidence/step-output.js";
|
|
2
|
+
import { type NormalizedConfiguredStep } from "./configured-steps.js";
|
|
3
|
+
export { collectConfiguredInputs, parseModuleSpecifier, resolveConfiguredCwd, resolveConfiguredPath, } from "./configured-steps.js";
|
|
4
|
+
import { type ResolvedNodeToolchain, type ToolchainEnvironment, type ToolchainReportConfig, type ToolchainResolvedReporter, type ToolchainRuntimeConfig } from "../toolchains/index.js";
|
|
5
|
+
import type { SetupOperationHandle } from "../evidence/setup-progress.js";
|
|
6
|
+
import type { OwnedPostgresContainerRoute } from "../domain/postgres-route.js";
|
|
7
|
+
import { type OutputLineHandler } from "../process/index.js";
|
|
8
|
+
type RuntimeIdentifier = number | string;
|
|
9
|
+
export interface ConfiguredStepServiceConfig extends ToolchainRuntimeConfig, ToolchainReportConfig {
|
|
10
|
+
runtimeId?: RuntimeIdentifier | null;
|
|
11
|
+
stateDir?: string | null;
|
|
12
|
+
testkit: NonNullable<ToolchainRuntimeConfig["testkit"]> & {
|
|
13
|
+
prepareDir?: string | null;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface ConfiguredStepReporter extends ToolchainResolvedReporter<ConfiguredStepServiceConfig> {
|
|
17
|
+
outputMode?: string;
|
|
18
|
+
phaseStarted?: (label: string) => unknown;
|
|
19
|
+
setupOperationFinished?: (operation: SetupOperationHandle) => unknown;
|
|
20
|
+
writeDebugLine?: OutputLineHandler;
|
|
21
|
+
}
|
|
22
|
+
export interface ConfiguredCommandInvocation {
|
|
23
|
+
readonly args: readonly string[];
|
|
24
|
+
readonly command: string;
|
|
25
|
+
readonly windowsVerbatimArguments?: boolean;
|
|
26
|
+
}
|
|
27
|
+
interface RunConfiguredStepOptions extends CaptureStepOutputOptions {
|
|
28
|
+
ownedContainer?: OwnedPostgresContainerRoute | null;
|
|
29
|
+
signal?: AbortSignal;
|
|
30
|
+
timeoutMs: number;
|
|
31
|
+
}
|
|
32
|
+
export declare function runConfiguredStep(config: ConfiguredStepServiceConfig, step: Exclude<NormalizedConfiguredStep, {
|
|
33
|
+
kind: "sql-file";
|
|
34
|
+
}>, runtimeEnv: Readonly<ToolchainEnvironment>, resolvedToolchain: ResolvedNodeToolchain | null, options: Readonly<RunConfiguredStepOptions>): Promise<void>;
|
|
35
|
+
export declare function configuredCommandInvocation(command: string, env: Readonly<NodeJS.ProcessEnv>, platform?: NodeJS.Platform): ConfiguredCommandInvocation;
|
|
36
|
+
export declare function applySetupNodeOptions(env?: Readonly<ToolchainEnvironment>): ToolchainEnvironment;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{formatCapturedFailure as g,writeCapturedLine as S}from"../evidence/step-output.js";import w from"crypto";import m from"fs";import{createRequire as M}from"module";import u from"path";import{fileURLToPath as x}from"url";import"../config/runtime/build-assets.js";import{buildWithEsbuildRetry as D}from"../toolchains/esbuild.js";import{isBareModuleSpecifier as k,parseModuleSpecifier as f,resolveConfiguredCwd as C,resolveConfiguredPath as N}from"./configured-steps.js";import{CONFIGURED_STEP_TESTKIT_MODULE_DIST_PATHS as j,isTestkitPackageSpecifier as I,requireConfiguredStepTestkitModuleSpecifier as U}from"./configured-step-testkit-modules.js";export{collectConfiguredInputs,parseModuleSpecifier,resolveConfiguredCwd,resolveConfiguredPath}from"./configured-steps.js";import"../toolchains/index.js";import{resolvePosixCommandShell as L}from"../process/index.js";import{captureOutput as b,managedHostProcessInfrastructureError as R,startManagedHostProcess as h}from"../process/index.js";const y=String,E=u.resolve(u.dirname(x(import.meta.url)),"..",".."),$=Object.fromEntries(Object.entries(j).map(([e,t])=>[e,u.join(E,"dist",...t)+".js"])),A=u.join(E,"dist","steps","module-runner.js");export async function runConfiguredStep(e,t,r,o,n){const i=C(e.productDir,t.cwd);if(t.kind==="command"){const s=configuredCommandInvocation(t.cmd,r),d=h({args:s.args,cwd:i,displayLabel:`Configured step ${e.name}`,env:r,executable:s.command,windowsVerbatimArguments:s.windowsVerbatimArguments,outputMode:"caller-drained",signal:n.signal,timeoutMs:n.timeoutMs});await T(d,n);return}if(!H(t))return B(t);const{exportName:c}=f(t.specifier),a={args:t.args??{},databaseUrl:r.DATABASE_URL||null,productDir:e.productDir,cwd:i,serviceName:e.name,env:{...r},ownedContainer:n.ownedContainer||null,runtimeId:e.runtimeId||null,stateDir:e.stateDir,prepareDir:e.testkit.prepareDir||null},p=await F(e.productDir,t),l=`${p.outputFile}.${String(process.pid)}.${w.randomUUID()}.context.json`;m.writeFileSync(l,JSON.stringify(a));try{const s=h({args:[A,p.outputFile,c,l],cwd:i,displayLabel:`Configured module step ${e.name}`,env:r,executable:o?.nodeExecutable||process.execPath,outputMode:"caller-drained",signal:n.signal,timeoutMs:n.timeoutMs});await T(s,n)}finally{m.rmSync(l,{force:!0})}}export function configuredCommandInvocation(e,t,r=process.platform){return r==="win32"?{command:t.ComSpec?.trim()||"cmd.exe",args:["/d","/s","/c",`"${e}"`],windowsVerbatimArguments:!0}:{command:L(t),args:["-lc",e]}}export function applySetupNodeOptions(e={}){const t=y(e.TESTKIT_SETUP_NODE_OPTIONS||"").trim();return t?{...e,NODE_OPTIONS:[e.NODE_OPTIONS,t].filter(Boolean).join(" ")}:e}async function F(e,t){const{modulePath:r}=f(t.specifier),o=K(e,t),n=u.join(e,".testkit","_template-steps");m.mkdirSync(n,{recursive:!0});const i=v(o),c=u.join(n,`${u.basename(r).replace(/\W+/g,"-")}-${i.slice(0,12)}.mjs`);return await D({absWorkingDir:e,bundle:!0,entryPoints:[o],format:"esm",legalComments:"none",outfile:c,platform:"node",sourcemap:"inline",target:"es2020",plugins:[q()]}),{outputFile:c,cacheKey:i}}function K(e,t){const{modulePath:r}=f(t.specifier);if(I(r))return P(r);const o=N(e,t.cwd,r);if(m.existsSync(o)||!k(r))return o;const n=C(e,t.cwd);return M(u.join(n,"__testkit__.cjs")).resolve(r)}function v(e){const t=m.readFileSync(e,"utf8");return w.createHash("sha256").update(e).update("\0").update(t).digest("hex")}function q(){return{name:"testkit-configured-step-modules",setup(e){e.onResolve({filter:/^@gfdelarue\/testkit(?:\/.*)?$/},t=>({namespace:"file",path:P(t.path)}))}}}function P(e){const t=U(e);return $[t]}async function T(e,{livePrefix:t="",liveWriter:r=null,logRecord:o=null}={}){const n=[],i=[],c=[b(O(e.stdout),{livePrefix:t,liveWriter:r,onLine:d=>{n.push(d),S(o,"stdout",d)}}),b(O(e.stderr),{livePrefix:t,liveWriter:r,onLine:d=>{i.push(d),S(o,"stderr",d)}})],a=await e.completion;await Promise.all(c);const p=n.join(`
|
|
2
|
+
`),l=i.join(`
|
|
3
|
+
`),s=R("Configured step",a);if(s)throw new Error(g(s.message,p,l,"Configured step process supervision failed"),{cause:s});if(a.exitCode!==0)throw new Error(g(a.exitSignal?`Configured step terminated by ${a.exitSignal}`:null,p,l,`Step failed with exit code ${String(a.exitCode)}`))}function O(e){return!e||!("read"in e)?null:e}function H(e){return _(e,"kind")==="module"}function B(e){throw new Error(`Unsupported template step kind "${y(_(e,"kind"))}"`)}function _(e,t){if(!((typeof e!="object"||e===null)&&typeof e!="function"))return Reflect.get(e,t)}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare const ARCHIVE_FORMATS: readonly ["tar", "tar.gz", "zip"];
|
|
2
|
+
export declare const MAX_ARCHIVE_ENTRIES = 100000;
|
|
3
|
+
export type ArchiveFormat = (typeof ARCHIVE_FORMATS)[number];
|
|
4
|
+
export type ArchiveEntryKind = "directory" | "file" | "symlink";
|
|
5
|
+
export interface ArchiveEntry {
|
|
6
|
+
readonly kind: ArchiveEntryKind | "forbidden";
|
|
7
|
+
readonly linkTarget?: string;
|
|
8
|
+
readonly mode: number;
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly rawType: string;
|
|
11
|
+
readonly sizeBytes: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ArchiveInspectionOptions {
|
|
14
|
+
readonly maxEntries?: number;
|
|
15
|
+
readonly maxUnpackedSizeBytes?: number;
|
|
16
|
+
readonly signal?: AbortSignal;
|
|
17
|
+
}
|
|
18
|
+
export interface ArchiveInspector {
|
|
19
|
+
readonly formats: readonly ArchiveFormat[];
|
|
20
|
+
inspect(archivePath: string, format: ArchiveFormat, options?: Readonly<ArchiveInspectionOptions>): Promise<readonly ArchiveEntry[]>;
|
|
21
|
+
}
|
|
22
|
+
export interface ArchiveExtractor extends ArchiveInspector {
|
|
23
|
+
extract(archivePath: string, destination: string, format: ArchiveFormat, options?: Readonly<ArchiveInspectionOptions>): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
export declare class UnsafeArchiveError extends Error {
|
|
26
|
+
readonly code = "TESTKIT_ARCHIVE_UNSAFE";
|
|
27
|
+
constructor(message: string, options?: ErrorOptions);
|
|
28
|
+
}
|
|
29
|
+
export declare class TarArchiveInspector implements ArchiveInspector {
|
|
30
|
+
readonly formats: readonly ["tar", "tar.gz"];
|
|
31
|
+
inspect(archivePath: string, format: ArchiveFormat, options?: Readonly<ArchiveInspectionOptions>): Promise<readonly ArchiveEntry[]>;
|
|
32
|
+
}
|
|
33
|
+
export declare class ZipArchiveExtractor implements ArchiveExtractor {
|
|
34
|
+
readonly formats: readonly ["zip"];
|
|
35
|
+
inspect(archivePath: string, format: ArchiveFormat, options?: Readonly<ArchiveInspectionOptions>): Promise<readonly ArchiveEntry[]>;
|
|
36
|
+
extract(archivePath: string, destination: string, format: ArchiveFormat, options?: Readonly<ArchiveInspectionOptions>): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Validates archive paths and the complete symbolic-link graph independently
|
|
40
|
+
* of a caller's exact entry and byte counts. Extractors call this before writing
|
|
41
|
+
* anything so a caller cannot bypass the topology checks by using extract()
|
|
42
|
+
* directly.
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateArchiveEntryTopology(entries: readonly ArchiveEntry[]): void;
|
|
45
|
+
export declare function assertSafeArchiveEntry(entry: Readonly<ArchiveEntry>): string;
|
|
46
|
+
export declare function normalizeArchivePath(value: string): string;
|
|
47
|
+
export declare function portableCollisionKey(value: string): string;
|
|
48
|
+
export declare function normalizeSymlinkTarget(value: string, linkPath: string): string;
|
|
49
|
+
export declare function assertInstalledSymlinkTarget(linkPath: string, relativeLinkPath: string, realRoot: string): Promise<void>;
|
|
50
|
+
export declare function decodeUtf8(value: Buffer, label: string): string;
|
|
51
|
+
export declare function requireSafeMode(value: number, entryPath: string): number;
|
|
52
|
+
export declare function requireSafeSize(value: number, entryPath: string): number;
|
|
53
|
+
export declare function throwIfAborted(signal?: AbortSignal): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import h from"node:fs";import{createRequire as L}from"node:module";import u from"node:path";import{pipeline as _}from"node:stream/promises";import{open as F}from"yauzl";import{isPathWithin as p}from"../process/files/paths.js";export const ARCHIVE_FORMATS=["tar","tar.gz","zip"],MAX_ARCHIVE_ENTRIES=1e5;export class UnsafeArchiveError extends Error{code="TESTKIT_ARCHIVE_UNSAFE";constructor(e,i){super(e,i),this.name="UnsafeArchiveError"}}const I=L(import.meta.url),D=I("tar"),C=new Set(["File","OldFile","ContiguousFile"]),M=new Set(["Directory","GNUDumpDir"]),S=4096,P=255,U=128,W=/[<>:"|?*]/u,Z=/^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/iu,N=new TextDecoder("utf-8",{fatal:!0});export class TarArchiveInspector{formats=["tar","tar.gz"];async inspect(e,i,r={}){x(this.formats,i);const n=v(r),o=[],s=h.createReadStream(e),c=new D.Parser({onReadEntry(a){if(r.signal?.aborted){const d=g(r.signal);s.destroy(d),c.abort(d);return}try{n.countEntry();const d=q(a);o.push(d),n.addPayload(d)}catch(d){const f=B(d,"Tar archive processing failed");s.destroy(f),c.abort(f);return}a.resume()},strict:!0});return await j(s,c,r.signal),o}}export class ZipArchiveExtractor{formats=["zip"];async inspect(e,i,r={}){x(this.formats,i);const n=v(r),o=[];return await $(e,r.signal,async(s,c)=>{n.countEntry();const a=await T(c,s,r.signal);o.push(a),n.addPayload(a)}),o}async extract(e,i,r,n={}){x(this.formats,r);const o=v(n,"extraction"),s=u.resolve(i),c=await this.inspect(e,r,n);validateArchiveEntryTopology(c),await Q(s);const a=[];await $(e,n.signal,async(f,y)=>{const l=await T(y,f,n.signal);o.countEntry(),o.addPayload(l);const w=assertSafeArchiveEntry(l),m=u.resolve(s,w);if(!p(s,m))throw new UnsafeArchiveError(`Archive path escapes its destination: ${JSON.stringify(w)}`);if(l.kind==="directory"){await k(s,m),await h.promises.chmod(m,l.mode);return}if(await k(s,u.dirname(m)),l.kind==="symlink"){if(l.linkTarget===void 0)throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(w)} has no target`);a.push({destinationPath:m,entry:{...l,kind:"symlink",linkTarget:l.linkTarget},normalized:w});return}const R=await O(y,f);await _(R,h.createWriteStream(m,{flags:"wx",mode:l.mode}),{signal:n.signal}),await h.promises.chmod(m,l.mode)});for(const f of a)throwIfAborted(n.signal),await k(s,u.dirname(f.destinationPath)),await h.promises.symlink(f.entry.linkTarget,f.destinationPath,V(f.normalized,c));const d=await h.promises.realpath(s);for(const f of a)await assertInstalledSymlinkTarget(f.destinationPath,f.normalized,d);throwIfAborted(n.signal)}}function v(t,e="inspection"){const i=Math.min(t.maxEntries??MAX_ARCHIVE_ENTRIES,MAX_ARCHIVE_ENTRIES),r=t.maxUnpackedSizeBytes??Number.MAX_SAFE_INTEGER,n=e==="extraction"?" during extraction":"";let o=0,s=0;return{countEntry(){if(e==="inspection"?o>=i:o+1>i)throw new UnsafeArchiveError(`Archive exceeds the ${i.toString()} entry limit${n}`);o+=1},addPayload(c){if(!(c.kind!=="file"&&c.kind!=="symlink")&&(s+=c.sizeBytes,s>r))throw new UnsafeArchiveError(`Archive exceeds its configured unpacked byte limit${n}`)}}}async function j(t,e,i){await new Promise((r,n)=>{let o=!1;const s=()=>{const d=g(i);t.destroy(d),e.abort(d)},c=d=>{o||(o=!0,i?.removeEventListener("abort",s),n(d))},a=()=>{o||(o=!0,i?.removeEventListener("abort",s),r())};t.once("error",c),e.once("error",c),e.once("end",a),i?.addEventListener("abort",s,{once:!0}),t.pipe(e)}),throwIfAborted(i)}export function validateArchiveEntryTopology(t){const e=new Map,i=new Map;for(const n of t){const o=assertSafeArchiveEntry(n),s=portableCollisionKey(o),c=i.get(s);if(c!==void 0)throw new UnsafeArchiveError(`Archive contains colliding entries ${JSON.stringify(c)} and ${JSON.stringify(o)}`);i.set(s,o),e.set(o,n)}const r=E(e);for(const[n,o]of e){for(const s of J(n)){const c=e.get(s);if(c?.kind==="symlink")throw new UnsafeArchiveError(`Archive entry ${JSON.stringify(n)} would write through symbolic-link ancestor ${JSON.stringify(s)}`);if(c?.kind==="file")throw new UnsafeArchiveError(`Archive entry ${JSON.stringify(n)} has regular-file ancestor ${JSON.stringify(s)}`)}o.kind==="symlink"&&z(n,e,r)}}export function assertSafeArchiveEntry(t){const e=normalizeArchivePath(t.path);if(t.kind==="forbidden")throw new UnsafeArchiveError(`Archive entry ${JSON.stringify(e)} has forbidden type ${JSON.stringify(t.rawType)}`);if(requireSafeMode(t.mode,e),requireSafeSize(t.sizeBytes,e),t.kind==="directory"&&t.sizeBytes!==0)throw new UnsafeArchiveError(`Archive directory ${JSON.stringify(e)} has non-zero size`);if(t.kind==="symlink"){if(t.linkTarget===void 0)throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(e)} has no target`);const i=normalizeSymlinkTarget(t.linkTarget,e),r=Buffer.byteLength(i,"utf8");if(t.sizeBytes!==r)throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(e)} has inconsistent target size`)}else if(t.linkTarget!==void 0)throw new UnsafeArchiveError(`Archive entry ${JSON.stringify(e)} has unexpected link target data`);return e}export function normalizeArchivePath(t){b(t,"archive path");const e=t.replace(/\/+$/u,"");if(!e||e.includes("\\")||e.startsWith("/")||Buffer.byteLength(e,"utf8")>S||X(e))throw new UnsafeArchiveError(`Archive path is not a portable relative path: ${JSON.stringify(t)}`);const i=e.split("/");if(i.length>U)throw new UnsafeArchiveError(`Archive path has too many segments: ${JSON.stringify(t)}`);for(const r of i)G(r,t);return i.join("/")}function X(t){for(let e=0;e<t.length;e+=1){const i=t.charCodeAt(e);if(i<=31||i===127)return!0}return!1}function q(t){const e=Y(t.type),i=e==="symlink"?t.linkpath:void 0;return{kind:e,...i===void 0?{}:{linkTarget:i},mode:t.mode,path:t.path,rawType:t.type,sizeBytes:e==="symlink"&&i!==void 0?Buffer.byteLength(i,"utf8"):t.size}}function H(t){const e=t.externalFileAttributes>>>16&65535,i=e&61440,r=t.versionMadeBy>>>8,n=t.fileName.endsWith("/")||i===16384||r===0&&(t.externalFileAttributes&16)!==0,o=i===40960,s=i!==0&&i!==16384&&i!==32768&&i!==40960,c=t.isEncrypted()||s?"forbidden":o?"symlink":n?"directory":"file",a=e&511;return{kind:c,mode:a||(n?493:420),path:t.fileName,rawType:t.isEncrypted()?"encrypted":o?"SymbolicLink":s?`mode-${i.toString(8)}`:n?"Directory":"File",sizeBytes:t.uncompressedSize}}async function T(t,e,i){const r=H(e);if(r.kind!=="symlink")return r;if(r.sizeBytes>S)throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(r.path)} exceeds the portable target size limit`);const n=await O(t,e),o=await tt(n,S,i);if(o.byteLength!==r.sizeBytes)throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(r.path)} has inconsistent target size`);return{...r,linkTarget:decodeUtf8(o,`archive symbolic link ${r.path}`),sizeBytes:o.byteLength}}async function $(t,e,i){const r=await K(t);await new Promise((n,o)=>{let s=!1;const c=()=>{s||(s=!0,e?.removeEventListener("abort",d),n())},a=f=>{s||(s=!0,e?.removeEventListener("abort",d),r.close(),o(B(f,"ZIP archive processing failed")))},d=()=>{a(g(e))};if(r.once("error",a),r.once("end",c),r.on("entry",f=>{Promise.resolve(i(f,r)).then(()=>{r.readEntry()},a)}),e?.addEventListener("abort",d,{once:!0}),e?.aborted){d();return}r.readEntry()})}function K(t){return new Promise((e,i)=>{F(t,{autoClose:!0,decodeStrings:!0,lazyEntries:!0,strictFileNames:!0,validateEntrySizes:!0},(r,n)=>{if(r!==null){i(r);return}e(n)})})}function O(t,e){return new Promise((i,r)=>{t.openReadStream(e,(n,o)=>{if(n!==null){r(n);return}i(o)})})}function Y(t){return C.has(t)?"file":M.has(t)?"directory":t==="SymbolicLink"?"symlink":"forbidden"}function G(t,e){if(!t||t==="."||t===".."||t.trim()!==t||t.endsWith(".")||t.normalize("NFC")!==t||Buffer.byteLength(t,"utf8")>P||W.test(t)||Z.test(t))throw new UnsafeArchiveError(`Archive path contains a non-portable segment: ${JSON.stringify(e)}`)}export function portableCollisionKey(t){return t.normalize("NFC").toLowerCase()}export function normalizeSymlinkTarget(t,e){b(t,`symbolic link ${e}`);const i=normalizeArchivePath(t);if(i!==t)throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(e)} has a non-canonical relative target: ${JSON.stringify(t)}`);return A(e,i),i}function J(t){const e=t.split("/"),i=[];for(let r=1;r<e.length;r+=1)i.push(e.slice(0,r).join("/"));return i}function V(t,e){const i=new Map(e.map(r=>[normalizeArchivePath(r.path),r]));return z(t,i,E(i))==="directory"?"dir":"file"}function z(t,e,i=E(e)){const r=e.get(t);if(r?.kind!=="symlink"||r.linkTarget===void 0)throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(t)} has no target`);let n=A(t,normalizeSymlinkTarget(r.linkTarget,t));const o=new Set;for(let s=0;s<=e.size;s+=1){const c=n.split("/");let a=!1;for(let f=0;f<c.length;f+=1){const y=c.slice(0,f+1).join("/"),l=e.get(y);if(l?.kind==="symlink"){if(l.linkTarget===void 0||o.has(y))throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(t)} has a cyclic target`);o.add(y);const w=A(y,normalizeSymlinkTarget(l.linkTarget,y)),m=c.slice(f+1).join("/");n=m?normalizeArchivePath(`${w}/${m}`):w,a=!0;break}if(l?.kind==="file"&&f<c.length-1)throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(t)} traverses regular file ${JSON.stringify(y)}`);if(l===void 0&&!i.has(y))throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(t)} has dangling target ${JSON.stringify(r.linkTarget)}`)}if(a)continue;const d=e.get(n);if(d?.kind==="file")return"file";if(d?.kind==="directory"||i.has(n))return"directory";throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(t)} has dangling target ${JSON.stringify(r.linkTarget)}`)}throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(t)} has a cyclic target`)}function E(t){const e=new Set;for(const[i,r]of t){for(const n of J(i))e.add(n);r.kind==="directory"&&e.add(i)}return e}function A(t,e){if(u.posix.isAbsolute(e))throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(t)} has an absolute target`);const i=u.posix.join(u.posix.dirname(t),e);if(i===".."||i.startsWith("../")||u.posix.isAbsolute(i))throw new UnsafeArchiveError(`Archive symbolic link ${JSON.stringify(t)} escapes the archive root`);return normalizeArchivePath(i)}export async function assertInstalledSymlinkTarget(t,e,i){let r;try{r=await h.promises.realpath(t)}catch(o){throw new UnsafeArchiveError(`Installed archive symbolic link ${JSON.stringify(e)} is dangling or cyclic`,{cause:o})}if(!p(i,r))throw new UnsafeArchiveError(`Installed archive symbolic link ${JSON.stringify(e)} resolves outside its root`);const n=await h.promises.lstat(r);if(!n.isFile()&&!n.isDirectory())throw new UnsafeArchiveError(`Installed archive symbolic link ${JSON.stringify(e)} resolves to a special file`)}async function Q(t){const e=await h.promises.lstat(t);if(!e.isDirectory()||e.isSymbolicLink())throw new UnsafeArchiveError("Archive extraction root must be a real directory");if((await h.promises.readdir(t)).length!==0)throw new UnsafeArchiveError("Archive extraction root must be empty")}async function k(t,e){if(!p(t,e))throw new UnsafeArchiveError(`Archive extraction path escapes its destination: ${JSON.stringify(e)}`);const i=u.relative(t,e);let r=t;for(const n of i.split(u.sep).filter(Boolean)){r=u.join(r,n);try{await h.promises.mkdir(r,{mode:493})}catch(s){if(!et(s,"EEXIST"))throw s}const o=await h.promises.lstat(r);if(!o.isDirectory()||o.isSymbolicLink())throw new UnsafeArchiveError(`Archive refuses to write through non-directory path ${JSON.stringify(r)}`)}}async function tt(t,e,i){const r=[];let n=0;const o=()=>t.destroy(g(i));i?.addEventListener("abort",o,{once:!0});try{for await(const s of t){throwIfAborted(i);const c=Buffer.isBuffer(s)?s:Buffer.from(s);if(n+=c.byteLength,n>e){const a=new UnsafeArchiveError("Archive symbolic-link target exceeds its byte limit");throw t.destroy(a),a}r.push(c)}}finally{i?.removeEventListener("abort",o)}return Buffer.concat(r,n)}export function decodeUtf8(t,e){try{const i=N.decode(t);return b(i,e),i}catch(i){throw i instanceof UnsafeArchiveError?i:new UnsafeArchiveError(`Archive ${e} is not valid UTF-8`,{cause:i})}}function b(t,e){if(t.includes("\uFFFD")||N.decode(Buffer.from(t,"utf8"))!==t)throw new UnsafeArchiveError(`Archive ${e} is not valid canonical UTF-8`)}function et(t,e){return typeof t=="object"&&t!==null&&Reflect.get(t,"code")===e}export function requireSafeMode(t,e){if(!Number.isSafeInteger(t)||t<0||t>4095)throw new UnsafeArchiveError(`Archive entry ${JSON.stringify(e)} has an invalid mode`);return t&511}export function requireSafeSize(t,e){if(!Number.isSafeInteger(t)||t<0)throw new UnsafeArchiveError(`Archive entry ${JSON.stringify(e)} has an invalid size`);return t}function x(t,e){if(!t.includes(e))throw new Error(`Archive format ${e} requires another extractor`)}export function throwIfAborted(t){if(t?.aborted)throw g(t)}function g(t){return t?.reason instanceof Error?t.reason:new Error("Archive operation was aborted")}function B(t,e){return t instanceof Error?t:new Error(e)}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { build, type BuildOptions, type BuildResult } from "esbuild";
|
|
2
|
+
export interface EsbuildRetryOptions {
|
|
3
|
+
attemptTimeoutMs?: unknown;
|
|
4
|
+
retries?: unknown;
|
|
5
|
+
}
|
|
6
|
+
type EsbuildBuildOptions<T extends BuildOptions> = Parameters<typeof build<T>>[0];
|
|
7
|
+
export declare function buildWithEsbuildRetry<T extends BuildOptions>(options: EsbuildBuildOptions<T>, retryOptions?: EsbuildRetryOptions): Promise<BuildResult<T>>;
|
|
8
|
+
export declare function isEsbuildServiceStoppedError(error: unknown): boolean;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{build as c,stop as a}from"esbuild";const m=[/service is no longer running/iu,/service was stopped/iu,/cannot call write after a stream was destroyed/iu],o=3e4,l=String;class u extends Error{constructor(e){super(`The esbuild service operation did not settle within ${e.toString()}ms`),this.name="EsbuildServiceAttemptTimeoutError"}}export async function buildWithEsbuildRetry(t,e={}){const i=p(e.retries??1),r=E(e.attemptTimeoutMs);let s=0;for(;;)try{return await f(()=>c(t),r)}catch(n){if(s>=i||!isEsbuildServiceStoppedError(n))throw n;s+=1;try{await T()}catch{}}}export function isEsbuildServiceStoppedError(t){if(t instanceof u)return!0;const e=d(t);return m.some(i=>i.test(e))}async function f(t,e){let i;const r=new Promise((s,n)=>{i=setTimeout(()=>{n(new u(e))},e)});try{return await Promise.race([Promise.resolve().then(t),r])}finally{i!==void 0&&clearTimeout(i)}}function d(t){const e=typeof t=="object"&&t!==null||typeof t=="function"?Reflect.get(t,"message"):void 0;return l(e||t||"")}function p(t){const e=Number(t);return!Number.isFinite(e)||e<0?0:Math.floor(e)}function E(t){if(t===void 0)return o;const e=Number(t);return!Number.isSafeInteger(e)||e<=0?o:e}async function T(){try{await a()}catch{}await b()}function b(){return new Promise(t=>setTimeout(t,25))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const TESTKIT_SUPPORTED_HOST_NODE_RANGE=">=22.15.0 <23.0.0 || >=24.14.1 <25.0.0",TESTKIT_SUPPORTED_HOST_NPM_RANGE=">=11.6.0 <12.0.0";const o=new Map([[22,Object.freeze([22,15,0])],[24,Object.freeze([24,14,1])]]);export function hostNodeIsSupported(r){const n=s(r);if(n===null)return!1;const e=o.get(n[0]);return e===void 0?!1:u(n,e)>=0}function s(r){const n=String(r).split(".");if(n.length!==3)return null;const e=n.map(t=>Number(t));return e.every(t=>Number.isSafeInteger(t)&&t>=0)?[e[0]??0,e[1]??0,e[2]??0]:null}function u(r,n){for(const e of[0,1,2]){if(r[e]>n[e])return 1;if(r[e]<n[e])return-1}return 0}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { NodeToolchainConfig } from "../config/authoring/index.js";
|
|
2
|
+
export interface NormalizedNodeToolchainConfig {
|
|
3
|
+
cwd: string;
|
|
4
|
+
detect: "auto" | "off";
|
|
5
|
+
install: "download" | "require-host";
|
|
6
|
+
node: string | null;
|
|
7
|
+
npm: string | null;
|
|
8
|
+
}
|
|
9
|
+
export type NormalizedToolchainRegistry = Readonly<Partial<Record<string, NormalizedNodeToolchainConfig>>>;
|
|
10
|
+
export interface NormalizedRuntimeToolchain extends NormalizedNodeToolchainConfig {
|
|
11
|
+
refName: string | null;
|
|
12
|
+
sourceLabel: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ResolvedNodeToolchain {
|
|
15
|
+
binDir: string;
|
|
16
|
+
cwd: string;
|
|
17
|
+
fingerprint: string;
|
|
18
|
+
install: NormalizedNodeToolchainConfig["install"];
|
|
19
|
+
nodeExecutable: string;
|
|
20
|
+
nodeSource: string;
|
|
21
|
+
nodeSpec: string | null;
|
|
22
|
+
nodeVersion: string;
|
|
23
|
+
npmSource: string;
|
|
24
|
+
npmSpec: string | null;
|
|
25
|
+
npmVersion: string | null;
|
|
26
|
+
summary: string;
|
|
27
|
+
toolchainDir: string;
|
|
28
|
+
}
|
|
29
|
+
export interface RuntimeToolchainResolutionConfig {
|
|
30
|
+
cwd: string;
|
|
31
|
+
detect: NormalizedNodeToolchainConfig["detect"];
|
|
32
|
+
install: NormalizedNodeToolchainConfig["install"];
|
|
33
|
+
node: string | null;
|
|
34
|
+
npm: string | null;
|
|
35
|
+
refName: string | null;
|
|
36
|
+
sourceLabel: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ToolchainRuntimeConfig {
|
|
39
|
+
name: string;
|
|
40
|
+
productDir: string;
|
|
41
|
+
testkit?: {
|
|
42
|
+
runtime?: {
|
|
43
|
+
toolchain?: RuntimeToolchainResolutionConfig | null;
|
|
44
|
+
} | null;
|
|
45
|
+
} | null;
|
|
46
|
+
}
|
|
47
|
+
export interface ToolchainReportConfig {
|
|
48
|
+
name: string;
|
|
49
|
+
runtimeLabel?: string | null;
|
|
50
|
+
}
|
|
51
|
+
export interface ToolchainResolvedReporter<Config extends ToolchainReportConfig = ToolchainReportConfig> {
|
|
52
|
+
toolchainResolved?: (config: Config, resolvedToolchain: ResolvedNodeToolchain) => unknown;
|
|
53
|
+
}
|
|
54
|
+
export type ToolchainEnvironment = Record<string, string | undefined>;
|
|
55
|
+
export interface ToolchainDownloadResponse {
|
|
56
|
+
arrayBuffer: () => PromiseLike<ArrayBuffer>;
|
|
57
|
+
body?: AsyncIterable<Uint8Array> | null;
|
|
58
|
+
ok: boolean;
|
|
59
|
+
status: number;
|
|
60
|
+
}
|
|
61
|
+
export interface ToolchainFetchOptions {
|
|
62
|
+
signal?: AbortSignal;
|
|
63
|
+
}
|
|
64
|
+
export type ToolchainFetch = (downloadUrl: string, options?: ToolchainFetchOptions) => PromiseLike<ToolchainDownloadResponse>;
|
|
65
|
+
export interface ToolchainCommandOptions {
|
|
66
|
+
cwd?: string;
|
|
67
|
+
env?: ToolchainEnvironment;
|
|
68
|
+
signal?: AbortSignal;
|
|
69
|
+
stdio?: "pipe";
|
|
70
|
+
timeoutMs?: number;
|
|
71
|
+
windowsHide?: boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface ToolchainCommandResult {
|
|
74
|
+
stdout?: string | Uint8Array | null;
|
|
75
|
+
}
|
|
76
|
+
export interface PreparedManagedToolchainCommand {
|
|
77
|
+
readonly args: readonly string[];
|
|
78
|
+
readonly executable: string;
|
|
79
|
+
}
|
|
80
|
+
export type ToolchainCommandExecutor = (command: string, args: string[], options?: ToolchainCommandOptions) => PromiseLike<ToolchainCommandResult>;
|
|
81
|
+
export interface ResolveConfiguredToolchainOptions {
|
|
82
|
+
commandExecutor?: ToolchainCommandExecutor;
|
|
83
|
+
fetchImpl?: ToolchainFetch;
|
|
84
|
+
hostNodeVersion?: string;
|
|
85
|
+
hostNpmVersion?: string;
|
|
86
|
+
signal?: AbortSignal;
|
|
87
|
+
}
|
|
88
|
+
export interface ProvisionNodeToolchainOptions {
|
|
89
|
+
commandExecutor?: ToolchainCommandExecutor;
|
|
90
|
+
fetchImpl?: ToolchainFetch;
|
|
91
|
+
productDir: string;
|
|
92
|
+
signal?: AbortSignal;
|
|
93
|
+
version: string;
|
|
94
|
+
}
|
|
95
|
+
export interface ProvisionedNodeToolchain {
|
|
96
|
+
binDir: string;
|
|
97
|
+
nodeExecutable: string;
|
|
98
|
+
npmVersion: string | null;
|
|
99
|
+
toolchainDir: string;
|
|
100
|
+
}
|
|
101
|
+
export declare function nodeToolchain(options?: NodeToolchainConfig): NodeToolchainConfig;
|
|
102
|
+
export declare function normalizeToolchainRegistry(value: unknown): NormalizedToolchainRegistry;
|
|
103
|
+
export declare function normalizeRuntimeToolchain(value: unknown, label: string, registry?: NormalizedToolchainRegistry): NormalizedRuntimeToolchain | null;
|
|
104
|
+
export declare function resolveConfiguredToolchain(config: ToolchainRuntimeConfig | null | undefined, options?: ResolveConfiguredToolchainOptions): Promise<ResolvedNodeToolchain | null>;
|
|
105
|
+
export declare function announceResolvedToolchain<Config extends ToolchainReportConfig>(config: Config, resolvedToolchain: ResolvedNodeToolchain | null, reporter?: ToolchainResolvedReporter<Config> | null): Promise<void>;
|
|
106
|
+
export declare function applyToolchainEnv(baseEnv: Readonly<ToolchainEnvironment>, resolvedToolchain: ResolvedNodeToolchain | null, processEnv?: Readonly<ToolchainEnvironment>): ToolchainEnvironment;
|
|
107
|
+
export declare function provisionNodeToolchain({ productDir, version, fetchImpl, commandExecutor, signal, }: ProvisionNodeToolchainOptions): Promise<ProvisionedNodeToolchain>;
|
|
108
|
+
export declare function fetchToolchain(downloadUrl: string, options?: Readonly<ToolchainFetchOptions>): Promise<ToolchainDownloadResponse>;
|
|
109
|
+
export declare function prepareToolchainCommandForManagedHost(command: string, args: readonly string[], options?: Readonly<{
|
|
110
|
+
env?: ToolchainEnvironment;
|
|
111
|
+
hostNodeExecutable?: string;
|
|
112
|
+
platform?: NodeJS.Platform;
|
|
113
|
+
}>): PreparedManagedToolchainCommand;
|
|
114
|
+
export declare function executeToolchainCommand(command: string, args: string[], options?: ToolchainCommandOptions): Promise<ToolchainCommandResult>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import _ from"crypto";import f from"fs";import u from"path";import{prepareCommandForSpawn as I,resolveCommandForSpawn as A}from"../process/host/platform.js";import{normalizeContainedRelativePath as V,resolveContainedPath as D}from"../process/files/contained-path.js";import{deriveSemverMinimum as k,isExactSemver as L,normalizeSemver as p,satisfiesSemver as g}from"./semver.js";import{managedHostProcessInfrastructureError as M,runManagedHostProcess as j}from"../process/index.js";import{managedNodeRelease as H}from"./managed-node-releases.js";import{provisionNodeToolchainWithRelease as R}from"./node-provisioning.js";import{createSharedToolchainOperation as F,waitForSharedToolchainOperation as P}from"./shared-operation.js";import{TOOLCHAIN_METADATA_TIMEOUT_MS as $}from"./timeouts.js";const z=".",W="auto",q="require-host",U=600*1e3,B=['"use strict";','const { spawn } = require("node:child_process");',"const [command, ...args] = process.argv.slice(1);",'if (typeof command !== "string" || command.length === 0) {',' process.stderr.write("Missing Windows toolchain command\\n");'," process.exitCode = 126;","} else {"," let spawnFailed = false;"," const child = spawn(command, args, {"," shell: false,",' stdio: "inherit",'," windowsHide: true,"," windowsVerbatimArguments: true,"," });",' child.once("error", (error) => {'," spawnFailed = true;"," process.stderr.write(`${error.stack ?? String(error)}\\n`);"," process.exitCode = 126;"," });",' child.once("close", (code, signal) => {'," if (spawnFailed) return;"," if (signal !== null) {"," process.stderr.write(`Windows toolchain command exited on signal ${signal}\\n`);"," process.exitCode = 1;"," return;"," }"," process.exitCode = code ?? 1;"," });","}"].join(`
|
|
2
|
+
`),T=new WeakMap,O=new WeakSet;export function nodeToolchain(n={}){return{...n}}export function normalizeToolchainRegistry(n){if(n==null)return{};if(!N(n))throw new Error("testkit.config.ts toolchains must be an object");const e={};for(const[o,r]of Object.entries(n))e[o]=x(r,`testkit.config.ts toolchains.${o}`);return e}export function normalizeRuntimeToolchain(n,e,o={}){if(n==null)return null;if(typeof n=="string"){const t=n.trim();if(!t)throw new Error(`${e} must reference a non-empty toolchain name`);const i=o[t];if(!i)throw new Error(`${e} references unknown toolchain "${t}"`);return{...i,refName:t,sourceLabel:`${e} -> ${t}`}}return{...x(n,e),refName:null,sourceLabel:e}}export async function resolveConfiguredToolchain(n,e={}){const o=n?.testkit?.runtime?.toolchain;if(!n||!o)return null;let r=T.get(n);if(r===void 0){r=F(i=>J(n,o,{...e,signal:i})),T.set(n,r);const t=r;r.promise.catch(()=>{T.get(n)===t&&T.delete(n)})}return P(r,e.signal)}export function announceResolvedToolchain(n,e,o=null){return!e||O.has(n)||(O.add(n),o?.toolchainResolved&&o.toolchainResolved(n,e)),Promise.resolve()}export function applyToolchainEnv(n,e,o=process.env){if(!e)return{...n};const r={...n,PATH:ne(e.binDir,n.PATH||o.PATH||""),TESTKIT_TOOLCHAIN_KIND:"node",TESTKIT_TOOLCHAIN_NODE_VERSION:e.nodeVersion,TESTKIT_TOOLCHAIN_NODE_SOURCE:e.nodeSource,TESTKIT_TOOLCHAIN_INSTALL_MODE:e.install};return e.npmVersion&&(r.TESTKIT_TOOLCHAIN_NPM_VERSION=e.npmVersion,r.TESTKIT_TOOLCHAIN_NPM_SOURCE=e.npmSource),r}function x(n,e){if(!N(n))throw new Error(`${e} must be an object`);const o=V(d(n.cwd)||z,`${e}.cwd`),r=d(n.detect)||W,t=d(n.install)||q;if(r!=="auto"&&r!=="off")throw new Error(`${e}.detect must be "auto" or "off"`);if(t!=="require-host"&&t!=="download")throw new Error(`${e}.install must be "require-host" or "download"`);return{cwd:o,detect:r,install:t,node:d(n.node),npm:d(n.npm)}}async function J(n,e,o){const r=n.productDir,t=D(r,e.cwd,`${e.sourceLabel}.cwd`),i=K(t),s=e.node||(e.detect==="auto"?i.nodeSpec:null),a=e.node?"toolchain.node":e.detect==="auto"?i.nodeSource??"none":"none",l=e.npm||(e.detect==="auto"?i.npmSpec:null),c=e.npm?"toolchain.npm":e.detect==="auto"?i.npmSource??"none":"none";if(!s&&!l)throw new Error(`Service "${n.name}" enables runtime.toolchain but no Node/npm version could be resolved in ${e.cwd}`);return e.install==="require-host"?G({config:n,cwd:t,nodeSpec:s,nodeSource:a,npmSpec:l,npmSource:c,toolchain:e,options:o}):Q({config:n,cwd:t,nodeSpec:s,nodeSource:a,npmSpec:l,npmSource:c,toolchain:e,options:o})}function K(n){const e=u.join(n,"package.json"),o=Z(e),r=ee(u.join(n,".tool-versions")),t=b(u.join(n,".nvmrc")),i=b(u.join(n,".node-version")),s=d(w(o,"volta","node")),a=d(w(o,"engines","node")),l=d(r.nodejs),c=s||t||i||l||a;let m=null;s?m="package.json#volta.node":t?m=".nvmrc":i?m=".node-version":l?m=".tool-versions#nodejs":a&&(m="package.json#engines.node");const y=d(w(o,"volta","npm")),E=d(w(o,"engines","npm")),v=Y(w(o,"packageManager")),C=y||(v?.name==="npm"?v.version:null)||E;let h=null;return y?h="package.json#volta.npm":v?.name==="npm"?h="package.json#packageManager":E&&(h="package.json#engines.npm"),{nodeSpec:c,nodeSource:m,npmSpec:C,npmSource:h}}async function G({config:n,cwd:e,nodeSpec:o,nodeSource:r,npmSpec:t,npmSource:i,toolchain:s,options:a}){const l=p(a.hostNodeVersion||process.versions.node);if(o&&!g(l,o))throw new Error(`Service "${n.name}" requires Node ${o} (${r}), but host Node is ${l}`);let c=null;if(t&&(c=p(a.hostNpmVersion||await X({command:"npm",args:["--version"],cwd:e,env:process.env,commandExecutor:a.commandExecutor,signal:a.signal})),!g(c,t)))throw new Error(`Service "${n.name}" requires npm ${t} (${i}), but host npm is ${c}`);return{install:s.install,cwd:s.cwd,nodeVersion:l,nodeSource:r,nodeSpec:o,npmVersion:c,npmSource:i,npmSpec:t,nodeExecutable:process.execPath,binDir:u.dirname(process.execPath),toolchainDir:u.dirname(process.execPath),fingerprint:S({install:s.install,nodeVersion:l,npmVersion:c,nodeSource:r,npmSource:i}),summary:`${s.install} node=${l}${c?` npm=${c}`:""} (${r})`}}async function Q({config:n,nodeSpec:e,nodeSource:o,npmSpec:r,npmSource:t,toolchain:i,options:s}){if(!e)throw new Error(`Service "${n.name}" download toolchain mode requires a resolvable Node version`);const a=L(e)?p(e):k(e);if(!a)throw new Error(`Service "${n.name}" cannot deterministically provision Node from "${e}". Provide an exact version in runtime.toolchain.node, .nvmrc, .node-version, .tool-versions, or package.json#volta.node.`);const l=await provisionNodeToolchain({productDir:n.productDir,version:a,fetchImpl:s.fetchImpl||fetchToolchain,commandExecutor:s.commandExecutor||executeToolchainCommand,signal:s.signal});if(!g(a,e))throw new Error(`Service "${n.name}" resolved Node ${a}, which does not satisfy ${e}`);const c=l.npmVersion?p(l.npmVersion):null;if(r&&(!c||!g(c,r)))throw new Error(`Service "${n.name}" requires npm ${r} (${t}), but Node ${a} bundles npm ${c||"unknown"}`);return{install:i.install,cwd:i.cwd,nodeVersion:a,nodeSource:o,nodeSpec:e,npmVersion:c,npmSource:t,npmSpec:r,nodeExecutable:l.nodeExecutable,binDir:l.binDir,toolchainDir:l.toolchainDir,fingerprint:S({install:i.install,nodeVersion:a,npmVersion:c,nodeSource:o,npmSource:t}),summary:`download node=${a}${c?` npm=${c}`:""} (${o})`}}export async function provisionNodeToolchain({productDir:n,version:e,fetchImpl:o=fetchToolchain,commandExecutor:r=executeToolchainCommand,signal:t}){const i=p(e);if(e!==i)throw new Error(`Downloaded Node toolchain version must use canonical x.y.z form; received ${JSON.stringify(e)}`);const s=H(i);return R({commandExecutor:r,fetchImpl:o,productDir:n,release:s,signal:t})}function S(n){return _.createHash("sha256").update(JSON.stringify({kind:"node",...n})).digest("hex")}async function X({command:n,args:e,cwd:o,env:r,commandExecutor:t=executeToolchainCommand,signal:i}){const s=await t(n,e,{cwd:o,env:r,signal:i,stdio:"pipe",timeoutMs:$,windowsHide:!0});return s.stdout==null?"":typeof s.stdout=="string"?s.stdout.trim():Buffer.from(s.stdout).toString().trim()}function Y(n){const e=d(n);if(!e)return null;const o=e.lastIndexOf("@");return o<=0||o===e.length-1?null:{name:e.slice(0,o),version:e.slice(o+1)}}function Z(n){if(!f.existsSync(n))return null;try{return JSON.parse(f.readFileSync(n,"utf8"))}catch{return null}}function b(n){if(!f.existsSync(n))return null;const o=f.readFileSync(n,"utf8").split(/\r?\n/).find(r=>r.trim().length>0);return o?o.trim():null}function ee(n){if(!f.existsSync(n))return{};const e={};for(const o of f.readFileSync(n,"utf8").split(/\r?\n/)){const r=o.trim();if(!r||r.startsWith("#"))continue;const[t,i]=r.split(/\s+/,2);t&&i&&(e[t]=i.trim())}return e}function ne(n,e){const o=d(n);if(!o)return e;const r=(e||"").split(u.delimiter).filter(Boolean).filter(t=>t!==o);return[o,...r].join(u.delimiter)}function d(n){if(typeof n!="string")return null;const e=n.trim();return e.length>0?e:null}export async function fetchToolchain(n,e={}){const o=AbortSignal.timeout(U),r=await fetch(n,{signal:e.signal===void 0?o:AbortSignal.any([e.signal,o])});return{arrayBuffer:()=>r.arrayBuffer(),body:r.body===null?null:oe(r.body),ok:r.ok,status:r.status}}async function*oe(n){const e=n.getReader();let o=!1;try{for(;;){const r=await e.read();if(r.done){o=!0;return}yield r.value}}finally{o||await e.cancel(),e.releaseLock()}}export function prepareToolchainCommandForManagedHost(n,e,o={}){const r={env:o.env||process.env,platform:o.platform},t=A(n,r),i=I(t,e,r);return i.windowsVerbatimArguments?(re(t,e),{executable:o.hostNodeExecutable||process.execPath,args:["--input-type=commonjs","--eval",B,"--",i.command,...i.args]}):{executable:i.command,args:i.args}}function re(n,e){if(/[%!"\0\r\n]/u.test(n))throw new Error(`Windows batch toolchain commands cannot safely preserve command path ${JSON.stringify(n)}`);const o=e.find(r=>/[%!"\0\r\n]/u.test(r)||r.endsWith("\\"));if(o!==void 0)throw new Error(`Windows batch toolchain commands cannot safely preserve argument ${JSON.stringify(o)}`)}export async function executeToolchainCommand(n,e,o={}){const r=te(o.timeoutMs),t=u.resolve(o.cwd||process.cwd()),i=prepareToolchainCommandForManagedHost(n,e,{env:o.env||process.env}),s=await j({args:i.args,cwd:t,displayLabel:`Toolchain command ${n}`,env:o.env||process.env,executable:i.executable,signal:o.signal,timeoutMs:r}),a=M(`Toolchain command ${n}`,s);if(a)throw a;if(s.exitCode!==0)throw new Error(`Toolchain command ${n} exited with code ${String(s.exitCode)}${ie(s.stdout,s.stderr)}`);return{stdout:s.stdout}}function te(n){const e=n??$;if(!Number.isSafeInteger(e)||e<=0)throw new Error("Toolchain command timeout must be a positive safe integer in milliseconds");return e}function ie(n,e){const o=[n,e].map(r=>r.trim()).filter(Boolean).join(`
|
|
3
|
+
`);return o?`
|
|
4
|
+
${o.slice(-4e3)}`:""}function w(n,...e){let o=n;for(const r of e){if(!N(o))return;o=o[r]}return o}function N(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}
|