@hominis/fireforge 0.54.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +287 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -438
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -332
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -420
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -422
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -208
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -692
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +113 -181
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -277
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +163 -653
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -712
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -91
- package/dist/src/commands/check-run.d.ts +0 -33
- package/dist/src/commands/check-run.js +0 -112
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -218
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -282
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -52
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -261
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -117
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -15
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -49
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -248
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -267
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -35
- package/dist/src/commands/re-export-hunks.js +0 -220
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -191
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -39
- package/dist/src/commands/re-export-single.js +0 -388
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -28
- package/dist/src/commands/re-export-summary.js +0 -36
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -29
- package/dist/src/commands/test-build-phase.js +0 -290
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -63
- package/dist/src/commands/test-orchestrate.js +0 -274
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -52
- package/dist/src/commands/test-stale-gate.js +0 -165
- package/dist/src/commands/test-verdict.d.ts +0 -92
- package/dist/src/commands/test-verdict.js +0 -162
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck.d.ts +0 -56
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -274
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -92
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -503
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -62
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -124
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -146
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -79
- package/dist/src/core/furnace-constants.js +0 -123
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -61
- package/dist/src/core/furnace-jsconfig.js +0 -208
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -302
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -318
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -204
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache.d.ts +0 -78
- package/dist/src/core/patch-lint-cache.js +0 -233
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -39
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -63
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -180
- package/dist/src/core/patch-lint-checkjs.js +0 -611
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -5
- package/dist/src/core/patch-lint-imports.js +0 -67
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -78
- package/dist/src/core/patch-lint-staged-registration.js +0 -110
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -57
- package/dist/src/core/patch-lint-token-scale.js +0 -286
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -191
- package/dist/src/core/patch-lint.js +0 -529
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -161
- package/dist/src/core/patch-parse.js +0 -347
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -216
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -507
- package/dist/src/core/typecheck.d.ts +0 -75
- package/dist/src/core/typecheck.js +0 -433
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1367
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -703
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -415
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Queue operations: renaming, reordering and splitting patches, moving
|
|
4
|
+
* files between them, removing and retiring them, closing gaps in the
|
|
5
|
+
* numbering, and editing a patch's metadata. Each is one {@link mutateQueue}
|
|
6
|
+
* transaction over the manifest rows, so a failure leaves the queue as it
|
|
7
|
+
* was and filenames follow the rows by themselves.
|
|
8
|
+
*
|
|
9
|
+
* Operations that move work between patches or change the apply order
|
|
10
|
+
* (reorder, split, move-files) must leave what the queue produces exactly as
|
|
11
|
+
* it was. Inside the transaction the new queue is replayed beside the old
|
|
12
|
+
* one, and the state each path ends in must be the same blob; otherwise
|
|
13
|
+
* (two patches that change the same lines swapped, a moved change that no
|
|
14
|
+
* longer fits where it lands) the operation is refused and nothing is
|
|
15
|
+
* written. Removing a patch must leave every other patch applying.
|
|
16
|
+
*/
|
|
17
|
+
import { defined, ExitCode } from '../kernel/errors.js';
|
|
18
|
+
import { applyToTree, covers, replay, sparseTree, statesIn, } from './apply.js';
|
|
19
|
+
import { engineHead, forgetApplied, regeneratePatchBody, sameState } from './baseline.js';
|
|
20
|
+
import { isPatchName, patchFilename, } from './manifest.js';
|
|
21
|
+
import { compactOrders, place } from './placement.js';
|
|
22
|
+
import { entryOf, mutateQueue, pathsOf, queueError, queueOfDraft, resolvePatch, slicePatch, } from './queue.js';
|
|
23
|
+
import { requireNoSession } from './session.js';
|
|
24
|
+
/** A refusal of what was asked (exit code 8). */
|
|
25
|
+
function usage(code, message, hint) {
|
|
26
|
+
return queueError(code, message, hint, ExitCode.INVALID_ARGUMENT);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Refuses a name that is not a valid patch name or that a patch already has.
|
|
30
|
+
*
|
|
31
|
+
* @param queue - The queue
|
|
32
|
+
* @param name - The candidate
|
|
33
|
+
* @throws `patch-name-invalid` or `patch-exists` (exit code 8)
|
|
34
|
+
*/
|
|
35
|
+
export function requireNewName(queue, name) {
|
|
36
|
+
if (!isPatchName(name)) {
|
|
37
|
+
throw usage('patch-name-invalid', `"${name}" is not a patch name.`, 'A patch name is lowercase words joined by hyphens, the first word its category: "ui-sidebar".');
|
|
38
|
+
}
|
|
39
|
+
const holder = queue.patches.find((patch) => patch.name === name);
|
|
40
|
+
if (holder !== undefined) {
|
|
41
|
+
throw usage('patch-exists', `A patch is already named ${name} (${holder.filename}).`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function rowOf(draft, name) {
|
|
45
|
+
const row = draft.patches.find((candidate) => candidate.name === name);
|
|
46
|
+
if (row === undefined)
|
|
47
|
+
throw queueError('patch-not-found', `${name} left the queue.`);
|
|
48
|
+
return row;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Runs `edit` as one queue transaction and reports what it changed, by
|
|
52
|
+
* comparing the draft rows before and after.
|
|
53
|
+
*/
|
|
54
|
+
async function operate(project, label, edit) {
|
|
55
|
+
await requireNoSession(project, label);
|
|
56
|
+
return mutateQueue(project, label, async (draft, queue) => {
|
|
57
|
+
const before = new Map(draft.patches.map((row) => [row, { filename: patchFilename(row), body: row.body }]));
|
|
58
|
+
await edit(draft, queue);
|
|
59
|
+
const renamed = [];
|
|
60
|
+
const created = [];
|
|
61
|
+
const rewritten = [];
|
|
62
|
+
for (const row of [...draft.patches].sort((a, b) => a.order - b.order)) {
|
|
63
|
+
const old = before.get(row);
|
|
64
|
+
const filename = patchFilename(row);
|
|
65
|
+
if (old === undefined) {
|
|
66
|
+
created.push(filename);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (old.filename !== filename)
|
|
70
|
+
renamed.push({ from: old.filename, to: filename });
|
|
71
|
+
if (!Buffer.from(old.body).equals(row.body))
|
|
72
|
+
rewritten.push(filename);
|
|
73
|
+
}
|
|
74
|
+
const kept = new Set(draft.patches);
|
|
75
|
+
const removed = [...before].filter(([row]) => !kept.has(row)).map(([, old]) => old.filename);
|
|
76
|
+
return { renamed, created, removed, rewritten };
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/** The sparse start tree for replaying the given queues on the engine's HEAD. */
|
|
80
|
+
async function startTree(project, queues) {
|
|
81
|
+
const engine = project.paths.engine;
|
|
82
|
+
const paths = pathsOf(queues.flatMap((queue) => queue.patches));
|
|
83
|
+
return { engine, start: await sparseTree(engine, await engineHead(project), paths), paths };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Refuses a draft whose queue does not produce exactly what the stored queue
|
|
87
|
+
* produces: every patch applies, and every path ends in the same state.
|
|
88
|
+
*/
|
|
89
|
+
async function requireSameResult(project, queue, draft, label) {
|
|
90
|
+
const next = queueOfDraft(queue.dir, draft);
|
|
91
|
+
const { engine, start, paths } = await startTree(project, [queue, next]);
|
|
92
|
+
const old = await replay(engine, start, queue.patches);
|
|
93
|
+
const oldFailure = old.failures[0];
|
|
94
|
+
if (oldFailure !== undefined) {
|
|
95
|
+
throw queueError('queue-does-not-apply', `The patch queue does not apply to the engine from ${oldFailure.patch} on.`, 'Run "fireforge import" and resolve the failing patch first.');
|
|
96
|
+
}
|
|
97
|
+
const result = await replay(engine, start, next.patches);
|
|
98
|
+
const failure = result.failures[0];
|
|
99
|
+
if (failure !== undefined) {
|
|
100
|
+
throw queueError('queue-operation-conflict', `${label} is refused: ${failure.patch} would no longer apply (${failure.message || 'its context changed'}).`, 'Patches that change the same lines keep their relative order.');
|
|
101
|
+
}
|
|
102
|
+
const was = await statesIn(engine, old.tree, paths);
|
|
103
|
+
const now = await statesIn(engine, result.tree, paths);
|
|
104
|
+
const changed = paths.filter((path) => !sameState(was.get(path), now.get(path)));
|
|
105
|
+
if (changed.length > 0) {
|
|
106
|
+
throw queueError('queue-operation-conflict', `${label} is refused: the queue would produce different content in ${changed.join(', ')}.`, 'Patches that change the same lines keep their relative order.');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* A placement with its patch identifiers (anything `resolvePatch` takes)
|
|
111
|
+
* resolved to names, as `place` reads them.
|
|
112
|
+
*
|
|
113
|
+
* @param queue - The queue
|
|
114
|
+
* @param placement - Where, as the user named it
|
|
115
|
+
*/
|
|
116
|
+
export function resolvePlacement(queue, placement) {
|
|
117
|
+
if ('before' in placement)
|
|
118
|
+
return { before: resolvePatch(queue, placement.before).name };
|
|
119
|
+
if ('after' in placement)
|
|
120
|
+
return { after: resolvePatch(queue, placement.after).name };
|
|
121
|
+
return placement;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Renames a patch. Its order, body and metadata stay; its file follows.
|
|
125
|
+
*
|
|
126
|
+
* @param project - A patch-mode project
|
|
127
|
+
* @param identifier - The patch (anything `resolvePatch` takes)
|
|
128
|
+
* @param name - The new name
|
|
129
|
+
* @throws `patch-name-invalid` or `patch-exists` (exit code 8)
|
|
130
|
+
*/
|
|
131
|
+
export function renamePatch(project, identifier, name) {
|
|
132
|
+
return operate(project, 'the rename', (draft, queue) => {
|
|
133
|
+
const patch = resolvePatch(queue, identifier);
|
|
134
|
+
if (patch.name === name)
|
|
135
|
+
return;
|
|
136
|
+
requireNewName(queue, name);
|
|
137
|
+
rowOf(draft, patch.name).name = name;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Moves a patch to another place in the apply order: an order number, or
|
|
142
|
+
* right before or after another patch (`placement.ts` describes how the run
|
|
143
|
+
* of orders above an occupied one moves up). Refused when the queue would
|
|
144
|
+
* then produce anything different.
|
|
145
|
+
*
|
|
146
|
+
* @param project - A patch-mode project with an engine
|
|
147
|
+
* @param identifier - The patch
|
|
148
|
+
* @param placement - Where; patches named by any identifier `resolvePatch` takes
|
|
149
|
+
* @throws `queue-operation-conflict` (exit code 6) when patches that change the same lines would swap
|
|
150
|
+
*/
|
|
151
|
+
export function reorderPatch(project, identifier, placement) {
|
|
152
|
+
return operate(project, 'the reorder', async (draft, queue) => {
|
|
153
|
+
const patch = resolvePatch(queue, identifier);
|
|
154
|
+
place(draft, patch.name, resolvePlacement(queue, placement));
|
|
155
|
+
await requireSameResult(project, queue, draft, `Moving ${patch.filename}`);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/** The files of a patch that the user's paths name: files, or everything under a directory. */
|
|
159
|
+
function filesNamed(patch, paths) {
|
|
160
|
+
const chosen = new Set();
|
|
161
|
+
for (const path of paths) {
|
|
162
|
+
const matches = patch.files.filter((file) => covers(path, file));
|
|
163
|
+
if (matches.length === 0) {
|
|
164
|
+
throw usage('patch-file-not-owned', `${patch.filename} does not touch ${path}.`);
|
|
165
|
+
}
|
|
166
|
+
for (const file of matches)
|
|
167
|
+
chosen.add(file);
|
|
168
|
+
}
|
|
169
|
+
return [...chosen].sort();
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Gives `receiver` the change `source` makes to `moved`: its new body is the
|
|
173
|
+
* diff, over its old files and the moved ones, from the state the new queue
|
|
174
|
+
* leaves before it to that state with its old body and the moved sections
|
|
175
|
+
* applied in their old relative order.
|
|
176
|
+
*/
|
|
177
|
+
async function absorb(project, queue, draft, move) {
|
|
178
|
+
const { source, receiver, moved, old } = move;
|
|
179
|
+
receiver.body = new Uint8Array();
|
|
180
|
+
const pending = queueOfDraft(queue.dir, draft);
|
|
181
|
+
const { engine, start } = await startTree(project, [queue]);
|
|
182
|
+
const earlier = pending.patches.filter((patch) => patch.order < receiver.order);
|
|
183
|
+
const before = await replay(engine, start, earlier);
|
|
184
|
+
const blocked = before.failures[0];
|
|
185
|
+
if (blocked !== undefined) {
|
|
186
|
+
throw queueError('queue-operation-conflict', `${blocked.patch} would no longer apply once ${moved.join(', ')} leave ${source.filename}.`);
|
|
187
|
+
}
|
|
188
|
+
const pieces = [slicePatch(source, new Set(moved), true)];
|
|
189
|
+
if (old !== undefined) {
|
|
190
|
+
if (old.index < source.index)
|
|
191
|
+
pieces.unshift(old);
|
|
192
|
+
else
|
|
193
|
+
pieces.push(old);
|
|
194
|
+
}
|
|
195
|
+
let tree = before.tree;
|
|
196
|
+
for (const piece of pieces) {
|
|
197
|
+
const outcome = await applyToTree(engine, tree, piece);
|
|
198
|
+
if (!outcome.applied) {
|
|
199
|
+
throw queueError('queue-operation-conflict', `The change to ${moved.join(', ')} does not fit where it would land: ${outcome.message}`, 'Move it into a patch next to its source, or place the new patch there.');
|
|
200
|
+
}
|
|
201
|
+
tree = outcome.tree;
|
|
202
|
+
}
|
|
203
|
+
const paths = [...new Set([...(old?.files ?? []), ...moved])].sort();
|
|
204
|
+
const { body } = await regeneratePatchBody(engine, { before: before.tree, after: tree, paths });
|
|
205
|
+
receiver.body = body;
|
|
206
|
+
}
|
|
207
|
+
/** Sets a row's lint waivers, dropping the field when there are none. */
|
|
208
|
+
function setWaivers(row, list) {
|
|
209
|
+
if (list.length === 0)
|
|
210
|
+
delete row.lintIgnore;
|
|
211
|
+
else
|
|
212
|
+
row.lintIgnore = list;
|
|
213
|
+
}
|
|
214
|
+
/** Sets a row's staged dependencies, dropping the field when there are none. */
|
|
215
|
+
function setDeclarations(row, list) {
|
|
216
|
+
if (list.length === 0)
|
|
217
|
+
delete row.stagedDependencies;
|
|
218
|
+
else
|
|
219
|
+
row.stagedDependencies = list;
|
|
220
|
+
}
|
|
221
|
+
/** Moves the staged dependencies declared on moved files from one row to another. */
|
|
222
|
+
function moveDeclarations(from, to, moved) {
|
|
223
|
+
const declared = from.stagedDependencies ?? [];
|
|
224
|
+
const going = declared.filter((entry) => moved.has(entry.file));
|
|
225
|
+
if (going.length === 0)
|
|
226
|
+
return;
|
|
227
|
+
setDeclarations(from, declared.filter((entry) => !moved.has(entry.file)));
|
|
228
|
+
setDeclarations(to, [...(to.stagedDependencies ?? []), ...going]);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Moves some files of a patch into a new patch, by default placed right
|
|
232
|
+
* after it. The new patch keeps the source's stamp and tier; staged
|
|
233
|
+
* dependencies declared on the moved files go with them. Refused when the
|
|
234
|
+
* queue would then produce anything different.
|
|
235
|
+
*
|
|
236
|
+
* @param project - A patch-mode project with an engine
|
|
237
|
+
* @param identifier - The patch to split
|
|
238
|
+
* @param options - See {@link SplitOptions}
|
|
239
|
+
* @throws `patch-split-all` (exit code 8) when every file would move
|
|
240
|
+
*/
|
|
241
|
+
export function splitPatch(project, identifier, options) {
|
|
242
|
+
return operate(project, 'the split', async (draft, queue) => {
|
|
243
|
+
const source = resolvePatch(queue, identifier);
|
|
244
|
+
const moved = filesNamed(source, options.files);
|
|
245
|
+
if (moved.length === source.files.length) {
|
|
246
|
+
throw usage('patch-split-all', `Splitting every file out of ${source.filename} leaves it empty.`, 'Rename the patch instead ("fireforge patch rename").');
|
|
247
|
+
}
|
|
248
|
+
requireNewName(queue, options.name);
|
|
249
|
+
const movedSet = new Set(moved);
|
|
250
|
+
const from = rowOf(draft, source.name);
|
|
251
|
+
from.body = slicePatch(source, movedSet, false).body;
|
|
252
|
+
const created = {
|
|
253
|
+
order: source.order,
|
|
254
|
+
name: options.name,
|
|
255
|
+
description: options.description ?? '',
|
|
256
|
+
firefox: source.firefox,
|
|
257
|
+
...(source.tier === undefined ? {} : { tier: source.tier }),
|
|
258
|
+
body: new Uint8Array(),
|
|
259
|
+
};
|
|
260
|
+
draft.patches.push(created);
|
|
261
|
+
place(draft, created.name, options.placement === undefined
|
|
262
|
+
? { after: source.name }
|
|
263
|
+
: resolvePlacement(queue, options.placement));
|
|
264
|
+
moveDeclarations(from, created, movedSet);
|
|
265
|
+
await absorb(project, queue, draft, { source, receiver: created, moved });
|
|
266
|
+
await requireSameResult(project, queue, draft, `Splitting ${source.filename}`);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Moves files from one patch into another existing patch. Where the target
|
|
271
|
+
* already changes a moved file, the two changes are combined in their old
|
|
272
|
+
* order. A source left with no files is removed. Staged dependencies
|
|
273
|
+
* declared on the moved files go with them. Refused when the queue would
|
|
274
|
+
* then produce anything different.
|
|
275
|
+
*
|
|
276
|
+
* @param project - A patch-mode project with an engine
|
|
277
|
+
* @param from - The patch the files leave
|
|
278
|
+
* @param to - The patch they join
|
|
279
|
+
* @param files - Engine files (or directories) of `from`
|
|
280
|
+
*/
|
|
281
|
+
export function moveFiles(project, from, to, files) {
|
|
282
|
+
return operate(project, 'the file move', async (draft, queue) => {
|
|
283
|
+
const source = resolvePatch(queue, from);
|
|
284
|
+
const target = resolvePatch(queue, to);
|
|
285
|
+
if (source.name === target.name) {
|
|
286
|
+
throw usage('invalid-argument', 'The source and target patch are the same.');
|
|
287
|
+
}
|
|
288
|
+
const moved = filesNamed(source, files);
|
|
289
|
+
const movedSet = new Set(moved);
|
|
290
|
+
const sourceRow = rowOf(draft, source.name);
|
|
291
|
+
const targetRow = rowOf(draft, target.name);
|
|
292
|
+
moveDeclarations(sourceRow, targetRow, movedSet);
|
|
293
|
+
if (moved.length === source.files.length) {
|
|
294
|
+
draft.patches = draft.patches.filter((row) => row !== sourceRow);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
sourceRow.body = slicePatch(source, movedSet, false).body;
|
|
298
|
+
}
|
|
299
|
+
await absorb(project, queue, draft, { source, receiver: targetRow, moved, old: target });
|
|
300
|
+
await requireSameResult(project, queue, draft, `Moving files to ${target.filename}`);
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
/** The patches that fail to replay, by name, carrying on past each failure. */
|
|
304
|
+
async function failing(project, start, patches) {
|
|
305
|
+
const result = await replay(project.paths.engine, start, patches, { keepGoing: true });
|
|
306
|
+
return new Set(result.failures.map((failure) => patches[failure.index]?.name ?? ''));
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Removes a patch from the queue, keeping its order as a retired slot when
|
|
310
|
+
* `retire` is given. Refused when another patch stops applying without it.
|
|
311
|
+
* The engine is not touched: the files only it changed keep their content
|
|
312
|
+
* and belong to no patch (`fireforge export` captures them, `fireforge
|
|
313
|
+
* discard` puts them back).
|
|
314
|
+
*/
|
|
315
|
+
async function removePatch(project, identifier, retire) {
|
|
316
|
+
let files = [];
|
|
317
|
+
let released = [];
|
|
318
|
+
const label = retire === undefined ? 'the deletion' : 'the retirement';
|
|
319
|
+
const edit = await operate(project, label, async (draft, queue) => {
|
|
320
|
+
const patch = resolvePatch(queue, identifier);
|
|
321
|
+
files = patch.files;
|
|
322
|
+
const kept = new Set(pathsOf(queue.patches.filter((other) => other.name !== patch.name)));
|
|
323
|
+
released = patch.files.filter((path) => !kept.has(path));
|
|
324
|
+
draft.patches = draft.patches.filter((row) => row.name !== patch.name);
|
|
325
|
+
if (retire !== undefined) {
|
|
326
|
+
draft.retired.push({
|
|
327
|
+
order: patch.order,
|
|
328
|
+
name: patch.name,
|
|
329
|
+
...(retire.reason === undefined ? {} : { reason: retire.reason }),
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
const { start } = await startTree(project, [queue]);
|
|
333
|
+
const already = await failing(project, start, queue.patches);
|
|
334
|
+
const now = await failing(project, start, queueOfDraft(queue.dir, draft).patches);
|
|
335
|
+
const broken = [...now].filter((name) => !already.has(name));
|
|
336
|
+
if (broken.length > 0) {
|
|
337
|
+
throw queueError('patch-has-dependents', `${patch.filename} cannot be removed: ${broken.join(', ')} would no longer apply without it.`, 'Remove the dependent patches first, or move their changes into another patch.');
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
// What the engine holds there is now the user's work, not the queue's output.
|
|
341
|
+
await forgetApplied(project, released);
|
|
342
|
+
return { ...edit, files };
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Deletes a patch: its row and file go. Refused when another patch stops
|
|
346
|
+
* applying without it; the engine is not touched.
|
|
347
|
+
*
|
|
348
|
+
* @param project - A patch-mode project with an engine
|
|
349
|
+
* @param identifier - The patch
|
|
350
|
+
* @throws `patch-has-dependents` (exit code 6) when a later patch needs it
|
|
351
|
+
*/
|
|
352
|
+
export function deletePatch(project, identifier) {
|
|
353
|
+
return removePatch(project, identifier, undefined);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Retires a patch: it is removed like {@link deletePatch}, and its order is
|
|
357
|
+
* kept as a retired slot, so the number is not given to another patch and
|
|
358
|
+
* the gap check sees no gap.
|
|
359
|
+
*
|
|
360
|
+
* @param project - A patch-mode project with an engine
|
|
361
|
+
* @param identifier - The patch
|
|
362
|
+
* @param reason - Recorded with the slot
|
|
363
|
+
*/
|
|
364
|
+
export function retirePatch(project, identifier, reason) {
|
|
365
|
+
return removePatch(project, identifier, reason === undefined ? {} : { reason });
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Closes the gaps in the queue's numbering, keeping the apply order
|
|
369
|
+
* (`compactOrders` in `placement.ts` describes how ranges are handled).
|
|
370
|
+
*
|
|
371
|
+
* @param project - A patch-mode project
|
|
372
|
+
*/
|
|
373
|
+
export function compactQueue(project) {
|
|
374
|
+
return operate(project, 'the compaction', (draft) => {
|
|
375
|
+
compactOrders(project.config.patchPolicy, draft);
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
function ruleOf(entry) {
|
|
379
|
+
return typeof entry === 'string' ? entry : entry.rule;
|
|
380
|
+
}
|
|
381
|
+
function absent(row, what, present) {
|
|
382
|
+
return usage('patch-meta-absent', `${patchFilename(row)} has no ${what}.`, `It has: ${present.join(', ') || 'none'}.`);
|
|
383
|
+
}
|
|
384
|
+
function editWaivers(row, change) {
|
|
385
|
+
let list = [...(row.lintIgnore ?? [])];
|
|
386
|
+
for (const rule of change.remove ?? []) {
|
|
387
|
+
if (!list.some((entry) => ruleOf(entry) === rule)) {
|
|
388
|
+
throw absent(row, `waiver of "${rule}"`, list.map(ruleOf));
|
|
389
|
+
}
|
|
390
|
+
list = list.filter((entry) => ruleOf(entry) !== rule);
|
|
391
|
+
}
|
|
392
|
+
for (const entry of change.add ?? []) {
|
|
393
|
+
list = [...list.filter((other) => ruleOf(other) !== ruleOf(entry)), entry];
|
|
394
|
+
}
|
|
395
|
+
setWaivers(row, list);
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* A staged dependency written `<file>:<creates>`, as `patch set` takes it.
|
|
399
|
+
*
|
|
400
|
+
* @param spec - The text
|
|
401
|
+
* @throws `invalid-argument` (exit code 8) without a `:` between two paths
|
|
402
|
+
*/
|
|
403
|
+
export function stagedDependencyOf(spec) {
|
|
404
|
+
const colon = spec.indexOf(':');
|
|
405
|
+
const file = spec.slice(0, colon).trim();
|
|
406
|
+
const creates = spec.slice(colon + 1).trim();
|
|
407
|
+
if (colon === -1 || file === '' || creates === '') {
|
|
408
|
+
throw usage('invalid-argument', `"${spec}" is not a staged dependency.`, 'Write it <file>:<creates>, the file in this patch and the file a later patch creates.');
|
|
409
|
+
}
|
|
410
|
+
return { file, creates };
|
|
411
|
+
}
|
|
412
|
+
function editDeclarations(row, change) {
|
|
413
|
+
const key = (entry) => `${entry.file}:${entry.creates}`;
|
|
414
|
+
let list = [...(row.stagedDependencies ?? [])];
|
|
415
|
+
for (const entry of change.remove ?? []) {
|
|
416
|
+
if (!list.some((other) => key(other) === key(entry))) {
|
|
417
|
+
throw absent(row, `staged dependency ${key(entry)}`, list.map(key));
|
|
418
|
+
}
|
|
419
|
+
list = list.filter((other) => key(other) !== key(entry));
|
|
420
|
+
}
|
|
421
|
+
for (const entry of change.add ?? []) {
|
|
422
|
+
list = [...list.filter((other) => key(other) !== key(entry)), entry];
|
|
423
|
+
}
|
|
424
|
+
setDeclarations(row, list);
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Edits a patch's metadata (description, tier, lint waivers, staged
|
|
428
|
+
* dependencies) in one transaction. The body is not touched.
|
|
429
|
+
*
|
|
430
|
+
* @param project - A patch-mode project
|
|
431
|
+
* @param identifier - The patch
|
|
432
|
+
* @param change - See {@link PatchMetaChange}
|
|
433
|
+
* @throws `patch-meta-absent` (exit code 8) when asked to drop something the patch does not have
|
|
434
|
+
*/
|
|
435
|
+
export async function setPatchMeta(project, identifier, change) {
|
|
436
|
+
let result;
|
|
437
|
+
await operate(project, 'the metadata edit', (draft, queue) => {
|
|
438
|
+
const row = rowOf(draft, resolvePatch(queue, identifier).name);
|
|
439
|
+
const before = JSON.stringify(entryOf(row));
|
|
440
|
+
if (change.description !== undefined)
|
|
441
|
+
row.description = change.description;
|
|
442
|
+
if (change.tier === null)
|
|
443
|
+
delete row.tier;
|
|
444
|
+
else if (change.tier !== undefined)
|
|
445
|
+
row.tier = change.tier;
|
|
446
|
+
if (change.lintIgnore !== undefined)
|
|
447
|
+
editWaivers(row, change.lintIgnore);
|
|
448
|
+
if (change.stagedDependencies !== undefined)
|
|
449
|
+
editDeclarations(row, change.stagedDependencies);
|
|
450
|
+
const entry = entryOf(row);
|
|
451
|
+
result = { patch: patchFilename(entry), entry, changed: JSON.stringify(entry) !== before };
|
|
452
|
+
});
|
|
453
|
+
return defined(result, 'the metadata edit ran');
|
|
454
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { ExitCode, FireForgeError, invariant } from '../kernel/errors.js';
|
|
2
|
+
import { categoryOf, patchFilename } from './manifest.js';
|
|
3
|
+
function within(range, order) {
|
|
4
|
+
return order >= range.from && order <= range.to;
|
|
5
|
+
}
|
|
6
|
+
function label(range) {
|
|
7
|
+
return `${range.from}-${range.to}`;
|
|
8
|
+
}
|
|
9
|
+
function reservedAt(policy, order) {
|
|
10
|
+
return policy.reservedRanges?.find((range) => within(range, order));
|
|
11
|
+
}
|
|
12
|
+
function rangeProblem(policy, entry) {
|
|
13
|
+
const filename = patchFilename(entry);
|
|
14
|
+
const reserved = reservedAt(policy, entry.order);
|
|
15
|
+
if (reserved !== undefined) {
|
|
16
|
+
return reserved.allowed.some((allowed) => allowed.filename === filename)
|
|
17
|
+
? undefined
|
|
18
|
+
: `${filename} is in the reserved range ${label(reserved)}, which does not list it`;
|
|
19
|
+
}
|
|
20
|
+
const category = categoryOf(entry.name);
|
|
21
|
+
const own = policy.ranges.filter((range) => range.category === category);
|
|
22
|
+
if (own.some((range) => within(range, entry.order)))
|
|
23
|
+
return undefined;
|
|
24
|
+
const holder = policy.ranges.find((range) => within(range, entry.order));
|
|
25
|
+
const expected = own.length === 0 ? 'no range' : own.map(label).join(', ');
|
|
26
|
+
const actual = holder === undefined
|
|
27
|
+
? 'outside every range'
|
|
28
|
+
: `in the ${holder.category} range ${label(holder)}`;
|
|
29
|
+
return `${filename}: ${category} patches have ${expected}, and order ${entry.order} is ${actual}`;
|
|
30
|
+
}
|
|
31
|
+
function gapProblems(policy, patches, retired) {
|
|
32
|
+
const problems = [];
|
|
33
|
+
for (const range of policy.ranges) {
|
|
34
|
+
const occupied = new Set([
|
|
35
|
+
...patches
|
|
36
|
+
.filter((entry) => categoryOf(entry.name) === range.category)
|
|
37
|
+
.map((entry) => entry.order),
|
|
38
|
+
...retired.map((slot) => slot.order),
|
|
39
|
+
]);
|
|
40
|
+
const orders = [...occupied]
|
|
41
|
+
.filter((order) => within(range, order) && reservedAt(policy, order) === undefined)
|
|
42
|
+
.sort((a, b) => a - b);
|
|
43
|
+
const missing = [];
|
|
44
|
+
for (let order = orders[0] ?? 0; order < (orders.at(-1) ?? 0); order++) {
|
|
45
|
+
if (!occupied.has(order) && reservedAt(policy, order) === undefined)
|
|
46
|
+
missing.push(order);
|
|
47
|
+
}
|
|
48
|
+
if (missing.length > 0) {
|
|
49
|
+
problems.push(`the ${range.category} range ${label(range)} has gaps at ${missing.join(', ')} (patchPolicy.allowGaps is false)`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return problems;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What the queue's rows break of the ordering policy.
|
|
56
|
+
*
|
|
57
|
+
* @param policy - `patchPolicy`, or undefined for none
|
|
58
|
+
* @param patches - The rows
|
|
59
|
+
* @param retired - The retired slots
|
|
60
|
+
* @returns One sentence per problem; empty when the rows comply
|
|
61
|
+
*/
|
|
62
|
+
export function policyProblems(policy, patches, retired) {
|
|
63
|
+
if (policy === undefined)
|
|
64
|
+
return [];
|
|
65
|
+
const pattern = policy.filenamePattern === undefined ? undefined : new RegExp(policy.filenamePattern);
|
|
66
|
+
const problems = [];
|
|
67
|
+
for (const entry of patches) {
|
|
68
|
+
const filename = patchFilename(entry);
|
|
69
|
+
if (pattern !== undefined && !pattern.test(filename)) {
|
|
70
|
+
problems.push(`${filename} does not match patchPolicy.filenamePattern`);
|
|
71
|
+
}
|
|
72
|
+
if (policy.requireDescription && entry.description.trim() === '') {
|
|
73
|
+
problems.push(`${filename} has no description (patchPolicy.requireDescription)`);
|
|
74
|
+
}
|
|
75
|
+
const range = rangeProblem(policy, entry);
|
|
76
|
+
if (range !== undefined)
|
|
77
|
+
problems.push(range);
|
|
78
|
+
}
|
|
79
|
+
return policy.allowGaps ? problems : [...problems, ...gapProblems(policy, patches, retired)];
|
|
80
|
+
}
|
|
81
|
+
function occupiedOrders(slots, except) {
|
|
82
|
+
return new Set([
|
|
83
|
+
...slots.patches.filter((row) => row.name !== except).map((row) => row.order),
|
|
84
|
+
...slots.retired.map((slot) => slot.order),
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The order a new patch of a category gets: after the highest occupied
|
|
89
|
+
* order, inside the category's ranges when a policy sets them.
|
|
90
|
+
*
|
|
91
|
+
* @param policy - `patchPolicy`, or undefined for none
|
|
92
|
+
* @param slots - The queue's rows and retired slots
|
|
93
|
+
* @param category - The new patch's category
|
|
94
|
+
* @throws `queue-category-unknown` or `queue-range-full` (exit code 6)
|
|
95
|
+
*/
|
|
96
|
+
export function nextOrder(policy, slots, category) {
|
|
97
|
+
const occupied = occupiedOrders(slots);
|
|
98
|
+
if (policy === undefined)
|
|
99
|
+
return Math.max(0, ...occupied) + 1;
|
|
100
|
+
const ranges = policy.ranges
|
|
101
|
+
.filter((range) => range.category === category)
|
|
102
|
+
.sort((a, b) => a.from - b.from);
|
|
103
|
+
if (ranges.length === 0) {
|
|
104
|
+
throw new FireForgeError('queue-category-unknown', `patchPolicy has no range for the category "${category}".`, {
|
|
105
|
+
exitCode: ExitCode.PATCH_ERROR,
|
|
106
|
+
hint: `Name the patch with one of the configured categories: ${[...new Set(policy.ranges.map((range) => range.category))].join(', ')}.`,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const inRanges = [...occupied].filter((order) => ranges.some((range) => within(range, order)));
|
|
110
|
+
const start = inRanges.length === 0 ? 0 : Math.max(...inRanges) + 1;
|
|
111
|
+
for (const range of ranges) {
|
|
112
|
+
for (let order = Math.max(start, range.from); order <= range.to; order++) {
|
|
113
|
+
if (!occupied.has(order) && reservedAt(policy, order) === undefined)
|
|
114
|
+
return order;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
throw new FireForgeError('queue-range-full', `The ${category} range ${ranges.map(label).join(', ')} has no free order after its last patch.`, {
|
|
118
|
+
exitCode: ExitCode.PATCH_ERROR,
|
|
119
|
+
hint: 'Run "fireforge patch compact", or place the patch with --order, --before or --after.',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/** Moves the consecutive run of occupied orders starting at `from` up by one. */
|
|
123
|
+
function shiftRun(slots, from, except) {
|
|
124
|
+
const occupied = occupiedOrders(slots, except);
|
|
125
|
+
let end = from;
|
|
126
|
+
while (occupied.has(end))
|
|
127
|
+
end++;
|
|
128
|
+
for (const row of slots.patches) {
|
|
129
|
+
if (row.name !== except && row.order >= from && row.order < end)
|
|
130
|
+
row.order += 1;
|
|
131
|
+
}
|
|
132
|
+
for (const slot of slots.retired) {
|
|
133
|
+
if (slot.order >= from && slot.order < end)
|
|
134
|
+
slot.order += 1;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function anchor(slots, name, moving) {
|
|
138
|
+
const row = slots.patches.find((candidate) => candidate.name === name);
|
|
139
|
+
if (row === undefined || name === moving) {
|
|
140
|
+
throw new FireForgeError('invalid-argument', name === moving
|
|
141
|
+
? `A patch cannot be placed beside itself (${name}).`
|
|
142
|
+
: `No patch is named ${name}.`, { exitCode: ExitCode.INVALID_ARGUMENT });
|
|
143
|
+
}
|
|
144
|
+
return row;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Gives the row named `name` its place: the order asked for, or the free
|
|
148
|
+
* order right before or after another patch. An occupied order is made free
|
|
149
|
+
* by moving the run of orders above it up by one; an explicit order that
|
|
150
|
+
* a retired slot holds takes the slot over.
|
|
151
|
+
*
|
|
152
|
+
* @param slots - The rows and retired slots, edited in place
|
|
153
|
+
* @param name - The row to place (already among `slots.patches`)
|
|
154
|
+
* @param placement - Where
|
|
155
|
+
* @returns The row's new order
|
|
156
|
+
*/
|
|
157
|
+
export function place(slots, name, placement) {
|
|
158
|
+
const row = slots.patches.find((candidate) => candidate.name === name);
|
|
159
|
+
invariant(row !== undefined, () => `place: ${name} is not among the rows`);
|
|
160
|
+
const occupied = occupiedOrders(slots, name);
|
|
161
|
+
let order;
|
|
162
|
+
if ('order' in placement) {
|
|
163
|
+
order = placement.order;
|
|
164
|
+
const retired = slots.retired.findIndex((slot) => slot.order === order);
|
|
165
|
+
const held = slots.patches.some((other) => other.name !== name && other.order === order);
|
|
166
|
+
if (retired !== -1 && !held)
|
|
167
|
+
slots.retired.splice(retired, 1);
|
|
168
|
+
else if (held)
|
|
169
|
+
shiftRun(slots, order, name);
|
|
170
|
+
}
|
|
171
|
+
else if ('before' in placement) {
|
|
172
|
+
const target = anchor(slots, placement.before, name);
|
|
173
|
+
order = target.order > 1 && !occupied.has(target.order - 1) ? target.order - 1 : target.order;
|
|
174
|
+
if (order === target.order)
|
|
175
|
+
shiftRun(slots, order, name);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const target = anchor(slots, placement.after, name);
|
|
179
|
+
order = target.order + 1;
|
|
180
|
+
if (occupied.has(order))
|
|
181
|
+
shiftRun(slots, order, name);
|
|
182
|
+
}
|
|
183
|
+
row.order = order;
|
|
184
|
+
return order;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Closes the gaps in the queue's orders, keeping their sequence. Without a
|
|
188
|
+
* policy the queue is numbered from 1; with one, each category range is
|
|
189
|
+
* numbered from its first patch, around reserved ranges and around patches
|
|
190
|
+
* of other categories that sit in it. Retired slots in renumbered orders are
|
|
191
|
+
* dropped.
|
|
192
|
+
*
|
|
193
|
+
* @param policy - `patchPolicy`, or undefined for none
|
|
194
|
+
* @param slots - The rows and retired slots, edited in place
|
|
195
|
+
*/
|
|
196
|
+
export function compactOrders(policy, slots) {
|
|
197
|
+
const sorted = [...slots.patches].sort((a, b) => a.order - b.order);
|
|
198
|
+
if (policy === undefined) {
|
|
199
|
+
for (const [index, row] of sorted.entries())
|
|
200
|
+
row.order = index + 1;
|
|
201
|
+
slots.retired.length = 0;
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
for (const range of policy.ranges) {
|
|
205
|
+
const members = sorted.filter((row) => categoryOf(row.name) === range.category &&
|
|
206
|
+
within(range, row.order) &&
|
|
207
|
+
reservedAt(policy, row.order) === undefined);
|
|
208
|
+
const first = members[0];
|
|
209
|
+
if (first === undefined)
|
|
210
|
+
continue;
|
|
211
|
+
const others = new Set(sorted.filter((row) => !members.includes(row)).map((row) => row.order));
|
|
212
|
+
let order = first.order;
|
|
213
|
+
for (const row of members) {
|
|
214
|
+
while (others.has(order) || reservedAt(policy, order) !== undefined)
|
|
215
|
+
order++;
|
|
216
|
+
row.order = order++;
|
|
217
|
+
}
|
|
218
|
+
slots.retired = slots.retired.filter((slot) => !within(range, slot.order));
|
|
219
|
+
}
|
|
220
|
+
}
|