@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,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Toolchain-minimum awareness for Firefox source hops.
|
|
3
|
-
*
|
|
4
|
-
* When `fireforge download --force` moves the engine to a new Firefox major
|
|
5
|
-
* version, the tree's declared toolchain minimums (cbindgen, Rust)
|
|
6
|
-
* frequently move with it, and the first `fireforge build` then dies a few
|
|
7
|
-
* seconds into `mach configure` with a message whose remediation text names
|
|
8
|
-
* `./mach bootstrap`, the wrong tool for a FireForge-managed repo (e.g.
|
|
9
|
-
* `ERROR: cbindgen version 0.29.1 is too old. At least version 0.29.4 is
|
|
10
|
-
* required.`).
|
|
11
|
-
*
|
|
12
|
-
* Two layers:
|
|
13
|
-
* 1. {@link formatMajorVersionHopNotice}, a post-download nudge when the
|
|
14
|
-
* downloaded major differs from the previously downloaded one.
|
|
15
|
-
* 2. {@link runToolchainPreflight}, a cheap pre-build probe comparing the
|
|
16
|
-
* minimums the tree itself declares against the host binaries
|
|
17
|
-
* `mach configure` will resolve, probing configure's own candidate
|
|
18
|
-
* order: env override first, then the `~/.mozbuild` state-directory copy
|
|
19
|
-
* bootstrap installs, then PATH. Probing env-or-PATH alone blocks builds
|
|
20
|
-
* whose current tool lives in the state dir behind a stale PATH copy.
|
|
21
|
-
* Fail-soft: it reports a mismatch only when a minimum was positively
|
|
22
|
-
* parsed, at least one candidate resolved, and every resolved candidate
|
|
23
|
-
* is definitively lower. Any uncertainty (file moved upstream,
|
|
24
|
-
* unparseable output, no candidate found) skips silently. The
|
|
25
|
-
* mach-error-hints translator still catches the real configure failure
|
|
26
|
-
* downstream.
|
|
27
|
-
*/
|
|
28
|
-
/** Tools the preflight knows how to probe. */
|
|
29
|
-
export type ToolchainTool = 'cbindgen' | 'rustc';
|
|
30
|
-
/**
|
|
31
|
-
* Resolves the mach state directory the same way mach itself does:
|
|
32
|
-
* `$MOZBUILD_STATE_PATH`, else `~/.mozbuild` (same resolution as
|
|
33
|
-
* `mach-resource-shim.ts`).
|
|
34
|
-
*/
|
|
35
|
-
export declare function mozbuildStateDir(): string;
|
|
36
|
-
/** One probed candidate binary for a tool. */
|
|
37
|
-
export interface ToolchainCandidate {
|
|
38
|
-
/** Binary path (or bare name for the PATH candidate). */
|
|
39
|
-
binary: string;
|
|
40
|
-
/** Parsed version of the candidate. */
|
|
41
|
-
version: string;
|
|
42
|
-
}
|
|
43
|
-
/** One definitive host-vs-tree mismatch found by the preflight. */
|
|
44
|
-
export interface ToolchainMismatch {
|
|
45
|
-
tool: ToolchainTool;
|
|
46
|
-
minimumVersion: string;
|
|
47
|
-
/** Engine-relative file the minimum was parsed from. */
|
|
48
|
-
declaredIn: string;
|
|
49
|
-
/**
|
|
50
|
-
* Every candidate that resolved, all of them below the minimum
|
|
51
|
-
* (mach-resolution order: env override, mozbuild state dir, PATH).
|
|
52
|
-
*/
|
|
53
|
-
candidates: ToolchainCandidate[];
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Returns the one-line notice to print after a download that hopped the
|
|
57
|
-
* Firefox major version, or undefined when no notice is warranted (first
|
|
58
|
-
* download, same major, or unparseable versions, since an unparseable
|
|
59
|
-
* version must not spam every download with a false hint).
|
|
60
|
-
*
|
|
61
|
-
* @param previousVersion - `downloadedVersion` recorded in state before this download
|
|
62
|
-
* @param newVersion - Version that was just downloaded
|
|
63
|
-
*/
|
|
64
|
-
export declare function formatMajorVersionHopNotice(previousVersion: string | undefined, newVersion: string): string | undefined;
|
|
65
|
-
/**
|
|
66
|
-
* Reads the toolchain minimums the engine tree itself declares. Any file
|
|
67
|
-
* that is missing or no longer matches the expected declaration shape
|
|
68
|
-
* yields undefined for that tool, never an error.
|
|
69
|
-
*/
|
|
70
|
-
export declare function readDeclaredToolchainMinimums(engineDir: string): Promise<Partial<Record<ToolchainTool, string>>>;
|
|
71
|
-
/**
|
|
72
|
-
* Compares the tree-declared toolchain minimums against the host binaries
|
|
73
|
-
* `mach configure` will resolve, in configure's own candidate order (env
|
|
74
|
-
* override, mozbuild state dir, PATH). A tool fails only when at least
|
|
75
|
-
* one candidate resolved and none of them meets the minimum. Any single
|
|
76
|
-
* passing candidate passes the tool (configure will find it), and a tool
|
|
77
|
-
* with no resolvable candidate skips silently (see module header for the
|
|
78
|
-
* fail-soft rationale).
|
|
79
|
-
*
|
|
80
|
-
* @param engineDir - Path to the engine directory
|
|
81
|
-
*/
|
|
82
|
-
export declare function runToolchainPreflight(engineDir: string): Promise<ToolchainMismatch[]>;
|
|
83
|
-
/**
|
|
84
|
-
* Formats the fail-fast message for definitive preflight mismatches,
|
|
85
|
-
* listing every candidate probed (in mach's resolution order) and naming
|
|
86
|
-
* `fireforge bootstrap` as the remedy (mach's own configure error
|
|
87
|
-
* suggests `./mach bootstrap`, which is the wrong entry point for a
|
|
88
|
-
* FireForge-managed repo).
|
|
89
|
-
*/
|
|
90
|
-
export declare function formatToolchainMismatchMessage(mismatches: ToolchainMismatch[]): string;
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Toolchain-minimum awareness for Firefox source hops.
|
|
4
|
-
*
|
|
5
|
-
* When `fireforge download --force` moves the engine to a new Firefox major
|
|
6
|
-
* version, the tree's declared toolchain minimums (cbindgen, Rust)
|
|
7
|
-
* frequently move with it, and the first `fireforge build` then dies a few
|
|
8
|
-
* seconds into `mach configure` with a message whose remediation text names
|
|
9
|
-
* `./mach bootstrap`, the wrong tool for a FireForge-managed repo (e.g.
|
|
10
|
-
* `ERROR: cbindgen version 0.29.1 is too old. At least version 0.29.4 is
|
|
11
|
-
* required.`).
|
|
12
|
-
*
|
|
13
|
-
* Two layers:
|
|
14
|
-
* 1. {@link formatMajorVersionHopNotice}, a post-download nudge when the
|
|
15
|
-
* downloaded major differs from the previously downloaded one.
|
|
16
|
-
* 2. {@link runToolchainPreflight}, a cheap pre-build probe comparing the
|
|
17
|
-
* minimums the tree itself declares against the host binaries
|
|
18
|
-
* `mach configure` will resolve, probing configure's own candidate
|
|
19
|
-
* order: env override first, then the `~/.mozbuild` state-directory copy
|
|
20
|
-
* bootstrap installs, then PATH. Probing env-or-PATH alone blocks builds
|
|
21
|
-
* whose current tool lives in the state dir behind a stale PATH copy.
|
|
22
|
-
* Fail-soft: it reports a mismatch only when a minimum was positively
|
|
23
|
-
* parsed, at least one candidate resolved, and every resolved candidate
|
|
24
|
-
* is definitively lower. Any uncertainty (file moved upstream,
|
|
25
|
-
* unparseable output, no candidate found) skips silently. The
|
|
26
|
-
* mach-error-hints translator still catches the real configure failure
|
|
27
|
-
* downstream.
|
|
28
|
-
*/
|
|
29
|
-
import { execFile } from 'node:child_process';
|
|
30
|
-
import { homedir } from 'node:os';
|
|
31
|
-
import { join } from 'node:path';
|
|
32
|
-
import { toError } from '../utils/errors.js';
|
|
33
|
-
import { pathExists, readText } from '../utils/fs.js';
|
|
34
|
-
import { verbose } from '../utils/logger.js';
|
|
35
|
-
/**
|
|
36
|
-
* Resolves the mach state directory the same way mach itself does:
|
|
37
|
-
* `$MOZBUILD_STATE_PATH`, else `~/.mozbuild` (same resolution as
|
|
38
|
-
* `mach-resource-shim.ts`).
|
|
39
|
-
*/
|
|
40
|
-
export function mozbuildStateDir() {
|
|
41
|
-
return process.env['MOZBUILD_STATE_PATH'] ?? join(homedir(), '.mozbuild');
|
|
42
|
-
}
|
|
43
|
-
/** Where each tool's minimum is declared inside the Firefox tree. */
|
|
44
|
-
const MINIMUM_DECLARATIONS = {
|
|
45
|
-
// build/moz.configure/bindgen.configure:
|
|
46
|
-
// cbindgen_min_version = Version("0.27.0")
|
|
47
|
-
cbindgen: {
|
|
48
|
-
relPath: 'build/moz.configure/bindgen.configure',
|
|
49
|
-
pattern: /cbindgen_min_version\s*=\s*Version\(\s*["']([\d.]+)["']\s*\)/,
|
|
50
|
-
},
|
|
51
|
-
// python/mozboot/mozboot/util.py:
|
|
52
|
-
// MINIMUM_RUST_VERSION = "1.82.0"
|
|
53
|
-
// (build/moz.configure/rust.configure imports this constant, so the
|
|
54
|
-
// mozboot file is the single authority in the tree.)
|
|
55
|
-
rustc: {
|
|
56
|
-
relPath: 'python/mozboot/mozboot/util.py',
|
|
57
|
-
pattern: /MINIMUM_RUST_VERSION\s*=\s*["']([\d.]+)["']/,
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* How each tool's host binary is resolved and its version parsed.
|
|
62
|
-
*
|
|
63
|
-
* `stateDirRelPaths` are the mach-state-directory locations
|
|
64
|
-
* `fireforge bootstrap` (via mozboot) installs the tool to. mach's configure
|
|
65
|
-
* tries the state directory before the PATH candidates (bindgen.configure's
|
|
66
|
-
* toolchain search path lists `~/.mozbuild/cbindgen/cbindgen` first), so the
|
|
67
|
-
* probe must too. Probing only env-or-PATH fails a
|
|
68
|
-
* build configure would have accepted whenever an old `~/.cargo/bin/
|
|
69
|
-
* cbindgen` shadows a current bootstrap-installed copy. Rust has no
|
|
70
|
-
* state-dir install, since rustup owns it, so its list is empty.
|
|
71
|
-
*/
|
|
72
|
-
const HOST_PROBES = {
|
|
73
|
-
// `mach configure` honours the CBINDGEN env option (bindgen.configure's
|
|
74
|
-
// `option(env="CBINDGEN", ...)`), so the probe must too. Otherwise the
|
|
75
|
-
// preflight could veto a build configure would have accepted.
|
|
76
|
-
cbindgen: {
|
|
77
|
-
envVar: 'CBINDGEN',
|
|
78
|
-
versionPattern: /cbindgen\s+(\d+(?:\.\d+)*)/,
|
|
79
|
-
stateDirRelPaths: ['cbindgen/cbindgen'],
|
|
80
|
-
},
|
|
81
|
-
rustc: { envVar: 'RUSTC', versionPattern: /rustc\s+(\d+(?:\.\d+)*)/, stateDirRelPaths: [] },
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Parses a dotted version string into numeric components. Trailing
|
|
85
|
-
* non-numeric suffixes are ignored. Returns undefined when the string
|
|
86
|
-
* does not start with a number. (Same posture as the furnace version
|
|
87
|
-
* drift classifier, kept local so the two modules stay decoupled.)
|
|
88
|
-
*/
|
|
89
|
-
function parseVersionComponents(version) {
|
|
90
|
-
const match = /^(\d+(?:\.\d+)*)/.exec(version.trim());
|
|
91
|
-
if (!match?.[1])
|
|
92
|
-
return undefined;
|
|
93
|
-
return match[1].split('.').map(Number);
|
|
94
|
-
}
|
|
95
|
-
/** Component-wise comparison. Missing components count as 0. */
|
|
96
|
-
function isVersionLower(candidate, minimum) {
|
|
97
|
-
const length = Math.max(candidate.length, minimum.length);
|
|
98
|
-
for (let i = 0; i < length; i += 1) {
|
|
99
|
-
const a = candidate[i] ?? 0;
|
|
100
|
-
const b = minimum[i] ?? 0;
|
|
101
|
-
if (a !== b)
|
|
102
|
-
return a < b;
|
|
103
|
-
}
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Returns the one-line notice to print after a download that hopped the
|
|
108
|
-
* Firefox major version, or undefined when no notice is warranted (first
|
|
109
|
-
* download, same major, or unparseable versions, since an unparseable
|
|
110
|
-
* version must not spam every download with a false hint).
|
|
111
|
-
*
|
|
112
|
-
* @param previousVersion - `downloadedVersion` recorded in state before this download
|
|
113
|
-
* @param newVersion - Version that was just downloaded
|
|
114
|
-
*/
|
|
115
|
-
export function formatMajorVersionHopNotice(previousVersion, newVersion) {
|
|
116
|
-
if (!previousVersion)
|
|
117
|
-
return undefined;
|
|
118
|
-
const previousMajor = parseVersionComponents(previousVersion)?.[0];
|
|
119
|
-
const newMajor = parseVersionComponents(newVersion)?.[0];
|
|
120
|
-
if (previousMajor === undefined || newMajor === undefined)
|
|
121
|
-
return undefined;
|
|
122
|
-
if (previousMajor === newMajor)
|
|
123
|
-
return undefined;
|
|
124
|
-
return (`Firefox major version changed (${previousMajor} → ${newMajor}): ` +
|
|
125
|
-
'upstream toolchain minimums (cbindgen, Rust, …) may have moved with it. ' +
|
|
126
|
-
'Consider running "fireforge bootstrap" before the next build.');
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Reads the toolchain minimums the engine tree itself declares. Any file
|
|
130
|
-
* that is missing or no longer matches the expected declaration shape
|
|
131
|
-
* yields undefined for that tool, never an error.
|
|
132
|
-
*/
|
|
133
|
-
export async function readDeclaredToolchainMinimums(engineDir) {
|
|
134
|
-
const entries = Object.entries(MINIMUM_DECLARATIONS);
|
|
135
|
-
const resolved = await Promise.all(entries.map(async ([tool, declaration]) => {
|
|
136
|
-
const filePath = join(engineDir, declaration.relPath);
|
|
137
|
-
if (!(await pathExists(filePath))) {
|
|
138
|
-
verbose(`Toolchain preflight: ${declaration.relPath} not found; skipping ${tool}.`);
|
|
139
|
-
return undefined;
|
|
140
|
-
}
|
|
141
|
-
try {
|
|
142
|
-
const content = await readText(filePath);
|
|
143
|
-
const match = declaration.pattern.exec(content);
|
|
144
|
-
if (match?.[1]) {
|
|
145
|
-
return [tool, match[1]];
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
verbose(`Toolchain preflight: no ${tool} minimum declaration recognized in ${declaration.relPath}; skipping.`);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
catch (error) {
|
|
152
|
-
verbose(`Toolchain preflight: could not read ${declaration.relPath} (${toError(error).message}); skipping ${tool}.`);
|
|
153
|
-
}
|
|
154
|
-
return undefined;
|
|
155
|
-
}));
|
|
156
|
-
return Object.fromEntries(resolved.filter((entry) => entry !== undefined));
|
|
157
|
-
}
|
|
158
|
-
/** Runs `<binary> --version` and parses the leading version number. */
|
|
159
|
-
async function probeBinaryVersion(binary, versionPattern) {
|
|
160
|
-
const output = await new Promise((resolvePromise) => {
|
|
161
|
-
execFile(binary, ['--version'], { timeout: 10_000 }, (err, stdout) => {
|
|
162
|
-
resolvePromise(err ? undefined : stdout);
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
if (output === undefined)
|
|
166
|
-
return undefined;
|
|
167
|
-
const match = versionPattern.exec(output);
|
|
168
|
-
if (!match?.[1]) {
|
|
169
|
-
verbose(`Toolchain preflight: could not parse a version from "${output.trim()}" (${binary}).`);
|
|
170
|
-
return undefined;
|
|
171
|
-
}
|
|
172
|
-
return match[1];
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Probes every candidate binary for a tool in mach's resolution order:
|
|
176
|
-
* the env override (which, when set, is the only candidate, since configure
|
|
177
|
-
* uses it even when a better binary exists elsewhere), then the mozbuild
|
|
178
|
-
* state-directory copy bootstrap installs, then PATH. Candidates that
|
|
179
|
-
* fail to run or to parse are dropped silently.
|
|
180
|
-
*/
|
|
181
|
-
async function probeHostToolCandidates(tool) {
|
|
182
|
-
const probe = HOST_PROBES[tool];
|
|
183
|
-
const envOverride = process.env[probe.envVar];
|
|
184
|
-
const binaries = envOverride
|
|
185
|
-
? [envOverride]
|
|
186
|
-
: [...probe.stateDirRelPaths.map((rel) => join(mozbuildStateDir(), rel)), tool];
|
|
187
|
-
const candidates = await Promise.all(binaries.map(async (binary) => {
|
|
188
|
-
const version = await probeBinaryVersion(binary, probe.versionPattern);
|
|
189
|
-
if (version !== undefined)
|
|
190
|
-
return { binary, version };
|
|
191
|
-
verbose(`Toolchain preflight: "${binary} --version" failed or not found; skipping.`);
|
|
192
|
-
return undefined;
|
|
193
|
-
}));
|
|
194
|
-
return candidates.filter((candidate) => candidate !== undefined);
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Compares the tree-declared toolchain minimums against the host binaries
|
|
198
|
-
* `mach configure` will resolve, in configure's own candidate order (env
|
|
199
|
-
* override, mozbuild state dir, PATH). A tool fails only when at least
|
|
200
|
-
* one candidate resolved and none of them meets the minimum. Any single
|
|
201
|
-
* passing candidate passes the tool (configure will find it), and a tool
|
|
202
|
-
* with no resolvable candidate skips silently (see module header for the
|
|
203
|
-
* fail-soft rationale).
|
|
204
|
-
*
|
|
205
|
-
* @param engineDir - Path to the engine directory
|
|
206
|
-
*/
|
|
207
|
-
export async function runToolchainPreflight(engineDir) {
|
|
208
|
-
const minimums = await readDeclaredToolchainMinimums(engineDir);
|
|
209
|
-
const results = await Promise.all(Object.entries(minimums).map(async ([tool, minimumVersion]) => {
|
|
210
|
-
const minimum = parseVersionComponents(minimumVersion);
|
|
211
|
-
if (!minimum)
|
|
212
|
-
return undefined;
|
|
213
|
-
const candidates = await probeHostToolCandidates(tool);
|
|
214
|
-
const parsed = candidates.filter((c) => parseVersionComponents(c.version) !== undefined);
|
|
215
|
-
if (parsed.length === 0)
|
|
216
|
-
return undefined;
|
|
217
|
-
const satisfying = parsed.find((c) => {
|
|
218
|
-
const components = parseVersionComponents(c.version);
|
|
219
|
-
return components !== undefined && !isVersionLower(components, minimum);
|
|
220
|
-
});
|
|
221
|
-
if (satisfying) {
|
|
222
|
-
verbose(`Toolchain preflight: ${tool} ${satisfying.version} (${satisfying.binary}) satisfies minimum ${minimumVersion}.`);
|
|
223
|
-
return undefined;
|
|
224
|
-
}
|
|
225
|
-
return {
|
|
226
|
-
tool,
|
|
227
|
-
minimumVersion,
|
|
228
|
-
declaredIn: MINIMUM_DECLARATIONS[tool].relPath,
|
|
229
|
-
candidates: parsed,
|
|
230
|
-
};
|
|
231
|
-
}));
|
|
232
|
-
return results.filter((mismatch) => mismatch !== undefined);
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Formats the fail-fast message for definitive preflight mismatches,
|
|
236
|
-
* listing every candidate probed (in mach's resolution order) and naming
|
|
237
|
-
* `fireforge bootstrap` as the remedy (mach's own configure error
|
|
238
|
-
* suggests `./mach bootstrap`, which is the wrong entry point for a
|
|
239
|
-
* FireForge-managed repo).
|
|
240
|
-
*/
|
|
241
|
-
export function formatToolchainMismatchMessage(mismatches) {
|
|
242
|
-
const lines = mismatches.map((m) => {
|
|
243
|
-
const probed = m.candidates.map((c) => `${c.version} (${c.binary})`).join(', ');
|
|
244
|
-
return (` - ${m.tool}: no resolvable candidate meets the minimum ${m.minimumVersion} declared by ` +
|
|
245
|
-
`this Firefox source (engine/${m.declaredIn}); probed in mach's resolution order: ${probed}`);
|
|
246
|
-
});
|
|
247
|
-
return ('Toolchain preflight found host tools older than what this Firefox source requires:\n' +
|
|
248
|
-
`${lines.join('\n')}\n\n` +
|
|
249
|
-
'This typically happens after "fireforge download --force" moved the engine to a new ' +
|
|
250
|
-
'Firefox major version. Run "fireforge bootstrap" to update the toolchain, then retry the build.');
|
|
251
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/** Runs a clone command. Throws on non-zero exit. */
|
|
2
|
-
export type CloneExecutor = (command: string, args: string[]) => Promise<void>;
|
|
3
|
-
/** How this host can materialise a tree. */
|
|
4
|
-
export type CowCapability = 'clonefile' | 'reflink' | 'none';
|
|
5
|
-
/**
|
|
6
|
-
* Probes CoW support in `dir` by cloning a tiny probe file there.
|
|
7
|
-
* Non-darwin/linux platforms report 'none' without probing.
|
|
8
|
-
*/
|
|
9
|
-
export declare function detectCowSupport(dir: string, platform?: NodeJS.Platform, executor?: CloneExecutor): Promise<CowCapability>;
|
|
10
|
-
/**
|
|
11
|
-
* Copies one directory entry (file or directory, recursively) from
|
|
12
|
-
* `sourcePath` to `destinationPath` using the given capability:
|
|
13
|
-
* clonefile/reflink when available, a plain physical copy under
|
|
14
|
-
* 'none' (the `--force-copy` path, and the caller gates on the flag).
|
|
15
|
-
*/
|
|
16
|
-
export declare function cloneEntry(capability: CowCapability, sourcePath: string, destinationPath: string, platform?: NodeJS.Platform, executor?: CloneExecutor): Promise<void>;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Copy-on-write cloning for `fireforge tree`.
|
|
4
|
-
*
|
|
5
|
-
* Capability is probed by doing it: a tiny `cp -c` (APFS clonefile) or
|
|
6
|
-
* `cp --reflink=always` (btrfs/XFS) runs in the actual destination
|
|
7
|
-
* directory, so the verdict is truthful for the volume the trees will live
|
|
8
|
-
* on. A filesystem without CoW support refuses honestly. `--force-copy` opts
|
|
9
|
-
* into a full physical copy but is never implied (a Firefox tree can be
|
|
10
|
-
* tens of gigabytes).
|
|
11
|
-
*
|
|
12
|
-
* The exec layer is injected so unit tests assert the exact `cp` argv per
|
|
13
|
-
* platform without touching the filesystem.
|
|
14
|
-
*/
|
|
15
|
-
import { mkdtemp, rm, writeFile } from 'node:fs/promises';
|
|
16
|
-
import { join } from 'node:path';
|
|
17
|
-
import { toError } from '../utils/errors.js';
|
|
18
|
-
import { verbose } from '../utils/logger.js';
|
|
19
|
-
import { exec } from '../utils/process.js';
|
|
20
|
-
const defaultExecutor = async (command, args) => {
|
|
21
|
-
const result = await exec(command, args);
|
|
22
|
-
if (result.exitCode !== 0) {
|
|
23
|
-
throw new Error(`${command} ${args.join(' ')} failed (exit ${result.exitCode}): ${result.stderr}`);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
/** Per-platform `cp` argv prefix for a CoW copy of one entry. */
|
|
27
|
-
function cowCopyArgs(capability) {
|
|
28
|
-
return capability === 'clonefile' ? ['-c', '-R', '-p'] : ['--reflink=always', '-a'];
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Probes CoW support in `dir` by cloning a tiny probe file there.
|
|
32
|
-
* Non-darwin/linux platforms report 'none' without probing.
|
|
33
|
-
*/
|
|
34
|
-
export async function detectCowSupport(dir, platform = process.platform, executor = defaultExecutor) {
|
|
35
|
-
if (platform !== 'darwin' && platform !== 'linux')
|
|
36
|
-
return 'none';
|
|
37
|
-
const capability = platform === 'darwin' ? 'clonefile' : 'reflink';
|
|
38
|
-
let probeDir;
|
|
39
|
-
try {
|
|
40
|
-
probeDir = await mkdtemp(join(dir, '.fireforge-cow-probe-'));
|
|
41
|
-
const src = join(probeDir, 'src');
|
|
42
|
-
const dst = join(probeDir, 'dst');
|
|
43
|
-
await writeFile(src, 'probe');
|
|
44
|
-
const flag = capability === 'clonefile' ? '-c' : '--reflink=always';
|
|
45
|
-
await executor('cp', [flag, src, dst]);
|
|
46
|
-
return capability;
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
verbose(`CoW probe in ${dir} failed: ${toError(error).message}`);
|
|
50
|
-
return 'none';
|
|
51
|
-
}
|
|
52
|
-
finally {
|
|
53
|
-
if (probeDir !== undefined) {
|
|
54
|
-
await rm(probeDir, { recursive: true, force: true }).catch(() => undefined);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Copies one directory entry (file or directory, recursively) from
|
|
60
|
-
* `sourcePath` to `destinationPath` using the given capability:
|
|
61
|
-
* clonefile/reflink when available, a plain physical copy under
|
|
62
|
-
* 'none' (the `--force-copy` path, and the caller gates on the flag).
|
|
63
|
-
*/
|
|
64
|
-
export async function cloneEntry(capability, sourcePath, destinationPath, platform = process.platform, executor = defaultExecutor) {
|
|
65
|
-
const args = capability === 'none'
|
|
66
|
-
? platform === 'darwin'
|
|
67
|
-
? ['-R', '-p']
|
|
68
|
-
: ['-a']
|
|
69
|
-
: cowCopyArgs(capability);
|
|
70
|
-
await executor('cp', [...args, sourcePath, destinationPath]);
|
|
71
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { type TreeMarker } from './tree-store.js';
|
|
2
|
-
/**
|
|
3
|
-
* Per-command verdicts. `allowed` runs unconditionally. `refused` never
|
|
4
|
-
* runs in a tree. `conditional` consults `TREE_CONDITIONAL_CHECKS` with
|
|
5
|
-
* the invoked subcommand chain, parsed options, and the tree marker.
|
|
6
|
-
*/
|
|
7
|
-
export declare const TREE_COMMAND_VERDICTS: Readonly<Record<string, 'allowed' | 'refused' | 'conditional'>>;
|
|
8
|
-
interface ConditionalInput {
|
|
9
|
-
/** Subcommand chain below the top-level command (e.g. ['staged-dependency']). */
|
|
10
|
-
subcommands: readonly string[];
|
|
11
|
-
/** Merged options of the action command (leaf). */
|
|
12
|
-
options: Readonly<Record<string, unknown>>;
|
|
13
|
-
/** Positional args of the action command. */
|
|
14
|
-
args: readonly unknown[];
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Throws when `commandName` (with its subcommand chain and options) must
|
|
18
|
-
* not run inside the tree described by `marker`. Exported for the
|
|
19
|
-
* preAction hook in cli.ts and for the guard tests.
|
|
20
|
-
*/
|
|
21
|
-
export declare function enforceTreeGuard(marker: TreeMarker, commandName: string, input: ConditionalInput): void;
|
|
22
|
-
/**
|
|
23
|
-
* Commander preAction hook body: locates the enclosing tree (if any) and
|
|
24
|
-
* enforces the verdict table for the invoked command chain.
|
|
25
|
-
*/
|
|
26
|
-
export declare function runTreeGuardHook(rootCommandName: string | undefined, actionCommand: {
|
|
27
|
-
name: () => string;
|
|
28
|
-
optsWithGlobals: () => Record<string, unknown>;
|
|
29
|
-
args: unknown[];
|
|
30
|
-
parent: {
|
|
31
|
-
name: () => string;
|
|
32
|
-
parent: unknown;
|
|
33
|
-
} | null;
|
|
34
|
-
}): Promise<void>;
|
|
35
|
-
export {};
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Read-only guard for verification trees.
|
|
4
|
-
*
|
|
5
|
-
* A tree is a snapshot: its `patches/` and `components/` are copies with
|
|
6
|
-
* no merge-back model, so any command that mutates project or engine
|
|
7
|
-
* state must run in the primary tree. Enforcement is default-deny via an
|
|
8
|
-
* explicit verdict table over every top-level command, so a newly added
|
|
9
|
-
* command is refused inside trees until its author classifies it (the
|
|
10
|
-
* drift test in `tree-guard.test.ts` fails otherwise). It lives in one
|
|
11
|
-
* commander `preAction` hook installed by `createProgram()`, so the
|
|
12
|
-
* guard fires no matter how the cwd ended up inside a tree (`tree exec`
|
|
13
|
-
* or a plain `cd`).
|
|
14
|
-
*/
|
|
15
|
-
import { existsSync } from 'node:fs';
|
|
16
|
-
import { dirname, join, resolve } from 'node:path';
|
|
17
|
-
import { GeneralError } from '../errors/base.js';
|
|
18
|
-
import { getTreeMarkerPath, readTreeMarker, } from './tree-store.js';
|
|
19
|
-
/**
|
|
20
|
-
* Per-command verdicts. `allowed` runs unconditionally. `refused` never
|
|
21
|
-
* runs in a tree. `conditional` consults `TREE_CONDITIONAL_CHECKS` with
|
|
22
|
-
* the invoked subcommand chain, parsed options, and the tree marker.
|
|
23
|
-
*/
|
|
24
|
-
export const TREE_COMMAND_VERDICTS = {
|
|
25
|
-
setup: 'refused',
|
|
26
|
-
source: 'refused',
|
|
27
|
-
download: 'refused',
|
|
28
|
-
bootstrap: 'refused',
|
|
29
|
-
import: 'refused',
|
|
30
|
-
resolve: 'refused',
|
|
31
|
-
build: 'refused',
|
|
32
|
-
run: 'refused',
|
|
33
|
-
status: 'allowed',
|
|
34
|
-
reset: 'refused',
|
|
35
|
-
discard: 'refused',
|
|
36
|
-
export: 'conditional',
|
|
37
|
-
'export-all': 'conditional',
|
|
38
|
-
're-export': 'conditional',
|
|
39
|
-
// Parks live in the primary tree's .fireforge/ and rewrite engine files.
|
|
40
|
-
park: 'refused',
|
|
41
|
-
patch: 'refused',
|
|
42
|
-
rebase: 'refused',
|
|
43
|
-
package: 'refused',
|
|
44
|
-
watch: 'refused',
|
|
45
|
-
// Build-less runs only, and only in trees whose marker records a cloned
|
|
46
|
-
// (mozinfo-rewritten) objdir. See the conditional check below.
|
|
47
|
-
test: 'conditional',
|
|
48
|
-
config: 'conditional',
|
|
49
|
-
doctor: 'conditional',
|
|
50
|
-
register: 'refused',
|
|
51
|
-
wire: 'refused',
|
|
52
|
-
token: 'refused',
|
|
53
|
-
lint: 'allowed',
|
|
54
|
-
typecheck: 'allowed',
|
|
55
|
-
verify: 'allowed',
|
|
56
|
-
// Its furnace-validate and token-coverage steps are commands a tree
|
|
57
|
-
// refuses. Run the allowed gates one by one in a tree.
|
|
58
|
-
check: 'refused',
|
|
59
|
-
furnace: 'refused',
|
|
60
|
-
// No nesting. `tree list` inside a tree is pointless but harmless, and
|
|
61
|
-
// the subcommand check below allows only `list`.
|
|
62
|
-
tree: 'conditional',
|
|
63
|
-
};
|
|
64
|
-
/** The command set named in refusal messages. */
|
|
65
|
-
const ALLOWED_SUMMARY = 'Verification trees support: status, lint, typecheck, verify, doctor (read-only), ' +
|
|
66
|
-
'config (read), export --dry-run, export-all --dry-run, re-export --dry-run, and — ' +
|
|
67
|
-
'in trees created with --with-objdir — build-less test.';
|
|
68
|
-
const TREE_CONDITIONAL_CHECKS = {
|
|
69
|
-
// Exports write patches/ + patches.json. Only the dry-run preview is a read.
|
|
70
|
-
export: ({ options }) => options['dryRun'] === true,
|
|
71
|
-
'export-all': ({ options }) => options['dryRun'] === true,
|
|
72
|
-
// Same rule for refreshing existing patches: the dry-run projection is a
|
|
73
|
-
// read (proven side-effect free and runtime-enforced by
|
|
74
|
-
// withDryRunPurityGuard). A real re-export writes patches/.
|
|
75
|
-
're-export': ({ options }) => options['dryRun'] === true,
|
|
76
|
-
// `config` with no positional value prints. With a value it writes.
|
|
77
|
-
config: ({ args }) => args.filter((a) => typeof a === 'string').length <= 1,
|
|
78
|
-
// Doctor reads unless a repair flag is set.
|
|
79
|
-
doctor: ({ options }) => options['repairFurnace'] !== true && options['fix'] !== true,
|
|
80
|
-
// Build-less test needs the objdir the marker records as cloned,
|
|
81
|
-
// mozinfo-rewritten and reconfigured in-tree. `test --build` rebuilds
|
|
82
|
-
// the engine and stays primary-only (a tree is a snapshot with no
|
|
83
|
-
// merge-back model, so build outputs mutated in-tree go nowhere).
|
|
84
|
-
test: ({ options }, marker) => marker.clonedObjdir !== undefined && options['build'] !== true,
|
|
85
|
-
// No tree lifecycle inside a tree. `tree list` is the only read.
|
|
86
|
-
tree: ({ subcommands }) => subcommands[0] === 'list',
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Command-specific refusal hints appended after the generic sentence, for
|
|
90
|
-
* verdicts where "mutates project or engine state" alone would misdiagnose
|
|
91
|
-
* the actual reason.
|
|
92
|
-
*/
|
|
93
|
-
const TREE_REFUSAL_HINTS = {
|
|
94
|
-
test: ({ options }, marker) => {
|
|
95
|
-
if (options['build'] === true) {
|
|
96
|
-
return '"test --build" rebuilds the engine and must run in the primary tree; run build-less "fireforge test" here instead.';
|
|
97
|
-
}
|
|
98
|
-
if (marker.clonedObjdir === undefined) {
|
|
99
|
-
return 'In-tree test requires a tree created with "fireforge tree create <name> --with-objdir".';
|
|
100
|
-
}
|
|
101
|
-
return undefined;
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
/**
|
|
105
|
-
* Throws when `commandName` (with its subcommand chain and options) must
|
|
106
|
-
* not run inside the tree described by `marker`. Exported for the
|
|
107
|
-
* preAction hook in cli.ts and for the guard tests.
|
|
108
|
-
*/
|
|
109
|
-
export function enforceTreeGuard(marker, commandName, input) {
|
|
110
|
-
const verdict = TREE_COMMAND_VERDICTS[commandName] ?? 'refused';
|
|
111
|
-
if (verdict === 'allowed')
|
|
112
|
-
return;
|
|
113
|
-
const conditional = TREE_CONDITIONAL_CHECKS[commandName];
|
|
114
|
-
if (verdict === 'conditional' && conditional && conditional(input, marker))
|
|
115
|
-
return;
|
|
116
|
-
const hint = TREE_REFUSAL_HINTS[commandName]?.(input, marker);
|
|
117
|
-
throw new GeneralError(`This is a FireForge verification tree ("${marker.name}", created from ${marker.primaryRoot}). ` +
|
|
118
|
-
`"${[commandName, ...input.subcommands].join(' ')}" mutates project or engine state and must run in the primary tree. ` +
|
|
119
|
-
(hint === undefined ? '' : `${hint} `) +
|
|
120
|
-
ALLOWED_SUMMARY);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Commander preAction hook body: locates the enclosing tree (if any) and
|
|
124
|
-
* enforces the verdict table for the invoked command chain.
|
|
125
|
-
*/
|
|
126
|
-
export async function runTreeGuardHook(rootCommandName, actionCommand) {
|
|
127
|
-
// Resolve the top-level command and subcommand chain from the action
|
|
128
|
-
// command's parent links (commander nests subcommands).
|
|
129
|
-
const chain = [];
|
|
130
|
-
let node = actionCommand;
|
|
131
|
-
while (node && node.parent) {
|
|
132
|
-
chain.unshift(node.name());
|
|
133
|
-
node = node.parent;
|
|
134
|
-
}
|
|
135
|
-
const [commandName, ...subcommands] = chain;
|
|
136
|
-
if (commandName === undefined || commandName === rootCommandName)
|
|
137
|
-
return;
|
|
138
|
-
const options = actionCommand.optsWithGlobals();
|
|
139
|
-
const located = await (async () => {
|
|
140
|
-
let current = resolve(process.cwd());
|
|
141
|
-
for (let depth = 0; depth < 50; depth++) {
|
|
142
|
-
if (existsSync(join(current, 'fireforge.json'))) {
|
|
143
|
-
return { root: current, state: await readTreeMarker(current) };
|
|
144
|
-
}
|
|
145
|
-
const parent = dirname(current);
|
|
146
|
-
if (parent === current)
|
|
147
|
-
break;
|
|
148
|
-
current = parent;
|
|
149
|
-
}
|
|
150
|
-
return undefined;
|
|
151
|
-
})();
|
|
152
|
-
if (located === undefined)
|
|
153
|
-
return;
|
|
154
|
-
const state = located.state;
|
|
155
|
-
if (state.kind === 'absent')
|
|
156
|
-
return;
|
|
157
|
-
// A marker we cannot read is not evidence that this is not a tree. It is
|
|
158
|
-
// evidence that we cannot tell. Treating it as "not a tree" would grant the
|
|
159
|
-
// full mutating command set to a snapshot on the strength of a file that
|
|
160
|
-
// failed to parse, which is backwards for a default-deny guard.
|
|
161
|
-
// A marker from a newer FireForge is not damaged, so the corrupt branch's
|
|
162
|
-
// remedies (recreate the tree, delete the stray marker) are actively
|
|
163
|
-
// wrong for it. Refuse with the upgrade instruction instead, and do not
|
|
164
|
-
// offer --ignore-corrupt-tree-marker: proceeding would mean acting on a
|
|
165
|
-
// marker whose fields this build does not understand.
|
|
166
|
-
if (state.kind === 'unsupported') {
|
|
167
|
-
if (TREE_COMMAND_VERDICTS[commandName] === 'allowed')
|
|
168
|
-
return;
|
|
169
|
-
throw new GeneralError(`Refusing "${[commandName, ...subcommands].join(' ')}": ${state.reason}`);
|
|
170
|
-
}
|
|
171
|
-
if (state.kind === 'corrupt') {
|
|
172
|
-
if (options['ignoreCorruptTreeMarker'] === true)
|
|
173
|
-
return;
|
|
174
|
-
// Unconditionally-allowed commands never consult marker fields, and
|
|
175
|
-
// their verdict is the same in every tree, so an unreadable marker cannot
|
|
176
|
-
// change their answer. Letting them through keeps read-only diagnostics
|
|
177
|
-
// (status, lint) usable on the very tree the operator needs to inspect.
|
|
178
|
-
// 'conditional' verdicts stay refused: their predicates can write.
|
|
179
|
-
if (TREE_COMMAND_VERDICTS[commandName] === 'allowed')
|
|
180
|
-
return;
|
|
181
|
-
const markerPath = getTreeMarkerPath(located.root);
|
|
182
|
-
throw new GeneralError(`${markerPath} identifies this directory as a FireForge verification tree, but ${state.reason}. ` +
|
|
183
|
-
`Refusing "${[commandName, ...subcommands].join(' ')}" because it cannot be established ` +
|
|
184
|
-
'whether this is a snapshot or the primary tree.\n\n' +
|
|
185
|
-
'Recreate the tree (fireforge tree remove <name> && fireforge tree create <name>), or — if ' +
|
|
186
|
-
'this really is the primary tree — delete the stray marker. ' +
|
|
187
|
-
'Pass --ignore-corrupt-tree-marker to proceed anyway.');
|
|
188
|
-
}
|
|
189
|
-
enforceTreeGuard(state.marker, commandName, {
|
|
190
|
-
subcommands,
|
|
191
|
-
options,
|
|
192
|
-
args: actionCommand.args,
|
|
193
|
-
});
|
|
194
|
-
}
|