@hominis/fireforge 0.54.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +287 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -438
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -332
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -420
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -422
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -208
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -692
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +113 -181
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -277
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +163 -653
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -712
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -91
- package/dist/src/commands/check-run.d.ts +0 -33
- package/dist/src/commands/check-run.js +0 -112
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -218
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -282
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -52
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -261
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -117
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -15
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -49
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -248
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -267
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -35
- package/dist/src/commands/re-export-hunks.js +0 -220
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -191
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -39
- package/dist/src/commands/re-export-single.js +0 -388
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -28
- package/dist/src/commands/re-export-summary.js +0 -36
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -29
- package/dist/src/commands/test-build-phase.js +0 -290
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -63
- package/dist/src/commands/test-orchestrate.js +0 -274
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -52
- package/dist/src/commands/test-stale-gate.js +0 -165
- package/dist/src/commands/test-verdict.d.ts +0 -92
- package/dist/src/commands/test-verdict.js +0 -162
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck.d.ts +0 -56
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -274
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -92
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -503
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -62
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -124
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -146
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -79
- package/dist/src/core/furnace-constants.js +0 -123
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -61
- package/dist/src/core/furnace-jsconfig.js +0 -208
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -302
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -318
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -204
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache.d.ts +0 -78
- package/dist/src/core/patch-lint-cache.js +0 -233
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -39
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -63
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -180
- package/dist/src/core/patch-lint-checkjs.js +0 -611
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -5
- package/dist/src/core/patch-lint-imports.js +0 -67
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -78
- package/dist/src/core/patch-lint-staged-registration.js +0 -110
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -57
- package/dist/src/core/patch-lint-token-scale.js +0 -286
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -191
- package/dist/src/core/patch-lint.js +0 -529
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -161
- package/dist/src/core/patch-parse.js +0 -347
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -216
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -507
- package/dist/src/core/typecheck.d.ts +0 -75
- package/dist/src/core/typecheck.js +0 -433
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1367
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -703
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -415
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/** `firefox`: the pin, which Firefox release the project builds on. */
|
|
3
|
+
import { s } from '../../kernel/schema.js';
|
|
4
|
+
/** The Mozilla products a project can pin. */
|
|
5
|
+
export const FIREFOX_PRODUCTS = [
|
|
6
|
+
'firefox',
|
|
7
|
+
'firefox-esr',
|
|
8
|
+
'firefox-beta',
|
|
9
|
+
'firefox-devedition',
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Why a version cannot be released as a product, or undefined when they pair:
|
|
13
|
+
* an ESR product takes an `esr` version, beta and Developer Edition take a
|
|
14
|
+
* beta version, and the stable product takes neither.
|
|
15
|
+
*
|
|
16
|
+
* @param version - Such as `153.4.0esr` or `147.0b1`
|
|
17
|
+
* @param product - One of {@link FIREFOX_PRODUCTS}
|
|
18
|
+
*/
|
|
19
|
+
function productVersionProblem(version, product) {
|
|
20
|
+
const esr = /esr$/i.test(version);
|
|
21
|
+
const beta = /b\d+$/.test(version);
|
|
22
|
+
if (product === 'firefox-esr' && !esr) {
|
|
23
|
+
return `must pair product firefox-esr with an ESR version such as 128.0esr (got "${version}")`;
|
|
24
|
+
}
|
|
25
|
+
if ((product === 'firefox-beta' || product === 'firefox-devedition') && !beta) {
|
|
26
|
+
return `must pair product ${product} with a beta version such as 147.0b1 (got "${version}")`;
|
|
27
|
+
}
|
|
28
|
+
if (product === 'firefox' && (esr || beta)) {
|
|
29
|
+
const instead = esr ? 'firefox-esr' : 'firefox-beta';
|
|
30
|
+
return `must use product ${instead} for version "${version}"; product firefox takes release versions only`;
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The product a version is released as, by its shape: an `esr` version is
|
|
36
|
+
* ESR, a beta version is the beta product, anything else the stable one.
|
|
37
|
+
*
|
|
38
|
+
* @param version - Such as `153.4.0esr` or `147.0b1`
|
|
39
|
+
*/
|
|
40
|
+
export function inferFirefoxProduct(version) {
|
|
41
|
+
if (/esr$/i.test(version))
|
|
42
|
+
return 'firefox-esr';
|
|
43
|
+
return /b\d+$/.test(version) ? 'firefox-beta' : 'firefox';
|
|
44
|
+
}
|
|
45
|
+
/** The `firefox` section. */
|
|
46
|
+
export const firefoxSection = s
|
|
47
|
+
.object({
|
|
48
|
+
version: s
|
|
49
|
+
.string({
|
|
50
|
+
pattern: /^[1-9]\d{0,2}\.\d+(?:b[1-9]\d*|\.\d+(?:esr)?|esr)?$/,
|
|
51
|
+
format: 'a Firefox version such as 153.4.0esr or 147.0b1',
|
|
52
|
+
})
|
|
53
|
+
.describe('Firefox release to build on, such as 153.4.0esr'),
|
|
54
|
+
product: s.enum(FIREFOX_PRODUCTS).describe('Mozilla product the version belongs to'),
|
|
55
|
+
sha256: s
|
|
56
|
+
.string({ pattern: /^[a-f0-9]{64}$/, format: 'a lowercase 64-character SHA-256 digest' })
|
|
57
|
+
.describe('Pinned digest of the source archive; wins over the published SHA256SUMS')
|
|
58
|
+
.optional(),
|
|
59
|
+
allowUnverifiedDownload: s
|
|
60
|
+
.boolean()
|
|
61
|
+
.describe('Accept a download whose published digest cannot be fetched, trusting TLS alone; ignored when sha256 is set')
|
|
62
|
+
.default(false),
|
|
63
|
+
candidate: s
|
|
64
|
+
.string({ pattern: /^build[1-9]\d{0,3}$/, format: 'a candidate directory such as build2' })
|
|
65
|
+
.describe('Release-candidate build directory, for pre-release verification')
|
|
66
|
+
.optional(),
|
|
67
|
+
})
|
|
68
|
+
.refine(({ version, product }) => productVersionProblem(version, product))
|
|
69
|
+
.describe('The Firefox release the project builds on');
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* `gate`: what `fireforge gate` runs on a clean committed tree besides
|
|
4
|
+
* `check`: a build, declared test lanes, repeated lanes, negative controls,
|
|
5
|
+
* smoke starts of the browser, and the decisions only a person can make. A
|
|
6
|
+
* lane is data, not a shell line, so its environment, arguments and
|
|
7
|
+
* validator are closed.
|
|
8
|
+
*/
|
|
9
|
+
import { s } from '../../kernel/schema.js';
|
|
10
|
+
import { enginePath, positive, projectPath, text, uniqueBy } from './common.js';
|
|
11
|
+
/** Stands for the step's private output directory in a declared value. */
|
|
12
|
+
export const ARTIFACTS_PLACEHOLDER = '{artifacts}';
|
|
13
|
+
const ID_PATTERN = /^[a-z0-9][a-z0-9._-]*$/;
|
|
14
|
+
/** Whether a value names a path outside the workspace: absolute, home-relative or climbing out. */
|
|
15
|
+
function escapesWorkspace(value) {
|
|
16
|
+
return (value.startsWith('/') ||
|
|
17
|
+
value.startsWith('~') ||
|
|
18
|
+
/=\//.test(value) ||
|
|
19
|
+
/(^|[=\\/])\.\.([\\/]|$)/.test(value));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Environment names a declaration never sets: each selects code the run
|
|
23
|
+
* executes, changes how a tool or the build reads, or is owned by FireForge.
|
|
24
|
+
*/
|
|
25
|
+
const RESERVED_ENV_PREFIXES = [
|
|
26
|
+
'FIREFORGE_',
|
|
27
|
+
'NODE_',
|
|
28
|
+
'NPM_',
|
|
29
|
+
'TSX_',
|
|
30
|
+
'JITI_',
|
|
31
|
+
'MOZ_',
|
|
32
|
+
'MOZBUILD_',
|
|
33
|
+
'MACH',
|
|
34
|
+
'GIT_',
|
|
35
|
+
'PYTHON',
|
|
36
|
+
'PIP_',
|
|
37
|
+
'UV_',
|
|
38
|
+
'VIRTUAL_ENV',
|
|
39
|
+
'CONDA_',
|
|
40
|
+
'DYLD_',
|
|
41
|
+
'LD_',
|
|
42
|
+
'MALLOC',
|
|
43
|
+
'CARGO',
|
|
44
|
+
'RUST',
|
|
45
|
+
'SCCACHE_',
|
|
46
|
+
'CCACHE_',
|
|
47
|
+
'XDG_',
|
|
48
|
+
'LC_',
|
|
49
|
+
'SSH_',
|
|
50
|
+
];
|
|
51
|
+
const RESERVED_ENV_NAMES = new Set([
|
|
52
|
+
...['PATH', 'HOME', 'USER', 'LOGNAME', 'SHELL', 'PWD', 'OLDPWD', 'IFS', 'ENV', 'BASH_ENV'],
|
|
53
|
+
...['CDPATH', 'TMPDIR', 'TMP', 'TEMP', 'LANG', 'LANGUAGE', 'TZ', 'TERM', 'DISPLAY'],
|
|
54
|
+
...['WAYLAND_DISPLAY', 'DBUS_SESSION_BUS_ADDRESS', 'MOZCONFIG', 'NODEJS', 'CBINDGEN'],
|
|
55
|
+
...['CC', 'CXX', 'CPP', 'AR', 'AS', 'LD', 'NM', 'STRIP', 'RANLIB', 'OBJCOPY', 'DSYMUTIL'],
|
|
56
|
+
...['CFLAGS', 'CXXFLAGS', 'CPPFLAGS', 'LDFLAGS', 'HOST_CC', 'HOST_CXX', 'HOST_AR'],
|
|
57
|
+
...['CLANG_PATH', 'LIBCLANG_PATH', 'WASI_SYSROOT', 'MACOS_SDK_DIR', 'WASM_CC', 'WASM_CXX'],
|
|
58
|
+
'ONNX_RUNTIME',
|
|
59
|
+
]);
|
|
60
|
+
function environmentProblem(env) {
|
|
61
|
+
for (const [name, value] of Object.entries(env)) {
|
|
62
|
+
if (!/^[A-Z][A-Z0-9_]{0,63}$/.test(name)) {
|
|
63
|
+
return `names ${name}: names are upper case letters, digits and _`;
|
|
64
|
+
}
|
|
65
|
+
if (RESERVED_ENV_NAMES.has(name) || RESERVED_ENV_PREFIXES.some((p) => name.startsWith(p))) {
|
|
66
|
+
const hint = name === 'MOZ_UPLOAD_DIR' ? '; set uploadDir instead' : '';
|
|
67
|
+
return `sets ${name}, which FireForge owns${hint}`;
|
|
68
|
+
}
|
|
69
|
+
if (value.length > 4096 || /[\0\r\n]/.test(value)) {
|
|
70
|
+
return `sets ${name} to more than one line of at most 4096 characters`;
|
|
71
|
+
}
|
|
72
|
+
const inArtifacts = value === ARTIFACTS_PLACEHOLDER || value.startsWith(`${ARTIFACTS_PLACEHOLDER}/`);
|
|
73
|
+
const path = inArtifacts ? value.slice(ARTIFACTS_PLACEHOLDER.length + 1) : value;
|
|
74
|
+
if (path.includes(ARTIFACTS_PLACEHOLDER) || escapesWorkspace(path)) {
|
|
75
|
+
return `sets ${name} to a path outside the run: use a workspace-relative path or start it with ${ARTIFACTS_PLACEHOLDER}`;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
const environment = s
|
|
81
|
+
.record(s.string())
|
|
82
|
+
.refine(environmentProblem)
|
|
83
|
+
.describe(`Environment of the harness; a value starting ${ARTIFACTS_PLACEHOLDER} names a path in the run's output directory`);
|
|
84
|
+
const validator = s
|
|
85
|
+
.object({
|
|
86
|
+
command: s
|
|
87
|
+
.array(s.string({ pattern: /^[^\0]+$/, format: 'a non-empty argument' }), { min: 1 })
|
|
88
|
+
.describe(`Argument vector: node <script> or a committed script; ${ARTIFACTS_PLACEHOLDER} expands`),
|
|
89
|
+
})
|
|
90
|
+
.refine(({ command }) => {
|
|
91
|
+
const [program = '', script] = command;
|
|
92
|
+
if (command.some((arg) => escapesWorkspace(arg.replaceAll(ARTIFACTS_PLACEHOLDER, 'out')))) {
|
|
93
|
+
return `must name no path outside the workspace; use a relative path or ${ARTIFACTS_PLACEHOLDER}`;
|
|
94
|
+
}
|
|
95
|
+
if (program !== 'node' && !program.includes('/')) {
|
|
96
|
+
return 'must run node or a committed script by its path, not a program name';
|
|
97
|
+
}
|
|
98
|
+
return program === 'node' && (script === undefined || script.startsWith('-'))
|
|
99
|
+
? 'must run node on a committed script: node <script> [arguments]'
|
|
100
|
+
: undefined;
|
|
101
|
+
})
|
|
102
|
+
.describe('Judges what the harness produced, after it exits clean; nonzero reads red');
|
|
103
|
+
/** The one form of mach argument a lane holds: a pref whose value names no path. */
|
|
104
|
+
const machArgument = s
|
|
105
|
+
.string({
|
|
106
|
+
pattern: /^--setpref=[A-Za-z][A-Za-z0-9_.-]*=[A-Za-z0-9_.:+,@%-]*$/,
|
|
107
|
+
format: '--setpref=<name>=<value> with a value that names no path',
|
|
108
|
+
})
|
|
109
|
+
.refine((arg) => arg.startsWith('--setpref=marionette.') ? 'must not set a marionette.* pref' : undefined);
|
|
110
|
+
const id = s.string({ pattern: ID_PATTERN, format: 'a lowercase ID such as "tiles"' });
|
|
111
|
+
const tests = s.array(enginePath, { min: 1 });
|
|
112
|
+
const laneKeys = {
|
|
113
|
+
id: id.describe('Lane ID'),
|
|
114
|
+
files: tests.describe('Engine-relative globs or literal paths of the tests the lane runs'),
|
|
115
|
+
exclude: tests.describe('Tests left out of files').optional(),
|
|
116
|
+
dispatch: s
|
|
117
|
+
.enum(['shards', 'one-browser', 'standalone'])
|
|
118
|
+
.describe('A browser per file, one browser for all, or a restart between files')
|
|
119
|
+
.default('shards'),
|
|
120
|
+
headed: s.boolean().describe('Runs with a visible window, holding the display').default(false),
|
|
121
|
+
env: environment.optional(),
|
|
122
|
+
uploadDir: s
|
|
123
|
+
.boolean()
|
|
124
|
+
.describe("Gives the harness a MOZ_UPLOAD_DIR in the run's output directory")
|
|
125
|
+
.default(false),
|
|
126
|
+
machArgs: s.array(machArgument, { min: 1 }).describe('Mach --setpref arguments').optional(),
|
|
127
|
+
validate: validator.optional(),
|
|
128
|
+
};
|
|
129
|
+
const laneSchema = s.object(laneKeys);
|
|
130
|
+
const stressSchema = s.object({
|
|
131
|
+
...laneKeys,
|
|
132
|
+
repeat: positive.describe('How many times the lane runs; every repeat must pass'),
|
|
133
|
+
});
|
|
134
|
+
const controlSchema = s.object({
|
|
135
|
+
id: id.describe('Control ID'),
|
|
136
|
+
diff: projectPath.describe('Committed diff holding the mutation'),
|
|
137
|
+
test: enginePath.describe('Engine-relative test that must catch it'),
|
|
138
|
+
assertions: s
|
|
139
|
+
.array(text, { min: 1 })
|
|
140
|
+
.describe('Labels of the reds it must produce, every one and no other'),
|
|
141
|
+
});
|
|
142
|
+
const runSchema = s.object({
|
|
143
|
+
id: id.describe('Run ID'),
|
|
144
|
+
smokeExit: positive.describe('Seconds the console is watched before the browser is ended'),
|
|
145
|
+
headless: s.boolean().describe('Starts without a window').default(false),
|
|
146
|
+
args: s.array(text, { min: 1 }).describe('Arguments for the browser').optional(),
|
|
147
|
+
consoleAllowFile: projectPath
|
|
148
|
+
.describe('Committed file of console line patterns the smoke start accepts')
|
|
149
|
+
.optional(),
|
|
150
|
+
validate: validator.optional(),
|
|
151
|
+
});
|
|
152
|
+
const acceptanceSchema = s.object({
|
|
153
|
+
id: id.describe('Acceptance ID'),
|
|
154
|
+
reason: text.describe('What the person decides'),
|
|
155
|
+
evidence: s
|
|
156
|
+
.array(s.string({ pattern: /^(lane|stress|control|run):/, format: 'kind:id, such as lane:captures' }))
|
|
157
|
+
.describe('Declared lanes, stress runs, controls or runs whose outputs the person looks at')
|
|
158
|
+
.optional(),
|
|
159
|
+
});
|
|
160
|
+
const byId = (schema, noun) => s.array(schema).refine(uniqueBy((entry) => entry.id, `${noun} ID`));
|
|
161
|
+
const gateObject = s.object({
|
|
162
|
+
build: s
|
|
163
|
+
.enum(['ui', 'full'])
|
|
164
|
+
.describe('The build the gate runs; a workspace that needs a full build gets one either way')
|
|
165
|
+
.default('ui'),
|
|
166
|
+
documents: s
|
|
167
|
+
.array(text, { min: 1 })
|
|
168
|
+
.describe('Globs of repository paths that change nothing the gate tests (a pattern without a slash matches a file name at any depth): a commit touching only these needs check alone')
|
|
169
|
+
.optional(),
|
|
170
|
+
lanes: byId(laneSchema, 'lane').describe('Groups of tests run as declared').optional(),
|
|
171
|
+
stress: byId(stressSchema, 'stress').describe('Lanes run repeatedly').optional(),
|
|
172
|
+
controls: byId(controlSchema, 'control')
|
|
173
|
+
.describe('Expected reds: a mutation each test must catch')
|
|
174
|
+
.optional(),
|
|
175
|
+
runs: byId(runSchema, 'run').describe('Smoke starts of the built browser').optional(),
|
|
176
|
+
acceptance: byId(acceptanceSchema, 'acceptance')
|
|
177
|
+
.describe('Decisions only a person can make, recorded by gate accept')
|
|
178
|
+
.optional(),
|
|
179
|
+
});
|
|
180
|
+
/** An acceptance can only stand on something the gate declares and runs. */
|
|
181
|
+
function evidenceProblem(gate) {
|
|
182
|
+
const declared = new Set([
|
|
183
|
+
...(gate.lanes ?? []).map(({ id }) => `lane:${id}`),
|
|
184
|
+
...(gate.stress ?? []).map(({ id }) => `stress:${id}`),
|
|
185
|
+
...(gate.controls ?? []).map(({ id }) => `control:${id}`),
|
|
186
|
+
...(gate.runs ?? []).map(({ id }) => `run:${id}`),
|
|
187
|
+
]);
|
|
188
|
+
for (const entry of gate.acceptance ?? []) {
|
|
189
|
+
const missing = (entry.evidence ?? []).find((id) => !declared.has(id));
|
|
190
|
+
if (missing !== undefined) {
|
|
191
|
+
return `has acceptance "${entry.id}" naming ${missing}, which the gate does not declare`;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return undefined;
|
|
195
|
+
}
|
|
196
|
+
/** The `gate` section. */
|
|
197
|
+
export const gateSection = gateObject
|
|
198
|
+
.refine(evidenceProblem)
|
|
199
|
+
.describe('What fireforge gate runs besides check');
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* The browser's identity: the root keys that name, brand and license it.
|
|
4
|
+
* The generated mozconfig is shell-evaluated, so the free-text fields refuse
|
|
5
|
+
* control characters and the executable name is restricted to what cannot
|
|
6
|
+
* carry shell syntax.
|
|
7
|
+
*/
|
|
8
|
+
import { s } from '../../kernel/schema.js';
|
|
9
|
+
/** SPDX identifiers a project can be licensed under. */
|
|
10
|
+
export const PROJECT_LICENSES = ['EUPL-1.2', 'MPL-2.0', '0BSD', 'GPL-2.0-or-later'];
|
|
11
|
+
/** The license of a project that names none, and the one `setup` proposes. */
|
|
12
|
+
export const DEFAULT_LICENSE = 'EUPL-1.2';
|
|
13
|
+
const PRINTABLE = /^\P{Cc}*[^\s\p{Cc}]\P{Cc}*$/u;
|
|
14
|
+
/** The identity keys, spread into the root of the schema. */
|
|
15
|
+
export const identityKeys = {
|
|
16
|
+
name: s
|
|
17
|
+
.string({ pattern: PRINTABLE, format: 'a non-empty name without control characters' })
|
|
18
|
+
.describe('Display name of the browser'),
|
|
19
|
+
vendor: s
|
|
20
|
+
.string({ pattern: PRINTABLE, format: 'a non-empty name without control characters' })
|
|
21
|
+
.describe('Vendor or company name'),
|
|
22
|
+
appId: s
|
|
23
|
+
.string({
|
|
24
|
+
pattern: /^[a-z][a-z0-9]*(\.[a-z][a-z0-9]*)+$/,
|
|
25
|
+
format: 'a reverse-domain identifier such as "org.example.browser"',
|
|
26
|
+
})
|
|
27
|
+
.describe('Application ID in reverse-domain form'),
|
|
28
|
+
binaryName: s
|
|
29
|
+
.string({
|
|
30
|
+
pattern: /^[a-z][a-z0-9-]*$/,
|
|
31
|
+
format: 'a lowercase letter followed by lowercase letters, digits and hyphens',
|
|
32
|
+
})
|
|
33
|
+
.describe('Executable name of the built browser'),
|
|
34
|
+
license: s
|
|
35
|
+
.enum(PROJECT_LICENSES)
|
|
36
|
+
.describe('SPDX identifier of the project license')
|
|
37
|
+
.default(DEFAULT_LICENSE),
|
|
38
|
+
markerComment: s
|
|
39
|
+
.string({
|
|
40
|
+
pattern: /^(?!\s)(?!.*\*\/)\P{Cc}*[^\s\p{Cc}]$/u,
|
|
41
|
+
format: 'a one-line marker without surrounding whitespace or "*/"',
|
|
42
|
+
})
|
|
43
|
+
.describe('Marker appended as a comment to lines FireForge writes into upstream files, such as "MYBROWSER"')
|
|
44
|
+
.optional(),
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* The marker word on the lines FireForge and the fork write into upstream
|
|
48
|
+
* files, such as `MYBROWSER` (lines carry it as `// MYBROWSER:`):
|
|
49
|
+
* `markerComment` when set, else the binary name in upper case.
|
|
50
|
+
*
|
|
51
|
+
* @param config - The project configuration
|
|
52
|
+
*/
|
|
53
|
+
export function markerComment(config) {
|
|
54
|
+
return config.markerComment ?? config.binaryName.toUpperCase();
|
|
55
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* The `fireforge.json` schema: the sum of the sections, each declared in its
|
|
4
|
+
* own file by the feature it configures. A section whose keys are all
|
|
5
|
+
* optional is filled with its defaults when absent, so a reader never tests
|
|
6
|
+
* for the block before reading a key.
|
|
7
|
+
*/
|
|
8
|
+
import { s } from '../../kernel/schema.js';
|
|
9
|
+
import { buildAuditSection, buildSection } from './build.js';
|
|
10
|
+
import { checkSection } from './check.js';
|
|
11
|
+
import { exportQueueSection } from './export-queue.js';
|
|
12
|
+
import { firefoxSection } from './firefox.js';
|
|
13
|
+
import { gateSection } from './gate.js';
|
|
14
|
+
import { identityKeys } from './identity.js';
|
|
15
|
+
import { patchLintSection } from './lint.js';
|
|
16
|
+
import { patchPolicySection } from './policy.js';
|
|
17
|
+
import { modeKey, modeProblem, sourceSection } from './source.js';
|
|
18
|
+
import { testSection } from './test.js';
|
|
19
|
+
import { toolchainsSection } from './toolchains.js';
|
|
20
|
+
import { typecheckSection } from './typecheck.js';
|
|
21
|
+
import { wireSection } from './wire.js';
|
|
22
|
+
/** A section that is filled with its own defaults when absent. */
|
|
23
|
+
function filled(section) {
|
|
24
|
+
return section.default(section.parse({}));
|
|
25
|
+
}
|
|
26
|
+
/** The whole of `fireforge.json`. */
|
|
27
|
+
export const configSchema = s
|
|
28
|
+
.object({
|
|
29
|
+
...identityKeys,
|
|
30
|
+
mode: modeKey,
|
|
31
|
+
source: sourceSection.optional(),
|
|
32
|
+
firefox: firefoxSection,
|
|
33
|
+
build: buildSection.optional(),
|
|
34
|
+
buildAudit: buildAuditSection.optional(),
|
|
35
|
+
test: filled(testSection),
|
|
36
|
+
patchLint: filled(patchLintSection),
|
|
37
|
+
patchPolicy: patchPolicySection.optional(),
|
|
38
|
+
typecheck: typecheckSection.optional(),
|
|
39
|
+
check: filled(checkSection),
|
|
40
|
+
gate: gateSection.optional(),
|
|
41
|
+
exportQueue: filled(exportQueueSection),
|
|
42
|
+
externalToolchains: toolchainsSection.optional(),
|
|
43
|
+
wire: filled(wireSection),
|
|
44
|
+
})
|
|
45
|
+
.refine(modeProblem);
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* `patchLint`: the quality rules over owned changes. The size thresholds and
|
|
4
|
+
* their defaults live here so that validation can check an override against
|
|
5
|
+
* the thresholds it actually produces, and the rules read the same table.
|
|
6
|
+
*/
|
|
7
|
+
import { s } from '../../kernel/schema.js';
|
|
8
|
+
import { positive, projectPath, severity, text } from './common.js';
|
|
9
|
+
/** `file-too-large` line counts per file class. */
|
|
10
|
+
const FILE_SIZE_DEFAULTS = {
|
|
11
|
+
general: { notice: 500, warning: 750, error: 900 },
|
|
12
|
+
test: { notice: 1200, warning: 1400, error: 1600 },
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* `large-patch-lines` per tier. Branding is calibrated against a fresh-fork
|
|
16
|
+
* branding change (every locale's brand strings, copied assets), which lands
|
|
17
|
+
* around 15-16k lines and must read as a notice.
|
|
18
|
+
*/
|
|
19
|
+
const PATCH_LINE_DEFAULTS = {
|
|
20
|
+
general: { notice: 800, warning: 1500, error: 3000 },
|
|
21
|
+
test: { notice: 1500, warning: 3000, error: 6000 },
|
|
22
|
+
branding: { notice: 8000, warning: 18000, error: 30000 },
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* `large-patch-files` warning per tier. File count expresses scope, so there
|
|
26
|
+
* is no notice or error band unless one is configured.
|
|
27
|
+
*/
|
|
28
|
+
const PATCH_FILES_WARNING_DEFAULTS = { general: 5, test: 5, branding: 60 };
|
|
29
|
+
/**
|
|
30
|
+
* The effective `file-too-large` bands of a file class: the override merged
|
|
31
|
+
* over the defaults.
|
|
32
|
+
*
|
|
33
|
+
* @param fileClass - `general` or `test`
|
|
34
|
+
* @param override - `patchLint.fileSizeThresholds.<class>`, if set
|
|
35
|
+
*/
|
|
36
|
+
export function fileSizeBands(fileClass, override) {
|
|
37
|
+
return { ...FILE_SIZE_DEFAULTS[fileClass], ...override };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The effective patch-size bands of a tier. An unset `files.notice` follows
|
|
41
|
+
* the effective `files.warning` (no notice band) and an unset `files.error`
|
|
42
|
+
* never fires.
|
|
43
|
+
*
|
|
44
|
+
* @param tier - `general`, `test` or `branding`
|
|
45
|
+
* @param override - `patchLint.patchSizeThresholds.<tier>`, if set
|
|
46
|
+
*/
|
|
47
|
+
export function patchSizeBands(tier, override) {
|
|
48
|
+
const warning = override?.files?.warning ?? PATCH_FILES_WARNING_DEFAULTS[tier];
|
|
49
|
+
return {
|
|
50
|
+
lines: { ...PATCH_LINE_DEFAULTS[tier], ...override?.lines },
|
|
51
|
+
files: {
|
|
52
|
+
notice: override?.files?.notice ?? warning,
|
|
53
|
+
warning,
|
|
54
|
+
error: override?.files?.error ?? null,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** An out-of-order triple silently disables a band, so it is refused. */
|
|
59
|
+
function orderProblem(bands) {
|
|
60
|
+
const ordered = bands.notice <= bands.warning && (bands.error === null || bands.warning <= bands.error);
|
|
61
|
+
return ordered
|
|
62
|
+
? undefined
|
|
63
|
+
: `must resolve to notice <= warning <= error (resolved: ${bands.notice}/${bands.warning}/${bands.error ?? 'none'})`;
|
|
64
|
+
}
|
|
65
|
+
const bands = s.object({
|
|
66
|
+
notice: positive.describe('Count above which a notice is reported').optional(),
|
|
67
|
+
warning: positive.describe('Count above which a warning is reported').optional(),
|
|
68
|
+
error: positive.describe('Count above which an error is reported').optional(),
|
|
69
|
+
});
|
|
70
|
+
function fileSizeTier(fileClass) {
|
|
71
|
+
return bands.refine((override) => orderProblem(fileSizeBands(fileClass, override)));
|
|
72
|
+
}
|
|
73
|
+
function patchSizeTier(tier) {
|
|
74
|
+
const lines = bands.describe('large-patch-lines bands').optional();
|
|
75
|
+
const files = bands.describe('large-patch-files bands').optional();
|
|
76
|
+
return s.object({ lines, files }).refine((override) => {
|
|
77
|
+
const resolved = patchSizeBands(tier, override);
|
|
78
|
+
const linesProblem = orderProblem(resolved.lines);
|
|
79
|
+
if (linesProblem !== undefined)
|
|
80
|
+
return `lines ${linesProblem}`;
|
|
81
|
+
const filesProblem = orderProblem(resolved.files);
|
|
82
|
+
return filesProblem === undefined ? undefined : `files ${filesProblem}`;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Whether a CSS property name matches a token-scale property list: exact, or
|
|
87
|
+
* a `*`-suffixed prefix.
|
|
88
|
+
*
|
|
89
|
+
* @param name - The property, lower case
|
|
90
|
+
* @param patterns - `tokenScales[].properties`
|
|
91
|
+
*/
|
|
92
|
+
export function matchesPropertyName(name, patterns) {
|
|
93
|
+
return patterns.some((pattern) => pattern.endsWith('*') ? name.startsWith(pattern.slice(0, -1)) : name === pattern);
|
|
94
|
+
}
|
|
95
|
+
const tokenPrefix = s.string({
|
|
96
|
+
pattern: /^--[\w-]+$/,
|
|
97
|
+
format: 'a custom-property prefix such as "--brand-space-"',
|
|
98
|
+
});
|
|
99
|
+
const tokenScale = s
|
|
100
|
+
.object({
|
|
101
|
+
properties: s
|
|
102
|
+
.array(text, { min: 1 })
|
|
103
|
+
.describe('CSS properties governed: exact names or *-suffixed prefixes such as padding*'),
|
|
104
|
+
prefix: s
|
|
105
|
+
.union(tokenPrefix, s.array(tokenPrefix, { min: 1 }))
|
|
106
|
+
.describe('Custom-property prefix of the scale tokens, or a list of them'),
|
|
107
|
+
allowLiterals: s
|
|
108
|
+
.array(text)
|
|
109
|
+
.describe('Literal values accepted without a token; * is a wildcard')
|
|
110
|
+
.optional(),
|
|
111
|
+
allow: s
|
|
112
|
+
.array(s.string({ pattern: /^--\S/, format: 'a custom-property name starting with "--"' }))
|
|
113
|
+
.describe('Further custom properties accepted: exact names or *-suffixed prefixes')
|
|
114
|
+
.optional(),
|
|
115
|
+
allowInCalc: s
|
|
116
|
+
.array(text)
|
|
117
|
+
.describe('Literal values accepted only inside calc(), min(), max() or clamp()')
|
|
118
|
+
.optional(),
|
|
119
|
+
offsetCap: s
|
|
120
|
+
.number({ min: 0 })
|
|
121
|
+
.describe('Largest total px a declaration may subtract from scale tokens in a math function')
|
|
122
|
+
.optional(),
|
|
123
|
+
exclude: s.array(text).describe('Engine-relative globs of files the scale skips').optional(),
|
|
124
|
+
minFiles: positive
|
|
125
|
+
.describe('Fewest created stylesheets that must declare a governed property')
|
|
126
|
+
.optional(),
|
|
127
|
+
allowValues: s
|
|
128
|
+
.array(s.object({ property: text, value: text, reason: text }), { min: 1 })
|
|
129
|
+
.describe('Reviewed declarations accepted as written, each with its reason')
|
|
130
|
+
.optional(),
|
|
131
|
+
})
|
|
132
|
+
.refine((scale) => {
|
|
133
|
+
const stray = scale.allowValues?.find((entry) => !matchesPropertyName(entry.property.toLowerCase(), scale.properties));
|
|
134
|
+
return stray === undefined
|
|
135
|
+
? undefined
|
|
136
|
+
: `allows a value for "${stray.property}", which is not a property this scale governs`;
|
|
137
|
+
});
|
|
138
|
+
/**
|
|
139
|
+
* Every lint rule ID, for validating `patchLint.rules`. The rule registry in
|
|
140
|
+
* `src/lint` holds the same list with each rule's default and description.
|
|
141
|
+
*/
|
|
142
|
+
export const LINT_RULE_IDS = [
|
|
143
|
+
'relative-import',
|
|
144
|
+
'missing-modification-comment',
|
|
145
|
+
'jsdoc',
|
|
146
|
+
'jsdoc-class-method',
|
|
147
|
+
'chrome-script-jsdoc',
|
|
148
|
+
'test-needs-assertion',
|
|
149
|
+
'observer-topic-naming',
|
|
150
|
+
'raw-color-value',
|
|
151
|
+
'token-prefix-violation',
|
|
152
|
+
'token-scale',
|
|
153
|
+
'token-scale-vacuous',
|
|
154
|
+
'stale-token-scale-exclude',
|
|
155
|
+
'file-too-large',
|
|
156
|
+
'large-patch-lines',
|
|
157
|
+
'large-patch-files',
|
|
158
|
+
'missing-license-header',
|
|
159
|
+
'modified-file-missing-header',
|
|
160
|
+
'mozbuild-unsorted-list',
|
|
161
|
+
'unregistered-system-module',
|
|
162
|
+
'dangling-registration',
|
|
163
|
+
'forward-import',
|
|
164
|
+
'forward-registration',
|
|
165
|
+
'staged-dependency-unused',
|
|
166
|
+
'checkjs-type-error',
|
|
167
|
+
'upstream-allowlist',
|
|
168
|
+
'add-only',
|
|
169
|
+
'scope',
|
|
170
|
+
'policy-document-missing',
|
|
171
|
+
'lint-ignore-removable',
|
|
172
|
+
];
|
|
173
|
+
const compilerFlag = (name) => s.boolean().describe(`TypeScript ${name}`).optional();
|
|
174
|
+
const compilerOptions = s
|
|
175
|
+
.object({
|
|
176
|
+
strictNullChecks: compilerFlag('strictNullChecks'),
|
|
177
|
+
strictFunctionTypes: compilerFlag('strictFunctionTypes'),
|
|
178
|
+
strictBindCallApply: compilerFlag('strictBindCallApply'),
|
|
179
|
+
noImplicitThis: compilerFlag('noImplicitThis'),
|
|
180
|
+
useUnknownInCatchVariables: compilerFlag('useUnknownInCatchVariables'),
|
|
181
|
+
strictPropertyInitialization: compilerFlag('strictPropertyInitialization'),
|
|
182
|
+
noUnusedLocals: compilerFlag('noUnusedLocals'),
|
|
183
|
+
noUnusedParameters: compilerFlag('noUnusedParameters'),
|
|
184
|
+
paths: s
|
|
185
|
+
.record(s.array(s.string()), {
|
|
186
|
+
key: s.string({ pattern: /^[^*]*\*?[^*]*$/, format: 'a pattern with at most one "*"' }),
|
|
187
|
+
})
|
|
188
|
+
.describe('Module-resolution paths mapping, engine-relative targets')
|
|
189
|
+
.optional(),
|
|
190
|
+
})
|
|
191
|
+
.describe('Per-flag overrides applied after the strict checkJs preset');
|
|
192
|
+
const patchLintKeys = {
|
|
193
|
+
checkJs: s.boolean().describe('Type-check owned plain JS modules').default(false),
|
|
194
|
+
checkJsStrict: s
|
|
195
|
+
.boolean()
|
|
196
|
+
.describe('Run checkJs with strict and noImplicitAny; needs checkJs')
|
|
197
|
+
.default(false),
|
|
198
|
+
checkJsCompilerOptions: compilerOptions.optional(),
|
|
199
|
+
checkJsExtraShim: projectPath
|
|
200
|
+
.describe('Project-relative .d.ts added to the Firefox globals shim for checkJs')
|
|
201
|
+
.optional(),
|
|
202
|
+
checkJsTestFiles: s
|
|
203
|
+
.boolean()
|
|
204
|
+
.describe('Also check owned test scripts, each as its own program; needs checkJs')
|
|
205
|
+
.default(false),
|
|
206
|
+
checkJsTestShim: projectPath
|
|
207
|
+
.describe('Project-relative .d.ts of typed harness declarations; needs checkJsTestFiles')
|
|
208
|
+
.optional(),
|
|
209
|
+
litTypes: s
|
|
210
|
+
.boolean()
|
|
211
|
+
.describe('Type Lit in the checkJs shim with closed member lists; needs checkJs')
|
|
212
|
+
.default(false),
|
|
213
|
+
rawColorAllowlist: s
|
|
214
|
+
.array(s.string())
|
|
215
|
+
.describe('Paths (exact or basename) exempt from the raw-color check')
|
|
216
|
+
.optional(),
|
|
217
|
+
fileSizeThresholds: s
|
|
218
|
+
.object({
|
|
219
|
+
general: fileSizeTier('general').describe('Non-test files').optional(),
|
|
220
|
+
test: fileSizeTier('test').describe('Test files').optional(),
|
|
221
|
+
})
|
|
222
|
+
.describe('file-too-large bands per file class, merged over the defaults')
|
|
223
|
+
.optional(),
|
|
224
|
+
fileSizeMetric: s
|
|
225
|
+
.enum(['raw', 'code'])
|
|
226
|
+
.describe('What file-too-large counts: every line, or lines carrying code')
|
|
227
|
+
.default('raw'),
|
|
228
|
+
patchSizeThresholds: s
|
|
229
|
+
.object({
|
|
230
|
+
general: patchSizeTier('general').describe('Patches of general code').optional(),
|
|
231
|
+
test: patchSizeTier('test').describe('Patches of only tests').optional(),
|
|
232
|
+
branding: patchSizeTier('branding').describe('Branding patches').optional(),
|
|
233
|
+
})
|
|
234
|
+
.describe('large-patch-lines and large-patch-files bands per tier, merged over the defaults')
|
|
235
|
+
.optional(),
|
|
236
|
+
patchSizeMetric: s
|
|
237
|
+
.enum(['diff', 'addedCode'])
|
|
238
|
+
.describe('What large-patch-lines counts: every diff line, or added lines carrying code')
|
|
239
|
+
.default('diff'),
|
|
240
|
+
patchSizeRegistrationFiles: s
|
|
241
|
+
.array(text)
|
|
242
|
+
.describe('Globs of registration files neither patch-size rule counts')
|
|
243
|
+
.optional(),
|
|
244
|
+
rules: s
|
|
245
|
+
.record(s.enum(['off', 'notice', 'warning', 'error']), {
|
|
246
|
+
key: s.enum(LINT_RULE_IDS),
|
|
247
|
+
})
|
|
248
|
+
.describe('Severity per rule ID, replacing its default; off disables the rule')
|
|
249
|
+
.optional(),
|
|
250
|
+
undefinedIdentifiers: severity
|
|
251
|
+
.describe('How checkJs reports undefined identifiers')
|
|
252
|
+
.default('warning'),
|
|
253
|
+
tokenScales: s
|
|
254
|
+
.array(tokenScale)
|
|
255
|
+
.describe('CSS property families whose values in created stylesheets must be scale tokens')
|
|
256
|
+
.optional(),
|
|
257
|
+
waivers: s
|
|
258
|
+
.array(s.object({
|
|
259
|
+
group: text.describe('Group the waiver applies to: a patch or component name such as "ui-sidebar", or the full group ID'),
|
|
260
|
+
rule: s.enum(LINT_RULE_IDS).describe('Rule waived for the group'),
|
|
261
|
+
max: s
|
|
262
|
+
.int({ min: 0 })
|
|
263
|
+
.describe('Largest measurement still waived; without it the rule is waived at any size')
|
|
264
|
+
.optional(),
|
|
265
|
+
reason: text.describe('Why the waiver exists'),
|
|
266
|
+
share: s
|
|
267
|
+
.enum(['product', 'test'])
|
|
268
|
+
.describe('Share of the group a large-patch-lines ceiling bounds; needs max')
|
|
269
|
+
.optional(),
|
|
270
|
+
}))
|
|
271
|
+
.describe('Lint waivers per group of owned changes, beside those a patch manifest carries')
|
|
272
|
+
.optional(),
|
|
273
|
+
};
|
|
274
|
+
/** Settings that only mean something when another is on. */
|
|
275
|
+
const REQUIRES = [
|
|
276
|
+
['checkJsStrict', (lint) => lint.checkJsStrict && !lint.checkJs, 'checkJs'],
|
|
277
|
+
[
|
|
278
|
+
'checkJsCompilerOptions',
|
|
279
|
+
(lint) => lint.checkJsCompilerOptions !== undefined && !lint.checkJsStrict,
|
|
280
|
+
'checkJsStrict',
|
|
281
|
+
],
|
|
282
|
+
['checkJsTestFiles', (lint) => lint.checkJsTestFiles && !lint.checkJs, 'checkJs'],
|
|
283
|
+
[
|
|
284
|
+
'checkJsTestShim',
|
|
285
|
+
(lint) => lint.checkJsTestShim !== undefined && !lint.checkJsTestFiles,
|
|
286
|
+
'checkJsTestFiles',
|
|
287
|
+
],
|
|
288
|
+
['litTypes', (lint) => lint.litTypes && !lint.checkJs, 'checkJs'],
|
|
289
|
+
];
|
|
290
|
+
const patchLintObject = s.object(patchLintKeys);
|
|
291
|
+
/** The `patchLint` section. Every key is optional. */
|
|
292
|
+
export const patchLintSection = patchLintObject
|
|
293
|
+
.refine((lint) => {
|
|
294
|
+
const unmet = REQUIRES.find(([, broken]) => broken(lint));
|
|
295
|
+
return unmet === undefined ? undefined : `sets ${unmet[0]}, which needs ${unmet[2]}: true`;
|
|
296
|
+
})
|
|
297
|
+
.describe('Quality rules over owned changes');
|