@hominis/fireforge 0.54.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +287 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -438
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -332
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -420
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -422
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -208
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -692
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +113 -181
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -277
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +163 -653
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -712
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -91
- package/dist/src/commands/check-run.d.ts +0 -33
- package/dist/src/commands/check-run.js +0 -112
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -218
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -282
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -52
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -261
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -117
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -15
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -49
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -248
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -267
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -35
- package/dist/src/commands/re-export-hunks.js +0 -220
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -191
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -39
- package/dist/src/commands/re-export-single.js +0 -388
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -28
- package/dist/src/commands/re-export-summary.js +0 -36
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -29
- package/dist/src/commands/test-build-phase.js +0 -290
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -63
- package/dist/src/commands/test-orchestrate.js +0 -274
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -52
- package/dist/src/commands/test-stale-gate.js +0 -165
- package/dist/src/commands/test-verdict.d.ts +0 -92
- package/dist/src/commands/test-verdict.js +0 -162
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck.d.ts +0 -56
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -274
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -92
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -503
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -62
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -124
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -146
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -79
- package/dist/src/core/furnace-constants.js +0 -123
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -61
- package/dist/src/core/furnace-jsconfig.js +0 -208
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -302
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -318
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -204
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache.d.ts +0 -78
- package/dist/src/core/patch-lint-cache.js +0 -233
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -39
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -63
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -180
- package/dist/src/core/patch-lint-checkjs.js +0 -611
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -5
- package/dist/src/core/patch-lint-imports.js +0 -67
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -78
- package/dist/src/core/patch-lint-staged-registration.js +0 -110
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -57
- package/dist/src/core/patch-lint-token-scale.js +0 -286
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -191
- package/dist/src/core/patch-lint.js +0 -529
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -161
- package/dist/src/core/patch-parse.js +0 -347
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -216
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -507
- package/dist/src/core/typecheck.d.ts +0 -75
- package/dist/src/core/typecheck.js +0 -433
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1367
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -703
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -415
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -1,593 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { spawn } from 'node:child_process';
|
|
3
|
-
import { constants as osConstants } from 'node:os';
|
|
4
|
-
import { StringDecoder } from 'node:string_decoder';
|
|
5
|
-
import { ExecTimeoutError } from '../errors/base.js';
|
|
6
|
-
import { buildChildEnv } from './child-env.js';
|
|
7
|
-
import { toError } from './errors.js';
|
|
8
|
-
import { dispatchCompleteLines } from './line-dispatch.js';
|
|
9
|
-
import { killProcessTree, sweepProcessGroup } from './process-group.js';
|
|
10
|
-
// 50 MB cap per stream to prevent OOM. Large toolchain builds (e.g. Firefox, Chromium)
|
|
11
|
-
// can easily blow past this, so we truncate rather than let the buffer grow unbounded.
|
|
12
|
-
// Callers for whom truncation is unacceptable (e.g. the archive-safety preflight
|
|
13
|
-
// scanning a full `tar -tvf` listing) must check `wasTruncated` and fail hard.
|
|
14
|
-
const MAX_OUTPUT_SIZE = 50 * 1024 * 1024;
|
|
15
|
-
function createStreamCollector(mirror) {
|
|
16
|
-
const chunks = [];
|
|
17
|
-
let totalLength = 0;
|
|
18
|
-
let truncated = false;
|
|
19
|
-
// A per-stream StringDecoder keeps multibyte UTF-8 characters split across
|
|
20
|
-
// pipe chunk boundaries intact. Per-chunk `Buffer.toString()` turned a
|
|
21
|
-
// straddling character into two U+FFFD replacement chars, which silently
|
|
22
|
-
// broke regex matching over captured output (smoke-run allowlists, mach
|
|
23
|
-
// error hints) whenever a non-ASCII path or localized message landed on a
|
|
24
|
-
// 64 KB chunk boundary.
|
|
25
|
-
const decoder = new StringDecoder('utf8');
|
|
26
|
-
return {
|
|
27
|
-
onData: (data) => {
|
|
28
|
-
const chunk = decoder.write(data);
|
|
29
|
-
if (chunk.length === 0)
|
|
30
|
-
return;
|
|
31
|
-
mirror?.write(chunk);
|
|
32
|
-
if (truncated)
|
|
33
|
-
return;
|
|
34
|
-
const remaining = MAX_OUTPUT_SIZE - totalLength;
|
|
35
|
-
if (chunk.length > remaining) {
|
|
36
|
-
chunks.push(chunk.slice(0, remaining));
|
|
37
|
-
chunks.push('\n[truncated — output exceeded 50 MB]');
|
|
38
|
-
totalLength = MAX_OUTPUT_SIZE;
|
|
39
|
-
truncated = true;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
chunks.push(chunk);
|
|
43
|
-
totalLength += chunk.length;
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
getText: () => chunks.join(''),
|
|
47
|
-
wasTruncated: () => truncated,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
function buildSignalFromTimeout(timeout) {
|
|
51
|
-
if (timeout === undefined)
|
|
52
|
-
return undefined;
|
|
53
|
-
return AbortSignal.timeout(timeout);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Maps a child-process `error` event to the rejection the caller sees.
|
|
57
|
-
* When the caller set a `timeout` and the error is the AbortError produced
|
|
58
|
-
* by `AbortSignal.timeout` firing, rejects with a typed
|
|
59
|
-
* {@link ExecTimeoutError} naming the command and budget instead of Node's
|
|
60
|
-
* opaque `AbortError: The operation was aborted`.
|
|
61
|
-
*/
|
|
62
|
-
function toExecRejection(error, command, args, timeout, output) {
|
|
63
|
-
if (timeout !== undefined && error.name === 'AbortError') {
|
|
64
|
-
return new ExecTimeoutError(command, args, timeout, error, output);
|
|
65
|
-
}
|
|
66
|
-
return error;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Snapshot of what two collectors hold, for carrying onto a timeout
|
|
70
|
-
* rejection. Without it a `git add -A` killed at its budget rejected with
|
|
71
|
-
* nothing but the budget: the partial stdout/stderr that said what git was
|
|
72
|
-
* doing when it died was already collected and simply dropped.
|
|
73
|
-
*/
|
|
74
|
-
function collectedOutput(out, err) {
|
|
75
|
-
return {
|
|
76
|
-
stdout: out.getText(),
|
|
77
|
-
stderr: err.getText(),
|
|
78
|
-
truncated: out.wasTruncated() || err.wasTruncated(),
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
/** A child's exit code, with a signal death mapped to 128 + its number. */
|
|
82
|
-
export function exitCodeFromClose(code, signal) {
|
|
83
|
-
if (code !== null) {
|
|
84
|
-
return code;
|
|
85
|
-
}
|
|
86
|
-
if (signal) {
|
|
87
|
-
const signalNumber = osConstants.signals[signal];
|
|
88
|
-
if (typeof signalNumber === 'number') {
|
|
89
|
-
return 128 + signalNumber;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return 1;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Executes a command and returns its output.
|
|
96
|
-
* @param command - Command to execute
|
|
97
|
-
* @param args - Command arguments
|
|
98
|
-
* @param options - Execution options
|
|
99
|
-
* @returns Execution result with stdout, stderr, and exit code
|
|
100
|
-
*/
|
|
101
|
-
export async function exec(command, args, options = {}) {
|
|
102
|
-
return new Promise((resolve, reject) => {
|
|
103
|
-
const child = spawn(command, args, {
|
|
104
|
-
cwd: options.cwd,
|
|
105
|
-
env: buildChildEnv(options),
|
|
106
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
107
|
-
signal: buildSignalFromTimeout(options.timeout),
|
|
108
|
-
});
|
|
109
|
-
const out = createStreamCollector();
|
|
110
|
-
const err = createStreamCollector();
|
|
111
|
-
child.stdout.on('data', out.onData);
|
|
112
|
-
child.stderr.on('data', err.onData);
|
|
113
|
-
child.on('error', (error) => {
|
|
114
|
-
reject(toExecRejection(error, command, args, options.timeout, collectedOutput(out, err)));
|
|
115
|
-
});
|
|
116
|
-
child.on('close', (code, signal) => {
|
|
117
|
-
resolve({
|
|
118
|
-
stdout: out.getText(),
|
|
119
|
-
stderr: err.getText(),
|
|
120
|
-
exitCode: exitCodeFromClose(code, signal),
|
|
121
|
-
stdoutTruncated: out.wasTruncated(),
|
|
122
|
-
stderrTruncated: err.wasTruncated(),
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* The shared body of every spawn wrapper that outlives its call: detach
|
|
129
|
-
* decision, shutdown forwarding, closure tracking, process-group sweep and
|
|
130
|
-
* typed timeout rejection.
|
|
131
|
-
*
|
|
132
|
-
* `execStream`, `execInherit` and `execInheritCapture` each hand-rolled this
|
|
133
|
-
* sequence, and the copies drifted: `execStream` was the one that omitted
|
|
134
|
-
* {@link trackChildClosure}, so the bin signal handler did not wait for
|
|
135
|
-
* `runMachStream`'s children on Ctrl+C and the forwarder's SIGTERM → grace →
|
|
136
|
-
* SIGKILL escalation could not finish before the parent exited. That was the
|
|
137
|
-
* exact failure the tracking set was introduced to fix, left unwired in one
|
|
138
|
-
* copy. Keeping the sequence in one place is what stops that recurring.
|
|
139
|
-
*
|
|
140
|
-
* `exec` deliberately stays outside: it neither forwards signals nor tracks
|
|
141
|
-
* closure, because it is for short-lived helpers that no one Ctrl+Cs through.
|
|
142
|
-
* `execSmokeRun` also stays outside: its deadline owns the SIGTERM → grace →
|
|
143
|
-
* SIGKILL escalation directly, so it shares no forwarder with the others.
|
|
144
|
-
*
|
|
145
|
-
* @param spec - The variant's stdio, stream wiring, grace budget and result shape
|
|
146
|
-
* @returns Whatever `spec.result` builds from the child's `close` event
|
|
147
|
-
*/
|
|
148
|
-
async function spawnTracked(spec) {
|
|
149
|
-
const { command, args, options } = spec;
|
|
150
|
-
return new Promise((resolve, reject) => {
|
|
151
|
-
const usesProcessGroup = options.processGroup === true && process.platform !== 'win32';
|
|
152
|
-
const child = spec.spawnChild({
|
|
153
|
-
cwd: options.cwd,
|
|
154
|
-
env: buildChildEnv(options),
|
|
155
|
-
signal: buildSignalFromTimeout(options.timeout),
|
|
156
|
-
detached: usesProcessGroup,
|
|
157
|
-
});
|
|
158
|
-
const groupPid = usesProcessGroup ? child.pid : undefined;
|
|
159
|
-
if (groupPid !== undefined)
|
|
160
|
-
options.onProcessGroup?.(groupPid);
|
|
161
|
-
spec.attach?.(child);
|
|
162
|
-
// Group-aware kills route to the whole tree. A non-group child is killed
|
|
163
|
-
// directly by the forwarder's own `child.kill`.
|
|
164
|
-
const killTarget = options.processGroup === true
|
|
165
|
-
? (signal) => {
|
|
166
|
-
killProcessTree(child, signal, usesProcessGroup);
|
|
167
|
-
}
|
|
168
|
-
: undefined;
|
|
169
|
-
const forwarder = spec.forwardWithoutProcessGroup || options.processGroup === true
|
|
170
|
-
? installGracefulShutdownForwarder(child, spec.graceMs, killTarget)
|
|
171
|
-
: undefined;
|
|
172
|
-
const closure = trackChildClosure();
|
|
173
|
-
let rejection;
|
|
174
|
-
child.on('error', (error) => {
|
|
175
|
-
// Abort/startup failure: make sure a partially-started tree does not
|
|
176
|
-
// outlive the dispatch (a mach dying at startup would otherwise strand
|
|
177
|
-
// multiprocessing workers).
|
|
178
|
-
if (options.processGroup === true) {
|
|
179
|
-
killProcessTree(child, 'SIGKILL', usesProcessGroup);
|
|
180
|
-
}
|
|
181
|
-
// An abort emits error before close. Keep the dispatch tracked until
|
|
182
|
-
// the child closes and both teardown sweeps finish, including on timeout.
|
|
183
|
-
rejection = toExecRejection(error, command, args, options.timeout, spec.rejectionOutput?.());
|
|
184
|
-
});
|
|
185
|
-
child.on('close', (code, signal) => {
|
|
186
|
-
forwarder?.dispose();
|
|
187
|
-
const finish = () => {
|
|
188
|
-
closure.settle();
|
|
189
|
-
if (rejection)
|
|
190
|
-
reject(rejection);
|
|
191
|
-
else {
|
|
192
|
-
try {
|
|
193
|
-
resolve(spec.result(code, signal));
|
|
194
|
-
}
|
|
195
|
-
catch (error) {
|
|
196
|
-
reject(toError(error));
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
// Group sweep first (it takes the helpers that stayed in the group),
|
|
201
|
-
// then the caller's own sweep (the ones that did not), then settle.
|
|
202
|
-
const callerSweep = () => {
|
|
203
|
-
const sweep = options.postCloseSweep;
|
|
204
|
-
if (sweep === undefined) {
|
|
205
|
-
finish();
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
Promise.resolve().then(sweep).then(finish, finish);
|
|
209
|
-
};
|
|
210
|
-
if (groupPid !== undefined) {
|
|
211
|
-
sweepProcessGroup(groupPid).then(callerSweep, callerSweep);
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
callerSweep();
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Executes a command and streams its output.
|
|
221
|
-
* @param command - Command to execute
|
|
222
|
-
* @param args - Command arguments
|
|
223
|
-
* @param options - Execution options
|
|
224
|
-
* @returns Exit code of the process
|
|
225
|
-
*/
|
|
226
|
-
export async function execStream(command, args, options = {}) {
|
|
227
|
-
return spawnTracked({
|
|
228
|
-
command,
|
|
229
|
-
args,
|
|
230
|
-
options,
|
|
231
|
-
graceMs: 1500,
|
|
232
|
-
// A detached group leader does not receive the terminal's Ctrl+C, so
|
|
233
|
-
// the forwarder is mandatory (not just graceful-UX) when processGroup
|
|
234
|
-
// is set. A plain streamed child does not get one.
|
|
235
|
-
forwardWithoutProcessGroup: false,
|
|
236
|
-
spawnChild: (base) => spawn(command, args, { ...base, stdio: ['ignore', 'pipe', 'pipe'] }),
|
|
237
|
-
attach: (child) => {
|
|
238
|
-
const stdoutDecoder = new StringDecoder('utf8');
|
|
239
|
-
const stderrDecoder = new StringDecoder('utf8');
|
|
240
|
-
child.stdout.on('data', (data) => {
|
|
241
|
-
const chunk = stdoutDecoder.write(data);
|
|
242
|
-
if (chunk.length > 0)
|
|
243
|
-
options.onStdout?.(chunk);
|
|
244
|
-
});
|
|
245
|
-
child.stderr.on('data', (data) => {
|
|
246
|
-
const chunk = stderrDecoder.write(data);
|
|
247
|
-
if (chunk.length > 0)
|
|
248
|
-
options.onStderr?.(chunk);
|
|
249
|
-
});
|
|
250
|
-
},
|
|
251
|
-
result: exitCodeFromClose,
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Close-promises of children whose shutdown the CLI must wait for when a
|
|
256
|
-
* termination signal arrives. A bin signal handler that calls `process.exit`
|
|
257
|
-
* within a microtask of the first Ctrl+C makes `execInherit`'s documented
|
|
258
|
-
* SIGTERM → grace → SIGKILL escalation unreachable: the parent is gone
|
|
259
|
-
* before the 1500 ms grace timer can fire, so a hung Firefox is orphaned
|
|
260
|
-
* forever instead of being SIGKILLed and a healthy one loses its
|
|
261
|
-
* AsyncShutdown flush window.
|
|
262
|
-
*/
|
|
263
|
-
const activeChildClosures = new Set();
|
|
264
|
-
/**
|
|
265
|
-
* Registers a child with {@link waitForActiveChildShutdown}.
|
|
266
|
-
*
|
|
267
|
-
* Exported for the one legitimate spawn outside this module:
|
|
268
|
-
* `core/marionette-preflight.ts` keeps its own `spawn` because it needs the
|
|
269
|
-
* live `ChildProcess` mid-run, returns while the child is still running, and
|
|
270
|
-
* aborts on a TCP byte rather than a deadline, none of which any wrapper
|
|
271
|
-
* here can express. It still needs the shutdown contract, and a second
|
|
272
|
-
* hand-rolled copy is what lets a Ctrl+C orphan the whole mach → Firefox
|
|
273
|
-
* tree.
|
|
274
|
-
*/
|
|
275
|
-
/**
|
|
276
|
-
* Registers a child whose shutdown {@link waitForActiveChildShutdown} must
|
|
277
|
-
* wait for, and returns the handle that deregisters it.
|
|
278
|
-
*
|
|
279
|
-
* @returns `settle()`. Call after child closure and required teardown finish.
|
|
280
|
-
* An abort's `error` event does not prove closure; do not settle there.
|
|
281
|
-
* A failed start may settle when no live child or teardown remains.
|
|
282
|
-
*/
|
|
283
|
-
export function trackChildClosure() {
|
|
284
|
-
let resolveClosed;
|
|
285
|
-
const closed = new Promise((resolve) => {
|
|
286
|
-
resolveClosed = resolve;
|
|
287
|
-
});
|
|
288
|
-
activeChildClosures.add(closed);
|
|
289
|
-
return {
|
|
290
|
-
settle: () => {
|
|
291
|
-
resolveClosed?.();
|
|
292
|
-
activeChildClosures.delete(closed);
|
|
293
|
-
},
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Waits (bounded) for every tracked child process to close. Called by the
|
|
298
|
-
* bin signal handler after forwarding SIGINT/SIGTERM, so the parent stays
|
|
299
|
-
* alive long enough for the grace-then-SIGKILL escalation to actually run.
|
|
300
|
-
* Resolves immediately when no children are active.
|
|
301
|
-
*/
|
|
302
|
-
export async function waitForActiveChildShutdown(timeoutMs) {
|
|
303
|
-
if (activeChildClosures.size === 0)
|
|
304
|
-
return;
|
|
305
|
-
await Promise.race([
|
|
306
|
-
Promise.allSettled([...activeChildClosures]),
|
|
307
|
-
new Promise((resolve) => {
|
|
308
|
-
const timer = setTimeout(resolve, timeoutMs);
|
|
309
|
-
timer.unref();
|
|
310
|
-
}),
|
|
311
|
-
]);
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Executes a command and inherits stdio (shows output directly).
|
|
315
|
-
*
|
|
316
|
-
* Graceful shutdown: when the FireForge process receives SIGINT/SIGTERM, the
|
|
317
|
-
* signal is forwarded to the child as SIGTERM and a short grace timer (default
|
|
318
|
-
* 1500ms) runs before escalating to SIGKILL. A second matching signal during
|
|
319
|
-
* the grace period triggers an immediate SIGKILL, matching the usual
|
|
320
|
-
* "hit Ctrl-C again to force-quit" UX. Without this, Firefox's AsyncShutdown
|
|
321
|
-
* / profileBeforeChange blockers (which flush in-memory state to disk) can be
|
|
322
|
-
* racing the OS child-exit path, losing the last few seconds of edits.
|
|
323
|
-
*
|
|
324
|
-
* @param command - Command to execute
|
|
325
|
-
* @param args - Command arguments
|
|
326
|
-
* @param options - Execution options
|
|
327
|
-
* @returns Exit code of the process
|
|
328
|
-
*/
|
|
329
|
-
export async function execInherit(command, args, options = {}) {
|
|
330
|
-
return spawnTracked({
|
|
331
|
-
command,
|
|
332
|
-
args,
|
|
333
|
-
options,
|
|
334
|
-
graceMs: options.shutdownGraceMs ?? 1500,
|
|
335
|
-
forwardWithoutProcessGroup: true,
|
|
336
|
-
spawnChild: (base) => spawn(command, args, { ...base, stdio: 'inherit' }),
|
|
337
|
-
result: exitCodeFromClose,
|
|
338
|
-
});
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Wires parent-process SIGINT/SIGTERM to a child: first signal → child.kill
|
|
342
|
-
* (SIGTERM) + grace timer. A second matching signal → immediate SIGKILL.
|
|
343
|
-
* Grace timer expiry → SIGKILL. Returns a `dispose()` that clears the
|
|
344
|
-
* listeners and any outstanding timer. Callers must invoke `dispose()` from both the child's
|
|
345
|
-
* `close` and `error` handlers so the process does not accumulate signal
|
|
346
|
-
* listeners across repeated spawns.
|
|
347
|
-
*/
|
|
348
|
-
export function installGracefulShutdownForwarder(child, graceMs, killTarget) {
|
|
349
|
-
let graceTimer;
|
|
350
|
-
const forwarded = new Set();
|
|
351
|
-
const sendKill = (signal) => {
|
|
352
|
-
if (killTarget) {
|
|
353
|
-
killTarget(signal);
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
356
|
-
child.kill(signal);
|
|
357
|
-
};
|
|
358
|
-
const escalate = () => {
|
|
359
|
-
if (child.exitCode !== null || child.signalCode !== null)
|
|
360
|
-
return;
|
|
361
|
-
try {
|
|
362
|
-
sendKill('SIGKILL');
|
|
363
|
-
}
|
|
364
|
-
catch {
|
|
365
|
-
// Child is already gone, nothing to do.
|
|
366
|
-
}
|
|
367
|
-
};
|
|
368
|
-
const handleSignal = (signal) => {
|
|
369
|
-
if (forwarded.has(signal)) {
|
|
370
|
-
// Second receipt of the same signal while still running: escalate now.
|
|
371
|
-
escalate();
|
|
372
|
-
return;
|
|
373
|
-
}
|
|
374
|
-
forwarded.add(signal);
|
|
375
|
-
try {
|
|
376
|
-
sendKill('SIGTERM');
|
|
377
|
-
}
|
|
378
|
-
catch {
|
|
379
|
-
// If the child can't accept SIGTERM (already dead), nothing to do.
|
|
380
|
-
return;
|
|
381
|
-
}
|
|
382
|
-
graceTimer = setTimeout(escalate, graceMs);
|
|
383
|
-
graceTimer.unref();
|
|
384
|
-
};
|
|
385
|
-
const onSigint = () => {
|
|
386
|
-
handleSignal('SIGINT');
|
|
387
|
-
};
|
|
388
|
-
const onSigterm = () => {
|
|
389
|
-
handleSignal('SIGTERM');
|
|
390
|
-
};
|
|
391
|
-
process.on('SIGINT', onSigint);
|
|
392
|
-
process.on('SIGTERM', onSigterm);
|
|
393
|
-
const dispose = () => {
|
|
394
|
-
process.off('SIGINT', onSigint);
|
|
395
|
-
process.off('SIGTERM', onSigterm);
|
|
396
|
-
if (graceTimer) {
|
|
397
|
-
clearTimeout(graceTimer);
|
|
398
|
-
graceTimer = undefined;
|
|
399
|
-
}
|
|
400
|
-
};
|
|
401
|
-
return { dispose };
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Executes a command while inheriting stdin, streaming stdout/stderr live,
|
|
405
|
-
* and capturing the emitted output for diagnostics.
|
|
406
|
-
* @param command - Command to execute
|
|
407
|
-
* @param args - Command arguments
|
|
408
|
-
* @param options - Execution options
|
|
409
|
-
* @returns Execution result with stdout, stderr, and exit code
|
|
410
|
-
*/
|
|
411
|
-
export async function execInheritCapture(command, args, options = {}) {
|
|
412
|
-
const out = createStreamCollector(options.mirror?.stdout ?? process.stdout);
|
|
413
|
-
const err = createStreamCollector(options.mirror?.stderr ?? process.stderr);
|
|
414
|
-
return spawnTracked({
|
|
415
|
-
command,
|
|
416
|
-
args,
|
|
417
|
-
options,
|
|
418
|
-
graceMs: options.shutdownGraceMs ?? 1500,
|
|
419
|
-
forwardWithoutProcessGroup: true,
|
|
420
|
-
spawnChild: (base) => spawn(command, args, { ...base, stdio: ['inherit', 'pipe', 'pipe'] }),
|
|
421
|
-
attach: (child) => {
|
|
422
|
-
child.stdout.on('data', out.onData);
|
|
423
|
-
child.stderr.on('data', err.onData);
|
|
424
|
-
},
|
|
425
|
-
result: (code, signal) => ({
|
|
426
|
-
stdout: out.getText(),
|
|
427
|
-
stderr: err.getText(),
|
|
428
|
-
exitCode: exitCodeFromClose(code, signal),
|
|
429
|
-
stdoutTruncated: out.wasTruncated(),
|
|
430
|
-
stderrTruncated: err.wasTruncated(),
|
|
431
|
-
}),
|
|
432
|
-
rejectionOutput: () => collectedOutput(out, err),
|
|
433
|
-
});
|
|
434
|
-
}
|
|
435
|
-
/**
|
|
436
|
-
* Spawns `command` with `args` in its own process group (POSIX), streams
|
|
437
|
-
* stdout/stderr line-by-line to the caller, enforces a deadline by
|
|
438
|
-
* SIGTERMing the whole group when it elapses, and returns the captured
|
|
439
|
-
* output alongside a `timedOut` flag.
|
|
440
|
-
*
|
|
441
|
-
* Process-group semantics matter here because `mach run` execs a Python
|
|
442
|
-
* wrapper that then forks Firefox, which itself spawns content processes.
|
|
443
|
-
* Sending SIGTERM only to the Python PID leaves an orphan Firefox tree
|
|
444
|
-
* behind. Running the child as a process-group leader (`detached: true`
|
|
445
|
-
* on POSIX) and signalling `-pid` routes the kill to every descendant
|
|
446
|
-
* that inherited the group.
|
|
447
|
-
*
|
|
448
|
-
* Windows fallback: `detached: true` does not create an equivalent group
|
|
449
|
-
* there, so we kill the descendant tree with `taskkill /pid <pid> /T /F`
|
|
450
|
-
* instead. taskkill has no graceful-signal equivalent, so both the deadline
|
|
451
|
-
* and the grace re-invocation are forced kills and Windows children get
|
|
452
|
-
* no shutdown window. This is best-effort and Windows is untested, see
|
|
453
|
-
* README.
|
|
454
|
-
* `child.kill()` is still sent as a direct-child fallback in case
|
|
455
|
-
* taskkill itself is unavailable.
|
|
456
|
-
*/
|
|
457
|
-
export async function execSmokeRun(command, args, options) {
|
|
458
|
-
return new Promise((resolve, reject) => {
|
|
459
|
-
const usesProcessGroup = process.platform !== 'win32';
|
|
460
|
-
const child = spawn(command, args, {
|
|
461
|
-
cwd: options.cwd,
|
|
462
|
-
env: buildChildEnv(options),
|
|
463
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
464
|
-
// A new process group on POSIX lets us signal the whole descendant
|
|
465
|
-
// tree at once, which is essential for mach → python → firefox →
|
|
466
|
-
// content-process chains. On Windows spawn ignores this for our
|
|
467
|
-
// purposes and we fall back to a taskkill /T tree kill below.
|
|
468
|
-
detached: usesProcessGroup,
|
|
469
|
-
});
|
|
470
|
-
const out = createStreamCollector(options.mirror?.stdout);
|
|
471
|
-
const err = createStreamCollector(options.mirror?.stderr);
|
|
472
|
-
const stdoutLineDecoder = new StringDecoder('utf8');
|
|
473
|
-
const stderrLineDecoder = new StringDecoder('utf8');
|
|
474
|
-
let stdoutBuffer = '';
|
|
475
|
-
let stderrBuffer = '';
|
|
476
|
-
child.stdout.on('data', (data) => {
|
|
477
|
-
out.onData(data);
|
|
478
|
-
stdoutBuffer += stdoutLineDecoder.write(data);
|
|
479
|
-
stdoutBuffer = dispatchCompleteLines(stdoutBuffer, options.onStdoutLine);
|
|
480
|
-
});
|
|
481
|
-
child.stderr.on('data', (data) => {
|
|
482
|
-
err.onData(data);
|
|
483
|
-
stderrBuffer += stderrLineDecoder.write(data);
|
|
484
|
-
stderrBuffer = dispatchCompleteLines(stderrBuffer, options.onStderrLine);
|
|
485
|
-
});
|
|
486
|
-
let timedOut = false;
|
|
487
|
-
let graceTimer;
|
|
488
|
-
let signalGraceTimer;
|
|
489
|
-
const signalChildGroup = (signal) => {
|
|
490
|
-
killProcessTree(child, signal, usesProcessGroup);
|
|
491
|
-
};
|
|
492
|
-
const deadlineTimer = setTimeout(() => {
|
|
493
|
-
timedOut = true;
|
|
494
|
-
signalChildGroup('SIGTERM');
|
|
495
|
-
graceTimer = setTimeout(() => {
|
|
496
|
-
signalChildGroup('SIGKILL');
|
|
497
|
-
}, options.killGraceMs ?? 10000);
|
|
498
|
-
graceTimer.unref();
|
|
499
|
-
}, options.smokeTimeoutMs);
|
|
500
|
-
deadlineTimer.unref();
|
|
501
|
-
// Forward parent SIGINT/SIGTERM to the whole child process group. The
|
|
502
|
-
// smoke child is a group leader (detached), so it does not receive the
|
|
503
|
-
// terminal's Ctrl+C SIGINT. Without this forwarder, the parent exits
|
|
504
|
-
// and the entire mach → firefox tree is orphaned. Second signal (or
|
|
505
|
-
// grace expiry) escalates to a group SIGKILL.
|
|
506
|
-
const forwardedSignals = new Set();
|
|
507
|
-
const onParentSignal = (signal) => {
|
|
508
|
-
if (forwardedSignals.has(signal)) {
|
|
509
|
-
signalChildGroup('SIGKILL');
|
|
510
|
-
return;
|
|
511
|
-
}
|
|
512
|
-
forwardedSignals.add(signal);
|
|
513
|
-
signalChildGroup('SIGTERM');
|
|
514
|
-
signalGraceTimer = setTimeout(() => {
|
|
515
|
-
signalChildGroup('SIGKILL');
|
|
516
|
-
}, options.killGraceMs ?? 10000);
|
|
517
|
-
signalGraceTimer.unref();
|
|
518
|
-
};
|
|
519
|
-
const onSigint = () => {
|
|
520
|
-
onParentSignal('SIGINT');
|
|
521
|
-
};
|
|
522
|
-
const onSigterm = () => {
|
|
523
|
-
onParentSignal('SIGTERM');
|
|
524
|
-
};
|
|
525
|
-
process.on('SIGINT', onSigint);
|
|
526
|
-
process.on('SIGTERM', onSigterm);
|
|
527
|
-
const closure = trackChildClosure();
|
|
528
|
-
const cleanupSignalForwarding = () => {
|
|
529
|
-
process.off('SIGINT', onSigint);
|
|
530
|
-
process.off('SIGTERM', onSigterm);
|
|
531
|
-
if (signalGraceTimer)
|
|
532
|
-
clearTimeout(signalGraceTimer);
|
|
533
|
-
closure.settle();
|
|
534
|
-
};
|
|
535
|
-
child.on('error', (error) => {
|
|
536
|
-
clearTimeout(deadlineTimer);
|
|
537
|
-
if (graceTimer)
|
|
538
|
-
clearTimeout(graceTimer);
|
|
539
|
-
cleanupSignalForwarding();
|
|
540
|
-
reject(error);
|
|
541
|
-
});
|
|
542
|
-
child.on('close', (code, signal) => {
|
|
543
|
-
clearTimeout(deadlineTimer);
|
|
544
|
-
if (graceTimer)
|
|
545
|
-
clearTimeout(graceTimer);
|
|
546
|
-
cleanupSignalForwarding();
|
|
547
|
-
// Flush any remaining partial line (child ended without a trailing newline).
|
|
548
|
-
if (stdoutBuffer.length > 0)
|
|
549
|
-
options.onStdoutLine?.(stdoutBuffer);
|
|
550
|
-
if (stderrBuffer.length > 0)
|
|
551
|
-
options.onStderrLine?.(stderrBuffer);
|
|
552
|
-
resolve({
|
|
553
|
-
stdout: out.getText(),
|
|
554
|
-
stderr: err.getText(),
|
|
555
|
-
exitCode: exitCodeFromClose(code, signal),
|
|
556
|
-
stdoutTruncated: out.wasTruncated(),
|
|
557
|
-
stderrTruncated: err.wasTruncated(),
|
|
558
|
-
timedOut,
|
|
559
|
-
});
|
|
560
|
-
});
|
|
561
|
-
});
|
|
562
|
-
}
|
|
563
|
-
/**
|
|
564
|
-
* Finds an executable in the system PATH.
|
|
565
|
-
* @param name - Name of the executable
|
|
566
|
-
* @returns Full path to the executable, or undefined if not found
|
|
567
|
-
*/
|
|
568
|
-
export async function findExecutable(name) {
|
|
569
|
-
const command = process.platform === 'win32' ? 'where' : 'which';
|
|
570
|
-
try {
|
|
571
|
-
const result = await exec(command, [name]);
|
|
572
|
-
if (result.exitCode === 0 && result.stdout.trim()) {
|
|
573
|
-
// Return the first line (first match)
|
|
574
|
-
return result.stdout
|
|
575
|
-
.split(/\r?\n/)
|
|
576
|
-
.map((line) => line.trim())
|
|
577
|
-
.find((line) => line.length > 0);
|
|
578
|
-
}
|
|
579
|
-
return undefined;
|
|
580
|
-
}
|
|
581
|
-
catch {
|
|
582
|
-
return undefined;
|
|
583
|
-
}
|
|
584
|
-
}
|
|
585
|
-
/**
|
|
586
|
-
* Checks if an executable exists in the system PATH.
|
|
587
|
-
* @param name - Name of the executable
|
|
588
|
-
* @returns True if the executable exists
|
|
589
|
-
*/
|
|
590
|
-
export async function executableExists(name) {
|
|
591
|
-
const path = await findExecutable(name);
|
|
592
|
-
return path !== undefined;
|
|
593
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parser for the duration fields `ps` prints.
|
|
3
|
-
*
|
|
4
|
-
* Two different columns share one grammar, which is why this lives apart
|
|
5
|
-
* from either consumer: `time=` (accumulated CPU) and `etime=` (elapsed
|
|
6
|
-
* wall clock). One parser handles both: a second hand-rolled copy is how
|
|
7
|
-
* the two would drift, and the darwin dialect is the half that is easy to
|
|
8
|
-
* get wrong.
|
|
9
|
-
*
|
|
10
|
-
* Dialects:
|
|
11
|
-
* - linux `[dd-]hh:mm:ss` (e.g. `26-03:14:12`, `03:14:12`)
|
|
12
|
-
* - darwin/BSD `mm:ss.cc`, whose minutes field accumulates without
|
|
13
|
-
* wrapping (e.g. `38412:07.55`)
|
|
14
|
-
*
|
|
15
|
-
* Returns `NaN` for anything else, so callers must treat an unrecognized
|
|
16
|
-
* shape as "unknown" rather than as zero. A browser reported as 0 seconds
|
|
17
|
-
* old would be exactly the wrong attribution.
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* Parses a `ps` duration field into whole seconds.
|
|
21
|
-
*
|
|
22
|
-
* @param value - Raw field text, e.g. `03:14:12` or `38412:07.55`
|
|
23
|
-
* @returns Seconds, or `NaN` when the shape is not recognized
|
|
24
|
-
*/
|
|
25
|
-
export declare function parsePsDuration(value: string): number;
|
|
26
|
-
/**
|
|
27
|
-
* Renders a duration for an operator-facing line: `4s`, `3m12s`, `2h05m`.
|
|
28
|
-
* Returns `undefined` for `NaN`, so a caller can omit the clause entirely
|
|
29
|
-
* rather than print "unknown" noise.
|
|
30
|
-
*/
|
|
31
|
-
export declare function formatPsDuration(seconds: number): string | undefined;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Parser for the duration fields `ps` prints.
|
|
4
|
-
*
|
|
5
|
-
* Two different columns share one grammar, which is why this lives apart
|
|
6
|
-
* from either consumer: `time=` (accumulated CPU) and `etime=` (elapsed
|
|
7
|
-
* wall clock). One parser handles both: a second hand-rolled copy is how
|
|
8
|
-
* the two would drift, and the darwin dialect is the half that is easy to
|
|
9
|
-
* get wrong.
|
|
10
|
-
*
|
|
11
|
-
* Dialects:
|
|
12
|
-
* - linux `[dd-]hh:mm:ss` (e.g. `26-03:14:12`, `03:14:12`)
|
|
13
|
-
* - darwin/BSD `mm:ss.cc`, whose minutes field accumulates without
|
|
14
|
-
* wrapping (e.g. `38412:07.55`)
|
|
15
|
-
*
|
|
16
|
-
* Returns `NaN` for anything else, so callers must treat an unrecognized
|
|
17
|
-
* shape as "unknown" rather than as zero. A browser reported as 0 seconds
|
|
18
|
-
* old would be exactly the wrong attribution.
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* Parses a `ps` duration field into whole seconds.
|
|
22
|
-
*
|
|
23
|
-
* @param value - Raw field text, e.g. `03:14:12` or `38412:07.55`
|
|
24
|
-
* @returns Seconds, or `NaN` when the shape is not recognized
|
|
25
|
-
*/
|
|
26
|
-
export function parsePsDuration(value) {
|
|
27
|
-
const trimmed = value.trim();
|
|
28
|
-
let days = 0;
|
|
29
|
-
let rest = trimmed;
|
|
30
|
-
const dayMatch = /^(\d+)-(.*)$/.exec(trimmed);
|
|
31
|
-
if (dayMatch) {
|
|
32
|
-
days = Number(dayMatch[1]);
|
|
33
|
-
rest = dayMatch[2] ?? '';
|
|
34
|
-
}
|
|
35
|
-
const parts = rest.split(':');
|
|
36
|
-
if (parts.length === 3) {
|
|
37
|
-
// hh:mm:ss on linux. Seconds may not carry fractions but tolerate them.
|
|
38
|
-
const [h, m, s] = parts.map(Number);
|
|
39
|
-
if ([h, m, s].some((n) => Number.isNaN(n)))
|
|
40
|
-
return NaN;
|
|
41
|
-
return days * 86400 + (h ?? 0) * 3600 + (m ?? 0) * 60 + (s ?? 0);
|
|
42
|
-
}
|
|
43
|
-
if (parts.length === 2) {
|
|
44
|
-
// mm:ss.cc on darwin. The minutes field accumulates without wrapping.
|
|
45
|
-
const [m, s] = parts.map(Number);
|
|
46
|
-
if ([m, s].some((n) => Number.isNaN(n)))
|
|
47
|
-
return NaN;
|
|
48
|
-
return days * 86400 + (m ?? 0) * 60 + (s ?? 0);
|
|
49
|
-
}
|
|
50
|
-
return NaN;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Renders a duration for an operator-facing line: `4s`, `3m12s`, `2h05m`.
|
|
54
|
-
* Returns `undefined` for `NaN`, so a caller can omit the clause entirely
|
|
55
|
-
* rather than print "unknown" noise.
|
|
56
|
-
*/
|
|
57
|
-
export function formatPsDuration(seconds) {
|
|
58
|
-
if (Number.isNaN(seconds) || seconds < 0)
|
|
59
|
-
return undefined;
|
|
60
|
-
if (seconds < 60)
|
|
61
|
-
return `${Math.floor(seconds)}s`;
|
|
62
|
-
if (seconds < 3600) {
|
|
63
|
-
const m = Math.floor(seconds / 60);
|
|
64
|
-
const s = Math.floor(seconds % 60);
|
|
65
|
-
return `${m}m${String(s).padStart(2, '0')}s`;
|
|
66
|
-
}
|
|
67
|
-
const h = Math.floor(seconds / 3600);
|
|
68
|
-
const m = Math.floor((seconds % 3600) / 60);
|
|
69
|
-
return `${h}h${String(m).padStart(2, '0')}m`;
|
|
70
|
-
}
|