@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,251 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Run orchestration for `fireforge test`: bounded harness-crash retries and
|
|
4
|
-
* sequential per-file sharding of multi-path invocations.
|
|
5
|
-
*
|
|
6
|
-
* Sharding exists because passing several browser-chrome files to one mach
|
|
7
|
-
* invocation destabilizes later files: cross-file profile/pref bleed in the
|
|
8
|
-
* shared mochitest profile makes the second file time out at window-open
|
|
9
|
-
* while each file passes in isolation. Sequential single-file harness runs
|
|
10
|
-
* cost startup time but make results reproducible. The combined invocation
|
|
11
|
-
* stays available via `--no-shard`.
|
|
12
|
-
*/
|
|
13
|
-
import { join } from 'node:path';
|
|
14
|
-
import { probeDisplaySleepState } from '../core/display-state.js';
|
|
15
|
-
import { createHarnessPortTracker, } from '../core/harness-port-reservation.js';
|
|
16
|
-
import { runMachTestSuite } from '../core/mach.js';
|
|
17
|
-
import { parentExited } from '../core/parent-exit-watchdog.js';
|
|
18
|
-
import { activeRunLogLine, getActiveRunLogPath } from '../core/run-log.js';
|
|
19
|
-
import { changedPrefNoiseVerdictNote } from '../core/test-changed-prefs.js';
|
|
20
|
-
import { classifyHarnessRun, headedDisplayAsleepVerdictNote, } from '../core/test-harness-crash.js';
|
|
21
|
-
import { reportTestHost, sampleTestHost, stampPerfHost } from '../core/test-host-state.js';
|
|
22
|
-
import { forwardedRawLogPath, hasForwardedRawLog, readRawTestLog, } from '../core/test-raw-log.js';
|
|
23
|
-
import { createStartMarkerTracker, vetoIncompletePass, } from '../core/test-run-completeness.js';
|
|
24
|
-
import { retryAfterXpcshellSymlinkRepair } from '../core/test-xpcshell-retry.js';
|
|
25
|
-
import { withXpcshellProfileDir } from '../core/xpcshell-profile-dir.js';
|
|
26
|
-
import { TestFailureError } from '../errors/build.js';
|
|
27
|
-
import { warn } from '../utils/logger.js';
|
|
28
|
-
import { getPlatform } from '../utils/platform.js';
|
|
29
|
-
import { maybeInjectAppdirArg } from './test-appdir.js';
|
|
30
|
-
import { createHarnessTeardown } from './test-harness-teardown.js';
|
|
31
|
-
import { recordTestResults } from './test-results.js';
|
|
32
|
-
import { setVerdictRunAttribute } from './test-verdict.js';
|
|
33
|
-
/** Default bounded retry budget for recognized harness crashes. */
|
|
34
|
-
export const DEFAULT_HARNESS_RETRIES = 2;
|
|
35
|
-
/** Resolves the mach test command a suite dispatches to. */
|
|
36
|
-
function machKindForSuite(suite) {
|
|
37
|
-
if (suite === 'xpcshell')
|
|
38
|
-
return 'xpcshell-test';
|
|
39
|
-
if (suite === 'mochitest')
|
|
40
|
-
return 'mochitest';
|
|
41
|
-
return 'test';
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Runs one mach test invocation for `paths`, retrying recognized harness
|
|
45
|
-
* crashes up to the configured budget. Every attempt goes through the
|
|
46
|
-
* stale-xpcshell-symlink repair path the single-run flow already used.
|
|
47
|
-
*/
|
|
48
|
-
export async function runTestsWithRetries(ctx, paths, label = paths.join(' ')) {
|
|
49
|
-
// Pure mochitest dispatches keep their env byte-identical, since the profile
|
|
50
|
-
// variable is xpcshell-harness-specific. Generic `mach
|
|
51
|
-
// test` runs may include xpcshell paths, so they get the isolation too.
|
|
52
|
-
if (ctx.suite === 'mochitest') {
|
|
53
|
-
return runTestsWithRetriesInner(ctx, paths, ctx.env, label);
|
|
54
|
-
}
|
|
55
|
-
// Fresh profile dir per harness invocation: shards isolate from each
|
|
56
|
-
// other and from concurrent `fireforge test` processes. The crash /
|
|
57
|
-
// symlink-repair retries inside one invocation reuse the same directory
|
|
58
|
-
// on purpose (they are the same logical run and the harness
|
|
59
|
-
// re-initialises the profile contents itself).
|
|
60
|
-
return withXpcshellProfileDir(ctx.env, (env) => runTestsWithRetriesInner(ctx, paths, env, label));
|
|
61
|
-
}
|
|
62
|
-
async function runTestsWithRetriesInner(ctx, paths, env, label) {
|
|
63
|
-
const extraArgs = [...ctx.baseExtraArgs];
|
|
64
|
-
const appdirInjectionAttempted = await maybeInjectAppdirArg(ctx.engineDir, paths, ctx.objDir, extraArgs);
|
|
65
|
-
const kind = machKindForSuite(ctx.suite);
|
|
66
|
-
const maxAttempts = Math.max(1, ctx.harnessRetries + 1);
|
|
67
|
-
let attempts = 0;
|
|
68
|
-
let result;
|
|
69
|
-
let verdict;
|
|
70
|
-
let rawLog;
|
|
71
|
-
let logLine;
|
|
72
|
-
let portTracker;
|
|
73
|
-
for (;;) {
|
|
74
|
-
attempts += 1;
|
|
75
|
-
let tracker = createStartMarkerTracker();
|
|
76
|
-
portTracker = createHarnessPortTracker();
|
|
77
|
-
const raw = rawLogDispatchArgs(ctx, extraArgs);
|
|
78
|
-
logLine = activeRunLogLine();
|
|
79
|
-
const dispatched = await runTrackedMachTestSuite(ctx, kind, paths, raw.args, env, [
|
|
80
|
-
tracker,
|
|
81
|
-
portTracker,
|
|
82
|
-
]);
|
|
83
|
-
result = dispatched;
|
|
84
|
-
// The parent that was reading this run is gone and the watchdog has
|
|
85
|
-
// already killed the harness. Classifying the corpse would call it a
|
|
86
|
-
// harness crash and retry it under nobody's supervision.
|
|
87
|
-
if (parentExited()) {
|
|
88
|
-
throw new TestFailureError('The parent process exited while the harness was running; the harness tree was ' +
|
|
89
|
-
'terminated and the run ended without a result.', `mach ${kind}`, undefined, getActiveRunLogPath());
|
|
90
|
-
}
|
|
91
|
-
const retryTracker = createStartMarkerTracker();
|
|
92
|
-
result = await retryAfterXpcshellSymlinkRepair({
|
|
93
|
-
engineDir: ctx.engineDir,
|
|
94
|
-
objDir: ctx.objDir,
|
|
95
|
-
result,
|
|
96
|
-
classification: ctx.classification,
|
|
97
|
-
normalizedPaths: paths,
|
|
98
|
-
extraArgs: raw.args,
|
|
99
|
-
env,
|
|
100
|
-
kind,
|
|
101
|
-
fullOutput: ctx.fullOutput,
|
|
102
|
-
onOutputChunk: (stream, chunk) => {
|
|
103
|
-
retryTracker.onChunk(stream, chunk);
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
if (result !== dispatched)
|
|
107
|
-
tracker = retryTracker;
|
|
108
|
-
rawLog = raw.path === undefined ? undefined : await readRawTestLog(raw.path);
|
|
109
|
-
const combined = `${result.stdout}\n${result.stderr}`;
|
|
110
|
-
// An exit-0 run is still not a pass when it stopped partway or
|
|
111
|
-
// reported unexpected results (see test-run-completeness.ts). The
|
|
112
|
-
// start count reads the structured raw log when the run wrote one, and
|
|
113
|
-
// the streamed markers otherwise, never the 2 MB capture tail.
|
|
114
|
-
verdict = vetoIncompletePass(classifyHarnessRun(result.exitCode, combined, paths), combined, paths, rawLog !== undefined && rawLog.markers.started.length > 0
|
|
115
|
-
? { markers: rawLog.markers, source: 'raw' }
|
|
116
|
-
: { markers: tracker.markers(), source: 'stream' });
|
|
117
|
-
// A mochitest server that never came up is retried like a crash: no
|
|
118
|
-
// test ran, and a parallel instance's port race is not a result.
|
|
119
|
-
if (verdict.kind !== 'harness-crash' || attempts >= maxAttempts)
|
|
120
|
-
break;
|
|
121
|
-
const shape = verdict.signature?.verdictReason === 'server-startup'
|
|
122
|
-
? 'Harness server startup failed'
|
|
123
|
-
: 'Harness crash detected';
|
|
124
|
-
warn(`${shape} (${verdict.signature?.reason ?? 'unknown shape'}): ` +
|
|
125
|
-
`${verdict.signature?.line ?? ''}\n` +
|
|
126
|
-
`Retrying (attempt ${attempts + 1} of ${maxAttempts})...`);
|
|
127
|
-
}
|
|
128
|
-
// A verdict whose every unexpected result is time-driven pref noise is
|
|
129
|
-
// still a FAIL. Only the note changes, so a `unexpected=2` line is not
|
|
130
|
-
// read as two real assertion failures.
|
|
131
|
-
if (verdict.kind === 'test-failures' && verdict.note === undefined) {
|
|
132
|
-
const prefNote = changedPrefNoiseVerdictNote(`${result.stdout}\n${result.stderr}`);
|
|
133
|
-
if (prefNote !== undefined)
|
|
134
|
-
verdict = { ...verdict, note: prefNote };
|
|
135
|
-
}
|
|
136
|
-
const displayState = await probeDisplayStateForStall(verdict, ctx.headless);
|
|
137
|
-
if (displayState !== undefined) {
|
|
138
|
-
const note = headedDisplayAsleepVerdictNote(verdict.signature, {
|
|
139
|
-
headless: ctx.headless,
|
|
140
|
-
platform: getPlatform(),
|
|
141
|
-
displayState,
|
|
142
|
-
});
|
|
143
|
-
if (note !== undefined)
|
|
144
|
-
verdict = { ...verdict, note };
|
|
145
|
-
}
|
|
146
|
-
if (rawLog !== undefined) {
|
|
147
|
-
recordTestResults(rawLog.results, rawLog.unfinished, {
|
|
148
|
-
run: ctx.repetition ?? 1,
|
|
149
|
-
shard: label,
|
|
150
|
-
logLine,
|
|
151
|
-
shardFiles: paths,
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
result,
|
|
156
|
-
verdict,
|
|
157
|
-
attempts,
|
|
158
|
-
appdirInjectionAttempted,
|
|
159
|
-
displayState,
|
|
160
|
-
...(rawLog === undefined ? {} : { fileResults: rawLog.results }),
|
|
161
|
-
...serverPortsOf(portTracker),
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
/** The `serverPorts` field of an outcome, present only when a port was seen. */
|
|
165
|
-
function serverPortsOf(tracker) {
|
|
166
|
-
const ports = tracker.ports();
|
|
167
|
-
return Object.keys(ports).length > 0 ? { serverPorts: ports } : {};
|
|
168
|
-
}
|
|
169
|
-
/** Sequence for raw-log file names, unique within the process. */
|
|
170
|
-
let rawLogSequence = 0;
|
|
171
|
-
/**
|
|
172
|
-
* The dispatch arguments with a `--log-raw` destination added, when this run
|
|
173
|
-
* collects per-file results. An operator's own forwarded `--log-raw <file>`
|
|
174
|
-
* is read instead of adding a second one.
|
|
175
|
-
*/
|
|
176
|
-
function rawLogDispatchArgs(ctx, extraArgs) {
|
|
177
|
-
if (ctx.rawLogDir === undefined)
|
|
178
|
-
return { args: [...extraArgs], path: undefined };
|
|
179
|
-
if (hasForwardedRawLog(extraArgs)) {
|
|
180
|
-
return { args: [...extraArgs], path: forwardedRawLogPath(extraArgs) };
|
|
181
|
-
}
|
|
182
|
-
rawLogSequence += 1;
|
|
183
|
-
const path = join(ctx.rawLogDir, `dispatch-${rawLogSequence}.raw.jsonl`);
|
|
184
|
-
return { args: [...extraArgs, `--log-raw=${path}`], path };
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* One mach dispatch with its kill path attached: helper-pid tracking and
|
|
188
|
-
* post-close reaping, the process-group announcement, and the parent-exit
|
|
189
|
-
* watchdog for exactly as long as mach runs.
|
|
190
|
-
*/
|
|
191
|
-
async function runTrackedMachTestSuite(ctx, kind, paths, extraArgs, env, trackers) {
|
|
192
|
-
const teardown = createHarnessTeardown({
|
|
193
|
-
objDir: ctx.objDir === undefined ? undefined : join(ctx.engineDir, ctx.objDir),
|
|
194
|
-
pgidFile: ctx.pgidFile,
|
|
195
|
-
});
|
|
196
|
-
const start = await sampleTestHost();
|
|
197
|
-
const warned = reportTestHost(start, 'suite start');
|
|
198
|
-
setVerdictRunAttribute('host-load', start.load.toFixed(2));
|
|
199
|
-
if (warned)
|
|
200
|
-
setVerdictRunAttribute('host-cpu-warning', 'true');
|
|
201
|
-
if (env && Object.keys(env).some((key) => key.endsWith('_PERF_SAMPLE_JSON'))) {
|
|
202
|
-
setVerdictRunAttribute('power-source', start.power);
|
|
203
|
-
env = { ...env, FIREFORGE_POWER_SOURCE: start.power };
|
|
204
|
-
}
|
|
205
|
-
try {
|
|
206
|
-
await teardown.prepare();
|
|
207
|
-
return await runMachTestSuite(kind, {
|
|
208
|
-
engineDir: ctx.engineDir,
|
|
209
|
-
testPaths: paths,
|
|
210
|
-
args: extraArgs,
|
|
211
|
-
env,
|
|
212
|
-
fullOutput: ctx.fullOutput,
|
|
213
|
-
...(ctx.outputPrefix === undefined ? {} : { outputPrefix: ctx.outputPrefix }),
|
|
214
|
-
teardown: {
|
|
215
|
-
...teardown.hooks,
|
|
216
|
-
onOutputChunk: (stream, chunk) => {
|
|
217
|
-
for (const tracker of trackers)
|
|
218
|
-
tracker.onChunk(stream, chunk);
|
|
219
|
-
teardown.hooks.onOutputChunk?.(stream, chunk);
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
finally {
|
|
225
|
-
teardown.dispose();
|
|
226
|
-
const end = await sampleTestHost();
|
|
227
|
-
if (reportTestHost(end, 'suite end'))
|
|
228
|
-
setVerdictRunAttribute('host-cpu-warning', 'true');
|
|
229
|
-
if (await stampPerfHost(env, start, end)) {
|
|
230
|
-
ctx.powerChanged = true;
|
|
231
|
-
setVerdictRunAttribute('power-changed', 'true');
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Probes the display's power state for a headed no-output stall, and only for
|
|
237
|
-
* that shape. Every other outcome (a passing run, a real test failure, a
|
|
238
|
-
* headless run, any other crash shape) skips the probe entirely, so the
|
|
239
|
-
* common paths spawn nothing.
|
|
240
|
-
*
|
|
241
|
-
* @returns The measured state, or undefined when the shape does not apply
|
|
242
|
-
*/
|
|
243
|
-
async function probeDisplayStateForStall(verdict, headless) {
|
|
244
|
-
if (headless)
|
|
245
|
-
return undefined;
|
|
246
|
-
if (verdict.kind !== 'harness-crash')
|
|
247
|
-
return undefined;
|
|
248
|
-
if (!verdict.signature?.reason.includes('no-output timeout'))
|
|
249
|
-
return undefined;
|
|
250
|
-
return probeDisplaySleepState(getPlatform());
|
|
251
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sharded `fireforge test` runs: one harness invocation per shard, run in
|
|
3
|
-
* order on one harness instance, or on a pool of `--jobs <n>` instances.
|
|
4
|
-
*
|
|
5
|
-
* Each finished shard prints a `FIREFORGE-SHARD:` line, and the aggregate
|
|
6
|
-
* verdict names the shards that did not pass as `failed-shards=`. Before,
|
|
7
|
-
* the failing shards were named only in the prose of the aggregate error
|
|
8
|
-
* and the human summary box, so a wrapper that reruns failed shards had to
|
|
9
|
-
* parse a sentence that a reworded message would silently break.
|
|
10
|
-
*
|
|
11
|
-
* Under `--shard-size <n>` a shard is a chunk of n files, and the run is
|
|
12
|
-
* judged per file from each dispatch's raw log: `shards=` then counts files
|
|
13
|
-
* and `failed-shards=` names the files that failed.
|
|
14
|
-
*/
|
|
15
|
-
import { type HarnessRunVerdict } from '../core/test-harness-crash.js';
|
|
16
|
-
import { type TestRunContext, type TestRunOutcome } from './test-run.js';
|
|
17
|
-
/**
|
|
18
|
-
* One harness invocation of a sharded run: a requested path argument and
|
|
19
|
-
* the mach paths dispatched for it. A file argument is a group of one. A
|
|
20
|
-
* directory argument groups its enumerated test files so the whole
|
|
21
|
-
* directory still runs in ONE browser instance, keeping cross-file state
|
|
22
|
-
* behaviour within a directory run. A `--shard-size` chunk is a group of
|
|
23
|
-
* up to n files.
|
|
24
|
-
*/
|
|
25
|
-
export interface ShardGroup {
|
|
26
|
-
/** The path argument as the operator passed it (display label). */
|
|
27
|
-
label: string;
|
|
28
|
-
/** The mach dispatch paths for this argument. */
|
|
29
|
-
paths: string[];
|
|
30
|
-
}
|
|
31
|
-
/** Per-shard summary entry. */
|
|
32
|
-
export interface ShardOutcome {
|
|
33
|
-
label: string;
|
|
34
|
-
outcome: TestRunOutcome;
|
|
35
|
-
/** The shard's dispatch paths (per-file judging). */
|
|
36
|
-
paths?: string[];
|
|
37
|
-
}
|
|
38
|
-
/** Aggregate result of a sharded run, verdict emission deferred to the caller. */
|
|
39
|
-
export interface ShardedRunSummary {
|
|
40
|
-
shards: ShardOutcome[];
|
|
41
|
-
passed: number;
|
|
42
|
-
total: number;
|
|
43
|
-
/** What did not pass: shard labels, or file paths when judged per file. */
|
|
44
|
-
failed: string[];
|
|
45
|
-
/** Aggregate classifier verdict. See {@link deriveAggregateShardVerdict}. */
|
|
46
|
-
aggregate: HarnessRunVerdict;
|
|
47
|
-
}
|
|
48
|
-
/** How {@link runShardedTests} schedules and judges its shards. */
|
|
49
|
-
export interface ShardRunOptions {
|
|
50
|
-
/** Harness instances to run shards on at once (`--jobs`). Default 1. */
|
|
51
|
-
jobs?: number;
|
|
52
|
-
/**
|
|
53
|
-
* The context for instance `index` (0-based). Instance 0 must be the
|
|
54
|
-
* base context; others carry their own ports and output prefix.
|
|
55
|
-
*/
|
|
56
|
-
contextFor?: (index: number) => Promise<TestRunContext> | TestRunContext;
|
|
57
|
-
/** Judge per file from the raw log (`--shard-size`). */
|
|
58
|
-
perFile?: boolean;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Derives the aggregate classification for a sharded run: all-green is
|
|
62
|
-
* `tests-ran-ok`. Otherwise the most structural failure wins. A crashed
|
|
63
|
-
* shard makes the whole run `harness-crash`, then `no-tests`, then plain
|
|
64
|
-
* `test-failures`, so the aggregate `reason=` keeps the classifier-driven
|
|
65
|
-
* contract instead of collapsing every failure to `test-failures`. When
|
|
66
|
-
* every crashed shard is a server that never started, the aggregate keeps
|
|
67
|
-
* that signature, so its line says `reason=server-startup` too.
|
|
68
|
-
*/
|
|
69
|
-
export declare function deriveAggregateShardVerdict(shards: ShardOutcome[]): HarnessRunVerdict;
|
|
70
|
-
/**
|
|
71
|
-
* The `FIREFORGE-SHARD:` line for one finished shard: the verdict it would
|
|
72
|
-
* have printed alone, plus `shard=<i>/<n>` and `path=<label>`, and
|
|
73
|
-
* `ports=http:N,ssl:N,ws:N` when the harness reported the mochitest server
|
|
74
|
-
* ports it took. Never a `FIREFORGE-VERDICT:` line, so the run keeps
|
|
75
|
-
* exactly one.
|
|
76
|
-
*/
|
|
77
|
-
export declare function formatShardLine(shard: ShardOutcome, index: number, total: number, failedFiles?: readonly string[]): string;
|
|
78
|
-
/**
|
|
79
|
-
* The files of one shard that did not pass, judged from its raw log. A file
|
|
80
|
-
* with no `test_end` failed (it never started, or never finished). Returns
|
|
81
|
-
* undefined when the shard wrote no raw log, so the caller judges the
|
|
82
|
-
* shard as a whole.
|
|
83
|
-
*/
|
|
84
|
-
export declare function failedFilesOf(shard: ShardOutcome): string[] | undefined;
|
|
85
|
-
/**
|
|
86
|
-
* Runs each shard as its own harness invocation and prints an aggregate
|
|
87
|
-
* report. Per-shard failures are diagnosed via `diagnoseShardFailure`
|
|
88
|
-
* (which receives the throwing diagnosis chain from the command layer)
|
|
89
|
-
* but downgraded to warnings so every shard runs. The aggregate verdict
|
|
90
|
-
* line and the aggregate error are not produced here: the caller runs
|
|
91
|
-
* the engine-generation integrity check first and then calls
|
|
92
|
-
* {@link finalizeShardedOutcome}, so a run invalidated by a concurrent
|
|
93
|
-
* `engine/` mutation can never print `PASS` before the check fails.
|
|
94
|
-
*/
|
|
95
|
-
export declare function runShardedTests(ctx: TestRunContext, groups: ShardGroup[], diagnoseShardFailure: (outcome: TestRunOutcome, label: string) => string | undefined, options?: ShardRunOptions): Promise<ShardedRunSummary>;
|
|
96
|
-
/**
|
|
97
|
-
* Emits the aggregate FIREFORGE-VERDICT line for a sharded run, then
|
|
98
|
-
* throws the aggregate error when any shard did not pass, the same
|
|
99
|
-
* emit-then-throw shape as `finalizeSingleRunOutcome`. Called only after
|
|
100
|
-
* the engine-generation check succeeded.
|
|
101
|
-
*/
|
|
102
|
-
export declare function finalizeShardedOutcome(summary: ShardedRunSummary): void;
|
|
103
|
-
/**
|
|
104
|
-
* Splits the dispatch paths of every group into consecutive chunks of at
|
|
105
|
-
* most `size` files (`--shard-size`). Order is kept, and a chunk never
|
|
106
|
-
* mixes groups' order: it is the flattened request, cut every `size`
|
|
107
|
-
* files.
|
|
108
|
-
*/
|
|
109
|
-
export declare function chunkShardGroups(groups: readonly ShardGroup[], size: number): ShardGroup[];
|
|
110
|
-
/**
|
|
111
|
-
* Splits one combined request into `parts` contiguous chunks of near-equal
|
|
112
|
-
* size, in order (`--jobs` with `--no-shard`).
|
|
113
|
-
*/
|
|
114
|
-
export declare function splitContiguous(paths: readonly string[], parts: number): ShardGroup[];
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Sharded `fireforge test` runs: one harness invocation per shard, run in
|
|
4
|
-
* order on one harness instance, or on a pool of `--jobs <n>` instances.
|
|
5
|
-
*
|
|
6
|
-
* Each finished shard prints a `FIREFORGE-SHARD:` line, and the aggregate
|
|
7
|
-
* verdict names the shards that did not pass as `failed-shards=`. Before,
|
|
8
|
-
* the failing shards were named only in the prose of the aggregate error
|
|
9
|
-
* and the human summary box, so a wrapper that reruns failed shards had to
|
|
10
|
-
* parse a sentence that a reworded message would silently break.
|
|
11
|
-
*
|
|
12
|
-
* Under `--shard-size <n>` a shard is a chunk of n files, and the run is
|
|
13
|
-
* judged per file from each dispatch's raw log: `shards=` then counts files
|
|
14
|
-
* and `failed-shards=` names the files that failed.
|
|
15
|
-
*/
|
|
16
|
-
import { formatHarnessServerPorts } from '../core/harness-port-reservation.js';
|
|
17
|
-
import { getActiveRunLogPath, writeToActiveRunLog } from '../core/run-log.js';
|
|
18
|
-
import { buildHarnessCrashMessage, formatFireforgeVerdictLine, headedNoOutputTimeoutHint, } from '../core/test-harness-crash.js';
|
|
19
|
-
import { TestFailureError } from '../errors/build.js';
|
|
20
|
-
import { info, note, warn } from '../utils/logger.js';
|
|
21
|
-
import { getPlatform } from '../utils/platform.js';
|
|
22
|
-
import { runTestsWithRetries } from './test-run.js';
|
|
23
|
-
import { emitHarnessVerdict } from './test-verdict.js';
|
|
24
|
-
const SHARD_STATUS_LABEL = {
|
|
25
|
-
'tests-ran-ok': 'PASS',
|
|
26
|
-
'test-failures': 'FAIL',
|
|
27
|
-
'harness-crash': 'CRASH',
|
|
28
|
-
'no-tests': 'NO-TESTS',
|
|
29
|
-
'harness-arguments': 'ARGUMENTS',
|
|
30
|
-
};
|
|
31
|
-
/** The summary box's status word; a server that never started is not a crash. */
|
|
32
|
-
function shardStatusLabel(verdict) {
|
|
33
|
-
return verdict.signature?.verdictReason === 'server-startup'
|
|
34
|
-
? 'SERVER'
|
|
35
|
-
: SHARD_STATUS_LABEL[verdict.kind];
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Derives the aggregate classification for a sharded run: all-green is
|
|
39
|
-
* `tests-ran-ok`. Otherwise the most structural failure wins. A crashed
|
|
40
|
-
* shard makes the whole run `harness-crash`, then `no-tests`, then plain
|
|
41
|
-
* `test-failures`, so the aggregate `reason=` keeps the classifier-driven
|
|
42
|
-
* contract instead of collapsing every failure to `test-failures`. When
|
|
43
|
-
* every crashed shard is a server that never started, the aggregate keeps
|
|
44
|
-
* that signature, so its line says `reason=server-startup` too.
|
|
45
|
-
*/
|
|
46
|
-
export function deriveAggregateShardVerdict(shards) {
|
|
47
|
-
const kinds = new Set(shards.map(({ outcome }) => outcome.verdict.kind));
|
|
48
|
-
if (kinds.has('harness-arguments'))
|
|
49
|
-
return { kind: 'harness-arguments' };
|
|
50
|
-
if (kinds.has('harness-crash')) {
|
|
51
|
-
const crashes = shards.filter(({ outcome }) => outcome.verdict.kind === 'harness-crash');
|
|
52
|
-
const signature = crashes[0]?.outcome.verdict.signature;
|
|
53
|
-
return crashes.every(({ outcome }) => outcome.verdict.signature?.verdictReason === 'server-startup') && signature !== undefined
|
|
54
|
-
? { kind: 'harness-crash', signature }
|
|
55
|
-
: { kind: 'harness-crash' };
|
|
56
|
-
}
|
|
57
|
-
if (kinds.has('no-tests'))
|
|
58
|
-
return { kind: 'no-tests' };
|
|
59
|
-
if (kinds.has('test-failures'))
|
|
60
|
-
return { kind: 'test-failures' };
|
|
61
|
-
return { kind: 'tests-ran-ok' };
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* The `FIREFORGE-SHARD:` line for one finished shard: the verdict it would
|
|
65
|
-
* have printed alone, plus `shard=<i>/<n>` and `path=<label>`, and
|
|
66
|
-
* `ports=http:N,ssl:N,ws:N` when the harness reported the mochitest server
|
|
67
|
-
* ports it took. Never a `FIREFORGE-VERDICT:` line, so the run keeps
|
|
68
|
-
* exactly one.
|
|
69
|
-
*/
|
|
70
|
-
export function formatShardLine(shard, index, total, failedFiles) {
|
|
71
|
-
const body = formatFireforgeVerdictLine(shard.outcome.verdict).slice('FIREFORGE-VERDICT: '.length);
|
|
72
|
-
const files = failedFiles !== undefined && failedFiles.length > 0
|
|
73
|
-
? ` failed-files=${failedFiles.join(',')}`
|
|
74
|
-
: '';
|
|
75
|
-
const ports = formatHarnessServerPorts(shard.outcome.serverPorts);
|
|
76
|
-
return `FIREFORGE-SHARD: ${body} shard=${index + 1}/${total} path=${shard.label.replace(/\s+/g, '_')}${files}${ports === undefined ? '' : ` ports=${ports}`}`;
|
|
77
|
-
}
|
|
78
|
-
function writeShardLine(line) {
|
|
79
|
-
process.stdout.write(`${line}\n`);
|
|
80
|
-
writeToActiveRunLog(`${line}\n`);
|
|
81
|
-
}
|
|
82
|
-
/** True when a raw-log test id names the dispatched path. */
|
|
83
|
-
function namesPath(test, path) {
|
|
84
|
-
return test === path || test.endsWith(`/${path}`) || path.endsWith(`/${test}`);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* The files of one shard that did not pass, judged from its raw log. A file
|
|
88
|
-
* with no `test_end` failed (it never started, or never finished). Returns
|
|
89
|
-
* undefined when the shard wrote no raw log, so the caller judges the
|
|
90
|
-
* shard as a whole.
|
|
91
|
-
*/
|
|
92
|
-
export function failedFilesOf(shard) {
|
|
93
|
-
const results = shard.outcome.fileResults;
|
|
94
|
-
if (results === undefined || shard.paths === undefined)
|
|
95
|
-
return undefined;
|
|
96
|
-
return shard.paths.filter((path) => {
|
|
97
|
-
const result = results.find((entry) => namesPath(entry.test, path));
|
|
98
|
-
return result === undefined || result.unexpected;
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
function reportShardFailure(ctx, outcome, label, diagnoseShardFailure) {
|
|
102
|
-
if (outcome.verdict.kind === 'harness-crash' && outcome.verdict.signature) {
|
|
103
|
-
const base = buildHarnessCrashMessage(outcome.verdict.signature, outcome.attempts);
|
|
104
|
-
const hint = headedNoOutputTimeoutHint(outcome.verdict.signature, {
|
|
105
|
-
headless: ctx.headless,
|
|
106
|
-
platform: getPlatform(),
|
|
107
|
-
...(outcome.displayState !== undefined ? { displayState: outcome.displayState } : {}),
|
|
108
|
-
});
|
|
109
|
-
warn(hint ? `${base}\n\n${hint}` : base);
|
|
110
|
-
}
|
|
111
|
-
else if (outcome.verdict.kind !== 'tests-ran-ok') {
|
|
112
|
-
const diagnosis = diagnoseShardFailure(outcome, label);
|
|
113
|
-
if (diagnosis)
|
|
114
|
-
warn(diagnosis);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Runs `count` items on up to `jobs` workers at once. Worker `w` handles
|
|
119
|
-
* the items it takes in order, and results keep item order.
|
|
120
|
-
*/
|
|
121
|
-
async function runPool(count, jobs, worker) {
|
|
122
|
-
const results = new Array(count);
|
|
123
|
-
let next = 0;
|
|
124
|
-
const workers = Array.from({ length: Math.max(1, Math.min(jobs, count)) }, async (_, w) => {
|
|
125
|
-
while (next < count) {
|
|
126
|
-
const item = next;
|
|
127
|
-
next += 1;
|
|
128
|
-
results[item] = await worker(item, w);
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
await Promise.all(workers);
|
|
132
|
-
return results;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Runs each shard as its own harness invocation and prints an aggregate
|
|
136
|
-
* report. Per-shard failures are diagnosed via `diagnoseShardFailure`
|
|
137
|
-
* (which receives the throwing diagnosis chain from the command layer)
|
|
138
|
-
* but downgraded to warnings so every shard runs. The aggregate verdict
|
|
139
|
-
* line and the aggregate error are not produced here: the caller runs
|
|
140
|
-
* the engine-generation integrity check first and then calls
|
|
141
|
-
* {@link finalizeShardedOutcome}, so a run invalidated by a concurrent
|
|
142
|
-
* `engine/` mutation can never print `PASS` before the check fails.
|
|
143
|
-
*/
|
|
144
|
-
export async function runShardedTests(ctx, groups, diagnoseShardFailure, options = {}) {
|
|
145
|
-
const jobs = options.jobs ?? 1;
|
|
146
|
-
const contexts = new Map([[0, ctx]]);
|
|
147
|
-
const contextFor = async (index) => {
|
|
148
|
-
const known = contexts.get(index);
|
|
149
|
-
if (known !== undefined)
|
|
150
|
-
return known;
|
|
151
|
-
const made = options.contextFor === undefined ? ctx : await options.contextFor(index);
|
|
152
|
-
contexts.set(index, made);
|
|
153
|
-
return made;
|
|
154
|
-
};
|
|
155
|
-
let finished = 0;
|
|
156
|
-
const shards = await runPool(groups.length, jobs, async (index, workerIndex) => {
|
|
157
|
-
const group = groups[index];
|
|
158
|
-
const instance = await contextFor(workerIndex);
|
|
159
|
-
info(`— Shard ${index + 1}/${groups.length}${jobs > 1 ? ` [job ${workerIndex + 1}]` : ''}: ${group.label}`);
|
|
160
|
-
const outcome = await runTestsWithRetries(instance, group.paths, group.label);
|
|
161
|
-
// Perf power-source changes are recorded on the instance's context.
|
|
162
|
-
if (instance.powerChanged === true)
|
|
163
|
-
ctx.powerChanged = true;
|
|
164
|
-
const shard = { label: group.label, outcome, paths: group.paths };
|
|
165
|
-
reportShardFailure(instance, outcome, group.label, diagnoseShardFailure);
|
|
166
|
-
finished += 1;
|
|
167
|
-
writeShardLine(formatShardLine(shard, index, groups.length, options.perFile === true ? failedFilesOf(shard) : undefined));
|
|
168
|
-
reportProgress(finished, groups.length, jobs);
|
|
169
|
-
return shard;
|
|
170
|
-
});
|
|
171
|
-
return summarizeShards(shards, options.perFile === true);
|
|
172
|
-
}
|
|
173
|
-
function reportProgress(finished, total, jobs) {
|
|
174
|
-
if (jobs > 1)
|
|
175
|
-
info(`${finished}/${total} shard(s) finished.`);
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Builds the summary box and the counts. Per-file judging counts every
|
|
179
|
-
* dispatched file of a shard that wrote a raw log; a shard without one
|
|
180
|
-
* counts as a whole.
|
|
181
|
-
*/
|
|
182
|
-
function summarizeShards(shards, perFile) {
|
|
183
|
-
const lines = shards.map(({ label, outcome }) => `${shardStatusLabel(outcome.verdict).padEnd(8)} ${label}` +
|
|
184
|
-
(outcome.attempts > 1 ? ` (${outcome.attempts} attempts)` : ''));
|
|
185
|
-
const failingShards = shards.filter(({ outcome }) => outcome.verdict.kind !== 'tests-ran-ok');
|
|
186
|
-
let passed = shards.length - failingShards.length;
|
|
187
|
-
let total = shards.length;
|
|
188
|
-
let failed = failingShards.map(({ label }) => label);
|
|
189
|
-
if (perFile) {
|
|
190
|
-
passed = 0;
|
|
191
|
-
total = 0;
|
|
192
|
-
failed = [];
|
|
193
|
-
for (const shard of shards) {
|
|
194
|
-
const files = failedFilesOf(shard);
|
|
195
|
-
const ok = shard.outcome.verdict.kind === 'tests-ran-ok';
|
|
196
|
-
if (files === undefined) {
|
|
197
|
-
total += 1;
|
|
198
|
-
if (ok)
|
|
199
|
-
passed += 1;
|
|
200
|
-
else
|
|
201
|
-
failed.push(shard.label);
|
|
202
|
-
continue;
|
|
203
|
-
}
|
|
204
|
-
const dispatched = shard.paths ?? [];
|
|
205
|
-
total += dispatched.length;
|
|
206
|
-
// A red shard whose log names no failing file still failed: count
|
|
207
|
-
// every file of it, so a crash cannot read as all-green.
|
|
208
|
-
const red = files.length === 0 && !ok ? dispatched : files;
|
|
209
|
-
passed += dispatched.length - red.length;
|
|
210
|
-
failed.push(...red);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
note(`${lines.join('\n')}\n\n${passed}/${total} ${perFile ? 'file(s)' : 'shard(s)'} passed`, 'Sharded Test Summary');
|
|
214
|
-
return { shards, passed, total, failed, aggregate: deriveAggregateShardVerdict(shards) };
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Emits the aggregate FIREFORGE-VERDICT line for a sharded run, then
|
|
218
|
-
* throws the aggregate error when any shard did not pass, the same
|
|
219
|
-
* emit-then-throw shape as `finalizeSingleRunOutcome`. Called only after
|
|
220
|
-
* the engine-generation check succeeded.
|
|
221
|
-
*/
|
|
222
|
-
export function finalizeShardedOutcome(summary) {
|
|
223
|
-
emitHarnessVerdict(summary.aggregate, {
|
|
224
|
-
passed: summary.passed,
|
|
225
|
-
total: summary.total,
|
|
226
|
-
failed: summary.failed.map((label) => label.replace(/\s+/g, '_')),
|
|
227
|
-
});
|
|
228
|
-
if (summary.passed < summary.total) {
|
|
229
|
-
throw new TestFailureError(`${summary.failed.length} of ${summary.total} sharded test run(s) did not pass: ` +
|
|
230
|
-
`${summary.failed.join(', ')}. ` +
|
|
231
|
-
'See the per-shard diagnosis above. Use --no-shard to reproduce the combined single-invocation behaviour.', 'mach test', undefined, getActiveRunLogPath());
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Splits the dispatch paths of every group into consecutive chunks of at
|
|
236
|
-
* most `size` files (`--shard-size`). Order is kept, and a chunk never
|
|
237
|
-
* mixes groups' order: it is the flattened request, cut every `size`
|
|
238
|
-
* files.
|
|
239
|
-
*/
|
|
240
|
-
export function chunkShardGroups(groups, size) {
|
|
241
|
-
const paths = groups.flatMap((group) => group.paths);
|
|
242
|
-
const chunks = [];
|
|
243
|
-
for (let start = 0; start < paths.length; start += size) {
|
|
244
|
-
const chunk = paths.slice(start, start + size);
|
|
245
|
-
const first = chunk[0] ?? '';
|
|
246
|
-
chunks.push({
|
|
247
|
-
label: chunk.length === 1 ? first : `${first}+${chunk.length - 1}`,
|
|
248
|
-
paths: chunk,
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
return chunks;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Splits one combined request into `parts` contiguous chunks of near-equal
|
|
255
|
-
* size, in order (`--jobs` with `--no-shard`).
|
|
256
|
-
*/
|
|
257
|
-
export function splitContiguous(paths, parts) {
|
|
258
|
-
const count = Math.max(1, Math.min(parts, paths.length));
|
|
259
|
-
const groups = [];
|
|
260
|
-
let start = 0;
|
|
261
|
-
for (let index = 0; index < count; index += 1) {
|
|
262
|
-
const size = Math.ceil((paths.length - start) / (count - index));
|
|
263
|
-
const chunk = paths.slice(start, start + size);
|
|
264
|
-
start += size;
|
|
265
|
-
const first = chunk[0] ?? '';
|
|
266
|
-
groups.push({
|
|
267
|
-
label: chunk.length === 1 ? first : `${first}+${chunk.length - 1}`,
|
|
268
|
-
paths: chunk,
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
return groups;
|
|
272
|
-
}
|