@hominis/fireforge 0.54.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +287 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -438
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -332
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -420
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -422
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -208
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -692
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +113 -181
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -277
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +163 -653
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -712
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -91
- package/dist/src/commands/check-run.d.ts +0 -33
- package/dist/src/commands/check-run.js +0 -112
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -218
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -282
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -52
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -261
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -117
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -15
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -49
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -248
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -267
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -35
- package/dist/src/commands/re-export-hunks.js +0 -220
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -191
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -39
- package/dist/src/commands/re-export-single.js +0 -388
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -28
- package/dist/src/commands/re-export-summary.js +0 -36
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -29
- package/dist/src/commands/test-build-phase.js +0 -290
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -63
- package/dist/src/commands/test-orchestrate.js +0 -274
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -52
- package/dist/src/commands/test-stale-gate.js +0 -165
- package/dist/src/commands/test-verdict.d.ts +0 -92
- package/dist/src/commands/test-verdict.js +0 -162
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck.d.ts +0 -56
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -274
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -92
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -503
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -62
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -124
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -146
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -79
- package/dist/src/core/furnace-constants.js +0 -123
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -61
- package/dist/src/core/furnace-jsconfig.js +0 -208
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -302
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -318
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -204
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache.d.ts +0 -78
- package/dist/src/core/patch-lint-cache.js +0 -233
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -39
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -63
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -180
- package/dist/src/core/patch-lint-checkjs.js +0 -611
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -5
- package/dist/src/core/patch-lint-imports.js +0 -67
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -78
- package/dist/src/core/patch-lint-staged-registration.js +0 -110
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -57
- package/dist/src/core/patch-lint-token-scale.js +0 -286
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -191
- package/dist/src/core/patch-lint.js +0 -529
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -161
- package/dist/src/core/patch-parse.js +0 -347
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -216
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -507
- package/dist/src/core/typecheck.d.ts +0 -75
- package/dist/src/core/typecheck.js +0 -433
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1367
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -703
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -415
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { open } from 'node:fs/promises';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { GitError } from '../errors/git.js';
|
|
5
|
-
import { removeFile } from '../utils/fs.js';
|
|
6
|
-
import { exec } from '../utils/process.js';
|
|
7
|
-
import { execWithInput } from '../utils/process-input.js';
|
|
8
|
-
import { chunkPathspecs, ensureGit, git } from './git-base.js';
|
|
9
|
-
/**
|
|
10
|
-
* Restores a tracked path from HEAD, including staged changes.
|
|
11
|
-
* @param repoDir - Repository directory
|
|
12
|
-
* @param filePath - Path to the file (relative to repo)
|
|
13
|
-
*/
|
|
14
|
-
export async function restoreTrackedPath(repoDir, filePath) {
|
|
15
|
-
await git(['restore', '--source', 'HEAD', '--staged', '--worktree', '--', filePath], repoDir);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Removes a path that is present only in the index/worktree and not in HEAD.
|
|
19
|
-
* @param repoDir - Repository directory
|
|
20
|
-
* @param filePath - Path to remove
|
|
21
|
-
*/
|
|
22
|
-
async function removeAddedPath(repoDir, filePath) {
|
|
23
|
-
await git(['reset', 'HEAD', '--', filePath], repoDir);
|
|
24
|
-
await removeFile(join(repoDir, filePath));
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Discards a status entry according to its git state.
|
|
28
|
-
* @param repoDir - Repository directory
|
|
29
|
-
* @param entry - Parsed git status entry
|
|
30
|
-
*/
|
|
31
|
-
export async function discardStatusEntry(repoDir, entry) {
|
|
32
|
-
if (entry.isUntracked) {
|
|
33
|
-
await removeFile(join(repoDir, entry.file));
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if (entry.isRenameOrCopy && entry.originalPath) {
|
|
37
|
-
await restoreTrackedPath(repoDir, entry.originalPath);
|
|
38
|
-
if (await fileExistsInHead(repoDir, entry.file)) {
|
|
39
|
-
await restoreTrackedPath(repoDir, entry.file);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
await removeAddedPath(repoDir, entry.file);
|
|
43
|
-
}
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (!(await fileExistsInHead(repoDir, entry.file))) {
|
|
47
|
-
await removeAddedPath(repoDir, entry.file);
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
await restoreTrackedPath(repoDir, entry.file);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Stages specific files in the repository.
|
|
54
|
-
* @param repoDir - Repository directory
|
|
55
|
-
* @param files - File paths to stage (relative to repo)
|
|
56
|
-
*/
|
|
57
|
-
export async function stageFiles(repoDir, files) {
|
|
58
|
-
await git(['add', '--', ...files], repoDir);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Unstages specific files from the index.
|
|
62
|
-
* @param repoDir - Repository directory
|
|
63
|
-
* @param files - File paths to unstage (relative to repo)
|
|
64
|
-
*/
|
|
65
|
-
export async function unstageFiles(repoDir, files) {
|
|
66
|
-
await git(['reset', 'HEAD', '--', ...files], repoDir);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Checks if a file exists in the HEAD commit.
|
|
70
|
-
* @param repoDir - Repository directory
|
|
71
|
-
* @param filePath - Path to the file (relative to repo)
|
|
72
|
-
* @returns true if file exists in HEAD
|
|
73
|
-
*/
|
|
74
|
-
export async function fileExistsInHead(repoDir, filePath) {
|
|
75
|
-
return (await git(['ls-tree', 'HEAD', '--', filePath], repoDir)).trim().length > 0;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Batched equivalent of {@link fileExistsInHead}: returns the subset of
|
|
79
|
-
* `files` that are tracked in HEAD, using a single `git ls-tree` per ARG_MAX
|
|
80
|
-
* chunk instead of one spawn per file. This is the cold-run hot path, and
|
|
81
|
-
* a Firefox-sized checkout has hundreds of affected files.
|
|
82
|
-
*
|
|
83
|
-
* `-r` lists nested blobs by full repo-relative path. `--name-only -z` makes
|
|
84
|
-
* the output a trivial NUL-split with no quoting to undo. Membership in the
|
|
85
|
-
* returned Set is exactly `await fileExistsInHead(repoDir, file)` for any
|
|
86
|
-
* non-directory `file`. Throws (via {@link git}) when HEAD itself is
|
|
87
|
-
* unresolvable, matching the per-file helper's failure mode.
|
|
88
|
-
*
|
|
89
|
-
* @param repoDir - Repository directory
|
|
90
|
-
* @param files - Repo-relative paths to classify
|
|
91
|
-
* @returns The subset of `files` present in HEAD
|
|
92
|
-
*/
|
|
93
|
-
export async function listTrackedInHead(repoDir, files) {
|
|
94
|
-
const tracked = new Set();
|
|
95
|
-
if (files.length === 0)
|
|
96
|
-
return tracked;
|
|
97
|
-
const wanted = new Set(files);
|
|
98
|
-
for (const chunk of chunkPathspecs(files)) {
|
|
99
|
-
const output = await git(['ls-tree', '-r', 'HEAD', '--name-only', '-z', '--', ...chunk], repoDir);
|
|
100
|
-
for (const name of output.split('\0')) {
|
|
101
|
-
// `ls-tree -r` can surface entries beyond the literal inputs only when an
|
|
102
|
-
// input is itself a directory in HEAD. Intersect with `wanted` so the
|
|
103
|
-
// result is always a subset of the requested files, never a superset.
|
|
104
|
-
if (name.length > 0 && wanted.has(name))
|
|
105
|
-
tracked.add(name);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return tracked;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Batched equivalent of the per-file `git hash-object` in
|
|
112
|
-
* {@link import('./git-diff.js').generateNewFileDiff}: computes the git blob
|
|
113
|
-
* hash for every path in one spawn per ARG_MAX chunk and returns a
|
|
114
|
-
* `Map<fullPath, fullHash>`.
|
|
115
|
-
*
|
|
116
|
-
* Uses {@link import('../utils/process.js').exec} rather than {@link git}
|
|
117
|
-
* (which throws on a non-zero exit) because `git hash-object f1 f2 …` is
|
|
118
|
-
* all-or-nothing: it aborts at the first unreadable path and emits nothing
|
|
119
|
-
* for the rest. To keep the per-file contract, where one bad path zeroes
|
|
120
|
-
* only its own index line, a chunk that does not return exactly one hash
|
|
121
|
-
* per input falls back to hashing that chunk's paths individually. A path
|
|
122
|
-
* that is still unhashable is left out of the map. The caller applies the
|
|
123
|
-
* `0000000000` zero-hash fallback for any miss. Hashing stays in git rather
|
|
124
|
-
* than in-process so filters and `.gitattributes` are applied per path and
|
|
125
|
-
* the result cannot diverge under `core.autocrlf`/`text` attributes.
|
|
126
|
-
*
|
|
127
|
-
* @param repoDir - Repository directory
|
|
128
|
-
* @param fullPaths - Absolute file paths to hash
|
|
129
|
-
* @returns Map from each input path to its full blob hash (misses omitted)
|
|
130
|
-
*/
|
|
131
|
-
export async function hashObjectBatch(repoDir, fullPaths) {
|
|
132
|
-
const hashes = new Map();
|
|
133
|
-
if (fullPaths.length === 0)
|
|
134
|
-
return hashes;
|
|
135
|
-
await ensureGit();
|
|
136
|
-
for (const chunk of chunkPathspecs(fullPaths)) {
|
|
137
|
-
const result = await exec('git', ['hash-object', '--', ...chunk], { cwd: repoDir });
|
|
138
|
-
const lines = result.stdout.split('\n').filter((line) => line.length > 0);
|
|
139
|
-
if (result.exitCode === 0 && lines.length === chunk.length) {
|
|
140
|
-
for (const [i, path] of chunk.entries()) {
|
|
141
|
-
hashes.set(path, lines[i]);
|
|
142
|
-
}
|
|
143
|
-
continue;
|
|
144
|
-
}
|
|
145
|
-
// Batch aborted partway (a path became unreadable between the caller's stat
|
|
146
|
-
// and here, or otherwise failed). Recover per file so one bad path only
|
|
147
|
-
// loses its own hash, exactly as the pre-batch per-file code behaved.
|
|
148
|
-
for (const path of chunk) {
|
|
149
|
-
const single = await exec('git', ['hash-object', '--', path], { cwd: repoDir });
|
|
150
|
-
const hash = single.stdout.trim();
|
|
151
|
-
if (single.exitCode === 0 && hash.length > 0)
|
|
152
|
-
hashes.set(path, hash);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return hashes;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Gets the content of a file at a specific git ref (HEAD by default).
|
|
159
|
-
* @param repoDir - Repository directory
|
|
160
|
-
* @param filePath - Path to the file (relative to repo)
|
|
161
|
-
* @param ref - Git ref to read from (commit hash, branch, tag). Defaults to HEAD.
|
|
162
|
-
* @returns File content or null if file doesn't exist at that ref
|
|
163
|
-
*/
|
|
164
|
-
export async function getFileContentAtRef(repoDir, filePath, ref = 'HEAD') {
|
|
165
|
-
await ensureGit();
|
|
166
|
-
const result = await exec('git', ['show', `${ref}:${filePath}`], { cwd: repoDir });
|
|
167
|
-
if (result.exitCode !== 0) {
|
|
168
|
-
const stderr = result.stderr.trim();
|
|
169
|
-
// Recognise the "file does not exist at this ref" variants across git versions.
|
|
170
|
-
// The ref name in quotes varies with what was passed (HEAD, a SHA, a tag), so
|
|
171
|
-
// match loosely rather than interpolating ref into a regex.
|
|
172
|
-
if (/exists on disk, but not in '[^']*'|path '[^']*' exists, but not '[^']*'|path '[^']*' does not exist in '[^']*'/i.test(stderr)) {
|
|
173
|
-
return null;
|
|
174
|
-
}
|
|
175
|
-
throw new GitError(stderr || 'Git command failed', `show ${ref}:${filePath}`);
|
|
176
|
-
}
|
|
177
|
-
return result.stdout;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Batched equivalent of {@link getFileContentAtRef}: reads every path at
|
|
181
|
-
* `ref` through one `git cat-file --batch` process instead of one
|
|
182
|
-
* `git show` per file. A Firefox-sized ownership scan paid 1,493 of those,
|
|
183
|
-
* about 18 ms each and almost all of it spawn overhead.
|
|
184
|
-
*
|
|
185
|
-
* The first request line is `ref` itself, so an unresolvable ref throws a
|
|
186
|
-
* {@link GitError} exactly as the per-file helper does, rather than being
|
|
187
|
-
* read as "every path missing". A path reported `missing` maps to `null`,
|
|
188
|
-
* as the per-file helper returns for a path absent at that ref. Anything
|
|
189
|
-
* the batch cannot answer as a plain blob (a path containing a newline,
|
|
190
|
-
* which the line protocol cannot carry, or an object that is not a blob)
|
|
191
|
-
* is fetched through {@link getFileContentAtRef}, so the result for every
|
|
192
|
-
* path is what that helper returns.
|
|
193
|
-
*
|
|
194
|
-
* @param repoDir - Repository directory
|
|
195
|
-
* @param filePaths - Paths relative to the repository root
|
|
196
|
-
* @param ref - Git ref to read from. Defaults to HEAD.
|
|
197
|
-
* @returns Content (or `null` when absent at `ref`) for every input path
|
|
198
|
-
*/
|
|
199
|
-
export async function getFilesContentAtRef(repoDir, filePaths, ref = 'HEAD') {
|
|
200
|
-
const contents = new Map();
|
|
201
|
-
const unique = [...new Set(filePaths)];
|
|
202
|
-
const batchable = unique.filter((path) => !path.includes('\n'));
|
|
203
|
-
const fallback = unique.filter((path) => path.includes('\n'));
|
|
204
|
-
if (batchable.length > 0) {
|
|
205
|
-
await ensureGit();
|
|
206
|
-
const requests = [ref, ...batchable.map((path) => `${ref}:${path}`)];
|
|
207
|
-
const result = await execWithInput('git', ['cat-file', '--batch'], requests.join('\n') + '\n', {
|
|
208
|
-
cwd: repoDir,
|
|
209
|
-
});
|
|
210
|
-
if (result.exitCode !== 0) {
|
|
211
|
-
throw new GitError(result.stderr.trim() || 'git cat-file --batch failed', 'cat-file --batch');
|
|
212
|
-
}
|
|
213
|
-
const out = result.stdout;
|
|
214
|
-
let offset = 0;
|
|
215
|
-
for (const [index, request] of requests.entries()) {
|
|
216
|
-
const newline = out.indexOf(0x0a, offset);
|
|
217
|
-
if (newline === -1) {
|
|
218
|
-
throw new GitError(`Truncated cat-file --batch output at ${request}`, 'cat-file --batch');
|
|
219
|
-
}
|
|
220
|
-
const header = out.toString('utf8', offset, newline);
|
|
221
|
-
offset = newline + 1;
|
|
222
|
-
const path = index === 0 ? undefined : batchable[index - 1];
|
|
223
|
-
if (header.endsWith(' missing') || header.endsWith(' ambiguous')) {
|
|
224
|
-
if (path === undefined) {
|
|
225
|
-
throw new GitError(`Cannot resolve ${ref}: ${header}`, `cat-file --batch ${ref}`);
|
|
226
|
-
}
|
|
227
|
-
if (header.endsWith(' missing'))
|
|
228
|
-
contents.set(path, null);
|
|
229
|
-
else
|
|
230
|
-
fallback.push(path);
|
|
231
|
-
continue;
|
|
232
|
-
}
|
|
233
|
-
const match = /^[0-9a-f]+ (\S+) (\d+)$/.exec(header);
|
|
234
|
-
if (!match) {
|
|
235
|
-
throw new GitError(`Unexpected cat-file --batch header: ${header}`, 'cat-file --batch');
|
|
236
|
-
}
|
|
237
|
-
const size = Number(match[2]);
|
|
238
|
-
const body = out.subarray(offset, offset + size);
|
|
239
|
-
offset += size + 1;
|
|
240
|
-
if (path === undefined)
|
|
241
|
-
continue;
|
|
242
|
-
if (match[1] === 'blob')
|
|
243
|
-
contents.set(path, body.toString('utf8'));
|
|
244
|
-
else
|
|
245
|
-
fallback.push(path);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
for (const path of fallback) {
|
|
249
|
-
contents.set(path, await getFileContentAtRef(repoDir, path, ref));
|
|
250
|
-
}
|
|
251
|
-
return contents;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Checks if a file is binary by looking for NUL bytes in the first 8KB.
|
|
255
|
-
* Uses the same heuristic as git.
|
|
256
|
-
* @param repoDir - Repository directory
|
|
257
|
-
* @param filePath - File path (relative to repo root)
|
|
258
|
-
* @returns true if the file appears to be binary
|
|
259
|
-
*/
|
|
260
|
-
export async function isBinaryFile(repoDir, filePath) {
|
|
261
|
-
const fullPath = join(repoDir, filePath);
|
|
262
|
-
try {
|
|
263
|
-
const fh = await open(fullPath, 'r');
|
|
264
|
-
try {
|
|
265
|
-
const buf = Buffer.alloc(8192);
|
|
266
|
-
const { bytesRead } = await fh.read(buf, 0, 8192, 0);
|
|
267
|
-
for (let i = 0; i < bytesRead; i++) {
|
|
268
|
-
if (buf[i] === 0)
|
|
269
|
-
return true;
|
|
270
|
-
}
|
|
271
|
-
return false;
|
|
272
|
-
}
|
|
273
|
-
finally {
|
|
274
|
-
await fh.close();
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
catch {
|
|
278
|
-
return false;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Private-index scope for FireForge's read-only git plumbing.
|
|
3
|
-
*
|
|
4
|
-
* `git status` and `git diff HEAD` are read-only in the sense operators care
|
|
5
|
-
* about (they never change tracked content), but they are not read-only to
|
|
6
|
-
* git: both refresh the index's stat cache and write `.git/index` (through
|
|
7
|
-
* `.git/index.lock`) when a file's stat data has moved. That makes
|
|
8
|
-
* `fireforge verify` / `lint --per-patch` / `typecheck` a second writer of
|
|
9
|
-
* the primary `engine/` checkout, even when the command was pointed at a CoW
|
|
10
|
-
* tree clone.
|
|
11
|
-
*
|
|
12
|
-
* The consequence is not cosmetic. A concurrent `fireforge test`
|
|
13
|
-
* fingerprints `engine/` before and after the harness run and refuses a
|
|
14
|
-
* verdict taken across a change (`FAIL reason=inconclusive`). That refusal is
|
|
15
|
-
* correct and stays. The defect is FireForge's own read-only commands
|
|
16
|
-
* tripping it.
|
|
17
|
-
*
|
|
18
|
-
* The fix is the standard git one: point the plumbing at a private index
|
|
19
|
-
* (`GIT_INDEX_FILE`) seeded from the repository's own, in a temp directory.
|
|
20
|
-
* Refreshes land there and are thrown away. The primary `.git/index` is
|
|
21
|
-
* never touched, and neither is `.git/index.lock`, which is what makes a
|
|
22
|
-
* concurrent `git status` fail outright rather than merely churn.
|
|
23
|
-
*
|
|
24
|
-
* Fail-open by design: if the git dir or the index cannot be resolved or
|
|
25
|
-
* copied, the scope does not activate and the commands behave exactly as
|
|
26
|
-
* before. A read-only command must not start failing because an optimisation
|
|
27
|
-
* could not be set up.
|
|
28
|
-
*
|
|
29
|
-
* The scope is process-global and non-reentrant on purpose: FireForge
|
|
30
|
-
* commands are one-shot CLI invocations, and nesting two different private
|
|
31
|
-
* indexes for the same run has no meaning. A nested call reuses the outer
|
|
32
|
-
* scope.
|
|
33
|
-
*/
|
|
34
|
-
/**
|
|
35
|
-
* Environment overlay a git invocation in `cwd` must carry, or undefined
|
|
36
|
-
* when no private-index scope covers it.
|
|
37
|
-
*
|
|
38
|
-
* Matching is by resolved path prefix: plumbing frequently runs with `cwd`
|
|
39
|
-
* set to a subdirectory of the scoped repository, and those invocations
|
|
40
|
-
* share the same index.
|
|
41
|
-
*
|
|
42
|
-
* @param cwd - Working directory the git process will run in
|
|
43
|
-
* @returns `{ GIT_INDEX_FILE }` when scoped, otherwise undefined
|
|
44
|
-
*/
|
|
45
|
-
export declare function readOnlyGitIndexEnv(cwd: string): Record<string, string> | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Runs `operation` with FireForge's git plumbing pointed at a private
|
|
48
|
-
* index seeded from `repoDir`'s own, so the primary checkout's
|
|
49
|
-
* `.git/index` (and `.git/index.lock`) are never written.
|
|
50
|
-
*
|
|
51
|
-
* @param repoDir - Repository whose plumbing should use a private index
|
|
52
|
-
* @param operation - The read-only command body
|
|
53
|
-
* @returns Whatever `operation` returns
|
|
54
|
-
*/
|
|
55
|
-
export declare function withPrivateGitIndex<T>(repoDir: string, operation: () => Promise<T>): Promise<T>;
|
|
56
|
-
/**
|
|
57
|
-
* A private index file plus the cleanup that removes it.
|
|
58
|
-
*
|
|
59
|
-
* `env` is meant to be handed to a single git invocation (or a small
|
|
60
|
-
* sequence of them), rather than installed process-wide the way
|
|
61
|
-
* {@link withPrivateGitIndex} installs a scope.
|
|
62
|
-
*/
|
|
63
|
-
export interface DisposableGitIndex {
|
|
64
|
-
/** Environment overlay pointing git at the private index. */
|
|
65
|
-
env: Record<string, string>;
|
|
66
|
-
/** Removes the private index. Never throws. */
|
|
67
|
-
dispose: () => Promise<void>;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Mints a private index seeded from `repoDir`'s own, for a caller that
|
|
71
|
-
* needs to write the index without the write being visible to anyone else.
|
|
72
|
-
*
|
|
73
|
-
* The distinction from {@link withPrivateGitIndex} matters. That one exists
|
|
74
|
-
* so a read-only command's incidental index refreshes do not touch the
|
|
75
|
-
* primary checkout, and it is process-global, non-reentrant, and fail-open,
|
|
76
|
-
* all of which are right for that job. This one serves a caller whose index
|
|
77
|
-
* write is intentional and whose visibility is the defect: it is per-call, so
|
|
78
|
-
* two concurrent callers cannot collide, and it never depends on an ambient
|
|
79
|
-
* scope having been installed by whichever command happens to be running.
|
|
80
|
-
*
|
|
81
|
-
* The seed is a plain copy, which is safe against a concurrent writer: git
|
|
82
|
-
* writes the index through `index.lock` and an atomic rename, so a reader
|
|
83
|
-
* sees either the old file or the new one, never a torn one. Seeding is
|
|
84
|
-
* required rather than merely tidy: an empty index makes a tracked,
|
|
85
|
-
* unmodified file look like a fresh add.
|
|
86
|
-
*
|
|
87
|
-
* @param repoDir - Repository whose index should be shadowed
|
|
88
|
-
* @returns The overlay and its cleanup, or undefined when one could not be
|
|
89
|
-
* minted (a non-git directory, an unreadable index, no writable tmpdir)
|
|
90
|
-
*/
|
|
91
|
-
export declare function mintDisposableGitIndex(repoDir: string): Promise<DisposableGitIndex | undefined>;
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Private-index scope for FireForge's read-only git plumbing.
|
|
4
|
-
*
|
|
5
|
-
* `git status` and `git diff HEAD` are read-only in the sense operators care
|
|
6
|
-
* about (they never change tracked content), but they are not read-only to
|
|
7
|
-
* git: both refresh the index's stat cache and write `.git/index` (through
|
|
8
|
-
* `.git/index.lock`) when a file's stat data has moved. That makes
|
|
9
|
-
* `fireforge verify` / `lint --per-patch` / `typecheck` a second writer of
|
|
10
|
-
* the primary `engine/` checkout, even when the command was pointed at a CoW
|
|
11
|
-
* tree clone.
|
|
12
|
-
*
|
|
13
|
-
* The consequence is not cosmetic. A concurrent `fireforge test`
|
|
14
|
-
* fingerprints `engine/` before and after the harness run and refuses a
|
|
15
|
-
* verdict taken across a change (`FAIL reason=inconclusive`). That refusal is
|
|
16
|
-
* correct and stays. The defect is FireForge's own read-only commands
|
|
17
|
-
* tripping it.
|
|
18
|
-
*
|
|
19
|
-
* The fix is the standard git one: point the plumbing at a private index
|
|
20
|
-
* (`GIT_INDEX_FILE`) seeded from the repository's own, in a temp directory.
|
|
21
|
-
* Refreshes land there and are thrown away. The primary `.git/index` is
|
|
22
|
-
* never touched, and neither is `.git/index.lock`, which is what makes a
|
|
23
|
-
* concurrent `git status` fail outright rather than merely churn.
|
|
24
|
-
*
|
|
25
|
-
* Fail-open by design: if the git dir or the index cannot be resolved or
|
|
26
|
-
* copied, the scope does not activate and the commands behave exactly as
|
|
27
|
-
* before. A read-only command must not start failing because an optimisation
|
|
28
|
-
* could not be set up.
|
|
29
|
-
*
|
|
30
|
-
* The scope is process-global and non-reentrant on purpose: FireForge
|
|
31
|
-
* commands are one-shot CLI invocations, and nesting two different private
|
|
32
|
-
* indexes for the same run has no meaning. A nested call reuses the outer
|
|
33
|
-
* scope.
|
|
34
|
-
*/
|
|
35
|
-
import { copyFile } from 'node:fs/promises';
|
|
36
|
-
import { mkdtemp, rm } from 'node:fs/promises';
|
|
37
|
-
import { tmpdir } from 'node:os';
|
|
38
|
-
import { join, resolve } from 'node:path';
|
|
39
|
-
import { toError } from '../utils/errors.js';
|
|
40
|
-
import { pathExists } from '../utils/fs.js';
|
|
41
|
-
import { verbose } from '../utils/logger.js';
|
|
42
|
-
import { exec } from '../utils/process.js';
|
|
43
|
-
/** The active private-index scope, when a read-only command installed one. */
|
|
44
|
-
let activeScope;
|
|
45
|
-
/** Bound on the git-dir probe so a wedged git cannot stall a read-only run. */
|
|
46
|
-
const GIT_DIR_PROBE_TIMEOUT_MS = 30_000;
|
|
47
|
-
/**
|
|
48
|
-
* Environment overlay a git invocation in `cwd` must carry, or undefined
|
|
49
|
-
* when no private-index scope covers it.
|
|
50
|
-
*
|
|
51
|
-
* Matching is by resolved path prefix: plumbing frequently runs with `cwd`
|
|
52
|
-
* set to a subdirectory of the scoped repository, and those invocations
|
|
53
|
-
* share the same index.
|
|
54
|
-
*
|
|
55
|
-
* @param cwd - Working directory the git process will run in
|
|
56
|
-
* @returns `{ GIT_INDEX_FILE }` when scoped, otherwise undefined
|
|
57
|
-
*/
|
|
58
|
-
export function readOnlyGitIndexEnv(cwd) {
|
|
59
|
-
if (activeScope === undefined)
|
|
60
|
-
return undefined;
|
|
61
|
-
const resolved = resolve(cwd);
|
|
62
|
-
const scoped = activeScope.repoDir;
|
|
63
|
-
if (resolved !== scoped && !resolved.startsWith(`${scoped}/`))
|
|
64
|
-
return undefined;
|
|
65
|
-
return { GIT_INDEX_FILE: activeScope.indexFile };
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Resolves a repository's git directory. Returns undefined for anything
|
|
69
|
-
* that is not a readable git checkout. `engine/` is not always one
|
|
70
|
-
* (`fireforge download` extracts a source tarball).
|
|
71
|
-
*/
|
|
72
|
-
async function resolveGitDir(repoDir) {
|
|
73
|
-
try {
|
|
74
|
-
const result = await exec('git', ['rev-parse', '--absolute-git-dir'], {
|
|
75
|
-
cwd: repoDir,
|
|
76
|
-
timeout: GIT_DIR_PROBE_TIMEOUT_MS,
|
|
77
|
-
});
|
|
78
|
-
if (result.exitCode !== 0)
|
|
79
|
-
return undefined;
|
|
80
|
-
const gitDir = result.stdout.trim();
|
|
81
|
-
return gitDir.length > 0 ? gitDir : undefined;
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
verbose(`Private git index: could not resolve the git dir — ${toError(error).message}`);
|
|
85
|
-
return undefined;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Runs `operation` with FireForge's git plumbing pointed at a private
|
|
90
|
-
* index seeded from `repoDir`'s own, so the primary checkout's
|
|
91
|
-
* `.git/index` (and `.git/index.lock`) are never written.
|
|
92
|
-
*
|
|
93
|
-
* @param repoDir - Repository whose plumbing should use a private index
|
|
94
|
-
* @param operation - The read-only command body
|
|
95
|
-
* @returns Whatever `operation` returns
|
|
96
|
-
*/
|
|
97
|
-
export async function withPrivateGitIndex(repoDir, operation) {
|
|
98
|
-
if (activeScope !== undefined)
|
|
99
|
-
return operation();
|
|
100
|
-
const gitDir = await resolveGitDir(repoDir);
|
|
101
|
-
if (gitDir === undefined)
|
|
102
|
-
return operation();
|
|
103
|
-
const minted = await mintPrivateIndex(gitDir);
|
|
104
|
-
if (minted === undefined)
|
|
105
|
-
return operation();
|
|
106
|
-
activeScope = { repoDir: resolve(repoDir), indexFile: minted.indexFile };
|
|
107
|
-
verbose(`Private git index active for ${repoDir} (${minted.indexFile}).`);
|
|
108
|
-
try {
|
|
109
|
-
return await operation();
|
|
110
|
-
}
|
|
111
|
-
finally {
|
|
112
|
-
activeScope = undefined;
|
|
113
|
-
await minted.dispose();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Mints a private index seeded from `repoDir`'s own, for a caller that
|
|
118
|
-
* needs to write the index without the write being visible to anyone else.
|
|
119
|
-
*
|
|
120
|
-
* The distinction from {@link withPrivateGitIndex} matters. That one exists
|
|
121
|
-
* so a read-only command's incidental index refreshes do not touch the
|
|
122
|
-
* primary checkout, and it is process-global, non-reentrant, and fail-open,
|
|
123
|
-
* all of which are right for that job. This one serves a caller whose index
|
|
124
|
-
* write is intentional and whose visibility is the defect: it is per-call, so
|
|
125
|
-
* two concurrent callers cannot collide, and it never depends on an ambient
|
|
126
|
-
* scope having been installed by whichever command happens to be running.
|
|
127
|
-
*
|
|
128
|
-
* The seed is a plain copy, which is safe against a concurrent writer: git
|
|
129
|
-
* writes the index through `index.lock` and an atomic rename, so a reader
|
|
130
|
-
* sees either the old file or the new one, never a torn one. Seeding is
|
|
131
|
-
* required rather than merely tidy: an empty index makes a tracked,
|
|
132
|
-
* unmodified file look like a fresh add.
|
|
133
|
-
*
|
|
134
|
-
* @param repoDir - Repository whose index should be shadowed
|
|
135
|
-
* @returns The overlay and its cleanup, or undefined when one could not be
|
|
136
|
-
* minted (a non-git directory, an unreadable index, no writable tmpdir)
|
|
137
|
-
*/
|
|
138
|
-
export async function mintDisposableGitIndex(repoDir) {
|
|
139
|
-
const gitDir = await resolveGitDir(repoDir);
|
|
140
|
-
if (gitDir === undefined)
|
|
141
|
-
return undefined;
|
|
142
|
-
const minted = await mintPrivateIndex(gitDir);
|
|
143
|
-
if (minted === undefined)
|
|
144
|
-
return undefined;
|
|
145
|
-
return { env: { GIT_INDEX_FILE: minted.indexFile }, dispose: minted.dispose };
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Copies `gitDir`'s index into a fresh temp directory. Returns undefined
|
|
149
|
-
* rather than throwing: every caller has a defined behaviour for "no private
|
|
150
|
-
* index available", and none of them wants an exception from an optimisation.
|
|
151
|
-
*/
|
|
152
|
-
async function mintPrivateIndex(gitDir) {
|
|
153
|
-
let tempDir;
|
|
154
|
-
try {
|
|
155
|
-
tempDir = await mkdtemp(join(tmpdir(), 'fireforge-roindex-'));
|
|
156
|
-
const privateIndex = join(tempDir, 'index');
|
|
157
|
-
const sourceIndex = join(gitDir, 'index');
|
|
158
|
-
// A repository with no index yet (a fresh init) is fine: git creates
|
|
159
|
-
// the private one on first use.
|
|
160
|
-
if (await pathExists(sourceIndex)) {
|
|
161
|
-
await copyFile(sourceIndex, privateIndex);
|
|
162
|
-
}
|
|
163
|
-
const dir = tempDir;
|
|
164
|
-
return {
|
|
165
|
-
indexFile: privateIndex,
|
|
166
|
-
dispose: async () => {
|
|
167
|
-
await rm(dir, { recursive: true, force: true });
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
catch (error) {
|
|
172
|
-
verbose(`Private git index unavailable — ${toError(error).message}`);
|
|
173
|
-
if (tempDir !== undefined)
|
|
174
|
-
await rm(tempDir, { recursive: true, force: true });
|
|
175
|
-
return undefined;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import type { GitStatusEntry } from './git-base.js';
|
|
2
|
-
/**
|
|
3
|
-
* Parses NUL-delimited porcelain status output.
|
|
4
|
-
*
|
|
5
|
-
* A rename or copy occupies two NUL records (`XY new\0old\0`), and the `R`/`C`
|
|
6
|
-
* may sit in either column: git >= 2.18 detects renames in the worktree too
|
|
7
|
-
* (`status.renames`), emitting ` R new\0old\0` for an unstaged rename and
|
|
8
|
-
* `RM`/`R ` for a staged one. Only consuming the second record for an index
|
|
9
|
-
* `R`/`C` turned the worktree form's `old` field into a bogus extra entry
|
|
10
|
-
* whose status was whatever its first two path characters happened to be.
|
|
11
|
-
* @param output - Raw git status output
|
|
12
|
-
* @returns Parsed entries
|
|
13
|
-
*/
|
|
14
|
-
/** @internal Exported for testing */
|
|
15
|
-
export declare function parsePorcelainStatus(output: string): GitStatusEntry[];
|
|
16
|
-
/**
|
|
17
|
-
* Gets structured working tree status entries.
|
|
18
|
-
* @param repoDir - Repository directory
|
|
19
|
-
* @returns Parsed git status entries
|
|
20
|
-
*/
|
|
21
|
-
export declare function getWorkingTreeStatus(repoDir: string): Promise<GitStatusEntry[]>;
|
|
22
|
-
/**
|
|
23
|
-
* Resolves the per-directory expansion cap, honoring the same
|
|
24
|
-
* FIREFORGE_MAX_UNTRACKED_FILES override the status command documents.
|
|
25
|
-
*/
|
|
26
|
-
export declare function resolveMaxUntrackedFilesPerDir(): number;
|
|
27
|
-
/**
|
|
28
|
-
* Expands collapsed untracked directory entries into individual file entries.
|
|
29
|
-
* Git status may report "?? dir/" instead of listing each file underneath.
|
|
30
|
-
*
|
|
31
|
-
* Expansion is capped per directory (FIREFORGE_MAX_UNTRACKED_FILES, default
|
|
32
|
-
* 5000) with a warning on overflow. Without the cap, `reset --dry-run` after
|
|
33
|
-
* an interrupted download (unborn HEAD, the entire ~300k file tree
|
|
34
|
-
* untracked) enumerates and prints every file.
|
|
35
|
-
*
|
|
36
|
-
* @param repoDir - Repository directory
|
|
37
|
-
* @param entries - Parsed status entries
|
|
38
|
-
* @returns Status entries with untracked directories expanded to individual
|
|
39
|
-
* files
|
|
40
|
-
*/
|
|
41
|
-
export declare function expandUntrackedDirectoryEntries(repoDir: string, entries: GitStatusEntry[]): Promise<GitStatusEntry[]>;
|
|
42
|
-
/**
|
|
43
|
-
* Lists the untracked files under each collapsed `dir/` status entry with
|
|
44
|
-
* one `git ls-files` per ARG_MAX chunk, instead of one spawn per directory
|
|
45
|
-
* (a Firefox-sized worktree scan paid 73 of them). The result maps every
|
|
46
|
-
* requested directory to its files in git's order, which is exactly what
|
|
47
|
-
* {@link getUntrackedFilesInDir} returns for that directory alone. `-z`
|
|
48
|
-
* keeps non-ASCII names literal: the newline form C-quotes them under
|
|
49
|
-
* git's default `core.quotePath`, and a quoted path names no file.
|
|
50
|
-
*
|
|
51
|
-
* @param repoDir - Repository directory
|
|
52
|
-
* @param dirs - Collapsed untracked directories, each ending in `/`
|
|
53
|
-
* @returns Files per directory (every input key present, possibly empty)
|
|
54
|
-
*/
|
|
55
|
-
export declare function listUntrackedFilesInDirs(repoDir: string, dirs: readonly string[]): Promise<Map<string, string[]>>;
|
|
56
|
-
/**
|
|
57
|
-
* Gets all untracked files (including files inside untracked directories).
|
|
58
|
-
* @param repoDir - Repository directory
|
|
59
|
-
* @returns List of untracked file paths
|
|
60
|
-
*/
|
|
61
|
-
export declare function getUntrackedFiles(repoDir: string): Promise<string[]>;
|
|
62
|
-
/**
|
|
63
|
-
* Gets untracked files within a specific directory.
|
|
64
|
-
* Uses path-scoped git ls-files for efficiency in large repos.
|
|
65
|
-
* @param repoDir - Repository directory
|
|
66
|
-
* @param dir - Directory path (relative to repo root)
|
|
67
|
-
* @returns List of untracked file paths relative to repo root
|
|
68
|
-
*/
|
|
69
|
-
export declare function getUntrackedFilesInDir(repoDir: string, dir: string): Promise<string[]>;
|
|
70
|
-
/**
|
|
71
|
-
* Gets modified (tracked) files within a specific directory.
|
|
72
|
-
* Uses path-scoped git diff for efficiency in large repos.
|
|
73
|
-
* @param repoDir - Repository directory
|
|
74
|
-
* @param dir - Directory path (relative to repo root)
|
|
75
|
-
* @returns List of modified file paths relative to repo root
|
|
76
|
-
*/
|
|
77
|
-
export declare function getModifiedFilesInDir(repoDir: string, dir: string): Promise<string[]>;
|
|
78
|
-
/**
|
|
79
|
-
* Checks if any of the specified files have uncommitted changes.
|
|
80
|
-
* @param repoDir - Repository directory
|
|
81
|
-
* @param files - File paths to check (relative to repo root)
|
|
82
|
-
* @returns List of dirty file paths
|
|
83
|
-
*/
|
|
84
|
-
export declare function getDirtyFiles(repoDir: string, files: string[]): Promise<string[]>;
|