@hominis/fireforge 0.55.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +233 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -456
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -359
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -382
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -423
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -241
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -766
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +111 -221
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -290
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +159 -723
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -719
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -98
- package/dist/src/commands/check-run.d.ts +0 -44
- package/dist/src/commands/check-run.js +0 -125
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -229
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -283
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/body.d.ts +0 -29
- package/dist/src/commands/patch/body.js +0 -60
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -54
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -263
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -114
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -27
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -78
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -251
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -285
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-each.d.ts +0 -46
- package/dist/src/commands/re-export-each.js +0 -110
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -37
- package/dist/src/commands/re-export-hunks.js +0 -264
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -192
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -53
- package/dist/src/commands/re-export-single.js +0 -426
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -44
- package/dist/src/commands/re-export-summary.js +0 -59
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -34
- package/dist/src/commands/test-build-phase.js +0 -291
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -70
- package/dist/src/commands/test-orchestrate.js +0 -277
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -56
- package/dist/src/commands/test-stale-gate.js +0 -208
- package/dist/src/commands/test-verdict.d.ts +0 -102
- package/dist/src/commands/test-verdict.js +0 -176
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck-explain.d.ts +0 -13
- package/dist/src/commands/typecheck-explain.js +0 -100
- package/dist/src/commands/typecheck.d.ts +0 -61
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -284
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -125
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -509
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/dev-profile.d.ts +0 -28
- package/dist/src/core/dev-profile.js +0 -58
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -67
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -131
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -167
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -81
- package/dist/src/core/furnace-constants.js +0 -125
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-deploy-owner.d.ts +0 -29
- package/dist/src/core/furnace-deploy-owner.js +0 -116
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -87
- package/dist/src/core/furnace-jsconfig.js +0 -248
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-tag-map.d.ts +0 -47
- package/dist/src/core/furnace-tag-map.js +0 -182
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -331
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -328
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -167
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache-checkjs.d.ts +0 -45
- package/dist/src/core/patch-lint-cache-checkjs.js +0 -195
- package/dist/src/core/patch-lint-cache.d.ts +0 -79
- package/dist/src/core/patch-lint-cache.js +0 -247
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -57
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -91
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs-resolve.d.ts +0 -31
- package/dist/src/core/patch-lint-checkjs-resolve.js +0 -86
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -182
- package/dist/src/core/patch-lint-checkjs.js +0 -563
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -9
- package/dist/src/core/patch-lint-imports.js +0 -90
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -98
- package/dist/src/core/patch-lint-staged-registration.js +0 -128
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -65
- package/dist/src/core/patch-lint-token-scale.js +0 -304
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -206
- package/dist/src/core/patch-lint.js +0 -533
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -176
- package/dist/src/core/patch-parse.js +0 -416
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -219
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-explain.d.ts +0 -93
- package/dist/src/core/typecheck-explain.js +0 -213
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -508
- package/dist/src/core/typecheck.d.ts +0 -97
- package/dist/src/core/typecheck.js +0 -457
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1372
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -732
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -422
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Capturing engine edits into the queue: `export` records edits no patch
|
|
4
|
+
* owns as a new patch, `re-export` rewrites existing patches from what the
|
|
5
|
+
* engine holds now.
|
|
6
|
+
*
|
|
7
|
+
* Re-export and overlapping patches. When several patches change one file,
|
|
8
|
+
* the engine holds the sum. An edit to that file (the engine differs from
|
|
9
|
+
* what the queue leaves there) goes to the re-exported patch whose lines it
|
|
10
|
+
* touches, when exactly one patch's lines are touched (`attribute.ts`), and
|
|
11
|
+
* otherwise to the last re-exported patch that changes the file. That
|
|
12
|
+
* patch's step is rewritten to end in the engine's content, and every other
|
|
13
|
+
* patch keeps its step. A file still holding what the last import wrote is
|
|
14
|
+
* behind the queue, not edited, and goes to no patch. When that
|
|
15
|
+
* patch is not the last one changing the file, the later patches' sections
|
|
16
|
+
* for it are first taken back out of the engine's content (applied in
|
|
17
|
+
* reverse), so they still apply on top and the queue still ends in exactly
|
|
18
|
+
* what the engine holds; when that is impossible (the edit touches lines a
|
|
19
|
+
* later patch changes) the re-export is refused, naming the later patch to
|
|
20
|
+
* re-export instead. A patch whose files hold no edit keeps its body byte
|
|
21
|
+
* for byte, so re-exporting an unchanged engine changes nothing. A deleted
|
|
22
|
+
* file is captured as a deletion; a file a patch created that the engine no
|
|
23
|
+
* longer has leaves the patch.
|
|
24
|
+
*
|
|
25
|
+
* Every body comes from `regeneratePatchBody`.
|
|
26
|
+
*/
|
|
27
|
+
import { dirname } from 'node:path';
|
|
28
|
+
import { affectedPaths, parsePatch } from '../diff/index.js';
|
|
29
|
+
import { captureWorktree, writeTree } from '../git/index.js';
|
|
30
|
+
import { ExitCode } from '../kernel/errors.js';
|
|
31
|
+
import { applyToTree, covers, sparseTree, statesIn, unapplyFromTree, } from './apply.js';
|
|
32
|
+
import { attributeEdits } from './attribute.js';
|
|
33
|
+
import { classifyEngine, projectQueue, readApplied, regeneratePatchBody, sameState, } from './baseline.js';
|
|
34
|
+
import { queueChanges, requireApplies } from './changes.js';
|
|
35
|
+
import { categoryOf, sameStamp } from './manifest.js';
|
|
36
|
+
import { requireNewName, resolvePlacement } from './operations.js';
|
|
37
|
+
import { nextOrder, place } from './placement.js';
|
|
38
|
+
import { loadQueue, mutateQueue, previewQueue, queueError, selectPatches, slicePatch, } from './queue.js';
|
|
39
|
+
import { requireNoSession, stampOf } from './session.js';
|
|
40
|
+
function usage(message) {
|
|
41
|
+
return queueError('invalid-argument', message, undefined, ExitCode.INVALID_ARGUMENT);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Runs a queue change, or with `dryRun` only previews it. Returns the queue
|
|
45
|
+
* as written (or as it would be), and for a preview its owned changes.
|
|
46
|
+
*/
|
|
47
|
+
async function commit(project, label, dryRun, edit) {
|
|
48
|
+
if (!dryRun) {
|
|
49
|
+
const result = await mutateQueue(project, label, edit);
|
|
50
|
+
return { result, queue: await loadQueue(project) };
|
|
51
|
+
}
|
|
52
|
+
const preview = await previewQueue(project, label, edit);
|
|
53
|
+
return { ...preview, changes: await queueChanges(project, preview.queue) };
|
|
54
|
+
}
|
|
55
|
+
function placementOf(options) {
|
|
56
|
+
const given = [];
|
|
57
|
+
if (options.order !== undefined)
|
|
58
|
+
given.push({ order: options.order });
|
|
59
|
+
if (options.before !== undefined)
|
|
60
|
+
given.push({ before: options.before });
|
|
61
|
+
if (options.after !== undefined)
|
|
62
|
+
given.push({ after: options.after });
|
|
63
|
+
if (given.length > 1)
|
|
64
|
+
throw usage('Give at most one of order, before and after.');
|
|
65
|
+
return given[0];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The paths an export captures: every unowned edit the request covers. A
|
|
69
|
+
* named path must cover one; a named file a patch changes is refused.
|
|
70
|
+
*/
|
|
71
|
+
function exportedPaths(paths, classified) {
|
|
72
|
+
const files = classified
|
|
73
|
+
.filter((entry) => entry.state === 'unmanaged')
|
|
74
|
+
.map((entry) => entry.path);
|
|
75
|
+
const owned = classified.filter((entry) => entry.owners.length > 0 && entry.state !== 'clean');
|
|
76
|
+
for (const path of paths) {
|
|
77
|
+
const ownedHere = owned.find((entry) => entry.path === path.replace(/\/+$/, ''));
|
|
78
|
+
if (ownedHere !== undefined) {
|
|
79
|
+
throw queueError('export-owned', `${ownedHere.path} is already changed by ${ownedHere.owners.join(', ')}.`, `Record the edit there with "fireforge re-export ${ownedHere.owners.at(-1) ?? ''}".`);
|
|
80
|
+
}
|
|
81
|
+
if (!files.some((file) => covers(path, file))) {
|
|
82
|
+
throw queueError('export-nothing', `${path} holds no edit that no patch owns.`, owned.some((entry) => covers(path, entry.path))
|
|
83
|
+
? 'Its edited files belong to patches; "fireforge re-export" records the edits there.'
|
|
84
|
+
: undefined);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return files;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Captures engine edits that no patch owns into a new patch: the diff of
|
|
91
|
+
* the named paths (or of every unowned edit, with `all`) against the
|
|
92
|
+
* pristine engine, stamped with the project's pin. A named file another
|
|
93
|
+
* patch already changes is refused; under a named directory such files are
|
|
94
|
+
* left out (they are `re-export`'s).
|
|
95
|
+
*
|
|
96
|
+
* The caller holds the engine lock (shared for a dry run). Linting is the
|
|
97
|
+
* caller's: a dry run returns the would-be queue as owned changes, and the
|
|
98
|
+
* real run writes exactly that queue.
|
|
99
|
+
*
|
|
100
|
+
* @param project - A patch-mode project with an engine
|
|
101
|
+
* @param options - See {@link ExportOptions}
|
|
102
|
+
* @throws `export-nothing` or `export-owned` (exit code 6); `patch-name-invalid` or `patch-exists` (exit code 8)
|
|
103
|
+
*/
|
|
104
|
+
export async function exportPatch(project, options) {
|
|
105
|
+
const paths = options.paths ?? [];
|
|
106
|
+
if ((options.all === true) === paths.length > 0) {
|
|
107
|
+
throw usage('Name the paths to export, or export every unowned edit with "all".');
|
|
108
|
+
}
|
|
109
|
+
await requireNoSession(project, 'the export');
|
|
110
|
+
const queue = await loadQueue(project);
|
|
111
|
+
requireNewName(queue, options.name);
|
|
112
|
+
const placement = placementOf(options);
|
|
113
|
+
const resolved = placement === undefined ? undefined : resolvePlacement(queue, placement);
|
|
114
|
+
const projection = await projectQueue(project, queue);
|
|
115
|
+
const scope = options.all === true ? undefined : paths;
|
|
116
|
+
const files = exportedPaths(paths, await classifyEngine(project, projection, scope));
|
|
117
|
+
if (files.length === 0)
|
|
118
|
+
throw queueError('export-nothing', 'The engine holds no unowned edit.');
|
|
119
|
+
const engine = project.paths.engine;
|
|
120
|
+
const before = await sparseTree(engine, projection.base, files);
|
|
121
|
+
const { body } = await regeneratePatchBody(engine, { before, paths: files });
|
|
122
|
+
const label = `the export of ${options.name}`;
|
|
123
|
+
const done = await commit(project, label, options.dryRun === true, (draft) => {
|
|
124
|
+
draft.patches.push({
|
|
125
|
+
order: nextOrder(project.config.patchPolicy, draft, categoryOf(options.name)),
|
|
126
|
+
name: options.name,
|
|
127
|
+
description: options.description ?? '',
|
|
128
|
+
firefox: stampOf(project),
|
|
129
|
+
...(options.tier === undefined ? {} : { tier: options.tier }),
|
|
130
|
+
body,
|
|
131
|
+
});
|
|
132
|
+
if (resolved !== undefined)
|
|
133
|
+
place(draft, options.name, resolved);
|
|
134
|
+
});
|
|
135
|
+
const patch = done.queue.patches.find((candidate) => candidate.name === options.name);
|
|
136
|
+
if (patch === undefined)
|
|
137
|
+
throw queueError('export-lost', `${options.name} was not written.`);
|
|
138
|
+
return { patch, files, ...(done.changes === undefined ? {} : { changes: done.changes }) };
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* The unowned edits `scan` adopts, by patch name: a changed path no patch
|
|
142
|
+
* owns, in a directory one of a selected patch's files is in. A path two
|
|
143
|
+
* selected patches could adopt goes to the later one.
|
|
144
|
+
*/
|
|
145
|
+
async function adoptions(project, projection, selected) {
|
|
146
|
+
const dirOf = (path) => (dirname(path) === '.' ? '' : dirname(path));
|
|
147
|
+
const dirs = [...new Set(selected.flatMap((patch) => patch.files.map(dirOf)))];
|
|
148
|
+
const found = new Map();
|
|
149
|
+
for (const entry of await classifyEngine(project, projection, dirs)) {
|
|
150
|
+
if (entry.state !== 'unmanaged')
|
|
151
|
+
continue;
|
|
152
|
+
const owner = [...selected]
|
|
153
|
+
.reverse()
|
|
154
|
+
.find((patch) => patch.files.some((file) => dirOf(file) === dirOf(entry.path)));
|
|
155
|
+
if (owner !== undefined)
|
|
156
|
+
found.set(owner.name, [...(found.get(owner.name) ?? []), entry.path]);
|
|
157
|
+
}
|
|
158
|
+
return found;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Decides which selected patch takes each edit: the one whose lines it
|
|
162
|
+
* touches (see `attribute.ts`), else the default candidate. A path still
|
|
163
|
+
* holding what the last import wrote is behind the queue, not edited.
|
|
164
|
+
*/
|
|
165
|
+
async function assignEdits(project, queue, plan, choice) {
|
|
166
|
+
const engine = project.paths.engine;
|
|
167
|
+
const { projection, start, paths } = plan;
|
|
168
|
+
const worktree = await captureWorktree(engine, { base: start, paths });
|
|
169
|
+
const now = await statesIn(engine, worktree, paths);
|
|
170
|
+
const base = await statesIn(engine, start, paths);
|
|
171
|
+
const applied = await readApplied(project, projection.base);
|
|
172
|
+
const queued = new Set(projection.paths);
|
|
173
|
+
const final = (path) => queued.has(path) ? projection.final(path) : (base.get(path) ?? null);
|
|
174
|
+
const edited = (path) => !sameState(now.get(path), final(path)) &&
|
|
175
|
+
!(applied.has(path) && sameState(now.get(path), applied.get(path)));
|
|
176
|
+
const takers = new Map([...choice.candidates].filter(([path]) => edited(path)));
|
|
177
|
+
const attributed = await attributeEdits(engine, projection, new Map([...takers.keys()].map((path) => [path, now.get(path) ?? null])));
|
|
178
|
+
for (const [path, filename] of attributed) {
|
|
179
|
+
const owner = choice.selected.find((patch) => patch.filename === filename);
|
|
180
|
+
if (owner?.files.includes(path) === true)
|
|
181
|
+
takers.set(path, owner);
|
|
182
|
+
}
|
|
183
|
+
let tree = worktree;
|
|
184
|
+
for (const later of [...queue.patches].reverse()) {
|
|
185
|
+
const back = later.files.filter((path) => (takers.get(path)?.index ?? Infinity) < later.index);
|
|
186
|
+
if (back.length === 0)
|
|
187
|
+
continue;
|
|
188
|
+
const outcome = await unapplyFromTree(engine, tree, slicePatch(later, new Set(back), true));
|
|
189
|
+
if (!outcome.applied) {
|
|
190
|
+
const names = [...new Set(back.map((path) => takers.get(path)?.filename ?? ''))];
|
|
191
|
+
throw queueError('re-export-overlap', `The edit to ${back.join(', ')} cannot go to ${names.join(', ')}: ${later.filename} changes the same lines after it.`, `Re-export ${later.filename} as well, so it can take the edit.`);
|
|
192
|
+
}
|
|
193
|
+
tree = outcome.tree;
|
|
194
|
+
}
|
|
195
|
+
const targets = await statesIn(engine, tree, [...takers.keys()]);
|
|
196
|
+
const expected = new Map(paths.map((path) => [path, takers.has(path) ? (now.get(path) ?? null) : final(path)]));
|
|
197
|
+
return { takers, targets, expected };
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* The new bodies: the queue replayed from the pristine engine, each patch
|
|
201
|
+
* that takes an edit rewritten from the tree before it to that tree with
|
|
202
|
+
* its own step applied and the taken paths set to their targets.
|
|
203
|
+
*/
|
|
204
|
+
async function rewriteBodies(project, queue, start, takes, adopted) {
|
|
205
|
+
const engine = project.paths.engine;
|
|
206
|
+
const bodies = new Map();
|
|
207
|
+
let tree = start;
|
|
208
|
+
for (const patch of queue.patches) {
|
|
209
|
+
const outcome = await applyToTree(engine, tree, patch);
|
|
210
|
+
if (!outcome.applied) {
|
|
211
|
+
throw queueError('re-export-overlap', `${patch.filename} would no longer apply after the edits before it: ${outcome.message}`, `Re-export ${patch.filename} as well.`);
|
|
212
|
+
}
|
|
213
|
+
const taken = [...takes.takers].filter(([, taker]) => taker === patch).map(([path]) => path);
|
|
214
|
+
if (taken.length === 0) {
|
|
215
|
+
tree = outcome.tree;
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
const after = await writeTree(engine, taken.map((path) => {
|
|
219
|
+
const state = takes.targets.get(path) ?? null;
|
|
220
|
+
return state === null
|
|
221
|
+
? { path, remove: true }
|
|
222
|
+
: { path, oid: state.oid, mode: state.mode };
|
|
223
|
+
}), outcome.tree);
|
|
224
|
+
const files = [...new Set([...patch.files, ...(adopted.get(patch.name) ?? [])])].sort();
|
|
225
|
+
const { body } = await regeneratePatchBody(engine, { before: tree, after, paths: files });
|
|
226
|
+
if (body.length === 0) {
|
|
227
|
+
throw queueError('re-export-empty', `${patch.filename} would be left with no change: the engine holds none of its edits.`, 'Delete or retire it ("fireforge patch delete|retire"), or run "fireforge import" if the engine lost them.');
|
|
228
|
+
}
|
|
229
|
+
bodies.set(patch.name, body);
|
|
230
|
+
tree = after;
|
|
231
|
+
}
|
|
232
|
+
const result = await statesIn(engine, tree, [...takes.expected.keys()]);
|
|
233
|
+
const off = [...takes.expected].filter(([path, state]) => !sameState(result.get(path), state));
|
|
234
|
+
if (off.length > 0) {
|
|
235
|
+
throw queueError('re-export-mismatch', `The rewritten queue would not reproduce the engine in ${off.map(([path]) => path).join(', ')}.`);
|
|
236
|
+
}
|
|
237
|
+
return bodies;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Rewrites patches from what the engine holds now, so their edits since the
|
|
241
|
+
* last export are recorded (see the module comment for how an edit to a
|
|
242
|
+
* file several patches change is placed). With `scan`, unowned edits in the
|
|
243
|
+
* selected patches' directories are adopted. Metadata is kept; `stamp`
|
|
244
|
+
* restamps the selected patches with the project's pin.
|
|
245
|
+
*
|
|
246
|
+
* The caller holds the engine lock (shared for a dry run).
|
|
247
|
+
*
|
|
248
|
+
* @param project - A patch-mode project with an engine
|
|
249
|
+
* @param options - See {@link ReExportOptions}
|
|
250
|
+
* @throws `re-export-overlap`, `re-export-empty` or `queue-does-not-apply` (exit code 6)
|
|
251
|
+
*/
|
|
252
|
+
export async function reExport(project, options) {
|
|
253
|
+
const named = options.patches ?? [];
|
|
254
|
+
if ((options.all === true) === named.length > 0) {
|
|
255
|
+
throw usage('Name the patches to re-export, or re-export every patch with "all".');
|
|
256
|
+
}
|
|
257
|
+
await requireNoSession(project, 'the re-export');
|
|
258
|
+
const queue = await loadQueue(project);
|
|
259
|
+
const selected = options.all === true ? [...queue.patches] : selectPatches(queue, named);
|
|
260
|
+
const projection = await projectQueue(project, queue);
|
|
261
|
+
requireApplies(projection);
|
|
262
|
+
const adopted = options.scan === true
|
|
263
|
+
? await adoptions(project, projection, selected)
|
|
264
|
+
: new Map();
|
|
265
|
+
const candidates = new Map();
|
|
266
|
+
for (const patch of selected)
|
|
267
|
+
for (const path of patch.files)
|
|
268
|
+
candidates.set(path, patch);
|
|
269
|
+
for (const patch of selected) {
|
|
270
|
+
for (const path of adopted.get(patch.name) ?? [])
|
|
271
|
+
candidates.set(path, patch);
|
|
272
|
+
}
|
|
273
|
+
const engine = project.paths.engine;
|
|
274
|
+
const paths = [...new Set([...projection.paths, ...candidates.keys()])].sort();
|
|
275
|
+
const start = await sparseTree(engine, projection.base, paths);
|
|
276
|
+
const takes = await assignEdits(project, queue, { projection, start, paths }, { candidates, selected });
|
|
277
|
+
const bodies = await rewriteBodies(project, queue, start, takes, adopted);
|
|
278
|
+
const stamp = stampOf(project);
|
|
279
|
+
const done = await commit(project, 'the re-export', options.dryRun === true, (draft) => selected.map((patch) => {
|
|
280
|
+
const row = draft.patches.find((candidate) => candidate.name === patch.name);
|
|
281
|
+
const body = bodies.get(patch.name) ?? patch.body;
|
|
282
|
+
const stamped = options.stamp === true && !sameStamp(patch.firefox, stamp);
|
|
283
|
+
if (row !== undefined) {
|
|
284
|
+
row.body = body;
|
|
285
|
+
if (stamped)
|
|
286
|
+
row.firefox = stamp;
|
|
287
|
+
}
|
|
288
|
+
const files = new Set(affectedPaths(parsePatch(body)));
|
|
289
|
+
return {
|
|
290
|
+
patch: patch.filename,
|
|
291
|
+
status: body.equals(patch.body) ? 'unchanged' : 'rewritten',
|
|
292
|
+
adopted: (adopted.get(patch.name) ?? []).filter((path) => files.has(path)),
|
|
293
|
+
dropped: patch.files.filter((path) => !files.has(path)),
|
|
294
|
+
stamped,
|
|
295
|
+
};
|
|
296
|
+
}));
|
|
297
|
+
return { patches: done.result, ...(done.changes === undefined ? {} : { changes: done.changes }) };
|
|
298
|
+
}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* The patch queue as the owned-change model (`project/changes.ts`).
|
|
4
|
+
*
|
|
5
|
+
* Two change sets describe a patch-mode project:
|
|
6
|
+
*
|
|
7
|
+
* - {@link queueChanges}: the stored queue. One group per patch, in queue
|
|
8
|
+
* order; one step per patch per path it changes, relative to what the
|
|
9
|
+
* earlier patches left. Rules about a patch's own work read this
|
|
10
|
+
* (`lint --per-patch`, size, waivers).
|
|
11
|
+
* - {@link engineChanges}: what the engine holds now, relative to HEAD. One
|
|
12
|
+
* step per changed path. A path the queue touches belongs to the first
|
|
13
|
+
* patch that touches it; an edit to any other path has no group, which is
|
|
14
|
+
* how work not yet exported appears. Every change carries `meta.state`,
|
|
15
|
+
* its {@link EngineState}, so a rule or report can tell exported work from
|
|
16
|
+
* edits not yet in a patch. Rules about what the engine ends up holding
|
|
17
|
+
* read this (`lint` by default).
|
|
18
|
+
*
|
|
19
|
+
* Both share the queue's groups, so tier and waivers apply either way.
|
|
20
|
+
*/
|
|
21
|
+
import { formatPatch } from '../diff/index.js';
|
|
22
|
+
import { diffTrees, readBlobs, writeTree } from '../git/index.js';
|
|
23
|
+
import { ExitCode, FireForgeError } from '../kernel/errors.js';
|
|
24
|
+
import { createChangeSet, textContent, } from '../project/index.js';
|
|
25
|
+
import { statesIn } from './apply.js';
|
|
26
|
+
import { classifyEngine, engineStates, projectQueue, sameState, } from './baseline.js';
|
|
27
|
+
import { loadQueue, sectionsFor } from './queue.js';
|
|
28
|
+
/**
|
|
29
|
+
* Reads blobs on demand, batching the requests made in one turn of the event
|
|
30
|
+
* loop into one `git cat-file --batch`.
|
|
31
|
+
*/
|
|
32
|
+
function blobReader(repo) {
|
|
33
|
+
let pending;
|
|
34
|
+
const flush = async (batch) => {
|
|
35
|
+
try {
|
|
36
|
+
const blobs = await readBlobs(repo, [...batch.keys()]);
|
|
37
|
+
for (const [oid, waiters] of batch) {
|
|
38
|
+
const bytes = blobs.get(oid);
|
|
39
|
+
for (const waiter of waiters) {
|
|
40
|
+
if (bytes === undefined)
|
|
41
|
+
waiter.reject(new FireForgeError('queue-blob-missing', `Blob ${oid} is missing.`));
|
|
42
|
+
else
|
|
43
|
+
waiter.resolve(bytes);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
for (const waiters of batch.values())
|
|
49
|
+
for (const waiter of waiters)
|
|
50
|
+
waiter.reject(error);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
return (oid) => new Promise((resolve, reject) => {
|
|
54
|
+
if (pending === undefined) {
|
|
55
|
+
const batch = new Map();
|
|
56
|
+
pending = batch;
|
|
57
|
+
queueMicrotask(() => {
|
|
58
|
+
pending = undefined;
|
|
59
|
+
void flush(batch);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
pending.set(oid, [...(pending.get(oid) ?? []), { resolve, reject }]);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** The change model's mode for a git file mode. */
|
|
66
|
+
function changeMode(mode) {
|
|
67
|
+
return mode === '100755' || mode === '120000' ? mode : '100644';
|
|
68
|
+
}
|
|
69
|
+
/** The group a patch forms, with the facts rules read. */
|
|
70
|
+
function groupOf(patch) {
|
|
71
|
+
const dependencies = (patch.stagedDependencies ?? []).map(({ file, creates }) => ({
|
|
72
|
+
file,
|
|
73
|
+
creates,
|
|
74
|
+
}));
|
|
75
|
+
const meta = {
|
|
76
|
+
name: patch.name,
|
|
77
|
+
order: patch.order,
|
|
78
|
+
category: patch.category,
|
|
79
|
+
description: patch.description,
|
|
80
|
+
firefox: patch.firefox,
|
|
81
|
+
...(dependencies.length === 0 ? {} : { stagedDependencies: dependencies }),
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
id: patch.filename,
|
|
85
|
+
...(patch.tier === undefined ? {} : { tier: patch.tier }),
|
|
86
|
+
...(patch.lintIgnore === undefined || patch.lintIgnore.length === 0
|
|
87
|
+
? {}
|
|
88
|
+
: { lintIgnore: patch.lintIgnore }),
|
|
89
|
+
meta,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function groupsOf(queue) {
|
|
93
|
+
return queue.patches.map(groupOf);
|
|
94
|
+
}
|
|
95
|
+
/** One change from two states; undefined when they are equal. */
|
|
96
|
+
function changeOf(input, read) {
|
|
97
|
+
const { path, before, after, binary, meta } = input;
|
|
98
|
+
const base = { path, binary, ...(input.group === undefined ? {} : { group: input.group }), meta };
|
|
99
|
+
if (before === null && after !== null) {
|
|
100
|
+
return { ...base, kind: 'create', after: () => read(after.oid), mode: changeMode(after.mode) };
|
|
101
|
+
}
|
|
102
|
+
if (before !== null && after === null) {
|
|
103
|
+
return {
|
|
104
|
+
...base,
|
|
105
|
+
kind: 'delete',
|
|
106
|
+
before: () => read(before.oid),
|
|
107
|
+
previousMode: changeMode(before.mode),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (before === null || after === null || sameState(before, after))
|
|
111
|
+
return undefined;
|
|
112
|
+
return {
|
|
113
|
+
...base,
|
|
114
|
+
kind: 'modify',
|
|
115
|
+
before: () => read(before.oid),
|
|
116
|
+
after: () => read(after.oid),
|
|
117
|
+
previousMode: changeMode(before.mode),
|
|
118
|
+
mode: changeMode(after.mode),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/** The diff of any change, from its content: two one-file trees, diffed in the pinned format. */
|
|
122
|
+
async function diffOfContent(repo, change) {
|
|
123
|
+
const before = change.kind === 'create'
|
|
124
|
+
? []
|
|
125
|
+
: [{ path: change.path, content: await change.before(), mode: change.previousMode }];
|
|
126
|
+
const after = change.kind === 'delete'
|
|
127
|
+
? []
|
|
128
|
+
: [{ path: change.path, content: await change.after(), mode: change.mode }];
|
|
129
|
+
const [from, to] = [await writeTree(repo, before), await writeTree(repo, after)];
|
|
130
|
+
return (await diffTrees(repo, from, to)).toString('utf8');
|
|
131
|
+
}
|
|
132
|
+
function isBinarySection(patch, path) {
|
|
133
|
+
return sectionsFor(patch, path).some((file) => file.binary !== undefined || file.encoding === 'latin1');
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Refuses a projection that stops before the end of the queue.
|
|
137
|
+
*
|
|
138
|
+
* @param projection - The queue replayed onto the engine's HEAD
|
|
139
|
+
* @throws `queue-does-not-apply` (exit code 6)
|
|
140
|
+
*/
|
|
141
|
+
export function requireApplies(projection) {
|
|
142
|
+
const failure = projection.failure;
|
|
143
|
+
if (failure === undefined)
|
|
144
|
+
return;
|
|
145
|
+
throw new FireForgeError('queue-does-not-apply', `The patch queue does not apply to the engine from ${failure.patch} on: ${failure.message}`, {
|
|
146
|
+
exitCode: ExitCode.PATCH_ERROR,
|
|
147
|
+
hint: 'Run "fireforge import" to see the conflict and resolve it, or "fireforge rebase" after a pin change.',
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* The stored queue as a change set: one group per patch, one step per patch
|
|
152
|
+
* per path it changes. Content is read from the engine's object store.
|
|
153
|
+
*
|
|
154
|
+
* @param project - A patch-mode project with an engine
|
|
155
|
+
* @param draft - A queue to judge instead of the stored one (see `queueOfDraft`)
|
|
156
|
+
* @throws `queue-does-not-apply` (exit code 6) when the queue does not replay onto the engine's HEAD
|
|
157
|
+
*/
|
|
158
|
+
export async function queueChanges(project, draft) {
|
|
159
|
+
const engine = project.paths.engine;
|
|
160
|
+
const queue = draft ?? (await loadQueue(project));
|
|
161
|
+
const projection = await projectQueue(project, queue, { cache: draft === undefined });
|
|
162
|
+
requireApplies(projection);
|
|
163
|
+
const read = blobReader(engine);
|
|
164
|
+
const sections = new Map();
|
|
165
|
+
const changes = [];
|
|
166
|
+
const current = new Map(projection.paths.map((path) => [path, projection.history(path)[0]?.state ?? null]));
|
|
167
|
+
for (const [index, step] of projection.steps.entries()) {
|
|
168
|
+
const patch = queue.patches[index];
|
|
169
|
+
if (patch === undefined)
|
|
170
|
+
continue;
|
|
171
|
+
for (const { path, state } of step.changes) {
|
|
172
|
+
const change = changeOf({
|
|
173
|
+
path,
|
|
174
|
+
before: current.get(path) ?? null,
|
|
175
|
+
after: state,
|
|
176
|
+
binary: isBinarySection(patch, path),
|
|
177
|
+
group: patch.filename,
|
|
178
|
+
meta: {},
|
|
179
|
+
}, read);
|
|
180
|
+
current.set(path, state);
|
|
181
|
+
if (change === undefined)
|
|
182
|
+
continue;
|
|
183
|
+
const files = sectionsFor(patch, path);
|
|
184
|
+
sections.set(change, formatPatch({ ...patch.diff, preamble: [], files, finalNewline: true }).toString(patch.diff.encoding));
|
|
185
|
+
changes.push(change);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return createChangeSet({
|
|
189
|
+
groups: groupsOf(queue),
|
|
190
|
+
changes,
|
|
191
|
+
diff: async (change) => sections.get(change) ?? diffOfContent(engine, change),
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* What the engine holds now, relative to HEAD, as a change set (see the
|
|
196
|
+
* module comment). Edits not yet exported are the changes without a group,
|
|
197
|
+
* and the queue files' edits carry `meta.state: "modified"`.
|
|
198
|
+
*
|
|
199
|
+
* @param project - A patch-mode project with an engine
|
|
200
|
+
*/
|
|
201
|
+
export async function engineChanges(project) {
|
|
202
|
+
const engine = project.paths.engine;
|
|
203
|
+
const queue = await loadQueue(project);
|
|
204
|
+
const projection = await projectQueue(project, queue);
|
|
205
|
+
const classified = await classifyEngine(project, projection);
|
|
206
|
+
const paths = classified.map((entry) => entry.path);
|
|
207
|
+
const now = await engineStates(engine, projection.start, paths);
|
|
208
|
+
const head = await statesIn(engine, projection.base, paths);
|
|
209
|
+
const differing = classified.filter((entry) => !sameState(now.get(entry.path), head.get(entry.path)));
|
|
210
|
+
const blobs = await readBlobs(engine, differing.flatMap((entry) => [now.get(entry.path), head.get(entry.path)].flatMap((state) => state == null ? [] : [state.oid])));
|
|
211
|
+
const isText = (state) => {
|
|
212
|
+
const bytes = state == null ? undefined : blobs.get(state.oid);
|
|
213
|
+
return bytes === undefined || textContent(bytes) !== undefined;
|
|
214
|
+
};
|
|
215
|
+
const read = blobReader(engine);
|
|
216
|
+
const changes = differing.flatMap((entry) => {
|
|
217
|
+
const before = head.get(entry.path) ?? null;
|
|
218
|
+
const after = now.get(entry.path) ?? null;
|
|
219
|
+
const change = changeOf({
|
|
220
|
+
path: entry.path,
|
|
221
|
+
before,
|
|
222
|
+
after,
|
|
223
|
+
binary: !isText(before) || !isText(after),
|
|
224
|
+
...(entry.owners[0] === undefined ? {} : { group: entry.owners[0] }),
|
|
225
|
+
meta: { state: entry.state },
|
|
226
|
+
}, read);
|
|
227
|
+
return change === undefined ? [] : [change];
|
|
228
|
+
});
|
|
229
|
+
return createChangeSet({
|
|
230
|
+
groups: groupsOf(queue),
|
|
231
|
+
changes,
|
|
232
|
+
diff: (change) => diffOfContent(engine, change),
|
|
233
|
+
});
|
|
234
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Patch mode: the patch queue in `patches/` and the engine it applies to.
|
|
4
|
+
*
|
|
5
|
+
* - The manifest (`manifest.ts`) is the one source of truth for the queue's
|
|
6
|
+
* patches, their order and metadata; filenames, categories and touched
|
|
7
|
+
* files are derived.
|
|
8
|
+
* - Every change to the queue is one transaction ({@link mutateQueue}).
|
|
9
|
+
* - Every patch application goes through `apply.ts`: index-only replays
|
|
10
|
+
* onto trees, with the reduced-context ladder and new-file replacement as
|
|
11
|
+
* options, plus the working-tree apply that leaves `.rej` files.
|
|
12
|
+
* - The baseline (`baseline.ts`) is what the engine holds with the queue
|
|
13
|
+
* applied, and how the engine compares with it. Every change to engine
|
|
14
|
+
* files is one transaction on the engine journal.
|
|
15
|
+
* - `import` and `rebase` are one resumable session (`session.ts`).
|
|
16
|
+
* - `export` and `re-export` capture engine edits (`capture.ts`); the
|
|
17
|
+
* queue operations (`operations.ts`) rename, reorder, split, merge,
|
|
18
|
+
* remove and annotate patches, and those that only move work around
|
|
19
|
+
* prove the queue still produces the same tree.
|
|
20
|
+
* - Where a patch goes, and the ordering half of `patchPolicy`, is
|
|
21
|
+
* `placement.ts`.
|
|
22
|
+
* - Every patch body is produced by {@link regeneratePatchBody}.
|
|
23
|
+
*
|
|
24
|
+
* Commands that change the engine or the queue hold the engine lock
|
|
25
|
+
* exclusively (`withEngineLock` of the engine module); the functions here assume it.
|
|
26
|
+
*/
|
|
27
|
+
import { ExitCode } from '../kernel/errors.js';
|
|
28
|
+
import { queueError } from './queue.js';
|
|
29
|
+
export { replayQueue } from './apply.js';
|
|
30
|
+
export { regeneratePatchBody } from './baseline.js';
|
|
31
|
+
export { exportPatch, reExport } from './capture.js';
|
|
32
|
+
export { engineChanges, queueChanges } from './changes.js';
|
|
33
|
+
export {} from './manifest.js';
|
|
34
|
+
export { compactQueue, deletePatch, moveFiles, renamePatch, reorderPatch, retirePatch, setPatchMeta, splitPatch, stagedDependencyOf, } from './operations.js';
|
|
35
|
+
export {} from './placement.js';
|
|
36
|
+
export { mutateQueue, readQueue, writeQueue } from './queue.js';
|
|
37
|
+
export { discard, enginePaths, resetEngine } from './restore.js';
|
|
38
|
+
export { importQueue, rebaseQueue, resolvePatchFromEngine } from './session.js';
|
|
39
|
+
export { queueStatus, verifyQueue } from './status.js';
|
|
40
|
+
/**
|
|
41
|
+
* The project as a patch-mode project, for the commands only patch mode has.
|
|
42
|
+
*
|
|
43
|
+
* @param project - A loaded project
|
|
44
|
+
* @throws `patch-mode-required` (exit code 8) for a source-mode project
|
|
45
|
+
*/
|
|
46
|
+
export function requirePatchMode(project) {
|
|
47
|
+
if (project.mode === 'patches')
|
|
48
|
+
return project;
|
|
49
|
+
throw queueError('patch-mode-required', 'This command works on a patch-mode project only.', 'A source-mode project keeps its owned files under the source root; edit them there.', ExitCode.INVALID_ARGUMENT);
|
|
50
|
+
}
|