@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,143 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* xpcshell test-file registration. Without it, xpcshell test files (e.g.
|
|
4
|
-
* `<module-dir>/test/unit/test_*.js`) are rejected by `fireforge register`
|
|
5
|
-
* as "Unknown file pattern". This writer inserts the `["test_*.js"]` section
|
|
6
|
-
* into the directory's `xpcshell.toml` (alphabetically or after the
|
|
7
|
-
* `--after` entry, idempotently). With
|
|
8
|
-
* `--create-manifest` it also creates the manifest and wires
|
|
9
|
-
* `XPCSHELL_TESTS_MANIFESTS` into the nearest moz.build.
|
|
10
|
-
*/
|
|
11
|
-
import { join } from 'node:path';
|
|
12
|
-
import { GeneralError } from '../errors/base.js';
|
|
13
|
-
import { pathExists, readText, writeText } from '../utils/fs.js';
|
|
14
|
-
import { mozbuildSortCompare } from './moz-manifest-helpers.js';
|
|
15
|
-
import { ensureXpcshellManifestWiring } from './register-scaffold.js';
|
|
16
|
-
function manifestMissingError(manifestRel) {
|
|
17
|
-
return new GeneralError(`Manifest not found: ${manifestRel}. ` +
|
|
18
|
-
'Pass --create-manifest to scaffold the xpcshell.toml and wire XPCSHELL_TESTS_MANIFESTS ' +
|
|
19
|
-
'into the nearest moz.build.');
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Checks whether the test file is listed in its directory's
|
|
23
|
-
* `xpcshell.toml`. Throws a "Manifest not found" error when the manifest
|
|
24
|
-
* does not exist (status catches that prefix and reports the manifest as
|
|
25
|
-
* missing rather than the file as unregistered).
|
|
26
|
-
*/
|
|
27
|
-
export async function isXpcshellTestRegistered(engineDir, dirRel, fileName) {
|
|
28
|
-
const manifestRel = `${dirRel}/xpcshell.toml`;
|
|
29
|
-
const manifestPath = join(engineDir, manifestRel);
|
|
30
|
-
if (!(await pathExists(manifestPath))) {
|
|
31
|
-
throw manifestMissingError(manifestRel);
|
|
32
|
-
}
|
|
33
|
-
const content = await readText(manifestPath);
|
|
34
|
-
return content.includes(`["${fileName}"]`);
|
|
35
|
-
}
|
|
36
|
-
const SECTION_HEADER = /^\["([^"]+)"\]\s*$/;
|
|
37
|
-
/**
|
|
38
|
-
* The line where the block headed at `headerIndex` starts: the header
|
|
39
|
-
* itself, or the first of the `#` comment lines directly above it. A
|
|
40
|
-
* comment describes the entry below it, so nothing is inserted between
|
|
41
|
-
* them.
|
|
42
|
-
*/
|
|
43
|
-
function blockStart(lines, headerIndex) {
|
|
44
|
-
let start = headerIndex;
|
|
45
|
-
while (start > 0 && (lines[start - 1] ?? '').trimStart().startsWith('#'))
|
|
46
|
-
start -= 1;
|
|
47
|
-
return start;
|
|
48
|
-
}
|
|
49
|
-
/** Index of the section header `after` names: exact name first, then a substring. */
|
|
50
|
-
function findAfterHeader(lines, after) {
|
|
51
|
-
const headers = lines
|
|
52
|
-
.map((line, index) => ({ index, line, name: SECTION_HEADER.exec(line)?.[1] }))
|
|
53
|
-
.filter((header) => header.name !== undefined);
|
|
54
|
-
const exact = headers.find((header) => header.name === after || header.line.trim() === after);
|
|
55
|
-
return (exact ?? headers.find((header) => header.line.includes(after)))?.index ?? -1;
|
|
56
|
-
}
|
|
57
|
-
function spliceSection(lines, index, fileName) {
|
|
58
|
-
if (index === -1) {
|
|
59
|
-
// Append after the last section (or at end of file when there are no
|
|
60
|
-
// sections yet), keeping exactly one trailing newline.
|
|
61
|
-
while (lines.length > 0 && (lines.at(-1) ?? '').trim() === '')
|
|
62
|
-
lines.pop();
|
|
63
|
-
return [...lines, '', `["${fileName}"]`, ''].join('\n');
|
|
64
|
-
}
|
|
65
|
-
lines.splice(index, 0, `["${fileName}"]`, '');
|
|
66
|
-
return lines.join('\n');
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Places the `["<fileName>"]` section in the manifest content.
|
|
70
|
-
*
|
|
71
|
-
* Without `after`, the section goes in mozbuild's case-insensitive sort
|
|
72
|
-
* order relative to the other test sections. With `after`, it goes right
|
|
73
|
-
* after the named entry's whole block (its keys included). Either way it
|
|
74
|
-
* is inserted ahead of the `#` comment lines that introduce the next
|
|
75
|
-
* entry, never between a comment and its entry, keeping one
|
|
76
|
-
* blank line between sections.
|
|
77
|
-
*/
|
|
78
|
-
export function placeXpcshellManifestSection(content, fileName, after) {
|
|
79
|
-
const lines = content.split('\n');
|
|
80
|
-
const headerIndexes = lines.flatMap((line, index) => (SECTION_HEADER.test(line) ? [index] : []));
|
|
81
|
-
if (after !== undefined) {
|
|
82
|
-
const afterIndex = findAfterHeader(lines, after);
|
|
83
|
-
if (afterIndex !== -1) {
|
|
84
|
-
const next = headerIndexes.find((index) => index > afterIndex);
|
|
85
|
-
return {
|
|
86
|
-
content: spliceSection(lines, next === undefined ? -1 : blockStart(lines, next), fileName),
|
|
87
|
-
previousEntry: (lines[afterIndex] ?? '').trim(),
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
const before = headerIndexes.find((index) => mozbuildSortCompare(fileName, SECTION_HEADER.exec(lines[index] ?? '')?.[1] ?? '') < 0);
|
|
92
|
-
return {
|
|
93
|
-
content: spliceSection(lines, before === undefined ? -1 : blockStart(lines, before), fileName),
|
|
94
|
-
...(after !== undefined ? { afterFallback: true } : {}),
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Inserts the `["<fileName>"]` section into the manifest content; see
|
|
99
|
-
* {@link placeXpcshellManifestSection}. Exported for direct unit testing.
|
|
100
|
-
*
|
|
101
|
-
* @internal
|
|
102
|
-
*/
|
|
103
|
-
export function insertXpcshellManifestSection(content, fileName, after) {
|
|
104
|
-
return placeXpcshellManifestSection(content, fileName, after).content;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Registers an xpcshell test file in its directory's `xpcshell.toml`.
|
|
108
|
-
* With `createManifest`, a missing manifest is scaffolded and wired into
|
|
109
|
-
* the nearest moz.build via `XPCSHELL_TESTS_MANIFESTS`.
|
|
110
|
-
*/
|
|
111
|
-
export async function registerXpcshellTest(engineDir, dirRel, fileName, dryRun = false, createManifest = false, after) {
|
|
112
|
-
const manifestRel = `${dirRel}/xpcshell.toml`;
|
|
113
|
-
const manifestPath = join(engineDir, manifestRel);
|
|
114
|
-
const entry = `["${fileName}"]`;
|
|
115
|
-
if (!(await pathExists(manifestPath))) {
|
|
116
|
-
if (!createManifest) {
|
|
117
|
-
throw manifestMissingError(manifestRel);
|
|
118
|
-
}
|
|
119
|
-
const scaffoldActions = [
|
|
120
|
-
{ manifest: manifestRel, change: `created with ${entry}` },
|
|
121
|
-
];
|
|
122
|
-
if (!dryRun) {
|
|
123
|
-
await writeText(manifestPath, `[DEFAULT]\n\n${entry}\n`);
|
|
124
|
-
}
|
|
125
|
-
scaffoldActions.push(...(await ensureXpcshellManifestWiring(engineDir, manifestRel, dryRun)));
|
|
126
|
-
return { manifest: manifestRel, entry, skipped: false, scaffoldActions };
|
|
127
|
-
}
|
|
128
|
-
const content = await readText(manifestPath);
|
|
129
|
-
if (content.includes(entry)) {
|
|
130
|
-
return { manifest: manifestRel, entry, skipped: true };
|
|
131
|
-
}
|
|
132
|
-
const placement = placeXpcshellManifestSection(content, fileName, after);
|
|
133
|
-
if (!dryRun) {
|
|
134
|
-
await writeText(manifestPath, placement.content);
|
|
135
|
-
}
|
|
136
|
-
return {
|
|
137
|
-
manifest: manifestRel,
|
|
138
|
-
entry,
|
|
139
|
-
skipped: false,
|
|
140
|
-
previousEntry: placement.previousEntry,
|
|
141
|
-
afterFallback: placement.afterFallback,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conservative secret redaction for the run-log FILE tee.
|
|
3
|
-
*
|
|
4
|
-
* A run log is a complete copy of mach's output, and mach echoes its
|
|
5
|
-
* environment in places (configure summaries, `mach env`, harness
|
|
6
|
-
* diagnostics that print the command line). The terminal already showed
|
|
7
|
-
* every byte to the operator who ran it. The file, by contrast, is retained
|
|
8
|
-
* twenty deep and gets attached to bug reports. So the file gets a narrow
|
|
9
|
-
* masking pass and the terminal does not.
|
|
10
|
-
*
|
|
11
|
-
* Minimal and pattern-based. See {@link redactRunLogText} for the exact
|
|
12
|
-
* contract. It is a seatbelt against the common accidental leak, not a
|
|
13
|
-
* guarantee that a log is free of secrets.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Masks the obvious secret shapes in run-log text, line by line.
|
|
17
|
-
*
|
|
18
|
-
* Redacted:
|
|
19
|
-
* - the value of an env-style assignment `KEY=value` whose KEY matches
|
|
20
|
-
* `/(TOKEN|SECRET|PASSWORD|PASSWD|API_KEY|AUTH)/i`. The value up to the
|
|
21
|
-
* next whitespace, or a whole quoted string, becomes `KEY=<redacted>`.
|
|
22
|
-
* The `--flag=value` and `-DNAME=value` spellings of the same shape are
|
|
23
|
-
* covered (`--password=x` → `--password=<redacted>`).
|
|
24
|
-
* - the credential of an `Authorization:` header (`Bearer`, `Basic` and
|
|
25
|
-
* `Token` schemes keep the scheme word, and anything else masks the
|
|
26
|
-
* whole value).
|
|
27
|
-
*
|
|
28
|
-
* Not redacted: secrets that appear without one of those key names or
|
|
29
|
-
* headers (a bare token in a URL query string, a space-separated
|
|
30
|
-
* `--password foo` CLI argument, JSON `"token": "..."` fields, cookies).
|
|
31
|
-
* Line structure and every other byte pass through unchanged. `\n`, `\r\n`
|
|
32
|
-
* and lone `\r` all delimit lines, so carriage-return-repainted progress
|
|
33
|
-
* output is masked per repaint.
|
|
34
|
-
*
|
|
35
|
-
* @param text - One or more complete lines
|
|
36
|
-
* @returns The same text with masked values
|
|
37
|
-
*/
|
|
38
|
-
export declare function redactRunLogText(text: string): string;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Conservative secret redaction for the run-log FILE tee.
|
|
4
|
-
*
|
|
5
|
-
* A run log is a complete copy of mach's output, and mach echoes its
|
|
6
|
-
* environment in places (configure summaries, `mach env`, harness
|
|
7
|
-
* diagnostics that print the command line). The terminal already showed
|
|
8
|
-
* every byte to the operator who ran it. The file, by contrast, is retained
|
|
9
|
-
* twenty deep and gets attached to bug reports. So the file gets a narrow
|
|
10
|
-
* masking pass and the terminal does not.
|
|
11
|
-
*
|
|
12
|
-
* Minimal and pattern-based. See {@link redactRunLogText} for the exact
|
|
13
|
-
* contract. It is a seatbelt against the common accidental leak, not a
|
|
14
|
-
* guarantee that a log is free of secrets.
|
|
15
|
-
*/
|
|
16
|
-
/** Env-style keys whose assigned value is masked. */
|
|
17
|
-
const SECRET_KEY_PATTERN = /(TOKEN|SECRET|PASSWORD|PASSWD|API_KEY|AUTH)/i;
|
|
18
|
-
/**
|
|
19
|
-
* `KEY=value` where KEY is an identifier and the value runs to the next
|
|
20
|
-
* whitespace, or is a single/double-quoted string. The leading group keeps
|
|
21
|
-
* the assignment anchored at a token boundary so `x.y=z` is not split
|
|
22
|
-
* mid-token. A hyphen IS a boundary: mach and configure echo their argv, so
|
|
23
|
-
* `--token=…`, `--password=…` and `-DAUTH_TOKEN=…` are exactly the forms a
|
|
24
|
-
* retained log would otherwise carry verbatim (the lead keeps the dash, and
|
|
25
|
-
* the key is what follows it). Empty values are left alone (nothing to hide).
|
|
26
|
-
*/
|
|
27
|
-
const ENV_ASSIGNMENT_PATTERN = /(^|[\s"'([{,;-])([A-Za-z_][A-Za-z0-9_]*)=("(?:[^"\\]|\\.)*"|'[^']*'|[^\s"',;)\]}]+)/g;
|
|
28
|
-
/** `Authorization: <scheme> <credential>` (scheme optional) in HTTP dumps. */
|
|
29
|
-
const AUTHORIZATION_HEADER_PATTERN = /(authorization\s*:\s*)(?:(bearer|basic|token)\s+)?(\S+)/gi;
|
|
30
|
-
/** Marker written in place of a masked value. */
|
|
31
|
-
const REDACTED = '<redacted>';
|
|
32
|
-
function redactLine(line) {
|
|
33
|
-
return line
|
|
34
|
-
.replace(ENV_ASSIGNMENT_PATTERN, (whole, lead, key) => SECRET_KEY_PATTERN.test(key) ? `${lead}${key}=${REDACTED}` : whole)
|
|
35
|
-
.replace(AUTHORIZATION_HEADER_PATTERN, (_whole, lead, scheme) => scheme === undefined ? `${lead}${REDACTED}` : `${lead}${scheme} ${REDACTED}`);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Masks the obvious secret shapes in run-log text, line by line.
|
|
39
|
-
*
|
|
40
|
-
* Redacted:
|
|
41
|
-
* - the value of an env-style assignment `KEY=value` whose KEY matches
|
|
42
|
-
* `/(TOKEN|SECRET|PASSWORD|PASSWD|API_KEY|AUTH)/i`. The value up to the
|
|
43
|
-
* next whitespace, or a whole quoted string, becomes `KEY=<redacted>`.
|
|
44
|
-
* The `--flag=value` and `-DNAME=value` spellings of the same shape are
|
|
45
|
-
* covered (`--password=x` → `--password=<redacted>`).
|
|
46
|
-
* - the credential of an `Authorization:` header (`Bearer`, `Basic` and
|
|
47
|
-
* `Token` schemes keep the scheme word, and anything else masks the
|
|
48
|
-
* whole value).
|
|
49
|
-
*
|
|
50
|
-
* Not redacted: secrets that appear without one of those key names or
|
|
51
|
-
* headers (a bare token in a URL query string, a space-separated
|
|
52
|
-
* `--password foo` CLI argument, JSON `"token": "..."` fields, cookies).
|
|
53
|
-
* Line structure and every other byte pass through unchanged. `\n`, `\r\n`
|
|
54
|
-
* and lone `\r` all delimit lines, so carriage-return-repainted progress
|
|
55
|
-
* output is masked per repaint.
|
|
56
|
-
*
|
|
57
|
-
* @param text - One or more complete lines
|
|
58
|
-
* @returns The same text with masked values
|
|
59
|
-
*/
|
|
60
|
-
export function redactRunLogText(text) {
|
|
61
|
-
if (text.length === 0)
|
|
62
|
-
return text;
|
|
63
|
-
// Split with a capturing group so the terminators survive the round trip.
|
|
64
|
-
// Odd indices are the terminators themselves.
|
|
65
|
-
return text
|
|
66
|
-
.split(/(\r\n|\n|\r)/)
|
|
67
|
-
.map((part, index) => (index % 2 === 0 ? redactLine(part) : part))
|
|
68
|
-
.join('');
|
|
69
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Per-run output logs under `.fireforge/logs/`.
|
|
3
|
-
*
|
|
4
|
-
* Without a log, a run's diagnosis exists in exactly one place: the terminal.
|
|
5
|
-
* Piping through `tail`/`grep`, the ergonomic default when output is long,
|
|
6
|
-
* keeps the summary and discards the `TEST-UNEXPECTED-FAIL` lines that say
|
|
7
|
-
* what broke, and it launders the exit code besides. An operator rule
|
|
8
|
-
* ("never pipe a run") does not hold in practice, so this is not an operator
|
|
9
|
-
* problem: the tool is the only party that can make the log survive the
|
|
10
|
-
* mistake.
|
|
11
|
-
*
|
|
12
|
-
* So `test` and `build` write their own complete copy as they stream, and the
|
|
13
|
-
* `FIREFORGE-VERDICT:` line names the path. A piped, truncated, or
|
|
14
|
-
* backgrounded run then still leaves a re-readable artifact.
|
|
15
|
-
*
|
|
16
|
-
* Everything here is best-effort. A log is a diagnostic aid, and a run must
|
|
17
|
-
* never fail because one could not be opened, written, or pruned.
|
|
18
|
-
* Every entry point swallows its errors and degrades to "no log", which is
|
|
19
|
-
* exactly the behaviour of a run without this module.
|
|
20
|
-
*/
|
|
21
|
-
/** A run log sink. `write` never throws. */
|
|
22
|
-
export interface RunLog {
|
|
23
|
-
/** Absolute path to the log file. */
|
|
24
|
-
path: string;
|
|
25
|
-
/**
|
|
26
|
-
* Appends output. Complete lines pass through {@link redactRunLogText}
|
|
27
|
-
* before hitting disk. A trailing partial line is held until its newline
|
|
28
|
-
* arrives (or until `close`). Silently drops on any stream error.
|
|
29
|
-
*/
|
|
30
|
-
write: (chunk: string) => void;
|
|
31
|
-
/** Flushes and closes. Resolves even when the stream already failed. */
|
|
32
|
-
close: () => Promise<void>;
|
|
33
|
-
}
|
|
34
|
-
/** `.fireforge/logs` under `projectRoot`. */
|
|
35
|
-
export declare function getRunLogDir(projectRoot: string): string;
|
|
36
|
-
/**
|
|
37
|
-
* Opens `.fireforge/logs/<command>-<timestamp>.log` for a run, pruning older
|
|
38
|
-
* logs of the same kind first.
|
|
39
|
-
*
|
|
40
|
-
* @param projectRoot - Project root directory
|
|
41
|
-
* @param command - Command kind, e.g. `test` or `build`
|
|
42
|
-
* @param now - Clock injection point for deterministic tests
|
|
43
|
-
* @returns The sink, or undefined when no log could be opened
|
|
44
|
-
*/
|
|
45
|
-
export declare function openRunLog(projectRoot: string, command: string, now?: Date): Promise<RunLog | undefined>;
|
|
46
|
-
/**
|
|
47
|
-
* Tees a run log into a caller-chosen copy (`--keep-log`,
|
|
48
|
-
* {@link LOG_KEEP_ENV_VAR}) that retention never prunes.
|
|
49
|
-
*
|
|
50
|
-
* `.fireforge/logs/` keeps twenty logs per command kind for EVERY session
|
|
51
|
-
* on the checkout, so on a shared checkout a log named by a verdict line
|
|
52
|
-
* can be gone within the hour, and a failure recorded only by its log path
|
|
53
|
-
* cannot be read later. The copy is written live, line for line with the
|
|
54
|
-
* same redaction, rather than copied at the end: a killed run keeps what it
|
|
55
|
-
* had written, like the primary log does.
|
|
56
|
-
*
|
|
57
|
-
* The primary path stays the one `log=` names. When the primary could not
|
|
58
|
-
* be opened the copy stands in for it.
|
|
59
|
-
*
|
|
60
|
-
* @param log - The primary run log, if one opened
|
|
61
|
-
* @param flag - The `--keep-log` value, if any
|
|
62
|
-
* @param command - Command kind, naming a copy that has no primary
|
|
63
|
-
* @returns A sink writing to both, or whichever one opened
|
|
64
|
-
*/
|
|
65
|
-
export declare function keepRunLogCopy(log: RunLog | undefined, flag: string | undefined, command: string): Promise<RunLog | undefined>;
|
|
66
|
-
/** Installs (or clears, with `undefined`) the run log for this process. */
|
|
67
|
-
export declare function setActiveRunLog(log: RunLog | undefined): void;
|
|
68
|
-
/**
|
|
69
|
-
* The 1-based line of the active run log the next write starts on.
|
|
70
|
-
* Redaction rewrites within a line and never adds or drops one, so the
|
|
71
|
-
* number holds for the file on disk.
|
|
72
|
-
*/
|
|
73
|
-
export declare function activeRunLogLine(): number;
|
|
74
|
-
/** Absolute path of the active run log, or undefined when none is open. */
|
|
75
|
-
export declare function getActiveRunLogPath(): string | undefined;
|
|
76
|
-
/** Appends to the active run log. A no-op when none is open. */
|
|
77
|
-
export declare function writeToActiveRunLog(chunk: string): void;
|
|
78
|
-
/**
|
|
79
|
-
* Closes and clears the active run log. Resolves even when none is open.
|
|
80
|
-
*
|
|
81
|
-
* Also called from the entry point's SIGINT/SIGTERM path: the held partial
|
|
82
|
-
* line and anything queued in the stream would otherwise be lost across
|
|
83
|
-
* `process.exit`, and a killed run's last line is usually the one that
|
|
84
|
-
* says what it was doing.
|
|
85
|
-
*/
|
|
86
|
-
export declare function closeActiveRunLog(): Promise<void>;
|
|
87
|
-
/**
|
|
88
|
-
* A writable that forwards to `base` and to the active run log.
|
|
89
|
-
*
|
|
90
|
-
* Used by the stdio-inheriting capture path, whose collectors take a mirror
|
|
91
|
-
* stream rather than per-chunk callbacks, so the tee reuses the mirror the
|
|
92
|
-
* exec layer already supports instead of growing a second hook.
|
|
93
|
-
*
|
|
94
|
-
* @param base - The stream to forward to (normally `process.stdout`)
|
|
95
|
-
* @returns A writable teeing into `base` and the run log
|
|
96
|
-
*/
|
|
97
|
-
export declare function teeToRunLog(base: NodeJS.WritableStream): NodeJS.WritableStream;
|
package/dist/src/core/run-log.js
DELETED
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
/**
|
|
3
|
-
* Per-run output logs under `.fireforge/logs/`.
|
|
4
|
-
*
|
|
5
|
-
* Without a log, a run's diagnosis exists in exactly one place: the terminal.
|
|
6
|
-
* Piping through `tail`/`grep`, the ergonomic default when output is long,
|
|
7
|
-
* keeps the summary and discards the `TEST-UNEXPECTED-FAIL` lines that say
|
|
8
|
-
* what broke, and it launders the exit code besides. An operator rule
|
|
9
|
-
* ("never pipe a run") does not hold in practice, so this is not an operator
|
|
10
|
-
* problem: the tool is the only party that can make the log survive the
|
|
11
|
-
* mistake.
|
|
12
|
-
*
|
|
13
|
-
* So `test` and `build` write their own complete copy as they stream, and the
|
|
14
|
-
* `FIREFORGE-VERDICT:` line names the path. A piped, truncated, or
|
|
15
|
-
* backgrounded run then still leaves a re-readable artifact.
|
|
16
|
-
*
|
|
17
|
-
* Everything here is best-effort. A log is a diagnostic aid, and a run must
|
|
18
|
-
* never fail because one could not be opened, written, or pruned.
|
|
19
|
-
* Every entry point swallows its errors and degrades to "no log", which is
|
|
20
|
-
* exactly the behaviour of a run without this module.
|
|
21
|
-
*/
|
|
22
|
-
import { createWriteStream } from 'node:fs';
|
|
23
|
-
import { mkdir, readdir, stat, unlink } from 'node:fs/promises';
|
|
24
|
-
import { basename as basenameOf, dirname, join, resolve } from 'node:path';
|
|
25
|
-
import { Writable } from 'node:stream';
|
|
26
|
-
import { toError } from '../utils/errors.js';
|
|
27
|
-
import { verbose } from '../utils/logger.js';
|
|
28
|
-
import { FIREFORGE_DIR } from './config-paths.js';
|
|
29
|
-
import { redactRunLogText } from './run-log-redact.js';
|
|
30
|
-
import { fileSafeTimestamp } from './state-file.js';
|
|
31
|
-
/** Directory under `.fireforge/` holding run logs. */
|
|
32
|
-
const LOGS_DIRNAME = 'logs';
|
|
33
|
-
/**
|
|
34
|
-
* How many logs to keep per command kind. Retention is per-kind so a busy
|
|
35
|
-
* `test` loop cannot evict every `build` log, which is the pair an operator
|
|
36
|
-
* most often needs to read together.
|
|
37
|
-
*/
|
|
38
|
-
const RETAINED_LOGS_PER_COMMAND = 20;
|
|
39
|
-
/**
|
|
40
|
-
* Cap on the partial line held back between writes. A child emitting one
|
|
41
|
-
* enormous unterminated line (a minified dump on stderr) would otherwise
|
|
42
|
-
* grow the buffer without bound (and, because each write rebuilds
|
|
43
|
-
* `pending + chunk`, quadratically), with nothing reaching disk until
|
|
44
|
-
* close. Past the cap the tail is redacted and written as-is. A `KEY=value`
|
|
45
|
-
* split exactly at the cap boundary is the accepted cost. Same figure as
|
|
46
|
-
* `line-dispatch.ts` uses for the stream matchers.
|
|
47
|
-
*/
|
|
48
|
-
const MAX_PENDING_LINE_SIZE = 1024 * 1024;
|
|
49
|
-
/**
|
|
50
|
-
* Index just past the last line terminator in `text`, or -1 when there is
|
|
51
|
-
* none. `\n` and lone `\r` both terminate: progress-bar output (mach,
|
|
52
|
-
* cargo) repaints a line with carriage returns and may never send a
|
|
53
|
-
* newline, which would otherwise pin the whole run in `pending`. A single
|
|
54
|
-
* trailing `\r` is not a terminator yet: it may be the first half of a
|
|
55
|
-
* `\r\n` split across chunks.
|
|
56
|
-
*/
|
|
57
|
-
function lastLineEnd(text) {
|
|
58
|
-
const lastNewline = text.lastIndexOf('\n');
|
|
59
|
-
const lastReturn = text.lastIndexOf('\r');
|
|
60
|
-
const cut = lastReturn > lastNewline && lastReturn < text.length - 1 ? lastReturn : lastNewline;
|
|
61
|
-
return cut === -1 ? -1 : cut + 1;
|
|
62
|
-
}
|
|
63
|
-
/** `.fireforge/logs` under `projectRoot`. */
|
|
64
|
-
export function getRunLogDir(projectRoot) {
|
|
65
|
-
return join(projectRoot, FIREFORGE_DIR, LOGS_DIRNAME);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Makes room for one new log by deleting the oldest, so that at most
|
|
69
|
-
* {@link RETAINED_LOGS_PER_COMMAND} logs for `command` exist once the new
|
|
70
|
-
* one is created. Pruning runs before the file is opened, hence the
|
|
71
|
-
* `- 1`, without which the directory settles at N + 1.
|
|
72
|
-
*
|
|
73
|
-
* Best-effort: a failure here must not stop the run that is about to be
|
|
74
|
-
* logged.
|
|
75
|
-
*/
|
|
76
|
-
async function pruneRunLogs(dir, command) {
|
|
77
|
-
const keep = RETAINED_LOGS_PER_COMMAND - 1;
|
|
78
|
-
try {
|
|
79
|
-
const entries = await readdir(dir);
|
|
80
|
-
const mine = entries.filter((name) => name.startsWith(`${command}-`) && name.endsWith('.log'));
|
|
81
|
-
if (mine.length <= keep)
|
|
82
|
-
return;
|
|
83
|
-
// Names embed a lexically-sortable timestamp, so sorting is ordering by
|
|
84
|
-
// age without stat-ing every file.
|
|
85
|
-
const stale = mine.sort().slice(0, mine.length - keep);
|
|
86
|
-
await Promise.all(stale.map(async (name) => {
|
|
87
|
-
try {
|
|
88
|
-
await unlink(join(dir, name));
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
// A concurrent run may have pruned it already.
|
|
92
|
-
}
|
|
93
|
-
}));
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
verbose(`Run-log pruning skipped: ${toError(error).message}`);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Opens `.fireforge/logs/<command>-<timestamp>.log` for a run, pruning older
|
|
101
|
-
* logs of the same kind first.
|
|
102
|
-
*
|
|
103
|
-
* @param projectRoot - Project root directory
|
|
104
|
-
* @param command - Command kind, e.g. `test` or `build`
|
|
105
|
-
* @param now - Clock injection point for deterministic tests
|
|
106
|
-
* @returns The sink, or undefined when no log could be opened
|
|
107
|
-
*/
|
|
108
|
-
export async function openRunLog(projectRoot, command, now = new Date()) {
|
|
109
|
-
const dir = getRunLogDir(projectRoot);
|
|
110
|
-
const path = join(dir, `${command}-${fileSafeTimestamp(now)}.log`);
|
|
111
|
-
try {
|
|
112
|
-
await mkdir(dir, { recursive: true });
|
|
113
|
-
await pruneRunLogs(dir, command);
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
verbose(`Run log unavailable (${path}): ${toError(error).message}`);
|
|
117
|
-
return undefined;
|
|
118
|
-
}
|
|
119
|
-
return openRunLogSink(path);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Opens one redacting log file at `path`, creating its directory.
|
|
123
|
-
*
|
|
124
|
-
* @param path - Absolute file path
|
|
125
|
-
* @returns The sink, or undefined when the file could not be opened
|
|
126
|
-
*/
|
|
127
|
-
async function openRunLogSink(path) {
|
|
128
|
-
let stream;
|
|
129
|
-
try {
|
|
130
|
-
await mkdir(dirname(path), { recursive: true });
|
|
131
|
-
stream = createWriteStream(path, { flags: 'a' });
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
verbose(`Run log unavailable (${path}): ${toError(error).message}`);
|
|
135
|
-
return undefined;
|
|
136
|
-
}
|
|
137
|
-
// A stream error after open (disk full, a removed directory) must not
|
|
138
|
-
// become an unhandled 'error' event and kill the run the log exists to
|
|
139
|
-
// describe. Latch it and drop every later write.
|
|
140
|
-
let broken = false;
|
|
141
|
-
stream.on('error', (error) => {
|
|
142
|
-
broken = true;
|
|
143
|
-
verbose(`Run log write failed (${path}): ${error.message}`);
|
|
144
|
-
});
|
|
145
|
-
// Redaction is per LINE, and chunks arrive at arbitrary byte boundaries,
|
|
146
|
-
// so a `KEY=value` split across two chunks would slip past a per-chunk
|
|
147
|
-
// pass. Hold the trailing partial line until its terminator arrives (or
|
|
148
|
-
// it outgrows MAX_PENDING_LINE_SIZE, or the log is closed).
|
|
149
|
-
let pending = '';
|
|
150
|
-
const emit = (text) => {
|
|
151
|
-
if (broken || text.length === 0)
|
|
152
|
-
return;
|
|
153
|
-
try {
|
|
154
|
-
stream.write(redactRunLogText(text));
|
|
155
|
-
}
|
|
156
|
-
catch {
|
|
157
|
-
broken = true;
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
return {
|
|
161
|
-
path,
|
|
162
|
-
write: (chunk) => {
|
|
163
|
-
if (broken)
|
|
164
|
-
return;
|
|
165
|
-
const buffered = pending + chunk;
|
|
166
|
-
const lineEnd = lastLineEnd(buffered);
|
|
167
|
-
if (lineEnd === -1) {
|
|
168
|
-
pending = buffered;
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
pending = buffered.slice(lineEnd);
|
|
172
|
-
emit(buffered.slice(0, lineEnd));
|
|
173
|
-
}
|
|
174
|
-
if (pending.length > MAX_PENDING_LINE_SIZE) {
|
|
175
|
-
emit(pending);
|
|
176
|
-
pending = '';
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
close: async () => {
|
|
180
|
-
const tail = pending;
|
|
181
|
-
pending = '';
|
|
182
|
-
emit(tail);
|
|
183
|
-
await new Promise((resolve) => {
|
|
184
|
-
stream.end(() => {
|
|
185
|
-
resolve();
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
},
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
/** Environment variable naming where every run's log is also kept. */
|
|
192
|
-
const LOG_KEEP_ENV_VAR = 'FIREFORGE_LOG_KEEP';
|
|
193
|
-
/**
|
|
194
|
-
* Where a run's kept copy goes: `--keep-log <path>` when given, else
|
|
195
|
-
* {@link LOG_KEEP_ENV_VAR}, else nowhere. A value that ends in a path
|
|
196
|
-
* separator or names an existing directory receives the log under its own
|
|
197
|
-
* `.fireforge/logs/` basename, so a session-wide directory collects one
|
|
198
|
-
* file per run. Any other value is the file itself. Relative values resolve
|
|
199
|
-
* against the caller's working directory.
|
|
200
|
-
*
|
|
201
|
-
* @param flag - The `--keep-log` value, if any
|
|
202
|
-
* @param basename - The run log's own file name
|
|
203
|
-
* @returns The absolute destination, or undefined when none was asked for
|
|
204
|
-
*/
|
|
205
|
-
async function resolveRunLogKeepPath(flag, basename) {
|
|
206
|
-
const raw = flag ?? process.env[LOG_KEEP_ENV_VAR]?.trim();
|
|
207
|
-
if (raw === undefined || raw.length === 0)
|
|
208
|
-
return undefined;
|
|
209
|
-
const target = resolve(raw);
|
|
210
|
-
let directory = /[\\/]$/.test(raw);
|
|
211
|
-
if (!directory) {
|
|
212
|
-
try {
|
|
213
|
-
directory = (await stat(target)).isDirectory();
|
|
214
|
-
}
|
|
215
|
-
catch {
|
|
216
|
-
directory = false;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
return directory ? join(target, basename) : target;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Tees a run log into a caller-chosen copy (`--keep-log`,
|
|
223
|
-
* {@link LOG_KEEP_ENV_VAR}) that retention never prunes.
|
|
224
|
-
*
|
|
225
|
-
* `.fireforge/logs/` keeps twenty logs per command kind for EVERY session
|
|
226
|
-
* on the checkout, so on a shared checkout a log named by a verdict line
|
|
227
|
-
* can be gone within the hour, and a failure recorded only by its log path
|
|
228
|
-
* cannot be read later. The copy is written live, line for line with the
|
|
229
|
-
* same redaction, rather than copied at the end: a killed run keeps what it
|
|
230
|
-
* had written, like the primary log does.
|
|
231
|
-
*
|
|
232
|
-
* The primary path stays the one `log=` names. When the primary could not
|
|
233
|
-
* be opened the copy stands in for it.
|
|
234
|
-
*
|
|
235
|
-
* @param log - The primary run log, if one opened
|
|
236
|
-
* @param flag - The `--keep-log` value, if any
|
|
237
|
-
* @param command - Command kind, naming a copy that has no primary
|
|
238
|
-
* @returns A sink writing to both, or whichever one opened
|
|
239
|
-
*/
|
|
240
|
-
export async function keepRunLogCopy(log, flag, command) {
|
|
241
|
-
const basename = log === undefined ? `${command}-${fileSafeTimestamp(new Date())}.log` : basenameOf(log.path);
|
|
242
|
-
const keepPath = await resolveRunLogKeepPath(flag, basename);
|
|
243
|
-
if (keepPath === undefined || keepPath === log?.path)
|
|
244
|
-
return log;
|
|
245
|
-
const copy = await openRunLogSink(keepPath);
|
|
246
|
-
if (copy === undefined)
|
|
247
|
-
return log;
|
|
248
|
-
if (log === undefined)
|
|
249
|
-
return copy;
|
|
250
|
-
return {
|
|
251
|
-
path: log.path,
|
|
252
|
-
write: (chunk) => {
|
|
253
|
-
log.write(chunk);
|
|
254
|
-
copy.write(chunk);
|
|
255
|
-
},
|
|
256
|
-
close: async () => {
|
|
257
|
-
await Promise.all([log.close(), copy.close()]);
|
|
258
|
-
},
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* The run log for the command currently executing, if any.
|
|
263
|
-
*
|
|
264
|
-
* Module state rather than a threaded parameter, for the same reason
|
|
265
|
-
* `test-verdict.ts` keeps its emitted-once flag here: the sink has to be
|
|
266
|
-
* reachable from `mach.ts`'s stream callbacks, which sit five frames below
|
|
267
|
-
* the command that opened it, behind dispatch signatures that exist to
|
|
268
|
-
* describe TESTS rather than logging. Threading it would have touched every
|
|
269
|
-
* dispatcher, the retry wrapper and the shard loop to deliver one pointer.
|
|
270
|
-
*
|
|
271
|
-
* One command runs per process, so a single slot is the whole lifetime.
|
|
272
|
-
*/
|
|
273
|
-
let activeRunLog;
|
|
274
|
-
/** Newlines written to the active log so far, for line references into it. */
|
|
275
|
-
let activeRunLogNewlines = 0;
|
|
276
|
-
/** Installs (or clears, with `undefined`) the run log for this process. */
|
|
277
|
-
export function setActiveRunLog(log) {
|
|
278
|
-
activeRunLog = log;
|
|
279
|
-
activeRunLogNewlines = 0;
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* The 1-based line of the active run log the next write starts on.
|
|
283
|
-
* Redaction rewrites within a line and never adds or drops one, so the
|
|
284
|
-
* number holds for the file on disk.
|
|
285
|
-
*/
|
|
286
|
-
export function activeRunLogLine() {
|
|
287
|
-
return activeRunLogNewlines + 1;
|
|
288
|
-
}
|
|
289
|
-
/** Absolute path of the active run log, or undefined when none is open. */
|
|
290
|
-
export function getActiveRunLogPath() {
|
|
291
|
-
return activeRunLog?.path;
|
|
292
|
-
}
|
|
293
|
-
/** Appends to the active run log. A no-op when none is open. */
|
|
294
|
-
export function writeToActiveRunLog(chunk) {
|
|
295
|
-
if (activeRunLog === undefined)
|
|
296
|
-
return;
|
|
297
|
-
for (let index = chunk.indexOf('\n'); index !== -1; index = chunk.indexOf('\n', index + 1)) {
|
|
298
|
-
activeRunLogNewlines += 1;
|
|
299
|
-
}
|
|
300
|
-
activeRunLog.write(chunk);
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Closes and clears the active run log. Resolves even when none is open.
|
|
304
|
-
*
|
|
305
|
-
* Also called from the entry point's SIGINT/SIGTERM path: the held partial
|
|
306
|
-
* line and anything queued in the stream would otherwise be lost across
|
|
307
|
-
* `process.exit`, and a killed run's last line is usually the one that
|
|
308
|
-
* says what it was doing.
|
|
309
|
-
*/
|
|
310
|
-
export async function closeActiveRunLog() {
|
|
311
|
-
const log = activeRunLog;
|
|
312
|
-
activeRunLog = undefined;
|
|
313
|
-
await log?.close();
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* A writable that forwards to `base` and to the active run log.
|
|
317
|
-
*
|
|
318
|
-
* Used by the stdio-inheriting capture path, whose collectors take a mirror
|
|
319
|
-
* stream rather than per-chunk callbacks, so the tee reuses the mirror the
|
|
320
|
-
* exec layer already supports instead of growing a second hook.
|
|
321
|
-
*
|
|
322
|
-
* @param base - The stream to forward to (normally `process.stdout`)
|
|
323
|
-
* @returns A writable teeing into `base` and the run log
|
|
324
|
-
*/
|
|
325
|
-
export function teeToRunLog(base) {
|
|
326
|
-
return new Writable({
|
|
327
|
-
write(chunk, _encoding, callback) {
|
|
328
|
-
const text = typeof chunk === 'string' ? chunk : chunk.toString('utf8');
|
|
329
|
-
base.write(text);
|
|
330
|
-
writeToActiveRunLog(text);
|
|
331
|
-
callback();
|
|
332
|
-
},
|
|
333
|
-
});
|
|
334
|
-
}
|