@hominis/fireforge 0.54.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 +287 -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 -438
- 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 -332
- 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 -420
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -422
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -208
- 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 -692
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +113 -181
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -277
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +163 -653
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -712
- 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 -91
- package/dist/src/commands/check-run.d.ts +0 -33
- package/dist/src/commands/check-run.js +0 -112
- 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 -218
- 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 -282
- 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/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 -52
- 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 -261
- 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 -117
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -15
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -49
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -248
- 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 -267
- 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-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 -35
- package/dist/src/commands/re-export-hunks.js +0 -220
- 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 -191
- 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 -39
- package/dist/src/commands/re-export-single.js +0 -388
- 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 -28
- package/dist/src/commands/re-export-summary.js +0 -36
- 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 -29
- package/dist/src/commands/test-build-phase.js +0 -290
- 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 -63
- package/dist/src/commands/test-orchestrate.js +0 -274
- 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 -52
- package/dist/src/commands/test-stale-gate.js +0 -165
- package/dist/src/commands/test-verdict.d.ts +0 -92
- package/dist/src/commands/test-verdict.js +0 -162
- 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.d.ts +0 -56
- 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 -274
- 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 -92
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -503
- 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/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 -62
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -124
- 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 -146
- 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 -79
- package/dist/src/core/furnace-constants.js +0 -123
- 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-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 -61
- package/dist/src/core/furnace-jsconfig.js +0 -208
- 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-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 -302
- 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 -318
- 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 -204
- 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.d.ts +0 -78
- package/dist/src/core/patch-lint-cache.js +0 -233
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -39
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -63
- 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.d.ts +0 -180
- package/dist/src/core/patch-lint-checkjs.js +0 -611
- 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 -5
- package/dist/src/core/patch-lint-imports.js +0 -67
- 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 -78
- package/dist/src/core/patch-lint-staged-registration.js +0 -110
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -57
- package/dist/src/core/patch-lint-token-scale.js +0 -286
- 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 -191
- package/dist/src/core/patch-lint.js +0 -529
- 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 -161
- package/dist/src/core/patch-parse.js +0 -347
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -216
- 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-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -507
- package/dist/src/core/typecheck.d.ts +0 -75
- package/dist/src/core/typecheck.js +0 -433
- 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 -1367
- 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 -703
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -415
- 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,317 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Failure diagnosis for `fireforge test`: maps captured mach output to
|
|
4
|
-
* actionable operator messages (unknown test paths, stale build artifacts,
|
|
5
|
-
* fork-module registration, xpcshell appdir, harness symlinks, mochitest
|
|
6
|
-
* branding interactions), and applies harness-run verdicts from
|
|
7
|
-
* `test-harness-crash.ts` for single and sharded invocations. Split out of
|
|
8
|
-
* `test.ts` to keep both files within the per-file line budget.
|
|
9
|
-
*/
|
|
10
|
-
import { getActiveRunLogPath } from '../core/run-log.js';
|
|
11
|
-
import { describeChangedPrefNoise } from '../core/test-changed-prefs.js';
|
|
12
|
-
import { buildGreenSummaryRejectedMessage, buildHarnessCrashMessage, buildNoTestsRanMessage, buildSilentSegfaultMessage, headedNoOutputTimeoutHint, isSilentSegfault, } from '../core/test-harness-crash.js';
|
|
13
|
-
import { buildHarnessEarlyExitMessage, classifyHarnessEarlyExit, completePostRebuildFailureContext, prependPostRebuildFailureContext, } from '../core/test-harness-output.js';
|
|
14
|
-
import { buildIncompleteRunMessage } from '../core/test-run-completeness.js';
|
|
15
|
-
import { GeneralError } from '../errors/base.js';
|
|
16
|
-
import { TestFailureError } from '../errors/build.js';
|
|
17
|
-
import { toError } from '../utils/errors.js';
|
|
18
|
-
import { info } from '../utils/logger.js';
|
|
19
|
-
import { getPlatform } from '../utils/platform.js';
|
|
20
|
-
import { escapeRegex } from '../utils/regex.js';
|
|
21
|
-
import { emitHarnessVerdict } from './test-verdict.js';
|
|
22
|
-
function buildUnknownTestMessage(testPaths) {
|
|
23
|
-
return (`mach could not discover the requested test path${testPaths.length === 1 ? '' : 's'}: ${testPaths.join(', ')}\n\n` +
|
|
24
|
-
'The file may exist, but Firefox does not currently resolve it as a runnable test.\n\n' +
|
|
25
|
-
'Check the nearest test manifest (for example browser.toml or xpcshell.toml), confirm the file is listed under the correct test type, and make sure each parent moz.build registers that manifest before retrying.');
|
|
26
|
-
}
|
|
27
|
-
function buildStaleBuildMessage(postRebuild) {
|
|
28
|
-
if (postRebuild) {
|
|
29
|
-
return ('Firefox test runtime still reported stale-artifact-shaped resource failures after the rebuild completed.\n\n' +
|
|
30
|
-
'FireForge already ran the requested rebuild before this focused test, so treat the remaining failure as a real runtime, registration, routing, or test-contract regression rather than another stale deployed-artifact-only blocker.\n\n' +
|
|
31
|
-
'Check the first post-rebuild failure above and the raw mach output for the concrete path or module that still fails.');
|
|
32
|
-
}
|
|
33
|
-
return ('Firefox test runtime appears to be using stale build artifacts.\n\n' +
|
|
34
|
-
'The failing output referenced missing branding or distribution resources, which usually means the current obj-* build does not match recent engine or branding changes.\n\n' +
|
|
35
|
-
'Re-run "fireforge build --ui" or "fireforge test --build" and then retry.');
|
|
36
|
-
}
|
|
37
|
-
function hasStaleBuildArtifactsSignal(output) {
|
|
38
|
-
// Narrow on purpose: only fire on branding-specific resource paths that
|
|
39
|
-
// are always a stale-artifact symptom. A pattern that also matches
|
|
40
|
-
// `resource:///modules/distribution.sys.mjs` fires on real packaging and
|
|
41
|
-
// module-resolution failures too (a fork's own `.sys.mjs` missing from
|
|
42
|
-
// the installed app dir after a successful build), pushing operators
|
|
43
|
-
// toward "rebuild" advice for a module-registration issue.
|
|
44
|
-
return (/chrome:\/\/branding\/locale\/brand\.properties/i.test(output) ||
|
|
45
|
-
/browser\/branding\/[^/\s]+\/moz\.build/i.test(output));
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Fork-module-not-registered signal.
|
|
49
|
-
*
|
|
50
|
-
* A fork's test failing with `Failed to load
|
|
51
|
-
* resource:///modules/<binary>/Store.sys.mjs` can also match the branding
|
|
52
|
-
* pattern, because the harness prints a branding warning during teardown,
|
|
53
|
-
* and the stale-build branch then wins by precedence, telling the operator
|
|
54
|
-
* to rebuild when the real fix is to register the module in the fork's
|
|
55
|
-
* `browser/modules/<binary>/moz.build`. Matching a
|
|
56
|
-
* `resource:///modules/<binaryName>/` pattern surfaces the right diagnosis.
|
|
57
|
-
*/
|
|
58
|
-
function hasForkModuleSignal(output, binaryName) {
|
|
59
|
-
// `binaryName` comes from fireforge.json, and config validation bars only
|
|
60
|
-
// `..`, path separators, NUL and absolute paths, so regex metacharacters
|
|
61
|
-
// get through. A hand-written character class is easy to get wrong (one that
|
|
62
|
-
// closes early after an escaped backslash escapes nothing), which makes
|
|
63
|
-
// `my.browser` match `myXbrowser` and lets an unbalanced `(` or `[` throw
|
|
64
|
-
// a SyntaxError out of the failure-diagnosis path, replacing the real test
|
|
65
|
-
// failure with an opaque regex error.
|
|
66
|
-
const pattern = new RegExp(`Failed to load resource:\\/\\/\\/modules\\/${escapeRegex(binaryName)}\\/`, 'i');
|
|
67
|
-
return pattern.test(output);
|
|
68
|
-
}
|
|
69
|
-
function buildForkModuleMessage(binaryName) {
|
|
70
|
-
return (`Test failed to load a fork-owned module at resource:///modules/${binaryName}/*.sys.mjs.\n\n` +
|
|
71
|
-
'This is almost always a module-registration issue, not a stale build. The fork module directory is missing an entry that maps its file into the resource URI tree, so `ChromeUtils.importESModule` cannot resolve it.\n\n' +
|
|
72
|
-
'Check that:\n' +
|
|
73
|
-
` - browser/modules/${binaryName}/moz.build lists the missing module in EXTRA_JS_MODULES.\n` +
|
|
74
|
-
` - browser/modules/moz.build references the ${binaryName}/ subdirectory (DIRS += [...]).\n` +
|
|
75
|
-
' - The last `fireforge build` (or `fireforge build --ui`) completed successfully against the current manifests. If the registration is new, the UI-faster build path may not pick it up — a full build may be required.\n\n' +
|
|
76
|
-
'Use `fireforge register browser/modules/' +
|
|
77
|
-
binaryName +
|
|
78
|
-
'/<file>.sys.mjs` to add the EXTRA_JS_MODULES entry if it is missing.');
|
|
79
|
-
}
|
|
80
|
-
// Detects the broader xpcshell symptom where every `resource:///modules/...`
|
|
81
|
-
// import fails, the signature of xpcshell running with the wrong app-dir on
|
|
82
|
-
// a manifest that sets `firefox-appdir = "browser"`. Checked after the
|
|
83
|
-
// stale-build signal (which matches the narrower `distribution.sys.mjs`
|
|
84
|
-
// path) so the more specific diagnosis wins when both patterns apply.
|
|
85
|
-
function hasXpcshellAppdirSignal(output) {
|
|
86
|
-
return /Failed to load resource:\/\/\/modules\//i.test(output);
|
|
87
|
-
}
|
|
88
|
-
function buildXpcshellAppdirMessage(injectionAttempted) {
|
|
89
|
-
const isMacos = process.platform === 'darwin';
|
|
90
|
-
const macosNote = isMacos
|
|
91
|
-
? 'Detected: macOS host. On macOS the xpcshell harness binds `-a` to `<obj>/dist/<App>.app/Contents/Resources` by default and frequently ignores `--app-path` overrides when the `.app` bundle is present — the surest fix is the `<appname>-appdir` migration below rather than trying to force a different path.\n\n'
|
|
92
|
-
: '';
|
|
93
|
-
const triggerLines = injectionAttempted
|
|
94
|
-
? 'FireForge auto-injected `--app-path=<absolute>` against the resolved obj-dir before mach test ran, but the failure persists. The injected path either does not match the appdir layout your harness expects, or (on macOS) the harness bound `-a` to the `.app/Contents/Resources` default and ignored the override.\n\n'
|
|
95
|
-
: 'Likely triggers:\n' +
|
|
96
|
-
' - The nearest xpcshell.toml sets `firefox-appdir = "browser"` but the harness reads `<appname>-appdir` instead — the literal `firefox-appdir` directive is silently ignored on rebranded forks (appname != "firefox").\n' +
|
|
97
|
-
' - FireForge could not find an xpcshell.toml above the test path, so the auto-injection never ran.\n\n';
|
|
98
|
-
return ('xpcshell failed to load core resource:///modules/*.sys.mjs imports.\n\n' +
|
|
99
|
-
'This is the canonical symptom of xpcshell running with the wrong app directory: the runtime resolves `resource:///modules/` against the parent of the expected app root, so every `ChromeUtils.importESModule("resource:///modules/…")` throws.\n\n' +
|
|
100
|
-
macosNote +
|
|
101
|
-
triggerLines +
|
|
102
|
-
'Options:\n' +
|
|
103
|
-
' - Add `<appname>-appdir = "browser"` alongside `firefox-appdir = "browser"` in the xpcshell.toml [DEFAULT] so the harness reads the appname-keyed value directly. This is the most reliable fix on rebranded macOS builds.\n' +
|
|
104
|
-
' - Pass overrides through `fireforge test <path> --mach-arg="--app-path=<absolute>"` to inject the path verbatim (operator overrides always win over auto-injection, but see the macOS caveat above).\n' +
|
|
105
|
-
' - Remove `firefox-appdir = "browser"` from the xpcshell.toml [DEFAULT] and move browser-chrome dependencies into a browser-chrome mochitest (see `fireforge furnace create --test-style=browser-chrome`).\n' +
|
|
106
|
-
' - If the test only touches toolkit chrome (chrome://global/*), drop the `firefox-appdir` setting entirely — toolkit chrome is registered without it.');
|
|
107
|
-
}
|
|
108
|
-
function buildHarnessSymlinkMessage() {
|
|
109
|
-
return ('mach failed while preparing test harness symlinks before the requested tests ran.\n\n' +
|
|
110
|
-
'This usually means the objdir contains stale harness setup from an earlier run. Re-run with `fireforge test --build` to refresh the harness state, or remove the stale harness symlink in the active obj-* directory before retrying.');
|
|
111
|
-
}
|
|
112
|
-
// Detects the `AttributeError: 'MochitestDesktop' object has no attribute
|
|
113
|
-
// 'http3Server'` teardown crash. The attribute is lazy-initialized inside
|
|
114
|
-
// harness code paths that presume chrome://branding resolves correctly. A
|
|
115
|
-
// missing or miswired branding registration short-circuits the setup and
|
|
116
|
-
// leaves the cleanup path looking up an attribute that was never assigned.
|
|
117
|
-
function hasMochitestHttp3ServerSignal(output) {
|
|
118
|
-
return /'MochitestDesktop' object has no attribute 'http3Server'/.test(output);
|
|
119
|
-
}
|
|
120
|
-
function buildMochitestHttp3ServerMessage() {
|
|
121
|
-
return ("Mochitest raised `AttributeError: 'MochitestDesktop' object has no attribute 'http3Server'`.\n\n" +
|
|
122
|
-
'This is almost always a symptom of `chrome://branding` not registering correctly in your fork — the mochitest harness lazy-initializes `http3Server` only after branding resolves, and a missing branding registration short-circuits setup. The cleanup path then trips the AttributeError, masking the real error.\n\n' +
|
|
123
|
-
'Check that:\n' +
|
|
124
|
-
" - Your fork's branding directory is listed in `browser/branding/moz.build` (or equivalent) and ships a `brand.properties` / `brand.ftl`.\n" +
|
|
125
|
-
' - `chrome://branding/locale/brand.properties` resolves at runtime (try `fireforge run` and inspect the Browser Console).\n' +
|
|
126
|
-
" - The `BROWSER_CHROME_MANIFESTS` entry for your fork's chrome.manifest is registered.\n\n" +
|
|
127
|
-
'This is an upstream Firefox harness interaction; FireForge can only diagnose it.');
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Maps a non-zero mach exit to the most specific actionable diagnosis the
|
|
131
|
-
* captured output supports, throwing it as a domain error.
|
|
132
|
-
*
|
|
133
|
-
* The branch order is load-bearing: narrower signals are checked before
|
|
134
|
-
* broader ones, so a fork-owned module failure is not reported as a stale
|
|
135
|
-
* build.
|
|
136
|
-
*/
|
|
137
|
-
function handleNonZeroTestExit(result, normalizedPaths, appdirInjectionAttempted, binaryName, postRebuildContext,
|
|
138
|
-
/**
|
|
139
|
-
* The classified verdict, when one was reached. Carries the failing-test
|
|
140
|
-
* evidence the final throw names. Every branch above that throw is a
|
|
141
|
-
* different diagnosis and does not use it.
|
|
142
|
-
*/
|
|
143
|
-
verdict) {
|
|
144
|
-
if (result.exitCode === 0 || result.exitCode === 130)
|
|
145
|
-
return;
|
|
146
|
-
const combinedOutput = `${result.stdout}\n${result.stderr}`;
|
|
147
|
-
if (/copyExtraFilesToProfile/.test(combinedOutput) && /FileExistsError/.test(combinedOutput)) {
|
|
148
|
-
throw new GeneralError('Harness argument failure: --extra-profile-file collided with the existing profile directory. Use --profile-file source=chrome/userChrome.css to merge an individual file; rebuilding does not repair this argument.');
|
|
149
|
-
}
|
|
150
|
-
const failureContext = postRebuildContext
|
|
151
|
-
? completePostRebuildFailureContext(postRebuildContext, combinedOutput)
|
|
152
|
-
: undefined;
|
|
153
|
-
const withContext = (message) => prependPostRebuildFailureContext(message, failureContext);
|
|
154
|
-
const throwGeneral = (message) => {
|
|
155
|
-
throw new GeneralError(withContext(message));
|
|
156
|
-
};
|
|
157
|
-
// First, because there is nothing else to go on: a SIGSEGV with zero
|
|
158
|
-
// output has exactly one known cause and no other evidence.
|
|
159
|
-
// Every branch below keys on output text this shape does not have.
|
|
160
|
-
if (isSilentSegfault(result.exitCode, combinedOutput)) {
|
|
161
|
-
throwGeneral(buildSilentSegfaultMessage(result.exitCode, normalizedPaths));
|
|
162
|
-
}
|
|
163
|
-
if (/UNKNOWN TEST\b/i.test(combinedOutput)) {
|
|
164
|
-
throwGeneral(buildUnknownTestMessage(normalizedPaths));
|
|
165
|
-
}
|
|
166
|
-
const earlyExit = classifyHarnessEarlyExit(combinedOutput, normalizedPaths);
|
|
167
|
-
if (earlyExit) {
|
|
168
|
-
throwGeneral(buildHarnessEarlyExitMessage(earlyExit, normalizedPaths));
|
|
169
|
-
}
|
|
170
|
-
// Fork-owned module load failures must beat the branding stale-build
|
|
171
|
-
// branch: a test failing with `Failed to load
|
|
172
|
-
// resource:///modules/<binary>/Store.sys.mjs` while the harness teardown
|
|
173
|
-
// prints a branding warning would otherwise be told to rebuild, when the
|
|
174
|
-
// real fix is to register the missing module.
|
|
175
|
-
if (hasForkModuleSignal(combinedOutput, binaryName)) {
|
|
176
|
-
throwGeneral(buildForkModuleMessage(binaryName));
|
|
177
|
-
}
|
|
178
|
-
// Branding-specific stale-build signals keep priority over the broader
|
|
179
|
-
// xpcshell-appdir hint: when `chrome://branding/locale/brand.properties`
|
|
180
|
-
// fails to resolve, the fix really is "rebuild", not "pass --app-path".
|
|
181
|
-
// The stale-build check is narrow enough not to match
|
|
182
|
-
// `resource:///modules/distribution.sys.mjs` alone, which produced
|
|
183
|
-
// false-positive rebuild advice on fork-custom module-load failures. Those
|
|
184
|
-
// cases fall through to xpcshell-appdir, the more useful diagnosis for
|
|
185
|
-
// `Failed to load resource:///modules/…`.
|
|
186
|
-
if (hasStaleBuildArtifactsSignal(combinedOutput)) {
|
|
187
|
-
throwGeneral(buildStaleBuildMessage(Boolean(failureContext)));
|
|
188
|
-
}
|
|
189
|
-
if (hasXpcshellAppdirSignal(combinedOutput)) {
|
|
190
|
-
throwGeneral(buildXpcshellAppdirMessage(appdirInjectionAttempted));
|
|
191
|
-
}
|
|
192
|
-
if (hasMochitestHttp3ServerSignal(combinedOutput)) {
|
|
193
|
-
throwGeneral(buildMochitestHttp3ServerMessage());
|
|
194
|
-
}
|
|
195
|
-
if (/FileExistsError/i.test(combinedOutput) &&
|
|
196
|
-
/(mochitest|xpcshell|_tests)/i.test(combinedOutput)) {
|
|
197
|
-
throwGeneral(buildHarnessSymlinkMessage());
|
|
198
|
-
}
|
|
199
|
-
if (/invalid filename/i.test(combinedOutput) ||
|
|
200
|
-
/chrome:\/\/mochitests.*not found/i.test(combinedOutput)) {
|
|
201
|
-
info('Hint: The test file may not be registered in browser.toml or jar.mn.');
|
|
202
|
-
info('Run "fireforge register <test-path>" to register it.');
|
|
203
|
-
}
|
|
204
|
-
// Last, and additive rather than a branch of its own: the run really did
|
|
205
|
-
// fail (exit code stays 5), so this only says which kind of failure it is.
|
|
206
|
-
// Every branch above is a different diagnosis and outranks it.
|
|
207
|
-
const changedPrefNoise = describeChangedPrefNoise(combinedOutput);
|
|
208
|
-
const failureBlocks = formatFailureBlocks(verdict?.realFailureBlocks);
|
|
209
|
-
const logPath = getActiveRunLogPath();
|
|
210
|
-
throw new TestFailureError(withContext(`Tests failed with exit code ${result.exitCode}.` +
|
|
211
|
-
(changedPrefNoise !== undefined ? `\n\n${changedPrefNoise}` : '')), 'mach test', failureBlocks, logPath);
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Applies the harness-run verdict for a single (non-sharded) invocation:
|
|
215
|
-
* exhausted harness-crash retries and silent zero-TEST-START runs are
|
|
216
|
-
* harness problems with their own messages. Everything else flows into
|
|
217
|
-
* the regular non-zero-exit diagnosis chain.
|
|
218
|
-
*/
|
|
219
|
-
export function finalizeSingleRunOutcome(outcome, normalizedPaths, binaryName, postRebuildContext, headless = false) {
|
|
220
|
-
// The FIREFORGE-VERDICT line is the last stdout write of the run, on the
|
|
221
|
-
// pass return and every throw path alike, written raw (not via clack,
|
|
222
|
-
// whose renderer drops output under non-TTY capture) so harness-verdict
|
|
223
|
-
// consumers grep one stable line instead of mach internals.
|
|
224
|
-
try {
|
|
225
|
-
applySingleRunOutcome(outcome, normalizedPaths, binaryName, postRebuildContext, headless);
|
|
226
|
-
}
|
|
227
|
-
finally {
|
|
228
|
-
emitHarnessVerdict(outcome.verdict);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
function applySingleRunOutcome(outcome, normalizedPaths, binaryName, postRebuildContext, headless) {
|
|
232
|
-
if (outcome.verdict.kind === 'harness-crash' && outcome.verdict.signature) {
|
|
233
|
-
const base = buildHarnessCrashMessage(outcome.verdict.signature, outcome.attempts);
|
|
234
|
-
const hint = headedNoOutputTimeoutHint(outcome.verdict.signature, {
|
|
235
|
-
headless,
|
|
236
|
-
platform: getPlatform(),
|
|
237
|
-
...(outcome.displayState !== undefined ? { displayState: outcome.displayState } : {}),
|
|
238
|
-
});
|
|
239
|
-
throw new GeneralError(hint ? `${base}\n\n${hint}` : base);
|
|
240
|
-
}
|
|
241
|
-
if (outcome.verdict.kind === 'tests-ran-ok') {
|
|
242
|
-
// The verdict is authoritative over the raw exit code: a completed green
|
|
243
|
-
// embedded summary overrides a non-zero exit caused by harness noise,
|
|
244
|
-
// which would otherwise leave operators parsing embedded summaries by
|
|
245
|
-
// hand.
|
|
246
|
-
if (outcome.verdict.greenSummaryOverride) {
|
|
247
|
-
info(`Note: mach exited ${outcome.result.exitCode}, but the embedded suite summary completed ` +
|
|
248
|
-
'green (Unexpected results: 0). FireForge treats the run as passed; the non-zero exit ' +
|
|
249
|
-
'came from non-fatal harness noise (resource-monitor degradation / telemetry).');
|
|
250
|
-
}
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
if (outcome.verdict.incomplete !== undefined) {
|
|
254
|
-
throw new TestFailureError(buildIncompleteRunMessage(outcome.verdict.incomplete), 'mach test', formatFailureBlocks(outcome.verdict.realFailureBlocks), getActiveRunLogPath());
|
|
255
|
-
}
|
|
256
|
-
if (outcome.verdict.kind === 'no-tests' && outcome.result.exitCode === 0) {
|
|
257
|
-
// The silent false green: exit 0 plus a "Passed: 0"-style summary with
|
|
258
|
-
// zero TEST-START lines must fail rather than pass.
|
|
259
|
-
throw new GeneralError(buildNoTestsRanMessage(0, normalizedPaths));
|
|
260
|
-
}
|
|
261
|
-
// A green-looking summary rejected on crash/truncation evidence gets its
|
|
262
|
-
// own explanation instead of the generic exit-code message, so the
|
|
263
|
-
// operator can see why the green counts were not trusted.
|
|
264
|
-
if (outcome.verdict.greenSummaryRejected) {
|
|
265
|
-
throw new GeneralError(buildGreenSummaryRejectedMessage(outcome.verdict.greenSummaryRejected, outcome.result.exitCode));
|
|
266
|
-
}
|
|
267
|
-
if (outcome.verdict.realFailureLine !== undefined) {
|
|
268
|
-
info(`First real test failure: ${outcome.verdict.realFailureLine}`);
|
|
269
|
-
const blocks = formatFailureBlocks(outcome.verdict.realFailureBlocks);
|
|
270
|
-
if (blocks !== undefined) {
|
|
271
|
-
info(blocks);
|
|
272
|
-
}
|
|
273
|
-
if (outcome.verdict.secondaryHarnessSignature !== undefined) {
|
|
274
|
-
info(`Secondary harness noise also present: ${outcome.verdict.secondaryHarnessSignature.reason}; ` +
|
|
275
|
-
outcome.verdict.secondaryHarnessSignature.line);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
handleNonZeroTestExit(outcome.result, normalizedPaths, outcome.appdirInjectionAttempted, binaryName, postRebuildContext, outcome.verdict);
|
|
279
|
-
}
|
|
280
|
-
/**
|
|
281
|
-
* Shard-mode adapter over {@link handleNonZeroTestExit}: produces the
|
|
282
|
-
* diagnosis text as a string (to warn per shard) instead of throwing, so
|
|
283
|
-
* later shards still run and the aggregate error stays singular.
|
|
284
|
-
*/
|
|
285
|
-
export function diagnoseShardOutcome(outcome, path, binaryName, postRebuildContext) {
|
|
286
|
-
if (outcome.verdict.kind === 'no-tests' && outcome.result.exitCode === 0) {
|
|
287
|
-
return buildNoTestsRanMessage(0, [path]);
|
|
288
|
-
}
|
|
289
|
-
if (outcome.verdict.incomplete !== undefined) {
|
|
290
|
-
return buildIncompleteRunMessage(outcome.verdict.incomplete);
|
|
291
|
-
}
|
|
292
|
-
if (outcome.verdict.greenSummaryRejected) {
|
|
293
|
-
return buildGreenSummaryRejectedMessage(outcome.verdict.greenSummaryRejected, outcome.result.exitCode);
|
|
294
|
-
}
|
|
295
|
-
try {
|
|
296
|
-
handleNonZeroTestExit(outcome.result, [path], outcome.appdirInjectionAttempted, binaryName, postRebuildContext);
|
|
297
|
-
return undefined;
|
|
298
|
-
}
|
|
299
|
-
catch (error) {
|
|
300
|
-
const diagnosis = toError(error).message;
|
|
301
|
-
const blocks = formatFailureBlocks(outcome.verdict.realFailureBlocks);
|
|
302
|
-
return blocks !== undefined ? `${blocks}\n${diagnosis}` : diagnosis;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* Renders the verdict's TEST-UNEXPECTED blocks (verbatim failing lines +
|
|
307
|
-
* their assertion/diff context) for the failure summary. Returns undefined
|
|
308
|
-
* when the verdict carries none, so callers can skip the section entirely.
|
|
309
|
-
*/
|
|
310
|
-
function formatFailureBlocks(blocks) {
|
|
311
|
-
if (blocks === undefined || blocks.length === 0)
|
|
312
|
-
return undefined;
|
|
313
|
-
// The collector appends a `…(+N more …)` note when it truncated. That
|
|
314
|
-
// note is not a failure block, so it does not count toward the header.
|
|
315
|
-
const shown = blocks.filter((block) => !block.startsWith('…(')).length;
|
|
316
|
-
return `Unexpected test failures (first ${shown}):\n${blocks.join('\n\n')}`;
|
|
317
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The dispatch half of one `fireforge test` run, split out of `test.ts`:
|
|
3
|
-
* the engine-generation guard around the harness, and the choice between
|
|
4
|
-
* one combined invocation, per-argument shards, `--shard-size` chunks and
|
|
5
|
-
* `--jobs` parallel harness instances.
|
|
6
|
-
*/
|
|
7
|
-
import type { PostRebuildFailureContext } from '../core/test-harness-output.js';
|
|
8
|
-
import type { TestOptions } from '../types/commands/index.js';
|
|
9
|
-
import type { FireForgeConfig } from '../types/config.js';
|
|
10
|
-
import { type TestRunContext } from './test-run.js';
|
|
11
|
-
import { type ShardGroup } from './test-shards.js';
|
|
12
|
-
/** Everything the dispatch half needs from the run body. */
|
|
13
|
-
export interface TestDispatchInputs {
|
|
14
|
-
engineDir: string;
|
|
15
|
-
runCtx: TestRunContext;
|
|
16
|
-
dispatchGroups: ShardGroup[];
|
|
17
|
-
options: TestOptions;
|
|
18
|
-
projectConfig: FireForgeConfig;
|
|
19
|
-
canaryPath: string | undefined;
|
|
20
|
-
shuffleSeed: number | undefined;
|
|
21
|
-
normalizedPaths: string[];
|
|
22
|
-
xpcshellOnly: boolean;
|
|
23
|
-
postRebuildContext: PostRebuildFailureContext | undefined;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Refuses `--jobs`/`--shard-size` shapes that cannot work, before any lock
|
|
27
|
-
* or build: both need explicit paths and a real dispatch, and parallel
|
|
28
|
-
* instances cannot share one operator-pinned Marionette port.
|
|
29
|
-
*
|
|
30
|
-
* @param testPaths - Requested paths
|
|
31
|
-
* @param options - Parsed options
|
|
32
|
-
*/
|
|
33
|
-
export declare function assertParallelTestUsage(testPaths: readonly string[], options: TestOptions): void;
|
|
34
|
-
/**
|
|
35
|
-
* Runs the planned dispatch and finalizes its verdict.
|
|
36
|
-
*
|
|
37
|
-
* @param inputs - See {@link TestDispatchInputs}
|
|
38
|
-
*/
|
|
39
|
-
export declare function dispatchTests(inputs: TestDispatchInputs): Promise<void>;
|
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* The dispatch half of one `fireforge test` run, split out of `test.ts`:
|
|
4
|
-
* the engine-generation guard around the harness, and the choice between
|
|
5
|
-
* one combined invocation, per-argument shards, `--shard-size` chunks and
|
|
6
|
-
* `--jobs` parallel harness instances.
|
|
7
|
-
*/
|
|
8
|
-
import { createServer } from 'node:net';
|
|
9
|
-
import { join } from 'node:path';
|
|
10
|
-
import { assertEngineGenerationUnchanged, snapshotEngineGeneration, } from '../core/engine-session-lock.js';
|
|
11
|
-
import { autoPortsRequested, detectHarnessPortFallback } from '../core/harness-port-fallback.js';
|
|
12
|
-
import { reserveHarnessServerPorts, } from '../core/harness-port-reservation.js';
|
|
13
|
-
import { extractForwardedMarionettePort } from '../core/marionette-port.js';
|
|
14
|
-
import { GeneralError, InvalidArgumentError } from '../errors/base.js';
|
|
15
|
-
import { BuildError } from '../errors/build.js';
|
|
16
|
-
import { ensureDir } from '../utils/fs.js';
|
|
17
|
-
import { notice } from '../utils/logger.js';
|
|
18
|
-
import { diagnoseShardOutcome, finalizeSingleRunOutcome } from './test-diagnose.js';
|
|
19
|
-
import { shuffleTestGroups } from './test-harness-env.js';
|
|
20
|
-
import { reportCanaryOutcome } from './test-modes.js';
|
|
21
|
-
import { perfGenerationTolerance, runGenerationTolerance } from './test-perf-scope.js';
|
|
22
|
-
import { runTestsWithRetries } from './test-run.js';
|
|
23
|
-
import { chunkShardGroups, finalizeShardedOutcome, runShardedTests, splitContiguous, } from './test-shards.js';
|
|
24
|
-
import { emitFailVerdict, setVerdictRunAttribute } from './test-verdict.js';
|
|
25
|
-
/**
|
|
26
|
-
* Refuses `--jobs`/`--shard-size` shapes that cannot work, before any lock
|
|
27
|
-
* or build: both need explicit paths and a real dispatch, and parallel
|
|
28
|
-
* instances cannot share one operator-pinned Marionette port.
|
|
29
|
-
*
|
|
30
|
-
* @param testPaths - Requested paths
|
|
31
|
-
* @param options - Parsed options
|
|
32
|
-
*/
|
|
33
|
-
export function assertParallelTestUsage(testPaths, options) {
|
|
34
|
-
const parallel = (options.jobs ?? 1) > 1;
|
|
35
|
-
const flags = [
|
|
36
|
-
...(parallel ? ['--jobs'] : []),
|
|
37
|
-
...(options.shardSize !== undefined ? ['--shard-size'] : []),
|
|
38
|
-
];
|
|
39
|
-
if (flags.length === 0)
|
|
40
|
-
return;
|
|
41
|
-
const flag = flags.join('/');
|
|
42
|
-
if (testPaths.length === 0 || options.canary !== undefined || options.auto === true) {
|
|
43
|
-
throw new InvalidArgumentError(`${flag} splits explicit test paths, so it needs paths and cannot be combined with --canary or --auto.`, flags[0]);
|
|
44
|
-
}
|
|
45
|
-
if (options.buildOnly === true) {
|
|
46
|
-
throw new InvalidArgumentError(`${flag} shapes a dispatch; --build-only runs none.`, flags[0]);
|
|
47
|
-
}
|
|
48
|
-
if (parallel &&
|
|
49
|
-
(options.marionettePort !== undefined ||
|
|
50
|
-
extractForwardedMarionettePort(options.machArg ?? []) !== undefined)) {
|
|
51
|
-
throw new InvalidArgumentError('--jobs gives every harness instance its own Marionette port, so it cannot be combined with a pinned --marionette-port (or a forwarded one).', '--jobs');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Verifies `engine/` did not change under the run in a way the run could
|
|
56
|
-
* see before any PASS verdict may print. On failure the run's verdict is
|
|
57
|
-
* `FAIL reason=inconclusive`, because the harness result exists but cannot
|
|
58
|
-
* be trusted (`preflight` would misdescribe a run whose harness already
|
|
59
|
-
* executed). It is emitted here so the guard's throw can never leave a
|
|
60
|
-
* stale or missing verdict line behind.
|
|
61
|
-
*/
|
|
62
|
-
async function verifyEngineGenerationOrEmitInconclusive(engineDir, before, inputs) {
|
|
63
|
-
try {
|
|
64
|
-
await assertEngineGenerationUnchanged(engineDir, before, inputs.perfSamples === undefined
|
|
65
|
-
? runGenerationTolerance(engineDir, inputs.requested, (count) => {
|
|
66
|
-
setVerdictRunAttribute('drift-tolerated', String(count));
|
|
67
|
-
})
|
|
68
|
-
: perfGenerationTolerance(engineDir));
|
|
69
|
-
if (inputs.powerChanged === true)
|
|
70
|
-
throw new GeneralError('Perf power source changed during the run; repeat this sitting on a stable power source.');
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
emitFailVerdict('inconclusive');
|
|
74
|
-
throw error;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/** A free TCP port on the loopback interface, for one harness instance. */
|
|
78
|
-
async function allocateLoopbackPort() {
|
|
79
|
-
return new Promise((resolve, reject) => {
|
|
80
|
-
const server = createServer();
|
|
81
|
-
server.once('error', reject);
|
|
82
|
-
server.listen(0, '127.0.0.1', () => {
|
|
83
|
-
const address = server.address();
|
|
84
|
-
const port = typeof address === 'object' && address !== null ? address.port : 0;
|
|
85
|
-
server.close(() => {
|
|
86
|
-
resolve(port);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* The mochitest harness writes the dispatched test list to
|
|
93
|
-
* `_tests/testing/mochitest/tests.json` and the browser fetches it from
|
|
94
|
-
* there, so instances sharing the default name read each other's list (and
|
|
95
|
-
* one instance's cleanup removes it under the other). Each instance names
|
|
96
|
-
* its own file.
|
|
97
|
-
*/
|
|
98
|
-
function testRunManifestArg(index) {
|
|
99
|
-
return `--testrun-manifest-file=fireforge-tests-${process.pid}-job${index + 1}.json`;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* The `MOZ_UPLOAD_DIR` the caller gave this run (its own env first, then
|
|
103
|
-
* the process environment), or undefined when there is none.
|
|
104
|
-
*/
|
|
105
|
-
function uploadDirBase(base) {
|
|
106
|
-
const dir = base.env?.['MOZ_UPLOAD_DIR'] ?? process.env['MOZ_UPLOAD_DIR'];
|
|
107
|
-
return dir === undefined || dir === '' ? undefined : dir;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* `--jobs` instance `index`'s own upload directory, `<base>/job-<n>`. The
|
|
111
|
-
* harness writes per-run artifacts there under fixed names (the
|
|
112
|
-
* `modifiedPrefs.json` pref census among them), so instances sharing the
|
|
113
|
-
* caller's directory replace each other's files.
|
|
114
|
-
*/
|
|
115
|
-
function instanceUploadDir(uploadBase, index) {
|
|
116
|
-
return join(uploadBase, `job-${index + 1}`);
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* The context for `--jobs` instance `index` (0-based): its own output
|
|
120
|
-
* prefix, upload directory (when the caller set `MOZ_UPLOAD_DIR`) and
|
|
121
|
-
* test-list manifest, and from the second instance on its own Marionette
|
|
122
|
-
* port, so browsers started at the same moment never race for 2828. The
|
|
123
|
-
* mochitest server ports are moved by the engine harness's busy-port
|
|
124
|
-
* fallback, which `--jobs` requires (auto ports), while
|
|
125
|
-
* {@link reserveHarnessServerPorts} holds the defaults.
|
|
126
|
-
*/
|
|
127
|
-
async function instanceContext(base, index, xpcshellOnly) {
|
|
128
|
-
let ctx = { ...base, outputPrefix: `[job ${index + 1}] ` };
|
|
129
|
-
const uploadBase = uploadDirBase(base);
|
|
130
|
-
if (uploadBase !== undefined) {
|
|
131
|
-
const uploadDir = instanceUploadDir(uploadBase, index);
|
|
132
|
-
await ensureDir(uploadDir);
|
|
133
|
-
ctx = { ...ctx, env: { ...base.env, MOZ_UPLOAD_DIR: uploadDir } };
|
|
134
|
-
}
|
|
135
|
-
if (xpcshellOnly)
|
|
136
|
-
return ctx;
|
|
137
|
-
const own = [...base.baseExtraArgs, testRunManifestArg(index)];
|
|
138
|
-
if (index === 0)
|
|
139
|
-
return { ...ctx, baseExtraArgs: own };
|
|
140
|
-
const port = await allocateLoopbackPort();
|
|
141
|
-
return {
|
|
142
|
-
...ctx,
|
|
143
|
-
baseExtraArgs: [...own, `--setpref=marionette.port=${port}`, `--marionette=127.0.0.1:${port}`],
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Stamps a `--jobs` run's verdict attributes: `jobs=<n>`, and
|
|
148
|
-
* `upload-dirs=<dir>,...` naming each instance's upload directory, so a
|
|
149
|
-
* caller can merge per-instance artifacts.
|
|
150
|
-
*/
|
|
151
|
-
function stampParallelAttributes(runCtx, jobs, shards) {
|
|
152
|
-
setVerdictRunAttribute('jobs', String(jobs));
|
|
153
|
-
const uploadBase = uploadDirBase(runCtx);
|
|
154
|
-
if (uploadBase === undefined)
|
|
155
|
-
return;
|
|
156
|
-
const instances = Math.max(1, Math.min(jobs, shards));
|
|
157
|
-
setVerdictRunAttribute('upload-dirs', Array.from({ length: instances }, (_, index) => instanceUploadDir(uploadBase, index)).join(','));
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Holds the mochitest server ports for a browser run on more than one
|
|
161
|
-
* instance (see `harness-port-reservation.ts`). Only on an engine whose
|
|
162
|
-
* harness falls back from a busy server port: without that fallback a
|
|
163
|
-
* held port would fail every instance instead of moving it.
|
|
164
|
-
*/
|
|
165
|
-
async function reserveParallelServerPorts(engineDir, instances, xpcshellOnly) {
|
|
166
|
-
if (instances < 2 || xpcshellOnly)
|
|
167
|
-
return undefined;
|
|
168
|
-
if (!(await detectHarnessPortFallback(engineDir)).serverPorts)
|
|
169
|
-
return undefined;
|
|
170
|
-
const reservation = await reserveHarnessServerPorts();
|
|
171
|
-
if (reservation.held.length > 0) {
|
|
172
|
-
notice(`Holding mochitest server port(s) ${reservation.held.join(', ')} for the parallel run, so ` +
|
|
173
|
-
"each instance's harness moves to server ports of its own.");
|
|
174
|
-
}
|
|
175
|
-
return reservation;
|
|
176
|
-
}
|
|
177
|
-
/** The shards to run, or undefined for one combined invocation. */
|
|
178
|
-
function planShards(inputs) {
|
|
179
|
-
const { dispatchGroups, options, canaryPath, shuffleSeed } = inputs;
|
|
180
|
-
if (canaryPath !== undefined)
|
|
181
|
-
return undefined;
|
|
182
|
-
const ordered = shuffleSeed === undefined ? dispatchGroups : shuffleTestGroups(dispatchGroups, shuffleSeed);
|
|
183
|
-
if (options.shardSize !== undefined)
|
|
184
|
-
return chunkShardGroups(ordered, options.shardSize);
|
|
185
|
-
const jobs = options.jobs ?? 1;
|
|
186
|
-
if (jobs > 1 && (options.shard === false || ordered.length === 1)) {
|
|
187
|
-
return splitContiguous(ordered.flatMap((group) => group.paths), jobs);
|
|
188
|
-
}
|
|
189
|
-
if (ordered.length > 1 && options.shard !== false)
|
|
190
|
-
return ordered;
|
|
191
|
-
return undefined;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Runs the planned dispatch and finalizes its verdict.
|
|
195
|
-
*
|
|
196
|
-
* @param inputs - See {@link TestDispatchInputs}
|
|
197
|
-
*/
|
|
198
|
-
export async function dispatchTests(inputs) {
|
|
199
|
-
const { engineDir, runCtx, options, projectConfig, normalizedPaths } = inputs;
|
|
200
|
-
const jobs = options.jobs ?? 1;
|
|
201
|
-
if (jobs > 1 && !inputs.xpcshellOnly && !autoPortsRequested(options, projectConfig)) {
|
|
202
|
-
throw new InvalidArgumentError('--jobs runs several browsers at once, which needs auto ports (--auto-ports or ' +
|
|
203
|
-
'test.mochitestPorts: "auto") so the harness can move each instance to free server ports.', '--jobs');
|
|
204
|
-
}
|
|
205
|
-
const guard = {
|
|
206
|
-
perfSamples: options.perfSamples,
|
|
207
|
-
requested: normalizedPaths,
|
|
208
|
-
};
|
|
209
|
-
const shards = planShards(inputs);
|
|
210
|
-
if (shards !== undefined) {
|
|
211
|
-
notice(describeSharding(shards.length, options, jobs));
|
|
212
|
-
const base = jobs > 1 ? await instanceContext(runCtx, 0, inputs.xpcshellOnly) : runCtx;
|
|
213
|
-
if (jobs > 1)
|
|
214
|
-
stampParallelAttributes(runCtx, jobs, shards.length);
|
|
215
|
-
const generationBefore = await snapshotEngineGeneration(engineDir);
|
|
216
|
-
let summary;
|
|
217
|
-
const reservation = await reserveParallelServerPorts(engineDir, Math.min(jobs, shards.length), inputs.xpcshellOnly);
|
|
218
|
-
try {
|
|
219
|
-
summary = await runShardedTests(base, shards, (outcome, label) => diagnoseShardOutcome(outcome, label, projectConfig.binaryName, inputs.postRebuildContext), {
|
|
220
|
-
jobs,
|
|
221
|
-
contextFor: (index) => instanceContext(runCtx, index, inputs.xpcshellOnly),
|
|
222
|
-
perFile: options.shardSize !== undefined,
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
finally {
|
|
226
|
-
await reservation?.release();
|
|
227
|
-
// Runs before the aggregate verdict below: a mutated engine/ emits
|
|
228
|
-
// `FAIL reason=inconclusive` and throws, so an invalidated run can
|
|
229
|
-
// never print `PASS shards=N/N` first. (A throw here masks an
|
|
230
|
-
// in-flight shard error, as the plain assert always did.)
|
|
231
|
-
await verifyEngineGenerationOrEmitInconclusive(engineDir, generationBefore, {
|
|
232
|
-
...guard,
|
|
233
|
-
...(base.powerChanged === true || runCtx.powerChanged === true
|
|
234
|
-
? { powerChanged: true }
|
|
235
|
-
: {}),
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
finalizeShardedOutcome(summary);
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
const combinedDispatchPaths = inputs.dispatchGroups.flatMap((group) => group.paths);
|
|
242
|
-
let outcome;
|
|
243
|
-
const generationBefore = await snapshotEngineGeneration(engineDir);
|
|
244
|
-
try {
|
|
245
|
-
outcome = await runTestsWithRetries(runCtx, combinedDispatchPaths);
|
|
246
|
-
}
|
|
247
|
-
catch (error) {
|
|
248
|
-
throw new BuildError('Test process failed to start', 'mach test', error instanceof Error ? error : undefined);
|
|
249
|
-
}
|
|
250
|
-
finally {
|
|
251
|
-
await verifyEngineGenerationOrEmitInconclusive(engineDir, generationBefore, {
|
|
252
|
-
...guard,
|
|
253
|
-
...(runCtx.powerChanged === true ? { powerChanged: true } : {}),
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
if (inputs.canaryPath !== undefined) {
|
|
257
|
-
reportCanaryOutcome(outcome);
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
finalizeSingleRunOutcome(outcome, normalizedPaths, projectConfig.binaryName, inputs.postRebuildContext, options.headless === true);
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* The sharding notice. The default must not be silent: a cross-file
|
|
264
|
-
* pollution repro otherwise "passes" because the comparison run was
|
|
265
|
-
* sharded without saying so, misattributing a suite-context bug upstream.
|
|
266
|
-
*/
|
|
267
|
-
function describeSharding(count, options, jobs) {
|
|
268
|
-
const instances = jobs > 1 ? ` on ${jobs} harness instances at once (each with its own ports and profile)` : '';
|
|
269
|
-
if (options.shardSize !== undefined) {
|
|
270
|
-
return (`Sharding: running ${count} chunk(s) of up to ${options.shardSize} file(s)${instances}, ` +
|
|
271
|
-
'each chunk one mach invocation with a browser restart between files; results are judged ' +
|
|
272
|
-
'per file from the structured log.');
|
|
273
|
-
}
|
|
274
|
-
if (jobs > 1 && options.shard === false) {
|
|
275
|
-
return (`Sharding: --jobs splits the combined request into ${count} contiguous chunk(s) in order` +
|
|
276
|
-
`${instances}. Cross-chunk state is NOT exercised.`);
|
|
277
|
-
}
|
|
278
|
-
return (`Sharding: running ${count} test path arguments in isolated browser instances${instances} ` +
|
|
279
|
-
'(one mach invocation per argument; a directory argument keeps its files in one instance). ' +
|
|
280
|
-
'Cross-argument state is NOT exercised — pass --no-shard for a combined single-instance run.');
|
|
281
|
-
}
|