@hominis/fireforge 0.55.0 → 0.60.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/CHANGELOG.md +233 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -456
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -359
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -382
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -423
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -241
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -766
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +111 -221
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -290
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +159 -723
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -719
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -98
- package/dist/src/commands/check-run.d.ts +0 -44
- package/dist/src/commands/check-run.js +0 -125
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -229
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -283
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/body.d.ts +0 -29
- package/dist/src/commands/patch/body.js +0 -60
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -54
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -263
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -114
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -27
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -78
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -251
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -285
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-each.d.ts +0 -46
- package/dist/src/commands/re-export-each.js +0 -110
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -37
- package/dist/src/commands/re-export-hunks.js +0 -264
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -192
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -53
- package/dist/src/commands/re-export-single.js +0 -426
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -44
- package/dist/src/commands/re-export-summary.js +0 -59
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -34
- package/dist/src/commands/test-build-phase.js +0 -291
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -70
- package/dist/src/commands/test-orchestrate.js +0 -277
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -56
- package/dist/src/commands/test-stale-gate.js +0 -208
- package/dist/src/commands/test-verdict.d.ts +0 -102
- package/dist/src/commands/test-verdict.js +0 -176
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck-explain.d.ts +0 -13
- package/dist/src/commands/typecheck-explain.js +0 -100
- package/dist/src/commands/typecheck.d.ts +0 -61
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -284
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -125
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -509
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/dev-profile.d.ts +0 -28
- package/dist/src/core/dev-profile.js +0 -58
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -67
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -131
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -167
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -81
- package/dist/src/core/furnace-constants.js +0 -125
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-deploy-owner.d.ts +0 -29
- package/dist/src/core/furnace-deploy-owner.js +0 -116
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -87
- package/dist/src/core/furnace-jsconfig.js +0 -248
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-tag-map.d.ts +0 -47
- package/dist/src/core/furnace-tag-map.js +0 -182
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -331
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -328
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -167
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache-checkjs.d.ts +0 -45
- package/dist/src/core/patch-lint-cache-checkjs.js +0 -195
- package/dist/src/core/patch-lint-cache.d.ts +0 -79
- package/dist/src/core/patch-lint-cache.js +0 -247
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -57
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -91
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs-resolve.d.ts +0 -31
- package/dist/src/core/patch-lint-checkjs-resolve.js +0 -86
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -182
- package/dist/src/core/patch-lint-checkjs.js +0 -563
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -9
- package/dist/src/core/patch-lint-imports.js +0 -90
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -98
- package/dist/src/core/patch-lint-staged-registration.js +0 -128
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -65
- package/dist/src/core/patch-lint-token-scale.js +0 -304
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -206
- package/dist/src/core/patch-lint.js +0 -533
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -176
- package/dist/src/core/patch-parse.js +0 -416
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -219
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-explain.d.ts +0 -93
- package/dist/src/core/typecheck-explain.js +0 -213
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -508
- package/dist/src/core/typecheck.d.ts +0 -97
- package/dist/src/core/typecheck.js +0 -457
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1372
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -732
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -422
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { findNearestXpcshellManifest } from '../core/xpcshell-appdir.js';
|
|
3
|
-
import { GeneralError } from '../errors/base.js';
|
|
4
|
-
import { info, success } from '../utils/logger.js';
|
|
5
|
-
import { emitHarnessVerdict } from './test-verdict.js';
|
|
6
|
-
/** Rejects pathless `fireforge test` unless the operator selected a pathless mode. */
|
|
7
|
-
export function assertPathlessTestMode(testPaths, options) {
|
|
8
|
-
if (testPaths.length === 0 &&
|
|
9
|
-
options.auto !== true &&
|
|
10
|
-
options.doctor !== true &&
|
|
11
|
-
options.buildOnly !== true &&
|
|
12
|
-
options.canary === undefined) {
|
|
13
|
-
throw new GeneralError(buildPathlessTestMessage());
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
/** Rejects invalid combinations for mode-like `fireforge test` options. */
|
|
17
|
-
export function assertTestModeCombinations(testPaths, options, canaryPath) {
|
|
18
|
-
if (options.auto === true && testPaths.length > 0) {
|
|
19
|
-
throw new GeneralError('`fireforge test --auto` is valid only when no explicit paths are provided.');
|
|
20
|
-
}
|
|
21
|
-
if (options.canary !== undefined && testPaths.length > 0) {
|
|
22
|
-
throw new GeneralError('`fireforge test --canary` runs one canary path; do not pass positional test paths.');
|
|
23
|
-
}
|
|
24
|
-
if (options.canary !== undefined && canaryPath === undefined) {
|
|
25
|
-
throw new GeneralError('No test canary path is configured.\n\n' +
|
|
26
|
-
'Pass `fireforge test --canary <path>` or set `test.canaryPath` in fireforge.json.');
|
|
27
|
-
}
|
|
28
|
-
if (options.buildOnly === true &&
|
|
29
|
-
(options.doctor === true || options.canary !== undefined || options.auto === true)) {
|
|
30
|
-
throw new GeneralError('`fireforge test --build-only` builds and exits without dispatching tests; it cannot be combined with --doctor, --canary, or --auto.');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/** Resolves the canary path from CLI or config. */
|
|
34
|
-
export function resolveCanaryPath(options, projectConfig) {
|
|
35
|
-
if (options.canary === undefined || options.canary === false)
|
|
36
|
-
return undefined;
|
|
37
|
-
if (typeof options.canary === 'string')
|
|
38
|
-
return options.canary;
|
|
39
|
-
return projectConfig.test?.canaryPath;
|
|
40
|
-
}
|
|
41
|
-
/** Returns the configured canary no-output budget, defaulting to 60 seconds. */
|
|
42
|
-
export function canaryTimeoutSeconds(projectConfig) {
|
|
43
|
-
return projectConfig.test?.canaryTimeoutSeconds ?? 60;
|
|
44
|
-
}
|
|
45
|
-
/** Emits or throws the one-word canary verdict. */
|
|
46
|
-
export function reportCanaryOutcome(outcome) {
|
|
47
|
-
// Written raw as the run's last stdout line on green and throw paths
|
|
48
|
-
// alike. See the FIREFORGE-VERDICT contract in test-harness-crash.ts.
|
|
49
|
-
try {
|
|
50
|
-
if (outcome.verdict.kind === 'tests-ran-ok') {
|
|
51
|
-
success('Canary: green');
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
if (outcome.verdict.kind === 'harness-crash' &&
|
|
55
|
-
outcome.verdict.signature?.reason.includes('no-output timeout')) {
|
|
56
|
-
throw new GeneralError(`Canary: hang\n\n${outcome.verdict.signature.line}`);
|
|
57
|
-
}
|
|
58
|
-
if (outcome.verdict.kind === 'harness-crash') {
|
|
59
|
-
throw new GeneralError(`Canary: crash\n\n${outcome.verdict.signature ? outcome.verdict.signature.line : 'Harness crashed before the canary completed.'}`);
|
|
60
|
-
}
|
|
61
|
-
throw new GeneralError('Canary: crash\n\nThe canary did not complete green; see mach output above.');
|
|
62
|
-
}
|
|
63
|
-
finally {
|
|
64
|
-
emitHarnessVerdict(outcome.verdict);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
function buildPathlessTestMessage() {
|
|
68
|
-
return ('`fireforge test` now requires an explicit test path unless you choose a pathless mode.\n\n' +
|
|
69
|
-
'Use one of:\n' +
|
|
70
|
-
' - `fireforge test <engine-relative test path>` for focused runs\n' +
|
|
71
|
-
" - `fireforge test --auto` to forward mach's own auto-selection mode\n" +
|
|
72
|
-
' - `fireforge test --doctor` to run the Marionette preflight only\n' +
|
|
73
|
-
' - `fireforge test --canary` to run the configured short harness canary');
|
|
74
|
-
}
|
|
75
|
-
/** Buckets normalized request paths by the harness their nearest manifest selects. */
|
|
76
|
-
export async function classifyTestHarnesses(engineDir, normalizedPaths) {
|
|
77
|
-
const result = { xpcshell: [], nonXpcshell: [] };
|
|
78
|
-
for (const testPath of normalizedPaths) {
|
|
79
|
-
const manifest = await findNearestXpcshellManifest(engineDir, testPath);
|
|
80
|
-
if (manifest) {
|
|
81
|
-
result.xpcshell.push(testPath);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
result.nonXpcshell.push(testPath);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
function buildMixedHarnessMessage(classification) {
|
|
90
|
-
return ('FireForge cannot run xpcshell and browser/mochitest paths in the same mach invocation.\n\n' +
|
|
91
|
-
'Split this into separate `fireforge test` commands so each manifest selects its own harness:\n' +
|
|
92
|
-
` - xpcshell: ${classification.xpcshell.join(', ')}\n` +
|
|
93
|
-
` - browser/mochitest: ${classification.nonXpcshell.join(', ')}`);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Harness classification is a pure path→manifest lookup and must precede
|
|
97
|
-
* the build dispatch: a mixed xpcshell+mochitest request can never
|
|
98
|
-
* dispatch, so refusing it before spending minutes in a pre-test build
|
|
99
|
-
* is strictly better. A nonexistent path classifies as
|
|
100
|
-
* nonXpcshell (findNearestXpcshellManifest returns null), so classifying
|
|
101
|
-
* before assertTestPathsExist is harmless: existence is still asserted
|
|
102
|
-
* after the stale/coverage gates, preserving their precedence over
|
|
103
|
-
* missing-path errors. `xpcshellOnly` (non-empty request, zero
|
|
104
|
-
* nonXpcshell paths) gates the Marionette preflight and the mochitest
|
|
105
|
-
* client flags. Pathless runs keep the full-suite behavior.
|
|
106
|
-
*/
|
|
107
|
-
export async function classifyBeforeDispatch(engineDir, normalizedPaths, options) {
|
|
108
|
-
const classification = await classifyTestHarnesses(engineDir, normalizedPaths);
|
|
109
|
-
if (classification.xpcshell.length > 0 && classification.nonXpcshell.length > 0) {
|
|
110
|
-
// `--build-only` never dispatches, so a mixed request is legal there:
|
|
111
|
-
// packaging the union is the whole point.
|
|
112
|
-
if (options?.allowMixed !== true) {
|
|
113
|
-
throw new GeneralError(buildMixedHarnessMessage(classification));
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return {
|
|
117
|
-
classification,
|
|
118
|
-
xpcshellOnly: normalizedPaths.length > 0 && classification.nonXpcshell.length === 0,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Prints the `--build-only` completion guidance: the union build is
|
|
123
|
-
* recorded as the packaging-coverage claim, so each harness half can now
|
|
124
|
-
* run build-less without tripping the stale/coverage gate.
|
|
125
|
-
*/
|
|
126
|
-
export function reportBuildOnlyCompletion(classification, normalizedPaths) {
|
|
127
|
-
info('Build complete. The recorded packaging coverage includes every requested path.');
|
|
128
|
-
if (classification.xpcshell.length > 0 && classification.nonXpcshell.length > 0) {
|
|
129
|
-
info('Run each harness separately without --build:');
|
|
130
|
-
info(` fireforge test ${classification.xpcshell.join(' ')}`);
|
|
131
|
-
info(` fireforge test ${classification.nonXpcshell.join(' ')}`);
|
|
132
|
-
}
|
|
133
|
-
else if (normalizedPaths.length > 0) {
|
|
134
|
-
info(`Run: fireforge test ${normalizedPaths.join(' ')}`);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* The mach args `--restart-between-tests` forwards: mochitest's own flag,
|
|
139
|
-
* which restarts the browser between test files (the run shape a
|
|
140
|
-
* `standalone` manifest key asks for). Mochitest-only, refused otherwise
|
|
141
|
-
* for the reason `--shuffle` is: xpcshell has no such flag and generic
|
|
142
|
-
* `mach test` would hand it to every suite. Not duplicated when
|
|
143
|
-
* `--mach-arg` already forwards it.
|
|
144
|
-
*
|
|
145
|
-
* @param options - Parsed test options
|
|
146
|
-
* @param suite - The resolved dispatch target
|
|
147
|
-
* @param forwardedMachArgs - `--mach-arg` values after filtering
|
|
148
|
-
*/
|
|
149
|
-
export function restartBetweenTestsArgs(options, suite, forwardedMachArgs) {
|
|
150
|
-
if (options.restartBetweenTests !== true)
|
|
151
|
-
return [];
|
|
152
|
-
if (suite !== 'mochitest') {
|
|
153
|
-
throw new GeneralError("--restart-between-tests forwards the mochitest harness's per-file browser restart; the " +
|
|
154
|
-
'xpcshell harness has none, and generic `mach test` dispatch would hand it to every ' +
|
|
155
|
-
'suite. Narrow the paths to browser-chrome/mochitest files (and drop --generic-mach-test).');
|
|
156
|
-
}
|
|
157
|
-
return forwardedMachArgs.includes('--restart-between-tests') ? [] : ['--restart-between-tests'];
|
|
158
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Per-run lines and the aggregate verdict of a multi-run `fireforge test`
|
|
3
|
-
* (`--repeat`, mixed harnesses, `--negative-control`). Pure: the
|
|
4
|
-
* orchestration in `test-orchestrate.ts` feeds it the verdict line each
|
|
5
|
-
* sub-run would have printed, captured instead of written.
|
|
6
|
-
*/
|
|
7
|
-
/** One finished sub-run. */
|
|
8
|
-
export interface SubRunResult {
|
|
9
|
-
/** 1-based repetition this run belongs to. */
|
|
10
|
-
repetition: number;
|
|
11
|
-
/** The harness half of a mixed invocation. */
|
|
12
|
-
harness?: 'xpcshell' | 'mochitest';
|
|
13
|
-
/** The captured verdict, without the `FIREFORGE-VERDICT: ` prefix. */
|
|
14
|
-
body: string;
|
|
15
|
-
passed: boolean;
|
|
16
|
-
/** `reason=` of a failed run. */
|
|
17
|
-
reason?: string;
|
|
18
|
-
/** `note=` of a failed run, when it carried one. */
|
|
19
|
-
note?: string;
|
|
20
|
-
/** What the sub-run threw, if anything. */
|
|
21
|
-
error?: unknown;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* How a negative control came out: `caught` when every repetition went red
|
|
25
|
-
* on test failures, `missed` when a repetition stayed green (the tests did
|
|
26
|
-
* not detect the mutation), `inconclusive` when any run failed for another
|
|
27
|
-
* reason or the invocation stopped early.
|
|
28
|
-
*/
|
|
29
|
-
export type ControlOutcome = 'caught' | 'missed' | 'inconclusive';
|
|
30
|
-
/**
|
|
31
|
-
* Parses a captured verdict line into a sub-run result.
|
|
32
|
-
*
|
|
33
|
-
* @param line - The captured line, or undefined when the sub-run wrote none
|
|
34
|
-
*/
|
|
35
|
-
export declare function parseCapturedVerdict(line: string | undefined): Pick<SubRunResult, 'body' | 'passed' | 'reason' | 'note'>;
|
|
36
|
-
/**
|
|
37
|
-
* The `FIREFORGE-RUN:` line for one sub-run: the verdict it would have
|
|
38
|
-
* printed alone, plus `run=<i>/<n>` and, for a mixed invocation,
|
|
39
|
-
* `harness=`. Never `FIREFORGE-VERDICT:`, so the invocation keeps exactly
|
|
40
|
-
* one verdict line.
|
|
41
|
-
*/
|
|
42
|
-
export declare function formatRunLine(result: SubRunResult, index: number, total: number): string;
|
|
43
|
-
/** The failed run with the most structural reason, or undefined when all passed. */
|
|
44
|
-
export declare function worstRun(results: readonly SubRunResult[]): SubRunResult | undefined;
|
|
45
|
-
/**
|
|
46
|
-
* Derives a negative control's outcome.
|
|
47
|
-
*
|
|
48
|
-
* @param results - Every finished sub-run
|
|
49
|
-
* @param repetitions - How many repetitions were planned
|
|
50
|
-
* @param complete - False when the invocation stopped before its last run
|
|
51
|
-
*/
|
|
52
|
-
export declare function deriveControlOutcome(results: readonly SubRunResult[], repetitions: number, complete: boolean): ControlOutcome;
|
|
53
|
-
/**
|
|
54
|
-
* The aggregate verdict body. A single planned run (a lone control) keeps
|
|
55
|
-
* its own line, counts included; several aggregate to `PASS runs=<n>/<n>`
|
|
56
|
-
* or `FAIL reason=<most structural> [note=] runs=<passed>/<planned>`.
|
|
57
|
-
* A control appends `control=<outcome>`.
|
|
58
|
-
*/
|
|
59
|
-
export declare function formatAggregateBody(results: readonly SubRunResult[], plannedTotal: number, control?: ControlOutcome): string;
|
|
60
|
-
/** One-line human summary of a control's outcome. */
|
|
61
|
-
export declare function describeControlOutcome(outcome: ControlOutcome): string;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Per-run lines and the aggregate verdict of a multi-run `fireforge test`
|
|
4
|
-
* (`--repeat`, mixed harnesses, `--negative-control`). Pure: the
|
|
5
|
-
* orchestration in `test-orchestrate.ts` feeds it the verdict line each
|
|
6
|
-
* sub-run would have printed, captured instead of written.
|
|
7
|
-
*/
|
|
8
|
-
/** The prefix every verdict line starts with. */
|
|
9
|
-
const VERDICT_PREFIX = 'FIREFORGE-VERDICT: ';
|
|
10
|
-
/**
|
|
11
|
-
* Parses a captured verdict line into a sub-run result.
|
|
12
|
-
*
|
|
13
|
-
* @param line - The captured line, or undefined when the sub-run wrote none
|
|
14
|
-
*/
|
|
15
|
-
export function parseCapturedVerdict(line) {
|
|
16
|
-
const body = (line ?? `${VERDICT_PREFIX}FAIL reason=preflight`).slice(VERDICT_PREFIX.length);
|
|
17
|
-
const passed = body.startsWith('PASS');
|
|
18
|
-
const reason = /(?:^| )reason=(\S+)/.exec(body)?.[1];
|
|
19
|
-
const note = /(?:^| )note=(\S+)/.exec(body)?.[1];
|
|
20
|
-
return {
|
|
21
|
-
body,
|
|
22
|
-
passed,
|
|
23
|
-
...(reason === undefined ? {} : { reason }),
|
|
24
|
-
...(note === undefined ? {} : { note }),
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* The `FIREFORGE-RUN:` line for one sub-run: the verdict it would have
|
|
29
|
-
* printed alone, plus `run=<i>/<n>` and, for a mixed invocation,
|
|
30
|
-
* `harness=`. Never `FIREFORGE-VERDICT:`, so the invocation keeps exactly
|
|
31
|
-
* one verdict line.
|
|
32
|
-
*/
|
|
33
|
-
export function formatRunLine(result, index, total) {
|
|
34
|
-
const harness = result.harness === undefined ? '' : ` harness=${result.harness}`;
|
|
35
|
-
return `FIREFORGE-RUN: ${result.body} run=${index + 1}/${total}${harness}`;
|
|
36
|
-
}
|
|
37
|
-
/** Most structural first: the reason an aggregate failure reports. */
|
|
38
|
-
const REASON_RANK = [
|
|
39
|
-
'inconclusive',
|
|
40
|
-
'preflight',
|
|
41
|
-
'crash',
|
|
42
|
-
'server-startup',
|
|
43
|
-
'harness-arguments',
|
|
44
|
-
'no-tests',
|
|
45
|
-
'test-failures',
|
|
46
|
-
];
|
|
47
|
-
function rankOf(reason) {
|
|
48
|
-
const rank = REASON_RANK.indexOf(reason ?? '');
|
|
49
|
-
return rank === -1 ? REASON_RANK.length : rank;
|
|
50
|
-
}
|
|
51
|
-
/** The failed run with the most structural reason, or undefined when all passed. */
|
|
52
|
-
export function worstRun(results) {
|
|
53
|
-
let worst;
|
|
54
|
-
for (const result of results) {
|
|
55
|
-
if (result.passed)
|
|
56
|
-
continue;
|
|
57
|
-
if (worst === undefined || rankOf(result.reason) < rankOf(worst.reason))
|
|
58
|
-
worst = result;
|
|
59
|
-
}
|
|
60
|
-
return worst;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Derives a negative control's outcome.
|
|
64
|
-
*
|
|
65
|
-
* @param results - Every finished sub-run
|
|
66
|
-
* @param repetitions - How many repetitions were planned
|
|
67
|
-
* @param complete - False when the invocation stopped before its last run
|
|
68
|
-
*/
|
|
69
|
-
export function deriveControlOutcome(results, repetitions, complete) {
|
|
70
|
-
if (!complete)
|
|
71
|
-
return 'inconclusive';
|
|
72
|
-
if (results.some((result) => !result.passed && result.reason !== 'test-failures')) {
|
|
73
|
-
return 'inconclusive';
|
|
74
|
-
}
|
|
75
|
-
for (let repetition = 1; repetition <= repetitions; repetition += 1) {
|
|
76
|
-
const red = results.some((result) => result.repetition === repetition && result.reason === 'test-failures');
|
|
77
|
-
if (!red)
|
|
78
|
-
return 'missed';
|
|
79
|
-
}
|
|
80
|
-
return 'caught';
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* The aggregate verdict body. A single planned run (a lone control) keeps
|
|
84
|
-
* its own line, counts included; several aggregate to `PASS runs=<n>/<n>`
|
|
85
|
-
* or `FAIL reason=<most structural> [note=] runs=<passed>/<planned>`.
|
|
86
|
-
* A control appends `control=<outcome>`.
|
|
87
|
-
*/
|
|
88
|
-
export function formatAggregateBody(results, plannedTotal, control) {
|
|
89
|
-
const controlKey = control === undefined ? '' : ` control=${control}`;
|
|
90
|
-
const only = results[0];
|
|
91
|
-
if (plannedTotal === 1 && only !== undefined)
|
|
92
|
-
return `${only.body}${controlKey}`;
|
|
93
|
-
const passed = results.filter((result) => result.passed).length;
|
|
94
|
-
const runs = ` runs=${passed}/${plannedTotal}`;
|
|
95
|
-
const worst = worstRun(results);
|
|
96
|
-
if (worst === undefined && results.length === plannedTotal)
|
|
97
|
-
return `PASS${runs}${controlKey}`;
|
|
98
|
-
const reason = worst?.reason ?? 'preflight';
|
|
99
|
-
const note = worst?.note === undefined ? '' : ` note=${worst.note}`;
|
|
100
|
-
return `FAIL reason=${reason}${note}${runs}${controlKey}`;
|
|
101
|
-
}
|
|
102
|
-
/** One-line human summary of a control's outcome. */
|
|
103
|
-
export function describeControlOutcome(outcome) {
|
|
104
|
-
switch (outcome) {
|
|
105
|
-
case 'caught':
|
|
106
|
-
return 'Negative control: the tests went red on the mutation, as a control should (control=caught).';
|
|
107
|
-
case 'missed':
|
|
108
|
-
return 'Negative control: the tests STAYED GREEN with the mutation applied, so they do not detect it (control=missed).';
|
|
109
|
-
case 'inconclusive':
|
|
110
|
-
return 'Negative control: inconclusive, a run failed for a reason other than test failures or did not run (control=inconclusive).';
|
|
111
|
-
}
|
|
112
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-run orchestration for `fireforge test`, all under the one
|
|
3
|
-
* engine-session lock hold the command already has:
|
|
4
|
-
*
|
|
5
|
-
* - mixed harness paths run as two consecutive mach invocations, xpcshell
|
|
6
|
-
* first, with one pre-test build (when `--build`) packaging both halves;
|
|
7
|
-
* - `--repeat <n>` runs the same selection n times, building once;
|
|
8
|
-
* - `--negative-control <diff>` applies a reviewed mutation after the
|
|
9
|
-
* build and right before each dispatch, and restores it after the run.
|
|
10
|
-
*
|
|
11
|
-
* Each sub-run is the ordinary single-run body. Its verdict line is
|
|
12
|
-
* captured rather than printed (see `setVerdictCapture`) and echoed as a
|
|
13
|
-
* `FIREFORGE-RUN:` line, and the invocation ends with one aggregate
|
|
14
|
-
* `FIREFORGE-VERDICT:` line. A request that needs none of this runs the
|
|
15
|
-
* body exactly as before.
|
|
16
|
-
*/
|
|
17
|
-
import type { ControlBuildStamp } from '../core/build-baseline-types.js';
|
|
18
|
-
import type { TestOptions } from '../types/commands/index.js';
|
|
19
|
-
/** What the orchestrator asks of one sub-run beyond its paths and options. */
|
|
20
|
-
export interface TestRunHooks {
|
|
21
|
-
/**
|
|
22
|
-
* Paths the pre-test build packages and records as coverage when they
|
|
23
|
-
* are wider than this run's own: the union of a mixed invocation's
|
|
24
|
-
* halves, so the second half runs build-less against the same build.
|
|
25
|
-
*/
|
|
26
|
-
coveragePaths?: string[];
|
|
27
|
-
/** Runs after every preflight gate and the pre-test build, right before dispatch. */
|
|
28
|
-
beforeDispatch?: () => Promise<void>;
|
|
29
|
-
/**
|
|
30
|
-
* Runs right before the pre-test build: a negative control on compiled
|
|
31
|
-
* source, which only reaches the binary when the build compiles it.
|
|
32
|
-
*/
|
|
33
|
-
beforeBuild?: () => Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Why the pre-test build must be a full `mach build`: `mach build faster`
|
|
36
|
-
* compiles nothing, so a compiled control's binary needs the full one.
|
|
37
|
-
*/
|
|
38
|
-
fullBuildReason?: string;
|
|
39
|
-
/**
|
|
40
|
-
* Stamp the pre-test build records on its baseline because it compiles a
|
|
41
|
-
* negative control in (see `BuildBaseline.controlBuild`).
|
|
42
|
-
*/
|
|
43
|
-
controlBuild?: ControlBuildStamp;
|
|
44
|
-
/**
|
|
45
|
-
* The stamp the first run's control build recorded, on every run after
|
|
46
|
-
* it: those runs test the binary that carries the control, with the
|
|
47
|
-
* control applied again, so the build-less gates accept that stamp and
|
|
48
|
-
* the fresh mtimes its restore left on the control's own targets.
|
|
49
|
-
*/
|
|
50
|
-
ownControlBuild?: ControlBuildStamp;
|
|
51
|
-
/** `--repeat` run this sub-run is (1-based), for `--results`. */
|
|
52
|
-
repetition?: number;
|
|
53
|
-
/** Where dispatches write their mozlog raw logs (`--results`, `--shard-size`). */
|
|
54
|
-
rawLogDir?: string;
|
|
55
|
-
}
|
|
56
|
-
/** The single-run body (`runTestCommandBody`), injected to avoid an import cycle. */
|
|
57
|
-
export type TestRunBody = (paths: string[], options: TestOptions, hooks: TestRunHooks) => Promise<void>;
|
|
58
|
-
/**
|
|
59
|
-
* Runs `fireforge test` as one or several sub-runs. Always recovers a
|
|
60
|
-
* negative control a killed earlier run left applied, first.
|
|
61
|
-
*
|
|
62
|
-
* @param projectRoot - Project root
|
|
63
|
-
* @param testPaths - The positional test paths
|
|
64
|
-
* @param options - Parsed test options
|
|
65
|
-
* @param body - The single-run body
|
|
66
|
-
* @param onRefusal - Renders a sub-run's preflight refusal and emits its
|
|
67
|
-
* `FAIL reason=preflight` verdict (captured), as `testCommand` does for a
|
|
68
|
-
* single run
|
|
69
|
-
*/
|
|
70
|
-
export declare function orchestrateTestRuns(projectRoot: string, testPaths: string[], options: TestOptions, body: TestRunBody, onRefusal: (error: unknown) => void): Promise<void>;
|
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Multi-run orchestration for `fireforge test`, all under the one
|
|
4
|
-
* engine-session lock hold the command already has:
|
|
5
|
-
*
|
|
6
|
-
* - mixed harness paths run as two consecutive mach invocations, xpcshell
|
|
7
|
-
* first, with one pre-test build (when `--build`) packaging both halves;
|
|
8
|
-
* - `--repeat <n>` runs the same selection n times, building once;
|
|
9
|
-
* - `--negative-control <diff>` applies a reviewed mutation after the
|
|
10
|
-
* build and right before each dispatch, and restores it after the run.
|
|
11
|
-
*
|
|
12
|
-
* Each sub-run is the ordinary single-run body. Its verdict line is
|
|
13
|
-
* captured rather than printed (see `setVerdictCapture`) and echoed as a
|
|
14
|
-
* `FIREFORGE-RUN:` line, and the invocation ends with one aggregate
|
|
15
|
-
* `FIREFORGE-VERDICT:` line. A request that needs none of this runs the
|
|
16
|
-
* body exactly as before.
|
|
17
|
-
*/
|
|
18
|
-
import { getProjectPaths } from '../core/config.js';
|
|
19
|
-
import { applyNegativeControl, planNegativeControl, recoverPendingNegativeControl, restoreNegativeControl, } from '../core/negative-control.js';
|
|
20
|
-
import { formatCompiledControlBuildNotice, formatCompiledControlRefusal, } from '../core/negative-control-compiled.js';
|
|
21
|
-
import { getActiveRunLogPath, writeToActiveRunLog } from '../core/run-log.js';
|
|
22
|
-
import { GeneralError, InvalidArgumentError, PreflightRefusalError } from '../errors/base.js';
|
|
23
|
-
import { TestFailureError } from '../errors/build.js';
|
|
24
|
-
import { toError } from '../utils/errors.js';
|
|
25
|
-
import { info, notice, success } from '../utils/logger.js';
|
|
26
|
-
import { stripEnginePrefix } from '../utils/paths.js';
|
|
27
|
-
import { controlBuildRecorded, runControlRestoreBuild } from './test-control-restore.js';
|
|
28
|
-
import { classifyTestHarnesses } from './test-modes.js';
|
|
29
|
-
import { deriveControlOutcome, describeControlOutcome, formatAggregateBody, formatRunLine, parseCapturedVerdict, worstRun, } from './test-multi-verdict.js';
|
|
30
|
-
import { rearmSpentWaits } from './test-prelock.js';
|
|
31
|
-
import { emitAggregateVerdict, emitFailVerdict, setVerdictCapture, setVerdictRunAttribute, verdictEmitted, } from './test-verdict.js';
|
|
32
|
-
function assertMultiRunUsage(testPaths, options) {
|
|
33
|
-
const flag = options.negativeControl !== undefined ? '--negative-control' : '--repeat';
|
|
34
|
-
if (testPaths.length === 0) {
|
|
35
|
-
throw new InvalidArgumentError(`${flag} needs explicit test paths.`, flag);
|
|
36
|
-
}
|
|
37
|
-
if (options.buildOnly === true || options.canary !== undefined || options.auto === true) {
|
|
38
|
-
throw new InvalidArgumentError(`${flag} runs tests, so it cannot be combined with --build-only, --canary or --auto.`, flag);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
async function splitHarnesses(engineDir, testPaths, options) {
|
|
42
|
-
// `--build-only` packages a mixed union itself and dispatches nothing.
|
|
43
|
-
if (testPaths.length === 0 || options.buildOnly === true || options.canary !== undefined) {
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
const normalized = testPaths.map((path) => stripEnginePrefix(path).trim());
|
|
47
|
-
const classification = await classifyTestHarnesses(engineDir, normalized);
|
|
48
|
-
if (classification.xpcshell.length === 0 || classification.nonXpcshell.length === 0) {
|
|
49
|
-
return undefined;
|
|
50
|
-
}
|
|
51
|
-
notice(`Mixed harnesses: running ${classification.xpcshell.length} xpcshell path(s), then ` +
|
|
52
|
-
`${classification.nonXpcshell.length} browser/mochitest path(s), as two mach invocations ` +
|
|
53
|
-
'under this lock hold' +
|
|
54
|
-
(options.build === true ? ', after one pre-test build that packages both.' : '.'));
|
|
55
|
-
return [
|
|
56
|
-
{ harness: 'xpcshell', paths: classification.xpcshell },
|
|
57
|
-
{ harness: 'mochitest', paths: classification.nonXpcshell },
|
|
58
|
-
];
|
|
59
|
-
}
|
|
60
|
-
/** Options for every run after the first: the build and doctor run once. */
|
|
61
|
-
function laterRunOptions(options) {
|
|
62
|
-
// A later run follows the earlier runs' work under the same lock hold, so
|
|
63
|
-
// its browser and port checks wait out the budgets again.
|
|
64
|
-
const later = { ...rearmSpentWaits(options) };
|
|
65
|
-
delete later.build;
|
|
66
|
-
delete later.extendCoverage;
|
|
67
|
-
delete later.refuseUnexportedDrift;
|
|
68
|
-
delete later.doctor;
|
|
69
|
-
return later;
|
|
70
|
-
}
|
|
71
|
-
async function planRuns(engineDir, testPaths, options) {
|
|
72
|
-
const repeat = options.repeat ?? 1;
|
|
73
|
-
const control = options.negativeControl !== undefined;
|
|
74
|
-
if (repeat > 1 || control)
|
|
75
|
-
assertMultiRunUsage(testPaths, options);
|
|
76
|
-
const halves = await splitHarnesses(engineDir, testPaths, options);
|
|
77
|
-
if (halves === undefined && repeat === 1 && !control)
|
|
78
|
-
return undefined;
|
|
79
|
-
const groups = halves ?? [
|
|
80
|
-
{ paths: testPaths },
|
|
81
|
-
];
|
|
82
|
-
const union = halves?.flatMap((half) => half.paths);
|
|
83
|
-
const runs = [];
|
|
84
|
-
for (let repetition = 1; repetition <= repeat; repetition += 1) {
|
|
85
|
-
for (const group of groups) {
|
|
86
|
-
const first = runs.length === 0;
|
|
87
|
-
runs.push({
|
|
88
|
-
repetition,
|
|
89
|
-
...(group.harness === undefined ? {} : { harness: group.harness }),
|
|
90
|
-
paths: group.paths,
|
|
91
|
-
options: first ? options : laterRunOptions(options),
|
|
92
|
-
hooks: {
|
|
93
|
-
repetition,
|
|
94
|
-
...(first && union !== undefined ? { coveragePaths: union } : {}),
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return runs;
|
|
100
|
-
}
|
|
101
|
-
function writeRunLine(line) {
|
|
102
|
-
process.stdout.write(`${line}\n`);
|
|
103
|
-
writeToActiveRunLog(`${line}\n`);
|
|
104
|
-
}
|
|
105
|
-
function controlHook(paths, plan, slot) {
|
|
106
|
-
return async () => {
|
|
107
|
-
slot.applied = await applyNegativeControl(paths, plan);
|
|
108
|
-
notice(`Negative control applied to ${plan.targets.map((target) => `engine/${target.enginePath}`).join(', ')}; ` +
|
|
109
|
-
'it stays in place until this run has finished.');
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
/** The stamp a compiled control's pre-test build records on its baseline. */
|
|
113
|
-
function compiledControlStamp(options, compiled) {
|
|
114
|
-
if (compiled === undefined || options.negativeControl === undefined)
|
|
115
|
-
return undefined;
|
|
116
|
-
return {
|
|
117
|
-
diffFile: options.negativeControl,
|
|
118
|
-
targets: [...compiled],
|
|
119
|
-
appliedAt: new Date().toISOString(),
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* After a compiled control was restored, rebuilds the binary that still
|
|
124
|
-
* carries it, when this run's control build recorded its stamp, and
|
|
125
|
-
* stamps `control-restore-build=done|failed` on the verdict.
|
|
126
|
-
*/
|
|
127
|
-
async function rebuildAfterCompiledControl(projectRoot, stamp, options) {
|
|
128
|
-
if (stamp === undefined || !(await controlBuildRecorded(projectRoot, stamp)))
|
|
129
|
-
return;
|
|
130
|
-
setVerdictRunAttribute('control-restore-build', await runControlRestoreBuild(projectRoot, stamp, options.harnessRetries));
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Throws the invocation's error after the aggregate verdict, or returns
|
|
134
|
-
* when the invocation succeeded (all runs green, or a control caught).
|
|
135
|
-
*/
|
|
136
|
-
function finishInvocation(results, plannedTotal, control) {
|
|
137
|
-
if (control !== undefined)
|
|
138
|
-
info(describeControlOutcome(control));
|
|
139
|
-
if (control === 'caught') {
|
|
140
|
-
success('Negative control caught.');
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (control === 'missed') {
|
|
144
|
-
throw new TestFailureError('Negative control stayed green: no run went red with the mutation applied, so the selected tests do not detect it.', 'mach test', undefined, getActiveRunLogPath());
|
|
145
|
-
}
|
|
146
|
-
const worst = worstRun(results);
|
|
147
|
-
if (worst === undefined)
|
|
148
|
-
return;
|
|
149
|
-
if (worst.reason === 'preflight' || worst.reason === 'inconclusive') {
|
|
150
|
-
throw worst.error instanceof Error
|
|
151
|
-
? worst.error
|
|
152
|
-
: new GeneralError(`Run ${results.indexOf(worst) + 1} was refused.`);
|
|
153
|
-
}
|
|
154
|
-
const failing = results
|
|
155
|
-
.map((result, index) => ({ result, index }))
|
|
156
|
-
.filter(({ result }) => !result.passed)
|
|
157
|
-
.map(({ result, index }) => `run ${index + 1} (${result.reason ?? 'failed'})`);
|
|
158
|
-
throw new TestFailureError(`${failing.length} of ${plannedTotal} run(s) did not pass: ${failing.join(', ')}. See each FIREFORGE-RUN line above.`, 'mach test', undefined, getActiveRunLogPath());
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Runs `fireforge test` as one or several sub-runs. Always recovers a
|
|
162
|
-
* negative control a killed earlier run left applied, first.
|
|
163
|
-
*
|
|
164
|
-
* @param projectRoot - Project root
|
|
165
|
-
* @param testPaths - The positional test paths
|
|
166
|
-
* @param options - Parsed test options
|
|
167
|
-
* @param body - The single-run body
|
|
168
|
-
* @param onRefusal - Renders a sub-run's preflight refusal and emits its
|
|
169
|
-
* `FAIL reason=preflight` verdict (captured), as `testCommand` does for a
|
|
170
|
-
* single run
|
|
171
|
-
*/
|
|
172
|
-
export async function orchestrateTestRuns(projectRoot, testPaths, options, body, onRefusal) {
|
|
173
|
-
const projectPaths = getProjectPaths(projectRoot);
|
|
174
|
-
const controlPaths = {
|
|
175
|
-
engineDir: projectPaths.engine,
|
|
176
|
-
fireforgeDir: projectPaths.fireforgeDir,
|
|
177
|
-
};
|
|
178
|
-
await recoverPendingNegativeControl(controlPaths);
|
|
179
|
-
const runs = await planRuns(projectPaths.engine, testPaths, options);
|
|
180
|
-
if (runs === undefined) {
|
|
181
|
-
await body(testPaths, options, {});
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
const plan = options.negativeControl === undefined
|
|
185
|
-
? undefined
|
|
186
|
-
: await planNegativeControl(projectRoot, projectPaths.engine, options.negativeControl, {
|
|
187
|
-
deferApplyCheck: options.build === true,
|
|
188
|
-
});
|
|
189
|
-
// A compiled target only reaches the binary through a build, so its
|
|
190
|
-
// control goes in before the first run's pre-test build.
|
|
191
|
-
const compiled = plan?.compiled;
|
|
192
|
-
const compiledControl = compiled !== undefined;
|
|
193
|
-
if (compiledControl) {
|
|
194
|
-
if (options.build !== true) {
|
|
195
|
-
throw new PreflightRefusalError(formatCompiledControlRefusal(compiled), 'negative-control');
|
|
196
|
-
}
|
|
197
|
-
setVerdictRunAttribute('control-build', 'compiled');
|
|
198
|
-
}
|
|
199
|
-
const controlStamp = compiledControlStamp(options, compiled);
|
|
200
|
-
const results = [];
|
|
201
|
-
let restoreError;
|
|
202
|
-
for (const [index, run] of runs.entries()) {
|
|
203
|
-
notice(`Run ${index + 1}/${runs.length}${run.harness === undefined ? '' : ` (${run.harness})`}` +
|
|
204
|
-
`${plan === undefined ? '' : ', negative control'}: ${run.paths.join(' ')}`);
|
|
205
|
-
const capture = {};
|
|
206
|
-
const slot = {};
|
|
207
|
-
let error;
|
|
208
|
-
setVerdictCapture(capture);
|
|
209
|
-
try {
|
|
210
|
-
await body(run.paths, run.options, {
|
|
211
|
-
...run.hooks,
|
|
212
|
-
...(plan === undefined
|
|
213
|
-
? {}
|
|
214
|
-
: compiledControl && index === 0
|
|
215
|
-
? {
|
|
216
|
-
beforeBuild: controlHook(controlPaths, plan, slot),
|
|
217
|
-
fullBuildReason: formatCompiledControlBuildNotice(compiled),
|
|
218
|
-
...(controlStamp === undefined ? {} : { controlBuild: controlStamp }),
|
|
219
|
-
}
|
|
220
|
-
: {
|
|
221
|
-
beforeDispatch: controlHook(controlPaths, plan, slot),
|
|
222
|
-
...(controlStamp === undefined ? {} : { ownControlBuild: controlStamp }),
|
|
223
|
-
}),
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
catch (caught) {
|
|
227
|
-
error = caught;
|
|
228
|
-
if (capture.line === undefined)
|
|
229
|
-
onRefusal(caught);
|
|
230
|
-
}
|
|
231
|
-
finally {
|
|
232
|
-
setVerdictCapture(undefined);
|
|
233
|
-
}
|
|
234
|
-
// Only a kill writes a real verdict while a capture is installed (see
|
|
235
|
-
// emitKilledVerdict). The invocation is over: restore, start nothing
|
|
236
|
-
// more, print nothing after that line.
|
|
237
|
-
const killed = verdictEmitted();
|
|
238
|
-
if (slot.applied !== undefined) {
|
|
239
|
-
try {
|
|
240
|
-
const restored = await restoreNegativeControl(slot.applied);
|
|
241
|
-
info(`Negative control restored byte-exact: ${restored.restored.length} file(s).`);
|
|
242
|
-
}
|
|
243
|
-
catch (caught) {
|
|
244
|
-
restoreError = caught;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
if (killed)
|
|
248
|
-
throw toError(restoreError ?? error ?? new GeneralError('The run was killed.'));
|
|
249
|
-
const result = {
|
|
250
|
-
repetition: run.repetition,
|
|
251
|
-
...(run.harness === undefined ? {} : { harness: run.harness }),
|
|
252
|
-
...parseCapturedVerdict(capture.line),
|
|
253
|
-
...(error === undefined ? {} : { error }),
|
|
254
|
-
};
|
|
255
|
-
results.push(result);
|
|
256
|
-
writeRunLine(formatRunLine(result, index, runs.length));
|
|
257
|
-
if (restoreError !== undefined)
|
|
258
|
-
break;
|
|
259
|
-
if (result.reason === 'preflight' || result.reason === 'inconclusive')
|
|
260
|
-
break;
|
|
261
|
-
}
|
|
262
|
-
if (restoreError !== undefined) {
|
|
263
|
-
emitFailVerdict('inconclusive', 'negative-control-restore');
|
|
264
|
-
throw toError(restoreError);
|
|
265
|
-
}
|
|
266
|
-
// The source is back byte-exact, but the binary still carries the
|
|
267
|
-
// compiled control: rebuild it under this same hold (see
|
|
268
|
-
// test-control-restore.ts). Only after every run, since a later
|
|
269
|
-
// `--repeat` run tests the same control-built binary.
|
|
270
|
-
await rebuildAfterCompiledControl(projectRoot, controlStamp, options);
|
|
271
|
-
const repetitions = options.repeat ?? 1;
|
|
272
|
-
const control = plan === undefined
|
|
273
|
-
? undefined
|
|
274
|
-
: deriveControlOutcome(results, repetitions, results.length === runs.length);
|
|
275
|
-
emitAggregateVerdict(formatAggregateBody(results, runs.length, control));
|
|
276
|
-
finishInvocation(results, runs.length, control);
|
|
277
|
-
}
|