@hominis/fireforge 0.55.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +233 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -456
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -359
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -382
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -423
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -241
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -766
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +111 -221
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -290
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +159 -723
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -719
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -98
- package/dist/src/commands/check-run.d.ts +0 -44
- package/dist/src/commands/check-run.js +0 -125
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -229
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -283
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/body.d.ts +0 -29
- package/dist/src/commands/patch/body.js +0 -60
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -54
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -263
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -114
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -27
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -78
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -251
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -285
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-each.d.ts +0 -46
- package/dist/src/commands/re-export-each.js +0 -110
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -37
- package/dist/src/commands/re-export-hunks.js +0 -264
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -192
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -53
- package/dist/src/commands/re-export-single.js +0 -426
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -44
- package/dist/src/commands/re-export-summary.js +0 -59
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -34
- package/dist/src/commands/test-build-phase.js +0 -291
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -70
- package/dist/src/commands/test-orchestrate.js +0 -277
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -56
- package/dist/src/commands/test-stale-gate.js +0 -208
- package/dist/src/commands/test-verdict.d.ts +0 -102
- package/dist/src/commands/test-verdict.js +0 -176
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck-explain.d.ts +0 -13
- package/dist/src/commands/typecheck-explain.js +0 -100
- package/dist/src/commands/typecheck.d.ts +0 -61
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -284
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -125
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -509
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/dev-profile.d.ts +0 -28
- package/dist/src/core/dev-profile.js +0 -58
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -67
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -131
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -167
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -81
- package/dist/src/core/furnace-constants.js +0 -125
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-deploy-owner.d.ts +0 -29
- package/dist/src/core/furnace-deploy-owner.js +0 -116
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -87
- package/dist/src/core/furnace-jsconfig.js +0 -248
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-tag-map.d.ts +0 -47
- package/dist/src/core/furnace-tag-map.js +0 -182
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -331
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -328
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -167
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache-checkjs.d.ts +0 -45
- package/dist/src/core/patch-lint-cache-checkjs.js +0 -195
- package/dist/src/core/patch-lint-cache.d.ts +0 -79
- package/dist/src/core/patch-lint-cache.js +0 -247
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -57
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -91
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs-resolve.d.ts +0 -31
- package/dist/src/core/patch-lint-checkjs-resolve.js +0 -86
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -182
- package/dist/src/core/patch-lint-checkjs.js +0 -563
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -9
- package/dist/src/core/patch-lint-imports.js +0 -90
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -98
- package/dist/src/core/patch-lint-staged-registration.js +0 -128
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -65
- package/dist/src/core/patch-lint-token-scale.js +0 -304
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -206
- package/dist/src/core/patch-lint.js +0 -533
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -176
- package/dist/src/core/patch-parse.js +0 -416
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -219
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-explain.d.ts +0 -93
- package/dist/src/core/typecheck-explain.js +0 -213
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -508
- package/dist/src/core/typecheck.d.ts +0 -97
- package/dist/src/core/typecheck.js +0 -457
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1372
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -732
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -422
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/** Runs an operation while holding the sidecar lock for a FireForge state file. */
|
|
2
|
-
export declare function withStateFileLock<T>(statePath: string, operation: () => Promise<T>): Promise<T>;
|
|
3
|
-
/**
|
|
4
|
-
* A filesystem-safe, sortable timestamp: `2026-08-28T14-32-05-123Z`.
|
|
5
|
-
*
|
|
6
|
-
* Colons are not portable in filenames (Windows rejects them outright), so
|
|
7
|
-
* the ISO form is punctuated with dashes only. Lexical order still equals
|
|
8
|
-
* chronological order, which is what run-log pruning relies on.
|
|
9
|
-
*
|
|
10
|
-
* @param now - Instant to render
|
|
11
|
-
* @returns The ISO-8601 form with `:` and `.` replaced by `-`
|
|
12
|
-
*/
|
|
13
|
-
export declare function fileSafeTimestamp(now: Date): string;
|
|
14
|
-
/** Renames a state file out of the way while preserving it for later inspection. */
|
|
15
|
-
export declare function quarantineStateFile(statePath: string, reason?: string): Promise<string | undefined>;
|
|
16
|
-
/**
|
|
17
|
-
* Outcome of a version check on a persisted FireForge document.
|
|
18
|
-
*
|
|
19
|
-
* The distinction that matters is `newer` vs `corrupt`. A document written
|
|
20
|
-
* by a newer FireForge is not damaged. The operator simply needs to upgrade.
|
|
21
|
-
* A check that collapses the two offers destructive remedies. The
|
|
22
|
-
* sharpest case is the tree marker, whose `schemaVersion` check inside a
|
|
23
|
-
* boolean type guard makes a `schemaVersion: 2` marker read as "missing or
|
|
24
|
-
* mistypes a required field". `tree-guard.ts` is default-deny on corrupt, so
|
|
25
|
-
* a newer FireForge would lock the operator out of every mutating command
|
|
26
|
-
* inside that tree.
|
|
27
|
-
*
|
|
28
|
-
* `furnace.json` is the pattern the rest should follow: it refuses a newer
|
|
29
|
-
* version by name and tells the operator to upgrade (`validateConfigVersion`
|
|
30
|
-
* in `furnace-config.ts`).
|
|
31
|
-
*/
|
|
32
|
-
export type DocumentVersionCheck = {
|
|
33
|
-
kind: 'current';
|
|
34
|
-
} | {
|
|
35
|
-
kind: 'older';
|
|
36
|
-
found: number;
|
|
37
|
-
} | {
|
|
38
|
-
kind: 'newer';
|
|
39
|
-
found: number;
|
|
40
|
-
} | {
|
|
41
|
-
kind: 'malformed';
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* Classifies a persisted document's `version`/`schemaVersion` field.
|
|
45
|
-
*
|
|
46
|
-
* @param raw - The parsed document
|
|
47
|
-
* @param field - Version field name, e.g. `schemaVersion`
|
|
48
|
-
* @param supported - Version this build writes and understands
|
|
49
|
-
* @returns Whether the document is current, older, newer, or malformed
|
|
50
|
-
*/
|
|
51
|
-
export declare function checkDocumentVersion(raw: unknown, field: string, supported: number): DocumentVersionCheck;
|
|
52
|
-
/**
|
|
53
|
-
* The refusal shown for a document this build is too old to read.
|
|
54
|
-
*
|
|
55
|
-
* @param label - Operator-facing document name, e.g. `tree marker`
|
|
56
|
-
* @param found - Version found on disk
|
|
57
|
-
* @param supported - Version this build understands
|
|
58
|
-
* @returns A message naming both versions and the remedy
|
|
59
|
-
*/
|
|
60
|
-
export declare function describeNewerDocument(label: string, found: number, supported: number): string;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { rename } from 'node:fs/promises';
|
|
3
|
-
import { basename } from 'node:path';
|
|
4
|
-
import { pathExists } from '../utils/fs.js';
|
|
5
|
-
import { createSiblingLockPath, withFileLock } from './file-lock.js';
|
|
6
|
-
/** Runs an operation while holding the sidecar lock for a FireForge state file. */
|
|
7
|
-
export async function withStateFileLock(statePath, operation) {
|
|
8
|
-
return withFileLock(createSiblingLockPath(statePath, '.fireforge-state.lock'), operation, {
|
|
9
|
-
onTimeoutMessage: `Timed out waiting to update FireForge state at ${statePath}. ` +
|
|
10
|
-
'If no other fireforge process is running, remove the stale lock directory and retry.',
|
|
11
|
-
onStaleLockMessage: (ageMs) => `Removing stale FireForge state lock for ${basename(statePath)} ` +
|
|
12
|
-
`(age: ${Math.round(ageMs / 1000)}s). A previous fireforge process may have crashed.`,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* A filesystem-safe, sortable timestamp: `2026-08-28T14-32-05-123Z`.
|
|
17
|
-
*
|
|
18
|
-
* Colons are not portable in filenames (Windows rejects them outright), so
|
|
19
|
-
* the ISO form is punctuated with dashes only. Lexical order still equals
|
|
20
|
-
* chronological order, which is what run-log pruning relies on.
|
|
21
|
-
*
|
|
22
|
-
* @param now - Instant to render
|
|
23
|
-
* @returns The ISO-8601 form with `:` and `.` replaced by `-`
|
|
24
|
-
*/
|
|
25
|
-
export function fileSafeTimestamp(now) {
|
|
26
|
-
return now.toISOString().replace(/[:.]/g, '-');
|
|
27
|
-
}
|
|
28
|
-
/** Renames a state file out of the way while preserving it for later inspection. */
|
|
29
|
-
export async function quarantineStateFile(statePath, reason = 'corrupt') {
|
|
30
|
-
if (!(await pathExists(statePath))) {
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
const timestamp = fileSafeTimestamp(new Date());
|
|
34
|
-
const quarantinedPath = `${statePath}.${reason}-${timestamp}`;
|
|
35
|
-
await rename(statePath, quarantinedPath);
|
|
36
|
-
return basename(quarantinedPath);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Classifies a persisted document's `version`/`schemaVersion` field.
|
|
40
|
-
*
|
|
41
|
-
* @param raw - The parsed document
|
|
42
|
-
* @param field - Version field name, e.g. `schemaVersion`
|
|
43
|
-
* @param supported - Version this build writes and understands
|
|
44
|
-
* @returns Whether the document is current, older, newer, or malformed
|
|
45
|
-
*/
|
|
46
|
-
export function checkDocumentVersion(raw, field, supported) {
|
|
47
|
-
if (typeof raw !== 'object' || raw === null)
|
|
48
|
-
return { kind: 'malformed' };
|
|
49
|
-
const found = raw[field];
|
|
50
|
-
if (typeof found !== 'number' || !Number.isInteger(found) || found < 1) {
|
|
51
|
-
return { kind: 'malformed' };
|
|
52
|
-
}
|
|
53
|
-
if (found > supported)
|
|
54
|
-
return { kind: 'newer', found };
|
|
55
|
-
if (found < supported)
|
|
56
|
-
return { kind: 'older', found };
|
|
57
|
-
return { kind: 'current' };
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* The refusal shown for a document this build is too old to read.
|
|
61
|
-
*
|
|
62
|
-
* @param label - Operator-facing document name, e.g. `tree marker`
|
|
63
|
-
* @param found - Version found on disk
|
|
64
|
-
* @param supported - Version this build understands
|
|
65
|
-
* @returns A message naming both versions and the remedy
|
|
66
|
-
*/
|
|
67
|
-
export function describeNewerDocument(label, found, supported) {
|
|
68
|
-
return (`the ${label} was written by a newer FireForge (schema version ${found}; ` +
|
|
69
|
-
`this build understands ${supported}). Upgrade FireForge to read it — the file is ` +
|
|
70
|
-
'not damaged, so do not delete it.');
|
|
71
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Binary-aware drift classification for patch-owned files.
|
|
3
|
-
*
|
|
4
|
-
* The text classifier compares utf-8 decoded content against
|
|
5
|
-
* `computePatchedContent`, which cannot apply `GIT binary patch` bodies, so
|
|
6
|
-
* a binary file exported into a patch classifies as `patch-owned-drift`
|
|
7
|
-
* forever, keeping the engine-clean gate permanently red with nothing
|
|
8
|
-
* actually un-durable. A `GIT binary patch` section does carry the ground
|
|
9
|
-
* truth: `git diff --binary` always records full blob hashes on the section's
|
|
10
|
-
* `index <old>..<new>` line. Comparing the live file's `git hash-object`
|
|
11
|
-
* against the last owning section's new-side hash settles the classification
|
|
12
|
-
* exactly. Bodies without a usable hash (hand-written diffs) classify as
|
|
13
|
-
* `binary-unsupported`: an honest "cannot compare" instead of a false "not
|
|
14
|
-
* durable".
|
|
15
|
-
*
|
|
16
|
-
* That hash is trusted only when the section carries a replayable payload
|
|
17
|
-
* (`hasBinaryDelta`). A `Binary files … differ` stub carries a correct index
|
|
18
|
-
* line too, so hashing against it reports `patch-backed` for a body that
|
|
19
|
-
* cannot rebuild the file at all, which is the dishonesty this module
|
|
20
|
-
* exists to avoid. Such a body is `binary-unsupported` here, and an error
|
|
21
|
-
* from the `binary-body-not-reconstructable` queue lint.
|
|
22
|
-
*
|
|
23
|
-
* Lives in its own module (not `status-classify.ts`) so the classifier stays
|
|
24
|
-
* within the per-file line budget and this module never has to import it
|
|
25
|
-
* back: the dependency edge points one way, which keeps dpdm clean.
|
|
26
|
-
*/
|
|
27
|
-
import type { PatchedContentContext } from './patch-apply.js';
|
|
28
|
-
/** Batched patch lookup, injected by callers that classify many files. */
|
|
29
|
-
export type AffectingPatchLookup = Pick<PatchedContentContext, 'getAffectingPatches' | 'readPatchBody'> & Partial<Pick<PatchedContentContext, 'liveBlobHash'>>;
|
|
30
|
-
/**
|
|
31
|
-
* Classification result for a binary comparison. Structurally assignable
|
|
32
|
-
* to `ClassifiedFile` without importing it (which would create a cycle
|
|
33
|
-
* with `status-classify.ts`).
|
|
34
|
-
*/
|
|
35
|
-
export interface BinaryClassifiedFile {
|
|
36
|
-
status: string;
|
|
37
|
-
file: string;
|
|
38
|
-
classification: 'patch-backed' | 'furnace' | 'patch-owned-drift' | 'binary-unsupported';
|
|
39
|
-
owner: string;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Classifies a single-owner file whose comparison is binary. Returns
|
|
43
|
-
* `null` when the comparison is not binary (the live file is text and,
|
|
44
|
-
* for deletions, the owning section is text), so the caller falls
|
|
45
|
-
* through to the existing utf-8 content comparison unchanged.
|
|
46
|
-
*
|
|
47
|
-
* @param args.fileMissing - True when the porcelain status reports the
|
|
48
|
-
* file deleted (there are no live bytes to probe or hash).
|
|
49
|
-
*/
|
|
50
|
-
export declare function classifyBinaryOwnedFile(args: {
|
|
51
|
-
entry: {
|
|
52
|
-
status: string;
|
|
53
|
-
file: string;
|
|
54
|
-
};
|
|
55
|
-
engineDir: string;
|
|
56
|
-
patchesDir: string;
|
|
57
|
-
matchClassification: 'patch-backed' | 'furnace';
|
|
58
|
-
owner: string;
|
|
59
|
-
fileMissing?: boolean;
|
|
60
|
-
/** Batched lookup. When absent, falls back to per-file manifest queries. */
|
|
61
|
-
lookup?: AffectingPatchLookup;
|
|
62
|
-
}): Promise<BinaryClassifiedFile | null>;
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Binary-aware drift classification for patch-owned files.
|
|
4
|
-
*
|
|
5
|
-
* The text classifier compares utf-8 decoded content against
|
|
6
|
-
* `computePatchedContent`, which cannot apply `GIT binary patch` bodies, so
|
|
7
|
-
* a binary file exported into a patch classifies as `patch-owned-drift`
|
|
8
|
-
* forever, keeping the engine-clean gate permanently red with nothing
|
|
9
|
-
* actually un-durable. A `GIT binary patch` section does carry the ground
|
|
10
|
-
* truth: `git diff --binary` always records full blob hashes on the section's
|
|
11
|
-
* `index <old>..<new>` line. Comparing the live file's `git hash-object`
|
|
12
|
-
* against the last owning section's new-side hash settles the classification
|
|
13
|
-
* exactly. Bodies without a usable hash (hand-written diffs) classify as
|
|
14
|
-
* `binary-unsupported`: an honest "cannot compare" instead of a false "not
|
|
15
|
-
* durable".
|
|
16
|
-
*
|
|
17
|
-
* That hash is trusted only when the section carries a replayable payload
|
|
18
|
-
* (`hasBinaryDelta`). A `Binary files … differ` stub carries a correct index
|
|
19
|
-
* line too, so hashing against it reports `patch-backed` for a body that
|
|
20
|
-
* cannot rebuild the file at all, which is the dishonesty this module
|
|
21
|
-
* exists to avoid. Such a body is `binary-unsupported` here, and an error
|
|
22
|
-
* from the `binary-body-not-reconstructable` queue lint.
|
|
23
|
-
*
|
|
24
|
-
* Lives in its own module (not `status-classify.ts`) so the classifier stays
|
|
25
|
-
* within the per-file line budget and this module never has to import it
|
|
26
|
-
* back: the dependency edge points one way, which keeps dpdm clean.
|
|
27
|
-
*/
|
|
28
|
-
import { join } from 'node:path';
|
|
29
|
-
import { toError } from '../utils/errors.js';
|
|
30
|
-
import { readText } from '../utils/fs.js';
|
|
31
|
-
import { verbose } from '../utils/logger.js';
|
|
32
|
-
import { hashObjectBatch, isBinaryFile } from './git-file-ops.js';
|
|
33
|
-
import { findPatchesAffectingFile } from './patch-manifest.js';
|
|
34
|
-
import { parseDiffSections } from './patch-parse.js';
|
|
35
|
-
/** Finds the LAST diff section affecting `file` across the owning patches, in queue order. */
|
|
36
|
-
async function findLastAffectingSection(patchesDir, file, lookup) {
|
|
37
|
-
// The lookup shares one manifest load + memoized body reads across the
|
|
38
|
-
// whole classification batch. The fallback keeps single-file callers
|
|
39
|
-
// (and existing direct tests) working without a context.
|
|
40
|
-
const patches = lookup !== undefined
|
|
41
|
-
? lookup.getAffectingPatches(file)
|
|
42
|
-
: (await findPatchesAffectingFile(patchesDir, file)).map(({ patch }) => patch);
|
|
43
|
-
let last;
|
|
44
|
-
for (const patch of patches) {
|
|
45
|
-
const body = lookup !== undefined ? await lookup.readPatchBody(patch) : await readText(patch.path);
|
|
46
|
-
for (const section of parseDiffSections(body)) {
|
|
47
|
-
if (section.targetPath === file || section.sourcePath === file) {
|
|
48
|
-
last = section;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return last;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Classifies a single-owner file whose comparison is binary. Returns
|
|
56
|
-
* `null` when the comparison is not binary (the live file is text and,
|
|
57
|
-
* for deletions, the owning section is text), so the caller falls
|
|
58
|
-
* through to the existing utf-8 content comparison unchanged.
|
|
59
|
-
*
|
|
60
|
-
* @param args.fileMissing - True when the porcelain status reports the
|
|
61
|
-
* file deleted (there are no live bytes to probe or hash).
|
|
62
|
-
*/
|
|
63
|
-
export async function classifyBinaryOwnedFile(args) {
|
|
64
|
-
const { entry, engineDir, patchesDir, matchClassification, owner } = args;
|
|
65
|
-
const fileMissing = args.fileMissing === true;
|
|
66
|
-
const unsupported = () => ({
|
|
67
|
-
...entry,
|
|
68
|
-
classification: 'binary-unsupported',
|
|
69
|
-
owner,
|
|
70
|
-
});
|
|
71
|
-
// Until the comparison is known to be binary, every failure defers to
|
|
72
|
-
// the existing text path (`return null`). Classifying a text file as
|
|
73
|
-
// `binary-unsupported` because a probe failed would hide real drift.
|
|
74
|
-
let section;
|
|
75
|
-
try {
|
|
76
|
-
if (!fileMissing) {
|
|
77
|
-
const liveBinary = await isBinaryFile(engineDir, entry.file);
|
|
78
|
-
if (!liveBinary)
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
section = await findLastAffectingSection(patchesDir, entry.file, args.lookup);
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
if (fileMissing)
|
|
85
|
-
return null;
|
|
86
|
-
verbose(`Classifying ${entry.file} as binary-unsupported because the binary probe failed: ${toError(error).message}`);
|
|
87
|
-
return unsupported();
|
|
88
|
-
}
|
|
89
|
-
try {
|
|
90
|
-
if (section === undefined) {
|
|
91
|
-
// Claimed in filesAffected but no diff section touches the file.
|
|
92
|
-
// A missing file keeps the existing deletion logic. A live binary
|
|
93
|
-
// has nothing recorded to compare against.
|
|
94
|
-
return fileMissing ? null : unsupported();
|
|
95
|
-
}
|
|
96
|
-
if (!section.isBinary) {
|
|
97
|
-
// Text section: deletions settle fine through the text path. A
|
|
98
|
-
// live binary against a text body has no comparable recording.
|
|
99
|
-
return fileMissing ? null : unsupported();
|
|
100
|
-
}
|
|
101
|
-
if (section.isDeletedFile) {
|
|
102
|
-
return {
|
|
103
|
-
...entry,
|
|
104
|
-
classification: fileMissing ? matchClassification : 'patch-owned-drift',
|
|
105
|
-
owner,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
if (fileMissing) {
|
|
109
|
-
// The last binary section expects the file to exist.
|
|
110
|
-
return { ...entry, classification: 'patch-owned-drift', owner };
|
|
111
|
-
}
|
|
112
|
-
if (section.hasBinaryDelta && section.indexNewHash !== undefined) {
|
|
113
|
-
const fullPath = join(engineDir, entry.file);
|
|
114
|
-
const live = args.lookup?.liveBlobHash !== undefined
|
|
115
|
-
? await args.lookup.liveBlobHash(fullPath)
|
|
116
|
-
: (await hashObjectBatch(engineDir, [fullPath])).get(fullPath);
|
|
117
|
-
if (live !== undefined) {
|
|
118
|
-
// Prefix-compare: recorded hashes may be abbreviated (≥7 chars).
|
|
119
|
-
const matches = live.startsWith(section.indexNewHash) || section.indexNewHash.startsWith(live);
|
|
120
|
-
return {
|
|
121
|
-
...entry,
|
|
122
|
-
classification: matches ? matchClassification : 'patch-owned-drift',
|
|
123
|
-
owner,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return unsupported();
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
verbose(`Classifying ${entry.file} as binary-unsupported because the binary comparison failed: ${toError(error).message}`);
|
|
131
|
-
return unsupported();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Status classifier: partitions engine file changes into
|
|
3
|
-
* patch-backed / unmanaged / branding / furnace / conflict buckets.
|
|
4
|
-
*
|
|
5
|
-
* Extracted from `src/commands/status.ts` so that command file stays
|
|
6
|
-
* under the per-file line budget as the number of buckets grows.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Classification buckets for engine file changes:
|
|
10
|
-
* - `patch-backed`: content matches the expected post-patch state. Normal
|
|
11
|
-
* after `fireforge import`.
|
|
12
|
-
* - `patch-owned-drift`: the file is claimed by exactly one patch, but the
|
|
13
|
-
* live engine content no longer matches that patch's expected post-apply
|
|
14
|
-
* content. This includes furnace-prefixed paths: a path can be both
|
|
15
|
-
* Furnace-managed and patch-claimed (export a deployed component, then
|
|
16
|
-
* edit the workspace source and `furnace deploy` again, and the deployed
|
|
17
|
-
* copy now has content the patch body lacks). Checking the furnace
|
|
18
|
-
* prefix first would bucket such files as `furnace` and report the stale
|
|
19
|
-
* patch as owned.
|
|
20
|
-
* - `unmanaged`: edits not explained by any patch or tool. Local drift to
|
|
21
|
-
* export or discard.
|
|
22
|
-
* - `branding`: files under tool-managed branding paths, written by
|
|
23
|
-
* FireForge's branding pipeline.
|
|
24
|
-
* - `furnace`: files under Furnace-managed component prefixes. When exactly
|
|
25
|
-
* one patch also claims the path, this bucket asserts the live content
|
|
26
|
-
* matches that patch's expected post-apply content. A mismatch is
|
|
27
|
-
* reported as `patch-owned-drift` instead (see above).
|
|
28
|
-
* - `conflict`: the file is claimed by two or more patches in
|
|
29
|
-
* `patches.json`. The human `--ownership` mode surfaces this bucket as
|
|
30
|
-
* `CONFLICT`. Carrying the classification through the JSON pipeline lets
|
|
31
|
-
* machine consumers detect the same ownership breakage rather than seeing
|
|
32
|
-
* it rolled into `unmanaged` as routine local drift.
|
|
33
|
-
* - `binary-unsupported`: the file's comparison is binary and the owning
|
|
34
|
-
* patch body records no usable blob hash to compare against. It reports an
|
|
35
|
-
* honest "binary, comparison unsupported" instead of a permanent false
|
|
36
|
-
* `patch-owned-drift`. Not in the default `--check` fail set. Opt in
|
|
37
|
-
* with `--fail-on binary-unsupported`.
|
|
38
|
-
*/
|
|
39
|
-
export type FileClassification = 'patch-backed' | 'patch-owned-drift' | 'unmanaged' | 'branding' | 'furnace' | 'conflict' | 'binary-unsupported';
|
|
40
|
-
export interface StatusFile {
|
|
41
|
-
status: string;
|
|
42
|
-
file: string;
|
|
43
|
-
}
|
|
44
|
-
export interface ClassifiedFile extends StatusFile {
|
|
45
|
-
classification: FileClassification;
|
|
46
|
-
/**
|
|
47
|
-
* Names of patch files that claim this path in `patches.json`.
|
|
48
|
-
* Populated only when `classification === 'conflict'`. Single-claim
|
|
49
|
-
* patch-backed entries don't need to expose their owner because the
|
|
50
|
-
* single claim is fully captured by the classification itself.
|
|
51
|
-
*/
|
|
52
|
-
claimedBy?: string[];
|
|
53
|
-
/**
|
|
54
|
-
* Owning patch filename when exactly one patch claims this path
|
|
55
|
-
* (patch-backed, patch-owned-drift, and single-owner furnace entries).
|
|
56
|
-
* Unset for unowned, branding-generated, unowned-furnace, and conflict
|
|
57
|
-
* entries. Conflicts carry `claimedBy` instead. Exposed through
|
|
58
|
-
* `status --json` as the `patch` field.
|
|
59
|
-
*/
|
|
60
|
-
owner?: string;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Builds the file → owning-patch-filenames multimap from manifest rows.
|
|
64
|
-
* Single source of truth for cross-patch claim detection: status
|
|
65
|
-
* classification, verify's cross-claim check, and the ownership table all
|
|
66
|
-
* consume this builder, so they cannot disagree about what "claimed" means.
|
|
67
|
-
*/
|
|
68
|
-
export declare function buildPatchClaims(manifestPatches: ReadonlyArray<{
|
|
69
|
-
filename: string;
|
|
70
|
-
filesAffected: string[];
|
|
71
|
-
}>): Map<string, string[]>;
|
|
72
|
-
/**
|
|
73
|
-
* Reduces a two-character porcelain XY status to its primary code.
|
|
74
|
-
* Single source of truth, and status-output.ts renders from the same logic.
|
|
75
|
-
*/
|
|
76
|
-
export declare function getPrimaryStatusCode(status: string): string;
|
|
77
|
-
/**
|
|
78
|
-
* True for the branding paths whose content FireForge generates itself
|
|
79
|
-
* (configure.sh, brand.properties/ftl, browser/moz.configure). Unlike the
|
|
80
|
-
* broader branding-root test, a brand-new unowned file under the branding
|
|
81
|
-
* directory is not generated: it is a patch candidate and must stay
|
|
82
|
-
* visible as unmanaged (the Assets.car precedent).
|
|
83
|
-
*/
|
|
84
|
-
export declare function isGeneratedBrandingPath(file: string, binaryName: string): boolean;
|
|
85
|
-
/**
|
|
86
|
-
* Classifies files into patch-backed, unmanaged, branding, furnace, or
|
|
87
|
-
* conflict buckets.
|
|
88
|
-
*
|
|
89
|
-
* Tracks patch ownership as a `Map<file, patchFilename[]>` rather than a
|
|
90
|
-
* plain `Set<file>` so the classifier can surface cross-patch ownership
|
|
91
|
-
* conflicts the same way the human `--ownership` mode does. With only a Set,
|
|
92
|
-
* `status --json` reports `classification: "unmanaged"` on files that
|
|
93
|
-
* `--ownership` correctly flags as `CONFLICT`, which lies to machine
|
|
94
|
-
* consumers about the nature of the drift.
|
|
95
|
-
*/
|
|
96
|
-
export declare function classifyFiles(files: StatusFile[], engineDir: string, patchesDir: string, binaryName: string, furnacePrefixes: Set<string>): Promise<ClassifiedFile[]>;
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Status classifier: partitions engine file changes into
|
|
4
|
-
* patch-backed / unmanaged / branding / furnace / conflict buckets.
|
|
5
|
-
*
|
|
6
|
-
* Extracted from `src/commands/status.ts` so that command file stays
|
|
7
|
-
* under the per-file line budget as the number of buckets grows.
|
|
8
|
-
*/
|
|
9
|
-
import { join } from 'node:path';
|
|
10
|
-
import { mapWithConcurrency } from '../utils/concurrency.js';
|
|
11
|
-
import { toError } from '../utils/errors.js';
|
|
12
|
-
import { readText } from '../utils/fs.js';
|
|
13
|
-
import { verbose } from '../utils/logger.js';
|
|
14
|
-
import { normalizePathSlashes } from '../utils/paths.js';
|
|
15
|
-
import { isBrandingManagedPath } from './branding.js';
|
|
16
|
-
import { isBinaryFile } from './git-file-ops.js';
|
|
17
|
-
import { createPatchedContentContext } from './patch-apply.js';
|
|
18
|
-
import { classifyBinaryOwnedFile } from './status-binary.js';
|
|
19
|
-
/**
|
|
20
|
-
* Builds the file → owning-patch-filenames multimap from manifest rows.
|
|
21
|
-
* Single source of truth for cross-patch claim detection: status
|
|
22
|
-
* classification, verify's cross-claim check, and the ownership table all
|
|
23
|
-
* consume this builder, so they cannot disagree about what "claimed" means.
|
|
24
|
-
*/
|
|
25
|
-
export function buildPatchClaims(manifestPatches) {
|
|
26
|
-
const ownersByPath = new Map();
|
|
27
|
-
for (const patch of manifestPatches) {
|
|
28
|
-
for (const file of patch.filesAffected) {
|
|
29
|
-
const existing = ownersByPath.get(file) ?? [];
|
|
30
|
-
existing.push(patch.filename);
|
|
31
|
-
ownersByPath.set(file, existing);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return ownersByPath;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Reduces a two-character porcelain XY status to its primary code.
|
|
38
|
-
* Single source of truth, and status-output.ts renders from the same logic.
|
|
39
|
-
*/
|
|
40
|
-
export function getPrimaryStatusCode(status) {
|
|
41
|
-
if (status.includes('?'))
|
|
42
|
-
return '?';
|
|
43
|
-
if (status.includes('!'))
|
|
44
|
-
return '!';
|
|
45
|
-
for (const code of status) {
|
|
46
|
-
if (code !== ' ') {
|
|
47
|
-
return code;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return status;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* True for the branding paths whose content FireForge generates itself
|
|
54
|
-
* (configure.sh, brand.properties/ftl, browser/moz.configure). Unlike the
|
|
55
|
-
* broader branding-root test, a brand-new unowned file under the branding
|
|
56
|
-
* directory is not generated: it is a patch candidate and must stay
|
|
57
|
-
* visible as unmanaged (the Assets.car precedent).
|
|
58
|
-
*/
|
|
59
|
-
export function isGeneratedBrandingPath(file, binaryName) {
|
|
60
|
-
const normalized = normalizePathSlashes(file);
|
|
61
|
-
const brandingRoot = `browser/branding/${binaryName}`;
|
|
62
|
-
return (normalized === 'browser/moz.configure' ||
|
|
63
|
-
normalized === `${brandingRoot}/configure.sh` ||
|
|
64
|
-
normalized === `${brandingRoot}/locales/en-US/brand.properties` ||
|
|
65
|
-
normalized === `${brandingRoot}/locales/en-US/brand.ftl`);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Compares a single-owner file's live engine content against its owning
|
|
69
|
-
* patch's expected post-apply content. `matchClassification` is what a
|
|
70
|
-
* clean match reports: `patch-backed` for ordinary patch-claimed paths,
|
|
71
|
-
* `furnace` for furnace-prefixed paths so healthy deployed components
|
|
72
|
-
* keep landing in the pinned furnace bucket. Any mismatch (including a
|
|
73
|
-
* deletion the patch does not expect, or a failed comparison) reports
|
|
74
|
-
* `patch-owned-drift`.
|
|
75
|
-
*/
|
|
76
|
-
async function classifySingleOwnerFile(entry, engineDir, patchesDir, matchClassification, owner, ctx) {
|
|
77
|
-
// Binary comparisons cannot go through the utf-8 content path below.
|
|
78
|
-
// Binary patch bodies parse to zero hunks, so the patched-content
|
|
79
|
-
// computation returned HEAD content unchanged and the comparison
|
|
80
|
-
// reported `patch-owned-drift` forever. Settle by blob hash,
|
|
81
|
-
// or classify explicitly as `binary-unsupported` when no hash exists.
|
|
82
|
-
const binaryResult = await classifyBinaryOwnedFile({
|
|
83
|
-
entry,
|
|
84
|
-
engineDir,
|
|
85
|
-
patchesDir,
|
|
86
|
-
matchClassification,
|
|
87
|
-
owner,
|
|
88
|
-
fileMissing: getPrimaryStatusCode(entry.status) === 'D',
|
|
89
|
-
lookup: ctx,
|
|
90
|
-
});
|
|
91
|
-
if (binaryResult !== null) {
|
|
92
|
-
return binaryResult;
|
|
93
|
-
}
|
|
94
|
-
if (getPrimaryStatusCode(entry.status) === 'D') {
|
|
95
|
-
// Deleted file: content matches only if the patch expects deletion
|
|
96
|
-
const expected = await ctx.computePatched(entry.file);
|
|
97
|
-
return {
|
|
98
|
-
...entry,
|
|
99
|
-
classification: expected === null ? matchClassification : 'patch-owned-drift',
|
|
100
|
-
owner,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
// File exists on disk: compare actual vs expected
|
|
104
|
-
try {
|
|
105
|
-
const [expected, actual] = await Promise.all([
|
|
106
|
-
ctx.computePatched(entry.file),
|
|
107
|
-
readText(join(engineDir, entry.file)),
|
|
108
|
-
]);
|
|
109
|
-
return {
|
|
110
|
-
...entry,
|
|
111
|
-
classification: actual === expected ? matchClassification : 'patch-owned-drift',
|
|
112
|
-
owner,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
verbose(`Treating ${entry.file} as patch-owned drift because patch-backed classification failed: ${toError(error).message}`);
|
|
117
|
-
return { ...entry, classification: 'patch-owned-drift', owner };
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Classifies files into patch-backed, unmanaged, branding, furnace, or
|
|
122
|
-
* conflict buckets.
|
|
123
|
-
*
|
|
124
|
-
* Tracks patch ownership as a `Map<file, patchFilename[]>` rather than a
|
|
125
|
-
* plain `Set<file>` so the classifier can surface cross-patch ownership
|
|
126
|
-
* conflicts the same way the human `--ownership` mode does. With only a Set,
|
|
127
|
-
* `status --json` reports `classification: "unmanaged"` on files that
|
|
128
|
-
* `--ownership` correctly flags as `CONFLICT`, which lies to machine
|
|
129
|
-
* consumers about the nature of the drift.
|
|
130
|
-
*/
|
|
131
|
-
export async function classifyFiles(files, engineDir, patchesDir, binaryName, furnacePrefixes) {
|
|
132
|
-
// One manifest load + patch discovery + memoized body reads for the
|
|
133
|
-
// whole batch. The previous per-file computation re-ran all three for
|
|
134
|
-
// every dirty file (O(dirtyFiles × patches) redundant IO on a broad
|
|
135
|
-
// engine edit session).
|
|
136
|
-
const ctx = await createPatchedContentContext(patchesDir, engineDir);
|
|
137
|
-
// Build a multimap from file path → list of claiming patch filenames so
|
|
138
|
-
// cross-patch ownership conflicts are detectable. A plain `Set<string>`
|
|
139
|
-
// captures only whether a path was claimed, not by whom, and collapses
|
|
140
|
-
// multi-owner files into the single-owner branch where the
|
|
141
|
-
// expected-vs-actual content comparison then routes them into `unmanaged`
|
|
142
|
-
// when the content matches neither owner's expectation.
|
|
143
|
-
const patchClaims = buildPatchClaims(ctx.manifestPatches);
|
|
144
|
-
await prefetchSingleOwnerContent(files, engineDir, patchClaims, ctx);
|
|
145
|
-
const deps = {
|
|
146
|
-
engineDir,
|
|
147
|
-
patchesDir,
|
|
148
|
-
binaryName,
|
|
149
|
-
furnacePrefixes,
|
|
150
|
-
patchClaims,
|
|
151
|
-
ctx,
|
|
152
|
-
};
|
|
153
|
-
// Bounded pool over per-file classification. Order preserved by the mapper. Per-file failures settle
|
|
154
|
-
// inside classifySingleOwnerFile's catch, so one bad file never rejects
|
|
155
|
-
// the batch.
|
|
156
|
-
return mapWithConcurrency(files, CLASSIFY_CONCURRENCY, (entry) => classifyEntry(entry, deps));
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Fetches, in two git processes, what the per-file comparison would
|
|
160
|
-
* otherwise spawn git for file by file: the HEAD content of every
|
|
161
|
-
* single-owner path (one `cat-file --batch`) and the live blob hash of every
|
|
162
|
-
* one that is binary on disk (one `hash-object` per ARG_MAX chunk). On a
|
|
163
|
-
* 1,600-file Firefox scan that was ~1,550 `git show` and `hash-object`
|
|
164
|
-
* spawns. Fetching for a path the classifier ends up routing elsewhere
|
|
165
|
-
* (a branding path, say) costs a few bytes, never a wrong answer.
|
|
166
|
-
*/
|
|
167
|
-
async function prefetchSingleOwnerContent(files, engineDir, patchClaims, ctx) {
|
|
168
|
-
const singleOwner = files.filter((entry) => patchClaims.get(entry.file)?.length === 1);
|
|
169
|
-
if (singleOwner.length === 0)
|
|
170
|
-
return;
|
|
171
|
-
await ctx.prefetchBase(singleOwner.map((entry) => entry.file));
|
|
172
|
-
const present = singleOwner.filter((entry) => getPrimaryStatusCode(entry.status) !== 'D');
|
|
173
|
-
const binary = await mapWithConcurrency(present, CLASSIFY_CONCURRENCY, async (entry) => {
|
|
174
|
-
try {
|
|
175
|
-
return (await isBinaryFile(engineDir, entry.file)) ? join(engineDir, entry.file) : undefined;
|
|
176
|
-
}
|
|
177
|
-
catch {
|
|
178
|
-
// The per-file path probes again and settles the failure itself.
|
|
179
|
-
return undefined;
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
await ctx.prefetchLiveBlobHashes(binary.filter((path) => path !== undefined));
|
|
183
|
-
}
|
|
184
|
-
/** Concurrency bound for per-file classification (matches import's guard). */
|
|
185
|
-
const CLASSIFY_CONCURRENCY = 8;
|
|
186
|
-
/** Classifies one status entry. Extracted so the pool worker stays flat. */
|
|
187
|
-
async function classifyEntry(entry, deps) {
|
|
188
|
-
const { engineDir, patchesDir, binaryName, furnacePrefixes, patchClaims, ctx } = deps;
|
|
189
|
-
const owners = patchClaims.get(entry.file);
|
|
190
|
-
const primaryCode = getPrimaryStatusCode(entry.status);
|
|
191
|
-
// Ownership is a structural invariant and takes precedence over the
|
|
192
|
-
// content-management bucket. Otherwise a branding/Furnace prefix hides a
|
|
193
|
-
// multi-patch claim from status --check/--json even though --ownership
|
|
194
|
-
// reports the same path as CONFLICT.
|
|
195
|
-
if (owners && owners.length >= 2) {
|
|
196
|
-
return {
|
|
197
|
-
...entry,
|
|
198
|
-
classification: 'conflict',
|
|
199
|
-
claimedBy: [...owners],
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
// Branding paths are tool-managed for generated edits, but a brand-new
|
|
203
|
-
// unowned branding asset must not disappear from `status --unmanaged`:
|
|
204
|
-
// classifying every branding path before checking ownership hides a new
|
|
205
|
-
// patch candidate (an Assets.car appearing under the active branding tree,
|
|
206
|
-
// for instance) as "branding" even though no patch claims it yet.
|
|
207
|
-
const isUnownedNewFile = owners === undefined && (primaryCode === '?' || primaryCode === 'A');
|
|
208
|
-
if (isBrandingManagedPath(entry.file, binaryName) &&
|
|
209
|
-
(!isUnownedNewFile || isGeneratedBrandingPath(entry.file, binaryName))) {
|
|
210
|
-
return { ...entry, classification: 'branding' };
|
|
211
|
-
}
|
|
212
|
-
// Furnace-managed component paths
|
|
213
|
-
if (furnacePrefixes.size > 0) {
|
|
214
|
-
let isFurnace = false;
|
|
215
|
-
for (const prefix of furnacePrefixes) {
|
|
216
|
-
if (entry.file.startsWith(prefix)) {
|
|
217
|
-
isFurnace = true;
|
|
218
|
-
break;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
if (isFurnace) {
|
|
222
|
-
// A furnace path claimed by exactly one patch gets the same
|
|
223
|
-
// expected-vs-actual comparison as any other single-owner path: after
|
|
224
|
-
// a `furnace deploy` of an edited component the deployed copy has
|
|
225
|
-
// content the owning patch's body lacks, and an unconditional
|
|
226
|
-
// short-circuit here would silently bucket that drift as `furnace`.
|
|
227
|
-
// Multi-owner and unowned furnace paths keep the short-circuit.
|
|
228
|
-
if (owners && owners.length === 1 && owners[0] !== undefined) {
|
|
229
|
-
return classifySingleOwnerFile(entry, engineDir, patchesDir, 'furnace', owners[0], ctx);
|
|
230
|
-
}
|
|
231
|
-
return { ...entry, classification: 'furnace' };
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
// Not in any patch → unmanaged
|
|
235
|
-
if (!owners) {
|
|
236
|
-
return { ...entry, classification: 'unmanaged' };
|
|
237
|
-
}
|
|
238
|
-
// File is claimed by exactly one patch: compare content.
|
|
239
|
-
const owner = owners[0];
|
|
240
|
-
if (owner === undefined) {
|
|
241
|
-
return { ...entry, classification: 'unmanaged' };
|
|
242
|
-
}
|
|
243
|
-
return classifySingleOwnerFile(entry, engineDir, patchesDir, 'patch-backed', owner, ctx);
|
|
244
|
-
}
|