@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,556 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Manifest I/O: load, save, and mutating operations for patches.json.
|
|
4
|
-
*
|
|
5
|
-
* Mutations (add / remove / renumber) are intended to be the only sanctioned
|
|
6
|
-
* way to change on-disk manifest state. They run under the shared patch
|
|
7
|
-
* directory lock so concurrent commands cannot race each other into
|
|
8
|
-
* inconsistent manifests.
|
|
9
|
-
*/
|
|
10
|
-
import { randomUUID } from 'node:crypto';
|
|
11
|
-
import { rename } from 'node:fs/promises';
|
|
12
|
-
import { join } from 'node:path';
|
|
13
|
-
import { FireForgeError } from '../errors/base.js';
|
|
14
|
-
import { ExitCode } from '../errors/codes.js';
|
|
15
|
-
import { PatchError, PatchManifestCorruptError } from '../errors/patch.js';
|
|
16
|
-
import { assert } from '../utils/assert.js';
|
|
17
|
-
import { toError } from '../utils/errors.js';
|
|
18
|
-
import { pathExistsStrict, readJson, removeFile, writeJson } from '../utils/fs.js';
|
|
19
|
-
import { warn } from '../utils/logger.js';
|
|
20
|
-
import { isArray, isObject } from '../utils/validation.js';
|
|
21
|
-
import { assertPatchDirectoryLockHeld } from './patch-lock.js';
|
|
22
|
-
import { canonicalizeManifest } from './patch-manifest-key-order.js';
|
|
23
|
-
import { validatePatchesManifest } from './patch-manifest-validate.js';
|
|
24
|
-
import { manifestWithRetiredSlots } from './patch-retired.js';
|
|
25
|
-
/** Filename for the patches manifest */
|
|
26
|
-
export const PATCHES_MANIFEST = 'patches.json';
|
|
27
|
-
/**
|
|
28
|
-
* Loads and validates the patches manifest, returning full state information.
|
|
29
|
-
* @param patchesDir - Path to the patches directory
|
|
30
|
-
*/
|
|
31
|
-
export async function loadPatchesManifestState(patchesDir) {
|
|
32
|
-
const manifestPath = join(patchesDir, PATCHES_MANIFEST);
|
|
33
|
-
if (!(await pathExistsStrict(manifestPath))) {
|
|
34
|
-
return { exists: false, manifest: null, parseError: undefined };
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
const manifest = validatePatchesManifest(await readJson(manifestPath));
|
|
38
|
-
return {
|
|
39
|
-
exists: true,
|
|
40
|
-
manifest,
|
|
41
|
-
parseError: undefined,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
return {
|
|
46
|
-
exists: true,
|
|
47
|
-
manifest: null,
|
|
48
|
-
parseError: toError(error),
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Loads the patches manifest if it exists.
|
|
54
|
-
*
|
|
55
|
-
* Read-only callers only: this collapses "absent" and "corrupt" into null.
|
|
56
|
-
* Any code path that writes the manifest (or deletes patch files based
|
|
57
|
-
* on its content) must use {@link loadPatchesManifestForWrite} instead.
|
|
58
|
-
* Treating a corrupt manifest as empty and then saving destroys every
|
|
59
|
-
* existing patch's metadata.
|
|
60
|
-
*
|
|
61
|
-
* @param patchesDir - Path to the patches directory
|
|
62
|
-
* @returns PatchesManifest or null if not found
|
|
63
|
-
*/
|
|
64
|
-
export async function loadPatchesManifest(patchesDir) {
|
|
65
|
-
const state = await loadPatchesManifestState(patchesDir);
|
|
66
|
-
return state.manifest;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Loads the patches manifest for a mutating operation.
|
|
70
|
-
*
|
|
71
|
-
* Returns null only when the manifest genuinely does not exist. A manifest
|
|
72
|
-
* that exists but fails to parse/validate throws
|
|
73
|
-
* {@link PatchManifestCorruptError} so the caller aborts instead of
|
|
74
|
-
* rebuilding an empty queue over the top of the corrupt file.
|
|
75
|
-
*/
|
|
76
|
-
export async function loadPatchesManifestForWrite(patchesDir) {
|
|
77
|
-
const state = await loadPatchesManifestState(patchesDir);
|
|
78
|
-
if (state.exists && state.manifest === null) {
|
|
79
|
-
throw new PatchManifestCorruptError(join(patchesDir, PATCHES_MANIFEST), state.parseError);
|
|
80
|
-
}
|
|
81
|
-
return state.manifest;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Saves the patches manifest.
|
|
85
|
-
* @param patchesDir - Path to the patches directory
|
|
86
|
-
* @param manifest - Manifest to save
|
|
87
|
-
*/
|
|
88
|
-
export async function savePatchesManifest(patchesDir, manifest) {
|
|
89
|
-
const manifestPath = join(patchesDir, PATCHES_MANIFEST);
|
|
90
|
-
await writeJson(manifestPath, canonicalizeManifest(manifest));
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Mutates selected manifest rows while preserving the raw JSON fields of every
|
|
94
|
-
* untouched row. This avoids serializing reader-only fallback fields, such as
|
|
95
|
-
* `sourceVersion` derived from legacy `sourceEsrVersion`, into unrelated patch
|
|
96
|
-
* entries during partial metadata updates.
|
|
97
|
-
*
|
|
98
|
-
* Every row's keys (and the manifest's own) are written in canonical order,
|
|
99
|
-
* not only the changed rows', so the working copy matches what `patch stage`
|
|
100
|
-
* and full saves write and no commit flips untouched rows' key order.
|
|
101
|
-
*/
|
|
102
|
-
export async function mutatePatchRowsInManifest(patchesDir, filenames, mutator) {
|
|
103
|
-
const manifestPath = join(patchesDir, PATCHES_MANIFEST);
|
|
104
|
-
if (!(await pathExistsStrict(manifestPath)))
|
|
105
|
-
return null;
|
|
106
|
-
const rawManifest = await readJson(manifestPath);
|
|
107
|
-
// `validatePatchesManifest` has already rejected a manifest that is not an
|
|
108
|
-
// object with an array of object rows (it throws the corruption error the
|
|
109
|
-
// caller expects), so the shape re-checks below are FireForge's own
|
|
110
|
-
// invariants, not input validation: failing them means the validator and
|
|
111
|
-
// this walker disagree about the manifest schema, which is a bug here.
|
|
112
|
-
const beforeManifest = validatePatchesManifest(rawManifest);
|
|
113
|
-
assert(isObject(rawManifest) && isArray(rawManifest['patches']), 'validated patches.json is a JSON object with a patches array');
|
|
114
|
-
const filenameSet = new Set(filenames);
|
|
115
|
-
if (filenameSet.size === 0)
|
|
116
|
-
return [];
|
|
117
|
-
const rawPatches = rawManifest['patches'].map((entry, index) => {
|
|
118
|
-
assert(isObject(entry), () => `validated patches.json row ${index} is an object`);
|
|
119
|
-
return { ...entry };
|
|
120
|
-
});
|
|
121
|
-
const changedIndexes = [];
|
|
122
|
-
for (const [index, rawPatch] of rawPatches.entries()) {
|
|
123
|
-
const filename = rawPatch['filename'];
|
|
124
|
-
if (typeof filename !== 'string' || !filenameSet.has(filename))
|
|
125
|
-
continue;
|
|
126
|
-
const existing = beforeManifest.patches[index];
|
|
127
|
-
if (!existing)
|
|
128
|
-
continue;
|
|
129
|
-
// Manifest rows come out of JSON.parse and were object-checked above,
|
|
130
|
-
// so the JsonObject contract holds. The row stays a plain record
|
|
131
|
-
// internally because `mutation.set` values carry interface types
|
|
132
|
-
// (`Partial<PatchMetadata>`) that the compiler cannot relate to
|
|
133
|
-
// `JsonValue` structurally.
|
|
134
|
-
const mutation = mutator(existing, rawPatch);
|
|
135
|
-
if (!mutation)
|
|
136
|
-
continue;
|
|
137
|
-
for (const [field, value] of Object.entries(mutation.set ?? {})) {
|
|
138
|
-
rawPatch[field] = value;
|
|
139
|
-
}
|
|
140
|
-
for (const field of mutation.unset ?? []) {
|
|
141
|
-
rawPatch[field] = undefined;
|
|
142
|
-
}
|
|
143
|
-
changedIndexes.push(index);
|
|
144
|
-
}
|
|
145
|
-
if (changedIndexes.length === 0)
|
|
146
|
-
return [];
|
|
147
|
-
// Every row is put in canonical key order, not only the changed ones:
|
|
148
|
-
// `patch stage` and full saves canonicalize the whole manifest, so a
|
|
149
|
-
// row left in any other order flips back and forth between the
|
|
150
|
-
// working copy and the index. Reordering keys adds no field.
|
|
151
|
-
const nextRawManifest = canonicalizeManifest({
|
|
152
|
-
...rawManifest,
|
|
153
|
-
patches: rawPatches,
|
|
154
|
-
});
|
|
155
|
-
const afterManifest = validatePatchesManifest(nextRawManifest);
|
|
156
|
-
await writeJson(manifestPath, nextRawManifest);
|
|
157
|
-
return changedIndexes.map((index) => ({
|
|
158
|
-
before: beforeManifest.patches[index],
|
|
159
|
-
after: afterManifest.patches[index],
|
|
160
|
-
}));
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Adds or updates a patch entry in the manifest.
|
|
164
|
-
* @param patchesDir - Path to the patches directory
|
|
165
|
-
* @param metadata - Patch metadata to add/update
|
|
166
|
-
* @param removeFilenames - Optional filenames to remove in the same read-modify-write cycle
|
|
167
|
-
*/
|
|
168
|
-
export async function addPatchToManifest(patchesDir, metadata, removeFilenames) {
|
|
169
|
-
// ForWrite: a corrupt manifest must abort here, not be rebuilt as empty.
|
|
170
|
-
const manifest = (await loadPatchesManifestForWrite(patchesDir)) ?? {
|
|
171
|
-
version: 1,
|
|
172
|
-
patches: [],
|
|
173
|
-
};
|
|
174
|
-
// Remove existing entry with same filename if present
|
|
175
|
-
manifest.patches = manifest.patches.filter((p) => p.filename !== metadata.filename);
|
|
176
|
-
// Remove superseded entries in the same cycle to avoid race conditions
|
|
177
|
-
if (removeFilenames && removeFilenames.length > 0) {
|
|
178
|
-
const removeSet = new Set(removeFilenames);
|
|
179
|
-
manifest.patches = manifest.patches.filter((p) => !removeSet.has(p.filename));
|
|
180
|
-
}
|
|
181
|
-
// Add new entry and sort by order
|
|
182
|
-
manifest.patches.push(metadata);
|
|
183
|
-
manifest.patches.sort((a, b) => a.order - b.order);
|
|
184
|
-
// A patch landing on a retired order fills that slot.
|
|
185
|
-
await savePatchesManifest(patchesDir, manifestWithRetiredSlots(manifest, manifest.patches));
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Removes a single patch entry from the manifest by filename. Leaves the
|
|
189
|
-
* ordinal gap in place. Callers wanting to close the gap must use
|
|
190
|
-
* {@link renumberPatchesInManifest} explicitly. This matches the spec: delete
|
|
191
|
-
* is a row removal, not a resequencing.
|
|
192
|
-
*
|
|
193
|
-
* Not atomic with any on-disk patch file deletion. Callers are expected to
|
|
194
|
-
* remove the .patch file separately under the same lock.
|
|
195
|
-
*
|
|
196
|
-
* @param patchesDir - Path to the patches directory
|
|
197
|
-
* @param filename - Filename of the patch to remove from the manifest
|
|
198
|
-
* @param retiredSlot - Optional placeholder to record for the removed order
|
|
199
|
-
* @returns True when the manifest was written (i.e. an entry was removed),
|
|
200
|
-
* false when no matching entry existed
|
|
201
|
-
*/
|
|
202
|
-
export async function removePatchFromManifest(patchesDir, filename, retiredSlot) {
|
|
203
|
-
const manifest = await loadPatchesManifestForWrite(patchesDir);
|
|
204
|
-
if (!manifest)
|
|
205
|
-
return false;
|
|
206
|
-
const originalLength = manifest.patches.length;
|
|
207
|
-
manifest.patches = manifest.patches.filter((p) => p.filename !== filename);
|
|
208
|
-
if (manifest.patches.length === originalLength) {
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
|
-
if (retiredSlot !== undefined) {
|
|
212
|
-
// `patch retire`: the row leaves and its order stays spent, in the
|
|
213
|
-
// same write, so no reader ever sees the gap in between.
|
|
214
|
-
manifest.retired = [
|
|
215
|
-
...(manifest.retired ?? []).filter((slot) => slot.order !== retiredSlot.order),
|
|
216
|
-
retiredSlot,
|
|
217
|
-
].sort((a, b) => a.order - b.order);
|
|
218
|
-
}
|
|
219
|
-
await savePatchesManifest(patchesDir, manifest);
|
|
220
|
-
return true;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Checks the shape a renumbered manifest is supposed to have, immediately
|
|
224
|
-
* before it becomes durable.
|
|
225
|
-
*
|
|
226
|
-
* Three properties, each of which the queue silently depends on: `order` is
|
|
227
|
-
* unique (two patches claiming one slot make apply order arbitrary),
|
|
228
|
-
* `order` matches the numeric prefix of `filename` (the prefix is what an
|
|
229
|
-
* operator reads and what `patch` commands parse back out), and the rows are
|
|
230
|
-
* sorted ascending (readers take manifest order as apply order without
|
|
231
|
-
* re-sorting).
|
|
232
|
-
*
|
|
233
|
-
* Contiguity itself is not checked, on purpose: `patchPolicy.ranges`
|
|
234
|
-
* reserves gaps on purpose, so a hole is a legitimate queue shape.
|
|
235
|
-
*
|
|
236
|
-
* @param patches - The manifest rows about to be written
|
|
237
|
-
*/
|
|
238
|
-
function assertRenumberedOrderIsWellFormed(patches) {
|
|
239
|
-
const seenOrders = new Set();
|
|
240
|
-
let previousOrder = Number.NEGATIVE_INFINITY;
|
|
241
|
-
for (const patch of patches) {
|
|
242
|
-
assert(!seenOrders.has(patch.order), () => `renumbered patch orders are unique (order ${patch.order} appears twice)`);
|
|
243
|
-
seenOrders.add(patch.order);
|
|
244
|
-
assert(patch.order >= previousOrder, () => `renumbered manifest rows are sorted by order (${patch.filename} is out of place)`);
|
|
245
|
-
previousOrder = patch.order;
|
|
246
|
-
const prefixMatch = /^(\d+)-/.exec(patch.filename);
|
|
247
|
-
assert(prefixMatch !== null, () => `renumbered patch filename carries a numeric prefix (got "${patch.filename}")`);
|
|
248
|
-
assert(Number(prefixMatch[1]) === patch.order, () => `renumbered patch filename prefix matches its order ` +
|
|
249
|
-
`("${patch.filename}" carries order ${patch.order})`);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Rewrites `stagedDependencies.forwardImports[].owner` and
|
|
254
|
-
* `stagedDependencies.registrations[].owner` references on one patch
|
|
255
|
-
* through a rename lookup. Owners embed exact patch filenames, so any
|
|
256
|
-
* renumber (compact, reorder, placement export, rename) that does not remap
|
|
257
|
-
* them leaves dangling references that surface as false forward-import
|
|
258
|
-
* errors on the next lint.
|
|
259
|
-
*
|
|
260
|
-
* Pure and allocation-conservative: returns the input object unchanged when
|
|
261
|
-
* no owner matches the lookup, so callers can map whole manifests cheaply.
|
|
262
|
-
*
|
|
263
|
-
* @param patch - Manifest row to rewrite
|
|
264
|
-
* @param renameLookup - Maps an old patch filename to its new filename, or
|
|
265
|
-
* undefined when the filename is not being renamed
|
|
266
|
-
* @returns The same row, or a copy with remapped owners
|
|
267
|
-
*/
|
|
268
|
-
export function rewriteStagedDependencyOwners(patch, renameLookup) {
|
|
269
|
-
const staged = patch.stagedDependencies;
|
|
270
|
-
if (!staged)
|
|
271
|
-
return patch;
|
|
272
|
-
const rewriteOwners = (entries) => {
|
|
273
|
-
if (!entries || entries.length === 0)
|
|
274
|
-
return { entries, changed: false };
|
|
275
|
-
const rewritten = entries.map((entry) => {
|
|
276
|
-
if (!entry.owner)
|
|
277
|
-
return entry;
|
|
278
|
-
const newOwner = renameLookup(entry.owner);
|
|
279
|
-
if (newOwner === undefined || newOwner === entry.owner)
|
|
280
|
-
return entry;
|
|
281
|
-
return { ...entry, owner: newOwner };
|
|
282
|
-
});
|
|
283
|
-
return {
|
|
284
|
-
entries: rewritten,
|
|
285
|
-
changed: rewritten.some((entry, index) => entry !== entries[index]),
|
|
286
|
-
};
|
|
287
|
-
};
|
|
288
|
-
const forwardImports = rewriteOwners(staged.forwardImports);
|
|
289
|
-
const registrations = rewriteOwners(staged.registrations);
|
|
290
|
-
if (!forwardImports.changed && !registrations.changed)
|
|
291
|
-
return patch;
|
|
292
|
-
return {
|
|
293
|
-
...patch,
|
|
294
|
-
stagedDependencies: {
|
|
295
|
-
...staged,
|
|
296
|
-
...(forwardImports.entries !== undefined ? { forwardImports: forwardImports.entries } : {}),
|
|
297
|
-
...(registrations.entries !== undefined ? { registrations: registrations.entries } : {}),
|
|
298
|
-
},
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Renames patch files on disk and rewrites the corresponding manifest rows
|
|
303
|
-
* atomically-ish: file renames use a two-phase staging strategy (rename each
|
|
304
|
-
* entry to a unique temp filename first, then rename the temp to its final
|
|
305
|
-
* target) so cycles like `003 → 005` while `005` also moves do not collide.
|
|
306
|
-
*
|
|
307
|
-
* The manifest is rewritten once at the end with all new filenames and
|
|
308
|
-
* orders. Failure semantics:
|
|
309
|
-
*
|
|
310
|
-
* - **Phase 1 (stage)**: rolls back by renaming staged files back to
|
|
311
|
-
* their originals. Manifest is untouched. Best-effort: a rollback
|
|
312
|
-
* rename failure is warned but not re-thrown.
|
|
313
|
-
* - **Phase 2 (stage → final)**: rolls back to the pre-operation state
|
|
314
|
-
* by reversing every partial step: files already at their final
|
|
315
|
-
* names are renamed back to staging, and all staged files are then
|
|
316
|
-
* renamed back to their originals. The manifest is untouched. If
|
|
317
|
-
* the rollback itself fails midway, the thrown error is augmented
|
|
318
|
-
* with a description of the residue so the operator can inspect.
|
|
319
|
-
* - **Phase 3 (manifest write)**: by this point all files are on disk
|
|
320
|
-
* at their new names. A manifest write failure will roll the files
|
|
321
|
-
* back to their original names before re-throwing so the directory
|
|
322
|
-
* and manifest stay in agreement. A rollback failure at this stage
|
|
323
|
-
* is warned (manifest was never mutated) and the original error is
|
|
324
|
-
* re-thrown.
|
|
325
|
-
*
|
|
326
|
-
* Does not sort the rename map for the caller. The map is the authoritative
|
|
327
|
-
* plan. Entries not present in the map keep their existing filename and
|
|
328
|
-
* order.
|
|
329
|
-
*
|
|
330
|
-
* @param patchesDir - Path to the patches directory
|
|
331
|
-
* @param renameMap - Map from existing filename → new filename/order
|
|
332
|
-
*/
|
|
333
|
-
export async function renumberPatchesInManifest(patchesDir, renameMap) {
|
|
334
|
-
if (renameMap.size === 0)
|
|
335
|
-
return;
|
|
336
|
-
await assertPatchDirectoryLockHeld(patchesDir, 'renumbering the patch manifest');
|
|
337
|
-
const manifest = await loadPatchesManifestForWrite(patchesDir);
|
|
338
|
-
if (!manifest) {
|
|
339
|
-
throw new PatchError('Cannot renumber patches: patches.json is missing.');
|
|
340
|
-
}
|
|
341
|
-
// Phase 1: rename each old filename to a unique temp staging name so the
|
|
342
|
-
// later rename to the final target cannot collide with another entry
|
|
343
|
-
// currently occupying that slot.
|
|
344
|
-
const stagingId = randomUUID();
|
|
345
|
-
const stagedRenames = [];
|
|
346
|
-
try {
|
|
347
|
-
for (const [oldFilename, entry] of renameMap) {
|
|
348
|
-
const oldPath = join(patchesDir, oldFilename);
|
|
349
|
-
if (!(await pathExistsStrict(oldPath))) {
|
|
350
|
-
throw new PatchError(`Cannot renumber: patch file is missing on disk: ${oldFilename}`, oldFilename);
|
|
351
|
-
}
|
|
352
|
-
const stagedName = `.fireforge-renumber-${stagingId}-${oldFilename}`;
|
|
353
|
-
const stagedPath = join(patchesDir, stagedName);
|
|
354
|
-
await rename(oldPath, stagedPath);
|
|
355
|
-
stagedRenames.push({ from: oldFilename, staged: stagedName, toEntry: entry });
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
catch (error) {
|
|
359
|
-
// Roll back phase 1: put any already-staged files back.
|
|
360
|
-
for (const { from, staged } of stagedRenames) {
|
|
361
|
-
try {
|
|
362
|
-
await rename(join(patchesDir, staged), join(patchesDir, from));
|
|
363
|
-
}
|
|
364
|
-
catch (rollbackError) {
|
|
365
|
-
warn(`Rollback warning: could not restore ${from} from staging: ${toError(rollbackError).message}`);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
throw error;
|
|
369
|
-
}
|
|
370
|
-
// Phase 2: rename each staged file to its final target, tracking which
|
|
371
|
-
// entries have completed so we can reverse the partial state on failure.
|
|
372
|
-
const completedFinalRenames = [];
|
|
373
|
-
try {
|
|
374
|
-
for (const stagedEntry of stagedRenames) {
|
|
375
|
-
const { staged, toEntry } = stagedEntry;
|
|
376
|
-
const targetPath = join(patchesDir, toEntry.newFilename);
|
|
377
|
-
if (await pathExistsStrict(targetPath)) {
|
|
378
|
-
throw new PatchError(`Cannot renumber: target patch filename already exists on disk: ${toEntry.newFilename}`, toEntry.newFilename);
|
|
379
|
-
}
|
|
380
|
-
await rename(join(patchesDir, staged), targetPath);
|
|
381
|
-
// Postcondition assert: confirm the target actually exists on disk
|
|
382
|
-
// before marking the rename complete. A silent rename failure leaves
|
|
383
|
-
// the manifest and the filesystem disagreeing: manifest rewritten to
|
|
384
|
-
// new filenames while the old files stay on disk. If the assert fires,
|
|
385
|
-
// the Phase 2 rollback undoes prior moves before re-throwing.
|
|
386
|
-
if (!(await pathExistsStrict(targetPath))) {
|
|
387
|
-
throw new PatchError(`Rename postcondition failed: expected ${toEntry.newFilename} to exist after rename, but it was not found on disk.`, toEntry.newFilename);
|
|
388
|
-
}
|
|
389
|
-
completedFinalRenames.push(stagedEntry);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
catch (error) {
|
|
393
|
-
// Phase 2 rollback: reverse both the partial final-name moves and
|
|
394
|
-
// the phase-1 staging. This collapses the directory back to its
|
|
395
|
-
// pre-operation filenames so the manifest (which was never
|
|
396
|
-
// touched) remains consistent with what is on disk. If any
|
|
397
|
-
// individual rollback step itself fails, we warn with the residue
|
|
398
|
-
// filename so the operator can finish the cleanup by hand, but we
|
|
399
|
-
// still re-throw the original error so the caller sees the real
|
|
400
|
-
// cause.
|
|
401
|
-
const residue = [];
|
|
402
|
-
for (const completed of completedFinalRenames) {
|
|
403
|
-
try {
|
|
404
|
-
await rename(join(patchesDir, completed.toEntry.newFilename), join(patchesDir, completed.staged));
|
|
405
|
-
}
|
|
406
|
-
catch (rollbackError) {
|
|
407
|
-
residue.push(completed.toEntry.newFilename);
|
|
408
|
-
warn(`Rollback warning: could not revert ${completed.toEntry.newFilename} to staging: ${toError(rollbackError).message}`);
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
for (const stagedEntry of stagedRenames) {
|
|
412
|
-
try {
|
|
413
|
-
await rename(join(patchesDir, stagedEntry.staged), join(patchesDir, stagedEntry.from));
|
|
414
|
-
}
|
|
415
|
-
catch (rollbackError) {
|
|
416
|
-
residue.push(stagedEntry.staged);
|
|
417
|
-
warn(`Rollback warning: could not restore ${stagedEntry.from} from staging: ${toError(rollbackError).message}`);
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
if (residue.length > 0) {
|
|
421
|
-
warn(`Renumber phase 2 rollback left residue files (pattern: .fireforge-renumber-${stagingId}-*). ` +
|
|
422
|
-
`Inspect ${patchesDir} and remove or rename: ${residue.join(', ')}`);
|
|
423
|
-
}
|
|
424
|
-
throw error;
|
|
425
|
-
}
|
|
426
|
-
// Phase 3: rewrite the manifest rows. Any entry without a rename keeps its
|
|
427
|
-
// existing metadata. Entries in the map get their filename + order
|
|
428
|
-
// updated. Sort by the new order so the manifest remains ordered.
|
|
429
|
-
const filenameUpdates = new Map();
|
|
430
|
-
for (const [oldFilename, entry] of renameMap) {
|
|
431
|
-
filenameUpdates.set(oldFilename, entry);
|
|
432
|
-
}
|
|
433
|
-
// Owner references live on *other* patches than the renamed ones, so every
|
|
434
|
-
// row is passed through the staged-dependency rewrite, not just renamed rows.
|
|
435
|
-
const ownerLookup = (oldFilename) => filenameUpdates.get(oldFilename)?.newFilename;
|
|
436
|
-
const updatedPatches = manifest.patches.map((p) => {
|
|
437
|
-
const update = filenameUpdates.get(p.filename);
|
|
438
|
-
const withOwners = rewriteStagedDependencyOwners(p, ownerLookup);
|
|
439
|
-
if (!update)
|
|
440
|
-
return withOwners;
|
|
441
|
-
return {
|
|
442
|
-
...withOwners,
|
|
443
|
-
filename: update.newFilename,
|
|
444
|
-
order: update.newOrder,
|
|
445
|
-
};
|
|
446
|
-
});
|
|
447
|
-
updatedPatches.sort((a, b) => a.order - b.order || a.filename.localeCompare(b.filename));
|
|
448
|
-
try {
|
|
449
|
-
// Phase 3 is the one write that makes the renumber visible. Every file
|
|
450
|
-
// has already moved on disk, so a manifest that disagrees with the new
|
|
451
|
-
// filenames is the worst outcome available here, because the queue
|
|
452
|
-
// would apply in an order nothing on disk reflects. The callers compute
|
|
453
|
-
// the rename map (compact, reorder, export placement) and each maintains
|
|
454
|
-
// contiguity on its own. This checks the property they are all supposed
|
|
455
|
-
// to produce, at the single point where it becomes durable. Inside the
|
|
456
|
-
// try, so a violation unwinds through the Phase 3 rollback that puts the
|
|
457
|
-
// filenames back.
|
|
458
|
-
assertRenumberedOrderIsWellFormed(updatedPatches);
|
|
459
|
-
// A patch renumbered onto a retired order fills that slot.
|
|
460
|
-
await savePatchesManifest(patchesDir, manifestWithRetiredSlots(manifest, updatedPatches));
|
|
461
|
-
}
|
|
462
|
-
catch (error) {
|
|
463
|
-
// Phase 3 rollback: reverse every completed rename. The manifest
|
|
464
|
-
// save failed before it could be persisted, so the on-disk state
|
|
465
|
-
// must match what the manifest still records. Best-effort: any
|
|
466
|
-
// individual step that fails gets warned. The original save
|
|
467
|
-
// error is always re-thrown so the caller sees the real cause.
|
|
468
|
-
for (const completed of completedFinalRenames) {
|
|
469
|
-
try {
|
|
470
|
-
await rename(join(patchesDir, completed.toEntry.newFilename), join(patchesDir, completed.from));
|
|
471
|
-
}
|
|
472
|
-
catch (rollbackError) {
|
|
473
|
-
warn(`Rollback warning: could not revert ${completed.toEntry.newFilename} → ${completed.from} after manifest save failed: ${toError(rollbackError).message}`);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
throw error;
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
/**
|
|
480
|
-
* Thrown when {@link removePatchFileAndManifest} cannot complete the file
|
|
481
|
-
* delete and cannot restore the manifest row afterward, so the on-disk
|
|
482
|
-
* state and manifest state are known to disagree. Carries both the
|
|
483
|
-
* primary delete error and the rollback error so the caller (and the
|
|
484
|
-
* operator) can see the full failure chain instead of only the original
|
|
485
|
-
* error with a warning about the rollback buried in logs.
|
|
486
|
-
*
|
|
487
|
-
* Extends {@link FireForgeError} so the CLI top-level handler routes it
|
|
488
|
-
* through the rich-error formatter rather than the generic unexpected-error
|
|
489
|
-
* path. The dedicated `.name` is kept so programmatic callers and tests
|
|
490
|
-
* can still distinguish it with `instanceof PatchDeleteRollbackError`.
|
|
491
|
-
*/
|
|
492
|
-
export class PatchDeleteRollbackError extends FireForgeError {
|
|
493
|
-
filename;
|
|
494
|
-
deleteError;
|
|
495
|
-
rollbackError;
|
|
496
|
-
code = ExitCode.PATCH_ERROR;
|
|
497
|
-
constructor(filename, deleteError, rollbackError) {
|
|
498
|
-
super(`Failed to delete ${filename}, AND failed to restore patches.json afterward. ` +
|
|
499
|
-
`The patch directory is now inconsistent: the manifest no longer lists ${filename} ` +
|
|
500
|
-
`but the patch file may still exist on disk. ` +
|
|
501
|
-
`Delete error: ${deleteError.message}. ` +
|
|
502
|
-
`Manifest rollback error: ${rollbackError.message}. ` +
|
|
503
|
-
`Inspect ${filename} in the patches directory and either remove it or restore the manifest row by hand.`);
|
|
504
|
-
this.filename = filename;
|
|
505
|
-
this.deleteError = deleteError;
|
|
506
|
-
this.rollbackError = rollbackError;
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
/**
|
|
510
|
-
* Deletes both a patch file on disk and its manifest row under the caller's
|
|
511
|
-
* lock. This is a convenience for the `patch delete` command. Callers that
|
|
512
|
-
* need different ordering (e.g. deleting the file first without touching the
|
|
513
|
-
* manifest) should call the primitives separately.
|
|
514
|
-
*
|
|
515
|
-
* Failure semantics: if the manifest row was already removed and the
|
|
516
|
-
* file deletion then fails, the original manifest is restored best-effort
|
|
517
|
-
* and the delete error is re-thrown. If the restore itself also fails,
|
|
518
|
-
* a {@link PatchDeleteRollbackError} is thrown that carries both the
|
|
519
|
-
* delete error and the rollback error so neither is hidden behind a
|
|
520
|
-
* warning log. Callers can detect the compound failure with
|
|
521
|
-
* `instanceof PatchDeleteRollbackError`.
|
|
522
|
-
*
|
|
523
|
-
* @param patchesDir - Path to the patches directory
|
|
524
|
-
* @param filename - Patch filename to delete
|
|
525
|
-
* @param retiredSlot - When set (`patch retire`), the placeholder written in
|
|
526
|
-
* the same manifest update that removes the row
|
|
527
|
-
*/
|
|
528
|
-
export async function removePatchFileAndManifest(patchesDir, filename, retiredSlot) {
|
|
529
|
-
await assertPatchDirectoryLockHeld(patchesDir, 'deleting a patch and its manifest row');
|
|
530
|
-
const patchPath = join(patchesDir, filename);
|
|
531
|
-
// ForWrite: deleting the patch file while a corrupt manifest still
|
|
532
|
-
// references it would strand the queue. Abort on corruption instead.
|
|
533
|
-
const originalManifest = await loadPatchesManifestForWrite(patchesDir);
|
|
534
|
-
const removedFromManifest = await removePatchFromManifest(patchesDir, filename, retiredSlot);
|
|
535
|
-
try {
|
|
536
|
-
if (await pathExistsStrict(patchPath)) {
|
|
537
|
-
await removeFile(patchPath);
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
catch (error) {
|
|
541
|
-
const deleteError = toError(error);
|
|
542
|
-
if (removedFromManifest && originalManifest) {
|
|
543
|
-
try {
|
|
544
|
-
await savePatchesManifest(patchesDir, originalManifest);
|
|
545
|
-
}
|
|
546
|
-
catch (rollbackError) {
|
|
547
|
-
// Compound failure: both the delete and the rollback failed, so the
|
|
548
|
-
// directory is in a known-inconsistent state. A dedicated error type
|
|
549
|
-
// carrying both causes shows the complete picture instead of the
|
|
550
|
-
// original delete error with a rollback warning buried in stderr.
|
|
551
|
-
throw new PatchDeleteRollbackError(filename, deleteError, toError(rollbackError));
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
throw deleteError;
|
|
555
|
-
}
|
|
556
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The one key order every `patches.json` writer uses for a patch row and
|
|
3
|
-
* for the manifest itself, so that every writer (`export`, full-manifest
|
|
4
|
-
* saves, `patch stage`) agrees and a no-op rewrite leaves no key-order-only
|
|
5
|
-
* hunk in the manifest.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Returns a copy of a patch row with its keys in canonical order.
|
|
9
|
-
*
|
|
10
|
-
* @param row - A `PatchMetadata` row, typed or raw
|
|
11
|
-
* @returns The same fields in canonical key order
|
|
12
|
-
*/
|
|
13
|
-
export declare function canonicalizePatchRow<T extends object>(row: T): T;
|
|
14
|
-
/**
|
|
15
|
-
* Returns a copy of a manifest with its top-level keys and every row in
|
|
16
|
-
* canonical order.
|
|
17
|
-
*
|
|
18
|
-
* @param manifest - A `PatchesManifest`, typed or raw
|
|
19
|
-
* @returns The manifest in canonical key order
|
|
20
|
-
*/
|
|
21
|
-
export declare function canonicalizeManifest<T extends {
|
|
22
|
-
patches: readonly object[];
|
|
23
|
-
}>(manifest: T): T;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* The one key order every `patches.json` writer uses for a patch row and
|
|
4
|
-
* for the manifest itself, so that every writer (`export`, full-manifest
|
|
5
|
-
* saves, `patch stage`) agrees and a no-op rewrite leaves no key-order-only
|
|
6
|
-
* hunk in the manifest.
|
|
7
|
-
*/
|
|
8
|
-
/** Patch-row keys in the order of the `PatchMetadata` interface. */
|
|
9
|
-
const PATCH_ROW_KEY_ORDER = [
|
|
10
|
-
'filename',
|
|
11
|
-
'order',
|
|
12
|
-
'category',
|
|
13
|
-
'name',
|
|
14
|
-
'description',
|
|
15
|
-
'createdAt',
|
|
16
|
-
'sourceEsrVersion',
|
|
17
|
-
'sourceProduct',
|
|
18
|
-
'sourceVersion',
|
|
19
|
-
'filesAffected',
|
|
20
|
-
'lintIgnore',
|
|
21
|
-
'tier',
|
|
22
|
-
'stagedDependencies',
|
|
23
|
-
];
|
|
24
|
-
/** Manifest keys in the order of the `PatchesManifest` interface. */
|
|
25
|
-
const MANIFEST_KEY_ORDER = ['version', 'patches', 'retired', 'reserved'];
|
|
26
|
-
function reorder(value, order) {
|
|
27
|
-
const source = value;
|
|
28
|
-
const out = {};
|
|
29
|
-
for (const key of order) {
|
|
30
|
-
if (Object.hasOwn(source, key))
|
|
31
|
-
out[key] = source[key];
|
|
32
|
-
}
|
|
33
|
-
// Keys this build does not know keep their relative order after the
|
|
34
|
-
// known ones, so a newer writer's fields survive an older rewrite.
|
|
35
|
-
for (const key of Object.keys(source)) {
|
|
36
|
-
if (!Object.hasOwn(out, key))
|
|
37
|
-
out[key] = source[key];
|
|
38
|
-
}
|
|
39
|
-
return out;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Returns a copy of a patch row with its keys in canonical order.
|
|
43
|
-
*
|
|
44
|
-
* @param row - A `PatchMetadata` row, typed or raw
|
|
45
|
-
* @returns The same fields in canonical key order
|
|
46
|
-
*/
|
|
47
|
-
export function canonicalizePatchRow(row) {
|
|
48
|
-
return reorder(row, PATCH_ROW_KEY_ORDER);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Returns a copy of a manifest with its top-level keys and every row in
|
|
52
|
-
* canonical order.
|
|
53
|
-
*
|
|
54
|
-
* @param manifest - A `PatchesManifest`, typed or raw
|
|
55
|
-
* @returns The manifest in canonical key order
|
|
56
|
-
*/
|
|
57
|
-
export function canonicalizeManifest(manifest) {
|
|
58
|
-
const ordered = reorder(manifest, MANIFEST_KEY_ORDER);
|
|
59
|
-
return { ...ordered, patches: manifest.patches.map((row) => canonicalizePatchRow(row)) };
|
|
60
|
-
}
|