@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,129 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Filesystem-based lock for serializing patch directory mutations.
|
|
4
|
-
*/
|
|
5
|
-
import { join } from 'node:path';
|
|
6
|
-
import { CommandError, FireForgeError } from '../errors/base.js';
|
|
7
|
-
import { PatchError } from '../errors/patch.js';
|
|
8
|
-
import { assert } from '../utils/assert.js';
|
|
9
|
-
import { toError } from '../utils/errors.js';
|
|
10
|
-
import { info } from '../utils/logger.js';
|
|
11
|
-
import { formatLockQueuePosition, readLockStatus, withFileLock } from './file-lock.js';
|
|
12
|
-
const PATCH_DIRECTORY_LOCK = '.fireforge-patches.lock';
|
|
13
|
-
/**
|
|
14
|
-
* Formats the periodic operator-facing waiting line printed while
|
|
15
|
-
* `--wait-lock` polls a contended patch directory lock. Mirrors the engine
|
|
16
|
-
* session lock's progress line so operators read one shape for both locks.
|
|
17
|
-
*/
|
|
18
|
-
function formatWaitProgressLine(waitedMs, timeoutMs, holder, queue) {
|
|
19
|
-
const progress = `${Math.round(waitedMs / 1000)}s of up to ${Math.round(timeoutMs / 1000)}s`;
|
|
20
|
-
const position = formatLockQueuePosition(queue);
|
|
21
|
-
if (holder === undefined) {
|
|
22
|
-
return `Waiting for the FireForge patch directory lock — ${progress}.${position}`;
|
|
23
|
-
}
|
|
24
|
-
const details = holder.metadata.length > 0 ? ` (${holder.metadata.join(', ')})` : '';
|
|
25
|
-
return `Waiting for the FireForge patch directory lock held by PID ${holder.pid}${details} — ${progress}.${position}`;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Asserts that this process is inside {@link withPatchDirectoryLock} for the
|
|
29
|
-
* given patches directory.
|
|
30
|
-
*
|
|
31
|
-
* The manifest mutators document "under the caller's lock" and are reached
|
|
32
|
-
* from six different command bodies, none of which the mutator can see. This
|
|
33
|
-
* turns that comment into a check at the point it matters: filename
|
|
34
|
-
* allocation and manifest read-modify-writes are only atomic while the lock
|
|
35
|
-
* is held, so an unlocked caller silently reintroduces the interleaving the
|
|
36
|
-
* lock exists to prevent.
|
|
37
|
-
*
|
|
38
|
-
* Fail-open on an unreadable owner record, on purpose: `withFileLock`
|
|
39
|
-
* treats writing that record as non-fatal, so a live holder can legitimately
|
|
40
|
-
* have no readable PID and asserting on its presence would fire on a lock we
|
|
41
|
-
* really do hold.
|
|
42
|
-
*
|
|
43
|
-
* @param patchesDir - The patches directory whose lock must be held
|
|
44
|
-
* @param context - What is about to be done, for the failure message
|
|
45
|
-
* @throws {@link InternalInvariantError} when the lock is not held by us.
|
|
46
|
-
*/
|
|
47
|
-
export async function assertPatchDirectoryLockHeld(patchesDir, context) {
|
|
48
|
-
const status = await readLockStatus(join(patchesDir, PATCH_DIRECTORY_LOCK));
|
|
49
|
-
assert(status.held, () => `patch directory lock is held before ${context}`);
|
|
50
|
-
assert(status.holder === undefined || status.holder.pid === process.pid, () => `patch directory lock is owned by this process before ${context} ` +
|
|
51
|
-
`(held by PID ${status.holder?.pid}, we are ${process.pid})`);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Runs a patch directory mutation while holding an exclusive filesystem lock.
|
|
55
|
-
* This serializes filename allocation and manifest writes across parallel exports.
|
|
56
|
-
*/
|
|
57
|
-
export async function withPatchDirectoryLock(patchesDir, operation, options = {}) {
|
|
58
|
-
const lockDir = join(patchesDir, PATCH_DIRECTORY_LOCK);
|
|
59
|
-
const { waitLockSeconds, command } = options;
|
|
60
|
-
// Tag whatever the body throws so the catch below can tell it apart from a
|
|
61
|
-
// lock-acquire/release failure. Narrowing by origin rather than by error
|
|
62
|
-
// shape is what "the rewrap is for lock I/O" actually means: an errno test
|
|
63
|
-
// would still reclassify an EACCES raised while the body writes a .patch
|
|
64
|
-
// file, and a class test cannot see a bare `new Error` from a body at all.
|
|
65
|
-
let bodyFailure;
|
|
66
|
-
let bodyThrew = false;
|
|
67
|
-
const trackedOperation = async () => {
|
|
68
|
-
try {
|
|
69
|
-
return await operation();
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
bodyThrew = true;
|
|
73
|
-
bodyFailure = error;
|
|
74
|
-
throw error;
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
return withFileLock(lockDir, trackedOperation, {
|
|
78
|
-
...(waitLockSeconds !== undefined
|
|
79
|
-
? {
|
|
80
|
-
timeoutMs: waitLockSeconds * 1000,
|
|
81
|
-
pollMs: 100,
|
|
82
|
-
pollMaxMs: 2000,
|
|
83
|
-
waitProgressMs: 5000,
|
|
84
|
-
onWaitProgress: ({ waitedMs, timeoutMs, holder, queue }) => {
|
|
85
|
-
info(formatWaitProgressLine(waitedMs, timeoutMs, holder, queue));
|
|
86
|
-
},
|
|
87
|
-
}
|
|
88
|
-
: {}),
|
|
89
|
-
...(command !== undefined
|
|
90
|
-
? { ownerMetadata: [`command=${command}`, `started=${new Date().toISOString()}`] }
|
|
91
|
-
: {}),
|
|
92
|
-
// Reason first, remedy second. The remedy is waiting, not deleting: bulk
|
|
93
|
-
// exports/re-exports legitimately hold this lock for minutes, and
|
|
94
|
-
// FireForge reaps genuinely stale locks on its own, and advice to
|
|
95
|
-
// `rm -rf` while a holder is alive destroys a live lock. The leading
|
|
96
|
-
// sentence is a message contract. Extend, do not reword. withFileLock
|
|
97
|
-
// appends the holder identification.
|
|
98
|
-
onTimeoutMessage: `Timed out waiting for another FireForge command mutating ${patchesDir}.\n` +
|
|
99
|
-
`Pass --wait-lock [seconds] to wait longer (bare --wait-lock waits up to 60 seconds). ` +
|
|
100
|
-
`FireForge removes genuinely stale locks automatically; only if no other fireforge ` +
|
|
101
|
-
`process is running and the timeout persists, remove the lock manually:\n rm -rf "${lockDir}"`,
|
|
102
|
-
onStaleLockMessage: (ageMs) => `Removing stale patch lock (age: ${Math.round(ageMs / 1000)}s). ` +
|
|
103
|
-
'A previous fireforge process may have crashed.',
|
|
104
|
-
}).catch((error) => {
|
|
105
|
-
// The body's own failures are never ours to reclassify. Rewrapping them
|
|
106
|
-
// reports an EACCES writing patches.json, a postcondition failure from
|
|
107
|
-
// renumberPatchesInManifest, or a plain TypeError from a FireForge bug
|
|
108
|
-
// as a "Patch Error" carrying three fixed remedies about Firefox-version
|
|
109
|
-
// compatibility and `fireforge reset`, none of which apply. Worse,
|
|
110
|
-
// src/cli.ts prints a stack only for non-FireForgeError throwables, so
|
|
111
|
-
// the rewrap moves real bugs into the branch that discards their stack.
|
|
112
|
-
if (bodyThrew && error === bodyFailure) {
|
|
113
|
-
throw error;
|
|
114
|
-
}
|
|
115
|
-
if (error instanceof FireForgeError) {
|
|
116
|
-
throw error;
|
|
117
|
-
}
|
|
118
|
-
// CommandError is the one class in src/errors/ that does not extend
|
|
119
|
-
// FireForgeError: it is the sentinel carrying an already-rendered exit
|
|
120
|
-
// code to the entrypoint. The `instanceof FireForgeError` guard above
|
|
121
|
-
// misses it, so without this the exit code was replaced by PATCH_ERROR.
|
|
122
|
-
if (error instanceof CommandError) {
|
|
123
|
-
throw error;
|
|
124
|
-
}
|
|
125
|
-
// What remains is a genuine failure to acquire or release the lock.
|
|
126
|
-
const cause = toError(error);
|
|
127
|
-
throw new PatchError(cause.message, undefined, cause);
|
|
128
|
-
});
|
|
129
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Manifest consistency checks and rebuild/recovery operations.
|
|
3
|
-
*/
|
|
4
|
-
import type { PatchesManifest } from '../types/commands/index.js';
|
|
5
|
-
import type { PatchDirectoryLockOptions } from './patch-lock.js';
|
|
6
|
-
/** Consistency issue codes for manifest validation. */
|
|
7
|
-
export interface PatchManifestConsistencyIssue {
|
|
8
|
-
code: 'manifest-invalid' | 'manifest-missing' | 'missing-patch-file' | 'untracked-patch-file' | 'files-affected-mismatch' | 'duplicate-manifest-entry';
|
|
9
|
-
filename: string;
|
|
10
|
-
message: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Validates that patches.json and the patch directory describe the same patch set.
|
|
14
|
-
* @param patchesDir - Path to the patches directory
|
|
15
|
-
* @returns Consistency issues between manifest metadata and on-disk patch files
|
|
16
|
-
*/
|
|
17
|
-
export declare function validatePatchesManifestConsistency(patchesDir: string): Promise<PatchManifestConsistencyIssue[]>;
|
|
18
|
-
/**
|
|
19
|
-
* Recovery hint for an unrepaired consistency failure.
|
|
20
|
-
*
|
|
21
|
-
* Drift that is only in `filesAffected` is a derived value disagreeing with
|
|
22
|
-
* the diff it describes, and the narrow repair fixes exactly that. Naming the
|
|
23
|
-
* whole-manifest rebuild for it puts
|
|
24
|
-
* an operator one keystroke from rewriting every row in the manifest to
|
|
25
|
-
* correct one list.
|
|
26
|
-
*/
|
|
27
|
-
export declare function recommendManifestRepair(issues: readonly PatchManifestConsistencyIssue[]): string;
|
|
28
|
-
/**
|
|
29
|
-
* Summary of a {@link rebuildPatchesManifest} run. `recoveredFilenames`
|
|
30
|
-
* lists patches whose manifest entry was reconstructed from filename,
|
|
31
|
-
* mtime, and diff alone (no pre-existing manifest entry to preserve).
|
|
32
|
-
* These entries carry generic descriptions and mtime-based
|
|
33
|
-
* timestamps. Callers like `doctor --repair-patches-manifest` surface
|
|
34
|
-
* a per-patch review warning so operators know which metadata was
|
|
35
|
-
* invented vs which was restored.
|
|
36
|
-
*/
|
|
37
|
-
export interface RebuildPatchesManifestResult {
|
|
38
|
-
/**
|
|
39
|
-
* Rebuilt manifest, ready to be re-applied by callers. Persisted unless
|
|
40
|
-
* the run was a dry run. See {@link RebuildPatchesManifestResult.written}.
|
|
41
|
-
*/
|
|
42
|
-
manifest: PatchesManifest;
|
|
43
|
-
/**
|
|
44
|
-
* Filenames whose manifest entry had no pre-existing metadata to
|
|
45
|
-
* preserve. Every descriptive field on these entries is inferred.
|
|
46
|
-
*/
|
|
47
|
-
recoveredFilenames: string[];
|
|
48
|
-
/**
|
|
49
|
-
* Filenames that had a manifest entry but no patch file on disk, so the
|
|
50
|
-
* row was dropped. Discarding these silently is how a manifest quietly
|
|
51
|
-
* loses rows an operator still expected to be there.
|
|
52
|
-
*/
|
|
53
|
-
droppedFilenames: string[];
|
|
54
|
-
/** False when the run was a dry run and patches.json was left untouched. */
|
|
55
|
-
written: boolean;
|
|
56
|
-
}
|
|
57
|
-
/** Options for {@link rebuildPatchesManifest}. */
|
|
58
|
-
export interface RebuildPatchesManifestOptions extends PatchDirectoryLockOptions {
|
|
59
|
-
/**
|
|
60
|
-
* Proceed even when patches.json exists but cannot be parsed, in which case
|
|
61
|
-
* there is no existing metadata to preserve and every descriptive field on
|
|
62
|
-
* every entry is invented. Refused without this flag. See
|
|
63
|
-
* {@link rebuildPatchesManifest}.
|
|
64
|
-
*/
|
|
65
|
-
allowMetadataLoss?: boolean;
|
|
66
|
-
/** Compute the rebuilt manifest without writing it. */
|
|
67
|
-
dryRun?: boolean;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Rebuilds patches.json from the patch files currently present on disk.
|
|
71
|
-
*
|
|
72
|
-
* This is a merge, not a from-scratch rebuild: only `filesAffected` and
|
|
73
|
-
* `order` are recomputed from the patch files, and every other field on an
|
|
74
|
-
* existing entry is carried forward untouched. Entries with no pre-existing
|
|
75
|
-
* metadata are recovered from filename structure, patch contents, and file
|
|
76
|
-
* mtimes.
|
|
77
|
-
*
|
|
78
|
-
* Refuses when patches.json exists but cannot be parsed, because that is the
|
|
79
|
-
* one case where nothing can be carried forward and the "merge" silently
|
|
80
|
-
* becomes a whole-manifest reinvention. Pass `allowMetadataLoss` to accept it.
|
|
81
|
-
*
|
|
82
|
-
* @param patchesDir - Path to the patches directory
|
|
83
|
-
* @param fallbackSourceEsrVersion - source version to use for recovered entries that carry none
|
|
84
|
-
* @param options - Lock options plus `allowMetadataLoss` / `dryRun`
|
|
85
|
-
* @returns {@link RebuildPatchesManifestResult}: the rebuilt manifest, the
|
|
86
|
-
* filenames that were reconstructed from generic defaults, and the rows
|
|
87
|
-
* dropped because their patch file is gone.
|
|
88
|
-
*/
|
|
89
|
-
export declare function rebuildPatchesManifest(patchesDir: string, fallbackSourceEsrVersion: string, options?: RebuildPatchesManifestOptions): Promise<RebuildPatchesManifestResult>;
|
|
90
|
-
/**
|
|
91
|
-
* Canonical form of a `filesAffected` list: deduplicated and sorted, so a
|
|
92
|
-
* comparison between a declared list and one extracted from a patch body is
|
|
93
|
-
* about membership rather than ordering.
|
|
94
|
-
*/
|
|
95
|
-
export declare function normalizeAffectedFiles(files: string[]): string[];
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Manifest consistency checks and rebuild/recovery operations.
|
|
4
|
-
*/
|
|
5
|
-
import { stat } from 'node:fs/promises';
|
|
6
|
-
import { GeneralError } from '../errors/base.js';
|
|
7
|
-
import { discoverPatches, getAllTargetFilesFromPatch } from './patch-files.js';
|
|
8
|
-
import { withPatchDirectoryLock } from './patch-lock.js';
|
|
9
|
-
import { loadPatchesManifestState, PATCHES_MANIFEST, savePatchesManifest, } from './patch-manifest-io.js';
|
|
10
|
-
import { inferPatchMetadataFromFilename } from './patch-manifest-validate.js';
|
|
11
|
-
import { manifestWithRetiredSlots } from './patch-retired.js';
|
|
12
|
-
/**
|
|
13
|
-
* Validates that patches.json and the patch directory describe the same patch set.
|
|
14
|
-
* @param patchesDir - Path to the patches directory
|
|
15
|
-
* @returns Consistency issues between manifest metadata and on-disk patch files
|
|
16
|
-
*/
|
|
17
|
-
export async function validatePatchesManifestConsistency(patchesDir) {
|
|
18
|
-
const manifestState = await loadPatchesManifestState(patchesDir);
|
|
19
|
-
const patches = await discoverPatches(patchesDir);
|
|
20
|
-
const issues = [];
|
|
21
|
-
if (manifestState.parseError) {
|
|
22
|
-
issues.push({
|
|
23
|
-
code: 'manifest-invalid',
|
|
24
|
-
filename: PATCHES_MANIFEST,
|
|
25
|
-
message: `patches.json exists but could not be parsed: ${manifestState.parseError.message}`,
|
|
26
|
-
});
|
|
27
|
-
return issues;
|
|
28
|
-
}
|
|
29
|
-
if (!manifestState.exists) {
|
|
30
|
-
if (patches.length > 0) {
|
|
31
|
-
issues.push({
|
|
32
|
-
code: 'manifest-missing',
|
|
33
|
-
filename: PATCHES_MANIFEST,
|
|
34
|
-
message: `patches.json is missing while ${patches.length} patch file(s) exist.`,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
return issues;
|
|
38
|
-
}
|
|
39
|
-
const manifest = manifestState.manifest;
|
|
40
|
-
if (!manifest) {
|
|
41
|
-
return issues;
|
|
42
|
-
}
|
|
43
|
-
const patchByFilename = new Map(patches.map((patch) => [patch.filename, patch]));
|
|
44
|
-
const seenManifestEntries = new Set();
|
|
45
|
-
for (const metadata of manifest.patches) {
|
|
46
|
-
if (seenManifestEntries.has(metadata.filename)) {
|
|
47
|
-
issues.push({
|
|
48
|
-
code: 'duplicate-manifest-entry',
|
|
49
|
-
filename: metadata.filename,
|
|
50
|
-
message: `patches.json contains duplicate metadata entries for ${metadata.filename}.`,
|
|
51
|
-
});
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
seenManifestEntries.add(metadata.filename);
|
|
55
|
-
const patch = patchByFilename.get(metadata.filename);
|
|
56
|
-
if (!patch) {
|
|
57
|
-
issues.push({
|
|
58
|
-
code: 'missing-patch-file',
|
|
59
|
-
filename: metadata.filename,
|
|
60
|
-
message: `${metadata.filename} is listed in patches.json but the patch file is missing.`,
|
|
61
|
-
});
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
const declaredFiles = normalizeAffectedFiles(metadata.filesAffected);
|
|
65
|
-
const actualFiles = normalizeAffectedFiles(await getAllTargetFilesFromPatch(patch.path));
|
|
66
|
-
if (!sameStringArray(declaredFiles, actualFiles)) {
|
|
67
|
-
issues.push({
|
|
68
|
-
code: 'files-affected-mismatch',
|
|
69
|
-
filename: metadata.filename,
|
|
70
|
-
message: `${metadata.filename} declares [${declaredFiles.join(', ')}] in patches.json ` +
|
|
71
|
-
`but the patch file targets [${actualFiles.join(', ')}].`,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
patchByFilename.delete(metadata.filename);
|
|
75
|
-
}
|
|
76
|
-
for (const orphanPatch of patchByFilename.values()) {
|
|
77
|
-
issues.push({
|
|
78
|
-
code: 'untracked-patch-file',
|
|
79
|
-
filename: orphanPatch.filename,
|
|
80
|
-
message: `${orphanPatch.filename} exists on disk but is not tracked in patches.json.`,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return issues;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Recovery hint for an unrepaired consistency failure.
|
|
87
|
-
*
|
|
88
|
-
* Drift that is only in `filesAffected` is a derived value disagreeing with
|
|
89
|
-
* the diff it describes, and the narrow repair fixes exactly that. Naming the
|
|
90
|
-
* whole-manifest rebuild for it puts
|
|
91
|
-
* an operator one keystroke from rewriting every row in the manifest to
|
|
92
|
-
* correct one list.
|
|
93
|
-
*/
|
|
94
|
-
export function recommendManifestRepair(issues) {
|
|
95
|
-
const filesAffectedOnly = issues.length > 0 && issues.every((issue) => issue.code === 'files-affected-mismatch');
|
|
96
|
-
return filesAffectedOnly
|
|
97
|
-
? 'Run "fireforge doctor --repair-files-affected" to recompute filesAffected from the patch ' +
|
|
98
|
-
'bodies (add --dry-run to preview). It rewrites only the drifted lists and leaves every ' +
|
|
99
|
-
'other manifest field untouched.'
|
|
100
|
-
: 'Run "fireforge doctor --repair-patches-manifest" to rebuild patches.json from the patch ' +
|
|
101
|
-
'files (add --dry-run to preview). Only filesAffected and order are recomputed; every ' +
|
|
102
|
-
'other field on an existing entry is preserved.';
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Rebuilds patches.json from the patch files currently present on disk.
|
|
106
|
-
*
|
|
107
|
-
* This is a merge, not a from-scratch rebuild: only `filesAffected` and
|
|
108
|
-
* `order` are recomputed from the patch files, and every other field on an
|
|
109
|
-
* existing entry is carried forward untouched. Entries with no pre-existing
|
|
110
|
-
* metadata are recovered from filename structure, patch contents, and file
|
|
111
|
-
* mtimes.
|
|
112
|
-
*
|
|
113
|
-
* Refuses when patches.json exists but cannot be parsed, because that is the
|
|
114
|
-
* one case where nothing can be carried forward and the "merge" silently
|
|
115
|
-
* becomes a whole-manifest reinvention. Pass `allowMetadataLoss` to accept it.
|
|
116
|
-
*
|
|
117
|
-
* @param patchesDir - Path to the patches directory
|
|
118
|
-
* @param fallbackSourceEsrVersion - source version to use for recovered entries that carry none
|
|
119
|
-
* @param options - Lock options plus `allowMetadataLoss` / `dryRun`
|
|
120
|
-
* @returns {@link RebuildPatchesManifestResult}: the rebuilt manifest, the
|
|
121
|
-
* filenames that were reconstructed from generic defaults, and the rows
|
|
122
|
-
* dropped because their patch file is gone.
|
|
123
|
-
*/
|
|
124
|
-
export async function rebuildPatchesManifest(patchesDir, fallbackSourceEsrVersion, options = {}) {
|
|
125
|
-
// The whole read → discover → rebuild → save cycle runs under the shared
|
|
126
|
-
// patch-directory lock (invariant 2, docs/lifecycle-invariants.md):
|
|
127
|
-
// manifest writes serialize on this lock, so without it a repair racing a
|
|
128
|
-
// concurrent export/reorder can clobber the other writer's manifest. Not
|
|
129
|
-
// reentrant: callers must not already hold it.
|
|
130
|
-
//
|
|
131
|
-
// A dry run takes the lock too: it reads the same manifest and patch bodies
|
|
132
|
-
// a real run would, and a projection computed against a queue being
|
|
133
|
-
// rewritten underneath is worth less than no projection at all.
|
|
134
|
-
return withPatchDirectoryLock(patchesDir, () => rebuildPatchesManifestUnderLock(patchesDir, fallbackSourceEsrVersion, options), options);
|
|
135
|
-
}
|
|
136
|
-
async function rebuildPatchesManifestUnderLock(patchesDir, fallbackSourceEsrVersion, options) {
|
|
137
|
-
const manifestState = await loadPatchesManifestState(patchesDir);
|
|
138
|
-
const existingEntries = new Map();
|
|
139
|
-
// An unparseable manifest yields `manifest: null`, which the merge below
|
|
140
|
-
// cannot distinguish from "no manifest at all". Every entry would be
|
|
141
|
-
// treated as new and every descriptive field reinvented. `filesAffected`
|
|
142
|
-
// is the only field a .patch body can yield. `stagedDependencies`,
|
|
143
|
-
// `lintIgnore`, `tier`, `description`, `category`, `createdAt` and the
|
|
144
|
-
// source version cannot be reconstructed from a diff at all. Refuse rather
|
|
145
|
-
// than write that, since the write is what makes it unrecoverable on a
|
|
146
|
-
// queue that is not under version control.
|
|
147
|
-
if (manifestState.exists && manifestState.parseError && options.allowMetadataLoss !== true) {
|
|
148
|
-
throw new GeneralError(`Refusing to rebuild ${PATCHES_MANIFEST}: it exists but could not be parsed ` +
|
|
149
|
-
`(${manifestState.parseError.message}). None of its metadata can be carried ` +
|
|
150
|
-
'forward, so every entry would be rebuilt with an invented description, an ' +
|
|
151
|
-
'mtime-based createdAt and an inferred category, and any stagedDependencies, ' +
|
|
152
|
-
'lintIgnore or tier declarations would be lost — a patch body carries none of ' +
|
|
153
|
-
'them.\n' +
|
|
154
|
-
`Fix the JSON in ${PATCHES_MANIFEST} (restore it from version control if you ` +
|
|
155
|
-
'can) and re-run, or pass --allow-metadata-loss to accept the reinvention.');
|
|
156
|
-
}
|
|
157
|
-
if (manifestState.manifest) {
|
|
158
|
-
for (const entry of manifestState.manifest.patches) {
|
|
159
|
-
existingEntries.set(entry.filename, entry);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
const patches = await discoverPatches(patchesDir);
|
|
163
|
-
const rebuiltPatches = [];
|
|
164
|
-
const recoveredFilenames = [];
|
|
165
|
-
const highestFiniteOrder = patches.reduce((highest, patch) => {
|
|
166
|
-
return Number.isFinite(patch.order) ? Math.max(highest, patch.order) : highest;
|
|
167
|
-
}, 0);
|
|
168
|
-
let nextRecoveredOrder = highestFiniteOrder + 1;
|
|
169
|
-
// Prefetch the two independent per-patch reads concurrently. This runs
|
|
170
|
-
// while the patch-directory lock is held, and as two serialised awaits per
|
|
171
|
-
// patch it costs 58 round-trips on a 29-patch queue. The fold below stays
|
|
172
|
-
// sequential because `nextRecoveredOrder` is loop-carried: parallelising
|
|
173
|
-
// the assignment would scramble the recovered ordinals.
|
|
174
|
-
const prefetched = await Promise.all(patches.map(async (patch) => ({
|
|
175
|
-
filesAffected: normalizeAffectedFiles(await getAllTargetFilesFromPatch(patch.path)),
|
|
176
|
-
patchStats: await stat(patch.path),
|
|
177
|
-
})));
|
|
178
|
-
for (const [index, patch] of patches.entries()) {
|
|
179
|
-
const existing = existingEntries.get(patch.filename);
|
|
180
|
-
const prefetch = prefetched[index];
|
|
181
|
-
if (!prefetch)
|
|
182
|
-
continue;
|
|
183
|
-
const { filesAffected, patchStats } = prefetch;
|
|
184
|
-
const inferred = inferPatchMetadataFromFilename(patch.filename);
|
|
185
|
-
const recoveredOrder = Number.isFinite(patch.order) ? patch.order : nextRecoveredOrder++;
|
|
186
|
-
if (!existing) {
|
|
187
|
-
// Track every filename that had no pre-existing manifest entry so
|
|
188
|
-
// callers can warn the operator per-patch. A missing entry means every
|
|
189
|
-
// descriptive field (`description`, `createdAt`, `category`) was
|
|
190
|
-
// invented rather than preserved, and FireForge patch files carry no
|
|
191
|
-
// header metadata that could carry a human description forward, so
|
|
192
|
-
// visibility is the best available, and silent overwrites of
|
|
193
|
-
// human-written descriptions during a recovery run are the failure to
|
|
194
|
-
// avoid.
|
|
195
|
-
recoveredFilenames.push(patch.filename);
|
|
196
|
-
}
|
|
197
|
-
// The rebuild owns exactly two fields: `filesAffected` (recomputed from
|
|
198
|
-
// the patch body) and `order` (from the filename ordinal). Everything
|
|
199
|
-
// else on an existing entry is carried forward by the spread, so a field
|
|
200
|
-
// a .patch cannot express (`stagedDependencies`, `lintIgnore`, `tier`,
|
|
201
|
-
// and whatever is added to PatchMetadata next) survives a repair without
|
|
202
|
-
// anyone remembering to list it here. It was an enumerated literal until
|
|
203
|
-
// `stagedDependencies` was dropped from every entry that had one, which
|
|
204
|
-
// is the failure this shape prevents from recurring.
|
|
205
|
-
const rebuilt = {
|
|
206
|
-
...(existing ?? {}),
|
|
207
|
-
filename: patch.filename,
|
|
208
|
-
order: recoveredOrder,
|
|
209
|
-
category: existing?.category ?? inferred.category,
|
|
210
|
-
name: existing?.name ?? inferred.name,
|
|
211
|
-
description: existing?.description ??
|
|
212
|
-
`Recovered manifest entry for ${patch.filename}. Review description and source version.`,
|
|
213
|
-
createdAt: existing?.createdAt ?? new Date(patchStats.mtimeMs).toISOString(),
|
|
214
|
-
sourceEsrVersion: existing?.sourceEsrVersion ?? fallbackSourceEsrVersion,
|
|
215
|
-
sourceVersion: existing?.sourceVersion ?? existing?.sourceEsrVersion ?? fallbackSourceEsrVersion,
|
|
216
|
-
filesAffected,
|
|
217
|
-
};
|
|
218
|
-
// Copy the arrays rather than aliasing the loaded manifest's, so a caller
|
|
219
|
-
// mutating the rebuilt entry cannot reach back into `manifestState`.
|
|
220
|
-
if (existing?.lintIgnore !== undefined) {
|
|
221
|
-
rebuilt.lintIgnore = existing.lintIgnore.map((entry) => typeof entry === 'string' ? entry : { ...entry });
|
|
222
|
-
}
|
|
223
|
-
rebuiltPatches.push(rebuilt);
|
|
224
|
-
existingEntries.delete(patch.filename);
|
|
225
|
-
}
|
|
226
|
-
rebuiltPatches.sort((left, right) => left.order - right.order || left.filename.localeCompare(right.filename));
|
|
227
|
-
// Retired slots have no patch file to recover them from, so they ride
|
|
228
|
-
// along from the loaded manifest like the per-row fields above.
|
|
229
|
-
const rebuiltManifest = manifestWithRetiredSlots(manifestState.manifest, rebuiltPatches);
|
|
230
|
-
// Whatever is left in the map had a manifest row but no patch file, so the
|
|
231
|
-
// rebuild drops it. That is the correct outcome, since the file is the
|
|
232
|
-
// source of truth, but dropping rows without naming them is
|
|
233
|
-
// indistinguishable from never having had them.
|
|
234
|
-
const droppedFilenames = [...existingEntries.keys()].sort((left, right) => left.localeCompare(right));
|
|
235
|
-
if (options.dryRun === true) {
|
|
236
|
-
return {
|
|
237
|
-
manifest: rebuiltManifest,
|
|
238
|
-
recoveredFilenames,
|
|
239
|
-
droppedFilenames,
|
|
240
|
-
written: false,
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
await savePatchesManifest(patchesDir, rebuiltManifest);
|
|
244
|
-
return { manifest: rebuiltManifest, recoveredFilenames, droppedFilenames, written: true };
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Canonical form of a `filesAffected` list: deduplicated and sorted, so a
|
|
248
|
-
* comparison between a declared list and one extracted from a patch body is
|
|
249
|
-
* about membership rather than ordering.
|
|
250
|
-
*/
|
|
251
|
-
export function normalizeAffectedFiles(files) {
|
|
252
|
-
return Array.from(new Set(files)).sort((left, right) => left.localeCompare(right));
|
|
253
|
-
}
|
|
254
|
-
function sameStringArray(left, right) {
|
|
255
|
-
return left.length === right.length && left.every((value, index) => value === right[index]);
|
|
256
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Narrow repair for `filesAffected`, the one manifest field a `.patch` body
|
|
3
|
-
* can actually yield.
|
|
4
|
-
*
|
|
5
|
-
* A `files-affected-mismatch` is pure derived-value drift: the manifest's list
|
|
6
|
-
* disagrees with the diff it describes, and the diff is right by definition.
|
|
7
|
-
* Rebuilding the whole manifest to fix it is a much larger operation than the
|
|
8
|
-
* failure calls for, so this repair recomputes one field on the drifted rows
|
|
9
|
-
* and leaves every other row byte-identical.
|
|
10
|
-
*/
|
|
11
|
-
import type { PatchDirectoryLockOptions } from './patch-lock.js';
|
|
12
|
-
/** One row whose `filesAffected` list disagreed with its patch body. */
|
|
13
|
-
export interface FilesAffectedRepair {
|
|
14
|
-
/** Patch filename. */
|
|
15
|
-
filename: string;
|
|
16
|
-
/** The list the manifest declared, normalized for comparison. */
|
|
17
|
-
before: string[];
|
|
18
|
-
/** The list the patch body actually targets. */
|
|
19
|
-
after: string[];
|
|
20
|
-
}
|
|
21
|
-
/** Summary of a {@link repairPatchesFilesAffected} run. */
|
|
22
|
-
export interface RepairFilesAffectedResult {
|
|
23
|
-
/** Rows that drifted and were (or would be) corrected. */
|
|
24
|
-
repairs: FilesAffectedRepair[];
|
|
25
|
-
/** Requested filenames with no manifest row, or no patch file on disk. */
|
|
26
|
-
skippedFilenames: string[];
|
|
27
|
-
/** False when the run was a dry run and patches.json was left untouched. */
|
|
28
|
-
written: boolean;
|
|
29
|
-
}
|
|
30
|
-
/** Options for {@link repairPatchesFilesAffected}. */
|
|
31
|
-
export interface RepairFilesAffectedOptions extends PatchDirectoryLockOptions {
|
|
32
|
-
/** Compute the corrections without writing them. */
|
|
33
|
-
dryRun?: boolean;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Recomputes `filesAffected` from the patch body for the named patches.
|
|
37
|
-
*
|
|
38
|
-
* @param patchesDir - Path to the patches directory
|
|
39
|
-
* @param filenames - Patch filenames to repair
|
|
40
|
-
* @param options - Lock options plus `dryRun`
|
|
41
|
-
* @returns The corrections applied (or projected) and the filenames skipped
|
|
42
|
-
*/
|
|
43
|
-
export declare function repairPatchesFilesAffected(patchesDir: string, filenames: readonly string[], options?: RepairFilesAffectedOptions): Promise<RepairFilesAffectedResult>;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Narrow repair for `filesAffected`, the one manifest field a `.patch` body
|
|
4
|
-
* can actually yield.
|
|
5
|
-
*
|
|
6
|
-
* A `files-affected-mismatch` is pure derived-value drift: the manifest's list
|
|
7
|
-
* disagrees with the diff it describes, and the diff is right by definition.
|
|
8
|
-
* Rebuilding the whole manifest to fix it is a much larger operation than the
|
|
9
|
-
* failure calls for, so this repair recomputes one field on the drifted rows
|
|
10
|
-
* and leaves every other row byte-identical.
|
|
11
|
-
*/
|
|
12
|
-
import { GeneralError } from '../errors/base.js';
|
|
13
|
-
import { discoverPatches, getAllTargetFilesFromPatch } from './patch-files.js';
|
|
14
|
-
import { withPatchDirectoryLock } from './patch-lock.js';
|
|
15
|
-
import { normalizeAffectedFiles } from './patch-manifest-consistency.js';
|
|
16
|
-
import { loadPatchesManifestForWrite, mutatePatchRowsInManifest, PATCHES_MANIFEST, } from './patch-manifest-io.js';
|
|
17
|
-
/**
|
|
18
|
-
* Recomputes `filesAffected` from the patch body for the named patches.
|
|
19
|
-
*
|
|
20
|
-
* @param patchesDir - Path to the patches directory
|
|
21
|
-
* @param filenames - Patch filenames to repair
|
|
22
|
-
* @param options - Lock options plus `dryRun`
|
|
23
|
-
* @returns The corrections applied (or projected) and the filenames skipped
|
|
24
|
-
*/
|
|
25
|
-
export async function repairPatchesFilesAffected(patchesDir, filenames, options = {}) {
|
|
26
|
-
// Same lock contract as the full rebuild (invariant 2,
|
|
27
|
-
// docs/lifecycle-invariants.md): a manifest write serializes on the
|
|
28
|
-
// patch-directory lock, and a dry run reads under it so its projection
|
|
29
|
-
// cannot be computed against a queue being rewritten underneath.
|
|
30
|
-
return withPatchDirectoryLock(patchesDir, () => repairPatchesFilesAffectedUnderLock(patchesDir, filenames, options), options);
|
|
31
|
-
}
|
|
32
|
-
async function repairPatchesFilesAffectedUnderLock(patchesDir, filenames, options) {
|
|
33
|
-
// ForWrite: a corrupt manifest must abort here rather than be treated as
|
|
34
|
-
// empty. This repair exists precisely so that a one-field drift never
|
|
35
|
-
// reaches a whole-manifest rewrite, and silently writing over unparseable
|
|
36
|
-
// metadata would be a larger version of what it avoids.
|
|
37
|
-
const manifest = await loadPatchesManifestForWrite(patchesDir);
|
|
38
|
-
if (!manifest) {
|
|
39
|
-
throw new GeneralError(`Cannot repair filesAffected: ${PATCHES_MANIFEST} does not exist in ${patchesDir}.`);
|
|
40
|
-
}
|
|
41
|
-
const patchPathByFilename = new Map((await discoverPatches(patchesDir)).map((patch) => [patch.filename, patch.path]));
|
|
42
|
-
const rowByFilename = new Map(manifest.patches.map((entry) => [entry.filename, entry]));
|
|
43
|
-
const repairs = [];
|
|
44
|
-
const skippedFilenames = [];
|
|
45
|
-
for (const filename of new Set(filenames)) {
|
|
46
|
-
const patchPath = patchPathByFilename.get(filename);
|
|
47
|
-
const row = rowByFilename.get(filename);
|
|
48
|
-
if (patchPath === undefined || !row) {
|
|
49
|
-
// A missing patch file or a missing row is a different consistency
|
|
50
|
-
// issue with a different remedy. This repair reports it rather than
|
|
51
|
-
// inventing a row or deleting one.
|
|
52
|
-
skippedFilenames.push(filename);
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
const before = normalizeAffectedFiles(row.filesAffected);
|
|
56
|
-
const after = normalizeAffectedFiles(await getAllTargetFilesFromPatch(patchPath));
|
|
57
|
-
if (sameFiles(before, after))
|
|
58
|
-
continue;
|
|
59
|
-
repairs.push({ filename, before, after });
|
|
60
|
-
}
|
|
61
|
-
skippedFilenames.sort((left, right) => left.localeCompare(right));
|
|
62
|
-
if (repairs.length === 0 || options.dryRun === true) {
|
|
63
|
-
return { repairs, skippedFilenames, written: false };
|
|
64
|
-
}
|
|
65
|
-
const correctedByFilename = new Map(repairs.map((repair) => [repair.filename, repair.after]));
|
|
66
|
-
// Row-scoped mutation, so every untouched entry keeps its exact JSON shape:
|
|
67
|
-
// no re-sorted `filesAffected` lists and no reader-only fallback fields
|
|
68
|
-
// serialized into rows this repair has no business touching.
|
|
69
|
-
await mutatePatchRowsInManifest(patchesDir, [...correctedByFilename.keys()], (existing) => {
|
|
70
|
-
const corrected = correctedByFilename.get(existing.filename);
|
|
71
|
-
return corrected ? { set: { filesAffected: corrected } } : null;
|
|
72
|
-
});
|
|
73
|
-
return { repairs, skippedFilenames, written: true };
|
|
74
|
-
}
|
|
75
|
-
function sameFiles(left, right) {
|
|
76
|
-
return left.length === right.length && left.every((value, index) => value === right[index]);
|
|
77
|
-
}
|