@hominis/fireforge 0.55.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +233 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -456
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -359
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -382
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -423
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -241
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -766
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +111 -221
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -290
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +159 -723
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -719
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -98
- package/dist/src/commands/check-run.d.ts +0 -44
- package/dist/src/commands/check-run.js +0 -125
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -229
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -283
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/body.d.ts +0 -29
- package/dist/src/commands/patch/body.js +0 -60
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -54
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -263
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -114
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -27
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -78
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -251
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -285
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-each.d.ts +0 -46
- package/dist/src/commands/re-export-each.js +0 -110
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -37
- package/dist/src/commands/re-export-hunks.js +0 -264
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -192
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -53
- package/dist/src/commands/re-export-single.js +0 -426
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -44
- package/dist/src/commands/re-export-summary.js +0 -59
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -34
- package/dist/src/commands/test-build-phase.js +0 -291
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -70
- package/dist/src/commands/test-orchestrate.js +0 -277
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -56
- package/dist/src/commands/test-stale-gate.js +0 -208
- package/dist/src/commands/test-verdict.d.ts +0 -102
- package/dist/src/commands/test-verdict.js +0 -176
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck-explain.d.ts +0 -13
- package/dist/src/commands/typecheck-explain.js +0 -100
- package/dist/src/commands/typecheck.d.ts +0 -61
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -284
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -125
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -509
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/dev-profile.d.ts +0 -28
- package/dist/src/core/dev-profile.js +0 -58
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -67
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -131
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -167
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -81
- package/dist/src/core/furnace-constants.js +0 -125
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-deploy-owner.d.ts +0 -29
- package/dist/src/core/furnace-deploy-owner.js +0 -116
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -87
- package/dist/src/core/furnace-jsconfig.js +0 -248
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-tag-map.d.ts +0 -47
- package/dist/src/core/furnace-tag-map.js +0 -182
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -331
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -328
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -167
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache-checkjs.d.ts +0 -45
- package/dist/src/core/patch-lint-cache-checkjs.js +0 -195
- package/dist/src/core/patch-lint-cache.d.ts +0 -79
- package/dist/src/core/patch-lint-cache.js +0 -247
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -57
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -91
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs-resolve.d.ts +0 -31
- package/dist/src/core/patch-lint-checkjs-resolve.js +0 -86
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -182
- package/dist/src/core/patch-lint-checkjs.js +0 -563
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -9
- package/dist/src/core/patch-lint-imports.js +0 -90
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -98
- package/dist/src/core/patch-lint-staged-registration.js +0 -128
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -65
- package/dist/src/core/patch-lint-token-scale.js +0 -304
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -206
- package/dist/src/core/patch-lint.js +0 -533
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -176
- package/dist/src/core/patch-parse.js +0 -416
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -219
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-explain.d.ts +0 -93
- package/dist/src/core/typecheck-explain.js +0 -213
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -508
- package/dist/src/core/typecheck.d.ts +0 -97
- package/dist/src/core/typecheck.js +0 -457
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1372
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -732
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -422
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -1,640 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Resource-monitor degrade guard for mach dispatches.
|
|
4
|
-
*
|
|
5
|
-
* mozbuild's build resource monitor calls `psutil.virtual_memory()` at
|
|
6
|
-
* startup (`start_resource_recording`) and again later from
|
|
7
|
-
* `mozbuild.base._run_make`. On some hosts those raise `RuntimeError:
|
|
8
|
-
* host_statistics64(HOST_VM_INFO64) syscall failed`, and a
|
|
9
|
-
* `SystemResourceMonitor.__init__` that fails partway leaves an instance
|
|
10
|
-
* without `poll_interval`, so later polling dies with `AttributeError: ...
|
|
11
|
-
* poll_interval`. Any of these aborts `mach build` / `mach build faster`
|
|
12
|
-
* before the compiler ever runs.
|
|
13
|
-
*
|
|
14
|
-
* The guard is installed as a `fireforge_mach_guard.pth` + module pair in
|
|
15
|
-
* every discovered mach virtualenv site-packages directory. A PYTHONPATH
|
|
16
|
-
* `sitecustomize.py` is not sufficient on its own: mach re-execs itself into
|
|
17
|
-
* its private virtualenv and drops PYTHONPATH, so that route never loads.
|
|
18
|
-
* `.pth` files execute at interpreter startup from the venv's own
|
|
19
|
-
* site-packages, which survives the re-exec. The PYTHONPATH copy is retained
|
|
20
|
-
* only for the pre-venv bootstrap phase (first build, no `_virtualenvs` on
|
|
21
|
-
* disk yet).
|
|
22
|
-
*
|
|
23
|
-
* The guard covers the whole crash family:
|
|
24
|
-
* - wraps `psutil.virtual_memory` / `swap_memory` / `cpu_percent` /
|
|
25
|
-
* `cpu_times` / `disk_io_counters` module-wide, so every call site,
|
|
26
|
-
* including the direct `psutil.virtual_memory()` in
|
|
27
|
-
* `mozbuild.base._run_make`, degrades to a `UserWarning` and a zeroed
|
|
28
|
-
* reading instead of aborting.
|
|
29
|
-
*
|
|
30
|
-
* The fallback must be per-function arity-correct and reconstructible:
|
|
31
|
-
* mozsystemmonitor captures reading types at `__init__`
|
|
32
|
-
* (`self._swap_type = type(psutil.swap_memory())`) and rebuilds each
|
|
33
|
-
* collector sample via `self._swap_type(*swap_mem)`. An svmem-shaped
|
|
34
|
-
* (8-field) fallback in the swap (6-field `sswap`) position makes the
|
|
35
|
-
* parent reject every sample and break its drain loop, so the pipe fills,
|
|
36
|
-
* the collector child blocks in `send()` and never reads the terminate
|
|
37
|
-
* sentinel, and mach hangs forever in its atexit `waitpid`. Each wrapped
|
|
38
|
-
* function therefore degrades to a zeroed instance of psutil's own result
|
|
39
|
-
* namedtuple where resolvable, else a module-level guard-owned namedtuple
|
|
40
|
-
* with the exact field order and arity for that function (module-level so
|
|
41
|
-
* readings pickle by reference across the collector pipe).
|
|
42
|
-
* `_DegradedReading` remains only as a documented last resort and
|
|
43
|
-
* tolerates `type(reading)(*values)` reconstruction. Guard-owned fallback
|
|
44
|
-
* classes never depend on psutil internals resolving, which also makes
|
|
45
|
-
* them safe when two guard copies load (PYTHONPATH `sitecustomize` in the
|
|
46
|
-
* bootstrap phase plus the in-venv `.pth`), each with its own classes.
|
|
47
|
-
* - guards `SystemResourceMonitor` construction via an import hook:
|
|
48
|
-
* `poll_interval` is pre-populated before the real `__init__` runs, a
|
|
49
|
-
* failing `__init__` marks the instance degraded instead of raising, and
|
|
50
|
-
* every monitor method no-ops on a degraded instance, so a
|
|
51
|
-
* partially-constructed monitor can never surface the
|
|
52
|
-
* `AttributeError: poll_interval` variant. Degraded aggregate methods
|
|
53
|
-
* return zeroed shapes (not `None`) where callers subscript the result
|
|
54
|
-
* (`aggregate_io` → zeroed io reading, so mozbuild's `log_resource_usage`
|
|
55
|
-
* does not die on `usage["io"].read_bytes` after a successful compile).
|
|
56
|
-
* - suppresses the mozsystemmonitor collector child on degradation: once
|
|
57
|
-
* any psutil degradation is observed in the process, monitors are kept
|
|
58
|
-
* inert (`start` never spawns the collector), and a degraded transition
|
|
59
|
-
* or raising `stop` best-effort terminates a live collector child and
|
|
60
|
-
* drains the pipe, so a malformed sample stream cannot wedge mach's
|
|
61
|
-
* shutdown even if a future shape mismatch slips through.
|
|
62
|
-
* - wraps `mozbuild.controller.building.BuildMonitor.log_resource_usage` to
|
|
63
|
-
* warn-and-continue on any exception, so end-of-build resource reporting
|
|
64
|
-
* can never fail a build whose artifacts are complete.
|
|
65
|
-
*/
|
|
66
|
-
import { lstat, mkdir, readdir } from 'node:fs/promises';
|
|
67
|
-
import { homedir, tmpdir, userInfo } from 'node:os';
|
|
68
|
-
import { delimiter, join } from 'node:path';
|
|
69
|
-
import { BuildError } from '../errors/build.js';
|
|
70
|
-
import { toError } from '../utils/errors.js';
|
|
71
|
-
import { pathExists, writeText } from '../utils/fs.js';
|
|
72
|
-
import { verbose } from '../utils/logger.js';
|
|
73
|
-
import { PROFILE_MERGE_PYTHON } from './test-profile-files.js';
|
|
74
|
-
/**
|
|
75
|
-
* Prefix of the per-user directory (under the OS temp dir) holding the
|
|
76
|
-
* PYTHONPATH fallback. The uid (or, on Windows, the username) is appended:
|
|
77
|
-
* a fixed name under a shared `/tmp` lets any other local account pre-create
|
|
78
|
-
* the directory and own the `sitecustomize.py` that every mach dispatch
|
|
79
|
-
* then imports.
|
|
80
|
-
*/
|
|
81
|
-
const RESOURCE_SHIM_DIRNAME = 'fireforge-mach-resource-shim';
|
|
82
|
-
/** Basename (sans extension) of the in-venv guard module. */
|
|
83
|
-
const GUARD_MODULE_NAME = 'fireforge_mach_guard';
|
|
84
|
-
/**
|
|
85
|
-
* Python guard body, importable both as the in-venv `fireforge_mach_guard`
|
|
86
|
-
* module (loaded by the sibling `.pth` at interpreter startup) and as the
|
|
87
|
-
* PYTHONPATH `sitecustomize` fallback. Defensive throughout: a missing or
|
|
88
|
-
* broken psutil/mozsystemmonitor leaves mach untouched, and every wrapper
|
|
89
|
-
* only intercepts the failure path. Exported for the Python-executing
|
|
90
|
-
* regression test (mach-resource-shim.python.test.ts), which asserts the
|
|
91
|
-
* degraded readings' runtime behavior rather than string-matching the source.
|
|
92
|
-
*/
|
|
93
|
-
export const GUARD_PYTHON_SOURCE = `# Generated by FireForge - do not edit.
|
|
94
|
-
# Degrades the broken host resource monitor family (psutil vs Darwin) from
|
|
95
|
-
# fatal startup errors into non-fatal warnings, so mach builds and tests
|
|
96
|
-
# proceed. Installed into the mach virtualenv site-packages via a .pth file
|
|
97
|
-
# (survives mach's venv re-exec, which drops PYTHONPATH).
|
|
98
|
-
import builtins
|
|
99
|
-
import collections
|
|
100
|
-
import inspect
|
|
101
|
-
import sys
|
|
102
|
-
import warnings
|
|
103
|
-
${PROFILE_MERGE_PYTHON}
|
|
104
|
-
|
|
105
|
-
# Any psutil degradation observed in this process. Once set, monitors are
|
|
106
|
-
# kept inert (start never spawns the collector child) — on a flapping host a
|
|
107
|
-
# healthy-looking moment must not be trusted to start a sample stream that a
|
|
108
|
-
# later degraded reading could malform.
|
|
109
|
-
_fireforge_host_degraded = [False]
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
def _fireforge_degraded_notice(exc):
|
|
113
|
-
_fireforge_host_degraded[0] = True
|
|
114
|
-
warnings.warn(
|
|
115
|
-
"FireForge: host resource monitor degraded (%s); continuing without resource monitoring." % exc
|
|
116
|
-
)
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
class _DegradedReading(object):
|
|
120
|
-
# Last-resort duck type of psutil's namedtuple results (svmem field
|
|
121
|
-
# order): mozsystemmonitor subscripts, iterates, and unpacks readings,
|
|
122
|
-
# so the degraded fallback must survive r[0], list(r), len(r), r._fields
|
|
123
|
-
# and r._asdict(), not just attribute access. The parent also reconstructs
|
|
124
|
-
# readings via type(reading)(*values), so the constructor must tolerate
|
|
125
|
-
# the full positional field list. Normal
|
|
126
|
-
# degraded paths use the per-function namedtuple fallbacks below; this
|
|
127
|
-
# class only backstops a fallback that itself raised.
|
|
128
|
-
_fields = ("total", "available", "percent", "used", "free", "active", "inactive", "wired")
|
|
129
|
-
total = available = used = free = active = inactive = wired = 0
|
|
130
|
-
percent = 0.0
|
|
131
|
-
|
|
132
|
-
def __init__(self, *_args, **_kwargs):
|
|
133
|
-
pass
|
|
134
|
-
|
|
135
|
-
def __getattr__(self, _name):
|
|
136
|
-
return 0
|
|
137
|
-
|
|
138
|
-
def _values(self):
|
|
139
|
-
return tuple(getattr(self, _field) for _field in self._fields)
|
|
140
|
-
|
|
141
|
-
def __getitem__(self, index):
|
|
142
|
-
return self._values()[index]
|
|
143
|
-
|
|
144
|
-
def __iter__(self):
|
|
145
|
-
return iter(self._values())
|
|
146
|
-
|
|
147
|
-
def __len__(self):
|
|
148
|
-
return len(self._fields)
|
|
149
|
-
|
|
150
|
-
def _asdict(self):
|
|
151
|
-
return dict(zip(self._fields, self._values()))
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
# Per-function fallback result classes with the exact macOS field
|
|
155
|
-
# orders/arities. Module-level on purpose: readings cross the
|
|
156
|
-
# mozsystemmonitor collector pipe via pickle (by reference), and the parent
|
|
157
|
-
# rebuilds each sample with type(reading)(*values) — so a swap fallback must
|
|
158
|
-
# be 6-field sswap-shaped in every position. An svmem-shaped fallback there
|
|
159
|
-
# makes the parent reject every sample, fill the pipe, block the collector
|
|
160
|
-
# child in send(), and wedge mach's atexit join forever.
|
|
161
|
-
_FallbackVmem = collections.namedtuple(
|
|
162
|
-
"_FallbackVmem",
|
|
163
|
-
("total", "available", "percent", "used", "free", "active", "inactive", "wired"),
|
|
164
|
-
)
|
|
165
|
-
_FallbackSwap = collections.namedtuple(
|
|
166
|
-
"_FallbackSwap", ("total", "used", "free", "percent", "sin", "sout")
|
|
167
|
-
)
|
|
168
|
-
_FallbackCpuTimes = collections.namedtuple("_FallbackCpuTimes", ("user", "nice", "system", "idle"))
|
|
169
|
-
_FallbackDiskIO = collections.namedtuple(
|
|
170
|
-
"_FallbackDiskIO",
|
|
171
|
-
("read_count", "write_count", "read_bytes", "write_bytes", "read_time", "write_time"),
|
|
172
|
-
)
|
|
173
|
-
|
|
174
|
-
_FALLBACK_CLASSES = {
|
|
175
|
-
"virtual_memory": _FallbackVmem,
|
|
176
|
-
"swap_memory": _FallbackSwap,
|
|
177
|
-
"cpu_times": _FallbackCpuTimes,
|
|
178
|
-
"disk_io_counters": _FallbackDiskIO,
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
# psutil result namedtuple per wrapped function, resolvable via getattr from
|
|
182
|
-
# the platform module / _common without invoking the failing syscall.
|
|
183
|
-
_PSUTIL_RESULT_CLASSES = {
|
|
184
|
-
"virtual_memory": "svmem",
|
|
185
|
-
"swap_memory": "sswap",
|
|
186
|
-
"cpu_times": "scputimes",
|
|
187
|
-
"disk_io_counters": "sdiskio",
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
def _zeroed(cls):
|
|
192
|
-
return cls(*([0] * len(cls._fields)))
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
def _percpu_requested(args, kwargs, positional_index):
|
|
196
|
-
if "percpu" in kwargs:
|
|
197
|
-
return bool(kwargs["percpu"])
|
|
198
|
-
return len(args) > positional_index and bool(args[positional_index])
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
def _degraded_result_factory(psutil, name):
|
|
202
|
-
# cpu_percent returns a plain float (or a per-CPU list) callers do
|
|
203
|
-
# arithmetic on.
|
|
204
|
-
if name == "cpu_percent":
|
|
205
|
-
def _cpu_percent_fallback(*args, **kwargs):
|
|
206
|
-
# cpu_percent(interval=None, percpu=False)
|
|
207
|
-
if _percpu_requested(args, kwargs, 1):
|
|
208
|
-
return []
|
|
209
|
-
return 0.0
|
|
210
|
-
|
|
211
|
-
return _cpu_percent_fallback
|
|
212
|
-
# The guard-owned class is always shape-correct for this function;
|
|
213
|
-
# psutil's own result namedtuple is still preferred when resolvable so
|
|
214
|
-
# type() captures stay identical to real readings on a flapping host.
|
|
215
|
-
_cls = _FALLBACK_CLASSES.get(name, _DegradedReading)
|
|
216
|
-
_cls_name = _PSUTIL_RESULT_CLASSES.get(name)
|
|
217
|
-
if _cls_name is not None:
|
|
218
|
-
for _mod in (getattr(psutil, "_psplatform", None), getattr(psutil, "_common", None)):
|
|
219
|
-
_real = getattr(_mod, _cls_name, None) if _mod is not None else None
|
|
220
|
-
if _real is not None and getattr(_real, "_fields", None):
|
|
221
|
-
_cls = _real
|
|
222
|
-
break
|
|
223
|
-
if name == "cpu_times":
|
|
224
|
-
def _cpu_times_fallback(*args, **kwargs):
|
|
225
|
-
# cpu_times(percpu=False); the collector child samples per-CPU.
|
|
226
|
-
if _percpu_requested(args, kwargs, 0):
|
|
227
|
-
return []
|
|
228
|
-
return _zeroed(_cls)
|
|
229
|
-
|
|
230
|
-
return _cpu_times_fallback
|
|
231
|
-
|
|
232
|
-
def _reading_fallback(*_args, **_kwargs):
|
|
233
|
-
return _zeroed(_cls)
|
|
234
|
-
|
|
235
|
-
return _reading_fallback
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
def _guard_psutil():
|
|
239
|
-
try:
|
|
240
|
-
import psutil
|
|
241
|
-
except Exception:
|
|
242
|
-
return
|
|
243
|
-
|
|
244
|
-
def _wrap(orig, fallback):
|
|
245
|
-
def wrapper(*args, **kwargs):
|
|
246
|
-
try:
|
|
247
|
-
return orig(*args, **kwargs)
|
|
248
|
-
except Exception as exc: # noqa: BLE001
|
|
249
|
-
_fireforge_degraded_notice(exc)
|
|
250
|
-
try:
|
|
251
|
-
return fallback(*args, **kwargs)
|
|
252
|
-
except Exception: # noqa: BLE001
|
|
253
|
-
return _DegradedReading()
|
|
254
|
-
|
|
255
|
-
return wrapper
|
|
256
|
-
|
|
257
|
-
for _name in ("virtual_memory", "swap_memory", "cpu_percent", "cpu_times", "disk_io_counters"):
|
|
258
|
-
_orig = getattr(psutil, _name, None)
|
|
259
|
-
if _orig is not None and not getattr(_orig, "_fireforge_guarded", False):
|
|
260
|
-
try:
|
|
261
|
-
_fallback = _degraded_result_factory(psutil, _name)
|
|
262
|
-
except Exception: # noqa: BLE001
|
|
263
|
-
_fallback = _DegradedReading
|
|
264
|
-
_wrapped = _wrap(_orig, _fallback)
|
|
265
|
-
_wrapped._fireforge_guarded = True
|
|
266
|
-
setattr(psutil, _name, _wrapped)
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
_MONITOR_METHOD_NAMES = (
|
|
270
|
-
"start",
|
|
271
|
-
"stop",
|
|
272
|
-
"record_event",
|
|
273
|
-
"record_marker",
|
|
274
|
-
"begin_phase",
|
|
275
|
-
"finish_phase",
|
|
276
|
-
"aggregate_cpu_percent",
|
|
277
|
-
"aggregate_cpu_times",
|
|
278
|
-
"aggregate_io",
|
|
279
|
-
"min_memory_available",
|
|
280
|
-
"as_dict",
|
|
281
|
-
)
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
def _fireforge_stop_collector(monitor):
|
|
285
|
-
# Best-effort: terminate a live collector child and drain the parent end
|
|
286
|
-
# of the pipe, so a child blocked in send() on a full pipe can never
|
|
287
|
-
# keep mach's atexit join (os.waitpid) waiting forever. Attribute names
|
|
288
|
-
# follow upstream resourcemonitor.py (self._process / self._pipe); a
|
|
289
|
-
# miss on a refactored upstream is harmless — the shape-correct
|
|
290
|
-
# fallbacks above still keep the sample stream well-formed.
|
|
291
|
-
try:
|
|
292
|
-
proc = getattr(monitor, "_process", None)
|
|
293
|
-
if proc is not None and getattr(proc, "is_alive", lambda: False)():
|
|
294
|
-
proc.terminate()
|
|
295
|
-
proc.join(1)
|
|
296
|
-
except Exception: # noqa: BLE001
|
|
297
|
-
pass
|
|
298
|
-
try:
|
|
299
|
-
pipe = getattr(monitor, "_pipe", None)
|
|
300
|
-
if pipe is not None:
|
|
301
|
-
while pipe.poll(0):
|
|
302
|
-
pipe.recv()
|
|
303
|
-
except Exception: # noqa: BLE001
|
|
304
|
-
pass
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
def _monitor_per_cpu_requested(args, kwargs):
|
|
308
|
-
# aggregate_cpu_percent/aggregate_cpu_times(start=None, end=None,
|
|
309
|
-
# phase=None, per_cpu=True) — self already stripped from args.
|
|
310
|
-
if "per_cpu" in kwargs:
|
|
311
|
-
return bool(kwargs["per_cpu"])
|
|
312
|
-
if len(args) > 3:
|
|
313
|
-
return bool(args[3])
|
|
314
|
-
return True
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
def _monitor_degraded_result(name, args, kwargs):
|
|
318
|
-
# Degraded aggregate methods return zeroed shapes, not None, where
|
|
319
|
-
# callers subscript the result: mozbuild's log_resource_usage does
|
|
320
|
-
# usage["io"].read_bytes after a successful compile, so None there fails
|
|
321
|
-
# the build with complete artifacts already on disk.
|
|
322
|
-
if name == "aggregate_io":
|
|
323
|
-
return _zeroed(_FallbackDiskIO)
|
|
324
|
-
if name == "aggregate_cpu_percent":
|
|
325
|
-
return [] if _monitor_per_cpu_requested(args, kwargs) else 0.0
|
|
326
|
-
if name == "aggregate_cpu_times":
|
|
327
|
-
return [] if _monitor_per_cpu_requested(args, kwargs) else _zeroed(_FallbackCpuTimes)
|
|
328
|
-
return None
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
def _patch_monitor_class(cls):
|
|
332
|
-
if cls is None or getattr(cls, "_fireforge_guarded", False):
|
|
333
|
-
return
|
|
334
|
-
orig_init = cls.__init__
|
|
335
|
-
|
|
336
|
-
def guarded_init(self, *args, **kwargs):
|
|
337
|
-
# Pre-populate the attributes a partially-constructed instance is
|
|
338
|
-
# later polled for, so a failing __init__ can never surface
|
|
339
|
-
# AttributeError: poll_interval.
|
|
340
|
-
self.poll_interval = kwargs.get("poll_interval") or 1.0
|
|
341
|
-
self._fireforge_degraded = False
|
|
342
|
-
try:
|
|
343
|
-
orig_init(self, *args, **kwargs)
|
|
344
|
-
except Exception as exc: # noqa: BLE001
|
|
345
|
-
self._fireforge_degraded = True
|
|
346
|
-
_fireforge_degraded_notice(exc)
|
|
347
|
-
if _fireforge_host_degraded[0] and not self._fireforge_degraded:
|
|
348
|
-
# Host already degraded once: keep the monitor inert so the
|
|
349
|
-
# collector child never spawns on a flapping host.
|
|
350
|
-
self._fireforge_degraded = True
|
|
351
|
-
if self._fireforge_degraded:
|
|
352
|
-
_fireforge_stop_collector(self)
|
|
353
|
-
|
|
354
|
-
cls.__init__ = guarded_init
|
|
355
|
-
|
|
356
|
-
def _wrap_method(name, orig):
|
|
357
|
-
def wrapper(self, *args, **kwargs):
|
|
358
|
-
if (
|
|
359
|
-
name == "start"
|
|
360
|
-
and _fireforge_host_degraded[0]
|
|
361
|
-
and not getattr(self, "_fireforge_degraded", False)
|
|
362
|
-
):
|
|
363
|
-
self._fireforge_degraded = True
|
|
364
|
-
_fireforge_stop_collector(self)
|
|
365
|
-
if getattr(self, "_fireforge_degraded", False):
|
|
366
|
-
if name == "stop":
|
|
367
|
-
_fireforge_stop_collector(self)
|
|
368
|
-
return _monitor_degraded_result(name, args, kwargs)
|
|
369
|
-
try:
|
|
370
|
-
return orig(self, *args, **kwargs)
|
|
371
|
-
except Exception as exc: # noqa: BLE001
|
|
372
|
-
self._fireforge_degraded = True
|
|
373
|
-
_fireforge_degraded_notice(exc)
|
|
374
|
-
# A raising stop (or any degraded transition) must still
|
|
375
|
-
# take the collector child down, or the parent's atexit
|
|
376
|
-
# join hangs on a child blocked writing to a full pipe.
|
|
377
|
-
_fireforge_stop_collector(self)
|
|
378
|
-
return _monitor_degraded_result(name, args, kwargs)
|
|
379
|
-
|
|
380
|
-
return wrapper
|
|
381
|
-
|
|
382
|
-
def _wrap_unbound(name, func):
|
|
383
|
-
# Upstream declares record_event/record_marker as @staticmethods (and
|
|
384
|
-
# may declare others as @classmethods). Those take no receiver, so
|
|
385
|
-
# they cannot use the per-instance degraded flag and must not have one
|
|
386
|
-
# threaded in — see the descriptor dispatch below.
|
|
387
|
-
def wrapper(*args, **kwargs):
|
|
388
|
-
if _fireforge_host_degraded[0]:
|
|
389
|
-
return _monitor_degraded_result(name, args, kwargs)
|
|
390
|
-
try:
|
|
391
|
-
return func(*args, **kwargs)
|
|
392
|
-
except Exception as exc: # noqa: BLE001
|
|
393
|
-
_fireforge_degraded_notice(exc)
|
|
394
|
-
return _monitor_degraded_result(name, args, kwargs)
|
|
395
|
-
|
|
396
|
-
return wrapper
|
|
397
|
-
|
|
398
|
-
for _name in _MONITOR_METHOD_NAMES:
|
|
399
|
-
# getattr_static returns the raw class attribute, so a staticmethod
|
|
400
|
-
# is still a staticmethod object here. Plain getattr would hand back
|
|
401
|
-
# the underlying function, and re-setting THAT on the class rebinds
|
|
402
|
-
# it as an instance method: the receiver is then passed through as an
|
|
403
|
-
# extra leading positional and every call raises
|
|
404
|
-
# "takes N positional arguments but N+1 were given". Re-apply the
|
|
405
|
-
# descriptor the attribute actually had.
|
|
406
|
-
try:
|
|
407
|
-
_raw = inspect.getattr_static(cls, _name)
|
|
408
|
-
except AttributeError:
|
|
409
|
-
continue
|
|
410
|
-
if isinstance(_raw, staticmethod):
|
|
411
|
-
setattr(cls, _name, staticmethod(_wrap_unbound(_name, _raw.__func__)))
|
|
412
|
-
continue
|
|
413
|
-
if isinstance(_raw, classmethod):
|
|
414
|
-
setattr(cls, _name, classmethod(_wrap_unbound(_name, _raw.__func__)))
|
|
415
|
-
continue
|
|
416
|
-
_orig = getattr(cls, _name, None)
|
|
417
|
-
if _orig is not None:
|
|
418
|
-
setattr(cls, _name, _wrap_method(_name, _orig))
|
|
419
|
-
cls._fireforge_guarded = True
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
def _patch_build_monitor_class(cls):
|
|
423
|
-
# mozbuild's BuildMonitor is not a SystemResourceMonitor; only
|
|
424
|
-
# log_resource_usage needs guarding — end-of-build resource reporting
|
|
425
|
-
# must never fail a build whose artifacts are complete. No __init__
|
|
426
|
-
# replacement, no degraded-instance gating.
|
|
427
|
-
if cls is None or getattr(cls, "_fireforge_guarded", False):
|
|
428
|
-
return
|
|
429
|
-
_orig = getattr(cls, "log_resource_usage", None)
|
|
430
|
-
if _orig is not None:
|
|
431
|
-
def _guarded_log_resource_usage(self, *args, **kwargs):
|
|
432
|
-
try:
|
|
433
|
-
return _orig(self, *args, **kwargs)
|
|
434
|
-
except Exception as exc: # noqa: BLE001
|
|
435
|
-
_fireforge_degraded_notice(exc)
|
|
436
|
-
return None
|
|
437
|
-
|
|
438
|
-
cls.log_resource_usage = _guarded_log_resource_usage
|
|
439
|
-
cls._fireforge_guarded = True
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
_MONITOR_CLASS_PATCHES = (
|
|
443
|
-
("mozsystemmonitor.resourcemonitor", "SystemResourceMonitor", _patch_monitor_class),
|
|
444
|
-
("mozbuild.resources", "SystemResourceMonitor", _patch_monitor_class),
|
|
445
|
-
("mozbuild.controller.building", "BuildMonitor", _patch_build_monitor_class),
|
|
446
|
-
)
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
def _patch_loaded_monitor_modules():
|
|
450
|
-
for _mod_name, _cls_name, _patcher in _MONITOR_CLASS_PATCHES:
|
|
451
|
-
_mod = sys.modules.get(_mod_name)
|
|
452
|
-
if _mod is not None:
|
|
453
|
-
try:
|
|
454
|
-
_patcher(getattr(_mod, _cls_name, None))
|
|
455
|
-
except Exception: # noqa: BLE001
|
|
456
|
-
pass
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
def _install_import_hook():
|
|
460
|
-
_orig_import = builtins.__import__
|
|
461
|
-
if getattr(_orig_import, "_fireforge_guarded", False):
|
|
462
|
-
return
|
|
463
|
-
|
|
464
|
-
def _guarding_import(name, *args, **kwargs):
|
|
465
|
-
_module = _orig_import(name, *args, **kwargs)
|
|
466
|
-
try:
|
|
467
|
-
_patch_loaded_monitor_modules()
|
|
468
|
-
except Exception: # noqa: BLE001
|
|
469
|
-
pass
|
|
470
|
-
return _module
|
|
471
|
-
|
|
472
|
-
_guarding_import._fireforge_guarded = True
|
|
473
|
-
builtins.__import__ = _guarding_import
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
try:
|
|
477
|
-
_guard_psutil()
|
|
478
|
-
_patch_loaded_monitor_modules()
|
|
479
|
-
_install_import_hook()
|
|
480
|
-
except Exception: # noqa: BLE001
|
|
481
|
-
pass
|
|
482
|
-
`;
|
|
483
|
-
/** Lists subdirectory names of `dir`, tolerating a missing directory. */
|
|
484
|
-
async function listSubdirs(dir) {
|
|
485
|
-
try {
|
|
486
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
487
|
-
return entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
488
|
-
}
|
|
489
|
-
catch {
|
|
490
|
-
// An unreadable directory contributes no subdirectories to the shim scan.
|
|
491
|
-
return [];
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
/**
|
|
495
|
-
* Discovers `site-packages` directories of the mach virtualenvs under one
|
|
496
|
-
* `_virtualenvs` root: `<root>/<venv>/lib/python<N.M>/site-packages`.
|
|
497
|
-
*/
|
|
498
|
-
async function discoverVenvSitePackages(virtualenvsDir) {
|
|
499
|
-
const found = [];
|
|
500
|
-
for (const venvName of await listSubdirs(virtualenvsDir)) {
|
|
501
|
-
const libDir = join(virtualenvsDir, venvName, 'lib');
|
|
502
|
-
for (const pythonName of await listSubdirs(libDir)) {
|
|
503
|
-
if (!pythonName.startsWith('python'))
|
|
504
|
-
continue;
|
|
505
|
-
const sitePackages = join(libDir, pythonName, 'site-packages');
|
|
506
|
-
if (await pathExists(sitePackages)) {
|
|
507
|
-
found.push(sitePackages);
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
return found;
|
|
512
|
-
}
|
|
513
|
-
/**
|
|
514
|
-
* Discovers every mach virtualenv site-packages dir relevant to an engine
|
|
515
|
-
* checkout: the objdir venvs (under `<engineDir>/obj-<x>/_virtualenvs`)
|
|
516
|
-
* and the mach state-dir venvs (under `$MOZBUILD_STATE_PATH` or
|
|
517
|
-
* `~/.mozbuild`, in `srcdirs/<hash>/_virtualenvs`, where mach keeps the
|
|
518
|
-
* `mach` command venv itself).
|
|
519
|
-
*/
|
|
520
|
-
async function discoverMachSitePackages(engineDir) {
|
|
521
|
-
const found = [];
|
|
522
|
-
for (const name of await listSubdirs(engineDir)) {
|
|
523
|
-
if (!name.startsWith('obj-'))
|
|
524
|
-
continue;
|
|
525
|
-
found.push(...(await discoverVenvSitePackages(join(engineDir, name, '_virtualenvs'))));
|
|
526
|
-
}
|
|
527
|
-
const stateDir = process.env['MOZBUILD_STATE_PATH'] ?? join(homedir(), '.mozbuild');
|
|
528
|
-
for (const srcdirName of await listSubdirs(join(stateDir, 'srcdirs'))) {
|
|
529
|
-
found.push(...(await discoverVenvSitePackages(join(stateDir, 'srcdirs', srcdirName, '_virtualenvs'))));
|
|
530
|
-
}
|
|
531
|
-
return found;
|
|
532
|
-
}
|
|
533
|
-
/**
|
|
534
|
-
* Per-user discriminator for the shim directory name. The numeric uid on
|
|
535
|
-
* POSIX, read via `process.getuid` rather than `os.userInfo()`: the latter
|
|
536
|
-
* resolves the passwd entry and throws (`ERR_SYSTEM_ERROR`) for a uid that
|
|
537
|
-
* has none (`docker --user 1001:1001`, OpenShift's random uids, many CI
|
|
538
|
-
* agents), which would take every build and test dispatch down with a raw
|
|
539
|
-
* system error. On Windows there is no uid. The username is the
|
|
540
|
-
* discriminator, with `userInfo()` still guarded because the same lookup
|
|
541
|
-
* can fail there for a service account, falling back to the environment.
|
|
542
|
-
*/
|
|
543
|
-
function shimDirOwner() {
|
|
544
|
-
const uid = process.getuid?.();
|
|
545
|
-
if (uid !== undefined)
|
|
546
|
-
return String(uid);
|
|
547
|
-
let username;
|
|
548
|
-
try {
|
|
549
|
-
username = userInfo().username;
|
|
550
|
-
}
|
|
551
|
-
catch {
|
|
552
|
-
username = process.env['USERNAME'] ?? process.env['USER'];
|
|
553
|
-
}
|
|
554
|
-
return (username ?? 'unknown-user').replace(/[^A-Za-z0-9_.-]/g, '_');
|
|
555
|
-
}
|
|
556
|
-
/** Per-user shim directory: `<tmpdir>/fireforge-mach-resource-shim-<uid>`. */
|
|
557
|
-
function resourceShimDir() {
|
|
558
|
-
return join(tmpdir(), `${RESOURCE_SHIM_DIRNAME}-${shimDirOwner()}`);
|
|
559
|
-
}
|
|
560
|
-
/**
|
|
561
|
-
* Refuses a shim directory that is not a private directory of the current
|
|
562
|
-
* user. `lstat`, not `stat`: a symlink planted at the path would otherwise
|
|
563
|
-
* be followed and the check would describe its target. On Windows only the
|
|
564
|
-
* "is a real directory" half applies. There is no POSIX owner or mode bit
|
|
565
|
-
* to read, and the per-user name is the isolation.
|
|
566
|
-
*
|
|
567
|
-
* @param dir - Shim directory that {@link ensureSitecustomizeFallback} created
|
|
568
|
-
* @throws BuildError when the directory is a symlink/file, owned by another
|
|
569
|
-
* uid, or group/world-writable
|
|
570
|
-
*/
|
|
571
|
-
export async function assertPrivateShimDir(dir) {
|
|
572
|
-
const stats = await lstat(dir);
|
|
573
|
-
const refuse = (reason) => {
|
|
574
|
-
throw new BuildError(`Refusing to use mach resource shim directory ${dir}: ${reason}. ` +
|
|
575
|
-
'Another local account may have planted it; remove or fix it and retry.');
|
|
576
|
-
};
|
|
577
|
-
if (!stats.isDirectory()) {
|
|
578
|
-
refuse('not a directory (symlink or file)');
|
|
579
|
-
}
|
|
580
|
-
if (process.platform === 'win32')
|
|
581
|
-
return;
|
|
582
|
-
const uid = process.getuid?.();
|
|
583
|
-
if (uid !== undefined && stats.uid !== uid) {
|
|
584
|
-
refuse(`owned by uid ${stats.uid}, not the current user (uid ${uid})`);
|
|
585
|
-
}
|
|
586
|
-
if ((stats.mode & 0o022) !== 0) {
|
|
587
|
-
refuse(`mode ${(stats.mode & 0o777).toString(8)} is group/world-writable`);
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
/**
|
|
591
|
-
* Writes the PYTHONPATH `sitecustomize.py` fallback into a per-user,
|
|
592
|
-
* mode-0700 FireForge-owned temp directory, verified private before the
|
|
593
|
-
* write, and returns that directory. Idempotent: overwriting each call
|
|
594
|
-
* keeps it in sync with this source across upgrades.
|
|
595
|
-
*/
|
|
596
|
-
async function ensureSitecustomizeFallback() {
|
|
597
|
-
const dir = resourceShimDir();
|
|
598
|
-
// `mode` only applies when mkdir creates the directory (and is masked by
|
|
599
|
-
// the umask). A pre-existing one keeps whatever it had, which is exactly
|
|
600
|
-
// what the assertion below refuses if it is not private.
|
|
601
|
-
await mkdir(dir, { recursive: true, mode: 0o700 });
|
|
602
|
-
await assertPrivateShimDir(dir);
|
|
603
|
-
await writeText(join(dir, 'sitecustomize.py'), GUARD_PYTHON_SOURCE);
|
|
604
|
-
return dir;
|
|
605
|
-
}
|
|
606
|
-
/**
|
|
607
|
-
* Builds the `env` overlay (merged over `process.env` by the exec layer)
|
|
608
|
-
* that prepends the fallback shim directory to `PYTHONPATH` without
|
|
609
|
-
* clobbering an existing `PYTHONPATH`.
|
|
610
|
-
*/
|
|
611
|
-
function machResourceShimEnv(shimDir, baseEnv = process.env) {
|
|
612
|
-
const existing = baseEnv['PYTHONPATH'];
|
|
613
|
-
return { PYTHONPATH: existing ? `${shimDir}${delimiter}${existing}` : shimDir };
|
|
614
|
-
}
|
|
615
|
-
/**
|
|
616
|
-
* Installs the resource-monitor degrade guard for a mach dispatch:
|
|
617
|
-
* `fireforge_mach_guard.pth` + `fireforge_mach_guard.py` into every
|
|
618
|
-
* discovered mach virtualenv site-packages (survives mach's venv re-exec),
|
|
619
|
-
* plus the PYTHONPATH sitecustomize fallback for the pre-venv bootstrap
|
|
620
|
-
* phase. Idempotent and re-run before every protected dispatch (including
|
|
621
|
-
* each retry) so a venv created by a crashed first attempt is guarded on
|
|
622
|
-
* the next one instead of re-dying on the same wedged state.
|
|
623
|
-
*/
|
|
624
|
-
export async function installMachResourceGuard(engineDir) {
|
|
625
|
-
const sitePackagesDirs = await discoverMachSitePackages(engineDir);
|
|
626
|
-
for (const sitePackages of sitePackagesDirs) {
|
|
627
|
-
try {
|
|
628
|
-
await writeText(join(sitePackages, `${GUARD_MODULE_NAME}.py`), GUARD_PYTHON_SOURCE);
|
|
629
|
-
await writeText(join(sitePackages, `${GUARD_MODULE_NAME}.pth`), `import ${GUARD_MODULE_NAME}\n`);
|
|
630
|
-
}
|
|
631
|
-
catch (error) {
|
|
632
|
-
// A read-only or vanished venv must not block the dispatch. The
|
|
633
|
-
// PYTHONPATH fallback still applies and other venvs may have taken
|
|
634
|
-
// the guard.
|
|
635
|
-
verbose(`Could not install mach resource guard into ${sitePackages}: ${toError(error).message}`);
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
const env = machResourceShimEnv(await ensureSitecustomizeFallback());
|
|
639
|
-
return { env, sitePackagesDirs };
|
|
640
|
-
}
|