@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,349 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { applyAllComponents } from '../../core/furnace-apply.js';
|
|
4
|
-
import { updateFurnaceState } from '../../core/furnace-config.js';
|
|
5
|
-
import { runFurnaceMutation, waitLockMutationOptions, } from '../../core/furnace-operation.js';
|
|
6
|
-
import { assertFurnaceReady } from '../../core/furnace-precondition.js';
|
|
7
|
-
import { restoreRollbackJournal } from '../../core/furnace-rollback.js';
|
|
8
|
-
import { countEntriesWithBlockingStepErrors } from '../../core/furnace-step-errors.js';
|
|
9
|
-
import { cleanStories, syncStories } from '../../core/furnace-stories.js';
|
|
10
|
-
import { hasBuildArtifacts, runMach, runMachCapture } from '../../core/mach.js';
|
|
11
|
-
import { FurnaceError } from '../../errors/furnace.js';
|
|
12
|
-
import { toError } from '../../utils/errors.js';
|
|
13
|
-
import { pathExists } from '../../utils/fs.js';
|
|
14
|
-
import { info, intro, outro, spinner, warn } from '../../utils/logger.js';
|
|
15
|
-
/**
|
|
16
|
-
* Runs the two teardown steps (`cleanStories` and the rollback-journal
|
|
17
|
-
* restore) independently, collecting whatever errors either step throws.
|
|
18
|
-
* Both steps must run regardless of the other's outcome, because each
|
|
19
|
-
* operates on a different part of engine state and skipping one leaves
|
|
20
|
-
* the engine in a worse position than a single-step failure.
|
|
21
|
-
*
|
|
22
|
-
* Extracted from `furnacePreviewCommand` so the main function stays
|
|
23
|
-
* under the `max-lines-per-function` threshold and so the teardown
|
|
24
|
-
* contract is explicit in one place.
|
|
25
|
-
*
|
|
26
|
-
* @returns Collected teardown errors, or an empty array if both steps
|
|
27
|
-
* succeeded (or no journal was ever created).
|
|
28
|
-
*/
|
|
29
|
-
async function runPreviewTeardown(engineDir, storiesCleanupRequired, journal) {
|
|
30
|
-
const errors = [];
|
|
31
|
-
if (storiesCleanupRequired) {
|
|
32
|
-
try {
|
|
33
|
-
await cleanStories(engineDir);
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
const wrapped = toError(error);
|
|
37
|
-
errors.push(new Error(`Story cleanup: ${wrapped.message}`));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (journal) {
|
|
41
|
-
try {
|
|
42
|
-
await restoreRollbackJournal(journal);
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
const wrapped = toError(error);
|
|
46
|
-
errors.push(new Error(`Journal restore: ${wrapped.message}`));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return errors;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Reports staging failures (component-level errors and per-step errors) to
|
|
53
|
-
* the user and throws a single FurnaceError summarising the failure count.
|
|
54
|
-
*
|
|
55
|
-
* Never returns: it always throws after logging, which is what the `never`
|
|
56
|
-
* return type states.
|
|
57
|
-
*/
|
|
58
|
-
function reportPreviewStagingFailures(stageResult) {
|
|
59
|
-
for (const err of stageResult.errors) {
|
|
60
|
-
warn(`Furnace: ${err.name} — ${err.error}`);
|
|
61
|
-
}
|
|
62
|
-
for (const applied of stageResult.applied) {
|
|
63
|
-
if (applied.stepErrors && applied.stepErrors.length > 0) {
|
|
64
|
-
for (const stepErr of applied.stepErrors) {
|
|
65
|
-
warn(`Furnace: ${applied.name} [${stepErr.step}] ${stepErr.error}`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
const appliedWithStepErrorsCount = countEntriesWithBlockingStepErrors(stageResult.applied);
|
|
70
|
-
const totalFailures = stageResult.errors.length + appliedWithStepErrorsCount;
|
|
71
|
-
throw new FurnaceError(`${totalFailures} component${totalFailures === 1 ? '' : 's'} failed to stage for preview`);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Filenames emitted by the Firefox build backend (not by Storybook's npm
|
|
75
|
-
* package set). Their absence means `mach build` has not produced its
|
|
76
|
-
* post-configure artifacts, which is a different failure mode from a missing
|
|
77
|
-
* Storybook workspace dependency tree. A
|
|
78
|
-
* `FileNotFoundError: [...] chrome-map.json` after a successful Storybook
|
|
79
|
-
* `npm install` is the case a dep-focused heuristic misdiagnoses, sending
|
|
80
|
-
* the operator back to `--install`. The pattern list is narrow on purpose so
|
|
81
|
-
* the backend-rebuild hint only fires when it is confident.
|
|
82
|
-
*/
|
|
83
|
-
const BACKEND_ARTIFACT_PATTERNS = [
|
|
84
|
-
/chrome-map\.json/i,
|
|
85
|
-
/config\.status/i,
|
|
86
|
-
/obj-[^\s/]+\/dist\/bin\/\.lldbinit/i,
|
|
87
|
-
];
|
|
88
|
-
/**
|
|
89
|
-
* Builds a targeted Storybook failure message from captured mach output.
|
|
90
|
-
*
|
|
91
|
-
* Exported for the test suite: the heuristic has three branches (backend
|
|
92
|
-
* artifact missing, Storybook dep missing, generic) and regression
|
|
93
|
-
* testing each is easier when the classifier is addressable directly.
|
|
94
|
-
*
|
|
95
|
-
* @param output - Combined stdout and stderr from the Storybook command
|
|
96
|
-
* @param installRequested - Whether the caller requested a dependency reinstall first
|
|
97
|
-
* @returns User-facing guidance for the specific failure mode
|
|
98
|
-
*/
|
|
99
|
-
export function buildStorybookFailureMessage(output, installRequested) {
|
|
100
|
-
const installHint = installRequested
|
|
101
|
-
? 'Try running "python3 ./mach storybook upgrade" manually in the engine directory.'
|
|
102
|
-
: 'Run "fireforge furnace preview --install" to bootstrap Storybook dependencies, or run "python3 ./mach storybook upgrade" manually in engine/.';
|
|
103
|
-
const hasFileNotFoundSignal = /(ENOENT|No such file or directory|FileNotFoundError)/i.test(output);
|
|
104
|
-
// Check the backend-artifact signal first: a missing chrome-map.json looks
|
|
105
|
-
// like any other "No such file" error to a naïve regex, but the fix is
|
|
106
|
-
// to rerun `fireforge build`, not to reinstall Storybook dependencies.
|
|
107
|
-
if (hasFileNotFoundSignal && BACKEND_ARTIFACT_PATTERNS.some((p) => p.test(output))) {
|
|
108
|
-
return ('Storybook failed because the Firefox build backend artifacts are missing or stale ' +
|
|
109
|
-
'(chrome-map.json / config.status / obj-*/dist/bin/.lldbinit). ' +
|
|
110
|
-
'This is a Firefox-build completeness issue, not a Storybook dependency issue.\n\n' +
|
|
111
|
-
'Rerun "fireforge build" and let it finish, then retry "fireforge furnace preview". ' +
|
|
112
|
-
'A full rebuild regenerates the backend artifacts Storybook reads.');
|
|
113
|
-
}
|
|
114
|
-
if (hasFileNotFoundSignal && /storybook|backend/i.test(output)) {
|
|
115
|
-
return ('Storybook failed because the Firefox checkout appears to be missing Storybook workspace files or backend dependencies.\n\n' +
|
|
116
|
-
installHint);
|
|
117
|
-
}
|
|
118
|
-
return ('Storybook failed to start. Check the output above for the specific Firefox-side error.\n\n' +
|
|
119
|
-
installHint);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Preflights the Firefox build + toolchain prerequisites `mach storybook`
|
|
123
|
-
* quietly assumes. Without it, preview stages components and launches a
|
|
124
|
-
* ~1000-package `mach storybook upgrade` npm install before the backend
|
|
125
|
-
* surfaces a "missing chrome-map.json" / Cargo-config failure. This refuses
|
|
126
|
-
* fast and leaves the workspace untouched.
|
|
127
|
-
*
|
|
128
|
-
* @param engineDir - Resolved engine directory
|
|
129
|
-
* @throws FurnaceError when the Firefox build has not produced dist/, or
|
|
130
|
-
* when `.cargo/config.toml` is absent
|
|
131
|
-
*/
|
|
132
|
-
async function assertPreviewPrerequisites(engineDir) {
|
|
133
|
-
const buildCheck = await hasBuildArtifacts(engineDir);
|
|
134
|
-
if (!buildCheck.exists) {
|
|
135
|
-
throw new FurnaceError('Furnace preview requires a completed Firefox build. ' +
|
|
136
|
-
'`mach storybook` consumes `obj-*/dist/chrome-map.json` and the packaged chrome resources under `dist/`, neither of which is present before `fireforge build` completes.\n\n' +
|
|
137
|
-
'Run "fireforge build" and wait for it to finish, then rerun "fireforge furnace preview". ' +
|
|
138
|
-
'This preflight avoids a multi-minute `mach storybook upgrade` npm install on an engine that cannot start Storybook anyway.');
|
|
139
|
-
}
|
|
140
|
-
// Accept either `.cargo/config.toml` (post-configure) or
|
|
141
|
-
// `.cargo/config.toml.in` (post-bootstrap template, consumed at
|
|
142
|
-
// `mach configure` time). Insisting on the plain file makes operators who
|
|
143
|
-
// follow the remediation instruction ("run bootstrap then rerun preview")
|
|
144
|
-
// hit the same refusal on the retry, because `fireforge bootstrap` alone
|
|
145
|
-
// produces only `.in`. Either name is sufficient to prove the Rust
|
|
146
|
-
// toolchain is registered. The stronger `hasBuildArtifacts` check above
|
|
147
|
-
// already guards against a completely un-configured tree.
|
|
148
|
-
const cargoConfigPath = join(engineDir, '.cargo', 'config.toml');
|
|
149
|
-
const cargoConfigInPath = join(engineDir, '.cargo', 'config.toml.in');
|
|
150
|
-
const cargoConfigPresent = (await pathExists(cargoConfigPath)) || (await pathExists(cargoConfigInPath));
|
|
151
|
-
if (!cargoConfigPresent) {
|
|
152
|
-
throw new FurnaceError("Furnace preview requires the engine's Rust toolchain to be bootstrapped. " +
|
|
153
|
-
'Neither `.cargo/config.toml` nor `.cargo/config.toml.in` exists under the engine directory — ' +
|
|
154
|
-
'`mach storybook` fails deep inside the Storybook backend compile without either of them.\n\n' +
|
|
155
|
-
'Run "fireforge bootstrap" (or the underlying `mach bootstrap` in the engine) to populate the toolchain config, then rerun "fireforge furnace preview".');
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Emits a framing banner when the Storybook workspace has not yet had its npm
|
|
160
|
-
* dependencies installed. `mach storybook` drives the install internally and
|
|
161
|
-
* prints ELSPROBLEMS / UNMET DEPENDENCY lines verbatim. Without this banner
|
|
162
|
-
* operators reliably read the npm output as a failure.
|
|
163
|
-
*
|
|
164
|
-
* Skipped when `--install` was explicitly requested, since that path runs
|
|
165
|
-
* `mach storybook upgrade` before the preview launches, so the npm output
|
|
166
|
-
* for the subsequent `mach storybook` invocation is a no-op.
|
|
167
|
-
*/
|
|
168
|
-
async function announceStorybookFirstRunIfNeeded(engineDir, installRequested) {
|
|
169
|
-
if (installRequested)
|
|
170
|
-
return;
|
|
171
|
-
const storybookNodeModules = join(engineDir, 'browser', 'components', 'storybook', 'node_modules');
|
|
172
|
-
const storybookDepsMissing = !(await pathExists(storybookNodeModules));
|
|
173
|
-
if (!storybookDepsMissing)
|
|
174
|
-
return;
|
|
175
|
-
info('Storybook workspace dependencies are not yet installed. The next step will install ~1000 npm packages via `mach storybook`; expect npm error-style output below. This is a one-time first-run cost — Storybook will start once the install finishes.');
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Surfaces an explicit success banner after a clean mach-storybook
|
|
179
|
-
* exit so the operator's scrollback visually terminates the npm noise
|
|
180
|
-
* from the first-run install. Only fires on expected exit codes. Non-zero
|
|
181
|
-
* cases fall through to the existing `buildStorybookFailureMessage`
|
|
182
|
-
* classification.
|
|
183
|
-
*/
|
|
184
|
-
function announceStorybookCleanExitIfApplicable(exitCode) {
|
|
185
|
-
if (exitCode === 0 || exitCode === 130 || exitCode === 143) {
|
|
186
|
-
info('Storybook stopped cleanly.');
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Runs the furnace preview command to start Storybook for component preview.
|
|
191
|
-
* @param projectRoot - Root directory of the project
|
|
192
|
-
* @param options - Command options
|
|
193
|
-
*/
|
|
194
|
-
export async function furnacePreviewCommand(projectRoot, options = {}) {
|
|
195
|
-
intro('Furnace Preview (Storybook)');
|
|
196
|
-
const { paths, config } = await assertFurnaceReady(projectRoot);
|
|
197
|
-
const stockCount = config.stock.length;
|
|
198
|
-
const overrideCount = Object.keys(config.overrides).length;
|
|
199
|
-
const customCount = Object.keys(config.custom).length;
|
|
200
|
-
const totalCount = stockCount + overrideCount + customCount;
|
|
201
|
-
if (totalCount === 0) {
|
|
202
|
-
info('No components to preview.');
|
|
203
|
-
outro('Done');
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
const storybookRoot = join(paths.engine, 'browser', 'components', 'storybook');
|
|
207
|
-
if (!(await pathExists(storybookRoot))) {
|
|
208
|
-
throw new FurnaceError('This Firefox checkout does not contain browser/components/storybook. Furnace preview requires the upstream Storybook workspace to exist before stories can be synced.');
|
|
209
|
-
}
|
|
210
|
-
// Build + toolchain preflight, extracted into a helper so the function
|
|
211
|
-
// below stays under the per-function LOC budget.
|
|
212
|
-
await assertPreviewPrerequisites(paths.engine);
|
|
213
|
-
let previewResult;
|
|
214
|
-
// True once we are about to (or have) written to engine/.../stories/furnace.
|
|
215
|
-
// Set before `syncStories` is awaited so a mid-sync failure still
|
|
216
|
-
// triggers `cleanStories` during teardown. `cleanStories` is a
|
|
217
|
-
// full-directory wipe, so it is correct to run against partial state,
|
|
218
|
-
// including state with zero files, where it is a cheap no-op.
|
|
219
|
-
let storiesCleanupRequired = false;
|
|
220
|
-
let previewJournal;
|
|
221
|
-
let primaryError;
|
|
222
|
-
// The preview command runs under runFurnaceMutation so a SIGINT during
|
|
223
|
-
// Storybook still triggers cleanStories + journal restore via the CLI
|
|
224
|
-
// entrypoint's global signal handlers consulting the lifecycle registry.
|
|
225
|
-
// The body's own try/catch + teardown path handles the normal exit case
|
|
226
|
-
// (mach storybook returns or throws).
|
|
227
|
-
const mutate = async (ctx) => {
|
|
228
|
-
// Register the stories cleanup as an extra teardown hook so the signal
|
|
229
|
-
// handler can wipe the staged stories directory in addition to the
|
|
230
|
-
// journal restore.
|
|
231
|
-
ctx.registerCleanup(async () => {
|
|
232
|
-
if (storiesCleanupRequired) {
|
|
233
|
-
await cleanStories(paths.engine);
|
|
234
|
-
}
|
|
235
|
-
});
|
|
236
|
-
try {
|
|
237
|
-
// Stage workspace override/custom files into engine/ so Storybook can
|
|
238
|
-
// resolve freshly edited chrome:// imports. Stock-only projects skip
|
|
239
|
-
// this step because stock components are never written from workspace
|
|
240
|
-
// sources.
|
|
241
|
-
if (overrideCount + customCount > 0) {
|
|
242
|
-
const stageSpinner = spinner('Staging components for preview...');
|
|
243
|
-
let stageResult;
|
|
244
|
-
try {
|
|
245
|
-
stageResult = await applyAllComponents(projectRoot, false, {
|
|
246
|
-
persistState: false,
|
|
247
|
-
operationContext: ctx,
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
catch (error) {
|
|
251
|
-
stageSpinner.error('Failed to stage components');
|
|
252
|
-
throw error;
|
|
253
|
-
}
|
|
254
|
-
previewJournal = stageResult.rollbackJournal;
|
|
255
|
-
if (previewJournal) {
|
|
256
|
-
ctx.registerJournal(previewJournal);
|
|
257
|
-
}
|
|
258
|
-
const appliedWithStepErrorsCount = countEntriesWithBlockingStepErrors(stageResult.applied);
|
|
259
|
-
const totalFailures = stageResult.errors.length + appliedWithStepErrorsCount;
|
|
260
|
-
if (totalFailures > 0) {
|
|
261
|
-
stageSpinner.error('Failed to stage components');
|
|
262
|
-
reportPreviewStagingFailures(stageResult);
|
|
263
|
-
}
|
|
264
|
-
stageSpinner.stop(`Staged ${stageResult.applied.length} component${stageResult.applied.length === 1 ? '' : 's'} for preview`);
|
|
265
|
-
}
|
|
266
|
-
// Sync story files. Set the cleanup flag before the await so a partial
|
|
267
|
-
// write failure still triggers the teardown wipe. `syncStories` writes
|
|
268
|
-
// files incrementally with no internal cleanup of its own.
|
|
269
|
-
const syncSpinner = spinner('Syncing component stories...');
|
|
270
|
-
storiesCleanupRequired = true;
|
|
271
|
-
const result = await syncStories(projectRoot);
|
|
272
|
-
const created = result.created.length;
|
|
273
|
-
const updated = result.updated.length;
|
|
274
|
-
const total = created + updated;
|
|
275
|
-
syncSpinner.stop(`Synced ${total} stories (${created} new, ${updated} updated)`);
|
|
276
|
-
// Force-reinstall Storybook dependencies if requested
|
|
277
|
-
if (options.install) {
|
|
278
|
-
const installSpinner = spinner('Reinstalling Storybook dependencies...');
|
|
279
|
-
const installCode = await runMach(['storybook', 'upgrade'], paths.engine);
|
|
280
|
-
if (installCode !== 0) {
|
|
281
|
-
installSpinner.stop('Failed to reinstall Storybook dependencies');
|
|
282
|
-
throw new FurnaceError('Storybook dependency reinstallation failed. Try running "python3 ./mach storybook upgrade" manually in the engine directory.');
|
|
283
|
-
}
|
|
284
|
-
installSpinner.stop('Storybook dependencies reinstalled');
|
|
285
|
-
}
|
|
286
|
-
// Frame the npm noise `mach storybook` emits on first run as expected
|
|
287
|
-
// progress rather than a failure.
|
|
288
|
-
await announceStorybookFirstRunIfNeeded(paths.engine, options.install ?? false);
|
|
289
|
-
// Start Storybook
|
|
290
|
-
info('Starting Storybook...');
|
|
291
|
-
info('Press Ctrl+C to stop\n');
|
|
292
|
-
previewResult = await runMachCapture(['storybook'], paths.engine);
|
|
293
|
-
announceStorybookCleanExitIfApplicable(previewResult.exitCode);
|
|
294
|
-
}
|
|
295
|
-
catch (error) {
|
|
296
|
-
primaryError = error;
|
|
297
|
-
}
|
|
298
|
-
// Teardown runs unconditionally and never short-circuits: a failure in
|
|
299
|
-
// cleanStories must not prevent the journal restore, and vice versa.
|
|
300
|
-
// Running teardown in a `finally` that calls
|
|
301
|
-
// `restoreRollbackJournalOrThrow` throws synchronously, bypassing the
|
|
302
|
-
// primary error and skipping downstream handling, so the engine is left
|
|
303
|
-
// with staged files and the user gets a teardown message with no
|
|
304
|
-
// guidance. Both failures are collected instead and, if anything went
|
|
305
|
-
// wrong, a `pendingRepair` marker is persisted for `fireforge doctor` to
|
|
306
|
-
// finish the reconciliation.
|
|
307
|
-
//
|
|
308
|
-
// Teardown restores the journal itself, so the lifecycle wrapper must
|
|
309
|
-
// not restore it again when the throw below propagates out of this body.
|
|
310
|
-
ctx.markRolledBack();
|
|
311
|
-
const teardownErrors = await runPreviewTeardown(paths.engine, storiesCleanupRequired, previewJournal);
|
|
312
|
-
if (teardownErrors.length > 0) {
|
|
313
|
-
const teardownSummary = teardownErrors.map((err) => err.message).join('; ');
|
|
314
|
-
try {
|
|
315
|
-
await updateFurnaceState(projectRoot, (state) => ({
|
|
316
|
-
...state,
|
|
317
|
-
pendingRepair: {
|
|
318
|
-
operation: 'preview-teardown',
|
|
319
|
-
timestamp: new Date().toISOString(),
|
|
320
|
-
reason: teardownSummary,
|
|
321
|
-
},
|
|
322
|
-
}));
|
|
323
|
-
}
|
|
324
|
-
catch (markError) {
|
|
325
|
-
warn(`Could not record pending-repair marker in .fireforge/furnace-state.json — ${toError(markError).message}. Engine may still be in a staged state; run "fireforge furnace apply" manually to reconcile.`);
|
|
326
|
-
}
|
|
327
|
-
const primarySuffix = primaryError
|
|
328
|
-
? ` (original error: ${toError(primaryError).message})`
|
|
329
|
-
: '';
|
|
330
|
-
throw new FurnaceError(`Preview teardown could not restore the engine cleanly: ${teardownSummary}. The engine may contain staged workspace files. Run "fireforge doctor --repair-furnace" to reconcile, or run "fireforge furnace apply" manually.${primarySuffix}`);
|
|
331
|
-
}
|
|
332
|
-
if (primaryError) {
|
|
333
|
-
// Re-throwing the captured error preserves its original shape. The
|
|
334
|
-
// `toError` wrap normalises non-Error throws (strings, plain objects)
|
|
335
|
-
// into real Error instances so the eslint `only-throw-error` rule
|
|
336
|
-
// holds and downstream formatters always see a message/stack pair.
|
|
337
|
-
throw toError(primaryError);
|
|
338
|
-
}
|
|
339
|
-
};
|
|
340
|
-
await runFurnaceMutation(projectRoot, 'preview-teardown', mutate, waitLockMutationOptions(options.waitLockSeconds));
|
|
341
|
-
if (previewResult &&
|
|
342
|
-
previewResult.exitCode !== 0 &&
|
|
343
|
-
previewResult.exitCode !== 130 &&
|
|
344
|
-
previewResult.exitCode !== 143) {
|
|
345
|
-
const combinedOutput = `${previewResult.stdout}\n${previewResult.stderr}`;
|
|
346
|
-
throw new FurnaceError(buildStorybookFailureMessage(combinedOutput, options.install ?? false));
|
|
347
|
-
}
|
|
348
|
-
outro('Storybook stopped');
|
|
349
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { FurnaceRefreshOptions } from '../../types/commands/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Runs the furnace refresh command to merge upstream Firefox changes into
|
|
4
|
-
* an override component using three-way merge.
|
|
5
|
-
*
|
|
6
|
-
* @param projectRoot - Root directory of the project
|
|
7
|
-
* @param name - Component tag name to refresh (omit when using --all)
|
|
8
|
-
* @param options - Command options
|
|
9
|
-
*/
|
|
10
|
-
export declare function furnaceRefreshCommand(projectRoot: string, name: string | undefined, options?: FurnaceRefreshOptions): Promise<void>;
|
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { readdir } from 'node:fs/promises';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { getProjectPaths, loadConfig, loadState } from '../../core/config.js';
|
|
5
|
-
import { getOverrideEngineTargetPath } from '../../core/furnace-apply-helpers.js';
|
|
6
|
-
import { getFurnacePaths, loadFurnaceConfig, writeFurnaceConfig, } from '../../core/furnace-config.js';
|
|
7
|
-
import { resolveFtlDir } from '../../core/furnace-constants.js';
|
|
8
|
-
import { isComponentSourceFile } from '../../core/furnace-constants.js';
|
|
9
|
-
import { completeJournalRollback, runFurnaceMutation, waitLockMutationOptions, } from '../../core/furnace-operation.js';
|
|
10
|
-
import { assertFurnaceEngineReady } from '../../core/furnace-precondition.js';
|
|
11
|
-
import { refreshOverrideFile } from '../../core/furnace-refresh.js';
|
|
12
|
-
import { createRollbackJournal, restoreRollbackJournal, snapshotDir, snapshotFile, } from '../../core/furnace-rollback.js';
|
|
13
|
-
import { getHead } from '../../core/git.js';
|
|
14
|
-
import { FurnaceError } from '../../errors/furnace.js';
|
|
15
|
-
import { toError } from '../../utils/errors.js';
|
|
16
|
-
import { pathExists } from '../../utils/fs.js';
|
|
17
|
-
import { formatErrorText, formatSuccessText, info, intro, note, outro, warn, } from '../../utils/logger.js';
|
|
18
|
-
function displayRefreshResults(results, name, currentVersion, dryRun) {
|
|
19
|
-
const merged = results.filter((r) => r.status === 'merged');
|
|
20
|
-
const conflicts = results.filter((r) => r.status === 'conflict');
|
|
21
|
-
const unchanged = results.filter((r) => r.status === 'unchanged');
|
|
22
|
-
const newFiles = results.filter((r) => r.status === 'new-file');
|
|
23
|
-
for (const r of merged) {
|
|
24
|
-
info(formatSuccessText(` merged: ${r.fileName}`));
|
|
25
|
-
}
|
|
26
|
-
for (const r of unchanged) {
|
|
27
|
-
info(` unchanged: ${r.fileName}`);
|
|
28
|
-
}
|
|
29
|
-
for (const r of newFiles) {
|
|
30
|
-
info(` new file: ${r.fileName}`);
|
|
31
|
-
}
|
|
32
|
-
if (conflicts.length > 0) {
|
|
33
|
-
for (const r of conflicts) {
|
|
34
|
-
info(formatErrorText(` CONFLICT: ${r.fileName} (${r.conflictMarkers} marker(s))`));
|
|
35
|
-
}
|
|
36
|
-
warn('Conflict markers have been left in the affected files. ' +
|
|
37
|
-
`Resolve them manually, then re-run "fireforge furnace refresh ${name}" to update baseVersion.`);
|
|
38
|
-
}
|
|
39
|
-
const summary = `${merged.length} merged, ${unchanged.length} unchanged, ` +
|
|
40
|
-
`${newFiles.length} new, ${conflicts.length} conflicts`;
|
|
41
|
-
if (dryRun) {
|
|
42
|
-
note(summary, 'Dry Run Summary');
|
|
43
|
-
outro('Dry run complete (no files modified)');
|
|
44
|
-
}
|
|
45
|
-
else if (conflicts.length > 0) {
|
|
46
|
-
note(summary, 'Refresh Summary');
|
|
47
|
-
outro('Refresh complete with conflicts — resolve before applying');
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
note(`${summary}\nbaseVersion updated to ${currentVersion} in furnace.json`, 'Refresh Summary');
|
|
51
|
-
outro('Refresh complete');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Refreshes a single override component against the current Firefox source.
|
|
56
|
-
* Returns the per-file merge results.
|
|
57
|
-
*/
|
|
58
|
-
async function refreshSingleOverride(projectRoot, name, options = {}) {
|
|
59
|
-
const config = await loadFurnaceConfig(projectRoot);
|
|
60
|
-
const paths = getProjectPaths(projectRoot);
|
|
61
|
-
const furnacePaths = getFurnacePaths(projectRoot);
|
|
62
|
-
const ftlDir = resolveFtlDir(config.ftlBasePath);
|
|
63
|
-
// Only overrides can be refreshed
|
|
64
|
-
const overrideConfig = config.overrides[name];
|
|
65
|
-
if (!overrideConfig) {
|
|
66
|
-
throw new FurnaceError(`"${name}" is not an override component. Only overrides can be refreshed against upstream.`, name);
|
|
67
|
-
}
|
|
68
|
-
const overrideDir = join(furnacePaths.overridesDir, name);
|
|
69
|
-
if (!(await pathExists(overrideDir))) {
|
|
70
|
-
throw new FurnaceError(`Override directory not found: components/overrides/${name}`, name);
|
|
71
|
-
}
|
|
72
|
-
const forgeConfig = await loadConfig(projectRoot);
|
|
73
|
-
const currentVersion = forgeConfig.firefox.version;
|
|
74
|
-
const state = await loadState(projectRoot);
|
|
75
|
-
// --reset-base: skip three-way merge and re-snapshot the current engine
|
|
76
|
-
// state as the new baseline. This recovers from unreachable baseCommits
|
|
77
|
-
// (e.g. after history rewrite or re-clone).
|
|
78
|
-
if (options.resetBase) {
|
|
79
|
-
const headCommit = await getHead(paths.engine);
|
|
80
|
-
info(`Resetting "${name}" baseline to Firefox ${currentVersion} (${headCommit.slice(0, 8)}). ` +
|
|
81
|
-
'Three-way merge skipped — current workspace content is preserved as-is.');
|
|
82
|
-
if (!options.dryRun) {
|
|
83
|
-
const freshConfig = await loadFurnaceConfig(projectRoot);
|
|
84
|
-
freshConfig.overrides[name] = {
|
|
85
|
-
...overrideConfig,
|
|
86
|
-
baseVersion: currentVersion,
|
|
87
|
-
baseCommit: headCommit,
|
|
88
|
-
};
|
|
89
|
-
await writeFurnaceConfig(projectRoot, freshConfig);
|
|
90
|
-
}
|
|
91
|
-
return { results: [], currentVersion };
|
|
92
|
-
}
|
|
93
|
-
// Prefer the per-override baseCommit (survives download --force). Fall
|
|
94
|
-
// back to the project-wide value for overrides created before this field existed.
|
|
95
|
-
const baseCommit = overrideConfig.baseCommit ?? state.baseCommit;
|
|
96
|
-
if (!baseCommit) {
|
|
97
|
-
throw new FurnaceError('Cannot refresh: baseCommit not found. Re-run "fireforge download" to establish a baseline, ' +
|
|
98
|
-
'or use --reset-base to snapshot the current engine as the new baseline.', name);
|
|
99
|
-
}
|
|
100
|
-
// If there's no version drift, refreshing is a no-op
|
|
101
|
-
if (overrideConfig.baseVersion === currentVersion) {
|
|
102
|
-
info(`Override "${name}" is already at Firefox ${currentVersion}. Nothing to refresh.`);
|
|
103
|
-
return { results: [], currentVersion };
|
|
104
|
-
}
|
|
105
|
-
info(`Refreshing "${name}": Firefox ${overrideConfig.baseVersion} → ${currentVersion}`);
|
|
106
|
-
// Collect override files
|
|
107
|
-
const entries = await readdir(overrideDir, { withFileTypes: true });
|
|
108
|
-
const overrideFiles = entries.filter((e) => e.isFile() && isComponentSourceFile(e.name));
|
|
109
|
-
if (overrideFiles.length === 0) {
|
|
110
|
-
info('No source files to refresh.');
|
|
111
|
-
return { results: [], currentVersion };
|
|
112
|
-
}
|
|
113
|
-
const dryRun = options.dryRun ?? false;
|
|
114
|
-
const strategy = options.strategy;
|
|
115
|
-
// Run all merges within a transactional mutation so failures can be rolled back
|
|
116
|
-
const results = await runFurnaceMutation(projectRoot, 'refresh-rollback', async (ctx) => {
|
|
117
|
-
const journal = createRollbackJournal();
|
|
118
|
-
ctx.registerJournal(journal);
|
|
119
|
-
try {
|
|
120
|
-
const fileResults = [];
|
|
121
|
-
if (!dryRun) {
|
|
122
|
-
// Snapshot all override files before mutation
|
|
123
|
-
await snapshotDir(journal, overrideDir);
|
|
124
|
-
await snapshotFile(journal, furnacePaths.furnaceConfig);
|
|
125
|
-
}
|
|
126
|
-
for (const entry of overrideFiles) {
|
|
127
|
-
const overridePath = join(overrideDir, entry.name);
|
|
128
|
-
const engineRelPath = getOverrideEngineTargetPath(paths.engine, overrideConfig, entry.name, ftlDir).slice(paths.engine.length + 1);
|
|
129
|
-
const result = await refreshOverrideFile({
|
|
130
|
-
engineDir: paths.engine,
|
|
131
|
-
overridePath,
|
|
132
|
-
engineRelPath,
|
|
133
|
-
baseCommit,
|
|
134
|
-
fileName: entry.name,
|
|
135
|
-
dryRun,
|
|
136
|
-
strategy,
|
|
137
|
-
});
|
|
138
|
-
fileResults.push(result);
|
|
139
|
-
}
|
|
140
|
-
// Update baseVersion and baseCommit on clean merge (not dry-run, no conflicts)
|
|
141
|
-
const hasConflicts = fileResults.some((r) => r.status === 'conflict');
|
|
142
|
-
if (!dryRun && !hasConflicts) {
|
|
143
|
-
// Re-load config to pick up any concurrent changes from a prior override
|
|
144
|
-
// in a batch refresh.
|
|
145
|
-
const freshConfig = await loadFurnaceConfig(projectRoot);
|
|
146
|
-
freshConfig.overrides[name] = {
|
|
147
|
-
...overrideConfig,
|
|
148
|
-
baseVersion: currentVersion,
|
|
149
|
-
baseCommit: await getHead(paths.engine),
|
|
150
|
-
};
|
|
151
|
-
await writeFurnaceConfig(projectRoot, freshConfig);
|
|
152
|
-
}
|
|
153
|
-
return fileResults;
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
// A dry run wrote nothing, so there is no journal to restore. It
|
|
157
|
-
// rethrows without touching the lifecycle wrapper.
|
|
158
|
-
if (!dryRun) {
|
|
159
|
-
return await completeJournalRollback(ctx, journal, error, {
|
|
160
|
-
projectRoot,
|
|
161
|
-
operation: 'refresh-rollback',
|
|
162
|
-
failureMessage: `Failed to refresh override "${name}"`,
|
|
163
|
-
subject: `override "${name}"`,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
throw error;
|
|
167
|
-
}
|
|
168
|
-
}, { dryRun, ...waitLockMutationOptions(options.waitLockSeconds) });
|
|
169
|
-
return { results, currentVersion };
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Refreshes every override sequentially, tallying merged/conflict/
|
|
173
|
-
* unchanged file counts. Per-override errors are expected (warned and
|
|
174
|
-
* recorded as failures) and do not abort the batch. Only an error that
|
|
175
|
-
* escapes this function entirely warrants the caller's journal rollback.
|
|
176
|
-
*/
|
|
177
|
-
async function runBatchRefresh(projectRoot, overrideNames, options) {
|
|
178
|
-
let totalMerged = 0;
|
|
179
|
-
let totalConflicts = 0;
|
|
180
|
-
let totalUnchanged = 0;
|
|
181
|
-
let totalSkipped = 0;
|
|
182
|
-
const conflictComponents = [];
|
|
183
|
-
const failedOverrides = [];
|
|
184
|
-
for (const overrideName of overrideNames) {
|
|
185
|
-
try {
|
|
186
|
-
const { results } = await refreshSingleOverride(projectRoot, overrideName, options);
|
|
187
|
-
if (results.length === 0) {
|
|
188
|
-
totalSkipped++;
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
for (const r of results) {
|
|
192
|
-
if (r.status === 'merged')
|
|
193
|
-
totalMerged++;
|
|
194
|
-
else if (r.status === 'conflict') {
|
|
195
|
-
totalConflicts++;
|
|
196
|
-
if (!conflictComponents.includes(overrideName)) {
|
|
197
|
-
conflictComponents.push(overrideName);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
else if (r.status === 'unchanged')
|
|
201
|
-
totalUnchanged++;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
catch (error) {
|
|
205
|
-
const message = toError(error).message;
|
|
206
|
-
warn(`${overrideName}: ${message}`);
|
|
207
|
-
failedOverrides.push({ name: overrideName, message });
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return {
|
|
211
|
-
totalMerged,
|
|
212
|
-
totalConflicts,
|
|
213
|
-
totalUnchanged,
|
|
214
|
-
totalSkipped,
|
|
215
|
-
conflictComponents,
|
|
216
|
-
failedOverrides,
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Runs the furnace refresh command to merge upstream Firefox changes into
|
|
221
|
-
* an override component using three-way merge.
|
|
222
|
-
*
|
|
223
|
-
* @param projectRoot - Root directory of the project
|
|
224
|
-
* @param name - Component tag name to refresh (omit when using --all)
|
|
225
|
-
* @param options - Command options
|
|
226
|
-
*/
|
|
227
|
-
export async function furnaceRefreshCommand(projectRoot, name, options = {}) {
|
|
228
|
-
const refreshAll = options.all ?? false;
|
|
229
|
-
if (!name && !refreshAll) {
|
|
230
|
-
throw new FurnaceError('Specify a component name or use --all to refresh every override.');
|
|
231
|
-
}
|
|
232
|
-
if (name && refreshAll) {
|
|
233
|
-
throw new FurnaceError('Cannot specify both a component name and --all. Use one or the other.');
|
|
234
|
-
}
|
|
235
|
-
// Verify engine exists: refresh reads engine files for three-way merge
|
|
236
|
-
// and --reset-base reads engine HEAD. Without this check, the user gets
|
|
237
|
-
// an obscure git error instead of a clear precondition message.
|
|
238
|
-
await assertFurnaceEngineReady(projectRoot);
|
|
239
|
-
const dryRun = options.dryRun ?? false;
|
|
240
|
-
if (name) {
|
|
241
|
-
intro('Furnace Refresh');
|
|
242
|
-
if (dryRun) {
|
|
243
|
-
info('Dry run — showing what would change without modifying files.');
|
|
244
|
-
}
|
|
245
|
-
const { results, currentVersion } = await refreshSingleOverride(projectRoot, name, options);
|
|
246
|
-
if (results.length > 0) {
|
|
247
|
-
displayRefreshResults(results, name, currentVersion, dryRun);
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
outro('Done');
|
|
251
|
-
}
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
// --all mode: refresh every override sequentially
|
|
255
|
-
intro('Furnace Refresh (all overrides)');
|
|
256
|
-
if (dryRun) {
|
|
257
|
-
info('Dry run — showing what would change without modifying files.');
|
|
258
|
-
}
|
|
259
|
-
const config = await loadFurnaceConfig(projectRoot);
|
|
260
|
-
const overrideNames = Object.keys(config.overrides);
|
|
261
|
-
if (overrideNames.length === 0) {
|
|
262
|
-
info('No overrides to refresh.');
|
|
263
|
-
outro('Done');
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
// Snapshot furnace.json before the batch loop so an unexpected failure
|
|
267
|
-
// (process crash, unhandled error) can be recovered from. Per-component
|
|
268
|
-
// errors caught below are expected and do not trigger a restore. Only
|
|
269
|
-
// an error that escapes the loop entirely warrants rolling back.
|
|
270
|
-
const batchJournal = dryRun ? undefined : createRollbackJournal();
|
|
271
|
-
if (batchJournal) {
|
|
272
|
-
const furnacePaths = getFurnacePaths(projectRoot);
|
|
273
|
-
await snapshotFile(batchJournal, furnacePaths.furnaceConfig);
|
|
274
|
-
}
|
|
275
|
-
let tally;
|
|
276
|
-
try {
|
|
277
|
-
tally = await runBatchRefresh(projectRoot, overrideNames, options);
|
|
278
|
-
}
|
|
279
|
-
catch (error) {
|
|
280
|
-
// Unexpected batch-level failure: restore furnace.json to its
|
|
281
|
-
// pre-batch state so the config is not left partially updated.
|
|
282
|
-
if (batchJournal) {
|
|
283
|
-
await restoreRollbackJournal(batchJournal);
|
|
284
|
-
}
|
|
285
|
-
throw error;
|
|
286
|
-
}
|
|
287
|
-
const { totalMerged, totalConflicts, totalUnchanged, totalSkipped } = tally;
|
|
288
|
-
const { conflictComponents, failedOverrides } = tally;
|
|
289
|
-
const summary = `${overrideNames.length} override(s) processed, ${totalSkipped} already up-to-date\n` +
|
|
290
|
-
`${totalMerged} file(s) merged, ${totalUnchanged} unchanged, ${totalConflicts} conflict(s), ` +
|
|
291
|
-
`${failedOverrides.length} failed`;
|
|
292
|
-
if (conflictComponents.length > 0) {
|
|
293
|
-
warn(`Conflicts in: ${conflictComponents.join(', ')}. ` +
|
|
294
|
-
'Resolve conflict markers, then re-run refresh for those components to update baseVersion.');
|
|
295
|
-
}
|
|
296
|
-
note(summary, dryRun ? 'Dry Run Summary' : 'Refresh Summary');
|
|
297
|
-
if (failedOverrides.length > 0) {
|
|
298
|
-
outro(dryRun ? 'Dry run completed with failures' : 'Refresh completed with failures');
|
|
299
|
-
throw new FurnaceError(`Failed to refresh ${failedOverrides.length} override(s): ` +
|
|
300
|
-
failedOverrides.map((failure) => `${failure.name}: ${failure.message}`).join('; '));
|
|
301
|
-
}
|
|
302
|
-
outro(dryRun ? 'Dry run complete' : 'Refresh complete');
|
|
303
|
-
}
|