@hominis/fireforge 0.55.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +233 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -456
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -359
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -382
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -423
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -241
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -766
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +111 -221
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -290
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +159 -723
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -719
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -98
- package/dist/src/commands/check-run.d.ts +0 -44
- package/dist/src/commands/check-run.js +0 -125
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -229
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -283
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/body.d.ts +0 -29
- package/dist/src/commands/patch/body.js +0 -60
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -54
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -263
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -114
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -27
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -78
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -251
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -285
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-each.d.ts +0 -46
- package/dist/src/commands/re-export-each.js +0 -110
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -37
- package/dist/src/commands/re-export-hunks.js +0 -264
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -192
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -53
- package/dist/src/commands/re-export-single.js +0 -426
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -44
- package/dist/src/commands/re-export-summary.js +0 -59
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -34
- package/dist/src/commands/test-build-phase.js +0 -291
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -70
- package/dist/src/commands/test-orchestrate.js +0 -277
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -56
- package/dist/src/commands/test-stale-gate.js +0 -208
- package/dist/src/commands/test-verdict.d.ts +0 -102
- package/dist/src/commands/test-verdict.js +0 -176
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck-explain.d.ts +0 -13
- package/dist/src/commands/typecheck-explain.js +0 -100
- package/dist/src/commands/typecheck.d.ts +0 -61
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -284
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -125
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -509
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/dev-profile.d.ts +0 -28
- package/dist/src/core/dev-profile.js +0 -58
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -67
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -131
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -167
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -81
- package/dist/src/core/furnace-constants.js +0 -125
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-deploy-owner.d.ts +0 -29
- package/dist/src/core/furnace-deploy-owner.js +0 -116
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -87
- package/dist/src/core/furnace-jsconfig.js +0 -248
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-tag-map.d.ts +0 -47
- package/dist/src/core/furnace-tag-map.js +0 -182
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -331
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -328
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -167
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache-checkjs.d.ts +0 -45
- package/dist/src/core/patch-lint-cache-checkjs.js +0 -195
- package/dist/src/core/patch-lint-cache.d.ts +0 -79
- package/dist/src/core/patch-lint-cache.js +0 -247
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -57
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -91
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs-resolve.d.ts +0 -31
- package/dist/src/core/patch-lint-checkjs-resolve.js +0 -86
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -182
- package/dist/src/core/patch-lint-checkjs.js +0 -563
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -9
- package/dist/src/core/patch-lint-imports.js +0 -90
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -98
- package/dist/src/core/patch-lint-staged-registration.js +0 -128
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -65
- package/dist/src/core/patch-lint-token-scale.js +0 -304
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -206
- package/dist/src/core/patch-lint.js +0 -533
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -176
- package/dist/src/core/patch-parse.js +0 -416
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -219
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-explain.d.ts +0 -93
- package/dist/src/core/typecheck-explain.js +0 -213
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -508
- package/dist/src/core/typecheck.d.ts +0 -97
- package/dist/src/core/typecheck.js +0 -457
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1372
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -732
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -422
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -1,539 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { stat } from 'node:fs/promises';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { GitError } from '../errors/git.js';
|
|
5
|
-
import { toError } from '../utils/errors.js';
|
|
6
|
-
import { pathExists } from '../utils/fs.js';
|
|
7
|
-
import { verbose } from '../utils/logger.js';
|
|
8
|
-
import { chunkPathspecs, git } from './git-base.js';
|
|
9
|
-
import { readNewFileContent, withForcedBinaryAttribute } from './git-diff-new-file.js';
|
|
10
|
-
import { fileExistsInHead, hashObjectBatch, listTrackedInHead } from './git-file-ops.js';
|
|
11
|
-
import { mintDisposableGitIndex } from './git-readonly-index.js';
|
|
12
|
-
import { getUntrackedFiles, getUntrackedFilesInDir } from './git-status.js';
|
|
13
|
-
/**
|
|
14
|
-
* Gets the diff for a specific file.
|
|
15
|
-
*
|
|
16
|
-
* `--binary` is load-bearing: without it git degrades a binary file's section
|
|
17
|
-
* to the informational `Binary files a/x and b/x differ`, which carries none
|
|
18
|
-
* of the bytes and cannot be replayed by `git apply`. It only expands the
|
|
19
|
-
* binary section's index line to full hashes (text sections keep their
|
|
20
|
-
* abbreviated form), so text output stays byte-identical.
|
|
21
|
-
* @param repoDir - Repository directory
|
|
22
|
-
* @param filePath - Path to the file (relative to repo)
|
|
23
|
-
* @returns Diff content
|
|
24
|
-
*/
|
|
25
|
-
export async function getFileDiff(repoDir, filePath) {
|
|
26
|
-
return git(['diff', '--binary', 'HEAD', '--', filePath], repoDir);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Abbreviates a full git blob hash to the 10-character form used in the
|
|
30
|
-
* synthesized `index 0000000000..<hash>` line, falling back to the all-zero
|
|
31
|
-
* placeholder when no usable hash is available. Mirrors the original per-file
|
|
32
|
-
* truncation exactly.
|
|
33
|
-
* @param fullHash - Full blob hash, or undefined when hashing failed
|
|
34
|
-
* @returns 10-character abbreviated hash or the zero placeholder
|
|
35
|
-
*/
|
|
36
|
-
function abbreviateBlobHash(fullHash) {
|
|
37
|
-
if (fullHash !== undefined && fullHash.length >= 10) {
|
|
38
|
-
return fullHash.slice(0, 10);
|
|
39
|
-
}
|
|
40
|
-
return '0000000000';
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Pure formatter for a new (untracked) file's unified diff. Shared by the
|
|
44
|
-
* batched cold-run path in {@link getDiffForFilesAgainstHead} and the
|
|
45
|
-
* standalone {@link generateNewFileDiff}. The only thing that differs is
|
|
46
|
-
* where `blobHash` comes from (a single batched `git hash-object` vs a
|
|
47
|
-
* per-file one), never the formatting. Preserves the empty-file form, the
|
|
48
|
-
* trailing-newline handling, and the "No newline at end of file" marker
|
|
49
|
-
* byte-for-byte.
|
|
50
|
-
*
|
|
51
|
-
* @param filePath - Path to the file (relative to repo)
|
|
52
|
-
* @param content - File content
|
|
53
|
-
* @param blobHash - Abbreviated blob hash for the index line
|
|
54
|
-
* @returns Diff content in unified diff format
|
|
55
|
-
*/
|
|
56
|
-
function buildNewFileDiffBody(filePath, content, blobHash) {
|
|
57
|
-
// Handle empty files
|
|
58
|
-
if (content.length === 0) {
|
|
59
|
-
return [
|
|
60
|
-
`diff --git a/${filePath} b/${filePath}`,
|
|
61
|
-
'new file mode 100644',
|
|
62
|
-
`index 0000000000..${blobHash}`,
|
|
63
|
-
'--- /dev/null',
|
|
64
|
-
`+++ b/${filePath}`,
|
|
65
|
-
'',
|
|
66
|
-
].join('\n');
|
|
67
|
-
}
|
|
68
|
-
const lines = content.split('\n');
|
|
69
|
-
// Handle files that don't end with newline
|
|
70
|
-
const hasTrailingNewline = content.endsWith('\n');
|
|
71
|
-
const lineCount = hasTrailingNewline ? lines.length - 1 : lines.length;
|
|
72
|
-
// Build the unified diff format for a new file
|
|
73
|
-
const diffLines = [
|
|
74
|
-
`diff --git a/${filePath} b/${filePath}`,
|
|
75
|
-
'new file mode 100644',
|
|
76
|
-
`index 0000000000..${blobHash}`,
|
|
77
|
-
'--- /dev/null',
|
|
78
|
-
`+++ b/${filePath}`,
|
|
79
|
-
`@@ -0,0 +1,${lineCount} @@`,
|
|
80
|
-
];
|
|
81
|
-
// Add each line with a + prefix
|
|
82
|
-
for (let i = 0; i < lineCount; i++) {
|
|
83
|
-
diffLines.push(`+${lines[i]}`);
|
|
84
|
-
}
|
|
85
|
-
// Add "No newline at end of file" marker if needed
|
|
86
|
-
if (!hasTrailingNewline && lineCount > 0) {
|
|
87
|
-
diffLines.push('\');
|
|
88
|
-
}
|
|
89
|
-
return diffLines.join('\n') + '\n';
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Defensive check shared by the new-file readers: a directory here means a
|
|
93
|
-
* caller bypassed the expansion layers and handed the leaf reader a path it
|
|
94
|
-
* cannot read. Surfaces an actionable message naming the offending path
|
|
95
|
-
* rather than the raw `EISDIR` the read would throw. This is a recurring bug
|
|
96
|
-
* class, hence the guard at every leaf.
|
|
97
|
-
* @param repoDir - Repository directory
|
|
98
|
-
* @param filePath - Path to the file (relative to repo)
|
|
99
|
-
*/
|
|
100
|
-
async function rejectDirectory(repoDir, filePath) {
|
|
101
|
-
const fileStat = await stat(join(repoDir, filePath));
|
|
102
|
-
if (fileStat.isDirectory()) {
|
|
103
|
-
throw new GitError(`expected a file but found a directory at '${filePath}' — caller must expand directory entries before diffing`, `hash-object ${filePath}`);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Generates a unified diff for a new (untracked) file. A file that is binary
|
|
108
|
-
* or not valid UTF-8 (see {@link readNewFileContent}) is routed through
|
|
109
|
-
* {@link generateBinaryFilePatch} instead, because a text body cannot carry
|
|
110
|
-
* its bytes faithfully.
|
|
111
|
-
* @param repoDir - Repository directory
|
|
112
|
-
* @param filePath - Path to the file (relative to repo)
|
|
113
|
-
* @returns Diff content in unified diff format
|
|
114
|
-
*/
|
|
115
|
-
export async function generateNewFileDiff(repoDir, filePath) {
|
|
116
|
-
const fullPath = join(repoDir, filePath);
|
|
117
|
-
await rejectDirectory(repoDir, filePath);
|
|
118
|
-
const file = await readNewFileContent(repoDir, filePath);
|
|
119
|
-
if (file.binary) {
|
|
120
|
-
return generateBinaryFilePatch(repoDir, filePath);
|
|
121
|
-
}
|
|
122
|
-
// Compute the abbreviated git blob hash for the index line
|
|
123
|
-
let blobHash = '0000000000';
|
|
124
|
-
try {
|
|
125
|
-
const fullHash = (await git(['hash-object', fullPath], repoDir)).trim();
|
|
126
|
-
blobHash = abbreviateBlobHash(fullHash);
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
verbose(`git hash-object failed for ${filePath}; falling back to zero blob hash: ${toError(error).message}`);
|
|
130
|
-
}
|
|
131
|
-
return buildNewFileDiffBody(filePath, file.content, blobHash);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Generates a patch for a file.
|
|
135
|
-
* If the file is tracked in HEAD, it generates a standard contextual diff.
|
|
136
|
-
* If the file is untracked (new), it generates a "new file" format patch (snapshot).
|
|
137
|
-
* This ensures standard 3-way mergeable context diffs for existing Mozilla files.
|
|
138
|
-
* @param repoDir - Repository directory
|
|
139
|
-
* @param filePath - Path to the file (relative to repo)
|
|
140
|
-
* @returns Diff content in unified diff format
|
|
141
|
-
*/
|
|
142
|
-
export async function generateFullFilePatch(repoDir, filePath) {
|
|
143
|
-
// If file exists in HEAD, use standard git diff HEAD -- <file>
|
|
144
|
-
// This generates a contextual diff that is safer for rebasing
|
|
145
|
-
if (await fileExistsInHead(repoDir, filePath)) {
|
|
146
|
-
return getFileDiff(repoDir, filePath);
|
|
147
|
-
}
|
|
148
|
-
// If file is new/untracked, use the full-file "new file" format
|
|
149
|
-
return generateNewFileDiff(repoDir, filePath);
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Gets the diff for all modified files, including untracked (new) files.
|
|
153
|
-
*
|
|
154
|
-
* Tracked binary files round-trip through `git diff --binary`. Untracked ones
|
|
155
|
-
* go through {@link generateBinaryFilePatch} below. Both arms must stay
|
|
156
|
-
* binary-aware. See {@link getFileDiff} for why.
|
|
157
|
-
* @param repoDir - Repository directory
|
|
158
|
-
* @returns Diff content
|
|
159
|
-
*/
|
|
160
|
-
export async function getAllDiff(repoDir) {
|
|
161
|
-
// Get diff for tracked files
|
|
162
|
-
const trackedDiff = await git(['diff', '--binary', 'HEAD'], repoDir);
|
|
163
|
-
// Get untracked files (properly expanded, not directories)
|
|
164
|
-
const untrackedFiles = await getUntrackedFiles(repoDir);
|
|
165
|
-
// Classify first. `readNewFileContent` reads the file directly and spawns
|
|
166
|
-
// nothing, so the only per-file process in this loop would be the
|
|
167
|
-
// `git hash-object` inside `generateNewFileDiff`: one spawn per untracked
|
|
168
|
-
// text file, uncapped, against a Firefox tree where "untracked" can mean a
|
|
169
|
-
// very large number. Hence classify → one batched hash → render. The
|
|
170
|
-
// classification carries each text file's content so it is read once.
|
|
171
|
-
//
|
|
172
|
-
// Everything else here is deliberately untouched: `git diff HEAD` (with
|
|
173
|
-
// renames, unlike the `--no-renames` scoped sibling), the `ls-files`
|
|
174
|
-
// ordering, tracked-block-first emission, and the `'\n'` empty-result
|
|
175
|
-
// sentinel are all observable. `getAllDiff`'s output is SHA-256'd into
|
|
176
|
-
// every tree fingerprint (tree-store.ts) and written verbatim into `.patch`
|
|
177
|
-
// files (export-all.ts), so its bytes are a contract.
|
|
178
|
-
const classified = new Map();
|
|
179
|
-
for (const file of untrackedFiles) {
|
|
180
|
-
await rejectDirectory(repoDir, file);
|
|
181
|
-
classified.set(file, await readNewFileContent(repoDir, file));
|
|
182
|
-
}
|
|
183
|
-
const textHashes = await hashObjectBatch(repoDir, untrackedFiles
|
|
184
|
-
.filter((file) => classified.get(file)?.binary === false)
|
|
185
|
-
.map((file) => join(repoDir, file)));
|
|
186
|
-
// Binary patches stage into the index and must stay serial. Text patches
|
|
187
|
-
// are pure formatting over the already-batched hashes.
|
|
188
|
-
const binaryDiffs = new Map();
|
|
189
|
-
for (const file of untrackedFiles) {
|
|
190
|
-
if (classified.get(file)?.binary === true) {
|
|
191
|
-
binaryDiffs.set(file, await generateBinaryFilePatch(repoDir, file));
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
const untrackedDiffs = [];
|
|
195
|
-
for (const file of untrackedFiles) {
|
|
196
|
-
const entry = classified.get(file);
|
|
197
|
-
if (entry === undefined || entry.binary) {
|
|
198
|
-
const binary = binaryDiffs.get(file);
|
|
199
|
-
if (binary !== undefined)
|
|
200
|
-
untrackedDiffs.push(binary);
|
|
201
|
-
continue;
|
|
202
|
-
}
|
|
203
|
-
const fullPath = join(repoDir, file);
|
|
204
|
-
untrackedDiffs.push(buildNewFileDiffBody(file, entry.content, abbreviateBlobHash(textHashes.get(fullPath))));
|
|
205
|
-
}
|
|
206
|
-
// Combine all diffs. Each already ends with \n, so concatenate directly
|
|
207
|
-
// to avoid inserting blank lines between diff sections.
|
|
208
|
-
const allDiffs = [trackedDiff, ...untrackedDiffs].filter((d) => d.trim().length > 0);
|
|
209
|
-
const combined = allDiffs.join('');
|
|
210
|
-
return combined.endsWith('\n') ? combined : combined + '\n';
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Splits a combined `git diff` body into one string per file section,
|
|
214
|
-
* preserving exact bytes. A section runs from a column-0 `diff --git ` line up
|
|
215
|
-
* to (but not including) the next such line. Boundary detection is anchored to
|
|
216
|
-
* column 0 because every diff *body* line is prefixed by a space, `+`, `-`,
|
|
217
|
-
* `\`, or `@`, so a context or added line that merely contains the text
|
|
218
|
-
* `diff --git` can never be mistaken for a header. Paths are not parsed out
|
|
219
|
-
* of the header here on purpose. See {@link buildTrackedSections}.
|
|
220
|
-
* @param combined - Combined `git diff` stdout
|
|
221
|
-
* @returns File sections in git's emission order
|
|
222
|
-
*/
|
|
223
|
-
function splitDiffSections(combined) {
|
|
224
|
-
const marker = 'diff --git ';
|
|
225
|
-
const sections = [];
|
|
226
|
-
let start = -1;
|
|
227
|
-
for (let i = 0; i < combined.length; i++) {
|
|
228
|
-
if ((i === 0 || combined[i - 1] === '\n') && combined.startsWith(marker, i)) {
|
|
229
|
-
if (start !== -1)
|
|
230
|
-
sections.push(combined.slice(start, i));
|
|
231
|
-
start = i;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
if (start !== -1)
|
|
235
|
-
sections.push(combined.slice(start, combined.length));
|
|
236
|
-
return sections;
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Runs one `git diff --binary --no-renames HEAD` over the tracked files
|
|
240
|
-
* (chunked under ARG_MAX) and returns a `Map<path, section>` whose sections are
|
|
241
|
-
* byte-identical to the per-file `git diff --binary HEAD -- <file>` they
|
|
242
|
-
* replace.
|
|
243
|
-
*
|
|
244
|
-
* `--binary` is load-bearing: a tracked binary file would otherwise degrade to
|
|
245
|
-
* the un-appliable `Binary files a/x and b/x differ` stub. It expands only the
|
|
246
|
-
* binary section's index line to full hashes, so text sections are
|
|
247
|
-
* unaffected. See {@link getFileDiff}.
|
|
248
|
-
*
|
|
249
|
-
* `--no-renames` is load-bearing: a multi-path diff under a user's
|
|
250
|
-
* `diff.renames=true`/`=copies` could otherwise emit a single 2-path rename
|
|
251
|
-
* section (`a/<old> b/<new>`) that a single-path `git diff HEAD -- <file>` can
|
|
252
|
-
* never produce. `--no-renames` re-splits it into the same delete + add bytes
|
|
253
|
-
* the per-file loop emitted.
|
|
254
|
-
*
|
|
255
|
-
* Sections are attributed to paths by position against a companion
|
|
256
|
-
* `git diff --no-renames HEAD -z --name-only` (raw, unquoted, NUL-delimited
|
|
257
|
-
* paths, emitted in the same order as the sections), never by parsing the
|
|
258
|
-
* `diff --git` header, which is ambiguous or unparseable under `core.quotePath`
|
|
259
|
-
* (non-ASCII paths are C-quoted), paths containing spaces, or
|
|
260
|
-
* `diff.noprefix`/`diff.mnemonicPrefix`. If the section and name counts ever
|
|
261
|
-
* disagree (an unmodeled config), that chunk falls back to per-file
|
|
262
|
-
* {@link getFileDiff} so no file's diff is ever silently dropped.
|
|
263
|
-
* @param repoDir - Repository directory
|
|
264
|
-
* @param trackedFiles - Repo-relative files known to exist in HEAD
|
|
265
|
-
* @returns Map from path to its exact diff section (changed files only)
|
|
266
|
-
*/
|
|
267
|
-
async function buildTrackedSections(repoDir, trackedFiles) {
|
|
268
|
-
const sectionsByPath = new Map();
|
|
269
|
-
for (const chunk of chunkPathspecs(trackedFiles)) {
|
|
270
|
-
const combined = await git(['diff', '--binary', '--no-renames', 'HEAD', '--', ...chunk], repoDir);
|
|
271
|
-
const namesOutput = await git(['diff', '--no-renames', 'HEAD', '-z', '--name-only', '--', ...chunk], repoDir);
|
|
272
|
-
const names = namesOutput.split('\0').filter((name) => name.length > 0);
|
|
273
|
-
const sections = splitDiffSections(combined);
|
|
274
|
-
if (sections.length === names.length) {
|
|
275
|
-
for (let i = 0; i < names.length; i++) {
|
|
276
|
-
// Exact-path keys (raw git bytes, same encoding as the inputs), never
|
|
277
|
-
// a substring/startsWith match, so `foo.txt` cannot capture
|
|
278
|
-
// `foo.txt.bak`'s section.
|
|
279
|
-
sectionsByPath.set(names[i], sections[i]);
|
|
280
|
-
}
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
// Counts disagree, so recover the exact pre-batch per-file bytes for this
|
|
284
|
-
// chunk rather than risk dropping or mis-keying a section.
|
|
285
|
-
for (const file of chunk) {
|
|
286
|
-
const diff = await getFileDiff(repoDir, file);
|
|
287
|
-
if (diff.trim())
|
|
288
|
-
sectionsByPath.set(file, diff);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
return sectionsByPath;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Builds a combined diff against HEAD for the provided files without touching
|
|
295
|
-
* the real git index. Tracked files use `git diff --binary HEAD` (binary
|
|
296
|
-
* sections included). Untracked files use synthesized new-file diffs, or
|
|
297
|
-
* {@link generateBinaryFilePatch} when the file is binary.
|
|
298
|
-
*
|
|
299
|
-
* Performance: the work is batched into a handful of `git` invocations (one
|
|
300
|
-
* `ls-tree` to classify, one `diff` over all tracked files, one `hash-object`
|
|
301
|
-
* over all new text files) rather than ~2 spawns per file, which dominates
|
|
302
|
-
* the cold-run cost on a Firefox-sized checkout. Binary, directory, and
|
|
303
|
-
* recursion paths stay per-file because they are rare and (for binary)
|
|
304
|
-
* mutate the index.
|
|
305
|
-
*
|
|
306
|
-
* @param repoDir - Repository directory
|
|
307
|
-
* @param files - File paths to diff (relative to repo root)
|
|
308
|
-
* @returns Combined diff content
|
|
309
|
-
*/
|
|
310
|
-
export async function getDiffForFilesAgainstHead(repoDir, files) {
|
|
311
|
-
// Expand any directory entries (paths ending with `/`) into their
|
|
312
|
-
// individual untracked files before diffing. `git status --porcelain=v1`
|
|
313
|
-
// reports collapsed untracked directories as `?? dir/`, and every caller
|
|
314
|
-
// that feeds the aggregate working-tree state into this function must not
|
|
315
|
-
// trigger an EISDIR when the diff pass reads `dir/` as if it were a file.
|
|
316
|
-
// The caller-side expansion in `lint.ts` and `export-all.ts` covers the
|
|
317
|
-
// common path. Guarding here makes a single bad call site harmless.
|
|
318
|
-
const expandedFiles = [];
|
|
319
|
-
for (const file of files) {
|
|
320
|
-
if (file.endsWith('/')) {
|
|
321
|
-
const inner = await getUntrackedFilesInDir(repoDir, file);
|
|
322
|
-
for (const entry of inner)
|
|
323
|
-
expandedFiles.push(entry);
|
|
324
|
-
continue;
|
|
325
|
-
}
|
|
326
|
-
expandedFiles.push(file);
|
|
327
|
-
}
|
|
328
|
-
const uniqueFiles = [...new Set(expandedFiles)].sort();
|
|
329
|
-
if (uniqueFiles.length === 0)
|
|
330
|
-
return '';
|
|
331
|
-
// Batch 1: classify tracked-vs-new for the whole set in one `ls-tree` pass,
|
|
332
|
-
// replacing one `fileExistsInHead` spawn per file.
|
|
333
|
-
const tracked = await listTrackedInHead(repoDir, uniqueFiles);
|
|
334
|
-
// Batch 2: one diff over every tracked file, split back to exact per-file
|
|
335
|
-
// sections keyed by path.
|
|
336
|
-
const trackedSections = await buildTrackedSections(repoDir, uniqueFiles.filter((file) => tracked.has(file)));
|
|
337
|
-
// Classify the non-tracked files. Directory and binary entries keep their
|
|
338
|
-
// per-file handling (rare, and binary patches mutate the index so they must
|
|
339
|
-
// stay serial). Plain new text files are collected for a single batched
|
|
340
|
-
// `git hash-object`. Results land in `sectionByFile`, keyed by path, to be
|
|
341
|
-
// emitted in sorted order below.
|
|
342
|
-
const sectionByFile = new Map();
|
|
343
|
-
const newTextFiles = [];
|
|
344
|
-
for (const file of uniqueFiles) {
|
|
345
|
-
if (tracked.has(file))
|
|
346
|
-
continue;
|
|
347
|
-
const fullPath = join(repoDir, file);
|
|
348
|
-
if (!(await pathExists(fullPath))) {
|
|
349
|
-
continue;
|
|
350
|
-
}
|
|
351
|
-
// Second defence against EISDIR: a non-HEAD path that exists on disk is
|
|
352
|
-
// usually a new file, but can also be a directory that arrived without
|
|
353
|
-
// the trailing slash `expandUntrackedDirectoryEntries` would have
|
|
354
|
-
// produced (caller stripped it, submodule entry, tracked-file-replaced-
|
|
355
|
-
// by-dir). Expand it via the same helper used by the slash branch and
|
|
356
|
-
// recurse so each contained file is diffed individually. Fail loud when
|
|
357
|
-
// the directory has no readable content rather than silently skipping it.
|
|
358
|
-
const fileStat = await stat(fullPath);
|
|
359
|
-
if (fileStat.isDirectory()) {
|
|
360
|
-
const innerFiles = await getUntrackedFilesInDir(repoDir, file);
|
|
361
|
-
if (innerFiles.length === 0) {
|
|
362
|
-
throw new GitError(`'${file}' is a directory with no untracked content (submodule or gitignored?) — cannot diff as a file`, `ls-files --others -- ${file}`);
|
|
363
|
-
}
|
|
364
|
-
const innerDiff = await getDiffForFilesAgainstHead(repoDir, innerFiles);
|
|
365
|
-
if (innerDiff.trim())
|
|
366
|
-
sectionByFile.set(file, innerDiff);
|
|
367
|
-
continue;
|
|
368
|
-
}
|
|
369
|
-
// Binary (by git's NUL heuristic or because the bytes are not valid
|
|
370
|
-
// UTF-8) takes the byte-faithful binary-patch arm.
|
|
371
|
-
const newFile = await readNewFileContent(repoDir, file);
|
|
372
|
-
if (newFile.binary) {
|
|
373
|
-
const diff = await generateBinaryFilePatch(repoDir, file);
|
|
374
|
-
if (diff.trim())
|
|
375
|
-
sectionByFile.set(file, diff);
|
|
376
|
-
continue;
|
|
377
|
-
}
|
|
378
|
-
newTextFiles.push({ file, content: newFile.content });
|
|
379
|
-
}
|
|
380
|
-
// Batch 3: blob hashes for every new text file in one `git hash-object`.
|
|
381
|
-
// A miss (rare: a path became unreadable after the stat above) falls back to
|
|
382
|
-
// the zero hash with the same verbose log the per-file path emitted.
|
|
383
|
-
const blobHashes = await hashObjectBatch(repoDir, newTextFiles.map(({ file }) => join(repoDir, file)));
|
|
384
|
-
for (const { file, content } of newTextFiles) {
|
|
385
|
-
const fullHash = blobHashes.get(join(repoDir, file));
|
|
386
|
-
if (fullHash === undefined) {
|
|
387
|
-
verbose(`git hash-object failed for ${file}; falling back to zero blob hash`);
|
|
388
|
-
}
|
|
389
|
-
const body = buildNewFileDiffBody(file, content, abbreviateBlobHash(fullHash));
|
|
390
|
-
if (body.trim())
|
|
391
|
-
sectionByFile.set(file, body);
|
|
392
|
-
}
|
|
393
|
-
// Reassemble in the sorted `uniqueFiles` order, not git's section order,
|
|
394
|
-
// which uses git's own collation and diverges from JS `.sort()` for
|
|
395
|
-
// non-ASCII paths. Driving emission off `uniqueFiles` (as the previous
|
|
396
|
-
// per-file loop did) keeps the combined output byte-identical. Do not change
|
|
397
|
-
// this to push sections in git's emission order.
|
|
398
|
-
const diffs = [];
|
|
399
|
-
for (const file of uniqueFiles) {
|
|
400
|
-
const section = trackedSections.get(file) ?? sectionByFile.get(file);
|
|
401
|
-
if (section && section.trim())
|
|
402
|
-
diffs.push(section);
|
|
403
|
-
}
|
|
404
|
-
if (diffs.length === 0) {
|
|
405
|
-
return '';
|
|
406
|
-
}
|
|
407
|
-
// Each diff from git already ends with \n. Concatenate directly to
|
|
408
|
-
// preserve context lines (including trailing whitespace-only context)
|
|
409
|
-
// and avoid inserting blank lines between diff sections.
|
|
410
|
-
const combined = diffs.join('');
|
|
411
|
-
return combined.endsWith('\n') ? combined : combined + '\n';
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Generates a combined diff for staged files against HEAD.
|
|
415
|
-
* @param repoDir - Repository directory
|
|
416
|
-
* @param files - File paths to diff (relative to repo)
|
|
417
|
-
* @returns Diff content for the staged files
|
|
418
|
-
*/
|
|
419
|
-
export async function getStagedDiffForFiles(repoDir, files) {
|
|
420
|
-
return git(['diff', '--binary', '--cached', 'HEAD', '--', ...files], repoDir);
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* Serializes the index-mutating untracked-binary path. The bounded per-patch
|
|
424
|
-
* lint pool can call {@link getDiffForFilesAgainstHead} (and thus this) for
|
|
425
|
-
* several patches at once. Two concurrent `git add --intent-to-add` / `git
|
|
426
|
-
* reset` sequences would collide on `.git/index.lock` (a hard failure) or
|
|
427
|
-
* interleave one file's stage with another's unstage. This process-level
|
|
428
|
-
* promise chain runs the staging sequences one at a time. Read-only callers
|
|
429
|
-
* (`git diff --binary HEAD`) do not need it. Binary patches are rare, so the
|
|
430
|
-
* serialization cost is negligible.
|
|
431
|
-
*/
|
|
432
|
-
let binaryStagingLock = Promise.resolve();
|
|
433
|
-
function runWithBinaryStagingLock(task) {
|
|
434
|
-
const result = binaryStagingLock.then(task, task);
|
|
435
|
-
binaryStagingLock = result.then(() => undefined, () => undefined);
|
|
436
|
-
return result;
|
|
437
|
-
}
|
|
438
|
-
/**
|
|
439
|
-
* Generates a GIT binary patch for a binary file.
|
|
440
|
-
* For tracked files, uses `git diff --binary HEAD`.
|
|
441
|
-
* For untracked files, temporarily stages with `--intent-to-add` to produce a diff.
|
|
442
|
-
*
|
|
443
|
-
* Every `git diff` here runs under {@link withForcedBinaryAttribute}: a
|
|
444
|
-
* caller sends a file down this arm because a text body cannot carry its
|
|
445
|
-
* bytes (NUL, or not valid UTF-8), and git's own NUL-only heuristic would
|
|
446
|
-
* otherwise still render the non-UTF-8 case as text.
|
|
447
|
-
* @param repoDir - Repository directory
|
|
448
|
-
* @param filePath - File path (relative to repo root)
|
|
449
|
-
* @returns The binary diff string, or empty string if no diff
|
|
450
|
-
*/
|
|
451
|
-
export async function generateBinaryFilePatch(repoDir, filePath) {
|
|
452
|
-
return withForcedBinaryAttribute(filePath, (gitConfigArgs) => generateBinaryFilePatchWithConfig(repoDir, filePath, gitConfigArgs));
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* The body of {@link generateBinaryFilePatch}, with the forced-binary config
|
|
456
|
-
* arguments already resolved.
|
|
457
|
-
* @param repoDir - Repository directory
|
|
458
|
-
* @param filePath - File path (relative to repo root)
|
|
459
|
-
* @param gitConfigArgs - `-c` arguments spliced ahead of every `diff`
|
|
460
|
-
* @returns The binary diff string, or empty string if no diff
|
|
461
|
-
*/
|
|
462
|
-
async function generateBinaryFilePatchWithConfig(repoDir, filePath, gitConfigArgs) {
|
|
463
|
-
// Try tracked file diff first (read-only, so no index lock needed)
|
|
464
|
-
const tracked = await git([...gitConfigArgs, 'diff', '--binary', 'HEAD', '--', filePath], repoDir);
|
|
465
|
-
if (tracked.trim())
|
|
466
|
-
return tracked;
|
|
467
|
-
// The diff for an untracked file has to come from an index entry, so one
|
|
468
|
-
// has to be written. Writing it to a private index is what keeps that
|
|
469
|
-
// write invisible: the primary `.git/index` never moves, so a concurrent
|
|
470
|
-
// `fireforge test` fingerprinting `engine/` with `git status` cannot
|
|
471
|
-
// observe the transient `--intent-to-add` entry and void its own verdict
|
|
472
|
-
// on our bookkeeping. That was a real failure mode: parallel gate lanes
|
|
473
|
-
// killed three runs with `FAIL reason=inconclusive` on branding PNGs
|
|
474
|
-
// flapping between `A` and `??`.
|
|
475
|
-
//
|
|
476
|
-
// Nothing is restored afterwards because nothing shared was changed, and
|
|
477
|
-
// no lock is taken because two concurrent callers get two indexes. Both
|
|
478
|
-
// the restore dance and the in-process lock survive below purely for the
|
|
479
|
-
// fallback, where the primary index really is the one being written.
|
|
480
|
-
const disposable = await mintDisposableGitIndex(repoDir);
|
|
481
|
-
if (disposable !== undefined) {
|
|
482
|
-
try {
|
|
483
|
-
await git(['add', '--intent-to-add', '--', filePath], repoDir, { env: disposable.env });
|
|
484
|
-
return await git([...gitConfigArgs, 'diff', '--binary', '--', filePath], repoDir, {
|
|
485
|
-
env: disposable.env,
|
|
486
|
-
});
|
|
487
|
-
}
|
|
488
|
-
finally {
|
|
489
|
-
await disposable.dispose();
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
// Fallback: no private index could be minted (a non-git directory, an
|
|
493
|
-
// unreadable index, no writable tmpdir). Degrading to the shared index is
|
|
494
|
-
// the pre-existing behaviour rather than a new risk, and refusing instead
|
|
495
|
-
// would fail an export over an optimisation. The stage/unstage pair
|
|
496
|
-
// mutates the index, so it must not interleave with another concurrent
|
|
497
|
-
// binary patch (see runWithBinaryStagingLock).
|
|
498
|
-
verbose(`Binary patch for ${filePath} is staging on the shared index (no private index).`);
|
|
499
|
-
return runWithBinaryStagingLock(async () => {
|
|
500
|
-
// Snapshot the path's exact index entry before touching it. A blanket
|
|
501
|
-
// `git reset HEAD -- <file>` cleanup restores the path to its HEAD state.
|
|
502
|
-
// For a path absent from HEAD that means *removing* whatever entry the
|
|
503
|
-
// index carried, silently discarding any staged state that arrived
|
|
504
|
-
// between the read-only diff above and this staging block (a concurrent
|
|
505
|
-
// writer, or a staged-add whose worktree file was deleted). Restoring
|
|
506
|
-
// the captured entry is exact regardless of how the entry got there.
|
|
507
|
-
const priorEntry = await git(['ls-files', '--stage', '--', filePath], repoDir);
|
|
508
|
-
try {
|
|
509
|
-
await git(['add', '--intent-to-add', '--', filePath], repoDir);
|
|
510
|
-
return await git([...gitConfigArgs, 'diff', '--binary', '--', filePath], repoDir);
|
|
511
|
-
}
|
|
512
|
-
finally {
|
|
513
|
-
await restoreIndexEntry(repoDir, filePath, priorEntry);
|
|
514
|
-
}
|
|
515
|
-
});
|
|
516
|
-
}
|
|
517
|
-
/**
|
|
518
|
-
* Restores a path's index entry to a previously captured `ls-files --stage`
|
|
519
|
-
* snapshot after a temporary `--intent-to-add` staging. No prior entry means
|
|
520
|
-
* the temporary entry is dropped via `reset HEAD` (the path's HEAD state is
|
|
521
|
-
* "absent", and this branch only runs for files untracked in HEAD). A prior
|
|
522
|
-
* stage-0 entry is re-pointed at its recorded mode and blob. Unmerged entries
|
|
523
|
-
* (stages 1 to 3) cannot be rebuilt through `--cacheinfo`. That degenerate
|
|
524
|
-
* state falls back to the reset-to-HEAD restore rather than corrupting the
|
|
525
|
-
* conflict.
|
|
526
|
-
* @param repoDir - Repository directory
|
|
527
|
-
* @param filePath - File path (relative to repo root)
|
|
528
|
-
* @param priorEntry - Raw `git ls-files --stage -- <file>` output from before staging
|
|
529
|
-
*/
|
|
530
|
-
async function restoreIndexEntry(repoDir, filePath, priorEntry) {
|
|
531
|
-
const entryMatch = /^(\d{6}) ([0-9a-f]{4,64}) 0\t/.exec(priorEntry.trim());
|
|
532
|
-
const mode = entryMatch?.[1];
|
|
533
|
-
const oid = entryMatch?.[2];
|
|
534
|
-
if (mode === undefined || oid === undefined) {
|
|
535
|
-
await git(['reset', 'HEAD', '--', filePath], repoDir);
|
|
536
|
-
return;
|
|
537
|
-
}
|
|
538
|
-
await git(['update-index', '--add', '--cacheinfo', `${mode},${oid},${filePath}`], repoDir);
|
|
539
|
-
}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import type { GitStatusEntry } from './git-base.js';
|
|
2
|
-
/**
|
|
3
|
-
* Restores a tracked path from HEAD, including staged changes.
|
|
4
|
-
* @param repoDir - Repository directory
|
|
5
|
-
* @param filePath - Path to the file (relative to repo)
|
|
6
|
-
*/
|
|
7
|
-
export declare function restoreTrackedPath(repoDir: string, filePath: string): Promise<void>;
|
|
8
|
-
/**
|
|
9
|
-
* Discards a status entry according to its git state.
|
|
10
|
-
* @param repoDir - Repository directory
|
|
11
|
-
* @param entry - Parsed git status entry
|
|
12
|
-
*/
|
|
13
|
-
export declare function discardStatusEntry(repoDir: string, entry: GitStatusEntry): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* Stages specific files in the repository.
|
|
16
|
-
* @param repoDir - Repository directory
|
|
17
|
-
* @param files - File paths to stage (relative to repo)
|
|
18
|
-
*/
|
|
19
|
-
export declare function stageFiles(repoDir: string, files: string[]): Promise<void>;
|
|
20
|
-
/**
|
|
21
|
-
* Unstages specific files from the index.
|
|
22
|
-
* @param repoDir - Repository directory
|
|
23
|
-
* @param files - File paths to unstage (relative to repo)
|
|
24
|
-
*/
|
|
25
|
-
export declare function unstageFiles(repoDir: string, files: string[]): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Checks if a file exists in the HEAD commit.
|
|
28
|
-
* @param repoDir - Repository directory
|
|
29
|
-
* @param filePath - Path to the file (relative to repo)
|
|
30
|
-
* @returns true if file exists in HEAD
|
|
31
|
-
*/
|
|
32
|
-
export declare function fileExistsInHead(repoDir: string, filePath: string): Promise<boolean>;
|
|
33
|
-
/**
|
|
34
|
-
* Batched equivalent of {@link fileExistsInHead}: returns the subset of
|
|
35
|
-
* `files` that are tracked in HEAD, using a single `git ls-tree` per ARG_MAX
|
|
36
|
-
* chunk instead of one spawn per file. This is the cold-run hot path, and
|
|
37
|
-
* a Firefox-sized checkout has hundreds of affected files.
|
|
38
|
-
*
|
|
39
|
-
* `-r` lists nested blobs by full repo-relative path. `--name-only -z` makes
|
|
40
|
-
* the output a trivial NUL-split with no quoting to undo. Membership in the
|
|
41
|
-
* returned Set is exactly `await fileExistsInHead(repoDir, file)` for any
|
|
42
|
-
* non-directory `file`. Throws (via {@link git}) when HEAD itself is
|
|
43
|
-
* unresolvable, matching the per-file helper's failure mode.
|
|
44
|
-
*
|
|
45
|
-
* @param repoDir - Repository directory
|
|
46
|
-
* @param files - Repo-relative paths to classify
|
|
47
|
-
* @returns The subset of `files` present in HEAD
|
|
48
|
-
*/
|
|
49
|
-
export declare function listTrackedInHead(repoDir: string, files: string[]): Promise<Set<string>>;
|
|
50
|
-
/**
|
|
51
|
-
* Batched equivalent of the per-file `git hash-object` in
|
|
52
|
-
* {@link import('./git-diff.js').generateNewFileDiff}: computes the git blob
|
|
53
|
-
* hash for every path in one spawn per ARG_MAX chunk and returns a
|
|
54
|
-
* `Map<fullPath, fullHash>`.
|
|
55
|
-
*
|
|
56
|
-
* Uses {@link import('../utils/process.js').exec} rather than {@link git}
|
|
57
|
-
* (which throws on a non-zero exit) because `git hash-object f1 f2 …` is
|
|
58
|
-
* all-or-nothing: it aborts at the first unreadable path and emits nothing
|
|
59
|
-
* for the rest. To keep the per-file contract, where one bad path zeroes
|
|
60
|
-
* only its own index line, a chunk that does not return exactly one hash
|
|
61
|
-
* per input falls back to hashing that chunk's paths individually. A path
|
|
62
|
-
* that is still unhashable is left out of the map. The caller applies the
|
|
63
|
-
* `0000000000` zero-hash fallback for any miss. Hashing stays in git rather
|
|
64
|
-
* than in-process so filters and `.gitattributes` are applied per path and
|
|
65
|
-
* the result cannot diverge under `core.autocrlf`/`text` attributes.
|
|
66
|
-
*
|
|
67
|
-
* @param repoDir - Repository directory
|
|
68
|
-
* @param fullPaths - Absolute file paths to hash
|
|
69
|
-
* @returns Map from each input path to its full blob hash (misses omitted)
|
|
70
|
-
*/
|
|
71
|
-
export declare function hashObjectBatch(repoDir: string, fullPaths: string[]): Promise<Map<string, string>>;
|
|
72
|
-
/**
|
|
73
|
-
* Gets the content of a file at a specific git ref (HEAD by default).
|
|
74
|
-
* @param repoDir - Repository directory
|
|
75
|
-
* @param filePath - Path to the file (relative to repo)
|
|
76
|
-
* @param ref - Git ref to read from (commit hash, branch, tag). Defaults to HEAD.
|
|
77
|
-
* @returns File content or null if file doesn't exist at that ref
|
|
78
|
-
*/
|
|
79
|
-
export declare function getFileContentAtRef(repoDir: string, filePath: string, ref?: string): Promise<string | null>;
|
|
80
|
-
/**
|
|
81
|
-
* Batched equivalent of {@link getFileContentAtRef}: reads every path at
|
|
82
|
-
* `ref` through one `git cat-file --batch` process instead of one
|
|
83
|
-
* `git show` per file. A Firefox-sized ownership scan paid 1,493 of those,
|
|
84
|
-
* about 18 ms each and almost all of it spawn overhead.
|
|
85
|
-
*
|
|
86
|
-
* The first request line is `ref` itself, so an unresolvable ref throws a
|
|
87
|
-
* {@link GitError} exactly as the per-file helper does, rather than being
|
|
88
|
-
* read as "every path missing". A path reported `missing` maps to `null`,
|
|
89
|
-
* as the per-file helper returns for a path absent at that ref. Anything
|
|
90
|
-
* the batch cannot answer as a plain blob (a path containing a newline,
|
|
91
|
-
* which the line protocol cannot carry, or an object that is not a blob)
|
|
92
|
-
* is fetched through {@link getFileContentAtRef}, so the result for every
|
|
93
|
-
* path is what that helper returns.
|
|
94
|
-
*
|
|
95
|
-
* @param repoDir - Repository directory
|
|
96
|
-
* @param filePaths - Paths relative to the repository root
|
|
97
|
-
* @param ref - Git ref to read from. Defaults to HEAD.
|
|
98
|
-
* @returns Content (or `null` when absent at `ref`) for every input path
|
|
99
|
-
*/
|
|
100
|
-
export declare function getFilesContentAtRef(repoDir: string, filePaths: readonly string[], ref?: string): Promise<Map<string, string | null>>;
|
|
101
|
-
/**
|
|
102
|
-
* Checks if a file is binary by looking for NUL bytes in the first 8KB.
|
|
103
|
-
* Uses the same heuristic as git.
|
|
104
|
-
* @param repoDir - Repository directory
|
|
105
|
-
* @param filePath - File path (relative to repo root)
|
|
106
|
-
* @returns true if the file appears to be binary
|
|
107
|
-
*/
|
|
108
|
-
export declare function isBinaryFile(repoDir: string, filePath: string): Promise<boolean>;
|